{"version":3,"file":"index.umd.cjs","sources":["../../src/__package__.ts","../../src/connection.ts","../../src/espConnection.ts","../../src/services/wsdl/FileSpray/v1.27/FileSpray.ts","../../src/services/fileSpray.ts","../../src/services/wsdl/ws_access/v1.17/ws_access.ts","../../src/services/wsAccess.ts","../../src/services/wsdl/ws_account/v1.07/ws_account.ts","../../src/services/wsAccount.ts","../../src/services/wsdl/WsCloud/v1.02/WsCloud.ts","../../src/services/wsCloud.ts","../../src/services/wsdl/ws_codesign/v1.1/ws_codesign.ts","../../src/services/wsCodesign.ts","../../src/services/wsdl/WsDali/v1.07/WsDali.ts","../../src/services/wsDali.ts","../../src/services/wsdl/WsDfu/v1.67/WsDfu.ts","../../src/services/wsDFU.ts","../../src/services/wsdl/WsDFUXRef/v1.04/WsDFUXRef.ts","../../src/services/wsDFUXRef.ts","../../src/services/wsEcl.ts","../../src/services/wsdl/ws_elk/v1/ws_elk.ts","../../src/services/wsElk.ts","../../src/services/wsdl/ws_logaccess/v1.08/ws_logaccess.ts","../../src/services/wsLogaccess.ts","../../../../node_modules/d3-array/src/ascending.js","../../../../node_modules/d3-array/src/bisector.js","../../../../node_modules/d3-array/src/number.js","../../../../node_modules/d3-array/src/max.js","../../../../node_modules/d3-array/src/mean.js","../../src/services/wsdl/ws_machine/v1.19/ws_machine.ts","../../../../node_modules/d3-array/src/bisect.js","../../src/services/wsMachine.ts","../../src/services/wsdl/WsPackageProcess/v1.07/WsPackageProcess.ts","../../src/services/wsPackageProcess.ts","../../src/services/wsdl/WsResources/v1.01/WsResources.ts","../../src/services/wsResources.ts","../../src/services/wsdl/WsSasha/v1.01/WsSasha.ts","../../src/services/wsSasha.ts","../../../../node_modules/d3-time/src/interval.js","../../../../node_modules/d3-time/src/duration.js","../../../../node_modules/d3-time/src/day.js","../../../../node_modules/d3-time/src/week.js","../../../../node_modules/d3-time/src/year.js","../../../../node_modules/d3-time/src/utcDay.js","../../../../node_modules/d3-time/src/utcWeek.js","../../../../node_modules/d3-time/src/utcYear.js","../../../../node_modules/d3-time-format/src/locale.js","../../../../node_modules/d3-time-format/src/defaultLocale.js","../../src/services/wsdl/WsSMC/v1.29/WsSMC.ts","../../src/services/wsSMC.ts","../../src/services/wsdl/wsstore/v1.02/wsstore.ts","../../src/services/wsStore.ts","../../src/services/wsdl/WsTopology/v1.33/WsTopology.ts","../../src/services/wsTopology.ts","../../src/services/wsdl/WsWorkunits/v2.04/WsWorkunits.ts","../../src/services/wsWorkunits.ts","../../../../node_modules/d3-format/src/formatDecimal.js","../../../../node_modules/d3-format/src/exponent.js","../../../../node_modules/d3-format/src/formatGroup.js","../../../../node_modules/d3-format/src/formatNumerals.js","../../../../node_modules/d3-format/src/formatSpecifier.js","../../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../../node_modules/d3-format/src/formatTrim.js","../../../../node_modules/d3-format/src/formatRounded.js","../../../../node_modules/d3-format/src/formatTypes.js","../../../../node_modules/d3-format/src/identity.js","../../../../node_modules/d3-format/src/locale.js","../../../../node_modules/d3-format/src/defaultLocale.js","../../src/ecl/graph.ts","../../src/ecl/resource.ts","../../src/ecl/xsdParser.ts","../../src/ecl/result.ts","../../src/ecl/scope.ts","../../src/ecl/sourceFile.ts","../../src/ecl/timer.ts","../../src/ecl/workunit.ts","../../src/ecl/activity.ts","../../src/ecl/logicalFile.ts","../../src/ecl/machine.ts","../../src/ecl/targetCluster.ts","../../src/ecl/topology.ts","../../src/ecl/queryGraph.ts","../../src/ecl/query.ts","../../src/ecl/store.ts","../../src/ecl/dfuWorkunit.ts"],"sourcesContent":["export const PKG_NAME = \"__PACKAGE_NAME__\";\r\nexport const PKG_VERSION = \"__PACKAGE_VERSION__\";\r\nexport const BUILD_VERSION = \"__BUILD_VERSION__\";\r\n","import { join, promiseTimeout, root, scopedLogger, utf8ToBase64 } from \"@hpcc-js/util\";\r\n\r\nconst logger = scopedLogger(\"comms/connection.ts\");\r\n\r\nexport type RequestType = \"post\" | \"get\" | \"jsonp\";\r\nexport type ResponseType = \"json\" | \"text\";\r\n\r\nexport type IOptionsSend = (options: IOptions, action: string, request: any, responseType: ResponseType, defaultSend: SendFunc, header?: any) => Promise<any>;\r\nexport interface IOptions {\r\n    baseUrl: string;\r\n    type?: RequestType;\r\n    userID?: string;\r\n    password?: string;\r\n    rejectUnauthorized?: boolean;\r\n    timeoutSecs?: number;\r\n    hookSend?: IOptionsSend;\r\n    encodeRequest?: boolean; // defaults to true\r\n}\r\nexport function instanceOfIOptions(object: any): object is IOptions {\r\n    return \"baseUrl\" in object;\r\n}\r\n\r\nconst DefaultOptions: IOptions = {\r\n    type: \"post\",\r\n    baseUrl: \"\",\r\n    userID: \"\",\r\n    password: \"\",\r\n    rejectUnauthorized: true,\r\n    timeoutSecs: 60\r\n};\r\n\r\nexport interface IConnection {\r\n    opts(_: Partial<IOptions>): this;\r\n    opts(): IOptions;\r\n    baseUrl: string;\r\n\r\n    send(action: string, request: any, responseType?: ResponseType): Promise<any>;\r\n    clone(): IConnection;\r\n}\r\nexport function instanceOfIConnection(object: any): object is IConnection {\r\n    return typeof object.opts === \"function\" &&\r\n        typeof object.send === \"function\" &&\r\n        typeof object.clone === \"function\";\r\n}\r\n\r\n//  comms  ---\r\n\r\nfunction encode(uriComponent: string | number | boolean, encodeRequest: boolean): string {\r\n    return (encodeRequest === undefined || encodeRequest === true) ? encodeURIComponent(uriComponent) : \"\" + uriComponent;\r\n}\r\n\r\nexport function serializeRequest(obj: any, encodeRequest: boolean = true, prefix: string = \"\"): string {\r\n    if (prefix) {\r\n        prefix += \".\";\r\n    }\r\n    if (typeof obj !== \"object\") {\r\n        return encode(obj, encodeRequest);\r\n    }\r\n\r\n    const str: string[] = [];\r\n    for (const key in obj) {\r\n        if (obj.hasOwnProperty(key)) {\r\n            if (obj[key] instanceof Array) {\r\n                //  Specific to ESP - but no REST standard exists...\r\n                let includeItemCount = false;\r\n                obj[key].forEach((row: any, i: number) => {\r\n                    if (typeof row === \"object\") {\r\n                        includeItemCount = true;\r\n                        str.push(serializeRequest(row, encodeRequest, prefix + encode(`${key}.${i}`, encodeRequest)));\r\n                    } else {\r\n                        str.push(prefix + encode(`${key}_i${i}`, encodeRequest) + \"=\" + serializeRequest(row, encodeRequest));\r\n                    }\r\n                });\r\n                if (includeItemCount) {\r\n                    str.push(prefix + encode(`${key}.itemcount`, encodeRequest) + \"=\" + obj[key].length);\r\n                }\r\n            } else if (typeof obj[key] === \"object\") {\r\n                if (obj[key] && obj[key][\"Item\"] instanceof Array) {  // Specific to ws_machine.GetTargetClusterInfo?\r\n                    str.push(serializeRequest(obj[key][\"Item\"], encodeRequest, prefix + encode(key, encodeRequest)));\r\n                    str.push(prefix + encode(`${key}.itemcount`, encodeRequest) + \"=\" + obj[key][\"Item\"].length);\r\n                } else {\r\n                    str.push(serializeRequest(obj[key], encodeRequest, prefix + encode(key, encodeRequest)));\r\n                }\r\n            } else if (obj[key] !== undefined) {\r\n                str.push(prefix + encode(key, encodeRequest) + \"=\" + encode(obj[key], encodeRequest));\r\n            } else {\r\n                str.push(prefix + encode(key, encodeRequest));\r\n            }\r\n        }\r\n    }\r\n    return str.join(\"&\");\r\n}\r\n\r\nexport function deserializeResponse(body: string) {\r\n    return JSON.parse(body);\r\n}\r\n\r\nexport function jsonp(opts: IOptions, action: string, request: any = {}, responseType: ResponseType = \"json\", header?: any): Promise<any> {\r\n    if (header) {\r\n        console.warn(\"Header attributes ignored for JSONP connections\");\r\n    }\r\n    return new Promise<any>((resolve, reject) => {\r\n        let respondedTimeout = opts.timeoutSecs! * 1000;\r\n        const respondedTick = 5000;\r\n        const callbackName = \"jsonp_callback_\" + Math.round(Math.random() * 999999);\r\n        (window as any)[callbackName] = function (response: any) {\r\n            respondedTimeout = 0;\r\n            doCallback();\r\n            resolve(responseType === \"json\" && typeof response === \"string\" ? deserializeResponse(response) : response);\r\n        };\r\n        const script = document.createElement(\"script\");\r\n        let url = join(opts.baseUrl, action);\r\n        url += url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\r\n        script.src = url + \"jsonp=\" + callbackName + \"&\" + serializeRequest(request, opts.encodeRequest);\r\n        document.body.appendChild(script);\r\n        const progress = setInterval(function () {\r\n            if (respondedTimeout <= 0) {\r\n                clearInterval(progress);\r\n            } else {\r\n                respondedTimeout -= respondedTick;\r\n                if (respondedTimeout <= 0) {\r\n                    clearInterval(progress);\r\n                    logger.error(\"Request timeout:  \" + script.src);\r\n                    doCallback();\r\n                    reject(Error(\"Request timeout:  \" + script.src));\r\n                } else {\r\n                    logger.debug(\"Request pending (\" + respondedTimeout / 1000 + \" sec):  \" + script.src);\r\n                }\r\n            }\r\n        }, respondedTick);\r\n\r\n        function doCallback() {\r\n            delete (window as any)[callbackName];\r\n            document.body.removeChild(script);\r\n        }\r\n    });\r\n}\r\n\r\nfunction authHeader(opts: IOptions): object {\r\n    return opts.userID ? { Authorization: `Basic ${utf8ToBase64(`${opts.userID}:${opts.password}`)}` } : {};\r\n}\r\n\r\n//  _omitMap is a workaround for older HPCC-Platform instances without credentials ---\r\nconst _omitMap: { [baseUrl: string]: boolean } = {};\r\nfunction doFetch(opts: IOptions, action: string, requestInit: RequestInit, headersInit: HeadersInit, responseType: string) {\r\n    headersInit = {\r\n        ...authHeader(opts),\r\n        ...headersInit\r\n    };\r\n\r\n    requestInit = {\r\n        credentials: _omitMap[opts.baseUrl] ? \"omit\" : \"include\",\r\n        ...requestInit,\r\n        headers: headersInit\r\n    };\r\n\r\n    if (opts.baseUrl.indexOf(\"https:\") === 0) {\r\n        //  NodeJS / node-fetch only  ---\r\n        if (opts.rejectUnauthorized === false && root.__hpcc_rejectUnauthorizedAgent) {\r\n            requestInit[\"dispatcher\"] = root.__hpcc_rejectUnauthorizedAgent;\r\n        } else if (root.__hpcc_trustwaveAgent) {\r\n            requestInit[\"agent\"] = root.__hpcc_trustwaveAgent;\r\n        }\r\n    }\r\n\r\n    function handleResponse(response: Response): Promise<any> {\r\n        if (response.ok) {\r\n            return responseType === \"json\" ? response.json() : response.text();\r\n        }\r\n        throw new Error(response.statusText);\r\n    }\r\n\r\n    const fetchOverride = root.__hpcc_undiciFetch ?? fetch;\r\n    return promiseTimeout(opts.timeoutSecs! * 1000, fetchOverride(join(opts.baseUrl, action), requestInit)\r\n        .then(handleResponse)\r\n        .catch(e => {\r\n            //  Try again with the opposite credentials mode  ---\r\n            requestInit.credentials = !_omitMap[opts.baseUrl] ? \"omit\" : \"include\";\r\n            return fetchOverride(join(opts.baseUrl, action), requestInit)\r\n                .then(handleResponse)\r\n                .then(responseBody => {\r\n                    _omitMap[opts.baseUrl] = !_omitMap[opts.baseUrl];  // The \"opposite\" credentials mode is known to work  ---\r\n                    return responseBody;\r\n                });\r\n        })\r\n    );\r\n}\r\n\r\nexport function post(opts: IOptions, action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\r\n    if (request.upload_) {\r\n        delete request.upload_;\r\n        action += \"?upload_\";\r\n    }\r\n    let abortSignal;\r\n    if (request.abortSignal_) {\r\n        abortSignal = request.abortSignal_;\r\n        delete request.abortSignal_;\r\n    }\r\n    return doFetch(opts, action, {\r\n        method: \"post\",\r\n        body: serializeRequest(request, opts.encodeRequest),\r\n        signal: abortSignal\r\n    }, {\r\n        \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n        ...header\r\n    } as any, responseType);\r\n}\r\n\r\nexport function get(opts: IOptions, action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\r\n    let abortSignal;\r\n    if (request.abortSignal_) {\r\n        abortSignal = request.abortSignal_;\r\n        delete request.abortSignal_;\r\n    }\r\n    return doFetch(opts, `${action}?${serializeRequest(request, opts.encodeRequest)}`, {\r\n        method: \"get\",\r\n        signal: abortSignal\r\n    }, {\r\n        ...header\r\n    } as any, responseType);\r\n}\r\n\r\nexport type SendFunc = (opts: IOptions, action: string, request: any, responseType: ResponseType, header?: any) => Promise<any>;\r\nexport function send(opts: IOptions, action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\r\n    let retVal: Promise<any>;\r\n    switch (opts.type) {\r\n        case \"jsonp\":\r\n            retVal = jsonp(opts, action, request, responseType, header);\r\n            break;\r\n        case \"get\":\r\n            retVal = get(opts, action, request, responseType, header);\r\n            break;\r\n        case \"post\":\r\n        default:\r\n            retVal = post(opts, action, request, responseType, header);\r\n            break;\r\n    }\r\n    return retVal;\r\n}\r\n\r\nlet hookedSend: SendFunc = send;\r\nexport function hookSend(newSend?: SendFunc): SendFunc {\r\n    const retVal = hookedSend;\r\n    if (newSend) {\r\n        hookedSend = newSend;\r\n    }\r\n    return retVal;\r\n}\r\n\r\nexport class Connection implements IConnection {\r\n    protected _opts: IOptions;\r\n    get baseUrl() { return this._opts.baseUrl; }\r\n\r\n    constructor(opts: IOptions) {\r\n        this.opts(opts);\r\n    }\r\n\r\n    //  IConnection  ---\r\n    opts(_: Partial<IOptions>): this;\r\n    opts(): IOptions;\r\n    opts(_?: Partial<IOptions>): this | IOptions {\r\n        if (arguments.length === 0) return this._opts;\r\n        this._opts = { ...DefaultOptions, ..._ };\r\n        return this;\r\n    }\r\n\r\n    send(action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\r\n        if (this._opts.hookSend) {\r\n            return this._opts.hookSend(this._opts, action, request, responseType, hookedSend, header);\r\n        }\r\n        return hookedSend(this._opts, action, request, responseType, header);\r\n    }\r\n\r\n    clone() {\r\n        return new Connection(this.opts());\r\n    }\r\n}\r\n\r\nexport type IConnectionFactory = (opts: IOptions) => IConnection;\r\nexport let createConnection: IConnectionFactory = function (opts: IOptions): IConnection {\r\n    return new Connection(opts);\r\n};\r\n\r\nexport function setTransportFactory(newFunc: IConnectionFactory): IConnectionFactory {\r\n    const retVal = createConnection;\r\n    createConnection = newFunc;\r\n    return retVal;\r\n}\r\n","import { join } from \"@hpcc-js/util\";\r\nimport { createConnection, IConnection, IOptions, ResponseType } from \"./connection.ts\";\r\n\r\nexport type ESPResponseType = ResponseType | \"json2\" | \"xsd\";\r\n\r\nexport function isArray(arg: any) {\r\n    return Object.prototype.toString.call(arg) === \"[object Array]\";\r\n}\r\n\r\nexport interface Exception {\r\n    Code: number;\r\n    Message: string;\r\n}\r\n\r\nexport interface Exceptions {\r\n    Source: string;\r\n    Exception: Exception[];\r\n}\r\n\r\nexport class ESPExceptions extends Error implements Exceptions {\r\n    isESPExceptions = true;\r\n    action: string;\r\n    request: string;\r\n    Source: string;\r\n    Exception: Exception[];\r\n\r\n    constructor(action: string, request: any, exceptions: Exceptions) {\r\n        super(\"ESPException:  \" + exceptions.Source);\r\n        this.action = action;\r\n        this.request = request;\r\n        this.Source = exceptions.Source;\r\n        this.Exception = exceptions.Exception;\r\n        if (exceptions.Exception.length) {\r\n            this.message = `${exceptions.Exception[0].Code}:  ${exceptions.Exception[0].Message}`;\r\n        } else {\r\n            this.message = \"\";\r\n        }\r\n    }\r\n}\r\n\r\nexport function isExceptions(err: any): err is Exceptions {\r\n    return err instanceof ESPExceptions || (err.isESPExceptions && Array.isArray(err.Exception));\r\n}\r\n\r\nfunction isConnection(optsConnection: IOptions | IConnection): optsConnection is IConnection {\r\n    return (optsConnection as IConnection).send !== undefined;\r\n}\r\n\r\nexport class ESPConnection implements IConnection {\r\n    private _connection: IConnection;\r\n    get baseUrl() { return this._connection.opts().baseUrl; }\r\n    private _service: string;\r\n    private _version: string;\r\n\r\n    constructor(optsConnection: IOptions | IConnection, service: string, version: string) {\r\n        this._connection = isConnection(optsConnection) ? optsConnection : createConnection(optsConnection);\r\n        this._service = service;\r\n        this._version = version;\r\n    }\r\n\r\n    service(): string;\r\n    service(_: string): ESPConnection;\r\n    service(_?: string): string | ESPConnection {\r\n        if (_ === void 0) return this._service;\r\n        this._service = _;\r\n        return this;\r\n    }\r\n\r\n    version(): string;\r\n    version(_: string): ESPConnection;\r\n    version(_?: string): string | ESPConnection {\r\n        if (_ === void 0) return this._version;\r\n        this._version = _;\r\n        return this;\r\n    }\r\n\r\n    toESPStringArray(target: any, arrayName: string): any {\r\n        if (isArray(target[arrayName])) {\r\n            for (let i = 0; i < target[arrayName].length; ++i) {\r\n                target[arrayName + \"_i\" + i] = target[arrayName][i];\r\n            }\r\n            delete target[arrayName];\r\n        }\r\n        return target;\r\n    }\r\n\r\n    //  IConnection  ---\r\n    opts(_: Partial<IOptions>): this;\r\n    opts(): IOptions;\r\n    opts(_?: Partial<IOptions>): this | IOptions {\r\n        if (_ === void 0) return this._connection.opts();\r\n        this._connection.opts(_);\r\n        return this;\r\n    }\r\n\r\n    send(action: string, _request: any = {}, espResponseType: ESPResponseType = \"json\", largeUpload: boolean = false, abortSignal?: AbortSignal, espResponseField?: string): Promise<any> {\r\n        const request = { ..._request, ...{ ver_: this._version } };\r\n        if (largeUpload) {\r\n            request[\"upload_\"] = true;\r\n        }\r\n        if (abortSignal) {\r\n            request[\"abortSignal_\"] = abortSignal;\r\n        }\r\n        let serviceAction: string;\r\n        let responseType: ResponseType = \"json\";\r\n        switch (espResponseType) {\r\n            case \"text\":\r\n                serviceAction = join(this._service, action);\r\n                responseType = \"text\";\r\n                break;\r\n            case \"xsd\":\r\n                serviceAction = join(this._service, action + \".xsd\");\r\n                responseType = \"text\";\r\n                break;\r\n            case \"json2\":\r\n                serviceAction = join(this._service, action + \"/json\");\r\n                espResponseType = \"json\";\r\n                const actionParts = action.split(\"/\");\r\n                action = actionParts.pop()!;\r\n                break;\r\n            default:\r\n                serviceAction = join(this._service, action + \".json\");\r\n        }\r\n        return this._connection.send(serviceAction, request, responseType).then((response) => {\r\n            if (espResponseType === \"json\") {\r\n                let retVal;\r\n                if (response && response.Exceptions) {\r\n                    throw new ESPExceptions(action, request, response.Exceptions);\r\n                } else if (response) {\r\n                    retVal = response[espResponseField || (action + \"Response\")];\r\n                }\r\n                if (!retVal) {\r\n                    throw new ESPExceptions(action, request, {\r\n                        Source: \"ESPConnection.send\",\r\n                        Exception: [{ Code: 0, Message: \"Missing Response\" }]\r\n                    });\r\n                }\r\n                return retVal;\r\n            }\r\n            return response;\r\n        });\r\n    }\r\n\r\n    clone() {\r\n        return new ESPConnection(this._connection.clone(), this._service, this._version);\r\n    }\r\n}\r\n\r\nexport class Service {\r\n    protected _connection: ESPConnection;\r\n    get baseUrl() { return this._connection.opts().baseUrl; }\r\n\r\n    constructor(optsConnection: IOptions | IConnection, service: string, version: string) {\r\n        this._connection = new ESPConnection(optsConnection, service, version);\r\n    }\r\n\r\n    opts() {\r\n        return this._connection.opts();\r\n    }\r\n\r\n    connection(): ESPConnection {\r\n        return this._connection.clone();\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace FileSpray {\r\n\r\n    export type int = number;\r\n    export type double = number;\r\n    export type base64Binary = string;\r\n    export type long = number;\r\n    export type dateTime = string;\r\n\r\n    export enum DFUWUActions {\r\n        Delete = \"Delete\",\r\n        Protect = \"Protect\",\r\n        Unprotect = \"Unprotect\",\r\n        Restore = \"Restore\",\r\n        SetToFailed = \"SetToFailed\",\r\n        Archive = \"Archive\"\r\n    }\r\n\r\n    export interface AbortDFUWorkunit {\r\n        wuid: string;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface AbortDFUWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface Copy {\r\n        sourceLogicalName: string;\r\n        destGroup: string;\r\n        destGroupRoxie: string;\r\n        destLogicalName: string;\r\n        sourceDali: string;\r\n        srcusername: string;\r\n        srcpassword: string;\r\n        overwrite: boolean;\r\n        ensure: boolean;\r\n        replicate: boolean;\r\n        ReplicateOffset: int;\r\n        maxConnections: int;\r\n        throttle: int;\r\n        transferBufferSize: int;\r\n        nosplit: boolean;\r\n        norecover: boolean;\r\n        compress: boolean;\r\n        Wrap: boolean;\r\n        Multicopy: boolean;\r\n        SourceDiffKeyName: string;\r\n        DestDiffKeyName: string;\r\n        superCopy: boolean;\r\n        push: boolean;\r\n        pull: boolean;\r\n        ifnewer: boolean;\r\n        noCommon: boolean;\r\n        encrypt: string;\r\n        decrypt: string;\r\n        preserveCompression: boolean;\r\n        DFUServerQueue: string;\r\n        ExpireDays: int;\r\n        KeyCompression: string;\r\n    }\r\n\r\n    export interface CopyResponse {\r\n        Exceptions: Exceptions;\r\n        result: string;\r\n    }\r\n\r\n    export interface CreateDFUPublisherWorkunit {\r\n        DFUServerQueue: string;\r\n    }\r\n\r\n    export interface result {\r\n        ID: string;\r\n        DFUServerName: string;\r\n        ClusterName: string;\r\n        JobName: string;\r\n        Queue: string;\r\n        User: string;\r\n        isProtected: boolean;\r\n        Command: int;\r\n        CommandMessage: string;\r\n        PercentDone: int;\r\n        SecsLeft: int;\r\n        ProgressMessage: string;\r\n        SummaryMessage: string;\r\n        State: int;\r\n        SourceLogicalName: string;\r\n        SourceIP: string;\r\n        SourceFilePath: string;\r\n        SourceDali: string;\r\n        SourceRecordSize: int;\r\n        SourceFormat: int;\r\n        RowTag: string;\r\n        SourceNumParts: int;\r\n        SourceDirectory: string;\r\n        DestLogicalName: string;\r\n        DestGroupName: string;\r\n        DestDirectory: string;\r\n        DestIP: string;\r\n        DestFilePath: string;\r\n        DestFormat: int;\r\n        DestNumParts: int;\r\n        DestRecordSize: int;\r\n        Replicate: boolean;\r\n        Overwrite: boolean;\r\n        Compress: boolean;\r\n        SourceCsvSeparate: string;\r\n        SourceCsvQuote: string;\r\n        SourceCsvTerminate: string;\r\n        SourceCsvEscape: string;\r\n        TimeStarted: string;\r\n        TimeStopped: string;\r\n        StateMessage: string;\r\n        MonitorEventName: string;\r\n        MonitorSub: boolean;\r\n        MonitorShotLimit: int;\r\n        SourceDiffKeyName: string;\r\n        DestDiffKeyName: string;\r\n        Archived: boolean;\r\n        encrypt: string;\r\n        decrypt: string;\r\n        failIfNoSourceFile: boolean;\r\n        recordStructurePresent: boolean;\r\n        quotedTerminator: boolean;\r\n        preserveCompression: boolean;\r\n        expireDays: int;\r\n        PreserveFileParts: boolean;\r\n        FileAccessCost: double;\r\n        KbPerSecAve: int;\r\n        KbPerSec: int;\r\n    }\r\n\r\n    export interface CreateDFUPublisherWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n        result: result;\r\n    }\r\n\r\n    export interface CreateDFUWorkunit {\r\n        DFUServerQueue: string;\r\n    }\r\n\r\n    export interface CreateDFUWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n        result: result;\r\n    }\r\n\r\n    export interface DFUWUFileRequest {\r\n        Wuid?: string;\r\n        Type?: string;\r\n        PlainText?: string;\r\n    }\r\n\r\n    export interface DFUWUFileResponse {\r\n        Exceptions: Exceptions;\r\n        file: string;\r\n    }\r\n\r\n    export interface DFUWUSearchRequest {\r\n\r\n    }\r\n\r\n    export interface ClusterNames {\r\n        ClusterName: string[];\r\n    }\r\n\r\n    export interface DFUWUSearchResponse {\r\n        Exceptions: Exceptions;\r\n        ClusterNames: ClusterNames;\r\n    }\r\n\r\n    export interface wuids {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface DFUWorkunitsActionRequest {\r\n        wuids?: wuids;\r\n        Type?: DFUWUActions;\r\n    }\r\n\r\n    export interface DFUActionResult {\r\n        ID: string;\r\n        Action: string;\r\n        Result: string;\r\n    }\r\n\r\n    export interface DFUActionResults {\r\n        DFUActionResult: DFUActionResult[];\r\n    }\r\n\r\n    export interface DFUWorkunitsActionResponse {\r\n        Exceptions: Exceptions;\r\n        FirstColumn: string;\r\n        DFUActionResults: DFUActionResults;\r\n    }\r\n\r\n    export interface DeleteDFUWorkunit {\r\n        wuid: string;\r\n    }\r\n\r\n    export interface DeleteDFUWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n        result: boolean;\r\n    }\r\n\r\n    export interface DeleteDFUWorkunits {\r\n        wuids: wuids;\r\n    }\r\n\r\n    export interface DeleteDFUWorkunitsResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface Names {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface DeleteDropZoneFilesRequest {\r\n        DropZoneName?: string;\r\n        NetAddress?: string;\r\n        Path?: string;\r\n        OS?: string;\r\n        Names?: Names;\r\n    }\r\n\r\n    export interface Despray {\r\n        destGroup: string;\r\n        sourceLogicalName: string;\r\n        destIP: string;\r\n        destPath: string;\r\n        destPlane: string;\r\n        dstxml: base64Binary;\r\n        overwrite: boolean;\r\n        maxConnections: int;\r\n        throttle: int;\r\n        transferBufferSize: int;\r\n        splitprefix: string;\r\n        norecover: boolean;\r\n        wrap: boolean;\r\n        multiCopy: boolean;\r\n        SingleConnection: boolean;\r\n        DFUServerQueue: string;\r\n        compress: boolean;\r\n        encrypt: string;\r\n        decrypt: string;\r\n    }\r\n\r\n    export interface DesprayResponse {\r\n        Exceptions: Exceptions;\r\n        wuid: string;\r\n    }\r\n\r\n    export interface DfuMonitorRequest {\r\n        EventName?: string;\r\n        LogicalName?: string;\r\n        Ip?: string;\r\n        Filename?: string;\r\n        Sub?: boolean;\r\n        ShotLimit?: int;\r\n    }\r\n\r\n    export interface DfuMonitorResponse {\r\n        Exceptions: Exceptions;\r\n        wuid: string;\r\n    }\r\n\r\n    export interface DropZoneFileSearchRequest {\r\n        DropZoneName?: string;\r\n        Server?: string;\r\n        ECLWatchVisibleOnly?: boolean;\r\n        NameFilter?: string;\r\n    }\r\n\r\n    export interface PhysicalFileStruct {\r\n        name: string;\r\n        Server: string;\r\n        isDir: boolean;\r\n        filesize: long;\r\n        modifiedtime: string;\r\n        Path: string;\r\n        Files: Files;\r\n    }\r\n\r\n    export interface Files {\r\n        PhysicalFileStruct: PhysicalFileStruct[];\r\n    }\r\n\r\n    export interface DropZoneFileSearchResponse {\r\n        Exceptions: Exceptions;\r\n        Files: Files;\r\n        Warning: string;\r\n    }\r\n\r\n    export interface DropZoneFilesRequest {\r\n        DropZoneName?: string;\r\n        NetAddress?: string;\r\n        Path?: string;\r\n        OS?: string;\r\n        Subfolder?: string;\r\n        ECLWatchVisibleOnly?: boolean;\r\n        DirectoryOnly?: boolean;\r\n    }\r\n\r\n    export interface DropZone {\r\n        Name: string;\r\n        NetAddress: string;\r\n        Path: string;\r\n        Computer: string;\r\n        Linux: string;\r\n    }\r\n\r\n    export interface DropZones {\r\n        DropZone: DropZone[];\r\n    }\r\n\r\n    export interface DropZoneFilesResponse {\r\n        Exceptions: Exceptions;\r\n        DropZoneName: string;\r\n        NetAddress: string;\r\n        Path: string;\r\n        OS: int;\r\n        ECLWatchVisibleOnly: boolean;\r\n        DropZones: DropZones;\r\n        Files: Files;\r\n    }\r\n\r\n    export interface EchoDateTime {\r\n        dt: dateTime;\r\n    }\r\n\r\n    export interface EchoDateTimeResponse {\r\n        result: dateTime;\r\n    }\r\n\r\n    export interface FileListRequest {\r\n        DropZoneName?: string;\r\n        Netaddr?: string;\r\n        Path?: string;\r\n        Mask?: string;\r\n        OS?: string;\r\n        DirectoryOnly?: boolean;\r\n    }\r\n\r\n    export interface files {\r\n        PhysicalFileStruct: PhysicalFileStruct[];\r\n    }\r\n\r\n    export interface FileListResponse {\r\n        Exceptions: Exceptions;\r\n        Netaddr: string;\r\n        Path: string;\r\n        Mask: string;\r\n        OS: int;\r\n        DirectoryOnly: boolean;\r\n        AcceptLanguage: string;\r\n        files: files;\r\n    }\r\n\r\n    export interface GetDFUExceptions {\r\n        wuid: string;\r\n    }\r\n\r\n    export interface DFUException {\r\n        Code: int;\r\n        Message: string;\r\n    }\r\n\r\n    export interface result2 {\r\n        DFUException: DFUException[];\r\n    }\r\n\r\n    export interface GetDFUExceptionsResponse {\r\n        Exceptions: Exceptions;\r\n        result: result2;\r\n    }\r\n\r\n    export interface ProgressRequest {\r\n        wuid?: string;\r\n    }\r\n\r\n    export interface ProgressResponse {\r\n        Exceptions: Exceptions;\r\n        wuid: string;\r\n        PercentDone: int;\r\n        SecsLeft: int;\r\n        KbPerSecAve: int;\r\n        KbPerSec: int;\r\n        SlavesDone: int;\r\n        TimeTaken: string;\r\n        ProgressMessage: string;\r\n        SummaryMessage: string;\r\n        State: string;\r\n    }\r\n\r\n    export interface GetDFUServerQueuesRequest {\r\n        DFUServerName?: string;\r\n    }\r\n\r\n    export interface GetDFUServerQueuesResponse {\r\n        Exceptions: Exceptions;\r\n        Names: Names;\r\n    }\r\n\r\n    export interface GetDFUWorkunit {\r\n        wuid: string;\r\n    }\r\n\r\n    export interface GetDFUWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n        result: result;\r\n        AutoRefresh: int;\r\n    }\r\n\r\n    export interface GetDFUWorkunits {\r\n        Wuid: string;\r\n        Owner: string;\r\n        Cluster: string;\r\n        StateReq: string;\r\n        Type: string;\r\n        Jobname: string;\r\n        PageSize: long;\r\n        CurrentPage: int;\r\n        PageStartFrom: long;\r\n        Sortby: string;\r\n        Descending: boolean;\r\n        CacheHint: long;\r\n        ParentWuid: string;\r\n        PublisherWuid: string;\r\n        includeProgressMessages: boolean;\r\n        includeTimings: boolean;\r\n        includeTransferRate: boolean;\r\n    }\r\n\r\n    export interface DFUWorkunit {\r\n        ID: string;\r\n        DFUServerName: string;\r\n        ClusterName: string;\r\n        JobName: string;\r\n        Queue: string;\r\n        User: string;\r\n        isProtected: boolean;\r\n        Command: int;\r\n        CommandMessage: string;\r\n        PercentDone: int;\r\n        SecsLeft: int;\r\n        ProgressMessage: string;\r\n        SummaryMessage: string;\r\n        State: int;\r\n        SourceLogicalName: string;\r\n        SourceIP: string;\r\n        SourceFilePath: string;\r\n        SourceDali: string;\r\n        SourceRecordSize: int;\r\n        SourceFormat: int;\r\n        RowTag: string;\r\n        SourceNumParts: int;\r\n        SourceDirectory: string;\r\n        DestLogicalName: string;\r\n        DestGroupName: string;\r\n        DestDirectory: string;\r\n        DestIP: string;\r\n        DestFilePath: string;\r\n        DestFormat: int;\r\n        DestNumParts: int;\r\n        DestRecordSize: int;\r\n        Replicate: boolean;\r\n        Overwrite: boolean;\r\n        Compress: boolean;\r\n        SourceCsvSeparate: string;\r\n        SourceCsvQuote: string;\r\n        SourceCsvTerminate: string;\r\n        SourceCsvEscape: string;\r\n        TimeStarted: string;\r\n        TimeStopped: string;\r\n        StateMessage: string;\r\n        MonitorEventName: string;\r\n        MonitorSub: boolean;\r\n        MonitorShotLimit: int;\r\n        SourceDiffKeyName: string;\r\n        DestDiffKeyName: string;\r\n        Archived: boolean;\r\n        encrypt: string;\r\n        decrypt: string;\r\n        failIfNoSourceFile: boolean;\r\n        recordStructurePresent: boolean;\r\n        quotedTerminator: boolean;\r\n        preserveCompression: boolean;\r\n        expireDays: int;\r\n        PreserveFileParts: boolean;\r\n        FileAccessCost: double;\r\n        KbPerSecAve: int;\r\n        KbPerSec: int;\r\n    }\r\n\r\n    export interface results {\r\n        DFUWorkunit: DFUWorkunit[];\r\n    }\r\n\r\n    export interface GetDFUWorkunitsResponse {\r\n        Exceptions: Exceptions;\r\n        results: results;\r\n        Type: string;\r\n        Owner: string;\r\n        Cluster: string;\r\n        StateReq: string;\r\n        PageSize: long;\r\n        PrevPage: long;\r\n        NextPage: long;\r\n        LastPage: long;\r\n        NumWUs: long;\r\n        PageStartFrom: long;\r\n        PageEndAt: long;\r\n        First: boolean;\r\n        Sortby: string;\r\n        Descending: boolean;\r\n        BasicQuery: string;\r\n        Filters: string;\r\n        CacheHint: long;\r\n    }\r\n\r\n    export interface GetRemoteTargetsRequest {\r\n\r\n    }\r\n\r\n    export interface TargetNames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface GetRemoteTargetsResponse {\r\n        Exceptions: Exceptions;\r\n        TargetNames: TargetNames;\r\n        AllowForeign: boolean;\r\n    }\r\n\r\n    export interface GetSprayTargetsRequest {\r\n\r\n    }\r\n\r\n    export interface GroupNode {\r\n        Name: string;\r\n        ClusterType: string;\r\n        ReplicateOutputs: boolean;\r\n    }\r\n\r\n    export interface GroupNodes {\r\n        GroupNode: GroupNode[];\r\n    }\r\n\r\n    export interface GetSprayTargetsResponse {\r\n        Exceptions: Exceptions;\r\n        GroupNodes: GroupNodes;\r\n    }\r\n\r\n    export interface OpenSaveRequest {\r\n        Location?: string;\r\n        Path?: string;\r\n        Name?: string;\r\n        Type?: string;\r\n        DateTime?: string;\r\n        BinaryFile?: boolean;\r\n    }\r\n\r\n    export interface OpenSaveResponse {\r\n        Exceptions: Exceptions;\r\n        Location: string;\r\n        Path: string;\r\n        Name: string;\r\n        Type: string;\r\n        DateTime: string;\r\n        Viewable: boolean;\r\n    }\r\n\r\n    export interface FileSprayPingRequest {\r\n\r\n    }\r\n\r\n    export interface FileSprayPingResponse {\r\n\r\n    }\r\n\r\n    export interface Rename {\r\n        srcname: string;\r\n        dstname: string;\r\n        overwrite: boolean;\r\n        DFUServerQueue: string;\r\n    }\r\n\r\n    export interface RenameResponse {\r\n        Exceptions: Exceptions;\r\n        wuid: string;\r\n    }\r\n\r\n    export interface Replicate {\r\n        sourceLogicalName: string;\r\n        replicateOffset: int;\r\n        cluster: string;\r\n        repeatLast: boolean;\r\n        onlyRepeated: boolean;\r\n        DFUServerQueue: string;\r\n    }\r\n\r\n    export interface ReplicateResponse {\r\n        Exceptions: Exceptions;\r\n        wuid: string;\r\n    }\r\n\r\n    export interface ShowResultRequest {\r\n        Result?: string;\r\n    }\r\n\r\n    export interface ShowResultResponse {\r\n        Exceptions: Exceptions;\r\n        Result: string;\r\n    }\r\n\r\n    export interface SprayFixed {\r\n        sourceIP: string;\r\n        sourcePlane: string;\r\n        sourcePath: string;\r\n        srcxml: base64Binary;\r\n        sourceFormat: string;\r\n        sourceRecordSize: int;\r\n        destGroup: string;\r\n        destLogicalName: string;\r\n        destNumParts: int;\r\n        overwrite: boolean;\r\n        replicate: boolean;\r\n        ReplicateOffset: int;\r\n        maxConnections: int;\r\n        throttle: int;\r\n        transferBufferSize: int;\r\n        prefix: string;\r\n        nosplit: boolean;\r\n        norecover: boolean;\r\n        compress: boolean;\r\n        push: boolean;\r\n        pull: boolean;\r\n        noCommon: boolean;\r\n        encrypt: string;\r\n        decrypt: string;\r\n        wrap: boolean;\r\n        failIfNoSourceFile: boolean;\r\n        recordStructurePresent: boolean;\r\n        quotedTerminator: boolean;\r\n        expireDays: int;\r\n        DFUServerQueue: string;\r\n    }\r\n\r\n    export interface SprayFixedResponse {\r\n        Exceptions: Exceptions;\r\n        wuid: string;\r\n    }\r\n\r\n    export interface SprayVariable {\r\n        sourceIP: string;\r\n        sourcePlane: string;\r\n        sourcePath: string;\r\n        srcxml: base64Binary;\r\n        sourceMaxRecordSize: int;\r\n        sourceFormat: int;\r\n        NoSourceCsvSeparator: boolean;\r\n        sourceCsvSeparate: string;\r\n        sourceCsvTerminate: string;\r\n        sourceCsvQuote: string;\r\n        sourceCsvEscape: string;\r\n        sourceRowTag: string;\r\n        destGroup: string;\r\n        destLogicalName: string;\r\n        destNumParts: int;\r\n        overwrite: boolean;\r\n        replicate: boolean;\r\n        ReplicateOffset: int;\r\n        maxConnections: int;\r\n        throttle: int;\r\n        transferBufferSize: int;\r\n        prefix: string;\r\n        nosplit: boolean;\r\n        norecover: boolean;\r\n        compress: boolean;\r\n        push: boolean;\r\n        pull: boolean;\r\n        noCommon: boolean;\r\n        encrypt: string;\r\n        decrypt: string;\r\n        failIfNoSourceFile: boolean;\r\n        recordStructurePresent: boolean;\r\n        quotedTerminator: boolean;\r\n        sourceRowPath: string;\r\n        isJSON: boolean;\r\n        expireDays: int;\r\n        DFUServerQueue: string;\r\n        srcUsername: string;\r\n        srcPassword: string;\r\n    }\r\n\r\n    export interface SprayResponse {\r\n        Exceptions: Exceptions;\r\n        wuid: string;\r\n    }\r\n\r\n    export interface SubmitDFUWorkunit {\r\n        wuid: string;\r\n    }\r\n\r\n    export interface SubmitDFUWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface wu {\r\n        ID: string;\r\n        DFUServerName: string;\r\n        ClusterName: string;\r\n        JobName: string;\r\n        Queue: string;\r\n        User: string;\r\n        isProtected: boolean;\r\n        Command: int;\r\n        CommandMessage: string;\r\n        PercentDone: int;\r\n        SecsLeft: int;\r\n        ProgressMessage: string;\r\n        SummaryMessage: string;\r\n        State: int;\r\n        SourceLogicalName: string;\r\n        SourceIP: string;\r\n        SourceFilePath: string;\r\n        SourceDali: string;\r\n        SourceRecordSize: int;\r\n        SourceFormat: int;\r\n        RowTag: string;\r\n        SourceNumParts: int;\r\n        SourceDirectory: string;\r\n        DestLogicalName: string;\r\n        DestGroupName: string;\r\n        DestDirectory: string;\r\n        DestIP: string;\r\n        DestFilePath: string;\r\n        DestFormat: int;\r\n        DestNumParts: int;\r\n        DestRecordSize: int;\r\n        Replicate: boolean;\r\n        Overwrite: boolean;\r\n        Compress: boolean;\r\n        SourceCsvSeparate: string;\r\n        SourceCsvQuote: string;\r\n        SourceCsvTerminate: string;\r\n        SourceCsvEscape: string;\r\n        TimeStarted: string;\r\n        TimeStopped: string;\r\n        StateMessage: string;\r\n        MonitorEventName: string;\r\n        MonitorSub: boolean;\r\n        MonitorShotLimit: int;\r\n        SourceDiffKeyName: string;\r\n        DestDiffKeyName: string;\r\n        Archived: boolean;\r\n        encrypt: string;\r\n        decrypt: string;\r\n        failIfNoSourceFile: boolean;\r\n        recordStructurePresent: boolean;\r\n        quotedTerminator: boolean;\r\n        preserveCompression: boolean;\r\n        expireDays: int;\r\n        PreserveFileParts: boolean;\r\n        FileAccessCost: double;\r\n        KbPerSecAve: int;\r\n        KbPerSec: int;\r\n    }\r\n\r\n    export interface UpdateDFUWorkunit {\r\n        wu: wu;\r\n        ClusterOrig: string;\r\n        JobNameOrig: string;\r\n        isProtectedOrig: boolean;\r\n        StateOrig: int;\r\n    }\r\n\r\n    export interface UpdateDFUWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n}\r\n\r\nexport class FileSprayServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"FileSpray\", \"1.27\");\r\n    }\r\n\r\n    AbortDFUWorkunit(request: Partial<FileSpray.AbortDFUWorkunit>): Promise<FileSpray.AbortDFUWorkunitResponse> {\r\n        return this._connection.send(\"AbortDFUWorkunit\", request, \"json\", false, undefined, \"AbortDFUWorkunitResponse\");\r\n    }\r\n\r\n    Copy(request: Partial<FileSpray.Copy>): Promise<FileSpray.CopyResponse> {\r\n        return this._connection.send(\"Copy\", request, \"json\", false, undefined, \"CopyResponse\");\r\n    }\r\n\r\n    CreateDFUPublisherWorkunit(request: Partial<FileSpray.CreateDFUPublisherWorkunit>): Promise<FileSpray.CreateDFUPublisherWorkunitResponse> {\r\n        return this._connection.send(\"CreateDFUPublisherWorkunit\", request, \"json\", false, undefined, \"CreateDFUPublisherWorkunitResponse\");\r\n    }\r\n\r\n    CreateDFUWorkunit(request: Partial<FileSpray.CreateDFUWorkunit>): Promise<FileSpray.CreateDFUWorkunitResponse> {\r\n        return this._connection.send(\"CreateDFUWorkunit\", request, \"json\", false, undefined, \"CreateDFUWorkunitResponse\");\r\n    }\r\n\r\n    DFUWUFile(request: Partial<FileSpray.DFUWUFileRequest>): Promise<FileSpray.DFUWUFileResponse> {\r\n        return this._connection.send(\"DFUWUFile\", request, \"json\", false, undefined, \"DFUWUFileResponse\");\r\n    }\r\n\r\n    DFUWUSearch(request: Partial<FileSpray.DFUWUSearchRequest>): Promise<FileSpray.DFUWUSearchResponse> {\r\n        return this._connection.send(\"DFUWUSearch\", request, \"json\", false, undefined, \"DFUWUSearchResponse\");\r\n    }\r\n\r\n    DFUWorkunitsAction(request: Partial<FileSpray.DFUWorkunitsActionRequest>): Promise<FileSpray.DFUWorkunitsActionResponse> {\r\n        return this._connection.send(\"DFUWorkunitsAction\", request, \"json\", false, undefined, \"DFUWorkunitsActionResponse\");\r\n    }\r\n\r\n    DeleteDFUWorkunit(request: Partial<FileSpray.DeleteDFUWorkunit>): Promise<FileSpray.DeleteDFUWorkunitResponse> {\r\n        return this._connection.send(\"DeleteDFUWorkunit\", request, \"json\", false, undefined, \"DeleteDFUWorkunitResponse\");\r\n    }\r\n\r\n    DeleteDFUWorkunits(request: Partial<FileSpray.DeleteDFUWorkunits>): Promise<FileSpray.DeleteDFUWorkunitsResponse> {\r\n        return this._connection.send(\"DeleteDFUWorkunits\", request, \"json\", false, undefined, \"DeleteDFUWorkunitsResponse\");\r\n    }\r\n\r\n    DeleteDropZoneFiles(request: Partial<FileSpray.DeleteDropZoneFilesRequest>): Promise<FileSpray.DFUWorkunitsActionResponse> {\r\n        return this._connection.send(\"DeleteDropZoneFiles\", request, \"json\", false, undefined, \"DFUWorkunitsActionResponse\");\r\n    }\r\n\r\n    Despray(request: Partial<FileSpray.Despray>): Promise<FileSpray.DesprayResponse> {\r\n        return this._connection.send(\"Despray\", request, \"json\", false, undefined, \"DesprayResponse\");\r\n    }\r\n\r\n    DfuMonitor(request: Partial<FileSpray.DfuMonitorRequest>): Promise<FileSpray.DfuMonitorResponse> {\r\n        return this._connection.send(\"DfuMonitor\", request, \"json\", false, undefined, \"DfuMonitorResponse\");\r\n    }\r\n\r\n    DropZoneFileSearch(request: Partial<FileSpray.DropZoneFileSearchRequest>): Promise<FileSpray.DropZoneFileSearchResponse> {\r\n        return this._connection.send(\"DropZoneFileSearch\", request, \"json\", false, undefined, \"DropZoneFileSearchResponse\");\r\n    }\r\n\r\n    DropZoneFiles(request: Partial<FileSpray.DropZoneFilesRequest>): Promise<FileSpray.DropZoneFilesResponse> {\r\n        return this._connection.send(\"DropZoneFiles\", request, \"json\", false, undefined, \"DropZoneFilesResponse\");\r\n    }\r\n\r\n    EchoDateTime(request: Partial<FileSpray.EchoDateTime>): Promise<FileSpray.EchoDateTimeResponse> {\r\n        return this._connection.send(\"EchoDateTime\", request, \"json\", false, undefined, \"EchoDateTimeResponse\");\r\n    }\r\n\r\n    FileList(request: Partial<FileSpray.FileListRequest>): Promise<FileSpray.FileListResponse> {\r\n        return this._connection.send(\"FileList\", request, \"json\", false, undefined, \"FileListResponse\");\r\n    }\r\n\r\n    GetDFUExceptions(request: Partial<FileSpray.GetDFUExceptions>): Promise<FileSpray.GetDFUExceptionsResponse> {\r\n        return this._connection.send(\"GetDFUExceptions\", request, \"json\", false, undefined, \"GetDFUExceptionsResponse\");\r\n    }\r\n\r\n    GetDFUProgress(request: Partial<FileSpray.ProgressRequest>): Promise<FileSpray.ProgressResponse> {\r\n        return this._connection.send(\"GetDFUProgress\", request, \"json\", false, undefined, \"ProgressResponse\");\r\n    }\r\n\r\n    GetDFUServerQueues(request: Partial<FileSpray.GetDFUServerQueuesRequest>): Promise<FileSpray.GetDFUServerQueuesResponse> {\r\n        return this._connection.send(\"GetDFUServerQueues\", request, \"json\", false, undefined, \"GetDFUServerQueuesResponse\");\r\n    }\r\n\r\n    GetDFUWorkunit(request: Partial<FileSpray.GetDFUWorkunit>): Promise<FileSpray.GetDFUWorkunitResponse> {\r\n        return this._connection.send(\"GetDFUWorkunit\", request, \"json\", false, undefined, \"GetDFUWorkunitResponse\");\r\n    }\r\n\r\n    GetDFUWorkunits(request: Partial<FileSpray.GetDFUWorkunits>): Promise<FileSpray.GetDFUWorkunitsResponse> {\r\n        return this._connection.send(\"GetDFUWorkunits\", request, \"json\", false, undefined, \"GetDFUWorkunitsResponse\");\r\n    }\r\n\r\n    GetRemoteTargets(request: Partial<FileSpray.GetRemoteTargetsRequest>): Promise<FileSpray.GetRemoteTargetsResponse> {\r\n        return this._connection.send(\"GetRemoteTargets\", request, \"json\", false, undefined, \"GetRemoteTargetsResponse\");\r\n    }\r\n\r\n    GetSprayTargets(request: Partial<FileSpray.GetSprayTargetsRequest>): Promise<FileSpray.GetSprayTargetsResponse> {\r\n        return this._connection.send(\"GetSprayTargets\", request, \"json\", false, undefined, \"GetSprayTargetsResponse\");\r\n    }\r\n\r\n    OpenSave(request: Partial<FileSpray.OpenSaveRequest>): Promise<FileSpray.OpenSaveResponse> {\r\n        return this._connection.send(\"OpenSave\", request, \"json\", false, undefined, \"OpenSaveResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<FileSpray.FileSprayPingRequest>): Promise<FileSpray.FileSprayPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"FileSprayPingResponse\");\r\n    }\r\n\r\n    Rename(request: Partial<FileSpray.Rename>): Promise<FileSpray.RenameResponse> {\r\n        return this._connection.send(\"Rename\", request, \"json\", false, undefined, \"RenameResponse\");\r\n    }\r\n\r\n    Replicate(request: Partial<FileSpray.Replicate>): Promise<FileSpray.ReplicateResponse> {\r\n        return this._connection.send(\"Replicate\", request, \"json\", false, undefined, \"ReplicateResponse\");\r\n    }\r\n\r\n    ShowResult(request: Partial<FileSpray.ShowResultRequest>): Promise<FileSpray.ShowResultResponse> {\r\n        return this._connection.send(\"ShowResult\", request, \"json\", false, undefined, \"ShowResultResponse\");\r\n    }\r\n\r\n    SprayFixed(request: Partial<FileSpray.SprayFixed>): Promise<FileSpray.SprayFixedResponse> {\r\n        return this._connection.send(\"SprayFixed\", request, \"json\", false, undefined, \"SprayFixedResponse\");\r\n    }\r\n\r\n    SprayVariable(request: Partial<FileSpray.SprayVariable>): Promise<FileSpray.SprayResponse> {\r\n        return this._connection.send(\"SprayVariable\", request, \"json\", false, undefined, \"SprayResponse\");\r\n    }\r\n\r\n    SubmitDFUWorkunit(request: Partial<FileSpray.SubmitDFUWorkunit>): Promise<FileSpray.SubmitDFUWorkunitResponse> {\r\n        return this._connection.send(\"SubmitDFUWorkunit\", request, \"json\", false, undefined, \"SubmitDFUWorkunitResponse\");\r\n    }\r\n\r\n    UpdateDFUWorkunit(request: Partial<FileSpray.UpdateDFUWorkunit>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\r\n        return this._connection.send(\"UpdateDFUWorkunit\", request, \"json\", false, undefined, \"UpdateDFUWorkunitResponse\");\r\n    }\r\n\r\n}\r\n","import { FileSprayServiceBase, FileSpray } from \"./wsdl/FileSpray/v1.27/FileSpray.ts\";\r\n\r\nexport {\r\n    FileSpray\r\n};\r\n\r\ntype UpdateDFUWorkunitMinusWU = Omit<FileSpray.UpdateDFUWorkunit, \"wu\">;\r\ntype UpdateDFUWorkunitWU = FileSpray.UpdateDFUWorkunit[\"wu\"];\r\n\r\nexport enum FileSprayStates {\r\n    unknown = 0,\r\n    scheduled,\r\n    queued,\r\n    started,\r\n    aborted,\r\n    failed,\r\n    finished,\r\n    monitoring,\r\n    aborting,\r\n    notfound = 999\r\n}\r\n\r\n// defined in https://github.com/hpcc-systems/HPCC-Platform/blob/master/dali/dfu/dfuwu.cpp#L102-L121\r\nexport enum DFUWUTypes {\r\n    Copy = \"copy\",\r\n    Remove = \"remove\",\r\n    Move = \"move\",\r\n    Rename = \"rename\",\r\n    Replicate = \"replicate\",\r\n    Import = \"import\",\r\n    Export = \"export\",\r\n    /*\r\n     * These seem to not be valid with respect to filtering DFU WUs,\r\n     * but leaving them here because they exist in the dfuwu.cpp struct\r\n     *\r\n     * Add = \"add\",\r\n     * Transfer = \"transfer\",\r\n     * Savemap = \"savemap\",\r\n     * Addgroup = \"addgroup\",\r\n     * Server = \"server\",\r\n     */\r\n    Monitor = \"monitor\",\r\n    Copymerge = \"copymerge\",\r\n    Supercopy = \"supercopy\",\r\n    Publish = \"publish\",\r\n}\r\n\r\nexport interface UpdateDFUWorkunitEx extends UpdateDFUWorkunitMinusWU {\r\n    wu?: Partial<UpdateDFUWorkunitWU>\r\n}\r\n\r\nexport class FileSprayService extends FileSprayServiceBase {\r\n\r\n    DFUWUFileEx(request: FileSpray.DFUWUFileRequest): Promise<string> {\r\n        return this._connection.send(\"DFUWUFile\", request, \"text\");\r\n    }\r\n\r\n    SprayFixedEx(request: Partial<FileSpray.SprayFixed>): Promise<FileSpray.SprayFixedResponse> {\r\n        return this._connection.send(\"SprayFixed\", request);\r\n    }\r\n\r\n    SprayVariableEx(request: Partial<FileSpray.SprayVariable>): Promise<FileSpray.SprayResponse> {\r\n        return this._connection.send(\"SprayVariable\", request, \"json\", false, null, \"SprayResponse\");\r\n    }\r\n\r\n    DesprayEx(request: Partial<FileSpray.Despray>): Promise<FileSpray.DesprayResponse> {\r\n        return this._connection.send(\"Despray\", request);\r\n    }\r\n\r\n    UpdateDFUWorkunitEx(request: Partial<UpdateDFUWorkunitEx>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\r\n        return this._connection.send(\"UpdateDFUWorkunit\", request, \"json\", false, undefined, \"UpdateDFUWorkunitResponse\");\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsAccess {\r\n\r\n    export type int = number;\r\n    export type unsignedInt = number;\r\n    export type long = number;\r\n    export type base64Binary = string;\r\n\r\n    export enum ViewMemberType {\r\n        User = \"User\",\r\n        Group = \"Group\"\r\n    }\r\n\r\n    export enum UserSortBy {\r\n        username = \"username\",\r\n        fullname = \"fullname\",\r\n        passwordexpiration = \"passwordexpiration\",\r\n        employeeID = \"employeeID\",\r\n        employeeNumber = \"employeeNumber\"\r\n    }\r\n\r\n    export enum GroupSortBy {\r\n        Name = \"Name\",\r\n        ManagedBy = \"ManagedBy\"\r\n    }\r\n\r\n    export enum AccountTypeReq {\r\n        Any = \"Any\",\r\n        User = \"User\",\r\n        Group = \"Group\"\r\n    }\r\n\r\n    export enum ResourcePermissionSortBy {\r\n        Name = \"Name\",\r\n        Type = \"Type\"\r\n    }\r\n\r\n    export enum ResourceSortBy {\r\n        Name = \"Name\"\r\n    }\r\n\r\n    export interface AccountPermissionsRequest {\r\n        AccountName?: string;\r\n        IsGroup?: boolean;\r\n        IncludeGroup?: boolean;\r\n    }\r\n\r\n    export interface BasednNames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface Permission {\r\n        BasednName: string;\r\n        rname: string;\r\n        prefix: string;\r\n        ResourceName: string;\r\n        PermissionName: string;\r\n        allow_access: boolean;\r\n        allow_read: boolean;\r\n        allow_write: boolean;\r\n        allow_full: boolean;\r\n        deny_access: boolean;\r\n        deny_read: boolean;\r\n        deny_write: boolean;\r\n        deny_full: boolean;\r\n    }\r\n\r\n    export interface Permissions {\r\n        Permission: Permission[];\r\n    }\r\n\r\n    export interface GroupPermission {\r\n        GroupName: string;\r\n        BasednNames: BasednNames;\r\n        Permissions: Permissions;\r\n    }\r\n\r\n    export interface GroupPermissions {\r\n        GroupPermission: GroupPermission[];\r\n    }\r\n\r\n    export interface AccountPermissionsResponse {\r\n        AccountName: string;\r\n        IsGroup: boolean;\r\n        IncludeGroup: boolean;\r\n        BasednNames: BasednNames;\r\n        Permissions: Permissions;\r\n        GroupPermissions: GroupPermissions;\r\n    }\r\n\r\n    export interface AccountPermissionsV2Request {\r\n        ResourceName?: string;\r\n        AccountName?: string;\r\n        IsGroup?: boolean;\r\n        IncludeGroup?: boolean;\r\n    }\r\n\r\n    export interface AccountPermissionsV2Response {\r\n        BasednNames: BasednNames;\r\n        Permissions: Permissions;\r\n        GroupPermissions: GroupPermissions;\r\n    }\r\n\r\n    export interface AddUserRequest {\r\n        username?: string;\r\n        firstname?: string;\r\n        lastname?: string;\r\n        password1?: string;\r\n        password2?: string;\r\n        employeeID?: string;\r\n        employeeNumber?: string;\r\n    }\r\n\r\n    export interface AddUserResponse {\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface AddViewRequest {\r\n        viewname?: string;\r\n        description?: string;\r\n    }\r\n\r\n    export interface AddViewResponse {\r\n        viewname: string;\r\n        description: string;\r\n    }\r\n\r\n    export interface AddViewColumnRequest {\r\n        viewname?: string;\r\n        filename?: string;\r\n        columnname?: string;\r\n    }\r\n\r\n    export interface AddViewColumnResponse {\r\n        viewname: string;\r\n        filename: string;\r\n        columnname: string;\r\n    }\r\n\r\n    export interface AddViewMemberRequest {\r\n        viewname?: string;\r\n        membername?: string;\r\n        membertype?: ViewMemberType;\r\n    }\r\n\r\n    export interface AddViewMemberResponse {\r\n        viewname: string;\r\n        membername: string;\r\n        membertype: ViewMemberType;\r\n    }\r\n\r\n    export interface ClearPermissionsCacheRequest {\r\n\r\n    }\r\n\r\n    export interface ClearPermissionsCacheResponse {\r\n        retcode: int;\r\n    }\r\n\r\n    export interface DeleteViewRequest {\r\n        viewname?: string;\r\n    }\r\n\r\n    export interface DeleteViewResponse {\r\n        viewname: string;\r\n    }\r\n\r\n    export interface DeleteViewColumnRequest {\r\n        viewname?: string;\r\n        filename?: string;\r\n        columnname?: string;\r\n    }\r\n\r\n    export interface DeleteViewColumnResponse {\r\n        viewname: string;\r\n        filename: string;\r\n        columnname: string;\r\n    }\r\n\r\n    export interface DeleteViewMemberRequest {\r\n        viewname?: string;\r\n        membername?: string;\r\n        membertype?: ViewMemberType;\r\n    }\r\n\r\n    export interface DeleteViewMemberResponse {\r\n        viewname: string;\r\n        membername: string;\r\n        membertype: ViewMemberType;\r\n    }\r\n\r\n    export interface DisableScopeScansRequest {\r\n\r\n    }\r\n\r\n    export interface scopeScansStatus {\r\n        isEnabled: boolean;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface DisableScopeScansResponse {\r\n        scopeScansStatus: scopeScansStatus;\r\n    }\r\n\r\n    export interface EnableScopeScansRequest {\r\n\r\n    }\r\n\r\n    export interface EnableScopeScansResponse {\r\n        scopeScansStatus: scopeScansStatus;\r\n    }\r\n\r\n    export interface FilePermissionRequest {\r\n        FileName?: string;\r\n        UserName?: string;\r\n        GroupName?: string;\r\n    }\r\n\r\n    export interface User {\r\n        username: string;\r\n        fullname: string;\r\n        passwordexpiration: string;\r\n        employeeID: string;\r\n        employeeNumber: string;\r\n    }\r\n\r\n    export interface Users {\r\n        User: User[];\r\n    }\r\n\r\n    export interface Group {\r\n        name: string;\r\n        deletable: boolean;\r\n        groupOwner: string;\r\n        groupDesc: string;\r\n    }\r\n\r\n    export interface Groups {\r\n        Group: Group[];\r\n    }\r\n\r\n    export interface FilePermissionResponse {\r\n        NoSecMngr: boolean;\r\n        FileName: string;\r\n        UserName: string;\r\n        GroupName: string;\r\n        toomany: boolean;\r\n        Users: Users;\r\n        Groups: Groups;\r\n        UserPermission: string;\r\n    }\r\n\r\n    export interface groupnames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface GroupActionRequest {\r\n        groupnames?: groupnames;\r\n        ActionType?: string;\r\n        DeletePermission?: boolean;\r\n    }\r\n\r\n    export interface GroupActionResponse {\r\n        Groupnames: string;\r\n        Permissions: Permissions;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface GroupAddRequest {\r\n        groupname?: string;\r\n        groupOwner?: string;\r\n        groupDesc?: string;\r\n    }\r\n\r\n    export interface GroupAddResponse {\r\n        groupname: string;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface GroupEditRequest {\r\n        groupname?: string;\r\n    }\r\n\r\n    export interface GroupEditResponse {\r\n        groupname: string;\r\n        Users: Users;\r\n    }\r\n\r\n    export interface usernames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface GroupMemberEditRequest {\r\n        groupname?: string;\r\n        action?: string;\r\n        usernames?: usernames;\r\n    }\r\n\r\n    export interface GroupMemberEditResponse {\r\n        groupname: string;\r\n        action: string;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface GroupMemberEditInputRequest {\r\n        searchinput?: string;\r\n        groupname?: string;\r\n    }\r\n\r\n    export interface GroupMemberEditInputResponse {\r\n        groupname: string;\r\n        toomany: boolean;\r\n        Users: Users;\r\n    }\r\n\r\n    export interface GroupMemberQueryRequest {\r\n        GroupName?: string;\r\n        PageSize?: unsignedInt;\r\n        PageStartFrom?: long;\r\n        SortBy?: UserSortBy;\r\n        Descending?: boolean;\r\n        CacheHint?: long;\r\n    }\r\n\r\n    export interface GroupMemberQueryResponse {\r\n        NoSecMngr: boolean;\r\n        Users: Users;\r\n        TotalUsers: long;\r\n        CacheHint: long;\r\n    }\r\n\r\n    export interface GroupQueryRequest {\r\n        PageSize?: unsignedInt;\r\n        PageStartFrom?: long;\r\n        SortBy?: GroupSortBy;\r\n        Descending?: boolean;\r\n        CacheHint?: long;\r\n    }\r\n\r\n    export interface GroupQueryResponse {\r\n        NoSecMngr: boolean;\r\n        Groups: Groups;\r\n        TotalGroups: long;\r\n        CacheHint: long;\r\n    }\r\n\r\n    export interface GroupRequest {\r\n\r\n    }\r\n\r\n    export interface GroupResponse {\r\n        NoSecMngr: boolean;\r\n        Groups: Groups;\r\n    }\r\n\r\n    export interface PermissionActionRequest {\r\n        rname?: string;\r\n        prefix?: string;\r\n        action?: string;\r\n        account_name?: string;\r\n        account_type?: int;\r\n        allow_access?: boolean;\r\n        allow_read?: boolean;\r\n        allow_write?: boolean;\r\n        allow_full?: boolean;\r\n        deny_access?: boolean;\r\n        deny_read?: boolean;\r\n        deny_write?: boolean;\r\n        deny_full?: boolean;\r\n        user?: string;\r\n        group?: string;\r\n        BasednName?: string;\r\n        ResourceName?: string;\r\n    }\r\n\r\n    export interface PermissionActionResponse {\r\n        AccountName: string;\r\n        IsGroup: boolean;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface BasednsRequest {\r\n\r\n    }\r\n\r\n    export interface Basedn {\r\n        name: string;\r\n        basedn: string;\r\n        rtype: string;\r\n        rtitle: string;\r\n        templatename: string;\r\n    }\r\n\r\n    export interface Basedns {\r\n        Basedn: Basedn[];\r\n    }\r\n\r\n    export interface BasednsResponse {\r\n        NoSecMngr: boolean;\r\n        Basedns: Basedns;\r\n    }\r\n\r\n    export interface names {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface PermissionsResetRequest {\r\n        BasednName?: string;\r\n        prefix?: string;\r\n        names?: names;\r\n        allow_access?: boolean;\r\n        allow_read?: boolean;\r\n        allow_write?: boolean;\r\n        allow_full?: boolean;\r\n        deny_access?: boolean;\r\n        deny_read?: boolean;\r\n        deny_write?: boolean;\r\n        deny_full?: boolean;\r\n        userarray?: string;\r\n        grouparray?: string;\r\n    }\r\n\r\n    export interface PermissionsResetResponse {\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface ws_accessPingRequest {\r\n\r\n    }\r\n\r\n    export interface ws_accessPingResponse {\r\n\r\n    }\r\n\r\n    export interface QueryScopeScansEnabledRequest {\r\n\r\n    }\r\n\r\n    export interface QueryScopeScansEnabledResponse {\r\n        scopeScansStatus: scopeScansStatus;\r\n    }\r\n\r\n    export interface QueryUserViewColumnsRequest {\r\n        username?: string;\r\n    }\r\n\r\n    export interface ViewColumn {\r\n        viewname: string;\r\n        filename: string;\r\n        columnname: string;\r\n    }\r\n\r\n    export interface viewcolumns {\r\n        ViewColumn: ViewColumn[];\r\n    }\r\n\r\n    export interface QueryUserViewColumnsResponse {\r\n        username: string;\r\n        viewcolumns: viewcolumns;\r\n    }\r\n\r\n    export interface QueryViewColumnsRequest {\r\n        viewname?: string;\r\n    }\r\n\r\n    export interface QueryViewColumnsResponse {\r\n        viewname: string;\r\n        viewcolumns: viewcolumns;\r\n    }\r\n\r\n    export interface QueryViewMembersRequest {\r\n        viewname?: string;\r\n    }\r\n\r\n    export interface ViewMember {\r\n        viewname: string;\r\n        name: string;\r\n        membertype: ViewMemberType;\r\n    }\r\n\r\n    export interface viewmembers {\r\n        ViewMember: ViewMember[];\r\n    }\r\n\r\n    export interface QueryViewMembersResponse {\r\n        viewname: string;\r\n        viewmembers: viewmembers;\r\n    }\r\n\r\n    export interface QueryViewsRequest {\r\n\r\n    }\r\n\r\n    export interface View {\r\n        viewname: string;\r\n        description: string;\r\n    }\r\n\r\n    export interface views {\r\n        View: View[];\r\n    }\r\n\r\n    export interface QueryViewsResponse {\r\n        views: views;\r\n    }\r\n\r\n    export interface ResourceAddRequest {\r\n        BasednName?: string;\r\n        name?: string;\r\n        description?: string;\r\n        prefix?: string;\r\n    }\r\n\r\n    export interface ResourceAddResponse {\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface ResourceDeleteRequest {\r\n        BasednName?: string;\r\n        prefix?: string;\r\n        names?: names;\r\n        DoUpdate?: int;\r\n    }\r\n\r\n    export interface ResourceDeleteResponse {\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface ResourcePermissionQueryRequest {\r\n        BasednName?: string;\r\n        prefix?: string;\r\n        Name?: string;\r\n        AccountType?: AccountTypeReq;\r\n        PageSize?: unsignedInt;\r\n        PageStartFrom?: long;\r\n        SortBy?: ResourcePermissionSortBy;\r\n        Descending?: boolean;\r\n        CacheHint?: long;\r\n    }\r\n\r\n    export interface Permission2 {\r\n        account_name: string;\r\n        escaped_account_name: string;\r\n        account_type: int;\r\n        allow_access: boolean;\r\n        allow_read: boolean;\r\n        allow_write: boolean;\r\n        allow_full: boolean;\r\n        deny_access: boolean;\r\n        deny_read: boolean;\r\n        deny_write: boolean;\r\n        deny_full: boolean;\r\n    }\r\n\r\n    export interface Permissions2 {\r\n        Permission: Permission2[];\r\n    }\r\n\r\n    export interface ResourcePermissionQueryResponse {\r\n        NoSecMngr: boolean;\r\n        Permissions: Permissions2;\r\n        TotalResourcePermissions: long;\r\n        CacheHint: long;\r\n    }\r\n\r\n    export interface ResourcePermissionsRequest {\r\n        name?: string;\r\n        BasednName?: string;\r\n        prefix?: string;\r\n    }\r\n\r\n    export interface ResourcePermissionsResponse {\r\n        Permissions: Permissions2;\r\n    }\r\n\r\n    export interface ResourceQueryRequest {\r\n        BasednName?: string;\r\n        prefix?: string;\r\n        Name?: string;\r\n        PageSize?: unsignedInt;\r\n        PageStartFrom?: long;\r\n        SortBy?: ResourceSortBy;\r\n        Descending?: boolean;\r\n        CacheHint?: long;\r\n    }\r\n\r\n    export interface Resource {\r\n        name: string;\r\n        description: string;\r\n        isSpecial: boolean;\r\n    }\r\n\r\n    export interface Resources {\r\n        Resource: Resource[];\r\n    }\r\n\r\n    export interface ResourceQueryResponse {\r\n        NoSecMngr: boolean;\r\n        Resources: Resources;\r\n        TotalResources: long;\r\n        CacheHint: long;\r\n    }\r\n\r\n    export interface ResourcesRequest {\r\n        templatename?: string;\r\n        BasednName?: string;\r\n        prefix?: string;\r\n        searchinput?: string;\r\n    }\r\n\r\n    export interface ResourcesResponse {\r\n        Resources: Resources;\r\n        default_basedn: string;\r\n        default_name: string;\r\n        toomany: boolean;\r\n        scopeScansStatus: scopeScansStatus;\r\n    }\r\n\r\n    export interface UserAccountExportRequest {\r\n        usernames?: usernames;\r\n        groupnames?: groupnames;\r\n    }\r\n\r\n    export interface UserAccountExportResponse {\r\n        Result: base64Binary;\r\n    }\r\n\r\n    export interface UserActionRequest {\r\n        action?: string;\r\n        ActionType?: string;\r\n        usernames?: usernames;\r\n    }\r\n\r\n    export interface UserActionResponse {\r\n        action: string;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface UserEditRequest {\r\n        username?: string;\r\n    }\r\n\r\n    export interface UserEditResponse {\r\n        username: string;\r\n        isLDAPAdmin: boolean;\r\n        Groups: Groups;\r\n    }\r\n\r\n    export interface UserGroupEditRequest {\r\n        username?: string;\r\n        action?: string;\r\n        groupnames?: groupnames;\r\n    }\r\n\r\n    export interface UserGroupEditResponse {\r\n        username: string;\r\n        action: string;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface UserGroupEditInputRequest {\r\n        username?: string;\r\n    }\r\n\r\n    export interface UserGroupEditInputResponse {\r\n        username: string;\r\n        Groups: Groups;\r\n    }\r\n\r\n    export interface UserInfoEditRequest {\r\n        username?: string;\r\n        firstname?: string;\r\n        lastname?: string;\r\n        employeeID?: string;\r\n        employeeNumber?: string;\r\n    }\r\n\r\n    export interface UserInfoEditResponse {\r\n        username: string;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface UserInfoEditInputRequest {\r\n        username?: string;\r\n    }\r\n\r\n    export interface UserInfoEditInputResponse {\r\n        username: string;\r\n        firstname: string;\r\n        lastname: string;\r\n        employeeID: string;\r\n        PasswordExpiration: string;\r\n        employeeNumber: string;\r\n    }\r\n\r\n    export interface UserPosixRequest {\r\n        username?: string;\r\n        posixenabled?: boolean;\r\n        gidnumber?: string;\r\n        uidnumber?: string;\r\n        homedirectory?: string;\r\n        loginshell?: string;\r\n    }\r\n\r\n    export interface UserPosixResponse {\r\n        username: string;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface UserPosixInputRequest {\r\n        username?: string;\r\n    }\r\n\r\n    export interface UserPosixInputResponse {\r\n        username: string;\r\n        posixenabled: boolean;\r\n        gidnumber: string;\r\n        uidnumber: string;\r\n        homedirectory: string;\r\n        loginshell: string;\r\n    }\r\n\r\n    export interface UserQueryRequest {\r\n        Name?: string;\r\n        PageSize?: unsignedInt;\r\n        PageStartFrom?: long;\r\n        SortBy?: UserSortBy;\r\n        Descending?: boolean;\r\n        CacheHint?: long;\r\n    }\r\n\r\n    export interface UserQueryResponse {\r\n        NoSecMngr: boolean;\r\n        Users: Users;\r\n        TotalUsers: long;\r\n        CacheHint: long;\r\n    }\r\n\r\n    export interface UserResetPassRequest {\r\n        username?: string;\r\n        newPassword?: string;\r\n        newPasswordRetype?: string;\r\n    }\r\n\r\n    export interface UserResetPassResponse {\r\n        username: string;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface UserResetPassInputRequest {\r\n        username?: string;\r\n    }\r\n\r\n    export interface UserResetPassInputResponse {\r\n        username: string;\r\n    }\r\n\r\n    export interface UserSudoersRequest {\r\n        username?: string;\r\n        action?: string;\r\n        sudoHost?: string;\r\n        sudoCommand?: string;\r\n        sudoOption?: string;\r\n    }\r\n\r\n    export interface UserSudoersResponse {\r\n        username: string;\r\n        retcode: int;\r\n        retmsg: string;\r\n    }\r\n\r\n    export interface UserSudoersInputRequest {\r\n        username?: string;\r\n    }\r\n\r\n    export interface UserSudoersInputResponse {\r\n        username: string;\r\n        insudoers: boolean;\r\n        sudoHost: string;\r\n        sudoCommand: string;\r\n        sudoOption: string;\r\n    }\r\n\r\n    export interface UserRequest {\r\n        searchinput?: string;\r\n    }\r\n\r\n    export interface UserResponse {\r\n        NoSecMngr: boolean;\r\n        toomany: boolean;\r\n        posixok: boolean;\r\n        Users: Users;\r\n    }\r\n\r\n}\r\n\r\nexport class AccessServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"ws_access\", \"1.17\");\r\n    }\r\n\r\n    AccountPermissions(request: Partial<WsAccess.AccountPermissionsRequest>): Promise<WsAccess.AccountPermissionsResponse> {\r\n        return this._connection.send(\"AccountPermissions\", request, \"json\", false, undefined, \"AccountPermissionsResponse\");\r\n    }\r\n\r\n    AccountPermissionsV2(request: Partial<WsAccess.AccountPermissionsV2Request>): Promise<WsAccess.AccountPermissionsV2Response> {\r\n        return this._connection.send(\"AccountPermissionsV2\", request, \"json\", false, undefined, \"AccountPermissionsV2Response\");\r\n    }\r\n\r\n    AddUser(request: Partial<WsAccess.AddUserRequest>): Promise<WsAccess.AddUserResponse> {\r\n        return this._connection.send(\"AddUser\", request, \"json\", false, undefined, \"AddUserResponse\");\r\n    }\r\n\r\n    AddView(request: Partial<WsAccess.AddViewRequest>): Promise<WsAccess.AddViewResponse> {\r\n        return this._connection.send(\"AddView\", request, \"json\", false, undefined, \"AddViewResponse\");\r\n    }\r\n\r\n    AddViewColumn(request: Partial<WsAccess.AddViewColumnRequest>): Promise<WsAccess.AddViewColumnResponse> {\r\n        return this._connection.send(\"AddViewColumn\", request, \"json\", false, undefined, \"AddViewColumnResponse\");\r\n    }\r\n\r\n    AddViewMember(request: Partial<WsAccess.AddViewMemberRequest>): Promise<WsAccess.AddViewMemberResponse> {\r\n        return this._connection.send(\"AddViewMember\", request, \"json\", false, undefined, \"AddViewMemberResponse\");\r\n    }\r\n\r\n    ClearPermissionsCache(request: Partial<WsAccess.ClearPermissionsCacheRequest>): Promise<WsAccess.ClearPermissionsCacheResponse> {\r\n        return this._connection.send(\"ClearPermissionsCache\", request, \"json\", false, undefined, \"ClearPermissionsCacheResponse\");\r\n    }\r\n\r\n    DeleteView(request: Partial<WsAccess.DeleteViewRequest>): Promise<WsAccess.DeleteViewResponse> {\r\n        return this._connection.send(\"DeleteView\", request, \"json\", false, undefined, \"DeleteViewResponse\");\r\n    }\r\n\r\n    DeleteViewColumn(request: Partial<WsAccess.DeleteViewColumnRequest>): Promise<WsAccess.DeleteViewColumnResponse> {\r\n        return this._connection.send(\"DeleteViewColumn\", request, \"json\", false, undefined, \"DeleteViewColumnResponse\");\r\n    }\r\n\r\n    DeleteViewMember(request: Partial<WsAccess.DeleteViewMemberRequest>): Promise<WsAccess.DeleteViewMemberResponse> {\r\n        return this._connection.send(\"DeleteViewMember\", request, \"json\", false, undefined, \"DeleteViewMemberResponse\");\r\n    }\r\n\r\n    DisableScopeScans(request: Partial<WsAccess.DisableScopeScansRequest>): Promise<WsAccess.DisableScopeScansResponse> {\r\n        return this._connection.send(\"DisableScopeScans\", request, \"json\", false, undefined, \"DisableScopeScansResponse\");\r\n    }\r\n\r\n    EnableScopeScans(request: Partial<WsAccess.EnableScopeScansRequest>): Promise<WsAccess.EnableScopeScansResponse> {\r\n        return this._connection.send(\"EnableScopeScans\", request, \"json\", false, undefined, \"EnableScopeScansResponse\");\r\n    }\r\n\r\n    FilePermission(request: Partial<WsAccess.FilePermissionRequest>): Promise<WsAccess.FilePermissionResponse> {\r\n        return this._connection.send(\"FilePermission\", request, \"json\", false, undefined, \"FilePermissionResponse\");\r\n    }\r\n\r\n    GroupAction(request: Partial<WsAccess.GroupActionRequest>): Promise<WsAccess.GroupActionResponse> {\r\n        return this._connection.send(\"GroupAction\", request, \"json\", false, undefined, \"GroupActionResponse\");\r\n    }\r\n\r\n    GroupAdd(request: Partial<WsAccess.GroupAddRequest>): Promise<WsAccess.GroupAddResponse> {\r\n        return this._connection.send(\"GroupAdd\", request, \"json\", false, undefined, \"GroupAddResponse\");\r\n    }\r\n\r\n    GroupEdit(request: Partial<WsAccess.GroupEditRequest>): Promise<WsAccess.GroupEditResponse> {\r\n        return this._connection.send(\"GroupEdit\", request, \"json\", false, undefined, \"GroupEditResponse\");\r\n    }\r\n\r\n    GroupMemberEdit(request: Partial<WsAccess.GroupMemberEditRequest>): Promise<WsAccess.GroupMemberEditResponse> {\r\n        return this._connection.send(\"GroupMemberEdit\", request, \"json\", false, undefined, \"GroupMemberEditResponse\");\r\n    }\r\n\r\n    GroupMemberEditInput(request: Partial<WsAccess.GroupMemberEditInputRequest>): Promise<WsAccess.GroupMemberEditInputResponse> {\r\n        return this._connection.send(\"GroupMemberEditInput\", request, \"json\", false, undefined, \"GroupMemberEditInputResponse\");\r\n    }\r\n\r\n    GroupMemberQuery(request: Partial<WsAccess.GroupMemberQueryRequest>): Promise<WsAccess.GroupMemberQueryResponse> {\r\n        return this._connection.send(\"GroupMemberQuery\", request, \"json\", false, undefined, \"GroupMemberQueryResponse\");\r\n    }\r\n\r\n    GroupQuery(request: Partial<WsAccess.GroupQueryRequest>): Promise<WsAccess.GroupQueryResponse> {\r\n        return this._connection.send(\"GroupQuery\", request, \"json\", false, undefined, \"GroupQueryResponse\");\r\n    }\r\n\r\n    Groups(request: Partial<WsAccess.GroupRequest>): Promise<WsAccess.GroupResponse> {\r\n        return this._connection.send(\"Groups\", request, \"json\", false, undefined, \"GroupResponse\");\r\n    }\r\n\r\n    PermissionAction(request: Partial<WsAccess.PermissionActionRequest>): Promise<WsAccess.PermissionActionResponse> {\r\n        return this._connection.send(\"PermissionAction\", request, \"json\", false, undefined, \"PermissionActionResponse\");\r\n    }\r\n\r\n    Permissions(request: Partial<WsAccess.BasednsRequest>): Promise<WsAccess.BasednsResponse> {\r\n        return this._connection.send(\"Permissions\", request, \"json\", false, undefined, \"BasednsResponse\");\r\n    }\r\n\r\n    PermissionsReset(request: Partial<WsAccess.PermissionsResetRequest>): Promise<WsAccess.PermissionsResetResponse> {\r\n        return this._connection.send(\"PermissionsReset\", request, \"json\", false, undefined, \"PermissionsResetResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsAccess.ws_accessPingRequest>): Promise<WsAccess.ws_accessPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_accessPingResponse\");\r\n    }\r\n\r\n    QueryScopeScansEnabled(request: Partial<WsAccess.QueryScopeScansEnabledRequest>): Promise<WsAccess.QueryScopeScansEnabledResponse> {\r\n        return this._connection.send(\"QueryScopeScansEnabled\", request, \"json\", false, undefined, \"QueryScopeScansEnabledResponse\");\r\n    }\r\n\r\n    QueryUserViewColumns(request: Partial<WsAccess.QueryUserViewColumnsRequest>): Promise<WsAccess.QueryUserViewColumnsResponse> {\r\n        return this._connection.send(\"QueryUserViewColumns\", request, \"json\", false, undefined, \"QueryUserViewColumnsResponse\");\r\n    }\r\n\r\n    QueryViewColumns(request: Partial<WsAccess.QueryViewColumnsRequest>): Promise<WsAccess.QueryViewColumnsResponse> {\r\n        return this._connection.send(\"QueryViewColumns\", request, \"json\", false, undefined, \"QueryViewColumnsResponse\");\r\n    }\r\n\r\n    QueryViewMembers(request: Partial<WsAccess.QueryViewMembersRequest>): Promise<WsAccess.QueryViewMembersResponse> {\r\n        return this._connection.send(\"QueryViewMembers\", request, \"json\", false, undefined, \"QueryViewMembersResponse\");\r\n    }\r\n\r\n    QueryViews(request: Partial<WsAccess.QueryViewsRequest>): Promise<WsAccess.QueryViewsResponse> {\r\n        return this._connection.send(\"QueryViews\", request, \"json\", false, undefined, \"QueryViewsResponse\");\r\n    }\r\n\r\n    ResourceAdd(request: Partial<WsAccess.ResourceAddRequest>): Promise<WsAccess.ResourceAddResponse> {\r\n        return this._connection.send(\"ResourceAdd\", request, \"json\", false, undefined, \"ResourceAddResponse\");\r\n    }\r\n\r\n    ResourceDelete(request: Partial<WsAccess.ResourceDeleteRequest>): Promise<WsAccess.ResourceDeleteResponse> {\r\n        return this._connection.send(\"ResourceDelete\", request, \"json\", false, undefined, \"ResourceDeleteResponse\");\r\n    }\r\n\r\n    ResourcePermissionQuery(request: Partial<WsAccess.ResourcePermissionQueryRequest>): Promise<WsAccess.ResourcePermissionQueryResponse> {\r\n        return this._connection.send(\"ResourcePermissionQuery\", request, \"json\", false, undefined, \"ResourcePermissionQueryResponse\");\r\n    }\r\n\r\n    ResourcePermissions(request: Partial<WsAccess.ResourcePermissionsRequest>): Promise<WsAccess.ResourcePermissionsResponse> {\r\n        return this._connection.send(\"ResourcePermissions\", request, \"json\", false, undefined, \"ResourcePermissionsResponse\");\r\n    }\r\n\r\n    ResourceQuery(request: Partial<WsAccess.ResourceQueryRequest>): Promise<WsAccess.ResourceQueryResponse> {\r\n        return this._connection.send(\"ResourceQuery\", request, \"json\", false, undefined, \"ResourceQueryResponse\");\r\n    }\r\n\r\n    Resources(request: Partial<WsAccess.ResourcesRequest>): Promise<WsAccess.ResourcesResponse> {\r\n        return this._connection.send(\"Resources\", request, \"json\", false, undefined, \"ResourcesResponse\");\r\n    }\r\n\r\n    UserAccountExport(request: Partial<WsAccess.UserAccountExportRequest>): Promise<WsAccess.UserAccountExportResponse> {\r\n        return this._connection.send(\"UserAccountExport\", request, \"json\", false, undefined, \"UserAccountExportResponse\");\r\n    }\r\n\r\n    UserAction(request: Partial<WsAccess.UserActionRequest>): Promise<WsAccess.UserActionResponse> {\r\n        return this._connection.send(\"UserAction\", request, \"json\", false, undefined, \"UserActionResponse\");\r\n    }\r\n\r\n    UserEdit(request: Partial<WsAccess.UserEditRequest>): Promise<WsAccess.UserEditResponse> {\r\n        return this._connection.send(\"UserEdit\", request, \"json\", false, undefined, \"UserEditResponse\");\r\n    }\r\n\r\n    UserGroupEdit(request: Partial<WsAccess.UserGroupEditRequest>): Promise<WsAccess.UserGroupEditResponse> {\r\n        return this._connection.send(\"UserGroupEdit\", request, \"json\", false, undefined, \"UserGroupEditResponse\");\r\n    }\r\n\r\n    UserGroupEditInput(request: Partial<WsAccess.UserGroupEditInputRequest>): Promise<WsAccess.UserGroupEditInputResponse> {\r\n        return this._connection.send(\"UserGroupEditInput\", request, \"json\", false, undefined, \"UserGroupEditInputResponse\");\r\n    }\r\n\r\n    UserInfoEdit(request: Partial<WsAccess.UserInfoEditRequest>): Promise<WsAccess.UserInfoEditResponse> {\r\n        return this._connection.send(\"UserInfoEdit\", request, \"json\", false, undefined, \"UserInfoEditResponse\");\r\n    }\r\n\r\n    UserInfoEditInput(request: Partial<WsAccess.UserInfoEditInputRequest>): Promise<WsAccess.UserInfoEditInputResponse> {\r\n        return this._connection.send(\"UserInfoEditInput\", request, \"json\", false, undefined, \"UserInfoEditInputResponse\");\r\n    }\r\n\r\n    UserPosix(request: Partial<WsAccess.UserPosixRequest>): Promise<WsAccess.UserPosixResponse> {\r\n        return this._connection.send(\"UserPosix\", request, \"json\", false, undefined, \"UserPosixResponse\");\r\n    }\r\n\r\n    UserPosixInput(request: Partial<WsAccess.UserPosixInputRequest>): Promise<WsAccess.UserPosixInputResponse> {\r\n        return this._connection.send(\"UserPosixInput\", request, \"json\", false, undefined, \"UserPosixInputResponse\");\r\n    }\r\n\r\n    UserQuery(request: Partial<WsAccess.UserQueryRequest>): Promise<WsAccess.UserQueryResponse> {\r\n        return this._connection.send(\"UserQuery\", request, \"json\", false, undefined, \"UserQueryResponse\");\r\n    }\r\n\r\n    UserResetPass(request: Partial<WsAccess.UserResetPassRequest>): Promise<WsAccess.UserResetPassResponse> {\r\n        return this._connection.send(\"UserResetPass\", request, \"json\", false, undefined, \"UserResetPassResponse\");\r\n    }\r\n\r\n    UserResetPassInput(request: Partial<WsAccess.UserResetPassInputRequest>): Promise<WsAccess.UserResetPassInputResponse> {\r\n        return this._connection.send(\"UserResetPassInput\", request, \"json\", false, undefined, \"UserResetPassInputResponse\");\r\n    }\r\n\r\n    UserSudoers(request: Partial<WsAccess.UserSudoersRequest>): Promise<WsAccess.UserSudoersResponse> {\r\n        return this._connection.send(\"UserSudoers\", request, \"json\", false, undefined, \"UserSudoersResponse\");\r\n    }\r\n\r\n    UserSudoersInput(request: Partial<WsAccess.UserSudoersInputRequest>): Promise<WsAccess.UserSudoersInputResponse> {\r\n        return this._connection.send(\"UserSudoersInput\", request, \"json\", false, undefined, \"UserSudoersInputResponse\");\r\n    }\r\n\r\n    Users(request: Partial<WsAccess.UserRequest>): Promise<WsAccess.UserResponse> {\r\n        return this._connection.send(\"Users\", request, \"json\", false, undefined, \"UserResponse\");\r\n    }\r\n\r\n}\r\n","import { AccessServiceBase, WsAccess } from \"./wsdl/ws_access/v1.17/ws_access.ts\";\r\n\r\nexport {\r\n    WsAccess\r\n};\r\n\r\nexport class AccessService extends AccessServiceBase {\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsAccount {\r\n\r\n    export type int = number;\r\n\r\n    export interface MyAccountRequest {\r\n\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface Groups {\r\n        Group: string[];\r\n    }\r\n\r\n    export interface MyAccountResponse {\r\n        Exceptions: Exceptions;\r\n        username: string;\r\n        firstName: string;\r\n        lastName: string;\r\n        passwordExpiration: string;\r\n        passwordDaysRemaining: int;\r\n        passwordExpirationWarningDays: int;\r\n        employeeID: string;\r\n        distinguishedName: string;\r\n        accountType: string;\r\n        passwordNeverExpires: boolean;\r\n        passwordIsExpired: boolean;\r\n        CanUpdatePassword: boolean;\r\n        accountStatus: int;\r\n        Groups: Groups;\r\n    }\r\n\r\n    export interface ws_accountPingRequest {\r\n\r\n    }\r\n\r\n    export interface ws_accountPingResponse {\r\n\r\n    }\r\n\r\n    export interface UpdateUserRequest {\r\n        username?: string;\r\n        oldpass?: string;\r\n        newpass1?: string;\r\n        newpass2?: string;\r\n    }\r\n\r\n    export interface UpdateUserResponse {\r\n        Exceptions: Exceptions;\r\n        retcode: int;\r\n        message: string;\r\n    }\r\n\r\n    export interface UpdateUserInputRequest {\r\n\r\n    }\r\n\r\n    export interface UpdateUserInputResponse {\r\n        Exceptions: Exceptions;\r\n        username: string;\r\n    }\r\n\r\n    export interface VerifyUserRequest {\r\n        application?: string;\r\n        version?: string;\r\n    }\r\n\r\n    export interface VerifyUserResponse {\r\n        Exceptions: Exceptions;\r\n        retcode: int;\r\n    }\r\n\r\n}\r\n\r\nexport class AccountServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"ws_account\", \"1.07\");\r\n    }\r\n\r\n    MyAccount(request: Partial<WsAccount.MyAccountRequest>): Promise<WsAccount.MyAccountResponse> {\r\n        return this._connection.send(\"MyAccount\", request, \"json\", false, undefined, \"MyAccountResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsAccount.ws_accountPingRequest>): Promise<WsAccount.ws_accountPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_accountPingResponse\");\r\n    }\r\n\r\n    UpdateUser(request: Partial<WsAccount.UpdateUserRequest>): Promise<WsAccount.UpdateUserResponse> {\r\n        return this._connection.send(\"UpdateUser\", request, \"json\", false, undefined, \"UpdateUserResponse\");\r\n    }\r\n\r\n    UpdateUserInput(request: Partial<WsAccount.UpdateUserInputRequest>): Promise<WsAccount.UpdateUserInputResponse> {\r\n        return this._connection.send(\"UpdateUserInput\", request, \"json\", false, undefined, \"UpdateUserInputResponse\");\r\n    }\r\n\r\n    VerifyUser(request: Partial<WsAccount.VerifyUserRequest>): Promise<WsAccount.VerifyUserResponse> {\r\n        return this._connection.send(\"VerifyUser\", request, \"json\", false, undefined, \"VerifyUserResponse\");\r\n    }\r\n\r\n}\r\n","import { AccountServiceBase, WsAccount } from \"./wsdl/ws_account/v1.07/ws_account.ts\";\r\nimport { ESPExceptions } from \"../espConnection.ts\";\r\n\r\nexport {\r\n    type WsAccount\r\n};\r\n\r\nexport class AccountService extends AccountServiceBase {\r\n\r\n    VerifyUser(request: WsAccount.VerifyUserRequest): Promise<WsAccount.VerifyUserResponse> {\r\n        return this._connection.send(\"VerifyUser\", request)\r\n            .catch((e: ESPExceptions) => {\r\n                //  old client version warning  ---\r\n                if (e.isESPExceptions && e.Exception.some(exception => exception.Code === 20043)) {\r\n                    return {\r\n                        retcode: 20043,\r\n                        Exceptions: {\r\n                            Source: \"wsAccount\",\r\n                            Exception: e.Exception\r\n                        }\r\n                    };\r\n                }\r\n                throw e;\r\n            });\r\n    }\r\n\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsCloud {\r\n\r\n    export type int = number;\r\n\r\n    export interface GetPODsRequest {\r\n\r\n    }\r\n\r\n    export interface Port {\r\n        ContainerPort: int;\r\n        Name: string;\r\n        Protocol: string;\r\n    }\r\n\r\n    export interface Ports {\r\n        Port: Port[];\r\n    }\r\n\r\n    export interface Pod {\r\n        Name: string;\r\n        Status: string;\r\n        CreationTimestamp: string;\r\n        ContainerName: string;\r\n        ContainerCount: int;\r\n        ContainerReadyCount: int;\r\n        ContainerRestartCount: int;\r\n        Ports: Ports;\r\n    }\r\n\r\n    export interface Pods {\r\n        Pod: Pod[];\r\n    }\r\n\r\n    export interface GetPODsResponse {\r\n        Pods: Pods;\r\n    }\r\n\r\n    export interface GetServicesRequest {\r\n\r\n    }\r\n\r\n    export interface GetServicesResponse {\r\n        Result: string;\r\n    }\r\n\r\n    export interface WsCloudPingRequest {\r\n\r\n    }\r\n\r\n    export interface WsCloudPingResponse {\r\n\r\n    }\r\n\r\n}\r\n\r\nexport class CloudServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WsCloud\", \"1.02\");\r\n    }\r\n\r\n    GetPODs(request: Partial<WsCloud.GetPODsRequest>): Promise<WsCloud.GetPODsResponse> {\r\n        return this._connection.send(\"GetPODs\", request, \"json\", false, undefined, \"GetPODsResponse\");\r\n    }\r\n\r\n    GetServices(request: Partial<WsCloud.GetServicesRequest>): Promise<WsCloud.GetServicesResponse> {\r\n        return this._connection.send(\"GetServices\", request, \"json\", false, undefined, \"GetServicesResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsCloud.WsCloudPingRequest>): Promise<WsCloud.WsCloudPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsCloudPingResponse\");\r\n    }\r\n\r\n}\r\n","import { scopedLogger } from \"@hpcc-js/util\";\r\nimport type { V1Pod } from \"@kubernetes/client-node\";\r\nimport type { WsCloud as WsCloudV1 } from \"./wsdl/WsCloud/v1/WsCloud.ts\";\r\nimport { CloudServiceBase, WsCloud } from \"./wsdl/WsCloud/v1.02/WsCloud.ts\";\r\n\r\nconst logger = scopedLogger(\"@hpcc-js/comms/services/wsCloud.ts\");\r\n\r\nexport {\r\n    type WsCloud\r\n};\r\n\r\nfunction isGetPODsResponse_v1_02(response: any): response is WsCloud.GetPODsResponse {\r\n    return response?.Pods !== undefined;\r\n}\r\n\r\nfunction mapPorts(pod: V1Pod): WsCloud.Port[] {\r\n    return pod.spec?.containers?.reduce((prev, curr) => {\r\n        curr.ports?.forEach(p => {\r\n            prev.push({\r\n                ContainerPort: p.containerPort,\r\n                Name: p.name,\r\n                Protocol: p.protocol\r\n            });\r\n        });\r\n        return prev;\r\n    }, [] as WsCloud.Port[]) ?? [];\r\n}\r\n\r\nfunction mapPods(pods: V1Pod[]): WsCloud.Pod[] {\r\n    return pods\r\n        .filter(pod => {\r\n            const labels = pod?.metadata?.labels ?? {};\r\n            return labels.hasOwnProperty(\"app.kubernetes.io/part-of\") && labels[\"app.kubernetes.io/part-of\"] === \"HPCC-Platform\";\r\n        })\r\n        .map((pod: V1Pod): WsCloud.Pod => {\r\n            const started = new Date(pod.metadata?.creationTimestamp);\r\n            return {\r\n                Name: pod.metadata.name,\r\n                Status: pod.status?.phase,\r\n                CreationTimestamp: started.toISOString(),\r\n                ContainerName: pod.status?.containerStatuses?.reduce((prev, curr) => {\r\n                    if (curr.name) {\r\n                        prev.push(curr.name);\r\n                    } return prev;\r\n                }, [] as string[]).join(\", \") ?? \"\",\r\n                ContainerCount: pod.spec?.containers?.length ?? 0,\r\n                ContainerReadyCount: pod.status?.containerStatuses?.reduce((prev, curr) => prev + (curr.ready ? 1 : 0), 0),\r\n                ContainerRestartCount: pod.status?.containerStatuses?.reduce((prev, curr) => prev + curr.restartCount, 0),\r\n                Ports: {\r\n                    Port: mapPorts(pod)\r\n                },\r\n            };\r\n        })\r\n        ;\r\n}\r\n\r\nexport class CloudService extends CloudServiceBase {\r\n\r\n    getPODs(): Promise<WsCloud.Pod[]> {\r\n        return super.GetPODs({}).then((response: WsCloud.GetPODsResponse | WsCloudV1.GetPODsResponse) => {\r\n            if (isGetPODsResponse_v1_02(response)) {\r\n                return response.Pods?.Pod ?? [];\r\n            }\r\n            try {\r\n                const obj = typeof response.Result === \"string\" ? JSON.parse(response.Result) : response.Result;\r\n                return mapPods(obj?.items ?? []);\r\n            } catch (error) {\r\n                logger.error(`Error parsing V1Pods json '${(error instanceof Error ? error.message : String(error))}'`);\r\n                return [];\r\n            }\r\n        });\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsCodesign {\r\n\r\n    export type int = number;\r\n\r\n    export enum SigningMethodType {\r\n        gpg = \"gpg\"\r\n    }\r\n\r\n    export interface ListUserIDsRequest {\r\n\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface UserIDs {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface ListUserIDsResponse {\r\n        Exceptions: Exceptions;\r\n        UserIDs: UserIDs;\r\n    }\r\n\r\n    export interface ws_codesignPingRequest {\r\n\r\n    }\r\n\r\n    export interface ws_codesignPingResponse {\r\n\r\n    }\r\n\r\n    export interface SignRequest {\r\n        SigningMethod?: SigningMethodType;\r\n        UserID?: string;\r\n        KeyPass?: string;\r\n        Text?: string;\r\n    }\r\n\r\n    export interface SignResponse {\r\n        Exceptions: Exceptions;\r\n        RetCode: int;\r\n        ErrMsg: string;\r\n        SignedText: string;\r\n    }\r\n\r\n    export interface VerifyRequest {\r\n        Text?: string;\r\n    }\r\n\r\n    export interface VerifyResponse {\r\n        Exceptions: Exceptions;\r\n        RetCode: int;\r\n        ErrMsg: string;\r\n        IsVerified: boolean;\r\n        SignedBy: string;\r\n    }\r\n\r\n}\r\n\r\nexport class CodesignServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"ws_codesign\", \"1.1\");\r\n    }\r\n\r\n    ListUserIDs(request: Partial<WsCodesign.ListUserIDsRequest>): Promise<WsCodesign.ListUserIDsResponse> {\r\n        return this._connection.send(\"ListUserIDs\", request, \"json\", false, undefined, \"ListUserIDsResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsCodesign.ws_codesignPingRequest>): Promise<WsCodesign.ws_codesignPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_codesignPingResponse\");\r\n    }\r\n\r\n    Sign(request: Partial<WsCodesign.SignRequest>): Promise<WsCodesign.SignResponse> {\r\n        return this._connection.send(\"Sign\", request, \"json\", false, undefined, \"SignResponse\");\r\n    }\r\n\r\n    Verify(request: Partial<WsCodesign.VerifyRequest>): Promise<WsCodesign.VerifyResponse> {\r\n        return this._connection.send(\"Verify\", request, \"json\", false, undefined, \"VerifyResponse\");\r\n    }\r\n\r\n}\r\n","import { CodesignServiceBase, WsCodesign } from \"./wsdl/ws_codesign/v1.1/ws_codesign.ts\";\r\n\r\nexport { WsCodesign };\r\n\r\nexport class CodesignService extends CodesignServiceBase {\r\n\r\n    ListUserIDsEx(request: Partial<WsCodesign.ListUserIDsRequest>): Promise<string[]> {\r\n        return super.ListUserIDs(request).then((response: WsCodesign.ListUserIDsResponse) => {\r\n            return response.UserIDs.Item;\r\n        }).catch(e => {\r\n            return [];\r\n        });\r\n    }\r\n\r\n    Sign(request: Partial<WsCodesign.SignRequest>): Promise<WsCodesign.SignResponse> {\r\n        return super.Sign({ SigningMethod: WsCodesign.SigningMethodType.gpg, ...request });\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsDali {\r\n\r\n    export type unsignedInt = number;\r\n\r\n    export interface AddRequest {\r\n        Path?: string;\r\n        Value?: string;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface ResultResponse {\r\n        Exceptions: Exceptions;\r\n        Result: string;\r\n    }\r\n\r\n    export interface ClearTraceTransactionsRequest {\r\n\r\n    }\r\n\r\n    export interface CountRequest {\r\n        Path?: string;\r\n    }\r\n\r\n    export interface CountResponse {\r\n        Exceptions: Exceptions;\r\n        Result: unsignedInt;\r\n    }\r\n\r\n    export interface DFSCheckRequest {\r\n\r\n    }\r\n\r\n    export interface DFSExistsRequest {\r\n        FileName?: string;\r\n    }\r\n\r\n    export interface BooleanResponse {\r\n        Exceptions: Exceptions;\r\n        Result: boolean;\r\n    }\r\n\r\n    export interface DFSLSRequest {\r\n        Name?: string;\r\n        PathAndNameOnly?: boolean;\r\n        IncludeSubFileInfo?: boolean;\r\n        Recursively?: boolean;\r\n    }\r\n\r\n    export interface DeleteRequest {\r\n        Path?: string;\r\n    }\r\n\r\n    export interface DisconnectClientConnectionRequest {\r\n        Endpoint?: string;\r\n    }\r\n\r\n    export interface GetClientsRequest {\r\n\r\n    }\r\n\r\n    export interface GetConnectionsRequest {\r\n\r\n    }\r\n\r\n    export interface GetDFSCSVRequest {\r\n        LogicalNameMask?: string;\r\n    }\r\n\r\n    export interface GetDFSMapRequest {\r\n        FileName?: string;\r\n    }\r\n\r\n    export interface GetDFSParentsRequest {\r\n        FileName?: string;\r\n    }\r\n\r\n    export interface GetLogicalFileRequest {\r\n        FileName?: string;\r\n    }\r\n\r\n    export interface GetLogicalFilePartRequest {\r\n        FileName?: string;\r\n        PartNumber?: unsignedInt;\r\n    }\r\n\r\n    export interface GetProtectedListRequest {\r\n        FileName?: string;\r\n        CallerId?: string;\r\n    }\r\n\r\n    export interface GetSDSStatsRequest {\r\n\r\n    }\r\n\r\n    export interface GetSDSSubscribersRequest {\r\n\r\n    }\r\n\r\n    export interface GetValueRequest {\r\n        Path?: string;\r\n    }\r\n\r\n    export interface ImportRequest {\r\n        XML?: string;\r\n        Path?: string;\r\n        Add?: boolean;\r\n    }\r\n\r\n    export interface ListSDSLocksRequest {\r\n\r\n    }\r\n\r\n    export interface WSDaliPingRequest {\r\n\r\n    }\r\n\r\n    export interface WSDaliPingResponse {\r\n\r\n    }\r\n\r\n    export interface SaveSDSStoreRequest {\r\n\r\n    }\r\n\r\n    export interface SetLogicalFilePartAttrRequest {\r\n        FileName?: string;\r\n        PartNumber?: unsignedInt;\r\n        Attr?: string;\r\n        Value?: string;\r\n    }\r\n\r\n    export interface SetProtectedRequest {\r\n        FileName?: string;\r\n        CallerId?: string;\r\n    }\r\n\r\n    export interface SetTraceSlowTransactionsRequest {\r\n        SlowThresholdMS?: unsignedInt;\r\n    }\r\n\r\n    export interface SetTraceTransactionsRequest {\r\n\r\n    }\r\n\r\n    export interface SetUnprotectedRequest {\r\n        FileName?: string;\r\n        CallerId?: string;\r\n    }\r\n\r\n    export interface SetValueRequest {\r\n        Path?: string;\r\n        Value?: string;\r\n    }\r\n\r\n    export interface UnlockSDSLockRequest {\r\n        ConnectionID?: string;\r\n        Close?: boolean;\r\n    }\r\n\r\n}\r\n\r\nexport class DaliServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WSDali\", \"1.07\");\r\n    }\r\n\r\n    Add(request: Partial<WsDali.AddRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"Add\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    ClearTraceTransactions(request: Partial<WsDali.ClearTraceTransactionsRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"ClearTraceTransactions\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    Count(request: Partial<WsDali.CountRequest>): Promise<WsDali.CountResponse> {\r\n        return this._connection.send(\"Count\", request, \"json\", false, undefined, \"CountResponse\");\r\n    }\r\n\r\n    DFSCheck(request: Partial<WsDali.DFSCheckRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"DFSCheck\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    DFSExists(request: Partial<WsDali.DFSExistsRequest>): Promise<WsDali.BooleanResponse> {\r\n        return this._connection.send(\"DFSExists\", request, \"json\", false, undefined, \"BooleanResponse\");\r\n    }\r\n\r\n    DFSLS(request: Partial<WsDali.DFSLSRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"DFSLS\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    Delete(request: Partial<WsDali.DeleteRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"Delete\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    DisconnectClientConnection(request: Partial<WsDali.DisconnectClientConnectionRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"DisconnectClientConnection\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetClients(request: Partial<WsDali.GetClientsRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetClients\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetConnections(request: Partial<WsDali.GetConnectionsRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetConnections\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetDFSCSV(request: Partial<WsDali.GetDFSCSVRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetDFSCSV\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetDFSMap(request: Partial<WsDali.GetDFSMapRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetDFSMap\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetDFSParents(request: Partial<WsDali.GetDFSParentsRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetDFSParents\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetLogicalFile(request: Partial<WsDali.GetLogicalFileRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetLogicalFile\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetLogicalFilePart(request: Partial<WsDali.GetLogicalFilePartRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetLogicalFilePart\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetProtectedList(request: Partial<WsDali.GetProtectedListRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetProtectedList\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetSDSStats(request: Partial<WsDali.GetSDSStatsRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetSDSStats\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetSDSSubscribers(request: Partial<WsDali.GetSDSSubscribersRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetSDSSubscribers\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetValue(request: Partial<WsDali.GetValueRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetValue\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    Import(request: Partial<WsDali.ImportRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"Import\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    ListSDSLocks(request: Partial<WsDali.ListSDSLocksRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"ListSDSLocks\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsDali.WSDaliPingRequest>): Promise<WsDali.WSDaliPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WSDaliPingResponse\");\r\n    }\r\n\r\n    SaveSDSStore(request: Partial<WsDali.SaveSDSStoreRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SaveSDSStore\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    SetLogicalFilePartAttr(request: Partial<WsDali.SetLogicalFilePartAttrRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetLogicalFilePartAttr\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    SetProtected(request: Partial<WsDali.SetProtectedRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetProtected\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    SetTraceSlowTransactions(request: Partial<WsDali.SetTraceSlowTransactionsRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetTraceSlowTransactions\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    SetTraceTransactions(request: Partial<WsDali.SetTraceTransactionsRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetTraceTransactions\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    SetUnprotected(request: Partial<WsDali.SetUnprotectedRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetUnprotected\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    SetValue(request: Partial<WsDali.SetValueRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetValue\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    UnlockSDSLock(request: Partial<WsDali.UnlockSDSLockRequest>): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"UnlockSDSLock\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n}\r\n","import { DaliServiceBase, WsDali } from \"./wsdl/WsDali/v1.07/WsDali.ts\";\r\n\r\nexport {\r\n    type WsDali\r\n};\r\n\r\nexport class DaliService extends DaliServiceBase {\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsDfu {\r\n\r\n    export type base64Binary = string;\r\n    export type long = number;\r\n    export type int = number;\r\n    export type double = number;\r\n\r\n    export enum DFUArrayActions {\r\n        Delete = \"Delete\",\r\n        AddToSuperfile = \"Add To Superfile\",\r\n        ChangeProtection = \"Change Protection\",\r\n        ChangeRestriction = \"Change Restriction\"\r\n    }\r\n\r\n    export enum DFUChangeProtection {\r\n        NoChange = 0,\r\n        Protect = 1,\r\n        Unprotect = 2,\r\n        UnprotectAll = 3\r\n    }\r\n\r\n    export enum DFUChangeRestriction {\r\n        NoChange = 0,\r\n        Restrict = 1,\r\n        Unrestricted = 2\r\n    }\r\n\r\n    export enum DFUDefFileFormat {\r\n        xml = \"xml\",\r\n        def = \"def\"\r\n    }\r\n\r\n    export enum FileAccessRole {\r\n        Token = \"Token\",\r\n        Engine = \"Engine\",\r\n        External = \"External\"\r\n    }\r\n\r\n    export enum SecAccessType {\r\n        None = \"None\",\r\n        Access = \"Access\",\r\n        Read = \"Read\",\r\n        Write = \"Write\",\r\n        Full = \"Full\"\r\n    }\r\n\r\n    export enum DFUFileType {\r\n        Flat = \"Flat\",\r\n        Index = \"Index\",\r\n        Xml = \"Xml\",\r\n        Csv = \"Csv\",\r\n        Json = \"Json\",\r\n        IndexLocal = \"IndexLocal\",\r\n        IndexPartitioned = \"IndexPartitioned\",\r\n        Unset = \"Unset\"\r\n    }\r\n\r\n    export interface AddRequest {\r\n        dstname?: string;\r\n        xmlmap?: base64Binary;\r\n        dstcluster?: string;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface AddResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface AddRemoteRequest {\r\n        dstname?: string;\r\n        srcname?: string;\r\n        srcdali?: string;\r\n        srcusername?: string;\r\n        srcpassword?: string;\r\n    }\r\n\r\n    export interface AddRemoteResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface names {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface AddtoSuperfileRequest {\r\n        Superfile?: string;\r\n        Subfiles?: string;\r\n        names?: names;\r\n        ExistingFile?: boolean;\r\n        BackToPage?: string;\r\n    }\r\n\r\n    export interface SubfileNames {\r\n        SubfileName: string[];\r\n    }\r\n\r\n    export interface AddtoSuperfileResponse {\r\n        Exceptions: Exceptions;\r\n        Subfiles: string;\r\n        BackToPage: string;\r\n        SubfileNames: SubfileNames;\r\n    }\r\n\r\n    export interface LogicalFiles {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface DFUArrayActionRequest {\r\n        Type?: DFUArrayActions;\r\n        NoDelete?: boolean;\r\n        BackToPage?: string;\r\n        LogicalFiles?: LogicalFiles;\r\n        removeFromSuperfiles?: boolean;\r\n        removeRecursively?: boolean;\r\n        Protect?: DFUChangeProtection;\r\n        Restrict?: DFUChangeRestriction;\r\n    }\r\n\r\n    export interface DFUActionInfo {\r\n        FileName: string;\r\n        NodeGroup: string;\r\n        ActionResult: string;\r\n        Failed: boolean;\r\n    }\r\n\r\n    export interface ActionResults {\r\n        DFUActionInfo: DFUActionInfo[];\r\n    }\r\n\r\n    export interface DFUArrayActionResponse {\r\n        Exceptions: Exceptions;\r\n        BackToPage: string;\r\n        RedirectTo: string;\r\n        ActionResults: ActionResults;\r\n    }\r\n\r\n    export interface DFUBrowseDataRequest {\r\n        LogicalName?: string;\r\n        FilterBy?: string;\r\n        ShowColumns?: string;\r\n        SchemaOnly?: boolean;\r\n        StartForGoback?: long;\r\n        CountForGoback?: int;\r\n        ChooseFile?: int;\r\n        Cluster?: string;\r\n        ClusterType?: string;\r\n        ParentName?: string;\r\n        Start?: long;\r\n        Count?: int;\r\n        DisableUppercaseTranslation?: boolean;\r\n    }\r\n\r\n    export interface DFUDataColumn {\r\n        ColumnID: int;\r\n        ColumnLabel: string;\r\n        ColumnType: string;\r\n        ColumnValue: string;\r\n        ColumnSize: int;\r\n        MaxSize: int;\r\n        ColumnEclType: string;\r\n        ColumnRawSize: int;\r\n        IsNaturalColumn: boolean;\r\n        IsKeyedColumn: boolean;\r\n        DataColumns: DataColumns;\r\n    }\r\n\r\n    export interface DataColumns {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface ColumnHidden {\r\n        ColumnID: int;\r\n        ColumnLabel: string;\r\n        ColumnType: string;\r\n        ColumnValue: string;\r\n        ColumnSize: int;\r\n        MaxSize: int;\r\n        ColumnEclType: string;\r\n        ColumnRawSize: int;\r\n        IsNaturalColumn: boolean;\r\n        IsKeyedColumn: boolean;\r\n        DataColumns: DataColumns;\r\n    }\r\n\r\n    export interface ColumnsHidden {\r\n        ColumnHidden: ColumnHidden[];\r\n    }\r\n\r\n    export interface DFUBrowseDataResponse {\r\n        Exceptions: Exceptions;\r\n        Name: string;\r\n        LogicalName: string;\r\n        FilterBy: string;\r\n        FilterForGoBack: string;\r\n        ColumnsHidden: ColumnsHidden;\r\n        ColumnCount: int;\r\n        StartForGoback: long;\r\n        CountForGoback: int;\r\n        ChooseFile: int;\r\n        SchemaOnly: boolean;\r\n        Cluster: string;\r\n        ClusterType: string;\r\n        ParentName: string;\r\n        Start: long;\r\n        Count: long;\r\n        PageSize: long;\r\n        Total: long;\r\n        Result: string;\r\n        MsgToDisplay: string;\r\n        DisableUppercaseTranslation: boolean;\r\n    }\r\n\r\n    export interface DFUDefFileRequest {\r\n        Name?: string;\r\n        Format?: DFUDefFileFormat;\r\n    }\r\n\r\n    export interface DFUDefFileResponse {\r\n        Exceptions: Exceptions;\r\n        defFile: base64Binary;\r\n    }\r\n\r\n    export interface RequestBase {\r\n        Name: string;\r\n        Cluster: string;\r\n        JobId: string;\r\n        ExpirySeconds: int;\r\n        AccessRole: FileAccessRole;\r\n        AccessType: SecAccessType;\r\n        ReturnJsonTypeInfo: boolean;\r\n        ReturnBinTypeInfo: boolean;\r\n    }\r\n\r\n    export interface DFUFileAccessRequest {\r\n        RequestBase?: RequestBase;\r\n    }\r\n\r\n    export interface DFUPartLocation {\r\n        LocationIndex: int;\r\n        Host: string;\r\n    }\r\n\r\n    export interface FileLocations {\r\n        DFUPartLocation: DFUPartLocation[];\r\n    }\r\n\r\n    export interface DFUFileCopy {\r\n        CopyIndex: int;\r\n        LocationIndex: int;\r\n        Path: string;\r\n    }\r\n\r\n    export interface Copies {\r\n        DFUFileCopy: DFUFileCopy[];\r\n    }\r\n\r\n    export interface DFUFilePart {\r\n        PartIndex: int;\r\n        Copies: Copies;\r\n        TopLevelKey: boolean;\r\n    }\r\n\r\n    export interface FileParts {\r\n        DFUFilePart: DFUFilePart[];\r\n    }\r\n\r\n    export interface AccessInfo {\r\n        MetaInfoBlob: string;\r\n        ExpiryTime: string;\r\n        NumParts: int;\r\n        FileLocations: FileLocations;\r\n        FileParts: FileParts;\r\n        RecordTypeInfoJson: string;\r\n        fileAccessPort: int;\r\n        fileAccessSSL: boolean;\r\n    }\r\n\r\n    export interface DFUFileAccessResponse {\r\n        Exceptions: Exceptions;\r\n        AccessInfo: AccessInfo;\r\n        Type: DFUFileType;\r\n    }\r\n\r\n    export interface DFUFileAccessV2Request {\r\n        Name?: string;\r\n        Cluster?: string;\r\n        RequestId?: string;\r\n        ExpirySeconds?: int;\r\n        ReturnTextResponse?: boolean;\r\n        SessionId?: long;\r\n        LockTimeoutMs?: int;\r\n    }\r\n\r\n    export interface PartLocations {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface DFUFileCreateRequest {\r\n        ECLRecordDefinition?: string;\r\n        PartLocations?: PartLocations;\r\n        RequestBase?: RequestBase;\r\n    }\r\n\r\n    export interface DFUFileCreateResponse {\r\n        Exceptions: Exceptions;\r\n        FileId: string;\r\n        Warning: string;\r\n        AccessInfo: AccessInfo;\r\n    }\r\n\r\n    export interface DFUFileCreateV2Request {\r\n        Name?: string;\r\n        Cluster?: string;\r\n        Type?: DFUFileType;\r\n        ECLRecordDefinition?: string;\r\n        RequestId?: string;\r\n        ExpirySeconds?: int;\r\n        ReturnTextResponse?: boolean;\r\n        Compressed?: boolean;\r\n        SessionId?: long;\r\n        LockTimeoutMs?: int;\r\n    }\r\n\r\n    export interface DFUFilePublishRequest {\r\n        FileId?: string;\r\n        Overwrite?: boolean;\r\n        FileDescriptorBlob?: base64Binary;\r\n        SessionId?: long;\r\n        LockTimeoutMs?: int;\r\n        ECLRecordDefinition?: string;\r\n        RecordCount?: long;\r\n        FileSize?: long;\r\n    }\r\n\r\n    export interface DFUFilePublishResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface DFUFileViewRequest {\r\n        Scope?: string;\r\n        IncludeSuperOwner?: boolean;\r\n    }\r\n\r\n    export interface DFULogicalFile {\r\n        Prefix: string;\r\n        NodeGroup: string;\r\n        Directory: string;\r\n        Description: string;\r\n        Parts: string;\r\n        Name: string;\r\n        Owner: string;\r\n        Totalsize: string;\r\n        RecordCount: string;\r\n        Modified: string;\r\n        LongSize: string;\r\n        LongRecordCount: string;\r\n        isSuperfile: boolean;\r\n        isDirectory: boolean;\r\n        Replicate: boolean;\r\n        IntSize: long;\r\n        IntRecordCount: long;\r\n        FromRoxieCluster: boolean;\r\n        BrowseData: boolean;\r\n        IsCompressed: boolean;\r\n        ContentType: string;\r\n        CompressedFileSize: long;\r\n        SuperOwners: string;\r\n        Persistent: boolean;\r\n        IsProtected: boolean;\r\n        KeyType: string;\r\n        NumOfSubfiles: int;\r\n        Accessed: string;\r\n        AtRestCost: double;\r\n        AccessCost: double;\r\n        MinSkew: long;\r\n        MaxSkew: long;\r\n        MinSkewPart: long;\r\n        MaxSkewPart: long;\r\n    }\r\n\r\n    export interface DFULogicalFiles {\r\n        DFULogicalFile: DFULogicalFile[];\r\n    }\r\n\r\n    export interface DFUFileViewResponse {\r\n        Exceptions: Exceptions;\r\n        Scope: string;\r\n        NumFiles: int;\r\n        DFULogicalFiles: DFULogicalFiles;\r\n    }\r\n\r\n    export interface DFUGetDataColumnsRequest {\r\n        OpenLogicalName?: string;\r\n        LogicalName?: string;\r\n        FilterBy?: string;\r\n        ShowColumns?: string;\r\n        ChooseFile?: int;\r\n        Cluster?: string;\r\n        ClusterType?: string;\r\n        StartIndex?: long;\r\n        EndIndex?: long;\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns1 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns2 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns3 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns4 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns5 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns6 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns7 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns8 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns9 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns10 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns11 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns12 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns13 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns14 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns15 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns16 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns17 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns18 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns19 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataKeyedColumns20 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns1 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns2 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns3 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns4 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns5 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns6 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns7 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns8 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns9 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns10 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns11 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns12 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns13 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns14 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns15 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns16 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns17 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns18 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns19 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUDataNonKeyedColumns20 {\r\n        DFUDataColumn: DFUDataColumn[];\r\n    }\r\n\r\n    export interface DFUGetDataColumnsResponse {\r\n        Exceptions: Exceptions;\r\n        LogicalName: string;\r\n        StartIndex: long;\r\n        EndIndex: long;\r\n        DFUDataKeyedColumns1: DFUDataKeyedColumns1;\r\n        DFUDataKeyedColumns2: DFUDataKeyedColumns2;\r\n        DFUDataKeyedColumns3: DFUDataKeyedColumns3;\r\n        DFUDataKeyedColumns4: DFUDataKeyedColumns4;\r\n        DFUDataKeyedColumns5: DFUDataKeyedColumns5;\r\n        DFUDataKeyedColumns6: DFUDataKeyedColumns6;\r\n        DFUDataKeyedColumns7: DFUDataKeyedColumns7;\r\n        DFUDataKeyedColumns8: DFUDataKeyedColumns8;\r\n        DFUDataKeyedColumns9: DFUDataKeyedColumns9;\r\n        DFUDataKeyedColumns10: DFUDataKeyedColumns10;\r\n        DFUDataKeyedColumns11: DFUDataKeyedColumns11;\r\n        DFUDataKeyedColumns12: DFUDataKeyedColumns12;\r\n        DFUDataKeyedColumns13: DFUDataKeyedColumns13;\r\n        DFUDataKeyedColumns14: DFUDataKeyedColumns14;\r\n        DFUDataKeyedColumns15: DFUDataKeyedColumns15;\r\n        DFUDataKeyedColumns16: DFUDataKeyedColumns16;\r\n        DFUDataKeyedColumns17: DFUDataKeyedColumns17;\r\n        DFUDataKeyedColumns18: DFUDataKeyedColumns18;\r\n        DFUDataKeyedColumns19: DFUDataKeyedColumns19;\r\n        DFUDataKeyedColumns20: DFUDataKeyedColumns20;\r\n        DFUDataNonKeyedColumns1: DFUDataNonKeyedColumns1;\r\n        DFUDataNonKeyedColumns2: DFUDataNonKeyedColumns2;\r\n        DFUDataNonKeyedColumns3: DFUDataNonKeyedColumns3;\r\n        DFUDataNonKeyedColumns4: DFUDataNonKeyedColumns4;\r\n        DFUDataNonKeyedColumns5: DFUDataNonKeyedColumns5;\r\n        DFUDataNonKeyedColumns6: DFUDataNonKeyedColumns6;\r\n        DFUDataNonKeyedColumns7: DFUDataNonKeyedColumns7;\r\n        DFUDataNonKeyedColumns8: DFUDataNonKeyedColumns8;\r\n        DFUDataNonKeyedColumns9: DFUDataNonKeyedColumns9;\r\n        DFUDataNonKeyedColumns10: DFUDataNonKeyedColumns10;\r\n        DFUDataNonKeyedColumns11: DFUDataNonKeyedColumns11;\r\n        DFUDataNonKeyedColumns12: DFUDataNonKeyedColumns12;\r\n        DFUDataNonKeyedColumns13: DFUDataNonKeyedColumns13;\r\n        DFUDataNonKeyedColumns14: DFUDataNonKeyedColumns14;\r\n        DFUDataNonKeyedColumns15: DFUDataNonKeyedColumns15;\r\n        DFUDataNonKeyedColumns16: DFUDataNonKeyedColumns16;\r\n        DFUDataNonKeyedColumns17: DFUDataNonKeyedColumns17;\r\n        DFUDataNonKeyedColumns18: DFUDataNonKeyedColumns18;\r\n        DFUDataNonKeyedColumns19: DFUDataNonKeyedColumns19;\r\n        DFUDataNonKeyedColumns20: DFUDataNonKeyedColumns20;\r\n        RowCount: long;\r\n        ShowColumns: string;\r\n        ChooseFile: int;\r\n        Cluster: string;\r\n        ClusterType: string;\r\n    }\r\n\r\n    export interface DFUGetFileMetaDataRequest {\r\n        LogicalFileName?: string;\r\n        ClusterName?: string;\r\n        IncludeXmlSchema?: boolean;\r\n        AddHeaderInXmlSchema?: boolean;\r\n        IncludeXmlXPathSchema?: boolean;\r\n        AddHeaderInXmlXPathSchema?: boolean;\r\n    }\r\n\r\n    export interface DFUGetFileMetaDataResponse {\r\n        Exceptions: Exceptions;\r\n        TotalColumnCount: int;\r\n        KeyedColumnCount: int;\r\n        DataColumns: DataColumns;\r\n        XmlSchema: string;\r\n        XmlXPathSchema: string;\r\n        TotalResultRows: long;\r\n    }\r\n\r\n    export interface DFUMetaInquiryRequest {\r\n\r\n    }\r\n\r\n    export interface DFUMetaFieldInfo {\r\n        Name: string;\r\n        Type: string;\r\n    }\r\n\r\n    export interface Fields {\r\n        DFUMetaFieldInfo: DFUMetaFieldInfo[];\r\n    }\r\n\r\n    export interface DFUMetaInquiryResponse {\r\n        Exceptions: Exceptions;\r\n        Fields: Fields;\r\n    }\r\n\r\n    export interface DFUInfoRequest {\r\n        Name?: string;\r\n        Cluster?: string;\r\n        UpdateDescription?: boolean;\r\n        QuerySet?: string;\r\n        Query?: string;\r\n        FileDesc?: string;\r\n        IncludeJsonTypeInfo?: boolean;\r\n        IncludeBinTypeInfo?: boolean;\r\n        Protect?: DFUChangeProtection;\r\n        Restrict?: DFUChangeRestriction;\r\n        ForceIndexInfo?: boolean;\r\n    }\r\n\r\n    export interface Stat {\r\n        MinSkew: string;\r\n        MaxSkew: string;\r\n        MinSkewInt64: long;\r\n        MaxSkewInt64: long;\r\n        MinSkewPart: long;\r\n        MaxSkewPart: long;\r\n    }\r\n\r\n    export interface DFUPart {\r\n        Id: int;\r\n        Copy: int;\r\n        Ip: string;\r\n        Partsize: string;\r\n        PartSizeInt64: long;\r\n        CompressedSize: long;\r\n    }\r\n\r\n    export interface DFUFileParts {\r\n        DFUPart: DFUPart[];\r\n    }\r\n\r\n    export interface DFUFilePartsOnCluster {\r\n        Cluster: string;\r\n        BaseDir: string;\r\n        ReplicateDir: string;\r\n        Replicate: boolean;\r\n        CanReplicate: boolean;\r\n        DFUFileParts: DFUFileParts;\r\n    }\r\n\r\n    export interface DFUFilePartsOnClusters {\r\n        DFUFilePartsOnCluster: DFUFilePartsOnCluster[];\r\n    }\r\n\r\n    export interface subfiles {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface Superfiles {\r\n        DFULogicalFile: DFULogicalFile[];\r\n    }\r\n\r\n    export interface DFUFileProtect {\r\n        Owner: string;\r\n        Modified: string;\r\n    }\r\n\r\n    export interface ProtectList {\r\n        DFUFileProtect: DFUFileProtect[];\r\n    }\r\n\r\n    export interface Graphs {\r\n        ECLGraph: string[];\r\n    }\r\n\r\n    export interface FieldNames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface Partition {\r\n        FieldMask: long;\r\n        FieldNames: FieldNames;\r\n    }\r\n\r\n    export interface DFUFileBloom {\r\n        FieldMask: long;\r\n        FieldNames: FieldNames;\r\n        Limit: long;\r\n        Probability: string;\r\n    }\r\n\r\n    export interface Blooms {\r\n        DFUFileBloom: DFUFileBloom[];\r\n    }\r\n\r\n    export interface ExtendedIndexInfo {\r\n        IsLeafCountEstimated: boolean;\r\n        NumLeafNodes: long;\r\n        NumBlobNodes: long;\r\n        NumBranchNodes: long;\r\n        SizeDiskLeaves: long;\r\n        SizeDiskBlobs: long;\r\n        SizeDiskBranches: long;\r\n        SizeOriginalData: long;\r\n        SizeOriginalBranches: long;\r\n        SizeMemoryLeaves: long;\r\n        SizeMemoryBranches: long;\r\n        BranchCompressionPercent: double;\r\n        DataCompressionPercent: double;\r\n    }\r\n\r\n    export interface FileDetail {\r\n        Name: string;\r\n        Filename: string;\r\n        Prefix: string;\r\n        NodeGroup: string;\r\n        NumParts: int;\r\n        Description: string;\r\n        Dir: string;\r\n        PathMask: string;\r\n        Filesize: string;\r\n        FileSizeInt64: long;\r\n        RecordSize: string;\r\n        RecordCount: string;\r\n        RecordSizeInt64: long;\r\n        RecordCountInt64: long;\r\n        Wuid: string;\r\n        Owner: string;\r\n        JobName: string;\r\n        Persistent: string;\r\n        Format: string;\r\n        MaxRecordSize: string;\r\n        CsvSeparate: string;\r\n        CsvQuote: string;\r\n        CsvTerminate: string;\r\n        CsvEscape: string;\r\n        Modified: string;\r\n        Ecl: string;\r\n        Stat: Stat;\r\n        DFUFilePartsOnClusters: DFUFilePartsOnClusters;\r\n        isSuperfile: boolean;\r\n        ShowFileContent: boolean;\r\n        subfiles: subfiles;\r\n        Superfiles: Superfiles;\r\n        ProtectList: ProtectList;\r\n        FromRoxieCluster: boolean;\r\n        Graphs: Graphs;\r\n        UserPermission: string;\r\n        ContentType: string;\r\n        CompressedFileSize: long;\r\n        PercentCompressed: string;\r\n        IsCompressed: boolean;\r\n        IsRestricted: boolean;\r\n        BrowseData: boolean;\r\n        jsonInfo: string;\r\n        binInfo: base64Binary;\r\n        PackageID: string;\r\n        Partition: Partition;\r\n        Blooms: Blooms;\r\n        ExpireDays: int;\r\n        KeyType: string;\r\n        AtRestCost: double;\r\n        AccessCost: double;\r\n        ExpirationDate: string;\r\n        ExtendedIndexInfo: ExtendedIndexInfo;\r\n        CompressionType: string;\r\n    }\r\n\r\n    export interface DFUInfoResponse {\r\n        Exceptions: Exceptions;\r\n        FileDetail: FileDetail;\r\n    }\r\n\r\n    export interface DFUQueryRequest {\r\n        Prefix?: string;\r\n        NodeGroup?: string;\r\n        ContentType?: string;\r\n        InvertContent?: boolean;\r\n        LogicalName?: string;\r\n        Owner?: string;\r\n        StartDate?: string;\r\n        EndDate?: string;\r\n        FileType?: string;\r\n        FileSizeFrom?: long;\r\n        FileSizeTo?: long;\r\n        FirstN?: int;\r\n        PageSize?: int;\r\n        PageStartFrom?: int;\r\n        Sortby?: string;\r\n        Fields?: string;\r\n        Descending?: boolean;\r\n        OneLevelDirFileReturn?: boolean;\r\n        CacheHint?: long;\r\n        MaxNumberOfFiles?: int;\r\n        IncludeSuperOwner?: boolean;\r\n        StartAccessedTime?: string;\r\n        EndAccessedTime?: string;\r\n        MaxSkewFrom?: long;\r\n        MaxSkewTo?: long;\r\n        MinSkewFrom?: long;\r\n        MinSkewTo?: long;\r\n    }\r\n\r\n    export interface DFUQueryResponse {\r\n        Exceptions: Exceptions;\r\n        DFULogicalFiles: DFULogicalFiles;\r\n        Prefix: string;\r\n        NodeGroup: string;\r\n        LogicalName: string;\r\n        Description: string;\r\n        Owner: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        FileType: string;\r\n        FileSizeFrom: long;\r\n        FileSizeTo: long;\r\n        FirstN: int;\r\n        PageSize: int;\r\n        PageStartFrom: long;\r\n        LastPageFrom: long;\r\n        PageEndAt: long;\r\n        PrevPageFrom: long;\r\n        NextPageFrom: long;\r\n        NumFiles: long;\r\n        Sortby: string;\r\n        Descending: boolean;\r\n        BasicQuery: string;\r\n        ParametersForPaging: string;\r\n        Filters: string;\r\n        CacheHint: long;\r\n        IsSubsetOfFiles: boolean;\r\n        Warning: string;\r\n    }\r\n\r\n    export interface DFURecordTypeInfoRequest {\r\n        Name?: string;\r\n        IncludeJsonTypeInfo?: boolean;\r\n        IncludeBinTypeInfo?: boolean;\r\n    }\r\n\r\n    export interface DFURecordTypeInfoResponse {\r\n        jsonInfo: string;\r\n        binInfo: base64Binary;\r\n    }\r\n\r\n    export interface DFUSearchRequest {\r\n        ShowExample?: string;\r\n    }\r\n\r\n    export interface ClusterNames {\r\n        ClusterName: string[];\r\n    }\r\n\r\n    export interface FileTypes {\r\n        FileType: string[];\r\n    }\r\n\r\n    export interface DFUSearchResponse {\r\n        Exceptions: Exceptions;\r\n        ShowExample: string;\r\n        ClusterNames: ClusterNames;\r\n        FileTypes: FileTypes;\r\n    }\r\n\r\n    export interface DFUSearchDataRequest {\r\n        Cluster?: string;\r\n        ClusterType?: string;\r\n        OpenLogicalName?: string;\r\n        FilterBy?: string;\r\n        ShowColumns?: string;\r\n        ChooseFile?: int;\r\n        StartIndex?: long;\r\n        EndIndex?: long;\r\n        LogicalName?: string;\r\n        ParentName?: string;\r\n        StartForGoback?: long;\r\n        CountForGoback?: int;\r\n        Start?: long;\r\n        Count?: int;\r\n        File?: string;\r\n        Key?: string;\r\n        SchemaOnly?: boolean;\r\n        RoxieSelections?: boolean;\r\n        DisableUppercaseTranslation?: boolean;\r\n        SelectedKey?: string;\r\n    }\r\n\r\n    export interface DFUSearchDataResponse {\r\n        Exceptions: Exceptions;\r\n        OpenLogicalName: string;\r\n        LogicalName: string;\r\n        ParentName: string;\r\n        StartIndex: long;\r\n        EndIndex: long;\r\n        DFUDataKeyedColumns1: DFUDataKeyedColumns1;\r\n        DFUDataKeyedColumns2: DFUDataKeyedColumns2;\r\n        DFUDataKeyedColumns3: DFUDataKeyedColumns3;\r\n        DFUDataKeyedColumns4: DFUDataKeyedColumns4;\r\n        DFUDataKeyedColumns5: DFUDataKeyedColumns5;\r\n        DFUDataKeyedColumns6: DFUDataKeyedColumns6;\r\n        DFUDataKeyedColumns7: DFUDataKeyedColumns7;\r\n        DFUDataKeyedColumns8: DFUDataKeyedColumns8;\r\n        DFUDataKeyedColumns9: DFUDataKeyedColumns9;\r\n        DFUDataKeyedColumns10: DFUDataKeyedColumns10;\r\n        DFUDataKeyedColumns11: DFUDataKeyedColumns11;\r\n        DFUDataKeyedColumns12: DFUDataKeyedColumns12;\r\n        DFUDataKeyedColumns13: DFUDataKeyedColumns13;\r\n        DFUDataKeyedColumns14: DFUDataKeyedColumns14;\r\n        DFUDataKeyedColumns15: DFUDataKeyedColumns15;\r\n        DFUDataKeyedColumns16: DFUDataKeyedColumns16;\r\n        DFUDataKeyedColumns17: DFUDataKeyedColumns17;\r\n        DFUDataKeyedColumns18: DFUDataKeyedColumns18;\r\n        DFUDataKeyedColumns19: DFUDataKeyedColumns19;\r\n        DFUDataKeyedColumns20: DFUDataKeyedColumns20;\r\n        DFUDataNonKeyedColumns1: DFUDataNonKeyedColumns1;\r\n        DFUDataNonKeyedColumns2: DFUDataNonKeyedColumns2;\r\n        DFUDataNonKeyedColumns3: DFUDataNonKeyedColumns3;\r\n        DFUDataNonKeyedColumns4: DFUDataNonKeyedColumns4;\r\n        DFUDataNonKeyedColumns5: DFUDataNonKeyedColumns5;\r\n        DFUDataNonKeyedColumns6: DFUDataNonKeyedColumns6;\r\n        DFUDataNonKeyedColumns7: DFUDataNonKeyedColumns7;\r\n        DFUDataNonKeyedColumns8: DFUDataNonKeyedColumns8;\r\n        DFUDataNonKeyedColumns9: DFUDataNonKeyedColumns9;\r\n        DFUDataNonKeyedColumns10: DFUDataNonKeyedColumns10;\r\n        DFUDataNonKeyedColumns11: DFUDataNonKeyedColumns11;\r\n        DFUDataNonKeyedColumns12: DFUDataNonKeyedColumns12;\r\n        DFUDataNonKeyedColumns13: DFUDataNonKeyedColumns13;\r\n        DFUDataNonKeyedColumns14: DFUDataNonKeyedColumns14;\r\n        DFUDataNonKeyedColumns15: DFUDataNonKeyedColumns15;\r\n        DFUDataNonKeyedColumns16: DFUDataNonKeyedColumns16;\r\n        DFUDataNonKeyedColumns17: DFUDataNonKeyedColumns17;\r\n        DFUDataNonKeyedColumns18: DFUDataNonKeyedColumns18;\r\n        DFUDataNonKeyedColumns19: DFUDataNonKeyedColumns19;\r\n        DFUDataNonKeyedColumns20: DFUDataNonKeyedColumns20;\r\n        RowCount: long;\r\n        ShowColumns: string;\r\n        ChooseFile: int;\r\n        Name: string;\r\n        FilterBy: string;\r\n        FilterForGoBack: string;\r\n        ColumnsHidden: ColumnsHidden;\r\n        ColumnCount: int;\r\n        StartForGoback: long;\r\n        CountForGoback: int;\r\n        Start: long;\r\n        Count: long;\r\n        PageSize: long;\r\n        Total: long;\r\n        Result: string;\r\n        MsgToDisplay: string;\r\n        Cluster: string;\r\n        ClusterType: string;\r\n        File: string;\r\n        Key: string;\r\n        SchemaOnly: boolean;\r\n        RoxieSelections: boolean;\r\n        DisableUppercaseTranslation: boolean;\r\n        AutoUppercaseTranslation: boolean;\r\n        SelectedKey: string;\r\n    }\r\n\r\n    export interface DFUSpaceRequest {\r\n        CountBy?: string;\r\n        ScopeUnder?: string;\r\n        OwnerUnder?: string;\r\n        Interval?: string;\r\n        StartDate?: string;\r\n        EndDate?: string;\r\n    }\r\n\r\n    export interface DFUSpaceItem {\r\n        Name: string;\r\n        NumOfFiles: string;\r\n        NumOfFilesUnknown: string;\r\n        TotalSize: string;\r\n        LargestFile: string;\r\n        LargestSize: string;\r\n        SmallestFile: string;\r\n        SmallestSize: string;\r\n        NumOfFilesInt64: long;\r\n        NumOfFilesUnknownInt64: long;\r\n        TotalSizeInt64: long;\r\n        LargestSizeInt64: long;\r\n        SmallestSizeInt64: long;\r\n    }\r\n\r\n    export interface DFUSpaceItems {\r\n        DFUSpaceItem: DFUSpaceItem[];\r\n    }\r\n\r\n    export interface DFUSpaceResponse {\r\n        Exceptions: Exceptions;\r\n        CountBy: string;\r\n        ScopeUnder: string;\r\n        OwnerUnder: string;\r\n        Interval: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        DFUSpaceItems: DFUSpaceItems;\r\n    }\r\n\r\n    export interface EclRecordTypeInfoRequest {\r\n        Ecl?: string;\r\n        IncludeJsonTypeInfo?: boolean;\r\n        IncludeBinTypeInfo?: boolean;\r\n    }\r\n\r\n    export interface EclRecordTypeInfoResponse {\r\n        jsonInfo: string;\r\n        binInfo: base64Binary;\r\n    }\r\n\r\n    export interface EraseHistoryRequest {\r\n        Name?: string;\r\n    }\r\n\r\n    export interface Origin {\r\n        Name: string;\r\n        Operation: string;\r\n        Timestamp: string;\r\n        IP: string;\r\n        Path: string;\r\n        Owner: string;\r\n        Workunit: string;\r\n    }\r\n\r\n    export interface History {\r\n        Origin: Origin[];\r\n    }\r\n\r\n    export interface EraseHistoryResponse {\r\n        Exceptions: Exceptions;\r\n        History: History;\r\n    }\r\n\r\n    export interface ListHistoryRequest {\r\n        Name?: string;\r\n    }\r\n\r\n    export interface ListHistoryResponse {\r\n        Exceptions: Exceptions;\r\n        History: History;\r\n    }\r\n\r\n    export interface WsDfuPingRequest {\r\n\r\n    }\r\n\r\n    export interface WsDfuPingResponse {\r\n\r\n    }\r\n\r\n    export interface SavexmlRequest {\r\n        name?: string;\r\n    }\r\n\r\n    export interface SavexmlResponse {\r\n        Exceptions: Exceptions;\r\n        xmlmap: base64Binary;\r\n    }\r\n\r\n    export interface SuperfileActionRequest {\r\n        action?: string;\r\n        superfile?: string;\r\n        subfiles?: subfiles;\r\n        before?: string;\r\n        delete?: boolean;\r\n        removeSuperfile?: boolean;\r\n    }\r\n\r\n    export interface SuperfileActionResponse {\r\n        Exceptions: Exceptions;\r\n        superfile: string;\r\n        retcode: int;\r\n    }\r\n\r\n    export interface SuperfileListRequest {\r\n        superfile?: string;\r\n    }\r\n\r\n    export interface SuperfileListResponse {\r\n        Exceptions: Exceptions;\r\n        superfile: string;\r\n        subfiles: subfiles;\r\n    }\r\n\r\n}\r\n\r\nexport class DfuServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WsDfu\", \"1.67\");\r\n    }\r\n\r\n    Add(request: Partial<WsDfu.AddRequest>): Promise<WsDfu.AddResponse> {\r\n        return this._connection.send(\"Add\", request, \"json\", false, undefined, \"AddResponse\");\r\n    }\r\n\r\n    AddRemote(request: Partial<WsDfu.AddRemoteRequest>): Promise<WsDfu.AddRemoteResponse> {\r\n        return this._connection.send(\"AddRemote\", request, \"json\", false, undefined, \"AddRemoteResponse\");\r\n    }\r\n\r\n    AddtoSuperfile(request: Partial<WsDfu.AddtoSuperfileRequest>): Promise<WsDfu.AddtoSuperfileResponse> {\r\n        return this._connection.send(\"AddtoSuperfile\", request, \"json\", false, undefined, \"AddtoSuperfileResponse\");\r\n    }\r\n\r\n    DFUArrayAction(request: Partial<WsDfu.DFUArrayActionRequest>): Promise<WsDfu.DFUArrayActionResponse> {\r\n        return this._connection.send(\"DFUArrayAction\", request, \"json\", false, undefined, \"DFUArrayActionResponse\");\r\n    }\r\n\r\n    DFUBrowseData(request: Partial<WsDfu.DFUBrowseDataRequest>): Promise<WsDfu.DFUBrowseDataResponse> {\r\n        return this._connection.send(\"DFUBrowseData\", request, \"json\", false, undefined, \"DFUBrowseDataResponse\");\r\n    }\r\n\r\n    DFUDefFile(request: Partial<WsDfu.DFUDefFileRequest>): Promise<WsDfu.DFUDefFileResponse> {\r\n        return this._connection.send(\"DFUDefFile\", request, \"json\", false, undefined, \"DFUDefFileResponse\");\r\n    }\r\n\r\n    DFUFileAccess(request: Partial<WsDfu.DFUFileAccessRequest>): Promise<WsDfu.DFUFileAccessResponse> {\r\n        return this._connection.send(\"DFUFileAccess\", request, \"json\", false, undefined, \"DFUFileAccessResponse\");\r\n    }\r\n\r\n    DFUFileAccessV2(request: Partial<WsDfu.DFUFileAccessV2Request>): Promise<WsDfu.DFUFileAccessResponse> {\r\n        return this._connection.send(\"DFUFileAccessV2\", request, \"json\", false, undefined, \"DFUFileAccessResponse\");\r\n    }\r\n\r\n    DFUFileCreate(request: Partial<WsDfu.DFUFileCreateRequest>): Promise<WsDfu.DFUFileCreateResponse> {\r\n        return this._connection.send(\"DFUFileCreate\", request, \"json\", false, undefined, \"DFUFileCreateResponse\");\r\n    }\r\n\r\n    DFUFileCreateV2(request: Partial<WsDfu.DFUFileCreateV2Request>): Promise<WsDfu.DFUFileCreateResponse> {\r\n        return this._connection.send(\"DFUFileCreateV2\", request, \"json\", false, undefined, \"DFUFileCreateResponse\");\r\n    }\r\n\r\n    DFUFilePublish(request: Partial<WsDfu.DFUFilePublishRequest>): Promise<WsDfu.DFUFilePublishResponse> {\r\n        return this._connection.send(\"DFUFilePublish\", request, \"json\", false, undefined, \"DFUFilePublishResponse\");\r\n    }\r\n\r\n    DFUFileView(request: Partial<WsDfu.DFUFileViewRequest>): Promise<WsDfu.DFUFileViewResponse> {\r\n        return this._connection.send(\"DFUFileView\", request, \"json\", false, undefined, \"DFUFileViewResponse\");\r\n    }\r\n\r\n    DFUGetDataColumns(request: Partial<WsDfu.DFUGetDataColumnsRequest>): Promise<WsDfu.DFUGetDataColumnsResponse> {\r\n        return this._connection.send(\"DFUGetDataColumns\", request, \"json\", false, undefined, \"DFUGetDataColumnsResponse\");\r\n    }\r\n\r\n    DFUGetFileMetaData(request: Partial<WsDfu.DFUGetFileMetaDataRequest>): Promise<WsDfu.DFUGetFileMetaDataResponse> {\r\n        return this._connection.send(\"DFUGetFileMetaData\", request, \"json\", false, undefined, \"DFUGetFileMetaDataResponse\");\r\n    }\r\n\r\n    DFUGetMetaInquiry(request: Partial<WsDfu.DFUMetaInquiryRequest>): Promise<WsDfu.DFUMetaInquiryResponse> {\r\n        return this._connection.send(\"DFUGetMetaInquiry\", request, \"json\", false, undefined, \"DFUMetaInquiryResponse\");\r\n    }\r\n\r\n    DFUInfo(request: Partial<WsDfu.DFUInfoRequest>): Promise<WsDfu.DFUInfoResponse> {\r\n        return this._connection.send(\"DFUInfo\", request, \"json\", false, undefined, \"DFUInfoResponse\");\r\n    }\r\n\r\n    DFUQuery(request: Partial<WsDfu.DFUQueryRequest>): Promise<WsDfu.DFUQueryResponse> {\r\n        return this._connection.send(\"DFUQuery\", request, \"json\", false, undefined, \"DFUQueryResponse\");\r\n    }\r\n\r\n    DFURecordTypeInfo(request: Partial<WsDfu.DFURecordTypeInfoRequest>): Promise<WsDfu.DFURecordTypeInfoResponse> {\r\n        return this._connection.send(\"DFURecordTypeInfo\", request, \"json\", false, undefined, \"DFURecordTypeInfoResponse\");\r\n    }\r\n\r\n    DFUSearch(request: Partial<WsDfu.DFUSearchRequest>): Promise<WsDfu.DFUSearchResponse> {\r\n        return this._connection.send(\"DFUSearch\", request, \"json\", false, undefined, \"DFUSearchResponse\");\r\n    }\r\n\r\n    DFUSearchData(request: Partial<WsDfu.DFUSearchDataRequest>): Promise<WsDfu.DFUSearchDataResponse> {\r\n        return this._connection.send(\"DFUSearchData\", request, \"json\", false, undefined, \"DFUSearchDataResponse\");\r\n    }\r\n\r\n    DFUSpace(request: Partial<WsDfu.DFUSpaceRequest>): Promise<WsDfu.DFUSpaceResponse> {\r\n        return this._connection.send(\"DFUSpace\", request, \"json\", false, undefined, \"DFUSpaceResponse\");\r\n    }\r\n\r\n    EclRecordTypeInfo(request: Partial<WsDfu.EclRecordTypeInfoRequest>): Promise<WsDfu.EclRecordTypeInfoResponse> {\r\n        return this._connection.send(\"EclRecordTypeInfo\", request, \"json\", false, undefined, \"EclRecordTypeInfoResponse\");\r\n    }\r\n\r\n    EraseHistory(request: Partial<WsDfu.EraseHistoryRequest>): Promise<WsDfu.EraseHistoryResponse> {\r\n        return this._connection.send(\"EraseHistory\", request, \"json\", false, undefined, \"EraseHistoryResponse\");\r\n    }\r\n\r\n    ListHistory(request: Partial<WsDfu.ListHistoryRequest>): Promise<WsDfu.ListHistoryResponse> {\r\n        return this._connection.send(\"ListHistory\", request, \"json\", false, undefined, \"ListHistoryResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsDfu.WsDfuPingRequest>): Promise<WsDfu.WsDfuPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsDfuPingResponse\");\r\n    }\r\n\r\n    Savexml(request: Partial<WsDfu.SavexmlRequest>): Promise<WsDfu.SavexmlResponse> {\r\n        return this._connection.send(\"Savexml\", request, \"json\", false, undefined, \"SavexmlResponse\");\r\n    }\r\n\r\n    SuperfileAction(request: Partial<WsDfu.SuperfileActionRequest>): Promise<WsDfu.SuperfileActionResponse> {\r\n        return this._connection.send(\"SuperfileAction\", request, \"json\", false, undefined, \"SuperfileActionResponse\");\r\n    }\r\n\r\n    SuperfileList(request: Partial<WsDfu.SuperfileListRequest>): Promise<WsDfu.SuperfileListResponse> {\r\n        return this._connection.send(\"SuperfileList\", request, \"json\", false, undefined, \"SuperfileListResponse\");\r\n    }\r\n\r\n}\r\n","import { DfuServiceBase, WsDfu } from \"./wsdl/WsDfu/v1.67/WsDfu.ts\";\r\n\r\nexport { WsDfu };\r\n\r\nexport const DFUArrayActions = WsDfu.DFUArrayActions;\r\nexport const DFUDefFileFormat = WsDfu.DFUDefFileFormat;\r\nexport const DFUChangeProtection = WsDfu.DFUChangeProtection;\r\nexport const DFUChangeRestriction = WsDfu.DFUChangeRestriction;\r\n\r\nexport type base64Binary = WsDfu.base64Binary;\r\n\r\nexport class DFUService extends DfuServiceBase {\r\n\r\n    DFUFile(request: WsDfu.DFUDefFileRequest): Promise<string> {\r\n        return this._connection.send(\"DFUDefFile\", request, \"text\");\r\n    }\r\n\r\n    async recursiveFetchLogicalFiles(superFiles: { NodeGroup: string, Name: string }[]): Promise<string[]> {\r\n        const childSuperFiles: WsDfu.DFULogicalFile[] = [];\r\n        const logicalFiles: string[] = [];\r\n        await Promise.all(superFiles.map(superFile => {\r\n            return this.DFUInfo({ Cluster: superFile.NodeGroup, Name: superFile.Name, IncludeJsonTypeInfo: false, IncludeBinTypeInfo: false, ForceIndexInfo: false })\r\n                .then(response => {\r\n                    for (const child of response?.FileDetail?.Superfiles?.DFULogicalFile ?? []) {\r\n                        childSuperFiles.push(child);\r\n                    }\r\n                    for (const child of response?.FileDetail?.subfiles?.Item ?? []) {\r\n                        logicalFiles.push(child);\r\n                    }\r\n                });\r\n        }));\r\n        return logicalFiles.concat(childSuperFiles.length ? await this.recursiveFetchLogicalFiles(childSuperFiles) : []);\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsDFUXRef {\r\n\r\n    export type unsignedInt = number;\r\n    export type long = number;\r\n\r\n    export interface XRefFiles {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface DFUXRefArrayActionRequest {\r\n        Type?: string;\r\n        Cluster?: string;\r\n        Action?: string;\r\n        XRefFiles?: XRefFiles;\r\n        RemoveFromSuperfiles?: boolean;\r\n    }\r\n\r\n    export interface DFUXRefArrayActionResponse {\r\n        DFUXRefArrayActionResult: string;\r\n    }\r\n\r\n    export interface DFUXRefBuildRequest {\r\n        Cluster?: string;\r\n    }\r\n\r\n    export interface DFUXRefBuildResponse {\r\n        DFUXRefActionResult: string;\r\n    }\r\n\r\n    export interface DFUXRefBuildCancelRequest {\r\n\r\n    }\r\n\r\n    export interface DFUXRefBuildCancelResponse {\r\n        DFUXRefBuildCancelResult: string;\r\n    }\r\n\r\n    export interface DFUXRefCleanDirectoriesRequest {\r\n        Cluster?: string;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface DFUXRefCleanDirectoriesResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface DFUXRefDirectoriesQueryRequest {\r\n        Cluster?: string;\r\n    }\r\n\r\n    export interface DFUXRefDirectoriesQueryResponse {\r\n        DFUXRefDirectoriesQueryResult: string;\r\n    }\r\n\r\n    export interface DFUXRefFoundFilesQueryRequest {\r\n        Cluster?: string;\r\n    }\r\n\r\n    export interface DFUXRefFoundFilesQueryResponse {\r\n        DFUXRefFoundFilesQueryResult: string;\r\n    }\r\n\r\n    export interface DFUXRefListRequest {\r\n\r\n    }\r\n\r\n    export interface DFUXRefListResponse {\r\n        DFUXRefListResult: string;\r\n    }\r\n\r\n    export interface DFUXRefLostFilesQueryRequest {\r\n        Cluster?: string;\r\n    }\r\n\r\n    export interface DFUXRefLostFilesQueryResponse {\r\n        DFUXRefLostFilesQueryResult: string;\r\n    }\r\n\r\n    export interface DFUXRefMessagesQueryRequest {\r\n        Cluster?: string;\r\n    }\r\n\r\n    export interface DFUXRefMessagesQueryResponse {\r\n        DFUXRefMessagesQueryResult: string;\r\n    }\r\n\r\n    export interface DFUXRefOrphanFilesQueryRequest {\r\n        Cluster?: string;\r\n    }\r\n\r\n    export interface DFUXRefOrphanFilesQueryResponse {\r\n        DFUXRefOrphanFilesQueryResult: string;\r\n    }\r\n\r\n    export interface ProcessClusterList {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface CheckPlanes {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface DFUXRefUnusedFilesRequest {\r\n        ProcessCluster?: string;\r\n        CheckPackageMaps?: boolean;\r\n        GetFileDetails?: boolean;\r\n        ProcessClusterList?: ProcessClusterList;\r\n        CheckPlanes?: CheckPlanes;\r\n    }\r\n\r\n    export interface UnusedFiles {\r\n        File: string[];\r\n    }\r\n\r\n    export interface DFULogicalFile {\r\n        Prefix: string;\r\n        ClusterName: string;\r\n        Directory: string;\r\n        Description: string;\r\n        Parts: string;\r\n        Name: string;\r\n        Owner: string;\r\n        Totalsize: string;\r\n        RecordCount: string;\r\n        Modified: string;\r\n        LongSize: string;\r\n        LongRecordCount: string;\r\n        isSuperfile: boolean;\r\n        isZipfile: boolean;\r\n        isDirectory: boolean;\r\n        Replicate: boolean;\r\n        IntSize: long;\r\n        IntRecordCount: long;\r\n        FromRoxieCluster: boolean;\r\n        BrowseData: boolean;\r\n    }\r\n\r\n    export interface UnusedFilesWithDetails {\r\n        DFULogicalFile: DFULogicalFile[];\r\n    }\r\n\r\n    export interface DFUXRefUnusedFilesResponse {\r\n        Exceptions: Exceptions;\r\n        UnusedFileCount: unsignedInt;\r\n        UnusedFiles: UnusedFiles;\r\n        UnusedFilesWithDetails: UnusedFilesWithDetails;\r\n    }\r\n\r\n    export interface WsDFUXRefPingRequest {\r\n\r\n    }\r\n\r\n    export interface WsDFUXRefPingResponse {\r\n\r\n    }\r\n\r\n}\r\n\r\nexport class DFUXRefServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WsDFUXRef\", \"1.04\");\r\n    }\r\n\r\n    DFUXRefArrayAction(request: Partial<WsDFUXRef.DFUXRefArrayActionRequest>): Promise<WsDFUXRef.DFUXRefArrayActionResponse> {\r\n        return this._connection.send(\"DFUXRefArrayAction\", request, \"json\", false, undefined, \"DFUXRefArrayActionResponse\");\r\n    }\r\n\r\n    DFUXRefBuild(request: Partial<WsDFUXRef.DFUXRefBuildRequest>): Promise<WsDFUXRef.DFUXRefBuildResponse> {\r\n        return this._connection.send(\"DFUXRefBuild\", request, \"json\", false, undefined, \"DFUXRefBuildResponse\");\r\n    }\r\n\r\n    DFUXRefBuildCancel(request: Partial<WsDFUXRef.DFUXRefBuildCancelRequest>): Promise<WsDFUXRef.DFUXRefBuildCancelResponse> {\r\n        return this._connection.send(\"DFUXRefBuildCancel\", request, \"json\", false, undefined, \"DFUXRefBuildCancelResponse\");\r\n    }\r\n\r\n    DFUXRefCleanDirectories(request: Partial<WsDFUXRef.DFUXRefCleanDirectoriesRequest>): Promise<WsDFUXRef.DFUXRefCleanDirectoriesResponse> {\r\n        return this._connection.send(\"DFUXRefCleanDirectories\", request, \"json\", false, undefined, \"DFUXRefCleanDirectoriesResponse\");\r\n    }\r\n\r\n    DFUXRefDirectories(request: Partial<WsDFUXRef.DFUXRefDirectoriesQueryRequest>): Promise<WsDFUXRef.DFUXRefDirectoriesQueryResponse> {\r\n        return this._connection.send(\"DFUXRefDirectories\", request, \"json\", false, undefined, \"DFUXRefDirectoriesQueryResponse\");\r\n    }\r\n\r\n    DFUXRefFoundFiles(request: Partial<WsDFUXRef.DFUXRefFoundFilesQueryRequest>): Promise<WsDFUXRef.DFUXRefFoundFilesQueryResponse> {\r\n        return this._connection.send(\"DFUXRefFoundFiles\", request, \"json\", false, undefined, \"DFUXRefFoundFilesQueryResponse\");\r\n    }\r\n\r\n    DFUXRefList(request: Partial<WsDFUXRef.DFUXRefListRequest>): Promise<WsDFUXRef.DFUXRefListResponse> {\r\n        return this._connection.send(\"DFUXRefList\", request, \"json\", false, undefined, \"DFUXRefListResponse\");\r\n    }\r\n\r\n    DFUXRefLostFiles(request: Partial<WsDFUXRef.DFUXRefLostFilesQueryRequest>): Promise<WsDFUXRef.DFUXRefLostFilesQueryResponse> {\r\n        return this._connection.send(\"DFUXRefLostFiles\", request, \"json\", false, undefined, \"DFUXRefLostFilesQueryResponse\");\r\n    }\r\n\r\n    DFUXRefMessages(request: Partial<WsDFUXRef.DFUXRefMessagesQueryRequest>): Promise<WsDFUXRef.DFUXRefMessagesQueryResponse> {\r\n        return this._connection.send(\"DFUXRefMessages\", request, \"json\", false, undefined, \"DFUXRefMessagesQueryResponse\");\r\n    }\r\n\r\n    DFUXRefOrphanFiles(request: Partial<WsDFUXRef.DFUXRefOrphanFilesQueryRequest>): Promise<WsDFUXRef.DFUXRefOrphanFilesQueryResponse> {\r\n        return this._connection.send(\"DFUXRefOrphanFiles\", request, \"json\", false, undefined, \"DFUXRefOrphanFilesQueryResponse\");\r\n    }\r\n\r\n    DFUXRefUnusedFiles(request: Partial<WsDFUXRef.DFUXRefUnusedFilesRequest>): Promise<WsDFUXRef.DFUXRefUnusedFilesResponse> {\r\n        return this._connection.send(\"DFUXRefUnusedFiles\", request, \"json\", false, undefined, \"DFUXRefUnusedFilesResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsDFUXRef.WsDFUXRefPingRequest>): Promise<WsDFUXRef.WsDFUXRefPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsDFUXRefPingResponse\");\r\n    }\r\n\r\n}\r\n","import { DFUXRefServiceBase, type WsDFUXRef } from \"./wsdl/WsDFUXRef/v1.04/WsDFUXRef.ts\";\r\n\r\nexport {\r\n    type WsDFUXRef\r\n};\r\n\r\nexport namespace WsDFUXRefEx {\r\n\r\n    export interface Request {\r\n        DFUXRefArrayActionRequest: WsDFUXRef.DFUXRefArrayActionRequest;\r\n        DFUXRefBuildRequest: WsDFUXRef.DFUXRefBuildRequest;\r\n        DFUXRefBuildCancelRequest: WsDFUXRef.DFUXRefBuildCancelRequest;\r\n        DFUXRefCleanDirectoriesRequest: WsDFUXRef.DFUXRefCleanDirectoriesRequest;\r\n        DFUXRefDirectoriesQueryRequest: WsDFUXRef.DFUXRefDirectoriesQueryRequest;\r\n        DFUXRefFoundFilesQueryRequest: WsDFUXRef.DFUXRefFoundFilesQueryRequest;\r\n        DFUXRefListRequest: WsDFUXRef.DFUXRefListRequest;\r\n        DFUXRefLostFilesQueryRequest: WsDFUXRef.DFUXRefLostFilesQueryRequest;\r\n        DFUXRefMessagesQueryRequest: WsDFUXRef.DFUXRefMessagesQueryRequest;\r\n        DFUXRefOrphanFilesQueryRequest: WsDFUXRef.DFUXRefOrphanFilesQueryRequest;\r\n        DFUXRefUnusedFilesRequest: WsDFUXRef.DFUXRefUnusedFilesRequest;\r\n        WsDFUXRefPingRequest: WsDFUXRef.WsDFUXRefPingRequest;\r\n    }\r\n\r\n    export interface Directory {\r\n        Num: string;\r\n        Name: string;\r\n        MaxSize: string;\r\n        MaxIP: string;\r\n        MinSize: string;\r\n        MinIP: string;\r\n        Size: string;\r\n        PositiveSkew: string;\r\n    }\r\n\r\n    interface DFUXRefDirectoriesQueryResult {\r\n        Directory: Directory[];\r\n        Cluster: string;\r\n    }\r\n\r\n    export interface DFUXRefDirectoriesQueryResponseEx {\r\n        DFUXRefDirectoriesQueryResult: DFUXRefDirectoriesQueryResult;\r\n    }\r\n\r\n    export interface Part {\r\n        Num: string;\r\n        Node: string;\r\n    }\r\n\r\n    export interface DFUXRefFile {\r\n        Size: string;\r\n        Partmask: string;\r\n        Modified: Date;\r\n        Numparts: string;\r\n        Part: Part[];\r\n    }\r\n\r\n    export interface DFUXRefFoundFilesQueryResult {\r\n        File: DFUXRefFile[];\r\n        Cluster: string;\r\n    }\r\n\r\n    export interface XRefNode {\r\n        Name: string;\r\n        Modified: string;\r\n        Status: string;\r\n    }\r\n\r\n    export interface DFUXRefListResult {\r\n        XRefNode: XRefNode[];\r\n    }\r\n\r\n    export interface DFUXRefListResponseEx {\r\n        DFUXRefListResult: DFUXRefListResult;\r\n    }\r\n\r\n    export interface File2 {\r\n        Partslost: string;\r\n        Name: string;\r\n        Partmask: string;\r\n        Modified: Date;\r\n        Numparts: string;\r\n        Part: Part[];\r\n        Cluster: string;\r\n        Size: string;\r\n        Primarylost: string;\r\n        Replicatedlost: string;\r\n    }\r\n\r\n    export interface DFUXRefLostFilesQueryResult {\r\n        File: File2[];\r\n        Cluster: string;\r\n    }\r\n\r\n    export interface Warning {\r\n        Text: string;\r\n        File: string;\r\n    }\r\n\r\n    export interface DFUXRefMessagesQueryResult {\r\n        Warning: Warning[];\r\n        Cluster: string;\r\n    }\r\n\r\n    export interface DFUXRefOrphanFilesQueryResult {\r\n        File: DFUXRefFile[];\r\n        Cluster: string;\r\n    }\r\n\r\n}\r\n\r\nexport class DFUXRefService extends DFUXRefServiceBase {\r\n\r\n    DFUXRefDirectoriesEx(request: Partial<WsDFUXRef.DFUXRefDirectoriesQueryRequest>): Promise<WsDFUXRefEx.DFUXRefDirectoriesQueryResponseEx> {\r\n        return this._connection.send(\"DFUXRefDirectories\", request, \"json\", false, undefined, \"DFUXRefDirectoriesQueryResponse\");\r\n    }\r\n\r\n    DFUXRefListEx(request: Partial<WsDFUXRef.DFUXRefListRequest>): Promise<WsDFUXRefEx.DFUXRefListResponseEx> {\r\n        return this._connection.send(\"DFUXRefList\", request, \"json\", false, undefined, \"DFUXRefListResponse\");\r\n    }\r\n\r\n}\r\n","import type { DDL2 } from \"@hpcc-js/ddl-shim\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { ESPExceptions, Service } from \"../espConnection.ts\";\r\n\r\nexport type IFieldType = DDL2.IFieldType;\r\nexport type IField = DDL2.IField;\r\n\r\nexport type IWsEclRequest = IField[];\r\nexport type IWsEclResult = IField[];\r\nexport type IWsEclResponse = { [id: string]: IField[] };\r\n\r\nfunction jsonToIField(id: string, item: any): IField {\r\n    const type = typeof item;\r\n    switch (type) {\r\n        case \"boolean\":\r\n        case \"number\":\r\n        case \"string\":\r\n            return { id, type };\r\n        case \"object\":\r\n            if (item.Row instanceof Array) {\r\n                item = item.Row;\r\n            }\r\n            if (item instanceof Array) {\r\n                return {\r\n                    id,\r\n                    type: \"dataset\",\r\n                    children: jsonToIFieldArr(item[0])\r\n                };\r\n            } else if (item instanceof Object) {\r\n                if (item.Item && item.Item instanceof Array && item.Item.length === 1) {\r\n                    const fieldType = typeof item.Item[0];\r\n                    if (fieldType === \"string\" || fieldType === \"number\") {\r\n                        return {\r\n                            id,\r\n                            type: \"set\",\r\n                            fieldType\r\n                        };\r\n                    }\r\n                    throw new Error(\"Unknown field type\");\r\n                }\r\n                return {\r\n                    id,\r\n                    type: \"object\",\r\n                    fields: jsonToIFieldObj(item)\r\n                };\r\n            }\r\n        // Fall through  ---\r\n        default:\r\n            throw new Error(\"Unknown field type\");\r\n    }\r\n}\r\n\r\nfunction jsonToIFieldArr(json: any): IField[] {\r\n    if (json.Row && json.Row instanceof Array) {\r\n        json = json.Row[0];\r\n    }\r\n    const retVal: IField[] = [];\r\n    for (const key in json) {\r\n        retVal.push(jsonToIField(key, json[key]));\r\n    }\r\n    return retVal;\r\n}\r\n\r\nfunction jsonToIFieldObj(json: any): { [id: string]: IField } {\r\n    const fields = {};\r\n    for (const key in json) {\r\n        fields[key] = jsonToIField(key, json[key]);\r\n    }\r\n    return fields;\r\n}\r\n\r\nexport class EclService extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WsEcl\", \"0\");\r\n    }\r\n\r\n    opts() {\r\n        return this._connection.opts();\r\n    }\r\n\r\n    requestJson(querySet: string, queryId: string): Promise<IWsEclRequest> {\r\n        // http://192.168.3.22:8002/WsEcl/example/request/query/roxie/peopleaccounts/json?display\r\n        return this._connection.send(`example/request/query/${querySet}/${queryId}/json`, {}, \"text\").then(response => {\r\n            const requestSchema = JSON.parse(response);\r\n            for (const key in requestSchema) {\r\n                return requestSchema[key];\r\n            }\r\n            return {};\r\n        }).then(jsonToIFieldArr);\r\n    }\r\n\r\n    responseJson(querySet: string, queryId: string): Promise<IWsEclResponse> {\r\n        // http://192.168.3.22:8002/WsEcl/example/response/query/roxie/peopleaccounts/json?display\r\n        return this._connection.send(`example/response/query/${querySet}/${queryId}/json`, {}, \"text\").then(response => {\r\n            const responseSchema = JSON.parse(response);\r\n            for (const key in responseSchema) {\r\n                return responseSchema[key].Results;\r\n            }\r\n            return {};\r\n        }).then(resultsJson => {\r\n            const retVal: IWsEclResponse = {};\r\n            for (const key in resultsJson) {\r\n                retVal[key] = jsonToIFieldArr(resultsJson[key]);\r\n            }\r\n            return retVal;\r\n        });\r\n    }\r\n\r\n    submit(querySet: string, queryId: string, request: object) {\r\n        // http://192.168.3.22:8002/WsEcl/submit/query/roxie/peopleaccounts.1/json\r\n        const action = `submit/query/${querySet}/${queryId}`;\r\n        return this._connection.send(action, request, \"json2\").then(response => {\r\n            if (response.Results && response.Results.Exception) {\r\n                throw new ESPExceptions(action, request, {\r\n                    Source: \"wsEcl.submit\",\r\n                    Exception: response.Results.Exception\r\n                });\r\n            }\r\n            return response.Results;\r\n        });\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsElk {\r\n\r\n    export interface GetConfigDetailsRequest {\r\n\r\n    }\r\n\r\n    export interface GetConfigDetailsResponse {\r\n        IntegrateKibana: boolean;\r\n        KibanaAddress: string;\r\n        KibanaPort: string;\r\n        KibanaEntryPointURI: string;\r\n        ReportElasticSearchHealth: boolean;\r\n        ElasticSearchAddresses: string;\r\n        ElasticSearchPort: string;\r\n        ReportLogStashHealth: boolean;\r\n        LogStashAddress: string;\r\n        LogStashPort: string;\r\n    }\r\n\r\n    export interface ws_elkPingRequest {\r\n\r\n    }\r\n\r\n    export interface ws_elkPingResponse {\r\n\r\n    }\r\n\r\n}\r\n\r\nexport class ElkServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"ws_elk\", \"1\");\r\n    }\r\n\r\n    GetConfigDetails(request: Partial<WsElk.GetConfigDetailsRequest>): Promise<WsElk.GetConfigDetailsResponse> {\r\n        return this._connection.send(\"GetConfigDetails\", request, \"json\", false, undefined, \"GetConfigDetailsResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsElk.ws_elkPingRequest>): Promise<WsElk.ws_elkPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_elkPingResponse\");\r\n    }\r\n\r\n}\r\n","import { ElkServiceBase, WsElk } from \"./wsdl/ws_elk/v1/ws_elk.ts\";\r\n\r\nexport {\r\n    type WsElk\r\n};\r\n\r\nexport class ElkService extends ElkServiceBase {\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsLogaccess {\r\n\r\n    export type dateTime = string;\r\n    export type unsignedInt = number;\r\n    export type long = number;\r\n\r\n    export enum LogColumnType {\r\n        global = \"global\",\r\n        workunits = \"workunits\",\r\n        components = \"components\",\r\n        audience = \"audience\",\r\n        class = \"class\",\r\n        instance = \"instance\",\r\n        node = \"node\",\r\n        message = \"message\",\r\n        logid = \"logid\",\r\n        processid = \"processid\",\r\n        threadid = \"threadid\",\r\n        timestamp = \"timestamp\",\r\n        pod = \"pod\",\r\n        traceid = \"traceid\",\r\n        spanid = \"spanid\"\r\n    }\r\n\r\n    export enum LogColumnValueType {\r\n        string = \"string\",\r\n        numeric = \"numeric\",\r\n        datetime = \"datetime\",\r\n        enum = \"enum\",\r\n        epoch = \"epoch\"\r\n    }\r\n\r\n    export enum LogAccessType {\r\n        All = 0,\r\n        ByJobID = 1,\r\n        ByComponent = 2,\r\n        ByLogType = 3,\r\n        ByTargetAudience = 4,\r\n        BySourceInstance = 5,\r\n        BySourceNode = 6,\r\n        ByFieldName = 7,\r\n        ByPod = 8,\r\n        ByTraceID = 9,\r\n        BySpanID = 10\r\n    }\r\n\r\n    export enum LogAccessStatusCode {\r\n        Success = 0,\r\n        Warning = 1,\r\n        Fail = 2\r\n    }\r\n\r\n    export enum LogAccessFilterOperator {\r\n        NONE = 0,\r\n        AND = 1,\r\n        OR = 2\r\n    }\r\n\r\n    export enum LogSelectColumnMode {\r\n        MIN = 0,\r\n        DEFAULT = 1,\r\n        ALL = 2,\r\n        CUSTOM = 3\r\n    }\r\n\r\n    export enum SortColumType {\r\n        ByDate = 0,\r\n        ByJobID = 1,\r\n        ByComponent = 2,\r\n        ByLogType = 3,\r\n        ByTargetAudience = 4,\r\n        BySourceInstance = 5,\r\n        BySourceNode = 6,\r\n        ByFieldName = 7,\r\n        ByPod = 8,\r\n        ByTraceID = 9,\r\n        BySpanID = 10\r\n    }\r\n\r\n    export enum SortDirection {\r\n        ASC = 0,\r\n        DSC = 1\r\n    }\r\n\r\n    export interface GetHealthReportRequest {\r\n        IncludeConfiguration?: boolean;\r\n        IncludeDebugReport?: boolean;\r\n        IncludeSampleQuery?: boolean;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface MessageArray {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface Status {\r\n        Code: LogAccessStatusCode;\r\n        MessageArray: MessageArray;\r\n    }\r\n\r\n    export interface DebugReport {\r\n        SampleQueryReport: string;\r\n        PluginDebugReport: string;\r\n        ServerDebugReport: string;\r\n    }\r\n\r\n    export interface GetHealthReportResponse {\r\n        Exceptions: Exceptions;\r\n        Status: Status;\r\n        DebugReport: DebugReport;\r\n        Configuration: string;\r\n    }\r\n\r\n    export interface GetLogAccessInfoRequest {\r\n\r\n    }\r\n\r\n    export interface EnumeratedValues {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface Column {\r\n        Name: string;\r\n        LogType: LogColumnType;\r\n        EnumeratedValues: EnumeratedValues;\r\n        ColumnMode: LogSelectColumnMode;\r\n        ColumnType: LogColumnValueType;\r\n    }\r\n\r\n    export interface Columns {\r\n        Column: Column[];\r\n    }\r\n\r\n    export interface GetLogAccessInfoResponse {\r\n        Exceptions: Exceptions;\r\n        Columns: Columns;\r\n        RemoteLogManagerType: string;\r\n        RemoteLogManagerConnectionString: string;\r\n        SupportsResultPaging: boolean;\r\n    }\r\n\r\n    export interface leftFilter {\r\n        LogCategory: LogAccessType;\r\n        SearchByValue: string;\r\n        SearchField: string;\r\n    }\r\n\r\n    export interface rightFilter {\r\n        LogCategory: LogAccessType;\r\n        SearchByValue: string;\r\n        SearchField: string;\r\n    }\r\n\r\n    export interface rightBinaryFilter {\r\n        BinaryLogFilter: BinaryLogFilter[];\r\n    }\r\n\r\n    export interface BinaryLogFilter {\r\n        leftFilter: leftFilter;\r\n        leftBinaryFilter: leftBinaryFilter;\r\n        Operator: LogAccessFilterOperator;\r\n        rightFilter: {\r\n            LogCategory: LogAccessType;\r\n            SearchByValue: string;\r\n            SearchField: string;\r\n        };\r\n        rightBinaryFilter: {\r\n            BinaryLogFilter: BinaryLogFilter[];\r\n        };\r\n    }\r\n\r\n    export interface leftBinaryFilter {\r\n        BinaryLogFilter: BinaryLogFilter[];\r\n    }\r\n\r\n    export interface Filter {\r\n        leftFilter?: leftFilter;\r\n        leftBinaryFilter?: leftBinaryFilter;\r\n        Operator?: LogAccessFilterOperator;\r\n        rightFilter?: rightFilter;\r\n        rightBinaryFilter?: rightBinaryFilter;\r\n    }\r\n\r\n    export interface Range {\r\n        StartDate?: dateTime;\r\n        EndDate?: dateTime;\r\n    }\r\n\r\n    export interface Columns2 {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface SortCondition {\r\n        BySortType: SortColumType;\r\n        ColumnName: string;\r\n        Direction: SortDirection;\r\n    }\r\n\r\n    export interface SortBy {\r\n        SortCondition: SortCondition[];\r\n    }\r\n\r\n    export interface GetLogsRequest {\r\n        Filter?: Filter;\r\n        Range?: Range;\r\n        LogLineLimit?: unsignedInt;\r\n        LogLineStartFrom?: long;\r\n        SelectColumnMode?: LogSelectColumnMode;\r\n        Columns?: Columns2;\r\n        Format?: string;\r\n        SortBy?: SortBy;\r\n    }\r\n\r\n    export interface GetLogsResponse {\r\n        Exceptions: Exceptions;\r\n        LogLines: string;\r\n        LogLineCount: unsignedInt;\r\n        TotalLogLinesAvailable: unsignedInt;\r\n    }\r\n\r\n    export interface ws_logaccessPingRequest {\r\n\r\n    }\r\n\r\n    export interface ws_logaccessPingResponse {\r\n\r\n    }\r\n\r\n}\r\n\r\nexport class LogaccessServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"ws_logaccess\", \"1.08\");\r\n    }\r\n\r\n    GetHealthReport(request: Partial<WsLogaccess.GetHealthReportRequest>): Promise<WsLogaccess.GetHealthReportResponse> {\r\n        return this._connection.send(\"GetHealthReport\", request, \"json\", false, undefined, \"GetHealthReportResponse\");\r\n    }\r\n\r\n    GetLogAccessInfo(request: Partial<WsLogaccess.GetLogAccessInfoRequest>): Promise<WsLogaccess.GetLogAccessInfoResponse> {\r\n        return this._connection.send(\"GetLogAccessInfo\", request, \"json\", false, undefined, \"GetLogAccessInfoResponse\");\r\n    }\r\n\r\n    GetLogs(request: Partial<WsLogaccess.GetLogsRequest>): Promise<WsLogaccess.GetLogsResponse> {\r\n        return this._connection.send(\"GetLogs\", request, \"json\", false, undefined, \"GetLogsResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsLogaccess.ws_logaccessPingRequest>): Promise<WsLogaccess.ws_logaccessPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_logaccessPingResponse\");\r\n    }\r\n\r\n}\r\n","import { scopedLogger } from \"@hpcc-js/util\";\r\nimport { LogaccessServiceBase, WsLogaccess } from \"./wsdl/ws_logaccess/v1.08/ws_logaccess.ts\";\r\n\r\nconst logger = scopedLogger(\"@hpcc-js/comms/services/wsLogaccess.ts\");\r\n\r\nexport {\r\n    WsLogaccess\r\n};\r\n\r\nexport interface GetLogsExRequest {\r\n    audience?: string;\r\n    class?: string[];\r\n    workunits?: string;\r\n    message?: string;\r\n    processid?: string;\r\n    logid?: string;\r\n    threadid?: string;\r\n    timestamp?: string;\r\n    components?: string;\r\n    instance?: string;\r\n    StartDate?: Date;\r\n    EndDate?: Date;\r\n    LogLineStartFrom: number,\r\n    LogLineLimit: number\r\n}\r\n\r\nexport const enum LogType {\r\n    Disaster = \"DIS\",\r\n    Error = \"ERR\",\r\n    Warning = \"WRN\",\r\n    Information = \"INF\",\r\n    Progress = \"PRO\",\r\n    Metric = \"MET\"\r\n}\r\n\r\nexport const enum TargetAudience {\r\n    Operator = \"OPR\",\r\n    User = \"USR\",\r\n    Programmer = \"PRO\",\r\n    Audit = \"ADT\"\r\n}\r\n\r\n// properties here are \"LogType\" values in Ws_logaccess.GetLogAccessInfo\r\nexport interface LogLine {\r\n    audience?: string;\r\n    class?: string;\r\n    workunits?: string;\r\n    message?: string;\r\n    processid?: number;\r\n    logid?: string;\r\n    threadid?: number;\r\n    timestamp?: string;\r\n    components?: string;\r\n    instance?: string;\r\n}\r\n\r\nexport interface GetLogsExResponse {\r\n    lines: LogLine[],\r\n    total: number,\r\n}\r\n\r\nconst knownLogManagerTypes = new Set([\"azureloganalyticscurl\", \"elasticstack\", \"grafanacurl\"]);\r\nconst logColumnTypeValues = new Set(Object.values(WsLogaccess.LogColumnType));\r\n\r\nfunction getLogCategory(searchField: string): WsLogaccess.LogAccessType {\r\n    switch (searchField) {\r\n        case WsLogaccess.LogColumnType.workunits:\r\n        case \"hpcc.log.jobid\":\r\n            return WsLogaccess.LogAccessType.ByJobID;\r\n        case WsLogaccess.LogColumnType.audience:\r\n        case \"hpcc.log.audience\":\r\n            return WsLogaccess.LogAccessType.ByTargetAudience;\r\n        case WsLogaccess.LogColumnType.class:\r\n        case \"hpcc.log.class\":\r\n            return WsLogaccess.LogAccessType.ByLogType;\r\n        case WsLogaccess.LogColumnType.components:\r\n        case \"kubernetes.container.name\":\r\n            return WsLogaccess.LogAccessType.ByComponent;\r\n        default:\r\n            return WsLogaccess.LogAccessType.ByFieldName;\r\n    }\r\n}\r\n\r\n// Explicit list of filter-bearing keys on GetLogsExRequest.\r\n// Using an allowlist avoids accidentally treating control fields (StartDate, LogLineLimit, etc.)\r\n// as log filters if the server ever returns a column whose name collides with them.\r\nconst FILTER_KEYS = [\"audience\", \"class\", \"workunits\", \"message\", \"processid\", \"logid\", \"threadid\", \"timestamp\", \"components\", \"instance\"] as const;\r\n\r\nfunction buildFilters(request: GetLogsExRequest, columnMap: Record<string, string>): WsLogaccess.leftFilter[] {\r\n    const filters: WsLogaccess.leftFilter[] = [];\r\n    for (const key of FILTER_KEYS) {\r\n        const value = request[key];\r\n        if (value == null || value === \"\" || (Array.isArray(value) && value.length === 0)) {\r\n            continue;\r\n        }\r\n        if (!(key in columnMap)) continue;\r\n\r\n        const isKnownLogType = logColumnTypeValues.has(key as WsLogaccess.LogColumnType);\r\n        let searchField: string = isKnownLogType ? key : columnMap[key];\r\n        const logCategory = getLogCategory(searchField);\r\n        if (logCategory === WsLogaccess.LogAccessType.ByFieldName) {\r\n            searchField = columnMap[key];\r\n        }\r\n\r\n        const appendWildcard = logCategory === WsLogaccess.LogAccessType.ByComponent;\r\n        const rawValues: string[] = Array.isArray(value) ? value : [value as string];\r\n        for (const raw of rawValues) {\r\n            filters.push({\r\n                LogCategory: logCategory,\r\n                SearchField: searchField,\r\n                // append wildcard to end of search value to include ephemeral\r\n                // containers that aren't listed in ECL Watch's filters\r\n                SearchByValue: appendWildcard ? raw + \"*\" : raw\r\n            });\r\n        }\r\n    }\r\n    return filters;\r\n}\r\n\r\n// Builds a left-leaning OR chain from filters that share the same SearchField.\r\nfunction buildOrGroup(group: WsLogaccess.leftFilter[]): WsLogaccess.BinaryLogFilter {\r\n    const root: WsLogaccess.BinaryLogFilter = { leftFilter: group[0] } as WsLogaccess.BinaryLogFilter;\r\n    let node = root;\r\n    for (let i = 1; i < group.length; i++) {\r\n        node.Operator = WsLogaccess.LogAccessFilterOperator.OR;\r\n        if (i === group.length - 1) {\r\n            node.rightFilter = group[i] as WsLogaccess.rightFilter;\r\n        } else {\r\n            node.rightBinaryFilter = { BinaryLogFilter: [{ leftFilter: group[i] } as WsLogaccess.BinaryLogFilter] };\r\n            node = node.rightBinaryFilter.BinaryLogFilter[0];\r\n        }\r\n    }\r\n    return root;\r\n}\r\n\r\n// Recursively AND-chains two or more groups into a BinaryLogFilter (used for nesting beyond depth 1).\r\nfunction buildAndChain(groups: WsLogaccess.leftFilter[][]): WsLogaccess.BinaryLogFilter {\r\n    const [firstGroup, ...remainingGroups] = groups;\r\n    const node: WsLogaccess.BinaryLogFilter = {} as WsLogaccess.BinaryLogFilter;\r\n    if (firstGroup.length === 1) {\r\n        node.leftFilter = firstGroup[0];\r\n    } else {\r\n        node.leftBinaryFilter = { BinaryLogFilter: [buildOrGroup(firstGroup)] };\r\n    }\r\n    if (remainingGroups.length === 0) return node;\r\n    node.Operator = WsLogaccess.LogAccessFilterOperator.AND;\r\n    if (remainingGroups.length === 1) {\r\n        const [secondGroup] = remainingGroups;\r\n        if (secondGroup.length === 1) {\r\n            node.rightFilter = secondGroup[0] as WsLogaccess.rightFilter;\r\n        } else {\r\n            node.rightBinaryFilter = { BinaryLogFilter: [buildOrGroup(secondGroup)] };\r\n        }\r\n    } else {\r\n        node.rightBinaryFilter = { BinaryLogFilter: [buildAndChain(remainingGroups)] };\r\n    }\r\n    return node;\r\n}\r\n\r\n// Groups filters by SearchField, OR-chains each group, then AND-chains the groups together.\r\n// This ensures e.g. [class_INF, class_ERR, audience_USR] always produces\r\n// (class_INF OR class_ERR) AND audience_USR regardless of input order.\r\nfunction buildFilterTree(filters: WsLogaccess.leftFilter[]): WsLogaccess.Filter {\r\n    const groupMap = new Map<string, WsLogaccess.leftFilter[]>();\r\n    for (const f of filters) {\r\n        const existing = groupMap.get(f.SearchField);\r\n        if (existing) existing.push(f); else groupMap.set(f.SearchField, [f]);\r\n    }\r\n    const groups = [...groupMap.values()];\r\n\r\n    if (groups.length === 0) {\r\n        return { leftFilter: { LogCategory: WsLogaccess.LogAccessType.All } as WsLogaccess.leftFilter };\r\n    }\r\n\r\n    const [firstGroup, ...remainingGroups] = groups;\r\n    const filter: WsLogaccess.Filter = {};\r\n    if (firstGroup.length === 1) {\r\n        filter.leftFilter = firstGroup[0];\r\n    } else {\r\n        filter.leftBinaryFilter = { BinaryLogFilter: [buildOrGroup(firstGroup)] };\r\n    }\r\n\r\n    if (remainingGroups.length === 0) return filter;\r\n    filter.Operator = WsLogaccess.LogAccessFilterOperator.AND;\r\n    if (remainingGroups.length === 1) {\r\n        const [secondGroup] = remainingGroups;\r\n        if (secondGroup.length === 1) {\r\n            filter.rightFilter = secondGroup[0] as WsLogaccess.rightFilter;\r\n        } else {\r\n            filter.rightBinaryFilter = { BinaryLogFilter: [buildOrGroup(secondGroup)] };\r\n        }\r\n    } else {\r\n        filter.rightBinaryFilter = { BinaryLogFilter: [buildAndChain(remainingGroups)] };\r\n    }\r\n    return filter;\r\n}\r\n\r\nexport class LogaccessService extends LogaccessServiceBase {\r\n\r\n    protected _logAccessInfo: Promise<WsLogaccess.GetLogAccessInfoResponse>;\r\n\r\n    GetLogAccessInfo(request: WsLogaccess.GetLogAccessInfoRequest = {}): Promise<WsLogaccess.GetLogAccessInfoResponse> {\r\n        if (!this._logAccessInfo) {\r\n            this._logAccessInfo = super.GetLogAccessInfo(request);\r\n        }\r\n        return this._logAccessInfo;\r\n    }\r\n\r\n    GetLogs(request: WsLogaccess.GetLogsRequest): Promise<WsLogaccess.GetLogsResponse> {\r\n        return super.GetLogs(request);\r\n    }\r\n\r\n    private convertLogLine(columnMap: Record<string, string>, line: any): LogLine {\r\n        const retVal: LogLine = {};\r\n        const fields = line?.fields ? Object.assign({}, ...line.fields) : null;\r\n        for (const key in columnMap) {\r\n            retVal[key] = fields ? fields[columnMap[key]] ?? \"\" : \"\";\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    async GetLogsEx(request: GetLogsExRequest): Promise<GetLogsExResponse> {\r\n        const logInfo = await this.GetLogAccessInfo();\r\n        const columnMap: Record<string, string> = {};\r\n        logInfo.Columns.Column.forEach(column => columnMap[column.LogType] = column.Name);\r\n\r\n        const filters = buildFilters(request, columnMap);\r\n        const range: Record<string, string> = {\r\n            StartDate: request.StartDate instanceof Date ? request.StartDate.toISOString() : new Date(0).toISOString()\r\n        };\r\n        if (request.EndDate instanceof Date) {\r\n            range.EndDate = request.EndDate.toISOString();\r\n        }\r\n\r\n        const getLogsRequest: WsLogaccess.GetLogsRequest = {\r\n            Filter: buildFilterTree(filters),\r\n            Range: range,\r\n            LogLineStartFrom: request.LogLineStartFrom ?? 0,\r\n            LogLineLimit: request.LogLineLimit ?? 100,\r\n            SelectColumnMode: WsLogaccess.LogSelectColumnMode.DEFAULT,\r\n            Format: \"JSON\",\r\n            SortBy: {\r\n                SortCondition: [{\r\n                    BySortType: WsLogaccess.SortColumType.ByDate,\r\n                    ColumnName: \"\",\r\n                    Direction: 0\r\n                }]\r\n            }\r\n        };\r\n\r\n        return this.GetLogs(getLogsRequest).then(response => {\r\n            try {\r\n                const logLines = JSON.parse(response.LogLines);\r\n                const lines = knownLogManagerTypes.has(logInfo.RemoteLogManagerType)\r\n                    ? (logLines.lines?.map((line: any) => this.convertLogLine(columnMap, line)) ?? [])\r\n                    : (logger.warning(`Unknown RemoteLogManagerType: ${logInfo.RemoteLogManagerType}`), []);\r\n                return {\r\n                    lines,\r\n                    total: response.TotalLogLinesAvailable ?? 10000\r\n                };\r\n            } catch (e: any) {\r\n                logger.error(e.message ?? e);\r\n            }\r\n            return {\r\n                lines: [],\r\n                total: 0\r\n            };\r\n        });\r\n    }\r\n}\r\n","export default function(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n  if (compare.length === 1) compare = ascendingComparator(compare);\n  return {\n    left: function(a, x, lo, hi) {\n      if (lo == null) lo = 0;\n      if (hi == null) hi = a.length;\n      while (lo < hi) {\n        var mid = lo + hi >>> 1;\n        if (compare(a[mid], x) < 0) lo = mid + 1;\n        else hi = mid;\n      }\n      return lo;\n    },\n    right: function(a, x, lo, hi) {\n      if (lo == null) lo = 0;\n      if (hi == null) hi = a.length;\n      while (lo < hi) {\n        var mid = lo + hi >>> 1;\n        if (compare(a[mid], x) > 0) hi = mid;\n        else lo = mid + 1;\n      }\n      return lo;\n    }\n  };\n}\n\nfunction ascendingComparator(f) {\n  return function(d, x) {\n    return ascending(f(d), x);\n  };\n}\n","export default function(x) {\n  return x === null ? NaN : +x;\n}\n","export default function(values, valueof) {\n  var n = values.length,\n      i = -1,\n      value,\n      max;\n\n  if (valueof == null) {\n    while (++i < n) { // Find the first comparable value.\n      if ((value = values[i]) != null && value >= value) {\n        max = value;\n        while (++i < n) { // Compare the remaining values.\n          if ((value = values[i]) != null && value > max) {\n            max = value;\n          }\n        }\n      }\n    }\n  }\n\n  else {\n    while (++i < n) { // Find the first comparable value.\n      if ((value = valueof(values[i], i, values)) != null && value >= value) {\n        max = value;\n        while (++i < n) { // Compare the remaining values.\n          if ((value = valueof(values[i], i, values)) != null && value > max) {\n            max = value;\n          }\n        }\n      }\n    }\n  }\n\n  return max;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n  var n = values.length,\n      m = n,\n      i = -1,\n      value,\n      sum = 0;\n\n  if (valueof == null) {\n    while (++i < n) {\n      if (!isNaN(value = number(values[i]))) sum += value;\n      else --m;\n    }\n  }\n\n  else {\n    while (++i < n) {\n      if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n      else --m;\n    }\n  }\n\n  if (m) return sum / m;\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsMachine {\r\n\r\n    export type int = number;\r\n    export type long = number;\r\n    export type unsignedInt = number;\r\n\r\n    export enum ThresholdType {\r\n        THRESHOLD_PERCENTAGE = 0,\r\n        THRESHOLD_MB = 1\r\n    }\r\n\r\n    export enum TpMachineType {\r\n        ALLNODES = \"ALLNODES\",\r\n        THORMACHINES = \"THORMACHINES\",\r\n        HOLEMACHINES = \"HOLEMACHINES\",\r\n        ROXIEMACHINES = \"ROXIEMACHINES\",\r\n        MACHINES = \"MACHINES\",\r\n        AVAILABLEMACHINES = \"AVAILABLEMACHINES\",\r\n        DROPZONE = \"DROPZONE\",\r\n        STANDBYNNODE = \"STANDBYNNODE\",\r\n        THORSPARENODES = \"THORSPARENODES\",\r\n        HOLESTANDBYNODES = \"HOLESTANDBYNODES\"\r\n    }\r\n\r\n    export interface GetComponentStatusRequest {\r\n\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface StatusReport {\r\n        StatusID: int;\r\n        Status: string;\r\n        StatusDetails: string;\r\n        Reporter: string;\r\n        TimeReported: long;\r\n        TimeReportedStr: string;\r\n        TimeCached: string;\r\n        URL: string;\r\n    }\r\n\r\n    export interface StatusReports {\r\n        StatusReport: StatusReport[];\r\n    }\r\n\r\n    export interface ComponentStatus {\r\n        ComponentTypeID: int;\r\n        ComponentType: string;\r\n        EndPoint: string;\r\n        StatusID: int;\r\n        Status: string;\r\n        TimeReported: long;\r\n        TimeReportedStr: string;\r\n        Reporter: string;\r\n        StatusReports: StatusReports;\r\n    }\r\n\r\n    export interface ComponentStatusList {\r\n        ComponentStatus: ComponentStatus[];\r\n    }\r\n\r\n    export interface GetComponentStatusResponse {\r\n        Exceptions: Exceptions;\r\n        StatusCode: int;\r\n        Status: string;\r\n        ComponentType: string;\r\n        EndPoint: string;\r\n        ComponentStatusID: int;\r\n        ComponentStatus: string;\r\n        TimeReported: long;\r\n        TimeReportedStr: string;\r\n        Reporter: string;\r\n        StatusReport: StatusReport;\r\n        ComponentStatusList: ComponentStatusList;\r\n    }\r\n\r\n    export interface Component {\r\n        Type: string;\r\n        Name: string;\r\n    }\r\n\r\n    export interface Components {\r\n        Component: Component[];\r\n    }\r\n\r\n    export interface GetComponentUsageRequest {\r\n        Components?: Components;\r\n        BypassCachedResult?: boolean;\r\n    }\r\n\r\n    export interface DiskUsage {\r\n        Name: string;\r\n        Path: string;\r\n        Description: string;\r\n        InUse: long;\r\n        Available: long;\r\n        PercentAvailable: int;\r\n        Exception: string;\r\n    }\r\n\r\n    export interface DiskUsages {\r\n        DiskUsage: DiskUsage[];\r\n    }\r\n\r\n    export interface MachineUsage {\r\n        Name: string;\r\n        NetAddress: string;\r\n        Description: string;\r\n        Exception: string;\r\n        DiskUsages: DiskUsages;\r\n    }\r\n\r\n    export interface MachineUsages {\r\n        MachineUsage: MachineUsage[];\r\n    }\r\n\r\n    export interface ComponentUsage {\r\n        Type: string;\r\n        Name: string;\r\n        Description: string;\r\n        Exception: string;\r\n        MachineUsages: MachineUsages;\r\n    }\r\n\r\n    export interface ComponentUsages {\r\n        ComponentUsage: ComponentUsage[];\r\n    }\r\n\r\n    export interface GetComponentUsageResponse {\r\n        Exceptions: Exceptions;\r\n        ComponentUsages: ComponentUsages;\r\n        UsageTime: string;\r\n    }\r\n\r\n    export interface Addresses {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface GetMachineInfoRequest {\r\n        Addresses?: Addresses;\r\n        SortBy?: string;\r\n        ClusterType?: TpMachineType;\r\n        Cluster?: string;\r\n        OldIP?: string;\r\n        Path?: string;\r\n        AddProcessesToFilter?: string;\r\n        ApplyProcessFilter?: boolean;\r\n        GetProcessorInfo?: boolean;\r\n        GetStorageInfo?: boolean;\r\n        LocalFileSystemsOnly?: boolean;\r\n        GetSoftwareInfo?: boolean;\r\n        MemThreshold?: int;\r\n        DiskThreshold?: int;\r\n        CpuThreshold?: int;\r\n        AutoRefresh?: int;\r\n        MemThresholdType?: ThresholdType;\r\n        DiskThresholdType?: ThresholdType;\r\n        UserName?: string;\r\n        Password?: string;\r\n        SecurityString?: string;\r\n    }\r\n\r\n    export interface RequestInfo {\r\n        Addresses: Addresses;\r\n        SortBy: string;\r\n        ClusterType: TpMachineType;\r\n        Cluster: string;\r\n        OldIP: string;\r\n        Path: string;\r\n        AddProcessesToFilter: string;\r\n        ApplyProcessFilter: boolean;\r\n        GetProcessorInfo: boolean;\r\n        GetStorageInfo: boolean;\r\n        LocalFileSystemsOnly: boolean;\r\n        GetSoftwareInfo: boolean;\r\n        MemThreshold: int;\r\n        DiskThreshold: int;\r\n        CpuThreshold: int;\r\n        AutoRefresh: int;\r\n        MemThresholdType: ThresholdType;\r\n        DiskThresholdType: ThresholdType;\r\n        SecurityString: string;\r\n        UserName: string;\r\n        Password: string;\r\n        EnableSNMP: boolean;\r\n    }\r\n\r\n    export interface Columns {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface ProcessorInfo {\r\n        Type: string;\r\n        Load: int;\r\n    }\r\n\r\n    export interface Processors {\r\n        ProcessorInfo: ProcessorInfo[];\r\n    }\r\n\r\n    export interface StorageInfo {\r\n        Description: string;\r\n        Type: string;\r\n        Available: long;\r\n        PercentAvail: int;\r\n        Total: long;\r\n        Failures: int;\r\n    }\r\n\r\n    export interface Storage {\r\n        StorageInfo: StorageInfo[];\r\n    }\r\n\r\n    export interface SWRunInfo {\r\n        Name: string;\r\n        Instances: int;\r\n        State: int;\r\n    }\r\n\r\n    export interface Running {\r\n        SWRunInfo: SWRunInfo[];\r\n    }\r\n\r\n    export interface PhysicalMemory {\r\n        Description: string;\r\n        Type: string;\r\n        Available: long;\r\n        PercentAvail: int;\r\n        Total: long;\r\n        Failures: int;\r\n    }\r\n\r\n    export interface VirtualMemory {\r\n        Description: string;\r\n        Type: string;\r\n        Available: long;\r\n        PercentAvail: int;\r\n        Total: long;\r\n        Failures: int;\r\n    }\r\n\r\n    export interface ComponentInfo {\r\n        Condition: int;\r\n        State: int;\r\n        UpTime: string;\r\n    }\r\n\r\n    export interface MachineInfoEx {\r\n        Address: string;\r\n        ConfigAddress: string;\r\n        Name: string;\r\n        ProcessType: string;\r\n        DisplayType: string;\r\n        Description: string;\r\n        AgentVersion: string;\r\n        Contact: string;\r\n        Location: string;\r\n        UpTime: string;\r\n        ComponentName: string;\r\n        ComponentPath: string;\r\n        RoxieState: string;\r\n        RoxieStateDetails: string;\r\n        OS: int;\r\n        ProcessNumber: int;\r\n        Channels: unsignedInt;\r\n        Processors: Processors;\r\n        Storage: Storage;\r\n        Running: Running;\r\n        PhysicalMemory: PhysicalMemory;\r\n        VirtualMemory: VirtualMemory;\r\n        ComponentInfo: ComponentInfo;\r\n        Exception: string;\r\n    }\r\n\r\n    export interface Machines {\r\n        MachineInfoEx: MachineInfoEx[];\r\n    }\r\n\r\n    export interface GetMachineInfoResponse {\r\n        Exceptions: Exceptions;\r\n        RequestInfo: RequestInfo;\r\n        Columns: Columns;\r\n        Machines: Machines;\r\n        TimeStamp: string;\r\n        UserName: string;\r\n        Password: string;\r\n        AcceptLanguage: string;\r\n    }\r\n\r\n    export interface GetMachineInfoRequestEx {\r\n        Addresses: Addresses;\r\n        ClusterType: TpMachineType;\r\n    }\r\n\r\n    export interface GetMachineInfoResponseEx {\r\n        Exceptions: Exceptions;\r\n        AcceptLanguage: string;\r\n        Machines: Machines;\r\n    }\r\n\r\n    export interface ShowColumns {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface MetricsRequest {\r\n        SecurityString?: string;\r\n        Addresses?: Addresses;\r\n        ShowColumns?: ShowColumns;\r\n        AutoRefresh?: int;\r\n        SelectAllChecked?: boolean;\r\n        Cluster?: string;\r\n        AutoUpdate?: boolean;\r\n    }\r\n\r\n    export interface MetricsResponse {\r\n        Exceptions: Exceptions;\r\n        FieldInformation: string;\r\n        Metrics: string;\r\n        AutoRefresh: int;\r\n        Cluster: string;\r\n        SelectAllChecked: boolean;\r\n        AutoUpdate: boolean;\r\n        AcceptLanguage: string;\r\n    }\r\n\r\n    export interface NodeGroups {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface GetNodeGroupUsageRequest {\r\n        NodeGroups?: NodeGroups;\r\n        BypassCachedResult?: boolean;\r\n    }\r\n\r\n    export interface NodeGroupUsage {\r\n        Name: string;\r\n        Description: string;\r\n        Exception: string;\r\n        ComponentUsages: ComponentUsages;\r\n    }\r\n\r\n    export interface NodeGroupUsages {\r\n        NodeGroupUsage: NodeGroupUsage[];\r\n    }\r\n\r\n    export interface GetNodeGroupUsageResponse {\r\n        Exceptions: Exceptions;\r\n        NodeGroupUsages: NodeGroupUsages;\r\n        UsageTime: string;\r\n    }\r\n\r\n    export interface TargetClusters {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface GetTargetClusterInfoRequest {\r\n        TargetClusters?: TargetClusters;\r\n        AddProcessesToFilter?: string;\r\n        ApplyProcessFilter?: boolean;\r\n        GetProcessorInfo?: boolean;\r\n        GetStorageInfo?: boolean;\r\n        LocalFileSystemsOnly?: boolean;\r\n        GetSoftwareInfo?: boolean;\r\n        MemThreshold?: int;\r\n        DiskThreshold?: int;\r\n        CpuThreshold?: int;\r\n        AutoRefresh?: int;\r\n        MemThresholdType?: ThresholdType;\r\n        DiskThresholdType?: ThresholdType;\r\n    }\r\n\r\n    export interface Processes {\r\n        MachineInfoEx: MachineInfoEx[];\r\n    }\r\n\r\n    export interface TargetClusterInfo {\r\n        Name: string;\r\n        Type: string;\r\n        Processes: Processes;\r\n    }\r\n\r\n    export interface TargetClusterInfoList {\r\n        TargetClusterInfo: TargetClusterInfo[];\r\n    }\r\n\r\n    export interface GetTargetClusterInfoResponse {\r\n        Exceptions: Exceptions;\r\n        Columns: Columns;\r\n        RequestInfo: RequestInfo;\r\n        TargetClusterInfoList: TargetClusterInfoList;\r\n        TimeStamp: string;\r\n        AcceptLanguage: string;\r\n    }\r\n\r\n    export interface GetTargetClusterUsageRequest {\r\n        TargetClusters?: TargetClusters;\r\n        BypassCachedResult?: boolean;\r\n    }\r\n\r\n    export interface TargetClusterUsage {\r\n        Name: string;\r\n        Description: string;\r\n        Exception: string;\r\n        ComponentUsages: ComponentUsages;\r\n    }\r\n\r\n    export interface TargetClusterUsages {\r\n        TargetClusterUsage: TargetClusterUsage[];\r\n    }\r\n\r\n    export interface GetTargetClusterUsageResponse {\r\n        Exceptions: Exceptions;\r\n        TargetClusterUsages: TargetClusterUsages;\r\n        UsageTime: string;\r\n    }\r\n\r\n    export interface ws_machinePingRequest {\r\n\r\n    }\r\n\r\n    export interface ws_machinePingResponse {\r\n\r\n    }\r\n\r\n    export interface UpdateComponentStatusRequest {\r\n        Reporter?: string;\r\n        ComponentStatusList?: ComponentStatusList;\r\n    }\r\n\r\n    export interface UpdateComponentStatusResponse {\r\n        Exceptions: Exceptions;\r\n        StatusCode: int;\r\n        Status: string;\r\n    }\r\n\r\n}\r\n\r\nexport class MachineServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"ws_machine\", \"1.19\");\r\n    }\r\n\r\n    GetComponentStatus(request: Partial<WsMachine.GetComponentStatusRequest>): Promise<WsMachine.GetComponentStatusResponse> {\r\n        return this._connection.send(\"GetComponentStatus\", request, \"json\", false, undefined, \"GetComponentStatusResponse\");\r\n    }\r\n\r\n    GetComponentUsage(request: Partial<WsMachine.GetComponentUsageRequest>): Promise<WsMachine.GetComponentUsageResponse> {\r\n        return this._connection.send(\"GetComponentUsage\", request, \"json\", false, undefined, \"GetComponentUsageResponse\");\r\n    }\r\n\r\n    GetMachineInfo(request: Partial<WsMachine.GetMachineInfoRequest>): Promise<WsMachine.GetMachineInfoResponse> {\r\n        return this._connection.send(\"GetMachineInfo\", request, \"json\", false, undefined, \"GetMachineInfoResponse\");\r\n    }\r\n\r\n    GetMachineInfoEx(request: Partial<WsMachine.GetMachineInfoRequestEx>): Promise<WsMachine.GetMachineInfoResponseEx> {\r\n        return this._connection.send(\"GetMachineInfoEx\", request, \"json\", false, undefined, \"GetMachineInfoResponseEx\");\r\n    }\r\n\r\n    GetMetrics(request: Partial<WsMachine.MetricsRequest>): Promise<WsMachine.MetricsResponse> {\r\n        return this._connection.send(\"GetMetrics\", request, \"json\", false, undefined, \"MetricsResponse\");\r\n    }\r\n\r\n    GetNodeGroupUsage(request: Partial<WsMachine.GetNodeGroupUsageRequest>): Promise<WsMachine.GetNodeGroupUsageResponse> {\r\n        return this._connection.send(\"GetNodeGroupUsage\", request, \"json\", false, undefined, \"GetNodeGroupUsageResponse\");\r\n    }\r\n\r\n    GetTargetClusterInfo(request: Partial<WsMachine.GetTargetClusterInfoRequest>): Promise<WsMachine.GetTargetClusterInfoResponse> {\r\n        return this._connection.send(\"GetTargetClusterInfo\", request, \"json\", false, undefined, \"GetTargetClusterInfoResponse\");\r\n    }\r\n\r\n    GetTargetClusterUsage(request: Partial<WsMachine.GetTargetClusterUsageRequest>): Promise<WsMachine.GetTargetClusterUsageResponse> {\r\n        return this._connection.send(\"GetTargetClusterUsage\", request, \"json\", false, undefined, \"GetTargetClusterUsageResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsMachine.ws_machinePingRequest>): Promise<WsMachine.ws_machinePingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_machinePingResponse\");\r\n    }\r\n\r\n    UpdateComponentStatus(request: Partial<WsMachine.UpdateComponentStatusRequest>): Promise<WsMachine.UpdateComponentStatusResponse> {\r\n        return this._connection.send(\"UpdateComponentStatus\", request, \"json\", false, undefined, \"UpdateComponentStatusResponse\");\r\n    }\r\n\r\n}\r\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import { exists } from \"@hpcc-js/util\";\r\nimport { max as d3Max, mean as d3Mean } from \"d3-array\";\r\n\r\nimport { MachineServiceBase, WsMachine } from \"./wsdl/ws_machine/v1.19/ws_machine.ts\";\r\n\r\nexport {\r\n    type WsMachine\r\n};\r\n\r\nexport namespace WsMachineEx {\r\n\r\n    export interface DiskUsage extends WsMachine.DiskUsage {\r\n        Total: number;\r\n        PercentUsed: number;\r\n    }\r\n\r\n    export interface MachineUsage extends Omit<WsMachine.MachineUsage, \"DiskUsages\"> {\r\n        DiskUsages: DiskUsage[];\r\n        mean: number;\r\n        max: number;\r\n    }\r\n\r\n    export interface ComponentUsage extends Omit<WsMachine.ComponentUsage, \"MachineUsages\"> {\r\n        MachineUsages: MachineUsage[];\r\n        MachineUsagesDescription: string;\r\n        mean: number;\r\n        max: number;\r\n    }\r\n\r\n    export interface TargetClusterUsage extends Omit<WsMachine.TargetClusterUsage, \"ComponentUsages\"> {\r\n        ComponentUsages: ComponentUsage[];\r\n        ComponentUsagesDescription: string;\r\n        mean: number;\r\n        max: number;\r\n    }\r\n\r\n}\r\n\r\nexport class MachineService extends MachineServiceBase {\r\n\r\n    GetTargetClusterUsageEx(targetClusters?: string[], bypassCachedResult: boolean = false): Promise<WsMachineEx.TargetClusterUsage[]> {\r\n        return this._connection.send(\"GetTargetClusterUsage\", {\r\n            TargetClusters: targetClusters ? { Item: targetClusters } : {},\r\n            BypassCachedResult: bypassCachedResult\r\n        }).then(response => {\r\n            return exists(\"TargetClusterUsages.TargetClusterUsage\", response) ? response.TargetClusterUsages.TargetClusterUsage : [];\r\n        }).then(response => {\r\n            return response.filter(tcu => !!tcu.ComponentUsages).map(tcu => {\r\n                const ComponentUsages: WsMachineEx.ComponentUsage[] = tcu.ComponentUsages.ComponentUsage.map(cu => {\r\n                    const MachineUsages: WsMachineEx.MachineUsage[] = (cu.MachineUsages && cu.MachineUsages.MachineUsage ? cu.MachineUsages.MachineUsage : []).map(mu => {\r\n                        const DiskUsages: WsMachineEx.DiskUsage[] = mu.DiskUsages && mu.DiskUsages.DiskUsage ? mu.DiskUsages.DiskUsage.map(du => {\r\n                            return {\r\n                                ...du,\r\n                                InUse: du.InUse * 1024,\r\n                                Total: (du.InUse + du.Available) * 1024,\r\n                                PercentUsed: 100 - du.PercentAvailable\r\n                            };\r\n                        }) : [];\r\n                        return {\r\n                            Name: mu.Name,\r\n                            NetAddress: mu.NetAddress,\r\n                            Description: mu.Description,\r\n                            DiskUsages,\r\n                            mean: d3Mean(DiskUsages.filter(du => !isNaN(du.PercentUsed)), du => du.PercentUsed),\r\n                            max: d3Max(DiskUsages.filter(du => !isNaN(du.PercentUsed)), du => du.PercentUsed)\r\n                        };\r\n                    });\r\n                    return {\r\n                        Type: cu.Type,\r\n                        Name: cu.Name,\r\n                        Description: cu.Description,\r\n                        MachineUsages,\r\n                        MachineUsagesDescription: MachineUsages.reduce((prev, mu) => prev + (mu.Description || \"\"), \"\"),\r\n                        mean: d3Mean(MachineUsages.filter(mu => !isNaN(mu.mean)), mu => mu.mean),\r\n                        max: d3Max(MachineUsages.filter(mu => !isNaN(mu.max)), mu => mu.max)\r\n                    };\r\n                });\r\n                return {\r\n                    Name: tcu.Name,\r\n                    Description: tcu.Description,\r\n                    ComponentUsages,\r\n                    ComponentUsagesDescription: ComponentUsages.reduce((prev, cu) => prev + (cu.MachineUsagesDescription || \"\"), \"\"),\r\n                    mean: d3Mean(ComponentUsages.filter(cu => !isNaN(cu.mean)), cu => cu.mean),\r\n                    max: d3Max(ComponentUsages.filter(cu => !isNaN(cu.max)), cu => cu.max)\r\n                };\r\n            });\r\n        });\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsPackageProcess {\r\n\r\n    export type int = number;\r\n    export type nonNegativeInteger = number;\r\n\r\n    export interface ActivatePackageRequest {\r\n        Target?: string;\r\n        PackageMap?: string;\r\n        Process?: string;\r\n        GlobalScope?: boolean;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface status {\r\n        Code: int;\r\n        Description: string;\r\n    }\r\n\r\n    export interface ActivatePackageResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n    }\r\n\r\n    export interface AddPackageRequest {\r\n        Info?: string;\r\n        Activate?: boolean;\r\n        OverWrite?: boolean;\r\n        Target?: string;\r\n        PackageMap?: string;\r\n        Process?: string;\r\n        DaliIp?: string;\r\n        GlobalScope?: boolean;\r\n        SourceProcess?: string;\r\n        AllowForeignFiles?: boolean;\r\n        PreloadAllPackages?: boolean;\r\n        ReplacePackageMap?: boolean;\r\n        UpdateSuperFiles?: boolean;\r\n        UpdateCloneFrom?: boolean;\r\n        AppendCluster?: boolean;\r\n        DfuCopyFiles?: boolean;\r\n        DfuQueue?: string;\r\n        DfuWait?: nonNegativeInteger;\r\n        DfuOverwrite?: boolean;\r\n        OnlyCopyFiles?: boolean;\r\n        StopIfFilesCopied?: boolean;\r\n        DfuPublisherWuid?: string;\r\n        RemoteStorage?: string;\r\n        KeyCompression?: string;\r\n    }\r\n\r\n    export interface FilesNotFound {\r\n        File: string[];\r\n    }\r\n\r\n    export interface AddPackageResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n        FilesNotFound: FilesNotFound;\r\n        DfuPublisherWuid: string;\r\n        DfuPublisherState: string;\r\n    }\r\n\r\n    export interface AddPartToPackageMapRequest {\r\n        Target?: string;\r\n        Process?: string;\r\n        PackageMap?: string;\r\n        GlobalScope?: boolean;\r\n        PartName?: string;\r\n        Content?: string;\r\n        DeletePrevious?: boolean;\r\n        DaliIp?: string;\r\n        SourceProcess?: string;\r\n        AllowForeignFiles?: boolean;\r\n        PreloadAllPackages?: boolean;\r\n        UpdateSuperFiles?: boolean;\r\n        UpdateCloneFrom?: boolean;\r\n        AppendCluster?: boolean;\r\n        DfuCopyFiles?: boolean;\r\n        DfuQueue?: string;\r\n        DfuWait?: nonNegativeInteger;\r\n        DfuOverwrite?: boolean;\r\n        OnlyCopyFiles?: boolean;\r\n        StopIfFilesCopied?: boolean;\r\n        DfuPublisherWuid?: string;\r\n        RemoteStorage?: string;\r\n        KeyCompression?: string;\r\n    }\r\n\r\n    export interface AddPartToPackageMapResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n        FilesNotFound: FilesNotFound;\r\n        DfuPublisherWuid: string;\r\n        DfuPublisherState: string;\r\n    }\r\n\r\n    export interface CopyPackageMapRequest {\r\n        SourcePath?: string;\r\n        RemoteUserName?: string;\r\n        RemotePassword?: string;\r\n        Target?: string;\r\n        Process?: string;\r\n        PMID?: string;\r\n        Activate?: boolean;\r\n        DaliIp?: string;\r\n        GlobalScope?: boolean;\r\n        SourceProcess?: string;\r\n        PreloadAllPackages?: boolean;\r\n        ReplacePackageMap?: boolean;\r\n        UpdateSuperFiles?: boolean;\r\n        UpdateCloneFrom?: boolean;\r\n        AppendCluster?: boolean;\r\n        DfuCopyFiles?: boolean;\r\n        DfuQueue?: string;\r\n        DfuWait?: nonNegativeInteger;\r\n        DfuOverwrite?: boolean;\r\n        OnlyCopyFiles?: boolean;\r\n        StopIfFilesCopied?: boolean;\r\n        DfuPublisherWuid?: string;\r\n        RemoteStorage?: string;\r\n        KeyCompression?: string;\r\n    }\r\n\r\n    export interface CopyPackageMapResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n        FilesNotFound: FilesNotFound;\r\n        DfuPublisherWuid: string;\r\n        DfuPublisherState: string;\r\n    }\r\n\r\n    export interface DeActivatePackageRequest {\r\n        Target?: string;\r\n        PackageMap?: string;\r\n        Process?: string;\r\n        GlobalScope?: boolean;\r\n    }\r\n\r\n    export interface DeActivatePackageResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n    }\r\n\r\n    export interface PackageMap {\r\n        Id: string;\r\n        Target: string;\r\n        Process: string;\r\n    }\r\n\r\n    export interface PackageMaps {\r\n        PackageMap: PackageMap[];\r\n    }\r\n\r\n    export interface DeletePackageRequest {\r\n        Target?: string;\r\n        PackageMap?: string;\r\n        Process?: string;\r\n        GlobalScope?: boolean;\r\n        PackageMaps?: PackageMaps;\r\n    }\r\n\r\n    export interface DeletePackageResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n    }\r\n\r\n    export interface EchoRequest {\r\n        Request?: string;\r\n    }\r\n\r\n    export interface EchoResponse {\r\n        Response: string;\r\n    }\r\n\r\n    export interface GetPackageRequest {\r\n        Target?: string;\r\n        Process?: string;\r\n    }\r\n\r\n    export interface GetPackageResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n        Info: string;\r\n    }\r\n\r\n    export interface GetPackageMapByIdRequest {\r\n        PackageMapId?: string;\r\n    }\r\n\r\n    export interface GetPackageMapByIdResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n        Info: string;\r\n    }\r\n\r\n    export interface GetPackageMapSelectOptionsRequest {\r\n        IncludeTargets?: boolean;\r\n        IncludeProcesses?: boolean;\r\n        IncludeProcessFilters?: boolean;\r\n    }\r\n\r\n    export interface Processes {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface TargetData {\r\n        Name: string;\r\n        Type: string;\r\n        Processes: Processes;\r\n    }\r\n\r\n    export interface Targets {\r\n        TargetData: TargetData[];\r\n    }\r\n\r\n    export interface ProcessFilters {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface GetPackageMapSelectOptionsResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n        Targets: Targets;\r\n        ProcessFilters: ProcessFilters;\r\n    }\r\n\r\n    export interface GetPartFromPackageMapRequest {\r\n        Target?: string;\r\n        PackageMap?: string;\r\n        GlobalScope?: boolean;\r\n        PartName?: string;\r\n    }\r\n\r\n    export interface GetPartFromPackageMapResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n        Content: string;\r\n    }\r\n\r\n    export interface GetQueryFileMappingRequest {\r\n        Target?: string;\r\n        PMID?: string;\r\n        QueryName?: string;\r\n        GlobalScope?: boolean;\r\n    }\r\n\r\n    export interface UnmappedFiles {\r\n        File: string[];\r\n    }\r\n\r\n    export interface SubFiles {\r\n        File: string[];\r\n    }\r\n\r\n    export interface SuperFile {\r\n        Name: string;\r\n        SubFiles: SubFiles;\r\n    }\r\n\r\n    export interface SuperFiles {\r\n        SuperFile: SuperFile[];\r\n    }\r\n\r\n    export interface GetQueryFileMappingResponse {\r\n        Exceptions: Exceptions;\r\n        UnmappedFiles: UnmappedFiles;\r\n        SuperFiles: SuperFiles;\r\n    }\r\n\r\n    export interface ListPackageRequest {\r\n        Target?: string;\r\n        Process?: string;\r\n    }\r\n\r\n    export interface PackageListData {\r\n        Id: string;\r\n        Queries: string;\r\n    }\r\n\r\n    export interface PkgListData {\r\n        PackageListData: PackageListData[];\r\n    }\r\n\r\n    export interface PackageListMapData {\r\n        Id: string;\r\n        Target: string;\r\n        Process: string;\r\n        PkgListData: PkgListData;\r\n        Active: boolean;\r\n        Description: string;\r\n    }\r\n\r\n    export interface PkgListMapData {\r\n        PackageListMapData: PackageListMapData[];\r\n    }\r\n\r\n    export interface ListPackageResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n        PkgListMapData: PkgListMapData;\r\n    }\r\n\r\n    export interface ListPackagesRequest {\r\n        Target?: string;\r\n        Process?: string;\r\n        ProcessFilter?: string;\r\n    }\r\n\r\n    export interface PackageMapList {\r\n        PackageListMapData: PackageListMapData[];\r\n    }\r\n\r\n    export interface ListPackagesResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n        PackageMapList: PackageMapList;\r\n    }\r\n\r\n    export interface WsPackageProcessPingRequest {\r\n\r\n    }\r\n\r\n    export interface WsPackageProcessPingResponse {\r\n\r\n    }\r\n\r\n    export interface RemovePartFromPackageMapRequest {\r\n        Target?: string;\r\n        PackageMap?: string;\r\n        GlobalScope?: boolean;\r\n        PartName?: string;\r\n    }\r\n\r\n    export interface RemovePartFromPackageMapResponse {\r\n        Exceptions: Exceptions;\r\n        status: status;\r\n    }\r\n\r\n    export interface QueriesToVerify {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface QueriesToIgnore {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface ValidatePackageRequest {\r\n        Info?: string;\r\n        Target?: string;\r\n        Process?: string;\r\n        Active?: boolean;\r\n        PMID?: string;\r\n        QueryIdToVerify?: string;\r\n        QueriesToVerify?: QueriesToVerify;\r\n        QueriesToIgnore?: QueriesToIgnore;\r\n        CheckDFS?: boolean;\r\n        GlobalScope?: boolean;\r\n        IgnoreWarnings?: boolean;\r\n        IgnoreOptionalFiles?: boolean;\r\n    }\r\n\r\n    export interface Warnings {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface Errors {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface Unmatched {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface packages {\r\n        Unmatched: Unmatched;\r\n    }\r\n\r\n    export interface queries {\r\n        Unmatched: Unmatched;\r\n    }\r\n\r\n    export interface NotInDFS {\r\n        File: string[];\r\n    }\r\n\r\n    export interface files {\r\n        Unmatched: Unmatched;\r\n        NotInDFS: NotInDFS;\r\n    }\r\n\r\n    export interface Result {\r\n        Target: string;\r\n        PMID: string;\r\n        Warnings: Warnings;\r\n        Errors: Errors;\r\n        packages: packages;\r\n        queries: queries;\r\n        files: files;\r\n    }\r\n\r\n    export interface Results {\r\n        Result: Result[];\r\n    }\r\n\r\n    export interface ValidatePackageResponse {\r\n        Exceptions: Exceptions;\r\n        Results: Results;\r\n    }\r\n\r\n}\r\n\r\nexport class PackageProcessServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WsPackageProcess\", \"1.07\");\r\n    }\r\n\r\n    ActivatePackage(request: Partial<WsPackageProcess.ActivatePackageRequest>): Promise<WsPackageProcess.ActivatePackageResponse> {\r\n        return this._connection.send(\"ActivatePackage\", request, \"json\", false, undefined, \"ActivatePackageResponse\");\r\n    }\r\n\r\n    AddPackage(request: Partial<WsPackageProcess.AddPackageRequest>): Promise<WsPackageProcess.AddPackageResponse> {\r\n        return this._connection.send(\"AddPackage\", request, \"json\", false, undefined, \"AddPackageResponse\");\r\n    }\r\n\r\n    AddPartToPackageMap(request: Partial<WsPackageProcess.AddPartToPackageMapRequest>): Promise<WsPackageProcess.AddPartToPackageMapResponse> {\r\n        return this._connection.send(\"AddPartToPackageMap\", request, \"json\", false, undefined, \"AddPartToPackageMapResponse\");\r\n    }\r\n\r\n    CopyPackageMap(request: Partial<WsPackageProcess.CopyPackageMapRequest>): Promise<WsPackageProcess.CopyPackageMapResponse> {\r\n        return this._connection.send(\"CopyPackageMap\", request, \"json\", false, undefined, \"CopyPackageMapResponse\");\r\n    }\r\n\r\n    DeActivatePackage(request: Partial<WsPackageProcess.DeActivatePackageRequest>): Promise<WsPackageProcess.DeActivatePackageResponse> {\r\n        return this._connection.send(\"DeActivatePackage\", request, \"json\", false, undefined, \"DeActivatePackageResponse\");\r\n    }\r\n\r\n    DeletePackage(request: Partial<WsPackageProcess.DeletePackageRequest>): Promise<WsPackageProcess.DeletePackageResponse> {\r\n        return this._connection.send(\"DeletePackage\", request, \"json\", false, undefined, \"DeletePackageResponse\");\r\n    }\r\n\r\n    Echo(request: Partial<WsPackageProcess.EchoRequest>): Promise<WsPackageProcess.EchoResponse> {\r\n        return this._connection.send(\"Echo\", request, \"json\", false, undefined, \"EchoResponse\");\r\n    }\r\n\r\n    GetPackage(request: Partial<WsPackageProcess.GetPackageRequest>): Promise<WsPackageProcess.GetPackageResponse> {\r\n        return this._connection.send(\"GetPackage\", request, \"json\", false, undefined, \"GetPackageResponse\");\r\n    }\r\n\r\n    GetPackageMapById(request: Partial<WsPackageProcess.GetPackageMapByIdRequest>): Promise<WsPackageProcess.GetPackageMapByIdResponse> {\r\n        return this._connection.send(\"GetPackageMapById\", request, \"json\", false, undefined, \"GetPackageMapByIdResponse\");\r\n    }\r\n\r\n    GetPackageMapSelectOptions(request: Partial<WsPackageProcess.GetPackageMapSelectOptionsRequest>): Promise<WsPackageProcess.GetPackageMapSelectOptionsResponse> {\r\n        return this._connection.send(\"GetPackageMapSelectOptions\", request, \"json\", false, undefined, \"GetPackageMapSelectOptionsResponse\");\r\n    }\r\n\r\n    GetPartFromPackageMap(request: Partial<WsPackageProcess.GetPartFromPackageMapRequest>): Promise<WsPackageProcess.GetPartFromPackageMapResponse> {\r\n        return this._connection.send(\"GetPartFromPackageMap\", request, \"json\", false, undefined, \"GetPartFromPackageMapResponse\");\r\n    }\r\n\r\n    GetQueryFileMapping(request: Partial<WsPackageProcess.GetQueryFileMappingRequest>): Promise<WsPackageProcess.GetQueryFileMappingResponse> {\r\n        return this._connection.send(\"GetQueryFileMapping\", request, \"json\", false, undefined, \"GetQueryFileMappingResponse\");\r\n    }\r\n\r\n    ListPackage(request: Partial<WsPackageProcess.ListPackageRequest>): Promise<WsPackageProcess.ListPackageResponse> {\r\n        return this._connection.send(\"ListPackage\", request, \"json\", false, undefined, \"ListPackageResponse\");\r\n    }\r\n\r\n    ListPackages(request: Partial<WsPackageProcess.ListPackagesRequest>): Promise<WsPackageProcess.ListPackagesResponse> {\r\n        return this._connection.send(\"ListPackages\", request, \"json\", false, undefined, \"ListPackagesResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsPackageProcess.WsPackageProcessPingRequest>): Promise<WsPackageProcess.WsPackageProcessPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsPackageProcessPingResponse\");\r\n    }\r\n\r\n    RemovePartFromPackageMap(request: Partial<WsPackageProcess.RemovePartFromPackageMapRequest>): Promise<WsPackageProcess.RemovePartFromPackageMapResponse> {\r\n        return this._connection.send(\"RemovePartFromPackageMap\", request, \"json\", false, undefined, \"RemovePartFromPackageMapResponse\");\r\n    }\r\n\r\n    ValidatePackage(request: Partial<WsPackageProcess.ValidatePackageRequest>): Promise<WsPackageProcess.ValidatePackageResponse> {\r\n        return this._connection.send(\"ValidatePackage\", request, \"json\", false, undefined, \"ValidatePackageResponse\");\r\n    }\r\n\r\n}\r\n","import { PackageProcessServiceBase, WsPackageProcess } from \"./wsdl/WsPackageProcess/v1.07/WsPackageProcess.ts\";\r\n\r\nexport {\r\n    type WsPackageProcess\r\n};\r\n\r\nexport class PackageProcessService extends PackageProcessServiceBase {\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\ntype unsignedInt = number;\r\n\r\nexport namespace WsResources {\r\n\r\n    export interface WsResourcesPingRequest {\r\n\r\n    }\r\n\r\n    export interface WsResourcesPingResponse {\r\n\r\n    }\r\n\r\n    export interface ServiceQueryRequest {\r\n        Type?: string;\r\n        Name?: string;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface Service {\r\n        Name: string;\r\n        Type: string;\r\n        Port: unsignedInt;\r\n        TLSSecure: boolean;\r\n    }\r\n\r\n    export interface Services {\r\n        Service: Service[];\r\n    }\r\n\r\n    export interface ServiceQueryResponse {\r\n        Exceptions: {\r\n            Source: string;\r\n            Exception: Exception[];\r\n        };\r\n        Services: {\r\n            Service: Service[];\r\n        };\r\n    }\r\n\r\n    export interface WebLinksQueryRequest {\r\n\r\n    }\r\n\r\n    export interface NamedValue {\r\n        Name: string;\r\n        Value: string;\r\n    }\r\n\r\n    export interface Annotations {\r\n        NamedValue: NamedValue[];\r\n    }\r\n\r\n    export interface DiscoveredWebLink {\r\n        ServiceName: string;\r\n        NameSpace: string;\r\n        Annotations: {\r\n            NamedValue: NamedValue[];\r\n        };\r\n    }\r\n\r\n    export interface DiscoveredWebLinks {\r\n        DiscoveredWebLink: DiscoveredWebLink[];\r\n    }\r\n\r\n    export interface ConfiguredWebLink {\r\n        Name: string;\r\n        Description: string;\r\n        URL: string;\r\n    }\r\n\r\n    export interface ConfiguredWebLinks {\r\n        ConfiguredWebLink: ConfiguredWebLink[];\r\n    }\r\n\r\n    export interface WebLinksQueryResponse {\r\n        Exceptions: Exceptions;\r\n        DiscoveredWebLinks: {\r\n            DiscoveredWebLink: DiscoveredWebLink[];\r\n        };\r\n        ConfiguredWebLinks: {\r\n            ConfiguredWebLink: ConfiguredWebLink[];\r\n        };\r\n    }\r\n\r\n}\r\n\r\nexport class ResourcesServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WsResources\", \"1.01\");\r\n    }\r\n\r\n    Ping(request: WsResources.WsResourcesPingRequest): Promise<WsResources.WsResourcesPingResponse> {\r\n        return this._connection.send(\"Ping\", request);\r\n    }\r\n\r\n    ServiceQuery(request: WsResources.ServiceQueryRequest): Promise<WsResources.ServiceQueryResponse> {\r\n        return this._connection.send(\"ServiceQuery\", request);\r\n    }\r\n\r\n    WebLinksQuery(request: WsResources.WebLinksQueryRequest): Promise<WsResources.WebLinksQueryResponse> {\r\n        return this._connection.send(\"WebLinksQuery\", request);\r\n    }\r\n\r\n}\r\n","import { ResourcesServiceBase, WsResources } from \"./wsdl/WsResources/v1.01/WsResources.ts\";\r\n\r\nexport {\r\n    type WsResources\r\n};\r\n\r\nexport class ResourcesService extends ResourcesServiceBase {\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsSasha {\r\n\r\n    export type unsignedInt = number;\r\n\r\n    export enum WUTypes {\r\n        ECL = \"ECL\",\r\n        DFU = \"DFU\"\r\n    }\r\n\r\n    export interface ArchiveWURequest {\r\n        Wuid?: string;\r\n        WUType?: WUTypes;\r\n        DeleteOnSuccess?: boolean;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface ResultResponse {\r\n        Exceptions: Exceptions;\r\n        Result: string;\r\n    }\r\n\r\n    export interface GetVersionRequest {\r\n\r\n    }\r\n\r\n    export interface ListWURequest {\r\n        WUType?: WUTypes;\r\n        Wuid?: string;\r\n        Cluster?: string;\r\n        Owner?: string;\r\n        JobName?: string;\r\n        State?: string;\r\n        FromDate?: string;\r\n        ToDate?: string;\r\n        Archived?: boolean;\r\n        Online?: boolean;\r\n        IncludeDT?: boolean;\r\n        BeforeWU?: string;\r\n        AfterWU?: string;\r\n        MaxNumberWUs?: unsignedInt;\r\n        Descending?: boolean;\r\n        OutputFields?: string;\r\n    }\r\n\r\n    export interface WSSashaPingRequest {\r\n\r\n    }\r\n\r\n    export interface WSSashaPingResponse {\r\n\r\n    }\r\n\r\n    export interface RestoreWURequest {\r\n        Wuid?: string;\r\n        WUType?: WUTypes;\r\n    }\r\n\r\n}\r\n\r\nexport class SashaServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WSSasha\", \"1.01\");\r\n    }\r\n\r\n    ArchiveWU(request: Partial<WsSasha.ArchiveWURequest>): Promise<WsSasha.ResultResponse> {\r\n        return this._connection.send(\"ArchiveWU\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    GetVersion(request: Partial<WsSasha.GetVersionRequest>): Promise<WsSasha.ResultResponse> {\r\n        return this._connection.send(\"GetVersion\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    ListWU(request: Partial<WsSasha.ListWURequest>): Promise<WsSasha.ResultResponse> {\r\n        return this._connection.send(\"ListWU\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsSasha.WSSashaPingRequest>): Promise<WsSasha.WSSashaPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WSSashaPingResponse\");\r\n    }\r\n\r\n    RestoreWU(request: Partial<WsSasha.RestoreWURequest>): Promise<WsSasha.ResultResponse> {\r\n        return this._connection.send(\"RestoreWU\", request, \"json\", false, undefined, \"ResultResponse\");\r\n    }\r\n\r\n}\r\n","import { SashaServiceBase, WsSasha } from \"./wsdl/WsSasha/v1.01/WsSasha.ts\";\r\n\r\nexport {\r\n    WsSasha\r\n};\r\n\r\nexport class SashaService extends SashaServiceBase {\r\n}","var t0 = new Date,\n    t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n  function interval(date) {\n    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n  }\n\n  interval.floor = function(date) {\n    return floori(date = new Date(+date)), date;\n  };\n\n  interval.ceil = function(date) {\n    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n  };\n\n  interval.round = function(date) {\n    var d0 = interval(date),\n        d1 = interval.ceil(date);\n    return date - d0 < d1 - date ? d0 : d1;\n  };\n\n  interval.offset = function(date, step) {\n    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n  };\n\n  interval.range = function(start, stop, step) {\n    var range = [], previous;\n    start = interval.ceil(start);\n    step = step == null ? 1 : Math.floor(step);\n    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n    while (previous < start && start < stop);\n    return range;\n  };\n\n  interval.filter = function(test) {\n    return newInterval(function(date) {\n      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n    }, function(date, step) {\n      if (date >= date) {\n        if (step < 0) while (++step <= 0) {\n          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n        } else while (--step >= 0) {\n          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n        }\n      }\n    });\n  };\n\n  if (count) {\n    interval.count = function(start, end) {\n      t0.setTime(+start), t1.setTime(+end);\n      floori(t0), floori(t1);\n      return Math.floor(count(t0, t1));\n    };\n\n    interval.every = function(step) {\n      step = Math.floor(step);\n      return !isFinite(step) || !(step > 0) ? null\n          : !(step > 1) ? interval\n          : interval.filter(field\n              ? function(d) { return field(d) % step === 0; }\n              : function(d) { return interval.count(0, d) % step === 0; });\n    };\n  }\n\n  return interval;\n}\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setDate(date.getDate() + step);\n}, function(start, end) {\n  return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n  return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n  return interval(function(date) {\n    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setDate(date.getDate() + step * 7);\n  }, function(start, end) {\n    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n  });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n  date.setMonth(0, 1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n  return end.getFullYear() - start.getFullYear();\n}, function(date) {\n  return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n    date.setMonth(0, 1);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setFullYear(date.getFullYear() + step * k);\n  });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n  return (end - start) / durationDay;\n}, function(date) {\n  return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n  return interval(function(date) {\n    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCDate(date.getUTCDate() + step * 7);\n  }, function(start, end) {\n    return (end - start) / durationWeek;\n  });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n  return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n  return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n    date.setUTCMonth(0, 1);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCFullYear(date.getUTCFullYear() + step * k);\n  });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n  timeDay,\n  timeSunday,\n  timeMonday,\n  timeThursday,\n  timeYear,\n  utcDay,\n  utcSunday,\n  utcMonday,\n  utcThursday,\n  utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n    date.setFullYear(d.y);\n    return date;\n  }\n  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n    date.setUTCFullYear(d.y);\n    return date;\n  }\n  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n  var locale_dateTime = locale.dateTime,\n      locale_date = locale.date,\n      locale_time = locale.time,\n      locale_periods = locale.periods,\n      locale_weekdays = locale.days,\n      locale_shortWeekdays = locale.shortDays,\n      locale_months = locale.months,\n      locale_shortMonths = locale.shortMonths;\n\n  var periodRe = formatRe(locale_periods),\n      periodLookup = formatLookup(locale_periods),\n      weekdayRe = formatRe(locale_weekdays),\n      weekdayLookup = formatLookup(locale_weekdays),\n      shortWeekdayRe = formatRe(locale_shortWeekdays),\n      shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n      monthRe = formatRe(locale_months),\n      monthLookup = formatLookup(locale_months),\n      shortMonthRe = formatRe(locale_shortMonths),\n      shortMonthLookup = formatLookup(locale_shortMonths);\n\n  var formats = {\n    \"a\": formatShortWeekday,\n    \"A\": formatWeekday,\n    \"b\": formatShortMonth,\n    \"B\": formatMonth,\n    \"c\": null,\n    \"d\": formatDayOfMonth,\n    \"e\": formatDayOfMonth,\n    \"f\": formatMicroseconds,\n    \"g\": formatYearISO,\n    \"G\": formatFullYearISO,\n    \"H\": formatHour24,\n    \"I\": formatHour12,\n    \"j\": formatDayOfYear,\n    \"L\": formatMilliseconds,\n    \"m\": formatMonthNumber,\n    \"M\": formatMinutes,\n    \"p\": formatPeriod,\n    \"q\": formatQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatSeconds,\n    \"u\": formatWeekdayNumberMonday,\n    \"U\": formatWeekNumberSunday,\n    \"V\": formatWeekNumberISO,\n    \"w\": formatWeekdayNumberSunday,\n    \"W\": formatWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatYear,\n    \"Y\": formatFullYear,\n    \"Z\": formatZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var utcFormats = {\n    \"a\": formatUTCShortWeekday,\n    \"A\": formatUTCWeekday,\n    \"b\": formatUTCShortMonth,\n    \"B\": formatUTCMonth,\n    \"c\": null,\n    \"d\": formatUTCDayOfMonth,\n    \"e\": formatUTCDayOfMonth,\n    \"f\": formatUTCMicroseconds,\n    \"g\": formatUTCYearISO,\n    \"G\": formatUTCFullYearISO,\n    \"H\": formatUTCHour24,\n    \"I\": formatUTCHour12,\n    \"j\": formatUTCDayOfYear,\n    \"L\": formatUTCMilliseconds,\n    \"m\": formatUTCMonthNumber,\n    \"M\": formatUTCMinutes,\n    \"p\": formatUTCPeriod,\n    \"q\": formatUTCQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatUTCSeconds,\n    \"u\": formatUTCWeekdayNumberMonday,\n    \"U\": formatUTCWeekNumberSunday,\n    \"V\": formatUTCWeekNumberISO,\n    \"w\": formatUTCWeekdayNumberSunday,\n    \"W\": formatUTCWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatUTCYear,\n    \"Y\": formatUTCFullYear,\n    \"Z\": formatUTCZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var parses = {\n    \"a\": parseShortWeekday,\n    \"A\": parseWeekday,\n    \"b\": parseShortMonth,\n    \"B\": parseMonth,\n    \"c\": parseLocaleDateTime,\n    \"d\": parseDayOfMonth,\n    \"e\": parseDayOfMonth,\n    \"f\": parseMicroseconds,\n    \"g\": parseYear,\n    \"G\": parseFullYear,\n    \"H\": parseHour24,\n    \"I\": parseHour24,\n    \"j\": parseDayOfYear,\n    \"L\": parseMilliseconds,\n    \"m\": parseMonthNumber,\n    \"M\": parseMinutes,\n    \"p\": parsePeriod,\n    \"q\": parseQuarter,\n    \"Q\": parseUnixTimestamp,\n    \"s\": parseUnixTimestampSeconds,\n    \"S\": parseSeconds,\n    \"u\": parseWeekdayNumberMonday,\n    \"U\": parseWeekNumberSunday,\n    \"V\": parseWeekNumberISO,\n    \"w\": parseWeekdayNumberSunday,\n    \"W\": parseWeekNumberMonday,\n    \"x\": parseLocaleDate,\n    \"X\": parseLocaleTime,\n    \"y\": parseYear,\n    \"Y\": parseFullYear,\n    \"Z\": parseZone,\n    \"%\": parseLiteralPercent\n  };\n\n  // These recursive directive definitions must be deferred.\n  formats.x = newFormat(locale_date, formats);\n  formats.X = newFormat(locale_time, formats);\n  formats.c = newFormat(locale_dateTime, formats);\n  utcFormats.x = newFormat(locale_date, utcFormats);\n  utcFormats.X = newFormat(locale_time, utcFormats);\n  utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n  function newFormat(specifier, formats) {\n    return function(date) {\n      var string = [],\n          i = -1,\n          j = 0,\n          n = specifier.length,\n          c,\n          pad,\n          format;\n\n      if (!(date instanceof Date)) date = new Date(+date);\n\n      while (++i < n) {\n        if (specifier.charCodeAt(i) === 37) {\n          string.push(specifier.slice(j, i));\n          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n          else pad = c === \"e\" ? \" \" : \"0\";\n          if (format = formats[c]) c = format(date, pad);\n          string.push(c);\n          j = i + 1;\n        }\n      }\n\n      string.push(specifier.slice(j, i));\n      return string.join(\"\");\n    };\n  }\n\n  function newParse(specifier, Z) {\n    return function(string) {\n      var d = newDate(1900, undefined, 1),\n          i = parseSpecifier(d, specifier, string += \"\", 0),\n          week, day;\n      if (i != string.length) return null;\n\n      // If a UNIX timestamp is specified, return it.\n      if (\"Q\" in d) return new Date(d.Q);\n      if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n      // If this is utcParse, never use the local timezone.\n      if (Z && !(\"Z\" in d)) d.Z = 0;\n\n      // The am-pm flag is 0 for AM, and 1 for PM.\n      if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n      // If the month was not specified, inherit from the quarter.\n      if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n      // Convert day-of-week and week-of-year to day-of-year.\n      if (\"V\" in d) {\n        if (d.V < 1 || d.V > 53) return null;\n        if (!(\"w\" in d)) d.w = 1;\n        if (\"Z\" in d) {\n          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n          week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n          week = utcDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getUTCFullYear();\n          d.m = week.getUTCMonth();\n          d.d = week.getUTCDate() + (d.w + 6) % 7;\n        } else {\n          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n          week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n          week = timeDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getFullYear();\n          d.m = week.getMonth();\n          d.d = week.getDate() + (d.w + 6) % 7;\n        }\n      } else if (\"W\" in d || \"U\" in d) {\n        if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n        day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n        d.m = 0;\n        d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n      }\n\n      // If a time zone is specified, all fields are interpreted as UTC and then\n      // offset according to the specified time zone.\n      if (\"Z\" in d) {\n        d.H += d.Z / 100 | 0;\n        d.M += d.Z % 100;\n        return utcDate(d);\n      }\n\n      // Otherwise, all fields are in local time.\n      return localDate(d);\n    };\n  }\n\n  function parseSpecifier(d, specifier, string, j) {\n    var i = 0,\n        n = specifier.length,\n        m = string.length,\n        c,\n        parse;\n\n    while (i < n) {\n      if (j >= m) return -1;\n      c = specifier.charCodeAt(i++);\n      if (c === 37) {\n        c = specifier.charAt(i++);\n        parse = parses[c in pads ? specifier.charAt(i++) : c];\n        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n      } else if (c != string.charCodeAt(j++)) {\n        return -1;\n      }\n    }\n\n    return j;\n  }\n\n  function parsePeriod(d, string, i) {\n    var n = periodRe.exec(string.slice(i));\n    return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseShortWeekday(d, string, i) {\n    var n = shortWeekdayRe.exec(string.slice(i));\n    return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseWeekday(d, string, i) {\n    var n = weekdayRe.exec(string.slice(i));\n    return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseShortMonth(d, string, i) {\n    var n = shortMonthRe.exec(string.slice(i));\n    return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseMonth(d, string, i) {\n    var n = monthRe.exec(string.slice(i));\n    return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseLocaleDateTime(d, string, i) {\n    return parseSpecifier(d, locale_dateTime, string, i);\n  }\n\n  function parseLocaleDate(d, string, i) {\n    return parseSpecifier(d, locale_date, string, i);\n  }\n\n  function parseLocaleTime(d, string, i) {\n    return parseSpecifier(d, locale_time, string, i);\n  }\n\n  function formatShortWeekday(d) {\n    return locale_shortWeekdays[d.getDay()];\n  }\n\n  function formatWeekday(d) {\n    return locale_weekdays[d.getDay()];\n  }\n\n  function formatShortMonth(d) {\n    return locale_shortMonths[d.getMonth()];\n  }\n\n  function formatMonth(d) {\n    return locale_months[d.getMonth()];\n  }\n\n  function formatPeriod(d) {\n    return locale_periods[+(d.getHours() >= 12)];\n  }\n\n  function formatQuarter(d) {\n    return 1 + ~~(d.getMonth() / 3);\n  }\n\n  function formatUTCShortWeekday(d) {\n    return locale_shortWeekdays[d.getUTCDay()];\n  }\n\n  function formatUTCWeekday(d) {\n    return locale_weekdays[d.getUTCDay()];\n  }\n\n  function formatUTCShortMonth(d) {\n    return locale_shortMonths[d.getUTCMonth()];\n  }\n\n  function formatUTCMonth(d) {\n    return locale_months[d.getUTCMonth()];\n  }\n\n  function formatUTCPeriod(d) {\n    return locale_periods[+(d.getUTCHours() >= 12)];\n  }\n\n  function formatUTCQuarter(d) {\n    return 1 + ~~(d.getUTCMonth() / 3);\n  }\n\n  return {\n    format: function(specifier) {\n      var f = newFormat(specifier += \"\", formats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    parse: function(specifier) {\n      var p = newParse(specifier += \"\", false);\n      p.toString = function() { return specifier; };\n      return p;\n    },\n    utcFormat: function(specifier) {\n      var f = newFormat(specifier += \"\", utcFormats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    utcParse: function(specifier) {\n      var p = newParse(specifier += \"\", true);\n      p.toString = function() { return specifier; };\n      return p;\n    }\n  };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n    numberRe = /^\\s*\\d+/, // note: ignores next directive\n    percentRe = /^%/,\n    requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n  var sign = value < 0 ? \"-\" : \"\",\n      string = (sign ? -value : value) + \"\",\n      length = string.length;\n  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n  return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n  return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n  var map = {}, i = -1, n = names.length;\n  while (++i < n) map[names[i].toLowerCase()] = i;\n  return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 4));\n  return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n  var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 6));\n  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n  var n = percentRe.exec(string.slice(i, i + 1));\n  return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n  return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n  return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n  return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n  return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n  return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n  return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n  return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n  return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n  return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n  var day = d.getDay();\n  return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n  return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n  var day = d.getDay();\n  return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n  d = dISO(d);\n  return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n  return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n  return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n  d = dISO(d);\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n  var day = d.getDay();\n  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n  var z = d.getTimezoneOffset();\n  return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n      + pad(z / 60 | 0, \"0\", 2)\n      + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n  return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n  return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n  return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n  return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n  return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n  return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n  return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n  return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n  return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n  var dow = d.getUTCDay();\n  return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n  return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n  var day = d.getUTCDay();\n  return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n  d = UTCdISO(d);\n  return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n  return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n  return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n  d = UTCdISO(d);\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n  var day = d.getUTCDay();\n  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n  return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n  return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n  return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n  return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n  dateTime: \"%x, %X\",\n  date: \"%-m/%-d/%Y\",\n  time: \"%-I:%M:%S %p\",\n  periods: [\"AM\", \"PM\"],\n  days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  timeFormat = locale.format;\n  timeParse = locale.parse;\n  utcFormat = locale.utcFormat;\n  utcParse = locale.utcParse;\n  return locale;\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsSMC {\r\n\r\n    export type int = number;\r\n    export type dateTime = string;\r\n    export type unsignedInt = number;\r\n    export type long = number;\r\n\r\n    export enum LockModes {\r\n        ALL = \"ALL\",\r\n        READ = \"READ\",\r\n        WRITE = \"WRITE\",\r\n        HOLD = \"HOLD\",\r\n        SUB = \"SUB\"\r\n    }\r\n\r\n    export enum RoxieControlCmdType {\r\n        Attach = \"Attach\",\r\n        Detach = \"Detach\",\r\n        State = \"State\",\r\n        Reload = \"Reload\",\r\n        ReloadRetry = \"ReloadRetry\",\r\n        MemLock = \"MemLock\",\r\n        MemUnlock = \"MemUnlock\",\r\n        GetMemLocked = \"GetMemLocked\"\r\n    }\r\n\r\n    export interface Activity {\r\n        ChatURL: string;\r\n        BannerContent: string;\r\n        BannerColor: string;\r\n        BannerSize: string;\r\n        BannerScroll: string;\r\n        BannerAction: int;\r\n        EnableChatURL: boolean;\r\n        FromSubmitBtn: boolean;\r\n        SortBy: string;\r\n        Descending: boolean;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface TargetCluster {\r\n        ClusterName: string;\r\n        QueueName: string;\r\n        QueueStatus: string;\r\n        StatusDetails: string;\r\n        Warning: string;\r\n        ClusterType: int;\r\n        ClusterSize: int;\r\n        ClusterStatus: int;\r\n    }\r\n\r\n    export interface ThorClusterList {\r\n        TargetCluster: TargetCluster[];\r\n    }\r\n\r\n    export interface RoxieClusterList {\r\n        TargetCluster: TargetCluster[];\r\n    }\r\n\r\n    export interface HThorClusterList {\r\n        TargetCluster: TargetCluster[];\r\n    }\r\n\r\n    export interface DFUJob {\r\n        TimeStarted: string;\r\n        Done: int;\r\n        Total: int;\r\n        Command: string;\r\n    }\r\n\r\n    export interface DFUJobs {\r\n        DFUJob: DFUJob[];\r\n    }\r\n\r\n    export interface ActiveWorkunit {\r\n        Wuid: string;\r\n        State: string;\r\n        StateID: int;\r\n        Owner: string;\r\n        Jobname: string;\r\n        Server: string;\r\n        Instance: string;\r\n        Priority: string;\r\n        Extra: string;\r\n        GraphName: string;\r\n        Duration: string;\r\n        GID: string;\r\n        QueueName: string;\r\n        MemoryBlocked: int;\r\n        IsPausing: boolean;\r\n        Warning: string;\r\n        ClusterName: string;\r\n        ClusterType: string;\r\n        ClusterQueueName: string;\r\n        TargetClusterName: string;\r\n        NoAccess: boolean;\r\n    }\r\n\r\n    export interface Running {\r\n        ActiveWorkunit: ActiveWorkunit[];\r\n    }\r\n\r\n    export interface Queues {\r\n        ServerJobQueue: ServerJobQueue[];\r\n    }\r\n\r\n    export interface ServerJobQueue {\r\n        QueueName: string;\r\n        Queues: Queues;\r\n        ServerName: string;\r\n        ServerType: string;\r\n        QueueStatus: string;\r\n        StatusDetails: string;\r\n        NetworkAddress: string;\r\n        Port: int;\r\n    }\r\n\r\n    export interface ServerJobQueues {\r\n        ServerJobQueue: ServerJobQueue[];\r\n    }\r\n\r\n    export interface ActivityResponse {\r\n        Exceptions: Exceptions;\r\n        Build: string;\r\n        ThorClusterList: ThorClusterList;\r\n        RoxieClusterList: RoxieClusterList;\r\n        HThorClusterList: HThorClusterList;\r\n        DFUJobs: DFUJobs;\r\n        Running: Running;\r\n        BannerContent: string;\r\n        BannerColor: string;\r\n        BannerSize: string;\r\n        BannerScroll: string;\r\n        ChatURL: string;\r\n        ShowBanner: int;\r\n        ShowChatURL: int;\r\n        SortBy: string;\r\n        Descending: boolean;\r\n        SuperUser: boolean;\r\n        AccessRight: string;\r\n        ServerJobQueues: ServerJobQueues;\r\n        ActivityTime: string;\r\n        DaliDetached: boolean;\r\n    }\r\n\r\n    export interface BrowseResources {\r\n\r\n    }\r\n\r\n    export interface HPCCResource {\r\n        Name: string;\r\n        Description: string;\r\n        FileName: string;\r\n        Version: string;\r\n    }\r\n\r\n    export interface HPCCResources {\r\n        HPCCResource: HPCCResource[];\r\n    }\r\n\r\n    export interface HPCCResourceRepository {\r\n        Name: string;\r\n        Path: string;\r\n        HPCCResources: HPCCResources;\r\n    }\r\n\r\n    export interface HPCCResourceRepositories {\r\n        HPCCResourceRepository: HPCCResourceRepository[];\r\n    }\r\n\r\n    export interface BrowseResourcesResponse {\r\n        Exceptions: Exceptions;\r\n        PortalURL: string;\r\n        ESPInstance: string;\r\n        OS: int;\r\n        UseResource: boolean;\r\n        HPCCResourceRepositories: HPCCResourceRepositories;\r\n    }\r\n\r\n    export interface ClearQueue {\r\n        Cluster: string;\r\n        QueueName: string;\r\n        Comment: string;\r\n        ServerType: string;\r\n        NetworkAddress: string;\r\n        Port: int;\r\n    }\r\n\r\n    export interface TargetClusterInfo {\r\n        ClusterName: string;\r\n        QueueName: string;\r\n        QueueStatus: string;\r\n        StatusDetails: string;\r\n        Warning: string;\r\n        ClusterType: int;\r\n        ClusterSize: int;\r\n        ClusterStatus: int;\r\n    }\r\n\r\n    export interface ServerInfo {\r\n        QueueName: string;\r\n        Queues: Queues;\r\n        ServerName: string;\r\n        ServerType: string;\r\n        QueueStatus: string;\r\n        StatusDetails: string;\r\n        NetworkAddress: string;\r\n        Port: int;\r\n    }\r\n\r\n    export interface Workunits {\r\n        ActiveWorkunit: ActiveWorkunit[];\r\n    }\r\n\r\n    export interface StatusServerInfo {\r\n        TargetClusterInfo: TargetClusterInfo;\r\n        ServerInfo: ServerInfo;\r\n        Workunits: Workunits;\r\n    }\r\n\r\n    export interface SMCQueueResponse {\r\n        Exceptions: Exceptions;\r\n        StatusServerInfo: StatusServerInfo;\r\n    }\r\n\r\n    export interface GetBuildInfo {\r\n\r\n    }\r\n\r\n    export interface NamedValue {\r\n        Name: string;\r\n        Value: string;\r\n    }\r\n\r\n    export interface BuildInfo {\r\n        NamedValue: NamedValue[];\r\n    }\r\n\r\n    export interface GetBuildInfoResponse {\r\n        Exceptions: Exceptions;\r\n        BuildInfo: BuildInfo;\r\n    }\r\n\r\n    export interface Dimension {\r\n        Name: string;\r\n        Value: string;\r\n    }\r\n\r\n    export interface Dimensions {\r\n        Dimension: Dimension[];\r\n    }\r\n\r\n    export interface DateTimeRange {\r\n        Start: dateTime;\r\n        End: dateTime;\r\n    }\r\n\r\n    export interface GetGlobalMetrics {\r\n        Category: string;\r\n        Dimensions: Dimensions;\r\n        DateTimeRange: DateTimeRange;\r\n    }\r\n\r\n    export interface Dimensions2 {\r\n        Dimension: Dimension[];\r\n    }\r\n\r\n    export interface Stat {\r\n        Name: string;\r\n        Value: string;\r\n    }\r\n\r\n    export interface Stats {\r\n        Stat: Stat[];\r\n    }\r\n\r\n    export interface GlobalMetric {\r\n        Category: string;\r\n        Dimensions: Dimensions2;\r\n        DateTimeRange: DateTimeRange;\r\n        Stats: Stats;\r\n    }\r\n\r\n    export interface GlobalMetrics {\r\n        GlobalMetric: GlobalMetric[];\r\n    }\r\n\r\n    export interface GetGlobalMetricsResponse {\r\n        Exceptions: Exceptions;\r\n        GlobalMetrics: GlobalMetrics;\r\n    }\r\n\r\n    export interface GetStatusServerInfo {\r\n        ServerName: string;\r\n        ServerType: string;\r\n        NetworkAddress: string;\r\n        Port: int;\r\n    }\r\n\r\n    export interface GetStatusServerInfoResponse {\r\n        Exceptions: Exceptions;\r\n        StatusServerInfo: StatusServerInfo;\r\n    }\r\n\r\n    export interface GetThorQueueAvailability {\r\n\r\n    }\r\n\r\n    export interface ThorCluster {\r\n        ClusterName: string;\r\n        QueueName: string;\r\n        QueueStatus: string;\r\n        QueueAvailable: int;\r\n        JobsRunning: int;\r\n        JobsInQueue: int;\r\n        QueueStatus2: int;\r\n        ThorLCR: string;\r\n        ClusterSize: int;\r\n    }\r\n\r\n    export interface ThorClusters {\r\n        ThorCluster: ThorCluster[];\r\n    }\r\n\r\n    export interface GetThorQueueAvailabilityResponse {\r\n        Exceptions: Exceptions;\r\n        ThorClusters: ThorClusters;\r\n    }\r\n\r\n    export interface Index {\r\n\r\n    }\r\n\r\n    export interface SMCIndexResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface LockQuery {\r\n        EPIP: string;\r\n        XPath: string;\r\n        DurationMSLow: unsignedInt;\r\n        DurationMSHigh: unsignedInt;\r\n        TimeLockedLow: string;\r\n        TimeLockedHigh: string;\r\n        Mode: LockModes;\r\n        AllFileLocks: boolean;\r\n    }\r\n\r\n    export interface ModeNames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface Lock {\r\n        EPIP: string;\r\n        XPath: string;\r\n        LogicalFile: string;\r\n        SessionID: long;\r\n        DurationMS: unsignedInt;\r\n        TimeLocked: string;\r\n        Modes: string;\r\n        ModeNames: ModeNames;\r\n    }\r\n\r\n    export interface Locks {\r\n        Lock: Lock[];\r\n    }\r\n\r\n    export interface LockQueryResponse {\r\n        Exceptions: Exceptions;\r\n        Locks: Locks;\r\n        NumLocks: int;\r\n    }\r\n\r\n    export interface MoveJobBack {\r\n        ClusterType: int;\r\n        Cluster: string;\r\n        QueueName: string;\r\n        Wuid: string;\r\n    }\r\n\r\n    export interface SMCJobResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface MoveJobDown {\r\n        ClusterType: int;\r\n        Cluster: string;\r\n        QueueName: string;\r\n        Wuid: string;\r\n    }\r\n\r\n    export interface MoveJobFront {\r\n        ClusterType: int;\r\n        Cluster: string;\r\n        QueueName: string;\r\n        Wuid: string;\r\n    }\r\n\r\n    export interface MoveJobUp {\r\n        ClusterType: int;\r\n        Cluster: string;\r\n        QueueName: string;\r\n        Wuid: string;\r\n    }\r\n\r\n    export interface NotInCommunityEdition {\r\n        EEPortal: string;\r\n    }\r\n\r\n    export interface NotInCommunityEditionResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface PauseQueue {\r\n        Cluster: string;\r\n        QueueName: string;\r\n        Comment: string;\r\n        ServerType: string;\r\n        NetworkAddress: string;\r\n        Port: int;\r\n    }\r\n\r\n    export interface Ping {\r\n\r\n    }\r\n\r\n    export interface WsSMCPingResponse {\r\n\r\n    }\r\n\r\n    export interface RecordGlobalMetrics {\r\n        Category: string;\r\n        Dimensions: Dimensions;\r\n        Stats: Stats;\r\n    }\r\n\r\n    export interface RecordGlobalMetricsResponse {\r\n        Exceptions: Exceptions;\r\n        Result: string;\r\n    }\r\n\r\n    export interface RemoveJob {\r\n        ClusterType: int;\r\n        Cluster: string;\r\n        QueueName: string;\r\n        Wuid: string;\r\n    }\r\n\r\n    export interface ResumeQueue {\r\n        Cluster: string;\r\n        QueueName: string;\r\n        Comment: string;\r\n        ServerType: string;\r\n        NetworkAddress: string;\r\n        Port: int;\r\n    }\r\n\r\n    export interface RoxieControlCmd {\r\n        ProcessCluster: string;\r\n        TargetCluster: string;\r\n        Command: RoxieControlCmdType;\r\n        Wait: int;\r\n    }\r\n\r\n    export interface Endpoint {\r\n        Address: string;\r\n        Attached: boolean;\r\n        StateHash: string;\r\n        Status: string;\r\n        MemLocked: boolean;\r\n    }\r\n\r\n    export interface Endpoints {\r\n        Endpoint: Endpoint[];\r\n    }\r\n\r\n    export interface RoxieControlCmdResponse {\r\n        Exceptions: Exceptions;\r\n        Endpoints: Endpoints;\r\n    }\r\n\r\n    export interface QueryIds {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface RoxieXrefCmd {\r\n        RoxieCluster: string;\r\n        QueryIds: QueryIds;\r\n        CheckAllNodes: boolean;\r\n        Wait: int;\r\n    }\r\n\r\n    export interface RoxieXrefCmdResponse {\r\n        Exceptions: Exceptions;\r\n        Result: string;\r\n    }\r\n\r\n    export interface SetBanner {\r\n        ChatURL: string;\r\n        BannerContent: string;\r\n        BannerColor: string;\r\n        BannerSize: string;\r\n        BannerScroll: string;\r\n        BannerAction: int;\r\n        EnableChatURL: boolean;\r\n        FromSubmitBtn: boolean;\r\n    }\r\n\r\n    export interface SetBannerResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface SMCJob {\r\n        Wuid: string;\r\n        QueueName: string;\r\n    }\r\n\r\n    export interface SMCJobs {\r\n        SMCJob: SMCJob[];\r\n    }\r\n\r\n    export interface SetJobPriority {\r\n        QueueName: string;\r\n        Wuid: string;\r\n        Priority: string;\r\n        SMCJobs: SMCJobs;\r\n    }\r\n\r\n    export interface SMCPriorityResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface StopQueue {\r\n        Cluster: string;\r\n        QueueName: string;\r\n        Comment: string;\r\n        ServerType: string;\r\n        NetworkAddress: string;\r\n        Port: int;\r\n    }\r\n\r\n}\r\n\r\nexport class SMCServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WsSMC\", \"1.29\");\r\n    }\r\n\r\n    Activity(request: Partial<WsSMC.Activity>): Promise<WsSMC.ActivityResponse> {\r\n        return this._connection.send(\"Activity\", request, \"json\", false, undefined, \"ActivityResponse\");\r\n    }\r\n\r\n    BrowseResources(request: Partial<WsSMC.BrowseResources>): Promise<WsSMC.BrowseResourcesResponse> {\r\n        return this._connection.send(\"BrowseResources\", request, \"json\", false, undefined, \"BrowseResourcesResponse\");\r\n    }\r\n\r\n    ClearQueue(request: Partial<WsSMC.ClearQueue>): Promise<WsSMC.SMCQueueResponse> {\r\n        return this._connection.send(\"ClearQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\r\n    }\r\n\r\n    GetBuildInfo(request: Partial<WsSMC.GetBuildInfo>): Promise<WsSMC.GetBuildInfoResponse> {\r\n        return this._connection.send(\"GetBuildInfo\", request, \"json\", false, undefined, \"GetBuildInfoResponse\");\r\n    }\r\n\r\n    GetGlobalMetrics(request: Partial<WsSMC.GetGlobalMetrics>): Promise<WsSMC.GetGlobalMetricsResponse> {\r\n        return this._connection.send(\"GetGlobalMetrics\", request, \"json\", false, undefined, \"GetGlobalMetricsResponse\");\r\n    }\r\n\r\n    GetStatusServerInfo(request: Partial<WsSMC.GetStatusServerInfo>): Promise<WsSMC.GetStatusServerInfoResponse> {\r\n        return this._connection.send(\"GetStatusServerInfo\", request, \"json\", false, undefined, \"GetStatusServerInfoResponse\");\r\n    }\r\n\r\n    GetThorQueueAvailability(request: Partial<WsSMC.GetThorQueueAvailability>): Promise<WsSMC.GetThorQueueAvailabilityResponse> {\r\n        return this._connection.send(\"GetThorQueueAvailability\", request, \"json\", false, undefined, \"GetThorQueueAvailabilityResponse\");\r\n    }\r\n\r\n    Index(request: Partial<WsSMC.Index>): Promise<WsSMC.SMCIndexResponse> {\r\n        return this._connection.send(\"Index\", request, \"json\", false, undefined, \"SMCIndexResponse\");\r\n    }\r\n\r\n    LockQuery(request: Partial<WsSMC.LockQuery>): Promise<WsSMC.LockQueryResponse> {\r\n        return this._connection.send(\"LockQuery\", request, \"json\", false, undefined, \"LockQueryResponse\");\r\n    }\r\n\r\n    MoveJobBack(request: Partial<WsSMC.MoveJobBack>): Promise<WsSMC.SMCJobResponse> {\r\n        return this._connection.send(\"MoveJobBack\", request, \"json\", false, undefined, \"SMCJobResponse\");\r\n    }\r\n\r\n    MoveJobDown(request: Partial<WsSMC.MoveJobDown>): Promise<WsSMC.SMCJobResponse> {\r\n        return this._connection.send(\"MoveJobDown\", request, \"json\", false, undefined, \"SMCJobResponse\");\r\n    }\r\n\r\n    MoveJobFront(request: Partial<WsSMC.MoveJobFront>): Promise<WsSMC.SMCJobResponse> {\r\n        return this._connection.send(\"MoveJobFront\", request, \"json\", false, undefined, \"SMCJobResponse\");\r\n    }\r\n\r\n    MoveJobUp(request: Partial<WsSMC.MoveJobUp>): Promise<WsSMC.SMCJobResponse> {\r\n        return this._connection.send(\"MoveJobUp\", request, \"json\", false, undefined, \"SMCJobResponse\");\r\n    }\r\n\r\n    NotInCommunityEdition(request: Partial<WsSMC.NotInCommunityEdition>): Promise<WsSMC.NotInCommunityEditionResponse> {\r\n        return this._connection.send(\"NotInCommunityEdition\", request, \"json\", false, undefined, \"NotInCommunityEditionResponse\");\r\n    }\r\n\r\n    PauseQueue(request: Partial<WsSMC.PauseQueue>): Promise<WsSMC.SMCQueueResponse> {\r\n        return this._connection.send(\"PauseQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsSMC.Ping>): Promise<WsSMC.WsSMCPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsSMCPingResponse\");\r\n    }\r\n\r\n    RecordGlobalMetrics(request: Partial<WsSMC.RecordGlobalMetrics>): Promise<WsSMC.RecordGlobalMetricsResponse> {\r\n        return this._connection.send(\"RecordGlobalMetrics\", request, \"json\", false, undefined, \"RecordGlobalMetricsResponse\");\r\n    }\r\n\r\n    RemoveJob(request: Partial<WsSMC.RemoveJob>): Promise<WsSMC.SMCJobResponse> {\r\n        return this._connection.send(\"RemoveJob\", request, \"json\", false, undefined, \"SMCJobResponse\");\r\n    }\r\n\r\n    ResumeQueue(request: Partial<WsSMC.ResumeQueue>): Promise<WsSMC.SMCQueueResponse> {\r\n        return this._connection.send(\"ResumeQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\r\n    }\r\n\r\n    RoxieControlCmd(request: Partial<WsSMC.RoxieControlCmd>): Promise<WsSMC.RoxieControlCmdResponse> {\r\n        return this._connection.send(\"RoxieControlCmd\", request, \"json\", false, undefined, \"RoxieControlCmdResponse\");\r\n    }\r\n\r\n    RoxieXrefCmd(request: Partial<WsSMC.RoxieXrefCmd>): Promise<WsSMC.RoxieXrefCmdResponse> {\r\n        return this._connection.send(\"RoxieXrefCmd\", request, \"json\", false, undefined, \"RoxieXrefCmdResponse\");\r\n    }\r\n\r\n    SetBanner(request: Partial<WsSMC.SetBanner>): Promise<WsSMC.SetBannerResponse> {\r\n        return this._connection.send(\"SetBanner\", request, \"json\", false, undefined, \"SetBannerResponse\");\r\n    }\r\n\r\n    SetJobPriority(request: Partial<WsSMC.SetJobPriority>): Promise<WsSMC.SMCPriorityResponse> {\r\n        return this._connection.send(\"SetJobPriority\", request, \"json\", false, undefined, \"SMCPriorityResponse\");\r\n    }\r\n\r\n    StopQueue(request: Partial<WsSMC.StopQueue>): Promise<WsSMC.SMCQueueResponse> {\r\n        return this._connection.send(\"StopQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\r\n    }\r\n\r\n}\r\n","import { timeParse } from \"d3-time-format\";\r\nimport { SMCServiceBase, WsSMC } from \"./wsdl/WsSMC/v1.29/WsSMC.ts\";\r\nimport { IOptions } from \"../connection.ts\";\r\n\r\nexport {\r\n    WsSMC\r\n};\r\n\r\nconst dateParser = timeParse(\"%Y%m%d%H\");\r\n\r\nfunction isNumeric(value: any): boolean {\r\n    return typeof value === \"number\" || (typeof value === \"string\" && value.trim() !== \"\" && !isNaN(+value));\r\n}\r\n\r\nexport interface NormalisedGlobalMetric {\r\n    Category: string;\r\n    Start: Date;\r\n    End: Date;\r\n    dimensions: { [key: string]: any };\r\n    stats: { [key: string]: any };\r\n}\r\n\r\nexport class SMCService extends SMCServiceBase {\r\n\r\n    connectionOptions(): IOptions {\r\n        return this._connection.opts();\r\n    }\r\n\r\n    Activity(request: WsSMC.Activity): Promise<WsSMC.ActivityResponse> {\r\n        return super.Activity(request).then(response => {\r\n            return {\r\n                Running: {\r\n                    ActiveWorkunit: []\r\n                },\r\n                ...response\r\n            };\r\n        });\r\n    }\r\n\r\n    protected parseGlobalMetric(name: string, value: any): any {\r\n        // Known Prefixes:  Cost, Critical, Definition, Disk, Distribute, Ecl, Enum, Id, Interface, Is, Library, Load, Match, Meta, Num, Original, Output, Patch, Per, Persist, Predicted, Record, Section, Service, Signed, Size, Source, Spill, Target, Time, Updated, When\r\n        if (name.startsWith(\"Cost\")) {\r\n            return +value / 1000000;\r\n        } else if (name.startsWith(\"Date\")) {\r\n            return dateParser(value);\r\n        } else if (name.startsWith(\"Num\")) {\r\n            return +value;\r\n        } else if (name.startsWith(\"Time\")) {\r\n            return +value / 1000000000;\r\n        } else if (name.startsWith(\"When\")) {\r\n            return new Date(+value / 1000).toISOString();\r\n        } else if (isNumeric(value)) {\r\n            return +value;\r\n        }\r\n        return value;\r\n    }\r\n\r\n    GetNormalisedGlobalMetrics(request: Partial<WsSMC.GetGlobalMetrics>): Promise<NormalisedGlobalMetric[]> {\r\n        return super.GetGlobalMetrics(request).then(response => {\r\n            const retVal: NormalisedGlobalMetric[] = [];\r\n            for (const metric of response?.GlobalMetrics?.GlobalMetric || []) {\r\n                const row: NormalisedGlobalMetric = {\r\n                    Category: metric.Category,\r\n                    Start: this.parseGlobalMetric(\"Date\", metric.DateTimeRange?.Start),\r\n                    End: this.parseGlobalMetric(\"Date\", metric.DateTimeRange?.End),\r\n                    dimensions: {},\r\n                    stats: {}\r\n                };\r\n                for (const dimension of metric.Dimensions?.Dimension || []) {\r\n                    row.dimensions[dimension.Name] = dimension.Value;\r\n                }\r\n                for (const stat of metric.Stats?.Stat || []) {\r\n                    row.stats[stat.Name] = this.parseGlobalMetric(stat.Name, stat.Value);\r\n                }\r\n                retVal.push(row);\r\n            }\r\n            return retVal;\r\n        });\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace Wsstore {\r\n\r\n    export type int = number;\r\n\r\n    export interface CreateStoreRequest {\r\n        Name?: string;\r\n        Type?: string;\r\n        Description?: string;\r\n        MaxValueSize?: int;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface CreateStoreResponse {\r\n        Exceptions: Exceptions;\r\n        Name: string;\r\n        Type: string;\r\n        Description: string;\r\n        Owner: string;\r\n        Success: boolean;\r\n    }\r\n\r\n    export interface DeleteRequest {\r\n        StoreName?: string;\r\n        Namespace?: string;\r\n        Key?: string;\r\n        UserSpecific?: boolean;\r\n        TargetUser?: string;\r\n    }\r\n\r\n    export interface DeleteResponse {\r\n        Exceptions: Exceptions;\r\n        Success: boolean;\r\n    }\r\n\r\n    export interface DeleteNamespaceRequest {\r\n        StoreName?: string;\r\n        Namespace?: string;\r\n        UserSpecific?: boolean;\r\n        TargetUser?: string;\r\n    }\r\n\r\n    export interface DeleteNamespaceResponse {\r\n        Exceptions: Exceptions;\r\n        Success: boolean;\r\n    }\r\n\r\n    export interface FetchRequest {\r\n        StoreName?: string;\r\n        Namespace?: string;\r\n        Key?: string;\r\n        UserSpecific?: boolean;\r\n    }\r\n\r\n    export interface FetchResponse {\r\n        Exceptions: Exceptions;\r\n        Value: string;\r\n    }\r\n\r\n    export interface FetchAllRequest {\r\n        StoreName?: string;\r\n        Namespace?: string;\r\n        UserSpecific?: boolean;\r\n    }\r\n\r\n    export interface Pair {\r\n        Key: string;\r\n        Value: string;\r\n    }\r\n\r\n    export interface Pairs {\r\n        Pair: Pair[];\r\n    }\r\n\r\n    export interface FetchAllResponse {\r\n        Exceptions: Exceptions;\r\n        Namespace: string;\r\n        Pairs: Pairs;\r\n    }\r\n\r\n    export interface FetchKeyMDRequest {\r\n        StoreName?: string;\r\n        Namespace?: string;\r\n        Key?: string;\r\n        UserSpecific?: boolean;\r\n    }\r\n\r\n    export interface FetchKeyMDResponse {\r\n        Exceptions: Exceptions;\r\n        StoreName: string;\r\n        Namespace: string;\r\n        Key: string;\r\n        Pairs: Pairs;\r\n    }\r\n\r\n    export interface ListKeysRequest {\r\n        StoreName?: string;\r\n        Namespace?: string;\r\n        UserSpecific?: boolean;\r\n    }\r\n\r\n    export interface KeySet {\r\n        Key: string[];\r\n    }\r\n\r\n    export interface ListKeysResponse {\r\n        Exceptions: Exceptions;\r\n        StoreName: string;\r\n        Namespace: string;\r\n        KeySet: KeySet;\r\n    }\r\n\r\n    export interface ListNamespacesRequest {\r\n        StoreName?: string;\r\n        UserSpecific?: boolean;\r\n    }\r\n\r\n    export interface Namespaces {\r\n        Namespace: string[];\r\n    }\r\n\r\n    export interface ListNamespacesResponse {\r\n        Exceptions: Exceptions;\r\n        StoreName: string;\r\n        Namespaces: Namespaces;\r\n    }\r\n\r\n    export interface ListStoresRequest {\r\n        NameFilter?: string;\r\n        TypeFilter?: string;\r\n        OwnerFilter?: string;\r\n    }\r\n\r\n    export interface Store {\r\n        Name: string;\r\n        Type: string;\r\n        Description: string;\r\n        Owner: string;\r\n        CreateTime: string;\r\n        MaxValSize: string;\r\n        IsDefault: boolean;\r\n    }\r\n\r\n    export interface Stores {\r\n        Store: Store[];\r\n    }\r\n\r\n    export interface ListStoresResponse {\r\n        Exceptions: Exceptions;\r\n        Stores: Stores;\r\n    }\r\n\r\n    export interface wsstorePingRequest {\r\n\r\n    }\r\n\r\n    export interface wsstorePingResponse {\r\n\r\n    }\r\n\r\n    export interface SetRequest {\r\n        StoreName?: string;\r\n        Namespace?: string;\r\n        Key?: string;\r\n        Value?: string;\r\n        UserSpecific?: boolean;\r\n    }\r\n\r\n    export interface SetResponse {\r\n        Exceptions: Exceptions;\r\n        Success: boolean;\r\n    }\r\n\r\n}\r\n\r\nexport class storeServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"wsstore\", \"1.02\");\r\n    }\r\n\r\n    CreateStore(request: Partial<Wsstore.CreateStoreRequest>): Promise<Wsstore.CreateStoreResponse> {\r\n        return this._connection.send(\"CreateStore\", request, \"json\", false, undefined, \"CreateStoreResponse\");\r\n    }\r\n\r\n    Delete(request: Partial<Wsstore.DeleteRequest>): Promise<Wsstore.DeleteResponse> {\r\n        return this._connection.send(\"Delete\", request, \"json\", false, undefined, \"DeleteResponse\");\r\n    }\r\n\r\n    DeleteNamespace(request: Partial<Wsstore.DeleteNamespaceRequest>): Promise<Wsstore.DeleteNamespaceResponse> {\r\n        return this._connection.send(\"DeleteNamespace\", request, \"json\", false, undefined, \"DeleteNamespaceResponse\");\r\n    }\r\n\r\n    Fetch(request: Partial<Wsstore.FetchRequest>): Promise<Wsstore.FetchResponse> {\r\n        return this._connection.send(\"Fetch\", request, \"json\", false, undefined, \"FetchResponse\");\r\n    }\r\n\r\n    FetchAll(request: Partial<Wsstore.FetchAllRequest>): Promise<Wsstore.FetchAllResponse> {\r\n        return this._connection.send(\"FetchAll\", request, \"json\", false, undefined, \"FetchAllResponse\");\r\n    }\r\n\r\n    FetchKeyMetadata(request: Partial<Wsstore.FetchKeyMDRequest>): Promise<Wsstore.FetchKeyMDResponse> {\r\n        return this._connection.send(\"FetchKeyMetadata\", request, \"json\", false, undefined, \"FetchKeyMDResponse\");\r\n    }\r\n\r\n    ListKeys(request: Partial<Wsstore.ListKeysRequest>): Promise<Wsstore.ListKeysResponse> {\r\n        return this._connection.send(\"ListKeys\", request, \"json\", false, undefined, \"ListKeysResponse\");\r\n    }\r\n\r\n    ListNamespaces(request: Partial<Wsstore.ListNamespacesRequest>): Promise<Wsstore.ListNamespacesResponse> {\r\n        return this._connection.send(\"ListNamespaces\", request, \"json\", false, undefined, \"ListNamespacesResponse\");\r\n    }\r\n\r\n    ListStores(request: Partial<Wsstore.ListStoresRequest>): Promise<Wsstore.ListStoresResponse> {\r\n        return this._connection.send(\"ListStores\", request, \"json\", false, undefined, \"ListStoresResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<Wsstore.wsstorePingRequest>): Promise<Wsstore.wsstorePingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"wsstorePingResponse\");\r\n    }\r\n\r\n    Set(request: Partial<Wsstore.SetRequest>): Promise<Wsstore.SetResponse> {\r\n        return this._connection.send(\"Set\", request, \"json\", false, undefined, \"SetResponse\");\r\n    }\r\n\r\n}\r\n","import { storeServiceBase as StoreServiceBase, Wsstore as WsStore } from \"./wsdl/wsstore/v1.02/wsstore.ts\";\r\n\r\nexport { type WsStore };\r\n\r\nexport class StoreService extends StoreServiceBase {\r\n\r\n    Delete(request: Partial<WsStore.DeleteRequest>): Promise<WsStore.DeleteResponse> {\r\n        return super.Delete(request).catch(e => {\r\n            if (e.isESPExceptions && e.Exception.some(e => e.Code === -1)) {\r\n                //  \"Delete\" item does not exist  ---\r\n                return {\r\n                    Exceptions: undefined,\r\n                    Success: true\r\n                } as WsStore.DeleteResponse;\r\n            }\r\n            throw e;\r\n        });\r\n    }\r\n\r\n    Fetch(request: Partial<WsStore.FetchRequest>): Promise<WsStore.FetchResponse> {\r\n        return super.Fetch(request).catch(e => {\r\n            if (e.isESPExceptions && e.Exception.some(e => e.Code === -1)) {\r\n                //  \"Fetch\" item does not exist  ---\r\n                return {\r\n                    Exceptions: undefined,\r\n                    Value: undefined\r\n                } as WsStore.FetchResponse;\r\n            }\r\n            throw e;\r\n        });\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsTopology {\r\n\r\n    export type int = number;\r\n    export type base64Binary = string;\r\n    export type unsignedInt = number;\r\n    export type long = number;\r\n\r\n    export enum TpConfigResponseFormat {\r\n        XML = \"XML\",\r\n        YAML = \"YAML\"\r\n    }\r\n\r\n    export enum RoxieQueueFilter {\r\n        All = \"All\",\r\n        QueriesOnly = \"QueriesOnly\",\r\n        WorkunitsOnly = \"WorkunitsOnly\"\r\n    }\r\n\r\n    export enum TpMachineType {\r\n        ALLNODES = \"ALLNODES\",\r\n        THORMACHINES = \"THORMACHINES\",\r\n        HOLEMACHINES = \"HOLEMACHINES\",\r\n        ROXIEMACHINES = \"ROXIEMACHINES\",\r\n        MACHINES = \"MACHINES\",\r\n        AVAILABLEMACHINES = \"AVAILABLEMACHINES\",\r\n        DROPZONE = \"DROPZONE\",\r\n        STANDBYNNODE = \"STANDBYNNODE\",\r\n        THORSPARENODES = \"THORSPARENODES\",\r\n        HOLESTANDBYNODES = \"HOLESTANDBYNODES\"\r\n    }\r\n\r\n    export interface WsTopologyPingRequest {\r\n\r\n    }\r\n\r\n    export interface WsTopologyPingResponse {\r\n\r\n    }\r\n\r\n    export interface SystemLogRequest {\r\n        Name?: string;\r\n        Type?: string;\r\n        Zip?: int;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface SystemLogResponse {\r\n        Exceptions: Exceptions;\r\n        thefile: base64Binary;\r\n    }\r\n\r\n    export interface TpClusterInfoRequest {\r\n        Name?: string;\r\n    }\r\n\r\n    export interface TpQueue {\r\n        Name: string;\r\n        WorkUnit: string;\r\n    }\r\n\r\n    export interface TpQueues {\r\n        TpQueue: TpQueue[];\r\n    }\r\n\r\n    export interface TpClusterInfoResponse {\r\n        Exceptions: Exceptions;\r\n        Name: string;\r\n        WorkUnit: string;\r\n        TpQueues: TpQueues;\r\n    }\r\n\r\n    export interface TpClusterQueryRequest {\r\n        Type?: string;\r\n    }\r\n\r\n    export interface TpMachine {\r\n        Name: string;\r\n        Netaddress: string;\r\n        ConfigNetaddress: string;\r\n        Domain: string;\r\n        Directory: string;\r\n        Type: string;\r\n        Available: string;\r\n        OS: int;\r\n        Path: string;\r\n        Port: int;\r\n        ProcessNumber: int;\r\n        Channels: unsignedInt;\r\n    }\r\n\r\n    export interface TpMachines {\r\n        TpMachine: TpMachine[];\r\n    }\r\n\r\n    export interface TpCluster {\r\n        Type: string;\r\n        Name: string;\r\n        QueueName: string;\r\n        Build: string;\r\n        Directory: string;\r\n        LogDirectory: string;\r\n        Desc: string;\r\n        Path: string;\r\n        DataModel: string;\r\n        OS: int;\r\n        HasThorSpareProcess: boolean;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpClusters {\r\n        TpCluster: TpCluster[];\r\n    }\r\n\r\n    export interface TpClusterQueryResponse {\r\n        Exceptions: Exceptions;\r\n        EnableSNMP: boolean;\r\n        AcceptLanguage: string;\r\n        TpClusters: TpClusters;\r\n    }\r\n\r\n    export interface ComponentNames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface TpComponentConfigurationRequest {\r\n        ComponentNames?: ComponentNames;\r\n    }\r\n\r\n    export interface Result {\r\n        ComponentName: string;\r\n        Configuration: string;\r\n    }\r\n\r\n    export interface Results {\r\n        Result: Result[];\r\n    }\r\n\r\n    export interface TpComponentConfigurationResponse {\r\n        Exceptions: Exceptions;\r\n        ConfigFormat: TpConfigResponseFormat;\r\n        Results: Results;\r\n    }\r\n\r\n    export interface TpConfiguredComponentsRequest {\r\n\r\n    }\r\n\r\n    export interface ConfiguredComponents {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface TpConfiguredComponentsResponse {\r\n        Exceptions: Exceptions;\r\n        ConfiguredComponents: ConfiguredComponents;\r\n    }\r\n\r\n    export interface TpDropZoneQueryRequest {\r\n        Name?: string;\r\n        ECLWatchVisibleOnly?: boolean;\r\n    }\r\n\r\n    export interface TpDropZone {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Path: string;\r\n        ECLWatchVisible: boolean;\r\n        UMask: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpDropZones {\r\n        TpDropZone: TpDropZone[];\r\n    }\r\n\r\n    export interface TpDropZoneQueryResponse {\r\n        Exceptions: Exceptions;\r\n        TpDropZones: TpDropZones;\r\n    }\r\n\r\n    export interface TpGetComponentFileRequest {\r\n        CompType?: string;\r\n        CompName?: string;\r\n        NetAddress?: string;\r\n        Directory?: string;\r\n        FileType?: string;\r\n        OsType?: int;\r\n        PlainText?: string;\r\n    }\r\n\r\n    export interface TpGetComponentFileResponse {\r\n        Exceptions: Exceptions;\r\n        FileContents: base64Binary;\r\n    }\r\n\r\n    export interface TpGetServicePluginsRequest {\r\n\r\n    }\r\n\r\n    export interface Plugin {\r\n        ShortName: string;\r\n        LongName: string;\r\n        FolderName: string;\r\n        WidgetName: string;\r\n    }\r\n\r\n    export interface Plugins {\r\n        Plugin: Plugin[];\r\n    }\r\n\r\n    export interface TpGetServicePluginsResponse {\r\n        Exceptions: Exceptions;\r\n        Plugins: Plugins;\r\n    }\r\n\r\n    export interface TpGroupQueryRequest {\r\n        Kind?: string;\r\n    }\r\n\r\n    export interface TpGroup {\r\n        Name: string;\r\n        Kind: string;\r\n        ReplicateOutputs: boolean;\r\n    }\r\n\r\n    export interface TpGroups {\r\n        TpGroup: TpGroup[];\r\n    }\r\n\r\n    export interface TpGroupQueryResponse {\r\n        Exceptions: Exceptions;\r\n        TpGroups: TpGroups;\r\n    }\r\n\r\n    export interface TpListLogFilesRequest {\r\n        NetworkAddress?: string;\r\n        Path?: string;\r\n    }\r\n\r\n    export interface LogFileStruct {\r\n        Name: string;\r\n        Path: string;\r\n        Host: string;\r\n        IsDir: boolean;\r\n        FileSize: long;\r\n        Modifiedtime: string;\r\n    }\r\n\r\n    export interface Files {\r\n        LogFileStruct: LogFileStruct[];\r\n    }\r\n\r\n    export interface TpListLogFilesResponse {\r\n        Exceptions: Exceptions;\r\n        Files: Files;\r\n    }\r\n\r\n    export interface TpListTargetClustersRequest {\r\n\r\n    }\r\n\r\n    export interface TpClusterNameType {\r\n        Name: string;\r\n        Type: string;\r\n        IsDefault: boolean;\r\n    }\r\n\r\n    export interface TargetClusters {\r\n        TpClusterNameType: TpClusterNameType[];\r\n    }\r\n\r\n    export interface TpListTargetClustersResponse {\r\n        Exceptions: Exceptions;\r\n        TargetClusters: TargetClusters;\r\n    }\r\n\r\n    export interface TpLogFileRequest {\r\n        Name?: string;\r\n        Type?: string;\r\n        LastHours?: int;\r\n        StartDate?: string;\r\n        EndDate?: string;\r\n        FirstRows?: int;\r\n        LastRows?: int;\r\n        FilterType?: int;\r\n        Reversely?: boolean;\r\n        Zip?: boolean;\r\n        PageNumber?: int;\r\n        LoadData?: boolean;\r\n        IncludeLogFieldNames?: boolean;\r\n    }\r\n\r\n    export interface LogFieldNames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface TpLogFileResponse {\r\n        Exceptions: Exceptions;\r\n        Name: string;\r\n        Type: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        LastHours: int;\r\n        FirstRows: int;\r\n        LastRows: int;\r\n        Reversely: boolean;\r\n        Zip: boolean;\r\n        FilterType: int;\r\n        LogData: string;\r\n        HasDate: boolean;\r\n        FileSize: long;\r\n        PageFrom: long;\r\n        PageTo: long;\r\n        PageNumber: int;\r\n        PrevPage: int;\r\n        NextPage: int;\r\n        TotalPages: int;\r\n        AcceptLanguage: string;\r\n        LogFieldNames: LogFieldNames;\r\n    }\r\n\r\n    export interface TpLogicalClusterQueryRequest {\r\n        EclServerQueue?: string;\r\n        RoxieQueueFilter?: RoxieQueueFilter;\r\n    }\r\n\r\n    export interface TpLogicalCluster {\r\n        Name: string;\r\n        Queue: string;\r\n        LanguageVersion: string;\r\n        Process: string;\r\n        Type: string;\r\n        QueriesOnly: boolean;\r\n    }\r\n\r\n    export interface TpLogicalClusters {\r\n        TpLogicalCluster: TpLogicalCluster[];\r\n    }\r\n\r\n    export interface TpLogicalClusterQueryResponse {\r\n        Exceptions: Exceptions;\r\n        TpLogicalClusters: TpLogicalClusters;\r\n    }\r\n\r\n    export interface TpMachineInfoRequest {\r\n        Name?: string;\r\n        NetAddress?: string;\r\n    }\r\n\r\n    export interface MachineInfo {\r\n        Name: string;\r\n        Netaddress: string;\r\n        ConfigNetaddress: string;\r\n        Domain: string;\r\n        Directory: string;\r\n        Type: string;\r\n        Available: string;\r\n        OS: int;\r\n        Path: string;\r\n        Port: int;\r\n        ProcessNumber: int;\r\n        Channels: unsignedInt;\r\n    }\r\n\r\n    export interface TpMachineInfoResponse {\r\n        Exceptions: Exceptions;\r\n        MachineInfo: MachineInfo;\r\n    }\r\n\r\n    export interface TpMachineQueryRequest {\r\n        Type?: TpMachineType;\r\n        Cluster?: string;\r\n        OldIP?: string;\r\n        Path?: string;\r\n        Directory?: string;\r\n        LogDirectory?: string;\r\n    }\r\n\r\n    export interface TpMachineQueryResponse {\r\n        Exceptions: Exceptions;\r\n        EnablePreflightInfo: boolean;\r\n        HasThorSpareProcess: boolean;\r\n        Type: TpMachineType;\r\n        Cluster: string;\r\n        OldIP: string;\r\n        LogDirectory: string;\r\n        Path: string;\r\n        MemThreshold: int;\r\n        DiskThreshold: int;\r\n        CpuThreshold: int;\r\n        MemThresholdType: string;\r\n        DiskThresholdType: string;\r\n        PreflightProcessFilter: string;\r\n        EnableSNMP: boolean;\r\n        AcceptLanguage: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpServiceQueryRequest {\r\n        Type?: string;\r\n    }\r\n\r\n    export interface TpDali {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        BackupComputer: string;\r\n        BackupDirectory: string;\r\n        Type: string;\r\n        Path: string;\r\n        LogDirectory: string;\r\n        AuditLogDirectory: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpDalis {\r\n        TpDali: TpDali[];\r\n    }\r\n\r\n    export interface TpDfuServer {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Queue: string;\r\n        Type: string;\r\n        Path: string;\r\n        LogDirectory: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpDfuServers {\r\n        TpDfuServer: TpDfuServer[];\r\n    }\r\n\r\n    export interface TpDkcSlave {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Path: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpDkcSlaves {\r\n        TpDkcSlave: TpDkcSlave[];\r\n    }\r\n\r\n    export interface TpEclAgent {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Type: string;\r\n        Path: string;\r\n        DaliServer: string;\r\n        LogDir: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpEclAgents {\r\n        TpEclAgent: TpEclAgent[];\r\n    }\r\n\r\n    export interface TpEclServer {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        LogDirectory: string;\r\n        Type: string;\r\n        Path: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpEclServers {\r\n        TpEclServer: TpEclServer[];\r\n    }\r\n\r\n    export interface TpEclCCServers {\r\n        TpEclServer: TpEclServer[];\r\n    }\r\n\r\n    export interface TpEclScheduler {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        LogDirectory: string;\r\n        Type: string;\r\n        Path: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpEclSchedulers {\r\n        TpEclScheduler: TpEclScheduler[];\r\n    }\r\n\r\n    export interface TpBinding {\r\n        Name: string;\r\n        Service: string;\r\n        ServiceType: string;\r\n        BindingType: string;\r\n        ServiceBuildSet: string;\r\n        Port: string;\r\n        Protocol: string;\r\n    }\r\n\r\n    export interface TpBindings {\r\n        TpBinding: TpBinding[];\r\n    }\r\n\r\n    export interface TpEspServer {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Type: string;\r\n        Path: string;\r\n        LogDirectory: string;\r\n        TpMachines: TpMachines;\r\n        TpBindings: TpBindings;\r\n    }\r\n\r\n    export interface TpEspServers {\r\n        TpEspServer: TpEspServer[];\r\n    }\r\n\r\n    export interface TpFTSlave {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Path: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpFTSlaves {\r\n        TpFTSlave: TpFTSlave[];\r\n    }\r\n\r\n    export interface TpGenesisServer {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Path: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpGenesisServers {\r\n        TpGenesisServer: TpGenesisServer[];\r\n    }\r\n\r\n    export interface TpLdapServer {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Path: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpLdapServers {\r\n        TpLdapServer: TpLdapServer[];\r\n    }\r\n\r\n    export interface TpMySqlServer {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Path: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpMySqlServers {\r\n        TpMySqlServer: TpMySqlServer[];\r\n    }\r\n\r\n    export interface TpSashaServer {\r\n        Name: string;\r\n        Description: string;\r\n        Build: string;\r\n        Path: string;\r\n        LogDirectory: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpSashaServers {\r\n        TpSashaServer: TpSashaServer[];\r\n    }\r\n\r\n    export interface TpSparkThor {\r\n        Name: string;\r\n        Build: string;\r\n        ThorClusterName: string;\r\n        ThorPath: string;\r\n        SparkExecutorCores: unsignedInt;\r\n        SparkExecutorMemory: long;\r\n        SparkMasterPort: unsignedInt;\r\n        SparkMasterWebUIPort: unsignedInt;\r\n        SparkWorkerCores: unsignedInt;\r\n        SparkWorkerMemory: long;\r\n        SparkWorkerPort: unsignedInt;\r\n        LogDirectory: string;\r\n        Path: string;\r\n        TpMachines: TpMachines;\r\n    }\r\n\r\n    export interface TpSparkThors {\r\n        TpSparkThor: TpSparkThor[];\r\n    }\r\n\r\n    export interface ServiceList {\r\n        TpDalis: TpDalis;\r\n        TpDfuServers: TpDfuServers;\r\n        TpDkcSlaves: TpDkcSlaves;\r\n        TpDropZones: TpDropZones;\r\n        TpEclAgents: TpEclAgents;\r\n        TpEclServers: TpEclServers;\r\n        TpEclCCServers: TpEclCCServers;\r\n        TpEclSchedulers: TpEclSchedulers;\r\n        TpEspServers: TpEspServers;\r\n        TpFTSlaves: TpFTSlaves;\r\n        TpGenesisServers: TpGenesisServers;\r\n        TpLdapServers: TpLdapServers;\r\n        TpMySqlServers: TpMySqlServers;\r\n        TpSashaServers: TpSashaServers;\r\n        TpSparkThors: TpSparkThors;\r\n    }\r\n\r\n    export interface TpServiceQueryResponse {\r\n        Exceptions: Exceptions;\r\n        MemThreshold: int;\r\n        DiskThreshold: int;\r\n        CpuThreshold: int;\r\n        EncapsulatedSystem: boolean;\r\n        EnableSNMP: boolean;\r\n        PreflightProcessFilter: string;\r\n        AcceptLanguage: string;\r\n        MemThresholdType: string;\r\n        DiskThresholdType: string;\r\n        ServiceList: ServiceList;\r\n    }\r\n\r\n    export interface TpSetMachineStatusRequest {\r\n        MachinePath?: string;\r\n        StatusValue?: string;\r\n    }\r\n\r\n    export interface TpSetMachineStatusResponse {\r\n        Exceptions: Exceptions;\r\n        TpSetMachineStatusResult: boolean;\r\n    }\r\n\r\n    export interface TpSwapNodeRequest {\r\n        Cluster?: string;\r\n        OldIP?: string;\r\n        NewIP?: string;\r\n    }\r\n\r\n    export interface TpSwapNodeResponse {\r\n        Exceptions: Exceptions;\r\n        TpSwapNodeResult: boolean;\r\n    }\r\n\r\n    export interface TpTargetClusterQueryRequest {\r\n        Type?: string;\r\n        Name?: string;\r\n        ShowDetails?: boolean;\r\n    }\r\n\r\n    export interface TpTargetCluster {\r\n        Name: string;\r\n        Prefix: string;\r\n        Type: string;\r\n        TpClusters: TpClusters;\r\n        TpEclCCServers: TpEclCCServers;\r\n        TpEclServers: TpEclServers;\r\n        TpEclAgents: TpEclAgents;\r\n        TpEclSchedulers: TpEclSchedulers;\r\n    }\r\n\r\n    export interface TpTargetClusters {\r\n        TpTargetCluster: TpTargetCluster[];\r\n    }\r\n\r\n    export interface TpTargetClusterQueryResponse {\r\n        Exceptions: Exceptions;\r\n        ShowDetails: boolean;\r\n        MemThreshold: int;\r\n        DiskThreshold: int;\r\n        CpuThreshold: int;\r\n        MemThresholdType: string;\r\n        DiskThresholdType: string;\r\n        PreflightProcessFilter: string;\r\n        AcceptLanguage: string;\r\n        TpTargetClusters: TpTargetClusters;\r\n    }\r\n\r\n    export interface TpThorStatusRequest {\r\n        Name?: string;\r\n    }\r\n\r\n    export interface TpThorStatusResponse {\r\n        Exceptions: Exceptions;\r\n        Name: string;\r\n        Queue: string;\r\n        Group: string;\r\n        ThorMasterIPAddress: string;\r\n        Port: int;\r\n        StartTime: string;\r\n        LogFile: string;\r\n        Wuid: string;\r\n        Graph: string;\r\n        SubGraph: int;\r\n        SubGraphDuration: int;\r\n        AutoRefresh: int;\r\n    }\r\n\r\n    export interface TpXMLFileRequest {\r\n        Name?: string;\r\n    }\r\n\r\n    export interface TpXMLFileResponse {\r\n        Exceptions: Exceptions;\r\n        thefile: base64Binary;\r\n    }\r\n\r\n}\r\n\r\nexport class TopologyServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WsTopology\", \"1.33\");\r\n    }\r\n\r\n    Ping(request: Partial<WsTopology.WsTopologyPingRequest>): Promise<WsTopology.WsTopologyPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsTopologyPingResponse\");\r\n    }\r\n\r\n    SystemLog(request: Partial<WsTopology.SystemLogRequest>): Promise<WsTopology.SystemLogResponse> {\r\n        return this._connection.send(\"SystemLog\", request, \"json\", false, undefined, \"SystemLogResponse\");\r\n    }\r\n\r\n    TpClusterInfo(request: Partial<WsTopology.TpClusterInfoRequest>): Promise<WsTopology.TpClusterInfoResponse> {\r\n        return this._connection.send(\"TpClusterInfo\", request, \"json\", false, undefined, \"TpClusterInfoResponse\");\r\n    }\r\n\r\n    TpClusterQuery(request: Partial<WsTopology.TpClusterQueryRequest>): Promise<WsTopology.TpClusterQueryResponse> {\r\n        return this._connection.send(\"TpClusterQuery\", request, \"json\", false, undefined, \"TpClusterQueryResponse\");\r\n    }\r\n\r\n    TpComponentConfiguration(request: Partial<WsTopology.TpComponentConfigurationRequest>): Promise<WsTopology.TpComponentConfigurationResponse> {\r\n        return this._connection.send(\"TpComponentConfiguration\", request, \"json\", false, undefined, \"TpComponentConfigurationResponse\");\r\n    }\r\n\r\n    TpConfiguredComponents(request: Partial<WsTopology.TpConfiguredComponentsRequest>): Promise<WsTopology.TpConfiguredComponentsResponse> {\r\n        return this._connection.send(\"TpConfiguredComponents\", request, \"json\", false, undefined, \"TpConfiguredComponentsResponse\");\r\n    }\r\n\r\n    TpDropZoneQuery(request: Partial<WsTopology.TpDropZoneQueryRequest>): Promise<WsTopology.TpDropZoneQueryResponse> {\r\n        return this._connection.send(\"TpDropZoneQuery\", request, \"json\", false, undefined, \"TpDropZoneQueryResponse\");\r\n    }\r\n\r\n    TpGetComponentFile(request: Partial<WsTopology.TpGetComponentFileRequest>): Promise<WsTopology.TpGetComponentFileResponse> {\r\n        return this._connection.send(\"TpGetComponentFile\", request, \"json\", false, undefined, \"TpGetComponentFileResponse\");\r\n    }\r\n\r\n    TpGetServicePlugins(request: Partial<WsTopology.TpGetServicePluginsRequest>): Promise<WsTopology.TpGetServicePluginsResponse> {\r\n        return this._connection.send(\"TpGetServicePlugins\", request, \"json\", false, undefined, \"TpGetServicePluginsResponse\");\r\n    }\r\n\r\n    TpGroupQuery(request: Partial<WsTopology.TpGroupQueryRequest>): Promise<WsTopology.TpGroupQueryResponse> {\r\n        return this._connection.send(\"TpGroupQuery\", request, \"json\", false, undefined, \"TpGroupQueryResponse\");\r\n    }\r\n\r\n    TpListLogFiles(request: Partial<WsTopology.TpListLogFilesRequest>): Promise<WsTopology.TpListLogFilesResponse> {\r\n        return this._connection.send(\"TpListLogFiles\", request, \"json\", false, undefined, \"TpListLogFilesResponse\");\r\n    }\r\n\r\n    TpListTargetClusters(request: Partial<WsTopology.TpListTargetClustersRequest>): Promise<WsTopology.TpListTargetClustersResponse> {\r\n        return this._connection.send(\"TpListTargetClusters\", request, \"json\", false, undefined, \"TpListTargetClustersResponse\");\r\n    }\r\n\r\n    TpLogFile(request: Partial<WsTopology.TpLogFileRequest>): Promise<WsTopology.TpLogFileResponse> {\r\n        return this._connection.send(\"TpLogFile\", request, \"json\", false, undefined, \"TpLogFileResponse\");\r\n    }\r\n\r\n    TpLogFileDisplay(request: Partial<WsTopology.TpLogFileRequest>): Promise<WsTopology.TpLogFileResponse> {\r\n        return this._connection.send(\"TpLogFileDisplay\", request, \"json\", false, undefined, \"TpLogFileResponse\");\r\n    }\r\n\r\n    TpLogicalClusterQuery(request: Partial<WsTopology.TpLogicalClusterQueryRequest>): Promise<WsTopology.TpLogicalClusterQueryResponse> {\r\n        return this._connection.send(\"TpLogicalClusterQuery\", request, \"json\", false, undefined, \"TpLogicalClusterQueryResponse\");\r\n    }\r\n\r\n    TpMachineInfo(request: Partial<WsTopology.TpMachineInfoRequest>): Promise<WsTopology.TpMachineInfoResponse> {\r\n        return this._connection.send(\"TpMachineInfo\", request, \"json\", false, undefined, \"TpMachineInfoResponse\");\r\n    }\r\n\r\n    TpMachineQuery(request: Partial<WsTopology.TpMachineQueryRequest>): Promise<WsTopology.TpMachineQueryResponse> {\r\n        return this._connection.send(\"TpMachineQuery\", request, \"json\", false, undefined, \"TpMachineQueryResponse\");\r\n    }\r\n\r\n    TpServiceQuery(request: Partial<WsTopology.TpServiceQueryRequest>): Promise<WsTopology.TpServiceQueryResponse> {\r\n        return this._connection.send(\"TpServiceQuery\", request, \"json\", false, undefined, \"TpServiceQueryResponse\");\r\n    }\r\n\r\n    TpSetMachineStatus(request: Partial<WsTopology.TpSetMachineStatusRequest>): Promise<WsTopology.TpSetMachineStatusResponse> {\r\n        return this._connection.send(\"TpSetMachineStatus\", request, \"json\", false, undefined, \"TpSetMachineStatusResponse\");\r\n    }\r\n\r\n    TpSwapNode(request: Partial<WsTopology.TpSwapNodeRequest>): Promise<WsTopology.TpSwapNodeResponse> {\r\n        return this._connection.send(\"TpSwapNode\", request, \"json\", false, undefined, \"TpSwapNodeResponse\");\r\n    }\r\n\r\n    TpTargetClusterQuery(request: Partial<WsTopology.TpTargetClusterQueryRequest>): Promise<WsTopology.TpTargetClusterQueryResponse> {\r\n        return this._connection.send(\"TpTargetClusterQuery\", request, \"json\", false, undefined, \"TpTargetClusterQueryResponse\");\r\n    }\r\n\r\n    TpThorStatus(request: Partial<WsTopology.TpThorStatusRequest>): Promise<WsTopology.TpThorStatusResponse> {\r\n        return this._connection.send(\"TpThorStatus\", request, \"json\", false, undefined, \"TpThorStatusResponse\");\r\n    }\r\n\r\n    TpXMLFile(request: Partial<WsTopology.TpXMLFileRequest>): Promise<WsTopology.TpXMLFileResponse> {\r\n        return this._connection.send(\"TpXMLFile\", request, \"json\", false, undefined, \"TpXMLFileResponse\");\r\n    }\r\n\r\n}\r\n","import { IOptions } from \"../connection.ts\";\r\nimport { TopologyServiceBase, WsTopology } from \"./wsdl/WsTopology/v1.33/WsTopology.ts\";\r\n\r\nexport {\r\n    WsTopology\r\n};\r\n\r\nexport class TopologyService extends TopologyServiceBase {\r\n\r\n    connectionOptions(): IOptions {\r\n        return this._connection.opts();\r\n    }\r\n\r\n    protocol(): string {\r\n        const parts = this._connection.opts().baseUrl.split(\"//\");\r\n        return parts[0];\r\n    }\r\n\r\n    ip(): string {\r\n        const parts = this._connection.opts().baseUrl.split(\"//\");\r\n        const parts2 = parts[1].split(\":\");\r\n        return parts2[0];\r\n    }\r\n\r\n    DefaultTpLogicalClusterQuery(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.TpLogicalCluster> {\r\n        return this.TpLogicalClusterQuery(request).then((response) => {\r\n            if ((response as any).default) {\r\n                return (response as any).default;\r\n            }\r\n            let firstHThor;\r\n            let first;\r\n            response.TpLogicalClusters.TpLogicalCluster.some((item, idx) => {\r\n                if (idx === 0) {\r\n                    first = item;\r\n                }\r\n                if (item.Type === \"hthor\") {\r\n                    firstHThor = item;\r\n                    return true;\r\n                }\r\n                return false;\r\n            });\r\n            return firstHThor || first;\r\n        });\r\n    }\r\n}\r\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsWorkunits {\r\n\r\n    export type int = number;\r\n    export type double = number;\r\n    export type long = number;\r\n    export type nonNegativeInteger = number;\r\n    export type uint64 = number;\r\n    export type unsignedInt = number;\r\n    export type base64Binary = string;\r\n    export type dateTime = string;\r\n    export type integer = number;\r\n\r\n    export enum ECLWUActions {\r\n        Abort = \"Abort\",\r\n        Delete = \"Delete\",\r\n        Deschedule = \"Deschedule\",\r\n        Reschedule = \"Reschedule\",\r\n        Pause = \"Pause\",\r\n        PauseNow = \"PauseNow\",\r\n        Protect = \"Protect\",\r\n        Unprotect = \"Unprotect\",\r\n        Restore = \"Restore\",\r\n        Resume = \"Resume\",\r\n        SetToFailed = \"SetToFailed\",\r\n        Archive = \"Archive\"\r\n    }\r\n\r\n    export enum LogSelectColumnMode {\r\n        MIN = 0,\r\n        DEFAULT = 1,\r\n        ALL = 2,\r\n        CUSTOM = 3\r\n    }\r\n\r\n    export enum SortDirection {\r\n        ASC = 0,\r\n        DSC = 1\r\n    }\r\n\r\n    export enum LogEventClass {\r\n        ALL = \"ALL\",\r\n        DIS = \"DIS\",\r\n        ERR = \"ERR\",\r\n        WRN = \"WRN\",\r\n        INF = \"INF\",\r\n        PRO = \"PRO\",\r\n        MET = \"MET\",\r\n        EVT = \"EVT\"\r\n    }\r\n\r\n    export enum WUDetailsAttrValueType {\r\n        Single = \"Single\",\r\n        List = \"List\",\r\n        Multi = \"Multi\"\r\n    }\r\n\r\n    export enum EclDefinitionActions {\r\n        SyntaxCheck = \"SyntaxCheck\",\r\n        Deploy = \"Deploy\",\r\n        Publish = \"Publish\"\r\n    }\r\n\r\n    export enum ErrorMessageFormat {\r\n        xml = \"xml\",\r\n        json = \"json\",\r\n        text = \"text\"\r\n    }\r\n\r\n    export enum LogAccessLogFormat {\r\n        XML = 0,\r\n        JSON = 1,\r\n        CSV = 2\r\n    }\r\n\r\n    export enum WUExceptionSeverity {\r\n        info = \"info\",\r\n        warning = \"warning\",\r\n        error = \"error\",\r\n        alert = \"alert\"\r\n    }\r\n\r\n    export enum WUQueryFilterSuspendedType {\r\n        Allqueries = \"All queries\",\r\n        Notsuspended = \"Not suspended\",\r\n        Suspended = \"Suspended\",\r\n        Suspendedbyuser = \"Suspended by user\",\r\n        Suspendedbyfirstnode = \"Suspended by first node\",\r\n        Suspendedbyanynode = \"Suspended by any node\"\r\n    }\r\n\r\n    export enum WUQuerySetFilterType {\r\n        All = \"All\",\r\n        Id = \"Id\",\r\n        Name = \"Name\",\r\n        Alias = \"Alias\",\r\n        Status = \"Status\"\r\n    }\r\n\r\n    export enum WUProtectFilter {\r\n        All = \"All\",\r\n        Protected = \"Protected\",\r\n        NotProtected = \"NotProtected\"\r\n    }\r\n\r\n    export enum QuerySetAliasActionTypes {\r\n        Deactivate = \"Deactivate\"\r\n    }\r\n\r\n    export enum QuerysetImportActivation {\r\n        None = \"None\",\r\n        ActivateImportedActive = \"ActivateImportedActive\"\r\n    }\r\n\r\n    export enum QuerySetQueryActionTypes {\r\n        Suspend = \"Suspend\",\r\n        Unsuspend = \"Unsuspend\",\r\n        ToggleSuspend = \"ToggleSuspend\",\r\n        Activate = \"Activate\",\r\n        Delete = \"Delete\",\r\n        DeleteQueriesAndWUs = \"DeleteQueriesAndWUs\",\r\n        RemoveAllAliases = \"RemoveAllAliases\",\r\n        ResetQueryStats = \"ResetQueryStats\"\r\n    }\r\n\r\n    export enum WUQueryActivationMode {\r\n        DoNotActivateQuery = 0,\r\n        ActivateQuery = 1,\r\n        ActivateQuerySuspendPrevious = 2,\r\n        ActivateQueryDeletePrevious = 3\r\n    }\r\n\r\n    export interface GVCAjaxGraph {\r\n        Name: string;\r\n        GraphName: string;\r\n        SubGraphId: int;\r\n        SubGraphOnly: boolean;\r\n    }\r\n\r\n    export interface GVCAjaxGraphResponse {\r\n        Name: string;\r\n        GraphName: string;\r\n        GraphType: string;\r\n        SubGraphId: int;\r\n        SubGraphOnly: boolean;\r\n    }\r\n\r\n    export interface Ping {\r\n\r\n    }\r\n\r\n    export interface WsWorkunitsPingResponse {\r\n\r\n    }\r\n\r\n    export interface Wuids {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface WUAbort {\r\n        Wuids: Wuids;\r\n        BlockTillFinishTimer: int;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code: string;\r\n        Audience: string;\r\n        Source: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source: string;\r\n        Exception: Exception[];\r\n    }\r\n\r\n    export interface WUActionResult {\r\n        Wuid: string;\r\n        Action: string;\r\n        Result: string;\r\n    }\r\n\r\n    export interface ActionResults {\r\n        WUActionResult: WUActionResult[];\r\n    }\r\n\r\n    export interface WUAbortResponse {\r\n        Exceptions: Exceptions;\r\n        ActionResults: ActionResults;\r\n    }\r\n\r\n    export interface WUAction {\r\n        Wuids: Wuids;\r\n        WUActionType: ECLWUActions;\r\n        Cluster: string;\r\n        Owner: string;\r\n        State: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        ECL: string;\r\n        Jobname: string;\r\n        Test: string;\r\n        CurrentPage: string;\r\n        PageSize: string;\r\n        Sortby: string;\r\n        Descending: boolean;\r\n        EventServer: string;\r\n        EventName: string;\r\n        PageFrom: string;\r\n        BlockTillFinishTimer: int;\r\n    }\r\n\r\n    export interface WUActionResponse {\r\n        Exceptions: Exceptions;\r\n        ActionResults: ActionResults;\r\n    }\r\n\r\n    export interface WUAddLocalFileToWorkunit {\r\n        Wuid: string;\r\n        Name: string;\r\n        Val: string;\r\n        DefVal: string;\r\n        Type: int;\r\n        Length: int;\r\n    }\r\n\r\n    export interface WUAddLocalFileToWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        Name: string;\r\n        Result: string;\r\n    }\r\n\r\n    export interface PropertyOptions {\r\n        IncludeName: boolean;\r\n        IncludeRawValue: boolean;\r\n        IncludeFormatted: boolean;\r\n        IncludeMeasure: boolean;\r\n        IncludeCreator: boolean;\r\n        IncludeCreatorType: boolean;\r\n    }\r\n\r\n    export interface WUAnalyseHotspot {\r\n        Wuid: string;\r\n        RootScope: string;\r\n        OptOnlyActive: boolean;\r\n        OnlyCriticalPath: boolean;\r\n        IncludeProperties: boolean;\r\n        IncludeStatistics: boolean;\r\n        ThresholdPercent: double;\r\n        PropertyOptions: PropertyOptions;\r\n    }\r\n\r\n    export interface Property {\r\n        Name: string;\r\n        RawValue: string;\r\n        Formatted: string;\r\n        Measure: string;\r\n        Creator: string;\r\n        CreatorType: string;\r\n    }\r\n\r\n    export interface Properties {\r\n        Property: Property[];\r\n    }\r\n\r\n    export interface Note {\r\n        Source: string;\r\n        Message: string;\r\n        ErrorCode: nonNegativeInteger;\r\n        Severity: string;\r\n        Cost: nonNegativeInteger;\r\n        Id: uint64;\r\n    }\r\n\r\n    export interface Notes {\r\n        Note: Note[];\r\n    }\r\n\r\n    export interface Activity {\r\n        ScopeName: string;\r\n        Id: string;\r\n        ScopeType: string;\r\n        Properties: Properties;\r\n        Notes: Notes;\r\n        SinkActivity: string;\r\n    }\r\n\r\n    export interface Activities {\r\n        Activity: Activity[];\r\n    }\r\n\r\n    export interface Dependency {\r\n        ScopeName: string;\r\n        Id: string;\r\n        ScopeType: string;\r\n        Properties: Properties;\r\n        Notes: Notes;\r\n        SinkActivity: string;\r\n    }\r\n\r\n    export interface Dependencies {\r\n        Dependency: Dependency[];\r\n    }\r\n\r\n    export interface WUAnalyseHotspotResponse {\r\n        Exceptions: Exceptions;\r\n        RootScope: string;\r\n        RootTime: long;\r\n        Activities: Activities;\r\n        Dependencies: Dependencies;\r\n    }\r\n\r\n    export interface WUCDebug {\r\n        Wuid: string;\r\n        Command: string;\r\n    }\r\n\r\n    export interface WUDebugResponse {\r\n        Exceptions: Exceptions;\r\n        Result: string;\r\n    }\r\n\r\n    export interface WUCheckFeatures {\r\n        IncludeFullVersion: boolean;\r\n    }\r\n\r\n    export interface Deployment {\r\n        UseCompression: boolean;\r\n    }\r\n\r\n    export interface WUCheckFeaturesResponse {\r\n        Exceptions: Exceptions;\r\n        BuildVersionMajor: int;\r\n        BuildVersionMinor: int;\r\n        BuildVersionPoint: int;\r\n        maxRequestEntityLength: unsignedInt;\r\n        Deployment: Deployment;\r\n        BuildVersion: string;\r\n        BuildMaturity: string;\r\n        BuildTagTimestamp: string;\r\n    }\r\n\r\n    export interface WUClusterJobQueueLOG {\r\n        Cluster: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n    }\r\n\r\n    export interface WUClusterJobQueueLOGResponse {\r\n        Exceptions: Exceptions;\r\n        thefile: base64Binary;\r\n    }\r\n\r\n    export interface WUClusterJobQueueXLS {\r\n        Cluster: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        ShowType: string;\r\n    }\r\n\r\n    export interface WUClusterJobQueueXLSResponse {\r\n        Exceptions: Exceptions;\r\n        Result: base64Binary;\r\n    }\r\n\r\n    export interface WUClusterJobSummaryXLS {\r\n        Cluster: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        ShowAll: boolean;\r\n        BusinessStartTime: string;\r\n        BusinessEndTime: string;\r\n    }\r\n\r\n    export interface WUClusterJobSummaryXLSResponse {\r\n        Exceptions: Exceptions;\r\n        Result: base64Binary;\r\n    }\r\n\r\n    export interface WUClusterJobXLS {\r\n        Cluster: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        ShowAll: boolean;\r\n        BusinessStartTime: string;\r\n        BusinessEndTime: string;\r\n    }\r\n\r\n    export interface WUClusterJobXLSResponse {\r\n        Exceptions: Exceptions;\r\n        Result: base64Binary;\r\n    }\r\n\r\n    export interface WUCompileECL {\r\n        ECL: string;\r\n        ModuleName: string;\r\n        AttributeName: string;\r\n        Queue: string;\r\n        Cluster: string;\r\n        Snapshot: string;\r\n        IncludeDependencies: boolean;\r\n        IncludeComplexity: boolean;\r\n        TimeToWait: int;\r\n    }\r\n\r\n    export interface ECLException {\r\n        Severity: string;\r\n        Source: string;\r\n        Code: int;\r\n        Message: string;\r\n        Column: int;\r\n        LineNo: int;\r\n        FileName: string;\r\n        Activity: int;\r\n        Scope: string;\r\n        Priority: int;\r\n        Cost: double;\r\n    }\r\n\r\n    export interface Errors {\r\n        ECLException: ECLException[];\r\n    }\r\n\r\n    export interface ECLAttribute {\r\n        ModuleName: string;\r\n        AttributeName: string;\r\n        IsLocked: boolean;\r\n        IsCheckedOut: boolean;\r\n        IsSandbox: boolean;\r\n        IsOrphaned: boolean;\r\n    }\r\n\r\n    export interface Dependencies2 {\r\n        ECLAttribute: ECLAttribute[];\r\n    }\r\n\r\n    export interface WUCompileECLResponse {\r\n        Exceptions: Exceptions;\r\n        Complexity: string;\r\n        Errors: Errors;\r\n        Dependencies: Dependencies2;\r\n    }\r\n\r\n    export interface WUCopyLogicalFiles {\r\n        Wuid: string;\r\n        Cluster: string;\r\n        CopyLocal: boolean;\r\n    }\r\n\r\n    export interface Clusters {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface WULogicalFileCopyInfo {\r\n        IsIndex: boolean;\r\n        LogicalName: string;\r\n        DfuCopyWuid: string;\r\n        DfuCopyError: string;\r\n        Clusters: Clusters;\r\n    }\r\n\r\n    export interface OnCluster {\r\n        WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\r\n    }\r\n\r\n    export interface NotOnCluster {\r\n        WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\r\n    }\r\n\r\n    export interface Foreign {\r\n        WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\r\n    }\r\n\r\n    export interface NotFound {\r\n        WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\r\n    }\r\n\r\n    export interface Cluster {\r\n        ClusterName: string;\r\n        OnCluster: OnCluster;\r\n        NotOnCluster: NotOnCluster;\r\n        Foreign: Foreign;\r\n        NotFound: NotFound;\r\n    }\r\n\r\n    export interface ClusterFiles {\r\n        Cluster: Cluster[];\r\n    }\r\n\r\n    export interface WUCopyLogicalFilesResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        ClusterFiles: ClusterFiles;\r\n    }\r\n\r\n    export interface WUCopyQuerySet {\r\n        Source: string;\r\n        Target: string;\r\n        ActiveOnly: boolean;\r\n        CloneActiveState: boolean;\r\n        AllowForeignFiles: boolean;\r\n        DfsServer: string;\r\n        CopyFiles: boolean;\r\n        OverwriteDfs: boolean;\r\n        SourceProcess: string;\r\n        UpdateSuperFiles: boolean;\r\n        UpdateCloneFrom: boolean;\r\n        AppendCluster: boolean;\r\n        IncludeFileErrors: boolean;\r\n        SourceSSL: boolean;\r\n        DfuCopyFiles: boolean;\r\n        DfuQueue: string;\r\n        DfuWait: nonNegativeInteger;\r\n        DfuOverwrite: boolean;\r\n        OnlyCopyFiles: boolean;\r\n        StopIfFilesCopied: boolean;\r\n        DfuPublisherWuid: string;\r\n        RemoteStorage: string;\r\n        KeyCompression: string;\r\n    }\r\n\r\n    export interface CopiedQueries {\r\n        QueryId: string[];\r\n    }\r\n\r\n    export interface ExistingQueries {\r\n        QueryId: string[];\r\n    }\r\n\r\n    export interface File {\r\n        Error: string;\r\n        LogicalName: string;\r\n    }\r\n\r\n    export interface FileErrors {\r\n        File: File[];\r\n    }\r\n\r\n    export interface WUCopyQuerySetResponse {\r\n        Exceptions: Exceptions;\r\n        CopiedQueries: CopiedQueries;\r\n        ExistingQueries: ExistingQueries;\r\n        FileErrors: FileErrors;\r\n        DfuPublisherWuid: string;\r\n        DfuPublisherState: string;\r\n    }\r\n\r\n    export interface WUCreate {\r\n\r\n    }\r\n\r\n    export interface Query {\r\n        Text: string;\r\n        Cpp: string;\r\n        ResTxt: string;\r\n        Dll: string;\r\n        ThorLog: string;\r\n        QueryMainDefinition: string;\r\n    }\r\n\r\n    export interface ECLHelpFile {\r\n        Name: string;\r\n        Type: string;\r\n        IPAddress: string;\r\n        Description: string;\r\n        FileSize: long;\r\n        PID: unsignedInt;\r\n        minActivityId: unsignedInt;\r\n        maxActivityId: unsignedInt;\r\n        IsAvailable: boolean;\r\n    }\r\n\r\n    export interface Helpers {\r\n        ECLHelpFile: ECLHelpFile[];\r\n    }\r\n\r\n    export interface Exceptions2 {\r\n        ECLException: ECLException[];\r\n    }\r\n\r\n    export interface ECLGraph {\r\n        Name: string;\r\n        Label: string;\r\n        Type: string;\r\n        Running: boolean;\r\n        Complete: boolean;\r\n        Failed: boolean;\r\n        RunningId: long;\r\n        WhenStarted: string;\r\n        WhenFinished: string;\r\n    }\r\n\r\n    export interface Graphs {\r\n        ECLGraph: ECLGraph[];\r\n    }\r\n\r\n    export interface ECLSourceFiles {\r\n        ECLSourceFile: ECLSourceFile[];\r\n    }\r\n\r\n    export interface ECLSourceFile {\r\n        FileCluster: string;\r\n        Name: string;\r\n        IsSuperFile: boolean;\r\n        Subs: int;\r\n        Count: int;\r\n        ECLSourceFiles: ECLSourceFiles;\r\n    }\r\n\r\n    export interface SourceFiles {\r\n        ECLSourceFile: ECLSourceFile[];\r\n    }\r\n\r\n    export interface ECLSchemaItem {\r\n        ColumnName: string;\r\n        ColumnType: string;\r\n        ColumnTypeCode: int;\r\n        isConditional: boolean;\r\n    }\r\n\r\n    export interface ECLSchemas {\r\n        ECLSchemaItem: ECLSchemaItem[];\r\n    }\r\n\r\n    export interface ECLResult {\r\n        Name: string;\r\n        Sequence: int;\r\n        Value: string;\r\n        Link: string;\r\n        FileName: string;\r\n        IsSupplied: boolean;\r\n        ShowFileContent: boolean;\r\n        Total: long;\r\n        ECLSchemas: ECLSchemas;\r\n        XmlSchema: string;\r\n    }\r\n\r\n    export interface Results {\r\n        ECLResult: ECLResult[];\r\n    }\r\n\r\n    export interface Variables {\r\n        ECLResult: ECLResult[];\r\n    }\r\n\r\n    export interface ECLTimer {\r\n        Name: string;\r\n        Value: string;\r\n        count: int;\r\n        GraphName: string;\r\n        SubGraphId: int;\r\n        Timestamp: long;\r\n        When: string;\r\n    }\r\n\r\n    export interface Timers {\r\n        ECLTimer: ECLTimer[];\r\n    }\r\n\r\n    export interface DebugValue {\r\n        Name: string;\r\n        Value: string;\r\n    }\r\n\r\n    export interface DebugValues {\r\n        DebugValue: DebugValue[];\r\n    }\r\n\r\n    export interface ApplicationValue {\r\n        Application: string;\r\n        Name: string;\r\n        Value: string;\r\n    }\r\n\r\n    export interface ApplicationValues {\r\n        ApplicationValue: ApplicationValue[];\r\n    }\r\n\r\n    export interface ECLWorkflow {\r\n        WFID: string;\r\n        EventName: string;\r\n        EventText: string;\r\n        Count: int;\r\n        CountRemaining: int;\r\n    }\r\n\r\n    export interface Workflows {\r\n        ECLWorkflow: ECLWorkflow[];\r\n    }\r\n\r\n    export interface ECLTimingData {\r\n        Name: string;\r\n        GraphNum: int;\r\n        SubGraphNum: int;\r\n        GID: int;\r\n        Min: int;\r\n        MS: int;\r\n    }\r\n\r\n    export interface TimingData {\r\n        ECLTimingData: ECLTimingData[];\r\n    }\r\n\r\n    export interface AllowedClusters {\r\n        AllowedCluster: string[];\r\n    }\r\n\r\n    export interface ThorLogInfo {\r\n        ProcessName: string;\r\n        ClusterGroup: string;\r\n        LogDate: string;\r\n        NumberSlaves: int;\r\n    }\r\n\r\n    export interface ThorLogList {\r\n        ThorLogInfo: ThorLogInfo[];\r\n    }\r\n\r\n    export interface ResourceURLs {\r\n        URL: string[];\r\n    }\r\n\r\n    export interface ServiceNames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface Graphs2 {\r\n        Graph: string[];\r\n    }\r\n\r\n    export interface ECLWUProcess {\r\n        Name: string;\r\n        Type: string;\r\n        PodName: string;\r\n        ContainerName: string;\r\n        Graphs: Graphs2;\r\n        InstanceNumber: int;\r\n        Sequence: string;\r\n        Log: string;\r\n        PID: string;\r\n        Pattern: string;\r\n        Max: int;\r\n    }\r\n\r\n    export interface ECLWUProcessList {\r\n        ECLWUProcess: ECLWUProcess[];\r\n    }\r\n\r\n    export interface Workunit {\r\n        Wuid: string;\r\n        Owner: string;\r\n        Cluster: string;\r\n        RoxieCluster: string;\r\n        Jobname: string;\r\n        Queue: string;\r\n        StateID: int;\r\n        State: string;\r\n        StateEx: string;\r\n        Description: string;\r\n        Protected: boolean;\r\n        Active: boolean;\r\n        Action: int;\r\n        ActionEx: string;\r\n        DateTimeScheduled: dateTime;\r\n        PriorityClass: int;\r\n        PriorityLevel: int;\r\n        Scope: string;\r\n        Snapshot: string;\r\n        ResultLimit: int;\r\n        Archived: boolean;\r\n        IsPausing: boolean;\r\n        ThorLCR: boolean;\r\n        EventSchedule: int;\r\n        TotalClusterTime: string;\r\n        AbortBy: string;\r\n        AbortTime: string;\r\n        Query: Query;\r\n        Helpers: Helpers;\r\n        Exceptions: Exceptions2;\r\n        Graphs: Graphs;\r\n        SourceFiles: SourceFiles;\r\n        Results: Results;\r\n        Variables: Variables;\r\n        Timers: Timers;\r\n        DebugValues: DebugValues;\r\n        ApplicationValues: ApplicationValues;\r\n        Workflows: Workflows;\r\n        TimingData: TimingData;\r\n        AllowedClusters: AllowedClusters;\r\n        ErrorCount: int;\r\n        WarningCount: int;\r\n        InfoCount: int;\r\n        AlertCount: int;\r\n        GraphCount: int;\r\n        SourceFileCount: int;\r\n        ResultCount: int;\r\n        VariableCount: int;\r\n        TimerCount: int;\r\n        HasDebugValue: boolean;\r\n        ApplicationValueCount: int;\r\n        XmlParams: string;\r\n        AccessFlag: int;\r\n        ClusterFlag: int;\r\n        HelpersDesc: string;\r\n        GraphsDesc: string;\r\n        SourceFilesDesc: string;\r\n        ResultsDesc: string;\r\n        VariablesDesc: string;\r\n        TimersDesc: string;\r\n        DebugValuesDesc: string;\r\n        ApplicationValuesDesc: string;\r\n        WorkflowsDesc: string;\r\n        HasArchiveQuery: boolean;\r\n        ThorLogList: ThorLogList;\r\n        ResourceURLs: ResourceURLs;\r\n        ResultViewCount: int;\r\n        ResourceURLCount: int;\r\n        DebugValueCount: int;\r\n        WorkflowCount: int;\r\n        HelpersCount: int;\r\n        ServiceNames: ServiceNames;\r\n        ExecuteCost: double;\r\n        FileAccessCost: double;\r\n        CostSavingPotential: double;\r\n        CompileCost: double;\r\n        NoAccess: boolean;\r\n        ECLWUProcessList: ECLWUProcessList;\r\n    }\r\n\r\n    export interface WUCreateResponse {\r\n        Exceptions: Exceptions;\r\n        Workunit: Workunit;\r\n    }\r\n\r\n    export interface WUCreateAndUpdate {\r\n        Wuid: string;\r\n        State: int;\r\n        StateOrig: int;\r\n        Jobname: string;\r\n        JobnameOrig: string;\r\n        QueryText: string;\r\n        Action: int;\r\n        Description: string;\r\n        DescriptionOrig: string;\r\n        AddDrilldownFields: boolean;\r\n        ResultLimit: int;\r\n        Protected: boolean;\r\n        ProtectedOrig: boolean;\r\n        PriorityClass: int;\r\n        PriorityLevel: int;\r\n        Scope: string;\r\n        ScopeOrig: string;\r\n        ClusterSelection: string;\r\n        ClusterOrig: string;\r\n        XmlParams: string;\r\n        ThorSlaveIP: string;\r\n        QueryMainDefinition: string;\r\n        DebugValues: DebugValues;\r\n        ApplicationValues: ApplicationValues;\r\n    }\r\n\r\n    export interface WUUpdateResponse {\r\n        Exceptions: Exceptions;\r\n        Workunit: Workunit;\r\n    }\r\n\r\n    export interface AbsoluteTimeRange {\r\n        StartDate: dateTime;\r\n        EndDate: dateTime;\r\n    }\r\n\r\n    export interface CustomColumns {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface ComponentsFilter {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface LogFilter {\r\n        WildcardFilter: string;\r\n        AbsoluteTimeRange: AbsoluteTimeRange;\r\n        RelativeTimeRangeBuffer: unsignedInt;\r\n        LineLimit: unsignedInt;\r\n        LineStartFrom: long;\r\n        SelectColumnMode: LogSelectColumnMode;\r\n        CustomColumns: CustomColumns;\r\n        ComponentsFilter: ComponentsFilter;\r\n        Format: string;\r\n        sortByTimeDirection: SortDirection;\r\n        LogEventType: LogEventClass;\r\n    }\r\n\r\n    export interface WUCreateZAPInfo {\r\n        Wuid: string;\r\n        ESPApplication: string;\r\n        ThorProcesses: string;\r\n        BuildVersion: string;\r\n        ProblemDescription: string;\r\n        WhatChanged: string;\r\n        WhereSlow: string;\r\n        ZAPFileName: string;\r\n        IncludeThorSlaveLog: string;\r\n        ZAPPassword: string;\r\n        SendEmail: boolean;\r\n        AttachZAPReportToEmail: boolean;\r\n        EmailFrom: string;\r\n        EmailSubject: string;\r\n        EmailBody: string;\r\n        LogFilter: LogFilter;\r\n        IncludeRelatedLogs: boolean;\r\n        IncludePerComponentLogs: boolean;\r\n    }\r\n\r\n    export interface WUCreateZAPInfoResponse {\r\n        Exceptions: Exceptions;\r\n        thefile: base64Binary;\r\n        ZAPFileName: string;\r\n    }\r\n\r\n    export interface WUDelete {\r\n        Wuids: Wuids;\r\n        BlockTillFinishTimer: int;\r\n    }\r\n\r\n    export interface WUDeleteResponse {\r\n        Exceptions: Exceptions;\r\n        ActionResults: ActionResults;\r\n    }\r\n\r\n    export interface NamedValue {\r\n        Name: string;\r\n        Value: string;\r\n    }\r\n\r\n    export interface DebugValues2 {\r\n        NamedValue: NamedValue[];\r\n    }\r\n\r\n    export interface WUDeployWorkunit {\r\n        Cluster: string;\r\n        Name: string;\r\n        Wait: int;\r\n        ObjType: string;\r\n        FileName: string;\r\n        Object: base64Binary;\r\n        ResultLimit: int;\r\n        QueryMainDefinition: string;\r\n        Snapshot: string;\r\n        DebugValues: DebugValues2;\r\n        Protect: boolean;\r\n    }\r\n\r\n    export interface WUDeployWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n        Workunit: Workunit;\r\n    }\r\n\r\n    export interface PropertyFilter {\r\n        Name: string;\r\n        ExactValue: string;\r\n        MinValue: string;\r\n        MaxValue: string;\r\n    }\r\n\r\n    export interface PropertyFilters {\r\n        PropertyFilter: PropertyFilter[];\r\n    }\r\n\r\n    export interface ScopeFilter {\r\n        MaxDepth: integer;\r\n        Scopes: string[];\r\n        Ids: string[];\r\n        ScopeTypes: string[];\r\n        PropertyFilters: PropertyFilters;\r\n    }\r\n\r\n    export interface NestedFilter {\r\n        Depth: unsignedInt;\r\n        ScopeTypes: string[];\r\n    }\r\n\r\n    export interface Extra {\r\n        scopeType: string;\r\n        Properties: string[];\r\n    }\r\n\r\n    export interface ExtraProperties {\r\n        Extra: Extra[];\r\n    }\r\n\r\n    export interface PropertiesToReturn {\r\n        AllStatistics: boolean;\r\n        AllAttributes: boolean;\r\n        AllHints: boolean;\r\n        AllScopes: boolean;\r\n        AllProperties: boolean;\r\n        AllNotes: boolean;\r\n        MinVersion: uint64;\r\n        Measure: string;\r\n        Properties: string[];\r\n        ExtraProperties: ExtraProperties;\r\n    }\r\n\r\n    export interface ScopeOptions {\r\n        IncludeMatchedScopesInResults: boolean;\r\n        IncludeScope: boolean;\r\n        IncludeId: boolean;\r\n        IncludeScopeType: boolean;\r\n    }\r\n\r\n    export interface WUDetails {\r\n        WUID: string;\r\n        ScopeFilter: ScopeFilter;\r\n        NestedFilter: NestedFilter;\r\n        PropertiesToReturn: PropertiesToReturn;\r\n        Filter: string;\r\n        ScopeOptions: ScopeOptions;\r\n        PropertyOptions: PropertyOptions;\r\n    }\r\n\r\n    export interface Scope {\r\n        ScopeName: string;\r\n        Id: string;\r\n        ScopeType: string;\r\n        Properties: Properties;\r\n        Notes: Notes;\r\n        SinkActivity: string;\r\n    }\r\n\r\n    export interface Scopes {\r\n        Scope: Scope[];\r\n    }\r\n\r\n    export interface WUDetailsResponse {\r\n        Exceptions: Exceptions;\r\n        MaxVersion: uint64;\r\n        WUID: string;\r\n        Scopes: Scopes;\r\n    }\r\n\r\n    export interface WUDetailsMeta {\r\n\r\n    }\r\n\r\n    export interface Property2 {\r\n        Name: string;\r\n        ValueType: WUDetailsAttrValueType;\r\n        Description: string;\r\n    }\r\n\r\n    export interface Properties2 {\r\n        Property: Property2[];\r\n    }\r\n\r\n    export interface ScopeTypes {\r\n        ScopeType: string[];\r\n    }\r\n\r\n    export interface Measures {\r\n        Measure: string[];\r\n    }\r\n\r\n    export interface Activity2 {\r\n        Kind: unsignedInt;\r\n        Name: string;\r\n        IsSink: boolean;\r\n        IsSource: boolean;\r\n    }\r\n\r\n    export interface Activities2 {\r\n        Activity: Activity2[];\r\n    }\r\n\r\n    export interface WUDetailsMetaResponse {\r\n        Exceptions: Exceptions;\r\n        Properties: Properties2;\r\n        ScopeTypes: ScopeTypes;\r\n        Measures: Measures;\r\n        Activities: Activities2;\r\n    }\r\n\r\n    export interface EclDefinitions {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface WUEclDefinitionAction {\r\n        EclDefinitions: EclDefinitions;\r\n        ActionType: EclDefinitionActions;\r\n        Target: string;\r\n        RemoteDali: string;\r\n        SourceProcess: string;\r\n        Priority: string;\r\n        Comment: string;\r\n        MemoryLimit: string;\r\n        DeletePrevious: boolean;\r\n        SuspendPrevious: boolean;\r\n        NoActivate: boolean;\r\n        NoReload: boolean;\r\n        DontCopyFiles: boolean;\r\n        AllowForeign: boolean;\r\n        UpdateDfs: boolean;\r\n        UpdateSuperfiles: boolean;\r\n        UpdateCloneFrom: boolean;\r\n        DontAppendCluster: boolean;\r\n        MsToWait: int;\r\n        TimeLimit: int;\r\n        WarnTimeLimit: int;\r\n        DfuCopyFiles: boolean;\r\n        DfuOverwrite: boolean;\r\n        DfuQueue: string;\r\n        OnlyCopyFiles: boolean;\r\n        StopIfFilesCopied: boolean;\r\n        DfuPublisherWuid: string;\r\n        RemoteStorage: string;\r\n    }\r\n\r\n    export interface WUEclDefinitionActionResult {\r\n        EclDefinition: string;\r\n        Action: string;\r\n        WUID: string;\r\n        QueryID: string;\r\n        Result: string;\r\n    }\r\n\r\n    export interface ActionResults2 {\r\n        WUEclDefinitionActionResult: WUEclDefinitionActionResult[];\r\n    }\r\n\r\n    export interface WUEclDefinitionActionResponse {\r\n        Exceptions: Exceptions;\r\n        ActionResults: ActionResults2;\r\n        DfuPublisherWuid: string;\r\n        DfuPublisherState: string;\r\n    }\r\n\r\n    export interface WUExport {\r\n        Cluster: string;\r\n        Owner: string;\r\n        State: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        Jobname: string;\r\n    }\r\n\r\n    export interface WUExportResponse {\r\n        Exceptions: Exceptions;\r\n        ExportData: base64Binary;\r\n    }\r\n\r\n    export interface LogColumns {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface WUFile {\r\n        Name: string;\r\n        Wuid: string;\r\n        Type: string;\r\n        Option: int;\r\n        SlaveIP: string;\r\n        IPAddress: string;\r\n        Description: string;\r\n        QuerySet: string;\r\n        Query: string;\r\n        Process: string;\r\n        ClusterGroup: string;\r\n        LogDate: string;\r\n        SlaveNumber: int;\r\n        SizeLimit: long;\r\n        ErrorMessageFormat: ErrorMessageFormat;\r\n        PlainText: string;\r\n        MaxLogRecords: unsignedInt;\r\n        LogSelectColumnMode: LogSelectColumnMode;\r\n        LogFormat: LogAccessLogFormat;\r\n        LogSearchTimeBuffSecs: unsignedInt;\r\n        LogColumns: LogColumns;\r\n    }\r\n\r\n    export interface WULogFileResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        QuerySet: string;\r\n        QueryName: string;\r\n        QueryId: string;\r\n        FileName: string;\r\n        DaliServer: string;\r\n        thefile: base64Binary;\r\n    }\r\n\r\n    export interface WUFullResult {\r\n        Wuid: string;\r\n        NoRootTag: boolean;\r\n        ExceptionSeverity: WUExceptionSeverity;\r\n    }\r\n\r\n    export interface WUFullResultResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        Results: string;\r\n    }\r\n\r\n    export interface WUGVCGraphInfo {\r\n        Wuid: string;\r\n        Name: string;\r\n        GID: string;\r\n        BatchWU: int;\r\n        SubgraphId: int;\r\n    }\r\n\r\n    export interface WUGVCGraphInfoResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        Name: string;\r\n        GID: string;\r\n        Running: boolean;\r\n        TheGraph: string;\r\n        BatchWU: int;\r\n    }\r\n\r\n    export interface WUGetArchiveFile {\r\n        WUID: string;\r\n        ModuleName: string;\r\n        FileName: string;\r\n        Path: string;\r\n    }\r\n\r\n    export interface WUGetArchiveFileResponse {\r\n        Exceptions: Exceptions;\r\n        File: string;\r\n        Message: string;\r\n    }\r\n\r\n    export interface WUGetDependancyTrees {\r\n        Cluster: string;\r\n        Queue: string;\r\n        Snapshot: string;\r\n        Items: string;\r\n        TimeoutMilliSec: string;\r\n    }\r\n\r\n    export interface WUGetDependancyTreesResponse {\r\n        Exceptions: Exceptions;\r\n        Errors: Errors;\r\n        DependancyTrees: base64Binary;\r\n    }\r\n\r\n    export interface WUGetGraph {\r\n        Wuid: string;\r\n        GraphName: string;\r\n        SubGraphId: string;\r\n    }\r\n\r\n    export interface ECLGraphEx {\r\n        Name: string;\r\n        Label: string;\r\n        Type: string;\r\n        Graph: string;\r\n        Running: boolean;\r\n        RunningId: long;\r\n        Complete: boolean;\r\n        Failed: boolean;\r\n    }\r\n\r\n    export interface Graphs3 {\r\n        ECLGraphEx: ECLGraphEx[];\r\n    }\r\n\r\n    export interface WUGetGraphResponse {\r\n        Exceptions: Exceptions;\r\n        Graphs: Graphs3;\r\n    }\r\n\r\n    export interface WUGetGraphNameAndTypes {\r\n        Wuid: string;\r\n        Type: string;\r\n    }\r\n\r\n    export interface GraphNameAndType {\r\n        Name: string;\r\n        Type: string;\r\n    }\r\n\r\n    export interface GraphNameAndTypes {\r\n        GraphNameAndType: GraphNameAndType[];\r\n    }\r\n\r\n    export interface WUGetGraphNameAndTypesResponse {\r\n        Exceptions: Exceptions;\r\n        GraphNameAndTypes: GraphNameAndTypes;\r\n    }\r\n\r\n    export interface WUGetNumFileToCopy {\r\n        ClusterName: string;\r\n        TargetName: string;\r\n        PageSize: long;\r\n        PageStartFrom: long;\r\n        Sortby: string;\r\n        Descending: boolean;\r\n        CacheHint: long;\r\n    }\r\n\r\n    export interface Endpoint {\r\n        URL: string;\r\n        Status: string;\r\n        NumQueryFileToCopy: int;\r\n    }\r\n\r\n    export interface Endpoints {\r\n        Endpoint: Endpoint[];\r\n    }\r\n\r\n    export interface WUGetNumFileToCopyResponse {\r\n        Exceptions: Exceptions;\r\n        Endpoints: Endpoints;\r\n        CacheHint: long;\r\n        Total: long;\r\n    }\r\n\r\n    export interface WUGetPlugins {\r\n\r\n    }\r\n\r\n    export interface Plugins {\r\n        WUEclPluginsInFolder: WUEclPluginsInFolder[];\r\n    }\r\n\r\n    export interface WUEclPluginsInFolder {\r\n        Path: string;\r\n        Plugins: Plugins;\r\n    }\r\n\r\n    export interface WUGetPluginsResponse {\r\n        Exceptions: Exceptions;\r\n        Plugins: Plugins;\r\n    }\r\n\r\n    export interface WUGetStats {\r\n        WUID: string;\r\n        CreatorType: string;\r\n        Creator: string;\r\n        ScopeType: string;\r\n        Scope: string;\r\n        Kind: string;\r\n        Measure: string;\r\n        MinScopeDepth: unsignedInt;\r\n        MaxScopeDepth: unsignedInt;\r\n        IncludeGraphs: boolean;\r\n        CreateDescriptions: boolean;\r\n        MinValue: long;\r\n        MaxValue: long;\r\n        Filter: string;\r\n    }\r\n\r\n    export interface WUStatisticItem {\r\n        Creator: string;\r\n        CreatorType: string;\r\n        Scope: string;\r\n        ScopeType: string;\r\n        Description: string;\r\n        TimeStamp: string;\r\n        Measure: string;\r\n        Kind: string;\r\n        Value: string;\r\n        RawValue: long;\r\n        Count: long;\r\n        Max: long;\r\n        Wuid: string;\r\n    }\r\n\r\n    export interface Statistics {\r\n        WUStatisticItem: WUStatisticItem[];\r\n    }\r\n\r\n    export interface WUGetStatsResponse {\r\n        Exceptions: Exceptions;\r\n        WUID: string;\r\n        Statistics: Statistics;\r\n    }\r\n\r\n    export interface WUGetThorJobList {\r\n        Cluster: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        MaxJobsToReturn: unsignedInt;\r\n    }\r\n\r\n    export interface ECLJob {\r\n        Wuid: string;\r\n        Graph: string;\r\n        State: string;\r\n        StartedDate: string;\r\n        FinishedDate: string;\r\n        Cluster: string;\r\n        GraphNum: string;\r\n        SubGraphNum: string;\r\n        NumOfRuns: string;\r\n        Duration: int;\r\n    }\r\n\r\n    export interface JobList {\r\n        ECLJob: ECLJob[];\r\n    }\r\n\r\n    export interface InProgressJobList {\r\n        ECLJob: ECLJob[];\r\n    }\r\n\r\n    export interface WUGetThorJobListResponse {\r\n        Exceptions: Exceptions;\r\n        JobList: JobList;\r\n        InProgressJobList: InProgressJobList;\r\n        Warning: string;\r\n    }\r\n\r\n    export interface WUGetThorJobQueue {\r\n        Cluster: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        MaxJobQueueItemsToReturn: unsignedInt;\r\n    }\r\n\r\n    export interface ThorQueue {\r\n        DT: string;\r\n        RunningWUs: string;\r\n        QueuedWUs: string;\r\n        WaitingThors: string;\r\n        ConnectedThors: string;\r\n        IdledThors: string;\r\n        RunningWU1: string;\r\n        RunningWU2: string;\r\n    }\r\n\r\n    export interface QueueList {\r\n        ThorQueue: ThorQueue[];\r\n    }\r\n\r\n    export interface WUGetThorJobQueueResponse {\r\n        Exceptions: Exceptions;\r\n        LongestQueue: int;\r\n        MaxThorConnected: int;\r\n        QueueList: QueueList;\r\n        Warning: string;\r\n    }\r\n\r\n    export interface WUGetZAPInfo {\r\n        WUID: string;\r\n    }\r\n\r\n    export interface WUGetZAPInfoResponse {\r\n        Exceptions: Exceptions;\r\n        WUID: string;\r\n        ESPApplication: string;\r\n        ThorProcesses: string;\r\n        BuildVersion: string;\r\n        Archive: string;\r\n        EmailTo: string;\r\n        EmailFrom: string;\r\n        Message: string;\r\n        IsContainerized: boolean;\r\n    }\r\n\r\n    export interface WUGraphInfo {\r\n        Wuid: string;\r\n        Name: string;\r\n        GID: string;\r\n        BatchWU: int;\r\n    }\r\n\r\n    export interface WUGraphInfoResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        Name: string;\r\n        GID: string;\r\n        BatchWU: int;\r\n        Running: boolean;\r\n    }\r\n\r\n    export interface WUGraphTiming {\r\n        Wuid: string;\r\n    }\r\n\r\n    export interface WUGraphTimingResponse {\r\n        Exceptions: Exceptions;\r\n        Workunit: Workunit;\r\n    }\r\n\r\n    export interface WUInfo {\r\n        Wuid: string;\r\n        TruncateEclTo64k: boolean;\r\n        Type: string;\r\n        IncludeExceptions: boolean;\r\n        IncludeGraphs: boolean;\r\n        IncludeSourceFiles: boolean;\r\n        IncludeResults: boolean;\r\n        IncludeResultsViewNames: boolean;\r\n        IncludeVariables: boolean;\r\n        IncludeTimers: boolean;\r\n        IncludeDebugValues: boolean;\r\n        IncludeApplicationValues: boolean;\r\n        IncludeWorkflows: boolean;\r\n        IncludeXmlSchemas: boolean;\r\n        IncludeResourceURLs: boolean;\r\n        IncludeECL: boolean;\r\n        IncludeHelpers: boolean;\r\n        IncludeAllowedClusters: boolean;\r\n        IncludeTotalClusterTime: boolean;\r\n        IncludeServiceNames: boolean;\r\n        IncludeProcesses: boolean;\r\n        SuppressResultSchemas: boolean;\r\n        ThorSlaveIP: string;\r\n    }\r\n\r\n    export interface ResultViews {\r\n        View: string[];\r\n    }\r\n\r\n    export interface WUInfoResponse {\r\n        Exceptions: Exceptions;\r\n        Workunit: Workunit;\r\n        AutoRefresh: int;\r\n        CanCompile: boolean;\r\n        ThorSlaveIP: string;\r\n        ResultViews: ResultViews;\r\n        SecMethod: string;\r\n    }\r\n\r\n    export interface WUInfoDetails {\r\n        Wuid: string;\r\n        TruncateEclTo64k: boolean;\r\n        Type: string;\r\n        IncludeExceptions: boolean;\r\n        IncludeGraphs: boolean;\r\n        IncludeSourceFiles: boolean;\r\n        IncludeResults: boolean;\r\n        IncludeResultsViewNames: boolean;\r\n        IncludeVariables: boolean;\r\n        IncludeTimers: boolean;\r\n        IncludeDebugValues: boolean;\r\n        IncludeApplicationValues: boolean;\r\n        IncludeWorkflows: boolean;\r\n        IncludeXmlSchemas: boolean;\r\n        IncludeResourceURLs: boolean;\r\n        IncludeECL: boolean;\r\n        IncludeHelpers: boolean;\r\n        IncludeAllowedClusters: boolean;\r\n        IncludeTotalClusterTime: boolean;\r\n        IncludeServiceNames: boolean;\r\n        IncludeProcesses: boolean;\r\n        SuppressResultSchemas: boolean;\r\n        ThorSlaveIP: string;\r\n    }\r\n\r\n    export interface WUJobList {\r\n        Cluster: string;\r\n        Process: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        ShowAll: boolean;\r\n        BusinessStartHour: int;\r\n        BusinessEndHour: int;\r\n    }\r\n\r\n    export interface Jobs {\r\n        ECLJob: ECLJob[];\r\n    }\r\n\r\n    export interface WUJobListResponse {\r\n        Exceptions: Exceptions;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        Jobs: Jobs;\r\n    }\r\n\r\n    export interface WULightWeightQuery {\r\n        Wuid: string;\r\n        Type: string;\r\n        Cluster: string;\r\n        Owner: string;\r\n        JobName: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        BeforeWU: string;\r\n        AfterWU: string;\r\n        State: string;\r\n        ApplicationValues: ApplicationValues;\r\n        PageStartFrom: long;\r\n        PageSize: unsignedInt;\r\n        SortBy: string;\r\n        Descending: boolean;\r\n        CacheHint: long;\r\n    }\r\n\r\n    export interface ECLWorkunitLW {\r\n        Wuid: string;\r\n        Owner: string;\r\n        JobName: string;\r\n        WuScope: string;\r\n        ClusterName: string;\r\n        State: int;\r\n        StateDesc: string;\r\n        Action: int;\r\n        ActionDesc: string;\r\n        Priority: int;\r\n        PriorityDesc: string;\r\n        PriorityLevel: int;\r\n        IsProtected: boolean;\r\n        DateTimeScheduled: dateTime;\r\n        TotalClusterTime: unsignedInt;\r\n        ApplicationValues: ApplicationValues;\r\n        NoAccess: boolean;\r\n    }\r\n\r\n    export interface Workunits {\r\n        ECLWorkunitLW: ECLWorkunitLW[];\r\n    }\r\n\r\n    export interface WULightWeightQueryResponse {\r\n        Exceptions: Exceptions;\r\n        NumWUs: int;\r\n        CacheHint: long;\r\n        Workunits: Workunits;\r\n    }\r\n\r\n    export interface WUListArchiveFiles {\r\n        WUID: string;\r\n    }\r\n\r\n    export interface ArchiveModules {\r\n        ArchiveModule: ArchiveModule[];\r\n    }\r\n\r\n    export interface File2 {\r\n        Name: string;\r\n        Key: string;\r\n        SourcePath: string;\r\n        Path: string;\r\n    }\r\n\r\n    export interface Files {\r\n        File: File2[];\r\n    }\r\n\r\n    export interface ArchiveModule {\r\n        Name: string;\r\n        FullName: string;\r\n        Flags: unsignedInt;\r\n        Key: string;\r\n        Plugin: string;\r\n        SourcePath: string;\r\n        Version: string;\r\n        Path: string;\r\n        ArchiveModules: ArchiveModules;\r\n        Files: Files;\r\n    }\r\n\r\n    export interface WUListArchiveFilesResponse {\r\n        Exceptions: Exceptions;\r\n        ArchiveModules: ArchiveModules;\r\n        Files: Files;\r\n        Message: string;\r\n    }\r\n\r\n    export interface WUListLocalFileRequired {\r\n        Wuid: string;\r\n    }\r\n\r\n    export interface LogicalFileUpload {\r\n        Type: int;\r\n        Source: string;\r\n        Destination: string;\r\n        EventTag: string;\r\n    }\r\n\r\n    export interface LocalFileUploads {\r\n        LogicalFileUpload: LogicalFileUpload[];\r\n    }\r\n\r\n    export interface WUListLocalFileRequiredResponse {\r\n        Exceptions: Exceptions;\r\n        LocalFileUploads: LocalFileUploads;\r\n    }\r\n\r\n    export interface WUListQueries {\r\n        QuerySetName: string;\r\n        ClusterName: string;\r\n        LibraryName: string;\r\n        MemoryLimitLow: long;\r\n        MemoryLimitHigh: long;\r\n        TimeLimitLow: nonNegativeInteger;\r\n        TimeLimitHigh: nonNegativeInteger;\r\n        WarnTimeLimitLow: nonNegativeInteger;\r\n        WarnTimeLimitHigh: nonNegativeInteger;\r\n        PriorityLow: nonNegativeInteger;\r\n        PriorityHigh: nonNegativeInteger;\r\n        Activated: boolean;\r\n        SuspendedFilter: WUQueryFilterSuspendedType;\r\n        WUID: string;\r\n        QueryID: string;\r\n        QueryName: string;\r\n        PublishedBy: string;\r\n        PageSize: nonNegativeInteger;\r\n        PageStartFrom: nonNegativeInteger;\r\n        Sortby: string;\r\n        Descending: boolean;\r\n        CacheHint: long;\r\n        FileName: string;\r\n        CheckAllNodes: boolean;\r\n    }\r\n\r\n    export interface ClusterQueryState {\r\n        Cluster: string;\r\n        State: string;\r\n        Errors: string;\r\n        MixedNodeStates: boolean;\r\n    }\r\n\r\n    export interface Clusters2 {\r\n        ClusterQueryState: ClusterQueryState[];\r\n    }\r\n\r\n    export interface QuerySetQuery {\r\n        Id: string;\r\n        Name: string;\r\n        Wuid: string;\r\n        Dll: string;\r\n        Suspended: boolean;\r\n        Clusters: Clusters2;\r\n        memoryLimit: string;\r\n        timeLimit: nonNegativeInteger;\r\n        warnTimeLimit: nonNegativeInteger;\r\n        priority: string;\r\n        Comment: string;\r\n        QuerySetId: string;\r\n        IsLibrary: boolean;\r\n        Activated: boolean;\r\n        PublishedBy: string;\r\n        snapshot: string;\r\n        PriorityID: int;\r\n    }\r\n\r\n    export interface QuerysetQueries {\r\n        QuerySetQuery: QuerySetQuery[];\r\n    }\r\n\r\n    export interface WUListQueriesResponse {\r\n        Exceptions: Exceptions;\r\n        NumberOfQueries: int;\r\n        CacheHint: long;\r\n        QuerysetQueries: QuerysetQueries;\r\n    }\r\n\r\n    export interface WUListQueriesUsingFile {\r\n        Target: string;\r\n        Process: string;\r\n        FileName: string;\r\n    }\r\n\r\n    export interface QueryUsingFile {\r\n        Id: string;\r\n        Package: string;\r\n    }\r\n\r\n    export interface Queries {\r\n        QueryUsingFile: QueryUsingFile[];\r\n    }\r\n\r\n    export interface TargetQueriesUsingFile {\r\n        Target: string;\r\n        PackageMap: string;\r\n        Queries: Queries;\r\n    }\r\n\r\n    export interface Targets {\r\n        TargetQueriesUsingFile: TargetQueriesUsingFile[];\r\n    }\r\n\r\n    export interface WUListQueriesUsingFileResponse {\r\n        Exceptions: Exceptions;\r\n        Process: string;\r\n        FileName: string;\r\n        Targets: Targets;\r\n    }\r\n\r\n    export interface WUMultiQuerysetDetails {\r\n        ClusterName: string;\r\n        QuerySetName: string;\r\n        Filter: string;\r\n        FilterType: WUQuerySetFilterType;\r\n        CheckAllNodes: boolean;\r\n    }\r\n\r\n    export interface Queries2 {\r\n        QuerySetQuery: QuerySetQuery[];\r\n    }\r\n\r\n    export interface QuerySetAlias {\r\n        Id: string;\r\n        Name: string;\r\n    }\r\n\r\n    export interface Aliases {\r\n        QuerySetAlias: QuerySetAlias[];\r\n    }\r\n\r\n    export interface WUQuerySetDetail {\r\n        QuerySetName: string;\r\n        Queries: Queries2;\r\n        Aliases: Aliases;\r\n    }\r\n\r\n    export interface Querysets {\r\n        WUQuerySetDetail: WUQuerySetDetail[];\r\n    }\r\n\r\n    export interface WUMultiQuerySetDetailsResponse {\r\n        Exceptions: Exceptions;\r\n        ClusterName: string;\r\n        Querysets: Querysets;\r\n    }\r\n\r\n    export interface WUProcessGraph {\r\n        Wuid: string;\r\n        Name: string;\r\n    }\r\n\r\n    export interface WUProcessGraphResponse {\r\n        Exceptions: Exceptions;\r\n        theGraph: string;\r\n    }\r\n\r\n    export interface WUProtect {\r\n        Wuids: Wuids;\r\n        Protect: boolean;\r\n    }\r\n\r\n    export interface WUProtectResponse {\r\n        Exceptions: Exceptions;\r\n        ActionResults: ActionResults;\r\n    }\r\n\r\n    export interface WUPublishWorkunit {\r\n        Wuid: string;\r\n        Cluster: string;\r\n        QueryName: string;\r\n        WorkUnitJobName: string;\r\n        JobName: string;\r\n        Activate: int;\r\n        NotifyCluster: boolean;\r\n        Wait: int;\r\n        NoReload: boolean;\r\n        UpdateWorkUnitName: boolean;\r\n        memoryLimit: string;\r\n        TimeLimit: nonNegativeInteger;\r\n        WarnTimeLimit: nonNegativeInteger;\r\n        Priority: string;\r\n        RemoteDali: string;\r\n        Comment: string;\r\n        DontCopyFiles: boolean;\r\n        SourceProcess: string;\r\n        AllowForeignFiles: boolean;\r\n        UpdateDfs: boolean;\r\n        UpdateSuperFiles: boolean;\r\n        UpdateCloneFrom: boolean;\r\n        AppendCluster: boolean;\r\n        IncludeFileErrors: boolean;\r\n        DfuCopyFiles: boolean;\r\n        DfuQueue: string;\r\n        DfuWait: nonNegativeInteger;\r\n        DfuOverwrite: boolean;\r\n        OnlyCopyFiles: boolean;\r\n        StopIfFilesCopied: boolean;\r\n        DfuPublisherWuid: string;\r\n        RemoteStorage: string;\r\n        KeyCompression: string;\r\n    }\r\n\r\n    export interface WUPublishWorkunitResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        Result: string;\r\n        QuerySet: string;\r\n        QueryName: string;\r\n        QueryId: string;\r\n        ReloadFailed: boolean;\r\n        Suspended: boolean;\r\n        ErrorMessage: string;\r\n        ClusterFiles: ClusterFiles;\r\n        FileErrors: FileErrors;\r\n        DfuPublisherWuid: string;\r\n        DfuPublisherState: string;\r\n    }\r\n\r\n    export interface WUPushEvent {\r\n        EventName: string;\r\n        EventText: string;\r\n    }\r\n\r\n    export interface WUPushEventResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface WUQuery {\r\n        Wuid: string;\r\n        Type: string;\r\n        Cluster: string;\r\n        RoxieCluster: string;\r\n        Owner: string;\r\n        State: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        ECL: string;\r\n        Jobname: string;\r\n        LogicalFile: string;\r\n        LogicalFileSearchType: string;\r\n        ApplicationValues: ApplicationValues;\r\n        BeforeWU: string;\r\n        AfterWU: string;\r\n        TotalClusterTimeThresholdMilliSec: unsignedInt;\r\n        Count: int;\r\n        PageSize: long;\r\n        PageStartFrom: long;\r\n        PageEndAt: long;\r\n        Protected: WUProtectFilter;\r\n        MinimumExecuteCost: double;\r\n        MinimumFileAccessCost: double;\r\n        MinimumCompileCost: double;\r\n        Sortby: string;\r\n        Descending: boolean;\r\n        CacheHint: long;\r\n    }\r\n\r\n    export interface ECLWorkunit {\r\n        Wuid: string;\r\n        Owner: string;\r\n        Cluster: string;\r\n        RoxieCluster: string;\r\n        Jobname: string;\r\n        Queue: string;\r\n        StateID: int;\r\n        State: string;\r\n        StateEx: string;\r\n        Description: string;\r\n        Protected: boolean;\r\n        Active: boolean;\r\n        Action: int;\r\n        ActionEx: string;\r\n        DateTimeScheduled: dateTime;\r\n        PriorityClass: int;\r\n        PriorityLevel: int;\r\n        Scope: string;\r\n        Snapshot: string;\r\n        ResultLimit: int;\r\n        Archived: boolean;\r\n        IsPausing: boolean;\r\n        ThorLCR: boolean;\r\n        EventSchedule: int;\r\n        TotalClusterTime: string;\r\n        AbortBy: string;\r\n        AbortTime: string;\r\n        Query: Query;\r\n        Helpers: Helpers;\r\n        Exceptions: Exceptions2;\r\n        Graphs: Graphs;\r\n        SourceFiles: SourceFiles;\r\n        Results: Results;\r\n        Variables: Variables;\r\n        Timers: Timers;\r\n        DebugValues: DebugValues;\r\n        ApplicationValues: ApplicationValues;\r\n        Workflows: Workflows;\r\n        TimingData: TimingData;\r\n        AllowedClusters: AllowedClusters;\r\n        ErrorCount: int;\r\n        WarningCount: int;\r\n        InfoCount: int;\r\n        AlertCount: int;\r\n        GraphCount: int;\r\n        SourceFileCount: int;\r\n        ResultCount: int;\r\n        VariableCount: int;\r\n        TimerCount: int;\r\n        HasDebugValue: boolean;\r\n        ApplicationValueCount: int;\r\n        XmlParams: string;\r\n        AccessFlag: int;\r\n        ClusterFlag: int;\r\n        HelpersDesc: string;\r\n        GraphsDesc: string;\r\n        SourceFilesDesc: string;\r\n        ResultsDesc: string;\r\n        VariablesDesc: string;\r\n        TimersDesc: string;\r\n        DebugValuesDesc: string;\r\n        ApplicationValuesDesc: string;\r\n        WorkflowsDesc: string;\r\n        HasArchiveQuery: boolean;\r\n        ThorLogList: ThorLogList;\r\n        ResourceURLs: ResourceURLs;\r\n        ResultViewCount: int;\r\n        ResourceURLCount: int;\r\n        DebugValueCount: int;\r\n        WorkflowCount: int;\r\n        HelpersCount: int;\r\n        ServiceNames: ServiceNames;\r\n        ExecuteCost: double;\r\n        FileAccessCost: double;\r\n        CostSavingPotential: double;\r\n        CompileCost: double;\r\n        NoAccess: boolean;\r\n        ECLWUProcessList: ECLWUProcessList;\r\n    }\r\n\r\n    export interface Workunits2 {\r\n        ECLWorkunit: ECLWorkunit[];\r\n    }\r\n\r\n    export interface WUQueryResponse {\r\n        Exceptions: Exceptions;\r\n        Type: string;\r\n        Cluster: string;\r\n        RoxieCluster: string;\r\n        Owner: string;\r\n        State: string;\r\n        StartDate: string;\r\n        EndDate: string;\r\n        ECL: string;\r\n        Jobname: string;\r\n        LogicalFile: string;\r\n        LogicalFileSearchType: string;\r\n        Current: string;\r\n        Next: string;\r\n        Count: int;\r\n        PageSize: long;\r\n        PrevPage: long;\r\n        NextPage: long;\r\n        LastPage: long;\r\n        NumWUs: int;\r\n        First: boolean;\r\n        PageStartFrom: long;\r\n        PageEndAt: long;\r\n        Sortby: string;\r\n        Descending: boolean;\r\n        BasicQuery: string;\r\n        Filters: string;\r\n        CacheHint: long;\r\n        Workunits: Workunits2;\r\n    }\r\n\r\n    export interface WUQueryConfig {\r\n        Target: string;\r\n        QueryId: string;\r\n        Wait: int;\r\n        NoReload: boolean;\r\n        memoryLimit: string;\r\n        TimeLimit: nonNegativeInteger;\r\n        WarnTimeLimit: nonNegativeInteger;\r\n        Priority: string;\r\n        Comment: string;\r\n    }\r\n\r\n    export interface Result {\r\n        QueryId: string;\r\n    }\r\n\r\n    export interface Results2 {\r\n        Result: Result[];\r\n    }\r\n\r\n    export interface WUQueryConfigResponse {\r\n        Exceptions: Exceptions;\r\n        ReloadFailed: boolean;\r\n        Results: Results2;\r\n    }\r\n\r\n    export interface WUQueryDetails {\r\n        QueryId: string;\r\n        QuerySet: string;\r\n        IncludeStateOnClusters: boolean;\r\n        IncludeSuperFiles: boolean;\r\n        IncludeWsEclAddresses: boolean;\r\n        CheckAllNodes: boolean;\r\n        IncludeWUDetails: boolean;\r\n        IncludeWUQueryFiles: boolean;\r\n    }\r\n\r\n    export interface LogicalFiles {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface SubFiles {\r\n        File: string[];\r\n    }\r\n\r\n    export interface SuperFiles {\r\n        SuperFile: SuperFile[];\r\n    }\r\n\r\n    export interface SuperFile {\r\n        Name: string;\r\n        SubFiles: SubFiles;\r\n        SuperFiles: SuperFiles;\r\n    }\r\n\r\n    export interface LibrariesUsed {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface WsEclAddresses {\r\n        Address: string[];\r\n    }\r\n\r\n    export interface WUGraphs {\r\n        ECLGraph: ECLGraph[];\r\n    }\r\n\r\n    export interface WUTimers {\r\n        ECLTimer: ECLTimer[];\r\n    }\r\n\r\n    export interface WUQueryDetailsResponse {\r\n        Exceptions: Exceptions;\r\n        QueryId: string;\r\n        QuerySet: string;\r\n        QueryName: string;\r\n        Wuid: string;\r\n        Dll: string;\r\n        Suspended: boolean;\r\n        Activated: boolean;\r\n        SuspendedBy: string;\r\n        Clusters: Clusters2;\r\n        PublishedBy: string;\r\n        Comment: string;\r\n        LogicalFiles: LogicalFiles;\r\n        SuperFiles: SuperFiles;\r\n        IsLibrary: boolean;\r\n        Priority: string;\r\n        PriorityID: int;\r\n        WUSnapShot: string;\r\n        CompileTime: string;\r\n        LibrariesUsed: LibrariesUsed;\r\n        CountGraphs: int;\r\n        ResourceURLCount: int;\r\n        WsEclAddresses: WsEclAddresses;\r\n        WUGraphs: WUGraphs;\r\n        WUTimers: WUTimers;\r\n    }\r\n\r\n    export interface WUQueryDetailsLightWeight {\r\n        QueryId: string;\r\n        QuerySet: string;\r\n        IncludeWUDetails: boolean;\r\n        IncludeWUQueryFiles: boolean;\r\n        IncludeSuperFiles: boolean;\r\n        IncludeWsEclAddresses: boolean;\r\n        IncludeStateOnClusters: boolean;\r\n        CheckAllNodes: boolean;\r\n    }\r\n\r\n    export interface WUQueryFiles {\r\n        Target: string;\r\n        QueryId: string;\r\n    }\r\n\r\n    export interface File3 {\r\n        FileName: string;\r\n        FileSize: long;\r\n        NumberOfParts: unsignedInt;\r\n    }\r\n\r\n    export interface Files2 {\r\n        File: File3[];\r\n    }\r\n\r\n    export interface Query2 {\r\n        QueryId: string;\r\n        Files: Files2;\r\n        SuperFiles: SuperFiles;\r\n    }\r\n\r\n    export interface Queries3 {\r\n        Query: Query2[];\r\n    }\r\n\r\n    export interface WUQueryFilesResponse {\r\n        Exceptions: Exceptions;\r\n        Files: Files2;\r\n        SuperFiles: SuperFiles;\r\n        Queries: Queries3;\r\n    }\r\n\r\n    export interface WUQueryGetGraph {\r\n        Target: string;\r\n        QueryId: string;\r\n        GraphName: string;\r\n        SubGraphId: string;\r\n    }\r\n\r\n    export interface WUQueryGetGraphResponse {\r\n        Exceptions: Exceptions;\r\n        Graphs: Graphs3;\r\n    }\r\n\r\n    export interface WUQueryGetSummaryStats {\r\n        Target: string;\r\n        QueryId: string;\r\n        FromTime: string;\r\n        ToTime: string;\r\n        IncludeRawStats: boolean;\r\n    }\r\n\r\n    export interface QuerySummaryStats {\r\n        Endpoint: string;\r\n        Status: string;\r\n        StartTime: string;\r\n        EndTime: string;\r\n        CountTotal: int;\r\n        CountFailed: int;\r\n        AverageSlavesReplyLen: int;\r\n        AverageBytesOut: long;\r\n        SizeAvgPeakMemory: long;\r\n        TimeAvgTotalExecuteMinutes: long;\r\n        TimeMinTotalExecuteMinutes: long;\r\n        TimeMaxTotalExecuteMinutes: long;\r\n        Percentile97: long;\r\n        Percentile97Estimate: boolean;\r\n    }\r\n\r\n    export interface StatsList {\r\n        QuerySummaryStats: QuerySummaryStats[];\r\n    }\r\n\r\n    export interface AggregateQueryStatsList {\r\n        QuerySummaryStats: QuerySummaryStats[];\r\n    }\r\n\r\n    export interface QueryStatsRecord {\r\n        StartTime: string;\r\n        ElapsedTimeMs: long;\r\n        MemoryUsed: long;\r\n        BytesOut: long;\r\n        SlavesReplyLen: int;\r\n        Failed: boolean;\r\n    }\r\n\r\n    export interface QueryStatsRecordList {\r\n        QueryStatsRecord: QueryStatsRecord[];\r\n    }\r\n\r\n    export interface QueryStats {\r\n        ID: string;\r\n        AggregateQueryStatsList: AggregateQueryStatsList;\r\n        QueryStatsRecordList: QueryStatsRecordList;\r\n    }\r\n\r\n    export interface QueryStatsList {\r\n        EndpointQueryStats: EndpointQueryStats[];\r\n    }\r\n\r\n    export interface EndpointQueryStats {\r\n        Endpoint: string;\r\n        Status: string;\r\n        QueryStatsList: QueryStatsList;\r\n    }\r\n\r\n    export interface WUQueryGetSummaryStatsResponse {\r\n        Exceptions: Exceptions;\r\n        StatsList: StatsList;\r\n        QueryStatsList: QueryStatsList;\r\n    }\r\n\r\n    export interface Alias {\r\n        Name: string;\r\n    }\r\n\r\n    export interface Aliases2 {\r\n        Alias: Alias[];\r\n    }\r\n\r\n    export interface WUQuerysetAliasAction {\r\n        Action: QuerySetAliasActionTypes;\r\n        QuerySetName: string;\r\n        Aliases: Aliases2;\r\n    }\r\n\r\n    export interface Result2 {\r\n        Name: string;\r\n        Success: boolean;\r\n        Code: int;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Results3 {\r\n        Result: Result2[];\r\n    }\r\n\r\n    export interface WUQuerySetAliasActionResponse {\r\n        Exceptions: Exceptions;\r\n        Action: QuerySetAliasActionTypes;\r\n        QuerySetName: string;\r\n        Results: Results3;\r\n    }\r\n\r\n    export interface WUQuerysetCopyQuery {\r\n        Source: string;\r\n        Target: string;\r\n        Cluster: string;\r\n        DaliServer: string;\r\n        Activate: int;\r\n        Overwrite: boolean;\r\n        DontCopyFiles: boolean;\r\n        Wait: int;\r\n        NoReload: boolean;\r\n        memoryLimit: string;\r\n        TimeLimit: nonNegativeInteger;\r\n        WarnTimeLimit: nonNegativeInteger;\r\n        priority: string;\r\n        Comment: string;\r\n        SourceProcess: string;\r\n        DestName: string;\r\n        AllowForeignFiles: boolean;\r\n        UpdateSuperFiles: boolean;\r\n        UpdateCloneFrom: boolean;\r\n        AppendCluster: boolean;\r\n        IncludeFileErrors: boolean;\r\n        SourceSSL: boolean;\r\n        DfuCopyFiles: boolean;\r\n        DfuQueue: string;\r\n        DfuWait: nonNegativeInteger;\r\n        DfuOverwrite: boolean;\r\n        OnlyCopyFiles: boolean;\r\n        StopIfFilesCopied: boolean;\r\n        DfuPublisherWuid: string;\r\n        RemoteStorage: string;\r\n        KeyCompression: string;\r\n    }\r\n\r\n    export interface WUQuerySetCopyQueryResponse {\r\n        Exceptions: Exceptions;\r\n        QueryId: string;\r\n        FileErrors: FileErrors;\r\n        DfuPublisherWuid: string;\r\n        DfuPublisherState: string;\r\n    }\r\n\r\n    export interface WUQuerysetDetails {\r\n        QuerySetName: string;\r\n        Filter: string;\r\n        ClusterName: string;\r\n        FilterType: WUQuerySetFilterType;\r\n        CheckAllNodes: boolean;\r\n    }\r\n\r\n    export interface QuerysetAliases {\r\n        QuerySetAlias: QuerySetAlias[];\r\n    }\r\n\r\n    export interface ClusterNames {\r\n        Item: string[];\r\n    }\r\n\r\n    export interface WUQuerySetDetailsResponse {\r\n        Exceptions: Exceptions;\r\n        QuerySetName: string;\r\n        QuerysetQueries: QuerysetQueries;\r\n        QuerysetAliases: QuerysetAliases;\r\n        ClusterName: string;\r\n        Filter: string;\r\n        FilterType: WUQuerySetFilterType;\r\n        ClusterNames: ClusterNames;\r\n    }\r\n\r\n    export interface WUQuerysetExport {\r\n        Target: string;\r\n        Compress: boolean;\r\n        ActiveOnly: boolean;\r\n        Protect: boolean;\r\n    }\r\n\r\n    export interface WUQuerysetExportResponse {\r\n        Exceptions: Exceptions;\r\n        Target: string;\r\n        Compressed: boolean;\r\n        Data: base64Binary;\r\n    }\r\n\r\n    export interface WUQuerysetImport {\r\n        Target: string;\r\n        QueryMask: string;\r\n        Replace: boolean;\r\n        ActiveOnly: boolean;\r\n        Activation: QuerysetImportActivation;\r\n        Compressed: boolean;\r\n        Data: base64Binary;\r\n        AllowForeignFiles: boolean;\r\n        DfsServer: string;\r\n        CopyFiles: boolean;\r\n        OverwriteDfs: boolean;\r\n        SourceProcess: string;\r\n        UpdateSuperFiles: boolean;\r\n        UpdateCloneFrom: boolean;\r\n        AppendCluster: boolean;\r\n        IncludeFileErrors: boolean;\r\n        DfuCopyFiles: boolean;\r\n        DfuQueue: string;\r\n        DfuWait: nonNegativeInteger;\r\n        DfuOverwrite: boolean;\r\n        OnlyCopyFiles: boolean;\r\n        StopIfFilesCopied: boolean;\r\n        DfuPublisherWuid: string;\r\n        RemoteStorage: string;\r\n        KeyCompression: string;\r\n    }\r\n\r\n    export interface ImportedQueries {\r\n        QueryId: string[];\r\n    }\r\n\r\n    export interface MissingWuids {\r\n        QueryId: string[];\r\n    }\r\n\r\n    export interface WUQuerysetImportResponse {\r\n        Exceptions: Exceptions;\r\n        Target: string;\r\n        ClearedExisting: boolean;\r\n        Success: boolean;\r\n        ImportedQueries: ImportedQueries;\r\n        ExistingQueries: ExistingQueries;\r\n        MissingWuids: MissingWuids;\r\n        FileErrors: FileErrors;\r\n        DfuPublisherWuid: string;\r\n        DfuPublisherState: string;\r\n    }\r\n\r\n    export interface ClientState {\r\n        Suspended: string;\r\n    }\r\n\r\n    export interface Query3 {\r\n        QueryId: string;\r\n        Activated: boolean;\r\n        SuspendedByUser: boolean;\r\n        ClientState: ClientState;\r\n    }\r\n\r\n    export interface Queries4 {\r\n        Query: Query3[];\r\n    }\r\n\r\n    export interface WUQuerysetQueryAction {\r\n        Action: QuerySetQueryActionTypes;\r\n        QuerySetName: string;\r\n        Queries: Queries4;\r\n    }\r\n\r\n    export interface Result3 {\r\n        QueryId: string;\r\n        WUID: string;\r\n        Suspended: boolean;\r\n        Success: boolean;\r\n        Code: int;\r\n        Message: string;\r\n    }\r\n\r\n    export interface Results4 {\r\n        Result: Result3[];\r\n    }\r\n\r\n    export interface WUQuerySetQueryActionResponse {\r\n        Exceptions: Exceptions;\r\n        Action: QuerySetQueryActionTypes;\r\n        QuerySetName: string;\r\n        Results: Results4;\r\n    }\r\n\r\n    export interface WUQuerysets {\r\n        test: boolean;\r\n    }\r\n\r\n    export interface QuerySet {\r\n        QuerySetName: string;\r\n    }\r\n\r\n    export interface Querysets2 {\r\n        QuerySet: QuerySet[];\r\n    }\r\n\r\n    export interface WUQuerysetsResponse {\r\n        Exceptions: Exceptions;\r\n        Querysets: Querysets2;\r\n    }\r\n\r\n    export interface WURecreateQuery {\r\n        Target: string;\r\n        QueryId: string;\r\n        DebugValues: DebugValues2;\r\n        DestTarget: string;\r\n        Republish: boolean;\r\n        Activate: WUQueryActivationMode;\r\n        NoReload: boolean;\r\n        MemoryLimit: string;\r\n        TimeLimit: nonNegativeInteger;\r\n        WarnTimeLimit: nonNegativeInteger;\r\n        Priority: string;\r\n        Comment: string;\r\n        RemoteDali: string;\r\n        DontCopyFiles: boolean;\r\n        SourceProcess: string;\r\n        AllowForeignFiles: boolean;\r\n        UpdateDfs: boolean;\r\n        UpdateSuperFiles: boolean;\r\n        UpdateCloneFrom: boolean;\r\n        AppendCluster: boolean;\r\n        IncludeFileErrors: boolean;\r\n        Wait: int;\r\n        DfuCopyFiles: boolean;\r\n        DfuQueue: string;\r\n        DfuWait: nonNegativeInteger;\r\n        DfuOverwrite: boolean;\r\n        OnlyCopyFiles: boolean;\r\n        StopIfFilesCopied: boolean;\r\n        DfuPublisherWuid: string;\r\n        RemoteStorage: string;\r\n        KeyCompression: string;\r\n    }\r\n\r\n    export interface WURecreateQueryResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        QuerySet: string;\r\n        QueryName: string;\r\n        QueryId: string;\r\n        MemoryLimit: string;\r\n        TimeLimit: nonNegativeInteger;\r\n        WarnTimeLimit: nonNegativeInteger;\r\n        Priority: string;\r\n        Comment: string;\r\n        ReloadFailed: boolean;\r\n        Suspended: boolean;\r\n        ErrorMessage: string;\r\n        FileErrors: FileErrors;\r\n        DfuPublisherWuid: string;\r\n        DfuPublisherState: string;\r\n    }\r\n\r\n    export interface WUResubmit {\r\n        Wuids: Wuids;\r\n        BlockTillFinishTimer: int;\r\n        ResetWorkflow: boolean;\r\n        CloneWorkunit: boolean;\r\n    }\r\n\r\n    export interface WU {\r\n        WUID: string;\r\n        ParentWUID: string;\r\n    }\r\n\r\n    export interface WUs {\r\n        WU: WU[];\r\n    }\r\n\r\n    export interface WUResubmitResponse {\r\n        Exceptions: Exceptions;\r\n        WUs: WUs;\r\n    }\r\n\r\n    export interface FilterBy {\r\n        NamedValue: NamedValue[];\r\n    }\r\n\r\n    export interface WUResult {\r\n        Wuid: string;\r\n        Sequence: int;\r\n        ResultName: string;\r\n        LogicalName: string;\r\n        Cluster: string;\r\n        SuppressXmlSchema: boolean;\r\n        BypassCachedResult: boolean;\r\n        FilterBy: FilterBy;\r\n        Start: long;\r\n        Count: int;\r\n    }\r\n\r\n    export interface WUResultResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        Sequence: int;\r\n        LogicalName: string;\r\n        Cluster: string;\r\n        Name: string;\r\n        Start: long;\r\n        Requested: int;\r\n        Count: int;\r\n        Total: long;\r\n        Result: string;\r\n    }\r\n\r\n    export interface WUResultBin {\r\n        LogicalName: string;\r\n        Wuid: string;\r\n        ResultName: string;\r\n        Sequence: int;\r\n        Format: string;\r\n        Cluster: string;\r\n        FilterBy: FilterBy;\r\n        Start: long;\r\n        Count: int;\r\n    }\r\n\r\n    export interface WUResultBinResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        Sequence: int;\r\n        Name: string;\r\n        Start: long;\r\n        Count: int;\r\n        Requested: int;\r\n        Total: long;\r\n        Result: base64Binary;\r\n        Format: string;\r\n    }\r\n\r\n    export interface WUResultSummary {\r\n        Wuid: string;\r\n        Sequence: int;\r\n    }\r\n\r\n    export interface Result4 {\r\n        Name: string;\r\n        Sequence: int;\r\n        Value: string;\r\n        Link: string;\r\n        FileName: string;\r\n        IsSupplied: boolean;\r\n        ShowFileContent: boolean;\r\n        Total: long;\r\n        ECLSchemas: ECLSchemas;\r\n        XmlSchema: string;\r\n    }\r\n\r\n    export interface WUResultSummaryResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        Sequence: int;\r\n        Format: int;\r\n        Result: Result4;\r\n    }\r\n\r\n    export interface WUResultView {\r\n        Wuid: string;\r\n        ViewName: string;\r\n        Sequence: int;\r\n        ResultName: string;\r\n    }\r\n\r\n    export interface WUResultViewResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        ViewName: string;\r\n        Result: string;\r\n    }\r\n\r\n    export interface Variables2 {\r\n        NamedValue: NamedValue[];\r\n    }\r\n\r\n    export interface WURun {\r\n        QuerySet: string;\r\n        Query: string;\r\n        Wuid: string;\r\n        CloneWorkunit: boolean;\r\n        Cluster: string;\r\n        Wait: int;\r\n        Input: string;\r\n        NoRootTag: boolean;\r\n        DebugValues: DebugValues2;\r\n        Variables: Variables2;\r\n        ApplicationValues: ApplicationValues;\r\n        ExceptionSeverity: WUExceptionSeverity;\r\n    }\r\n\r\n    export interface WURunResponse {\r\n        Exceptions: Exceptions;\r\n        Wuid: string;\r\n        State: string;\r\n        Results: string;\r\n    }\r\n\r\n    export interface WUSchedule {\r\n        Wuid: string;\r\n        Cluster: string;\r\n        Queue: string;\r\n        Snapshot: string;\r\n        When: dateTime;\r\n        MaxRunTime: int;\r\n    }\r\n\r\n    export interface WUScheduleResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface WUShowScheduled {\r\n        Cluster: string;\r\n        EventName: string;\r\n        PushEventName: string;\r\n        PushEventText: string;\r\n        State: string;\r\n        JobName: string;\r\n        Owner: string;\r\n        EventText: string;\r\n    }\r\n\r\n    export interface ServerInfo {\r\n        Name: string;\r\n        NetAddress: string;\r\n    }\r\n\r\n    export interface Clusters3 {\r\n        ServerInfo: ServerInfo[];\r\n    }\r\n\r\n    export interface ScheduledWU {\r\n        Wuid: string;\r\n        Cluster: string;\r\n        EventName: string;\r\n        EventText: string;\r\n        JobName: string;\r\n        StateID: int;\r\n        State: string;\r\n        Owner: string;\r\n    }\r\n\r\n    export interface Workunits3 {\r\n        ScheduledWU: ScheduledWU[];\r\n    }\r\n\r\n    export interface WUShowScheduledResponse {\r\n        Exceptions: Exceptions;\r\n        ClusterSelected: int;\r\n        EventName: string;\r\n        PushEventName: string;\r\n        PushEventText: string;\r\n        Query: string;\r\n        Clusters: Clusters3;\r\n        Workunits: Workunits3;\r\n    }\r\n\r\n    export interface WUSubmit {\r\n        Wuid: string;\r\n        Cluster: string;\r\n        Queue: string;\r\n        Snapshot: string;\r\n        MaxRunTime: int;\r\n        MaxCost: int;\r\n        BlockTillFinishTimer: int;\r\n        SyntaxCheck: boolean;\r\n        NotifyCluster: boolean;\r\n    }\r\n\r\n    export interface WUSubmitResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface WUSyntaxCheckECL {\r\n        ECL: string;\r\n        ModuleName: string;\r\n        AttributeName: string;\r\n        Queue: string;\r\n        Cluster: string;\r\n        Snapshot: string;\r\n        TimeToWait: int;\r\n        PersistWorkunit: boolean;\r\n        DebugValues: DebugValues;\r\n    }\r\n\r\n    export interface WUSyntaxCheckResponse {\r\n        Exceptions: Exceptions;\r\n        Errors: Errors;\r\n        Message: string;\r\n    }\r\n\r\n    export interface WUUpdate {\r\n        Wuid: string;\r\n        State: int;\r\n        StateOrig: int;\r\n        Jobname: string;\r\n        JobnameOrig: string;\r\n        QueryText: string;\r\n        Action: int;\r\n        Description: string;\r\n        DescriptionOrig: string;\r\n        AddDrilldownFields: boolean;\r\n        ResultLimit: int;\r\n        Protected: boolean;\r\n        ProtectedOrig: boolean;\r\n        PriorityClass: int;\r\n        PriorityLevel: int;\r\n        Scope: string;\r\n        ScopeOrig: string;\r\n        ClusterSelection: string;\r\n        ClusterOrig: string;\r\n        XmlParams: string;\r\n        ThorSlaveIP: string;\r\n        QueryMainDefinition: string;\r\n        DebugValues: DebugValues;\r\n        ApplicationValues: ApplicationValues;\r\n    }\r\n\r\n    export interface WUUpdateQueryEntry {\r\n        QuerySet: string;\r\n        QueryId: string;\r\n        Comment: string;\r\n    }\r\n\r\n    export interface WUUpdateQueryEntryResponse {\r\n        Exceptions: Exceptions;\r\n    }\r\n\r\n    export interface WUWaitCompiled {\r\n        Wuid: string;\r\n        Wait: int;\r\n        ReturnOnWait: boolean;\r\n    }\r\n\r\n    export interface WUWaitResponse {\r\n        Exceptions: Exceptions;\r\n        StateID: int;\r\n    }\r\n\r\n    export interface WUWaitComplete {\r\n        Wuid: string;\r\n        Wait: int;\r\n        ReturnOnWait: boolean;\r\n    }\r\n\r\n}\r\n\r\nexport class WorkunitsServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WsWorkunits\", \"2.04\");\r\n    }\r\n\r\n    GVCAjaxGraph(request: Partial<WsWorkunits.GVCAjaxGraph>): Promise<WsWorkunits.GVCAjaxGraphResponse> {\r\n        return this._connection.send(\"GVCAjaxGraph\", request, \"json\", false, undefined, \"GVCAjaxGraphResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsWorkunits.Ping>): Promise<WsWorkunits.WsWorkunitsPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsWorkunitsPingResponse\");\r\n    }\r\n\r\n    WUAbort(request: Partial<WsWorkunits.WUAbort>): Promise<WsWorkunits.WUAbortResponse> {\r\n        return this._connection.send(\"WUAbort\", request, \"json\", false, undefined, \"WUAbortResponse\");\r\n    }\r\n\r\n    WUAction(request: Partial<WsWorkunits.WUAction>): Promise<WsWorkunits.WUActionResponse> {\r\n        return this._connection.send(\"WUAction\", request, \"json\", false, undefined, \"WUActionResponse\");\r\n    }\r\n\r\n    WUAddLocalFileToWorkunit(request: Partial<WsWorkunits.WUAddLocalFileToWorkunit>): Promise<WsWorkunits.WUAddLocalFileToWorkunitResponse> {\r\n        return this._connection.send(\"WUAddLocalFileToWorkunit\", request, \"json\", false, undefined, \"WUAddLocalFileToWorkunitResponse\");\r\n    }\r\n\r\n    WUAnalyseHotspot(request: Partial<WsWorkunits.WUAnalyseHotspot>): Promise<WsWorkunits.WUAnalyseHotspotResponse> {\r\n        return this._connection.send(\"WUAnalyseHotspot\", request, \"json\", false, undefined, \"WUAnalyseHotspotResponse\");\r\n    }\r\n\r\n    WUCDebug(request: Partial<WsWorkunits.WUCDebug>): Promise<WsWorkunits.WUDebugResponse> {\r\n        return this._connection.send(\"WUCDebug\", request, \"json\", false, undefined, \"WUDebugResponse\");\r\n    }\r\n\r\n    WUCheckFeatures(request: Partial<WsWorkunits.WUCheckFeatures>): Promise<WsWorkunits.WUCheckFeaturesResponse> {\r\n        return this._connection.send(\"WUCheckFeatures\", request, \"json\", false, undefined, \"WUCheckFeaturesResponse\");\r\n    }\r\n\r\n    WUClusterJobQueueLOG(request: Partial<WsWorkunits.WUClusterJobQueueLOG>): Promise<WsWorkunits.WUClusterJobQueueLOGResponse> {\r\n        return this._connection.send(\"WUClusterJobQueueLOG\", request, \"json\", false, undefined, \"WUClusterJobQueueLOGResponse\");\r\n    }\r\n\r\n    WUClusterJobQueueXLS(request: Partial<WsWorkunits.WUClusterJobQueueXLS>): Promise<WsWorkunits.WUClusterJobQueueXLSResponse> {\r\n        return this._connection.send(\"WUClusterJobQueueXLS\", request, \"json\", false, undefined, \"WUClusterJobQueueXLSResponse\");\r\n    }\r\n\r\n    WUClusterJobSummaryXLS(request: Partial<WsWorkunits.WUClusterJobSummaryXLS>): Promise<WsWorkunits.WUClusterJobSummaryXLSResponse> {\r\n        return this._connection.send(\"WUClusterJobSummaryXLS\", request, \"json\", false, undefined, \"WUClusterJobSummaryXLSResponse\");\r\n    }\r\n\r\n    WUClusterJobXLS(request: Partial<WsWorkunits.WUClusterJobXLS>): Promise<WsWorkunits.WUClusterJobXLSResponse> {\r\n        return this._connection.send(\"WUClusterJobXLS\", request, \"json\", false, undefined, \"WUClusterJobXLSResponse\");\r\n    }\r\n\r\n    WUCompileECL(request: Partial<WsWorkunits.WUCompileECL>): Promise<WsWorkunits.WUCompileECLResponse> {\r\n        return this._connection.send(\"WUCompileECL\", request, \"json\", false, undefined, \"WUCompileECLResponse\");\r\n    }\r\n\r\n    WUCopyLogicalFiles(request: Partial<WsWorkunits.WUCopyLogicalFiles>): Promise<WsWorkunits.WUCopyLogicalFilesResponse> {\r\n        return this._connection.send(\"WUCopyLogicalFiles\", request, \"json\", false, undefined, \"WUCopyLogicalFilesResponse\");\r\n    }\r\n\r\n    WUCopyQuerySet(request: Partial<WsWorkunits.WUCopyQuerySet>): Promise<WsWorkunits.WUCopyQuerySetResponse> {\r\n        return this._connection.send(\"WUCopyQuerySet\", request, \"json\", false, undefined, \"WUCopyQuerySetResponse\");\r\n    }\r\n\r\n    WUCreate(request: Partial<WsWorkunits.WUCreate>): Promise<WsWorkunits.WUCreateResponse> {\r\n        return this._connection.send(\"WUCreate\", request, \"json\", false, undefined, \"WUCreateResponse\");\r\n    }\r\n\r\n    WUCreateAndUpdate(request: Partial<WsWorkunits.WUCreateAndUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\r\n        return this._connection.send(\"WUCreateAndUpdate\", request, \"json\", false, undefined, \"WUUpdateResponse\");\r\n    }\r\n\r\n    WUCreateZAPInfo(request: Partial<WsWorkunits.WUCreateZAPInfo>): Promise<WsWorkunits.WUCreateZAPInfoResponse> {\r\n        return this._connection.send(\"WUCreateZAPInfo\", request, \"json\", false, undefined, \"WUCreateZAPInfoResponse\");\r\n    }\r\n\r\n    WUDelete(request: Partial<WsWorkunits.WUDelete>): Promise<WsWorkunits.WUDeleteResponse> {\r\n        return this._connection.send(\"WUDelete\", request, \"json\", false, undefined, \"WUDeleteResponse\");\r\n    }\r\n\r\n    WUDeployWorkunit(request: Partial<WsWorkunits.WUDeployWorkunit>): Promise<WsWorkunits.WUDeployWorkunitResponse> {\r\n        return this._connection.send(\"WUDeployWorkunit\", request, \"json\", false, undefined, \"WUDeployWorkunitResponse\");\r\n    }\r\n\r\n    WUDetails(request: Partial<WsWorkunits.WUDetails>): Promise<WsWorkunits.WUDetailsResponse> {\r\n        return this._connection.send(\"WUDetails\", request, \"json\", false, undefined, \"WUDetailsResponse\");\r\n    }\r\n\r\n    WUDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta>): Promise<WsWorkunits.WUDetailsMetaResponse> {\r\n        return this._connection.send(\"WUDetailsMeta\", request, \"json\", false, undefined, \"WUDetailsMetaResponse\");\r\n    }\r\n\r\n    WUEclDefinitionAction(request: Partial<WsWorkunits.WUEclDefinitionAction>): Promise<WsWorkunits.WUEclDefinitionActionResponse> {\r\n        return this._connection.send(\"WUEclDefinitionAction\", request, \"json\", false, undefined, \"WUEclDefinitionActionResponse\");\r\n    }\r\n\r\n    WUExport(request: Partial<WsWorkunits.WUExport>): Promise<WsWorkunits.WUExportResponse> {\r\n        return this._connection.send(\"WUExport\", request, \"json\", false, undefined, \"WUExportResponse\");\r\n    }\r\n\r\n    WUFile(request: Partial<WsWorkunits.WUFile>): Promise<WsWorkunits.WULogFileResponse> {\r\n        return this._connection.send(\"WUFile\", request, \"json\", false, undefined, \"WULogFileResponse\");\r\n    }\r\n\r\n    WUFullResult(request: Partial<WsWorkunits.WUFullResult>): Promise<WsWorkunits.WUFullResultResponse> {\r\n        return this._connection.send(\"WUFullResult\", request, \"json\", false, undefined, \"WUFullResultResponse\");\r\n    }\r\n\r\n    WUGVCGraphInfo(request: Partial<WsWorkunits.WUGVCGraphInfo>): Promise<WsWorkunits.WUGVCGraphInfoResponse> {\r\n        return this._connection.send(\"WUGVCGraphInfo\", request, \"json\", false, undefined, \"WUGVCGraphInfoResponse\");\r\n    }\r\n\r\n    WUGetArchiveFile(request: Partial<WsWorkunits.WUGetArchiveFile>): Promise<WsWorkunits.WUGetArchiveFileResponse> {\r\n        return this._connection.send(\"WUGetArchiveFile\", request, \"json\", false, undefined, \"WUGetArchiveFileResponse\");\r\n    }\r\n\r\n    WUGetDependancyTrees(request: Partial<WsWorkunits.WUGetDependancyTrees>): Promise<WsWorkunits.WUGetDependancyTreesResponse> {\r\n        return this._connection.send(\"WUGetDependancyTrees\", request, \"json\", false, undefined, \"WUGetDependancyTreesResponse\");\r\n    }\r\n\r\n    WUGetGraph(request: Partial<WsWorkunits.WUGetGraph>): Promise<WsWorkunits.WUGetGraphResponse> {\r\n        return this._connection.send(\"WUGetGraph\", request, \"json\", false, undefined, \"WUGetGraphResponse\");\r\n    }\r\n\r\n    WUGetGraphNameAndTypes(request: Partial<WsWorkunits.WUGetGraphNameAndTypes>): Promise<WsWorkunits.WUGetGraphNameAndTypesResponse> {\r\n        return this._connection.send(\"WUGetGraphNameAndTypes\", request, \"json\", false, undefined, \"WUGetGraphNameAndTypesResponse\");\r\n    }\r\n\r\n    WUGetNumFileToCopy(request: Partial<WsWorkunits.WUGetNumFileToCopy>): Promise<WsWorkunits.WUGetNumFileToCopyResponse> {\r\n        return this._connection.send(\"WUGetNumFileToCopy\", request, \"json\", false, undefined, \"WUGetNumFileToCopyResponse\");\r\n    }\r\n\r\n    WUGetPlugins(request: Partial<WsWorkunits.WUGetPlugins>): Promise<WsWorkunits.WUGetPluginsResponse> {\r\n        return this._connection.send(\"WUGetPlugins\", request, \"json\", false, undefined, \"WUGetPluginsResponse\");\r\n    }\r\n\r\n    WUGetStats(request: Partial<WsWorkunits.WUGetStats>): Promise<WsWorkunits.WUGetStatsResponse> {\r\n        return this._connection.send(\"WUGetStats\", request, \"json\", false, undefined, \"WUGetStatsResponse\");\r\n    }\r\n\r\n    WUGetThorJobList(request: Partial<WsWorkunits.WUGetThorJobList>): Promise<WsWorkunits.WUGetThorJobListResponse> {\r\n        return this._connection.send(\"WUGetThorJobList\", request, \"json\", false, undefined, \"WUGetThorJobListResponse\");\r\n    }\r\n\r\n    WUGetThorJobQueue(request: Partial<WsWorkunits.WUGetThorJobQueue>): Promise<WsWorkunits.WUGetThorJobQueueResponse> {\r\n        return this._connection.send(\"WUGetThorJobQueue\", request, \"json\", false, undefined, \"WUGetThorJobQueueResponse\");\r\n    }\r\n\r\n    WUGetZAPInfo(request: Partial<WsWorkunits.WUGetZAPInfo>): Promise<WsWorkunits.WUGetZAPInfoResponse> {\r\n        return this._connection.send(\"WUGetZAPInfo\", request, \"json\", false, undefined, \"WUGetZAPInfoResponse\");\r\n    }\r\n\r\n    WUGraphInfo(request: Partial<WsWorkunits.WUGraphInfo>): Promise<WsWorkunits.WUGraphInfoResponse> {\r\n        return this._connection.send(\"WUGraphInfo\", request, \"json\", false, undefined, \"WUGraphInfoResponse\");\r\n    }\r\n\r\n    WUGraphTiming(request: Partial<WsWorkunits.WUGraphTiming>): Promise<WsWorkunits.WUGraphTimingResponse> {\r\n        return this._connection.send(\"WUGraphTiming\", request, \"json\", false, undefined, \"WUGraphTimingResponse\");\r\n    }\r\n\r\n    WUInfo(request: Partial<WsWorkunits.WUInfo>): Promise<WsWorkunits.WUInfoResponse> {\r\n        return this._connection.send(\"WUInfo\", request, \"json\", false, undefined, \"WUInfoResponse\");\r\n    }\r\n\r\n    WUInfoDetails(request: Partial<WsWorkunits.WUInfoDetails>): Promise<WsWorkunits.WUInfoResponse> {\r\n        return this._connection.send(\"WUInfoDetails\", request, \"json\", false, undefined, \"WUInfoResponse\");\r\n    }\r\n\r\n    WUJobList(request: Partial<WsWorkunits.WUJobList>): Promise<WsWorkunits.WUJobListResponse> {\r\n        return this._connection.send(\"WUJobList\", request, \"json\", false, undefined, \"WUJobListResponse\");\r\n    }\r\n\r\n    WULightWeightQuery(request: Partial<WsWorkunits.WULightWeightQuery>): Promise<WsWorkunits.WULightWeightQueryResponse> {\r\n        return this._connection.send(\"WULightWeightQuery\", request, \"json\", false, undefined, \"WULightWeightQueryResponse\");\r\n    }\r\n\r\n    WUListArchiveFiles(request: Partial<WsWorkunits.WUListArchiveFiles>): Promise<WsWorkunits.WUListArchiveFilesResponse> {\r\n        return this._connection.send(\"WUListArchiveFiles\", request, \"json\", false, undefined, \"WUListArchiveFilesResponse\");\r\n    }\r\n\r\n    WUListLocalFileRequired(request: Partial<WsWorkunits.WUListLocalFileRequired>): Promise<WsWorkunits.WUListLocalFileRequiredResponse> {\r\n        return this._connection.send(\"WUListLocalFileRequired\", request, \"json\", false, undefined, \"WUListLocalFileRequiredResponse\");\r\n    }\r\n\r\n    WUListQueries(request: Partial<WsWorkunits.WUListQueries>): Promise<WsWorkunits.WUListQueriesResponse> {\r\n        return this._connection.send(\"WUListQueries\", request, \"json\", false, undefined, \"WUListQueriesResponse\");\r\n    }\r\n\r\n    WUListQueriesUsingFile(request: Partial<WsWorkunits.WUListQueriesUsingFile>): Promise<WsWorkunits.WUListQueriesUsingFileResponse> {\r\n        return this._connection.send(\"WUListQueriesUsingFile\", request, \"json\", false, undefined, \"WUListQueriesUsingFileResponse\");\r\n    }\r\n\r\n    WUMultiQuerysetDetails(request: Partial<WsWorkunits.WUMultiQuerysetDetails>): Promise<WsWorkunits.WUMultiQuerySetDetailsResponse> {\r\n        return this._connection.send(\"WUMultiQuerysetDetails\", request, \"json\", false, undefined, \"WUMultiQuerySetDetailsResponse\");\r\n    }\r\n\r\n    WUProcessGraph(request: Partial<WsWorkunits.WUProcessGraph>): Promise<WsWorkunits.WUProcessGraphResponse> {\r\n        return this._connection.send(\"WUProcessGraph\", request, \"json\", false, undefined, \"WUProcessGraphResponse\");\r\n    }\r\n\r\n    WUProtect(request: Partial<WsWorkunits.WUProtect>): Promise<WsWorkunits.WUProtectResponse> {\r\n        return this._connection.send(\"WUProtect\", request, \"json\", false, undefined, \"WUProtectResponse\");\r\n    }\r\n\r\n    WUPublishWorkunit(request: Partial<WsWorkunits.WUPublishWorkunit>): Promise<WsWorkunits.WUPublishWorkunitResponse> {\r\n        return this._connection.send(\"WUPublishWorkunit\", request, \"json\", false, undefined, \"WUPublishWorkunitResponse\");\r\n    }\r\n\r\n    WUPushEvent(request: Partial<WsWorkunits.WUPushEvent>): Promise<WsWorkunits.WUPushEventResponse> {\r\n        return this._connection.send(\"WUPushEvent\", request, \"json\", false, undefined, \"WUPushEventResponse\");\r\n    }\r\n\r\n    WUQuery(request: Partial<WsWorkunits.WUQuery>): Promise<WsWorkunits.WUQueryResponse> {\r\n        return this._connection.send(\"WUQuery\", request, \"json\", false, undefined, \"WUQueryResponse\");\r\n    }\r\n\r\n    WUQueryConfig(request: Partial<WsWorkunits.WUQueryConfig>): Promise<WsWorkunits.WUQueryConfigResponse> {\r\n        return this._connection.send(\"WUQueryConfig\", request, \"json\", false, undefined, \"WUQueryConfigResponse\");\r\n    }\r\n\r\n    WUQueryDetails(request: Partial<WsWorkunits.WUQueryDetails>): Promise<WsWorkunits.WUQueryDetailsResponse> {\r\n        return this._connection.send(\"WUQueryDetails\", request, \"json\", false, undefined, \"WUQueryDetailsResponse\");\r\n    }\r\n\r\n    WUQueryDetailsLightWeight(request: Partial<WsWorkunits.WUQueryDetailsLightWeight>): Promise<WsWorkunits.WUQueryDetailsResponse> {\r\n        return this._connection.send(\"WUQueryDetailsLightWeight\", request, \"json\", false, undefined, \"WUQueryDetailsResponse\");\r\n    }\r\n\r\n    WUQueryFiles(request: Partial<WsWorkunits.WUQueryFiles>): Promise<WsWorkunits.WUQueryFilesResponse> {\r\n        return this._connection.send(\"WUQueryFiles\", request, \"json\", false, undefined, \"WUQueryFilesResponse\");\r\n    }\r\n\r\n    WUQueryGetGraph(request: Partial<WsWorkunits.WUQueryGetGraph>): Promise<WsWorkunits.WUQueryGetGraphResponse> {\r\n        return this._connection.send(\"WUQueryGetGraph\", request, \"json\", false, undefined, \"WUQueryGetGraphResponse\");\r\n    }\r\n\r\n    WUQueryGetSummaryStats(request: Partial<WsWorkunits.WUQueryGetSummaryStats>): Promise<WsWorkunits.WUQueryGetSummaryStatsResponse> {\r\n        return this._connection.send(\"WUQueryGetSummaryStats\", request, \"json\", false, undefined, \"WUQueryGetSummaryStatsResponse\");\r\n    }\r\n\r\n    WUQuerysetAliasAction(request: Partial<WsWorkunits.WUQuerysetAliasAction>): Promise<WsWorkunits.WUQuerySetAliasActionResponse> {\r\n        return this._connection.send(\"WUQuerysetAliasAction\", request, \"json\", false, undefined, \"WUQuerySetAliasActionResponse\");\r\n    }\r\n\r\n    WUQuerysetCopyQuery(request: Partial<WsWorkunits.WUQuerysetCopyQuery>): Promise<WsWorkunits.WUQuerySetCopyQueryResponse> {\r\n        return this._connection.send(\"WUQuerysetCopyQuery\", request, \"json\", false, undefined, \"WUQuerySetCopyQueryResponse\");\r\n    }\r\n\r\n    WUQuerysetDetails(request: Partial<WsWorkunits.WUQuerysetDetails>): Promise<WsWorkunits.WUQuerySetDetailsResponse> {\r\n        return this._connection.send(\"WUQuerysetDetails\", request, \"json\", false, undefined, \"WUQuerySetDetailsResponse\");\r\n    }\r\n\r\n    WUQuerysetExport(request: Partial<WsWorkunits.WUQuerysetExport>): Promise<WsWorkunits.WUQuerysetExportResponse> {\r\n        return this._connection.send(\"WUQuerysetExport\", request, \"json\", false, undefined, \"WUQuerysetExportResponse\");\r\n    }\r\n\r\n    WUQuerysetImport(request: Partial<WsWorkunits.WUQuerysetImport>): Promise<WsWorkunits.WUQuerysetImportResponse> {\r\n        return this._connection.send(\"WUQuerysetImport\", request, \"json\", false, undefined, \"WUQuerysetImportResponse\");\r\n    }\r\n\r\n    WUQuerysetQueryAction(request: Partial<WsWorkunits.WUQuerysetQueryAction>): Promise<WsWorkunits.WUQuerySetQueryActionResponse> {\r\n        return this._connection.send(\"WUQuerysetQueryAction\", request, \"json\", false, undefined, \"WUQuerySetQueryActionResponse\");\r\n    }\r\n\r\n    WUQuerysets(request: Partial<WsWorkunits.WUQuerysets>): Promise<WsWorkunits.WUQuerysetsResponse> {\r\n        return this._connection.send(\"WUQuerysets\", request, \"json\", false, undefined, \"WUQuerysetsResponse\");\r\n    }\r\n\r\n    WURecreateQuery(request: Partial<WsWorkunits.WURecreateQuery>): Promise<WsWorkunits.WURecreateQueryResponse> {\r\n        return this._connection.send(\"WURecreateQuery\", request, \"json\", false, undefined, \"WURecreateQueryResponse\");\r\n    }\r\n\r\n    WUResubmit(request: Partial<WsWorkunits.WUResubmit>): Promise<WsWorkunits.WUResubmitResponse> {\r\n        return this._connection.send(\"WUResubmit\", request, \"json\", false, undefined, \"WUResubmitResponse\");\r\n    }\r\n\r\n    WUResult(request: Partial<WsWorkunits.WUResult>): Promise<WsWorkunits.WUResultResponse> {\r\n        return this._connection.send(\"WUResult\", request, \"json\", false, undefined, \"WUResultResponse\");\r\n    }\r\n\r\n    WUResultBin(request: Partial<WsWorkunits.WUResultBin>): Promise<WsWorkunits.WUResultBinResponse> {\r\n        return this._connection.send(\"WUResultBin\", request, \"json\", false, undefined, \"WUResultBinResponse\");\r\n    }\r\n\r\n    WUResultSummary(request: Partial<WsWorkunits.WUResultSummary>): Promise<WsWorkunits.WUResultSummaryResponse> {\r\n        return this._connection.send(\"WUResultSummary\", request, \"json\", false, undefined, \"WUResultSummaryResponse\");\r\n    }\r\n\r\n    WUResultView(request: Partial<WsWorkunits.WUResultView>): Promise<WsWorkunits.WUResultViewResponse> {\r\n        return this._connection.send(\"WUResultView\", request, \"json\", false, undefined, \"WUResultViewResponse\");\r\n    }\r\n\r\n    WURun(request: Partial<WsWorkunits.WURun>): Promise<WsWorkunits.WURunResponse> {\r\n        return this._connection.send(\"WURun\", request, \"json\", false, undefined, \"WURunResponse\");\r\n    }\r\n\r\n    WUSchedule(request: Partial<WsWorkunits.WUSchedule>): Promise<WsWorkunits.WUScheduleResponse> {\r\n        return this._connection.send(\"WUSchedule\", request, \"json\", false, undefined, \"WUScheduleResponse\");\r\n    }\r\n\r\n    WUShowScheduled(request: Partial<WsWorkunits.WUShowScheduled>): Promise<WsWorkunits.WUShowScheduledResponse> {\r\n        return this._connection.send(\"WUShowScheduled\", request, \"json\", false, undefined, \"WUShowScheduledResponse\");\r\n    }\r\n\r\n    WUSubmit(request: Partial<WsWorkunits.WUSubmit>): Promise<WsWorkunits.WUSubmitResponse> {\r\n        return this._connection.send(\"WUSubmit\", request, \"json\", false, undefined, \"WUSubmitResponse\");\r\n    }\r\n\r\n    WUSyntaxCheckECL(request: Partial<WsWorkunits.WUSyntaxCheckECL>): Promise<WsWorkunits.WUSyntaxCheckResponse> {\r\n        return this._connection.send(\"WUSyntaxCheckECL\", request, \"json\", false, undefined, \"WUSyntaxCheckResponse\");\r\n    }\r\n\r\n    WUUpdate(request: Partial<WsWorkunits.WUUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\r\n        return this._connection.send(\"WUUpdate\", request, \"json\", false, undefined, \"WUUpdateResponse\");\r\n    }\r\n\r\n    WUUpdateQueryEntry(request: Partial<WsWorkunits.WUUpdateQueryEntry>): Promise<WsWorkunits.WUUpdateQueryEntryResponse> {\r\n        return this._connection.send(\"WUUpdateQueryEntry\", request, \"json\", false, undefined, \"WUUpdateQueryEntryResponse\");\r\n    }\r\n\r\n    WUWaitCompiled(request: Partial<WsWorkunits.WUWaitCompiled>): Promise<WsWorkunits.WUWaitResponse> {\r\n        return this._connection.send(\"WUWaitCompiled\", request, \"json\", false, undefined, \"WUWaitResponse\");\r\n    }\r\n\r\n    WUWaitComplete(request: Partial<WsWorkunits.WUWaitComplete>): Promise<WsWorkunits.WUWaitResponse> {\r\n        return this._connection.send(\"WUWaitComplete\", request, \"json\", false, undefined, \"WUWaitResponse\");\r\n    }\r\n\r\n}\r\n","import { deepMixin, xml2json, XMLNode } from \"@hpcc-js/util\";\r\nimport { WsWorkunits, WorkunitsServiceBase } from \"./wsdl/WsWorkunits/v2.04/WsWorkunits.ts\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\n\r\nexport {\r\n    WsWorkunits\r\n};\r\n\r\nexport enum WUStateID {\r\n    Unknown = 0,\r\n    Compiled,\r\n    Running,\r\n    Completed,\r\n    Failed,\r\n    Archived,\r\n    Aborting,\r\n    Aborted,\r\n    Blocked,\r\n    Submitted,\r\n    Scheduled,\r\n    Compiling,\r\n    Wait,\r\n    UploadingFiled,\r\n    DebugPaused,\r\n    DebugRunning,\r\n    Paused,\r\n    LAST,\r\n    NotFound = 999\r\n}\r\n\r\nexport namespace WUUpdate {\r\n    export enum Action {\r\n        Unknown = 0,\r\n        Compile,\r\n        Check,\r\n        Run,\r\n        ExecuteExisting,\r\n        Pause,\r\n        PauseNow,\r\n        Resume,\r\n        Debug,\r\n        __size\r\n    }\r\n}\r\nexport function isECLResult(_: any): _ is WsWorkunits.ECLResult {\r\n    return typeof (_ as WsWorkunits.ECLResult).Name === \"string\";\r\n}\r\n\r\nexport function isWUQueryECLWorkunit(_: WsWorkunits.ECLWorkunit | WsWorkunits.Workunit): _ is WsWorkunits.ECLWorkunit {\r\n    return (_ as WsWorkunits.ECLWorkunit).TotalClusterTime !== undefined;\r\n}\r\n\r\nexport function isWUInfoWorkunit(_: WsWorkunits.ECLWorkunit | WsWorkunits.Workunit): _ is WsWorkunits.Workunit {\r\n    return (_ as WsWorkunits.Workunit).StateEx !== undefined;\r\n}\r\nexport class WorkunitsService extends WorkunitsServiceBase {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection);\r\n    }\r\n\r\n    Ping(): Promise<WsWorkunits.WsWorkunitsPingResponse> {\r\n        return this._connection.send(\"Ping\", {}, \"json\", false, undefined, \"WsWorkunitsPingResponse\").then(() => {\r\n            return { result: true };\r\n        });\r\n    }\r\n\r\n    WUQuery(request: Partial<WsWorkunits.WUQuery> = {}, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryResponse> {\r\n        return this._connection.send(\"WUQuery\", request, \"json\", false, abortSignal).then((response) => {\r\n            return deepMixin({ Workunits: { ECLWorkunit: [] } }, response);\r\n        });\r\n    }\r\n\r\n    WUInfo(_request: Partial<WsWorkunits.WUInfo>): Promise<WsWorkunits.WUInfoResponse> {\r\n        const request: Partial<WsWorkunits.WUInfo> = {\r\n            Wuid: \"\",\r\n            TruncateEclTo64k: true,\r\n            IncludeExceptions: false,\r\n            IncludeGraphs: false,\r\n            IncludeSourceFiles: false,\r\n            IncludeResults: false,\r\n            IncludeResultsViewNames: false,\r\n            IncludeVariables: false,\r\n            IncludeTimers: false,\r\n            IncludeDebugValues: false,\r\n            IncludeApplicationValues: false,\r\n            IncludeWorkflows: false,\r\n            IncludeXmlSchemas: false,\r\n            IncludeResourceURLs: false,\r\n            IncludeECL: false,\r\n            IncludeHelpers: false,\r\n            IncludeAllowedClusters: false,\r\n            IncludeTotalClusterTime: false,\r\n            IncludeServiceNames: false,\r\n            SuppressResultSchemas: true,\r\n            ..._request\r\n        };\r\n        return super.WUInfo(request);\r\n    }\r\n\r\n    WUCreate(): Promise<WsWorkunits.WUCreateResponse> {\r\n        return super.WUCreate({});\r\n    }\r\n\r\n    WUUpdate(request: Partial<WsWorkunits.WUUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\r\n        return this._connection.send(\"WUUpdate\", request, \"json\", true);\r\n    }\r\n\r\n    WUResubmit(request: WsWorkunits.WUResubmit): Promise<WsWorkunits.WUResubmitResponse> {\r\n        this._connection.toESPStringArray(request, \"Wuids\");\r\n        return super.WUResubmit(request);\r\n    }\r\n\r\n    WUAction(request: Partial<WsWorkunits.WUAction>): Promise<WsWorkunits.WUActionResponse> {\r\n        (request as any).ActionType = request.WUActionType; //  v5.x compatibility\r\n        return super.WUAction(request);\r\n    }\r\n\r\n    WUResult(request: Partial<WsWorkunits.WUResult>, abortSignal?: AbortSignal): Promise<WsWorkunits.WUResultResponse> {\r\n        return this._connection.send(\"WUResult\", request, \"json\", false, abortSignal);\r\n    }\r\n\r\n    WUFileEx(request: Partial<WsWorkunits.WUFile>): Promise<string> {\r\n        return this._connection.send(\"WUFile\", request, \"text\");\r\n    }\r\n\r\n    private _WUDetailsMetaPromise: Promise<WsWorkunits.WUDetailsMetaResponse>;\r\n    WUDetailsMeta(request: WsWorkunits.WUDetailsMeta): Promise<WsWorkunits.WUDetailsMetaResponse> {\r\n        if (!this._WUDetailsMetaPromise) {\r\n            this._WUDetailsMetaPromise = super.WUDetailsMeta(request);\r\n        }\r\n        return this._WUDetailsMetaPromise;\r\n    }\r\n\r\n    WUCDebugEx(request: WsWorkunits.WUCDebug): Promise<XMLNode | null> {\r\n        return this._connection.send(\"WUCDebug\", request, undefined, undefined, undefined, \"WUDebug\").then((response) => {\r\n            const retVal = xml2json(response.Result);\r\n            const children = retVal.children();\r\n            if (children.length) {\r\n                return children[0];\r\n            }\r\n            return null;\r\n        });\r\n    }\r\n}\r\n\r\nexport class WorkunitsServiceEx extends WorkunitsServiceBase {\r\n    WUPublishWorkunitEx(request: Partial<WsWorkunits.WUPublishWorkunit>): Promise<WsWorkunits.WUPublishWorkunitResponse> {\r\n        return this._connection.send(\"WUPublishWorkunit\", request);\r\n    }\r\n}\r\n","export default function(x) {\n  return Math.abs(x = Math.round(x)) >= 1e21\n      ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n      : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n  var i, coefficient = x.slice(0, i);\n\n  // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n  // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n  return [\n    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n    +x.slice(i + 1)\n  ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n  return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n  return function(value, width) {\n    var i = value.length,\n        t = [],\n        j = 0,\n        g = grouping[0],\n        length = 0;\n\n    while (i > 0 && g > 0) {\n      if (length + g + 1 > width) g = Math.max(1, width - length);\n      t.push(value.substring(i -= g, i + g));\n      if ((length += g + 1) > width) break;\n      g = grouping[j = (j + 1) % grouping.length];\n    }\n\n    return t.reverse().join(thousands);\n  };\n}\n","export default function(numerals) {\n  return function(value) {\n    return value.replace(/[0-9]/g, function(i) {\n      return numerals[+i];\n    });\n  };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n  if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n  var match;\n  return new FormatSpecifier({\n    fill: match[1],\n    align: match[2],\n    sign: match[3],\n    symbol: match[4],\n    zero: match[5],\n    width: match[6],\n    comma: match[7],\n    precision: match[8] && match[8].slice(1),\n    trim: match[9],\n    type: match[10]\n  });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n  this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n  this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n  this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n  this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n  this.zero = !!specifier.zero;\n  this.width = specifier.width === undefined ? undefined : +specifier.width;\n  this.comma = !!specifier.comma;\n  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n  this.trim = !!specifier.trim;\n  this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n  return this.fill\n      + this.align\n      + this.sign\n      + this.symbol\n      + (this.zero ? \"0\" : \"\")\n      + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n      + (this.comma ? \",\" : \"\")\n      + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n      + (this.trim ? \"~\" : \"\")\n      + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n  var d = formatDecimalParts(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1],\n      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n      n = coefficient.length;\n  return i === n ? coefficient\n      : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n      : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n      : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n    switch (s[i]) {\n      case \".\": i0 = i1 = i; break;\n      case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n    }\n  }\n  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n  var d = formatDecimalParts(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1];\n  return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n      : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n  \"%\": function(x, p) { return (x * 100).toFixed(p); },\n  \"b\": function(x) { return Math.round(x).toString(2); },\n  \"c\": function(x) { return x + \"\"; },\n  \"d\": formatDecimal,\n  \"e\": function(x, p) { return x.toExponential(p); },\n  \"f\": function(x, p) { return x.toFixed(p); },\n  \"g\": function(x, p) { return x.toPrecision(p); },\n  \"o\": function(x) { return Math.round(x).toString(8); },\n  \"p\": function(x, p) { return formatRounded(x * 100, p); },\n  \"r\": formatRounded,\n  \"s\": formatPrefixAuto,\n  \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n  \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n  return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n    prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n  var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n      currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n      currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n      decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n      numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n      percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n      minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n      nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n  function newFormat(specifier) {\n    specifier = formatSpecifier(specifier);\n\n    var fill = specifier.fill,\n        align = specifier.align,\n        sign = specifier.sign,\n        symbol = specifier.symbol,\n        zero = specifier.zero,\n        width = specifier.width,\n        comma = specifier.comma,\n        precision = specifier.precision,\n        trim = specifier.trim,\n        type = specifier.type;\n\n    // The \"n\" type is an alias for \",g\".\n    if (type === \"n\") comma = true, type = \"g\";\n\n    // The \"\" type, and any invalid type, is an alias for \".12~g\".\n    else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n    // If zero fill is specified, padding goes after sign and before digits.\n    if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n    // Compute the prefix and suffix.\n    // For SI-prefix, the suffix is lazily computed.\n    var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n        suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n    // What format function should we use?\n    // Is this an integer type?\n    // Can this type generate exponential notation?\n    var formatType = formatTypes[type],\n        maybeSuffix = /[defgprs%]/.test(type);\n\n    // Set the default precision if not specified,\n    // or clamp the specified precision to the supported range.\n    // For significant precision, it must be in [1, 21].\n    // For fixed precision, it must be in [0, 20].\n    precision = precision === undefined ? 6\n        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n        : Math.max(0, Math.min(20, precision));\n\n    function format(value) {\n      var valuePrefix = prefix,\n          valueSuffix = suffix,\n          i, n, c;\n\n      if (type === \"c\") {\n        valueSuffix = formatType(value) + valueSuffix;\n        value = \"\";\n      } else {\n        value = +value;\n\n        // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n        var valueNegative = value < 0 || 1 / value < 0;\n\n        // Perform the initial formatting.\n        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n        // Trim insignificant zeros.\n        if (trim) value = formatTrim(value);\n\n        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n        if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n        // Compute the prefix and suffix.\n        valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n        valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n        // Break the formatted value into the integer “value” part that can be\n        // grouped, and fractional or exponential “suffix” part that is not.\n        if (maybeSuffix) {\n          i = -1, n = value.length;\n          while (++i < n) {\n            if (c = value.charCodeAt(i), 48 > c || c > 57) {\n              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n              value = value.slice(0, i);\n              break;\n            }\n          }\n        }\n      }\n\n      // If the fill character is not \"0\", grouping is applied before padding.\n      if (comma && !zero) value = group(value, Infinity);\n\n      // Compute the padding.\n      var length = valuePrefix.length + value.length + valueSuffix.length,\n          padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n      // If the fill character is \"0\", grouping is applied after padding.\n      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n      // Reconstruct the final output based on the desired alignment.\n      switch (align) {\n        case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n        case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n        case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n        default: value = padding + valuePrefix + value + valueSuffix; break;\n      }\n\n      return numerals(value);\n    }\n\n    format.toString = function() {\n      return specifier + \"\";\n    };\n\n    return format;\n  }\n\n  function formatPrefix(specifier, value) {\n    var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n        e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n        k = Math.pow(10, -e),\n        prefix = prefixes[8 + e / 3];\n    return function(value) {\n      return f(k * value) + prefix;\n    };\n  }\n\n  return {\n    format: newFormat,\n    formatPrefix: formatPrefix\n  };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n  decimal: \".\",\n  thousands: \",\",\n  grouping: [3],\n  currency: [\"$\", \"\"],\n  minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  format = locale.format;\n  formatPrefix = locale.formatPrefix;\n  return locale;\n}\n","import { Cache, Edge, Graph, StateObject, StringAnyMap, Subgraph, Vertex, XMLNode } from \"@hpcc-js/util\";\r\nimport { WsWorkunits } from \"../services/wsWorkunits.ts\";\r\nimport { BaseScope } from \"./scope.ts\";\r\nimport { Timer } from \"./timer.ts\";\r\nimport { Workunit } from \"./workunit.ts\";\r\n\r\nexport interface ECLGraphEx extends WsWorkunits.ECLGraph {\r\n    Time: number;\r\n}\r\n\r\nexport class ECLGraph extends StateObject<ECLGraphEx, ECLGraphEx> implements ECLGraphEx {\r\n    protected wu: Workunit;\r\n\r\n    get properties(): ECLGraphEx { return this.get(); }\r\n    get Name(): string { return this.get(\"Name\"); }\r\n    get Label(): string { return this.get(\"Label\"); }\r\n    get Type(): string { return this.get(\"Type\"); }\r\n    get Complete(): boolean { return this.get(\"Complete\"); }\r\n    get WhenStarted(): string { return this.get(\"WhenStarted\"); }\r\n    get WhenFinished(): string { return this.get(\"WhenFinished\"); }\r\n    get Time(): number { return this.get(\"Time\"); }\r\n    get Running(): boolean { return this.get(\"Running\"); }\r\n    get RunningId(): number { return this.get(\"RunningId\"); }\r\n    get Failed(): boolean { return this.get(\"Failed\"); }\r\n\r\n    constructor(wu: Workunit, eclGraph: WsWorkunits.ECLGraph, eclTimers: Timer[]) {\r\n        super();\r\n        this.wu = wu;\r\n        let duration = 0;\r\n        for (const eclTimer of eclTimers) {\r\n            if (eclTimer.GraphName === eclGraph.Name && !eclTimer.HasSubGraphId) {\r\n                duration = Math.round(eclTimer.Seconds * 1000) / 1000;\r\n                break;\r\n            }\r\n        }\r\n        this.set({ Time: duration, ...eclGraph });\r\n    }\r\n\r\n    fetchScopeGraph(subgraphID?: string): Promise<ScopeGraph> {\r\n        if (subgraphID) {\r\n            return this.wu.fetchGraphDetails([subgraphID], [\"subgraph\"]).then((scopes) => {\r\n                return createGraph(scopes);\r\n            });\r\n        }\r\n        return this.wu.fetchGraphDetails([this.Name], [\"graph\"]).then((scopes) => {\r\n            return createGraph(scopes);\r\n        });\r\n    }\r\n}\r\n\r\nexport class GraphCache extends Cache<WsWorkunits.ECLGraph, ECLGraph> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return Cache.hash([obj.Name]);\r\n        });\r\n    }\r\n}\r\n\r\ntype Callback = (tag: string, attributes: StringAnyMap, children: XMLNode[], _stack: XMLNode[]) => void;\r\nfunction walkXmlJson(node: XMLNode, callback: Callback, stack?: XMLNode[]) {\r\n    stack = stack || [];\r\n    stack.push(node);\r\n    callback(node.name, node.$, node.children(), stack);\r\n    node.children().forEach((childNode) => {\r\n        walkXmlJson(childNode, callback, stack);\r\n    });\r\n    stack.pop();\r\n}\r\n\r\nfunction flattenAtt(nodes: XMLNode[]): StringAnyMap {\r\n    const retVal: StringAnyMap = {};\r\n    nodes.forEach((node: XMLNode) => {\r\n        if (node.name === \"att\") {\r\n            retVal[node.$[\"name\"]] = node.$[\"value\"];\r\n        }\r\n    });\r\n    return retVal;\r\n}\r\n\r\nexport class XGMMLGraph extends Graph<StringAnyMap, StringAnyMap, StringAnyMap> { }\r\nexport class XGMMLSubgraph extends Subgraph<StringAnyMap, StringAnyMap, StringAnyMap> { }\r\nexport class XGMMLVertex extends Vertex<StringAnyMap, StringAnyMap, StringAnyMap> { }\r\nexport class XGMMLEdge extends Edge<StringAnyMap, StringAnyMap, StringAnyMap> { }\r\n\r\nexport function createXGMMLGraph(id: string, graphs: XMLNode): XGMMLGraph {\r\n    const subgraphs: { [id: string]: XGMMLSubgraph } = {};\r\n    const vertices: { [id: string]: XGMMLVertex } = {};\r\n    const edges: { [id: string]: XGMMLEdge } = {};\r\n\r\n    const graph = new XGMMLGraph((item) => {\r\n        return item._![\"id\"];\r\n    });\r\n\r\n    const stack: XGMMLSubgraph[] = [graph.root];\r\n    walkXmlJson(graphs, (tag: string, attributes: StringAnyMap, childNodes: XMLNode[], _stack) => {\r\n        const top = stack[stack.length - 1];\r\n        switch (tag) {\r\n            case \"graph\":\r\n                break;\r\n            case \"node\":\r\n                if (childNodes.length && childNodes[0].children().length && childNodes[0].children()[0].name === \"graph\") {\r\n                    const subgraph = top.createSubgraph(flattenAtt(childNodes));\r\n                    stack.push(subgraph);\r\n                    subgraphs[attributes[\"id\"]] = subgraph;\r\n                } else {\r\n                }\r\n                // TODO:  Is this really a node when its also a subgraph?\r\n                const vertex = top.createVertex(flattenAtt(childNodes));\r\n                vertices[attributes[\"id\"]] = vertex;\r\n                break;\r\n            case \"edge\":\r\n                const edge = top.createEdge(vertices[attributes[\"source\"]], vertices[attributes[\"target\"]], flattenAtt(childNodes));\r\n                edges[attributes[\"id\"]] = edge;\r\n                break;\r\n            default:\r\n        }\r\n    });\r\n    return graph;\r\n}\r\n\r\nexport class ScopeGraph extends Graph<BaseScope, BaseScope, BaseScope> { }\r\nexport class ScopeSubgraph extends Subgraph<BaseScope, BaseScope, BaseScope> { }\r\nexport class ScopeVertex extends Vertex<BaseScope, BaseScope, BaseScope> { }\r\nexport class ScopeEdge extends Edge<BaseScope, BaseScope, BaseScope> { }\r\n\r\nexport function createGraph(scopes: BaseScope[]): ScopeGraph {\r\n    const subgraphs: { [scopeName: string]: ScopeSubgraph } = {};\r\n    const edges: { [scopeName: string]: BaseScope } = {};\r\n    const vertices: { [scopeName: string]: ScopeVertex } = {};\r\n\r\n    let graph: ScopeGraph | undefined;\r\n    for (const scope of scopes) {\r\n        switch (scope.ScopeType) {\r\n            case \"graph\":\r\n                graph = new ScopeGraph(item => item._!.Id, scope);\r\n                subgraphs[scope.ScopeName] = graph.root;\r\n                break;\r\n            case \"subgraph\":\r\n                if (!graph) {\r\n                    graph = new ScopeGraph(item => item._!.Id, scope);\r\n                    subgraphs[scope.ScopeName] = graph.root;\r\n                }\r\n                const scopeStack = scope.parentScope().split(\":\");\r\n                let scopeParent1 = subgraphs[scope.parentScope()];\r\n                while (scopeStack.length && !scopeParent1) {\r\n                    scopeParent1 = subgraphs[scopeStack.join(\":\")];\r\n                    scopeStack.pop();\r\n                }\r\n                if (!scopeParent1) {\r\n                    console.warn(`Missing SG:Parent (${scope.Id}): ${scope.parentScope()}`);\r\n                } else {\r\n                    const parent1: ScopeSubgraph = scopeParent1;\r\n                    subgraphs[scope.ScopeName] = parent1.createSubgraph(scope);\r\n                }\r\n                break;\r\n            case \"activity\":\r\n                const scopeParent2 = subgraphs[scope.parentScope()];\r\n                if (!scopeParent2) {\r\n                    console.warn(`Missing A:Parent (${scope.Id}): ${scope.parentScope()}`);\r\n                } else {\r\n                    vertices[scope.ScopeName] = scopeParent2.createVertex(scope);\r\n                }\r\n                break;\r\n            case \"edge\":\r\n                edges[scope.ScopeName] = scope;\r\n                break;\r\n            case \"function\":\r\n                const scopeParent3 = vertices[scope.parentScope()];\r\n                if (!scopeParent3) {\r\n                    console.warn(`Missing F:Parent (${scope.Id}): ${scope.parentScope()}`);\r\n                } else {\r\n                    scopeParent3._.children().push(scope);\r\n                }\r\n                break;\r\n        }\r\n    }\r\n    for (const id in edges) {\r\n        const scope = edges[id];\r\n        const scopeParent3 = subgraphs[scope.parentScope()];\r\n        if (!scopeParent3) {\r\n            console.warn(`Missing E:Parent (${scope.Id}): ${scope.parentScope()}`);\r\n        } else {\r\n            const parent3: ScopeSubgraph = scopeParent3;\r\n            try {\r\n                const source = graph!.vertex(scope.attr(\"IdSource\").RawValue);\r\n                const target = graph!.vertex(scope.attr(\"IdTarget\").RawValue);\r\n                parent3.createEdge(source, target, scope);\r\n            } catch (e) {\r\n                // const sourceIndex = scope.attr(\"SourceIndex\").RawValue;\r\n                // const targetIndex = scope.attr(\"TargetIndex\").RawValue;\r\n                console.warn(`Invalid Edge: ${id}`);\r\n            }\r\n        }\r\n    }\r\n    return graph!;\r\n}\r\n","import { StateObject } from \"@hpcc-js/util\";\r\nimport { Workunit } from \"./workunit.ts\";\r\n\r\nexport interface ResourceEx {\r\n    URL: string;\r\n    DisplayName: string;\r\n    DisplayPath: string;\r\n}\r\n\r\nexport class Resource extends StateObject<ResourceEx, ResourceEx> implements ResourceEx {\r\n    protected wu: Workunit;\r\n\r\n    get properties(): ResourceEx { return this.get(); }\r\n    get URL(): string { return this.get(\"URL\"); }\r\n    get DisplayName(): string { return this.get(\"DisplayName\"); }\r\n    get DisplayPath(): string { return this.get(\"DisplayPath\"); }\r\n\r\n    constructor(wu: Workunit, url: string) {\r\n        super();\r\n        this.wu = wu;\r\n\r\n        const cleanedURL = url.split(\"\\\\\").join(\"/\");\r\n        const urlParts = cleanedURL.split(\"/\");\r\n        const matchStr = \"res/\" + this.wu.Wuid + \"/\";\r\n        let displayPath = \"\";\r\n        let displayName = \"\";\r\n\r\n        if (cleanedURL.indexOf(matchStr) === 0) {\r\n            displayPath = cleanedURL.substr(matchStr.length);\r\n            displayName = urlParts[urlParts.length - 1];\r\n        }\r\n\r\n        this.set({\r\n            URL: url,\r\n            DisplayName: displayName,\r\n            DisplayPath: displayPath\r\n        });\r\n    }\r\n}\r\n","import { SAXStackParser, Stack, XMLNode } from \"@hpcc-js/util\";\r\n\r\nexport class XSDNode {\r\n    protected e?: XMLNode;\r\n\r\n    constructor(e: XMLNode) {\r\n        this.e = e;\r\n    }\r\n    fix() {\r\n        delete this.e;\r\n    }\r\n}\r\n\r\nexport class XSDXMLNode extends XSDNode {\r\n    name: string;\r\n    type: string;\r\n    isSet = false;\r\n    attrs: { [key: string]: string } = {};\r\n    private _children: XSDXMLNode[] = [];\r\n\r\n    constructor(e: XMLNode) {\r\n        super(e);\r\n    }\r\n\r\n    append(child: XSDXMLNode) {\r\n        this._children.push(child);\r\n        if (!this.type) {\r\n            this.type = \"hpcc:childDataset\";\r\n        }\r\n    }\r\n\r\n    fix() {\r\n        this.name = this.e!.$[\"name\"];\r\n        this.type = this.e!.$[\"type\"];\r\n        for (let i = this._children.length - 1; i >= 0; --i) {\r\n            const row = this._children[i];\r\n            if (row.name === \"Row\" && row.type === undefined) {\r\n                this._children.push(...row._children);\r\n                this._children.splice(i, 1);\r\n            }\r\n        }\r\n        const setOfType = this.setOfType();\r\n        if (setOfType) {\r\n            this.type = setOfType;\r\n            this.isSet = true;\r\n            this._children = [];\r\n        }\r\n    }\r\n\r\n    children(): XSDXMLNode[] {\r\n        return this._children;\r\n    }\r\n\r\n    private isAll(node: XSDXMLNode) {\r\n        return node.name === \"All\" && node.type === undefined;\r\n    }\r\n\r\n    private setOfType(): string {\r\n        const children = this.children();\r\n        if (this.type === undefined && children.length === 2) {\r\n            if (this.isAll(children[0])) {\r\n                return children[1].type;\r\n            } else if (this.isAll(children[1])) {\r\n                return children[0].type;\r\n            }\r\n        }\r\n        return undefined;\r\n    }\r\n\r\n    charWidth() {\r\n        let retVal: number = -1;\r\n\r\n        switch (this.type) {\r\n            case \"xs:boolean\":\r\n                retVal = 5;\r\n                break;\r\n            case \"xs:integer\":\r\n                retVal = 8;\r\n                break;\r\n            case \"xs:nonNegativeInteger\":\r\n                retVal = 8;\r\n                break;\r\n            case \"xs:double\":\r\n                retVal = 8;\r\n                break;\r\n            case \"xs:string\":\r\n                retVal = 32;\r\n                break;\r\n            default:\r\n                const numStr: string = \"0123456789\";\r\n                const underbarPos: number = this.type.lastIndexOf(\"_\");\r\n                const length: number = underbarPos > 0 ? underbarPos : this.type.length;\r\n                let i: number = length - 1;\r\n                for (; i >= 0; --i) {\r\n                    if (numStr.indexOf(this.type.charAt(i)) === -1)\r\n                        break;\r\n                }\r\n                if (i + 1 < length) {\r\n                    retVal = parseInt(this.type.substring(i + 1, length), 10);\r\n                }\r\n                if (this.type.indexOf(\"data\") === 0) {\r\n                    retVal *= 2;\r\n                }\r\n                break;\r\n        }\r\n        if (retVal < this.name.length)\r\n            retVal = this.name.length;\r\n\r\n        return retVal;\r\n    }\r\n}\r\n\r\nexport class XSDSimpleType extends XSDNode {\r\n    name: string;\r\n    type: string;\r\n    maxLength: number | undefined;\r\n\r\n    protected _restricition?: XMLNode;\r\n    protected _maxLength?: XMLNode;\r\n\r\n    constructor(e: XMLNode) {\r\n        super(e);\r\n    }\r\n\r\n    append(e: XMLNode) {\r\n        switch (e.name) {\r\n            case \"xs:restriction\":\r\n                this._restricition = e;\r\n                break;\r\n            case \"xs:maxLength\":\r\n                this._maxLength = e;\r\n                break;\r\n            default:\r\n        }\r\n    }\r\n\r\n    fix() {\r\n        this.name = this.e!.$[\"name\"];\r\n        this.type = this._restricition!.$[\"base\"];\r\n        this.maxLength = this._maxLength ? +this._maxLength!.$[\"value\"] : undefined;\r\n        delete this._restricition;\r\n        delete this._maxLength;\r\n        super.fix();\r\n    }\r\n}\r\n\r\nexport class XSDSchema {\r\n    root: XSDXMLNode;\r\n    simpleTypes: { [name: string]: XSDSimpleType } = {};\r\n\r\n    fields(): XSDXMLNode[] {\r\n        return this.root.children();\r\n    }\r\n}\r\n\r\nclass XSDParser extends SAXStackParser {\r\n    schema: XSDSchema = new XSDSchema();\r\n    simpleType: XSDSimpleType;\r\n    simpleTypes: { [name: string]: XSDSimpleType } = {};\r\n\r\n    xsdStack: Stack<XSDXMLNode> = new Stack<XSDXMLNode>();\r\n\r\n    startXMLNode(e: XMLNode) {\r\n        super.startXMLNode(e);\r\n        switch (e.name) {\r\n            case \"xs:element\":\r\n                const xsdXMLNode = new XSDXMLNode(e);\r\n                if (!this.schema.root) {\r\n                    this.schema.root = xsdXMLNode;\r\n                } else if (this.xsdStack.depth()) {\r\n                    this.xsdStack.top()!.append(xsdXMLNode);\r\n                }\r\n                this.xsdStack.push(xsdXMLNode);\r\n                break;\r\n            case \"xs:simpleType\":\r\n                this.simpleType = new XSDSimpleType(e);\r\n                break;\r\n            default:\r\n                break;\r\n        }\r\n    }\r\n\r\n    endXMLNode(e: XMLNode) {\r\n        switch (e!.name) {\r\n            case \"xs:element\":\r\n                const xsdXMLNode = this.xsdStack.pop();\r\n                xsdXMLNode!.fix();\r\n                break;\r\n            case \"xs:simpleType\":\r\n                this.simpleType.fix();\r\n                this.simpleTypes[this.simpleType.name] = this.simpleType;\r\n                delete this.simpleType;\r\n                break;\r\n            case \"xs:appinfo\":\r\n                const xsdXMLNode2 = this.xsdStack.top();\r\n                for (const key in e.$) {\r\n                    xsdXMLNode2!.attrs[key] = e.$[key];\r\n                }\r\n                break;\r\n            default:\r\n                if (this.simpleType) {\r\n                    this.simpleType.append(e);\r\n                }\r\n        }\r\n        super.endXMLNode(e);\r\n    }\r\n}\r\n\r\nexport function parseXSD(xml: string): XSDSchema {\r\n    const saxParser = new XSDParser();\r\n    saxParser.parse(xml);\r\n    return saxParser.schema;\r\n}\r\n\r\nclass XSDParser2 extends XSDParser {\r\n    _rootName: string;\r\n    schema: XSDSchema = new XSDSchema();\r\n    simpleTypes: { [name: string]: XSDSimpleType } = {};\r\n\r\n    xsdStack: Stack<XSDXMLNode> = new Stack<XSDXMLNode>();\r\n\r\n    constructor(rootName: string) {\r\n        super();\r\n        this._rootName = rootName;\r\n    }\r\n\r\n    startXMLNode(e: XMLNode) {\r\n        super.startXMLNode(e);\r\n        switch (e.name) {\r\n            case \"xsd:element\":\r\n                const xsdXMLNode = new XSDXMLNode(e);\r\n                if (!this.schema.root && this._rootName === e.$.name) {\r\n                    this.schema.root = xsdXMLNode;\r\n                }\r\n                if (this.xsdStack.depth()) {\r\n                    this.xsdStack.top()!.append(xsdXMLNode);\r\n                }\r\n                this.xsdStack.push(xsdXMLNode);\r\n                break;\r\n            case \"xsd:simpleType\":\r\n                this.simpleType = new XSDSimpleType(e);\r\n                break;\r\n            default:\r\n                break;\r\n        }\r\n    }\r\n\r\n    endXMLNode(e: XMLNode) {\r\n        switch (e!.name) {\r\n            case \"xsd:element\":\r\n                const xsdXMLNode = this.xsdStack.pop()!;\r\n                xsdXMLNode.fix();\r\n                break;\r\n            case \"xsd:simpleType\":\r\n                break;\r\n            default:\r\n                break;\r\n        }\r\n        super.endXMLNode(e);\r\n    }\r\n}\r\n\r\nexport function parseXSD2(xml: string, rootName): XSDSchema {\r\n    const saxParser = new XSDParser2(rootName);\r\n    saxParser.parse(xml);\r\n    return saxParser.schema;\r\n}\r\n","import { Cache, exists, StateObject } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { WsDfu } from \"../services/wsDFU.ts\";\r\nimport { isECLResult, WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\r\nimport { parseXSD, XSDSchema, XSDXMLNode } from \"./xsdParser.ts\";\r\n\r\nexport class GlobalResultCache extends Cache<{ BaseUrl: string, Wuid: string, ResultName: string }, Result> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return `${obj.BaseUrl}-${obj.Wuid}-${obj.ResultName}`;\r\n        });\r\n    }\r\n}\r\nconst _results = new GlobalResultCache();\r\n\r\nexport type ResultFilter = { [key: string]: string | number };\r\n\r\nexport interface ECLResultEx extends WsWorkunits.ECLResult {\r\n    Wuid: string;\r\n    ResultName?: string;\r\n    ResultSequence?: number;\r\n    LogicalFileName?: string;\r\n    NodeGroup?: string;\r\n    ResultViews: string[];\r\n}\r\n\r\nexport interface WUResultResponseEx {\r\n\r\n    Exceptions: WsWorkunits.Exceptions;\r\n    Wuid: string;\r\n    Sequence: WsWorkunits.int;\r\n    LogicalName: string;\r\n    Cluster: string;\r\n    Name: string;\r\n    Start: WsWorkunits.long;\r\n    Requested: WsWorkunits.int;\r\n    Count: WsWorkunits.int;\r\n    Total: WsWorkunits.long;\r\n    Result: { [key: string]: any[] } & {\r\n        XmlSchema?: {\r\n            xml: string;\r\n        };\r\n    };\r\n}\r\n\r\nexport type UResulState = ECLResultEx & WsDfu.DFULogicalFile;\r\nexport type IResulState = ECLResultEx | WsDfu.DFULogicalFile;\r\nexport class Result extends StateObject<UResulState, IResulState> implements ECLResultEx {\r\n    protected connection: WorkunitsService;\r\n    protected _bypassCache: boolean = false;\r\n    get BaseUrl() { return this.connection.baseUrl; }\r\n    protected xsdSchema: XSDSchema;\r\n\r\n    get properties(): WsWorkunits.ECLResult { return this.get(); }\r\n    get Wuid(): string { return this.get(\"Wuid\"); }\r\n    get ResultName(): string | undefined { return this.get(\"ResultName\"); }\r\n    get ResultSequence(): number | undefined { return this.get(\"ResultSequence\"); }\r\n    get LogicalFileName(): string | undefined { return this.get(\"LogicalFileName\"); }\r\n    get Name(): string { return this.get(\"Name\"); }\r\n    get Sequence(): number { return this.get(\"Sequence\"); }\r\n    get Value(): string { return this.get(\"Value\"); }\r\n    get Link(): string { return this.get(\"Link\"); }\r\n    get FileName(): string { return this.get(\"FileName\"); }\r\n    get IsSupplied(): boolean { return this.get(\"IsSupplied\"); }\r\n    get ShowFileContent() { return this.get(\"ShowFileContent\"); }\r\n    get Total(): number { return this.get(\"Total\"); }\r\n    get ECLSchemas(): WsWorkunits.ECLSchemas { return this.get(\"ECLSchemas\"); }\r\n    get NodeGroup(): string { return this.get(\"NodeGroup\"); }\r\n    get ResultViews(): string[] { return this.get(\"ResultViews\"); }\r\n    get XmlSchema(): string { return this.get(\"XmlSchema\"); }\r\n\r\n    static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name: string);\r\n    static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, sequence: number);\r\n    static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WsWorkunits.ECLResult, resultViews: string[]);\r\n    static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name_sequence_eclResult?: string | number | WsWorkunits.ECLResult, resultViews?: string[]): Result {\r\n        let retVal: Result;\r\n        if (Array.isArray(resultViews)) {\r\n            retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: (name_sequence_eclResult as WsWorkunits.ECLResult).Name }, () => {\r\n                return new Result(optsConnection, wuid, name_sequence_eclResult as WsWorkunits.ECLResult, resultViews);\r\n            });\r\n            retVal.set(name_sequence_eclResult as any);\r\n        } else if (typeof resultViews === \"undefined\") {\r\n            if (typeof name_sequence_eclResult === \"number\") {\r\n                retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: \"Sequence_\" + name_sequence_eclResult }, () => {\r\n                    return new Result(optsConnection, wuid, name_sequence_eclResult);\r\n                });\r\n            } else if (typeof name_sequence_eclResult === \"string\") {\r\n                retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: name_sequence_eclResult }, () => {\r\n                    return new Result(optsConnection, wuid, name_sequence_eclResult);\r\n                });\r\n            }\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    static attachLogicalFile(optsConnection: IOptions | IConnection | WorkunitsService, nodeGroup: string, logicalFile: string) {\r\n        return _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: nodeGroup, ResultName: logicalFile }, () => {\r\n            return new Result(optsConnection, nodeGroup, logicalFile, true);\r\n        });\r\n    }\r\n\r\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name: string);\r\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, sequence: number);\r\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WsWorkunits.ECLResult, resultViews: string[]);\r\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, nodeGroup: string, logicalFile: string, isLogicalFiles: boolean);\r\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid_NodeGroup: string, name_sequence_eclResult_logicalFile?: string | number | WsWorkunits.ECLResult, resultViews_isLogicalFile?: any[] | boolean) {\r\n        super();\r\n        if (optsConnection instanceof WorkunitsService) {\r\n            this.connection = optsConnection;\r\n        } else {\r\n            this.connection = new WorkunitsService(optsConnection);\r\n        }\r\n\r\n        if (typeof resultViews_isLogicalFile === \"boolean\" && resultViews_isLogicalFile === true) {\r\n            this.set({\r\n                NodeGroup: wuid_NodeGroup,\r\n                LogicalFileName: name_sequence_eclResult_logicalFile\r\n            } as ECLResultEx);\r\n        } else if (isECLResult(name_sequence_eclResult_logicalFile) && Array.isArray(resultViews_isLogicalFile)) {\r\n            this.set({\r\n                ...name_sequence_eclResult_logicalFile,\r\n                Wuid: wuid_NodeGroup,\r\n                ResultName: name_sequence_eclResult_logicalFile.Name,\r\n                ResultViews: resultViews_isLogicalFile\r\n            } as ECLResultEx);\r\n        } else if (typeof resultViews_isLogicalFile === \"undefined\") {\r\n            if (typeof name_sequence_eclResult_logicalFile === \"number\") {\r\n                this.set({\r\n                    Wuid: wuid_NodeGroup,\r\n                    ResultSequence: name_sequence_eclResult_logicalFile\r\n                } as ECLResultEx);\r\n            } else if (typeof name_sequence_eclResult_logicalFile === \"string\") {\r\n                this.set({\r\n                    Wuid: wuid_NodeGroup,\r\n                    ResultName: name_sequence_eclResult_logicalFile\r\n                } as ECLResultEx);\r\n            } else {\r\n                console.warn(\"Unknown Result.attach (1)\");\r\n            }\r\n        } else {\r\n            console.warn(\"Unknown Result.attach (2)\");\r\n        }\r\n    }\r\n\r\n    isComplete() {\r\n        return this.Total !== -1;\r\n    }\r\n\r\n    bypassCache(bypass?: boolean): boolean | this {\r\n        if (bypass === undefined) return this._bypassCache;\r\n        this._bypassCache = bypass;\r\n        return this;\r\n    }\r\n\r\n    private _fetchXMLSchemaPromise: Promise<XSDSchema | null>;\r\n    fetchXMLSchema(refresh = false): Promise<XSDSchema | null> {\r\n        if (!this._fetchXMLSchemaPromise || refresh) {\r\n            this._fetchXMLSchemaPromise = this.WUResult().then(response => {\r\n                if (response.Result?.XmlSchema?.xml) {\r\n                    this.xsdSchema = parseXSD(response.Result.XmlSchema.xml);\r\n                    return this.xsdSchema;\r\n                }\r\n                return null;\r\n            });\r\n        }\r\n        return this._fetchXMLSchemaPromise;\r\n    }\r\n\r\n    async refresh(): Promise<this> {\r\n        await this.fetchRows(0, 1, true);\r\n        return this;\r\n    }\r\n\r\n    fetchRows(from: number = 0, count: number = -1, includeSchema: boolean = false, filter: ResultFilter = {}, abortSignal?: AbortSignal, bypassCache?: boolean): Promise<any[]> {\r\n        const shouldBypassCache = bypassCache ?? this._bypassCache;\r\n        return this.WUResult(from, count, !includeSchema, filter, abortSignal, shouldBypassCache).then((response) => {\r\n            const result: any = response.Result;\r\n            delete response.Result; //  Do not want it in \"set\"\r\n            this.set({\r\n                ...response\r\n            } as any);\r\n            if (exists(\"XmlSchema.xml\", result)) {\r\n                this.xsdSchema = parseXSD(result.XmlSchema.xml);\r\n            }\r\n            if (exists(\"Row\", result)) {\r\n                return result.Row;\r\n            } else if (this.ResultName && exists(this.ResultName, result)) {\r\n                return result[this.ResultName].Row;\r\n            }\r\n            return [];\r\n        });\r\n    }\r\n\r\n    rootField(): XSDXMLNode | null {\r\n        if (!this.xsdSchema) return null;\r\n        return this.xsdSchema.root;\r\n    }\r\n\r\n    fields(): XSDXMLNode[] {\r\n        if (!this.xsdSchema) return [];\r\n        return this.xsdSchema.root.children();\r\n    }\r\n\r\n    protected WUResult(start: number = 0, count: number = 1, suppressXmlSchema: boolean = false, filter: { [key: string]: string | number } = {}, abortSignal?: AbortSignal, bypassCache: boolean = false): Promise<WUResultResponseEx> {\r\n        const FilterBy = {\r\n            NamedValue: {\r\n                itemcount: 0\r\n            }\r\n        };\r\n        for (const key in filter) {\r\n            FilterBy.NamedValue[FilterBy.NamedValue.itemcount++] = {\r\n                Name: key,\r\n                Value: filter[key]\r\n            };\r\n        }\r\n        const request: Partial<WsWorkunits.WUResult> = { FilterBy } as any;\r\n        if (this.Wuid && this.ResultName !== undefined) {\r\n            request.Wuid = this.Wuid;\r\n            request.ResultName = this.ResultName;\r\n        } else if (this.Wuid && this.ResultSequence !== undefined) {\r\n            request.Wuid = this.Wuid;\r\n            request.Sequence = this.ResultSequence;\r\n        } else if (this.LogicalFileName && this.NodeGroup) {\r\n            request.LogicalName = this.LogicalFileName;\r\n            request.Cluster = this.NodeGroup;\r\n        } else if (this.LogicalFileName) {\r\n            request.LogicalName = this.LogicalFileName;\r\n        }\r\n        request.Start = start;\r\n        request.Count = count;\r\n        request.SuppressXmlSchema = suppressXmlSchema;\r\n        request.BypassCachedResult = bypassCache;\r\n        return this.connection.WUResult(request, abortSignal).then((response: unknown) => {\r\n            return response as WUResultResponseEx;\r\n        });\r\n    }\r\n}\r\n\r\nexport class ResultCache extends Cache<WsWorkunits.ECLResult, Result> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return Cache.hash([obj.Sequence, obj.Name, obj.Value, obj.FileName]);\r\n        });\r\n    }\r\n}\r\n","import { StateObject, StringAnyMap } from \"@hpcc-js/util\";\r\nimport { WsWorkunits } from \"../services/wsWorkunits.ts\";\r\nimport { Workunit } from \"./workunit.ts\";\r\n\r\nexport interface AttributeEx extends WsWorkunits.Property {\r\n    FormattedEnd?: string;\r\n}\r\n\r\nexport class Attribute extends StateObject<AttributeEx, AttributeEx> implements AttributeEx {\r\n    readonly scope: BaseScope;\r\n\r\n    get properties(): AttributeEx { return this.get(); }\r\n    get Name(): string { return this.get(\"Name\"); }\r\n    get RawValue(): string { return this.get(\"RawValue\"); }\r\n    get Formatted(): string { return this.get(\"Formatted\"); }\r\n    get FormattedEnd(): string | undefined { return this.get(\"FormattedEnd\"); }\r\n    get Measure(): string { return this.get(\"Measure\"); }\r\n    get Creator(): string { return this.get(\"Creator\"); }\r\n    get CreatorType(): string { return this.get(\"CreatorType\"); }\r\n\r\n    constructor(scope: BaseScope, attribute: WsWorkunits.Property) {\r\n        super();\r\n        this.scope = scope;\r\n        this.set(attribute);\r\n    }\r\n}\r\n\r\nexport interface ScopeEx extends WsWorkunits.Scope {\r\n}\r\n\r\nexport interface IScopeVisitor {\r\n    start(scope: BaseScope): boolean;\r\n    end(scope: BaseScope): boolean;\r\n}\r\n\r\nexport class BaseScope extends StateObject<ScopeEx, ScopeEx> implements ScopeEx {\r\n    protected _attributeMap: { [key: string]: Attribute } = {};\r\n    protected _children: BaseScope[] = [];\r\n\r\n    get properties(): ScopeEx { return this.get(); }\r\n    get ScopeName(): string { return this.get(\"ScopeName\"); }\r\n    get Id(): string { return this.get(\"Id\"); }\r\n    get ScopeType(): string { return this.get(\"ScopeType\"); }\r\n    get Properties(): WsWorkunits.Properties { return this.get(\"Properties\", { Property: [] }); }\r\n    get Notes(): WsWorkunits.Notes { return this.get(\"Notes\", { Note: [] }); }\r\n    get SinkActivity(): string { return this.get(\"SinkActivity\"); }\r\n    get CAttributes(): Attribute[] {\r\n        //  Match \"started\" and time elapsed\r\n        const retVal: Attribute[] = [];\r\n        const timeElapsed: { start: AttributeEx | null, end: AttributeEx | null } = {\r\n            start: null,\r\n            end: null\r\n        };\r\n        this.Properties.Property.forEach((scopeAttr) => {\r\n            if (scopeAttr.Measure === \"ts\" && scopeAttr.Name.indexOf(\"Started\") >= 0) {\r\n                timeElapsed.start = scopeAttr;\r\n            } else if (this.ScopeName && scopeAttr.Measure === \"ts\" && scopeAttr.Name.indexOf(\"Finished\") >= 0) {\r\n                timeElapsed.end = scopeAttr;\r\n            } else {\r\n                retVal.push(new Attribute(this, scopeAttr));\r\n            }\r\n        });\r\n        if (timeElapsed.start && timeElapsed.end) {\r\n            // const endTime = parser(timeElapsed.start.Formatted);\r\n            // endTime!.setMilliseconds(endTime!.getMilliseconds() + (+timeElapsed.elapsed.RawValue) / 1000000);\r\n            // timeElapsed.start.FormattedEnd = formatter(endTime!);\r\n            timeElapsed.start.FormattedEnd = timeElapsed.end.Formatted;\r\n            retVal.push(new Attribute(this, timeElapsed.start));\r\n        } else if (timeElapsed.start) {\r\n            retVal.push(new Attribute(this, timeElapsed.start));\r\n        } else if (timeElapsed.end) {\r\n            retVal.push(new Attribute(this, timeElapsed.end));  //  Should not happen?\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    constructor(scope: WsWorkunits.Scope) {\r\n        super();\r\n        this.update(scope);\r\n    }\r\n\r\n    update(scope: WsWorkunits.Scope) {\r\n        this.set(scope);\r\n        this.CAttributes.forEach((attr) => {\r\n            this._attributeMap[attr.Name] = attr;\r\n        });\r\n        this.Properties.Property = [];\r\n        for (const key in this._attributeMap) {\r\n            if (this._attributeMap.hasOwnProperty(key)) {\r\n                this.Properties.Property.push(this._attributeMap[key].properties);\r\n            }\r\n        }\r\n    }\r\n\r\n    parentScope(): string {\r\n        const scopeParts = this.ScopeName.split(\":\");\r\n        scopeParts.pop();\r\n        return scopeParts.join(\":\");\r\n    }\r\n\r\n    children(): BaseScope[];\r\n    children(_: BaseScope[]): BaseScope;\r\n    children(_?: BaseScope[]): BaseScope[] | BaseScope {\r\n        if (!arguments.length) return this._children;\r\n        this._children = _!;\r\n        return this;\r\n    }\r\n\r\n    walk(visitor: IScopeVisitor): boolean {\r\n        if (visitor.start(this)) return true;\r\n        for (const scope of this.children()) {\r\n            if (scope.walk(visitor)) {\r\n                return true;\r\n            }\r\n        }\r\n        return visitor.end(this);\r\n    }\r\n\r\n    formattedAttrs(): StringAnyMap {\r\n        const retVal: StringAnyMap = {};\r\n        for (const attr in this._attributeMap) {\r\n            retVal[attr] = this._attributeMap[attr].Formatted || this._attributeMap[attr].RawValue;\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    rawAttrs(): StringAnyMap {\r\n        const retVal: StringAnyMap = {};\r\n        for (const attr in this._attributeMap) {\r\n            retVal[attr] = this._attributeMap[attr].RawValue;\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    hasAttr(name: string): boolean {\r\n        return this._attributeMap[name] !== undefined;\r\n    }\r\n\r\n    attr(name: string): Attribute {\r\n        return this._attributeMap[name] || new Attribute(this, {\r\n            Creator: \"\",\r\n            CreatorType: \"\",\r\n            Formatted: \"\",\r\n            Measure: \"\",\r\n            Name: \"\",\r\n            RawValue: \"\"\r\n        });\r\n    }\r\n\r\n    attrMeasure(name: string): string {\r\n        return this._attributeMap[name].Measure;\r\n    }\r\n\r\n    calcTooltip(parentScope?: BaseScope) {\r\n        let label = \"\";\r\n        const rows: string[] = [];\r\n        label = this.Id;\r\n        rows.push(`<tr><td class=\"key\">ID:</td><td class=\"value\">${this.Id}</td></tr>`);\r\n        if (parentScope) {\r\n            rows.push(`<tr><td class=\"key\">Parent ID:</td><td class=\"value\">${parentScope.Id}</td></tr>`);\r\n        }\r\n        rows.push(`<tr><td class=\"key\">Scope:</td><td class=\"value\">${this.ScopeName}</td></tr>`);\r\n        const attrs = this.formattedAttrs();\r\n        for (const key in attrs) {\r\n            if (key === \"Label\") {\r\n                label = attrs[key];\r\n            } else {\r\n                rows.push(`<tr><td class=\"key\">${key}</td><td class=\"value\">${attrs[key]}</td></tr>`);\r\n            }\r\n        }\r\n\r\n        return `<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\r\n            <h4 align=\"center\">${label}</h4>\r\n            <table>\r\n                ${rows.join(\"\")}\r\n            </table>\r\n        </div>`;\r\n    }\r\n}\r\n\r\nexport class Scope extends BaseScope {\r\n    readonly wu: Workunit;\r\n\r\n    constructor(wu: Workunit, scope: WsWorkunits.Scope) {\r\n        super(scope);\r\n        this.wu = wu;\r\n    }\r\n}\r\n","import { StateObject } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\r\n\r\nexport interface ECLSourceFileEx extends WsWorkunits.ECLSourceFile {\r\n    Wuid: string;\r\n}\r\n\r\nexport class SourceFile extends StateObject<ECLSourceFileEx, ECLSourceFileEx> implements ECLSourceFileEx {\r\n    protected connection: WorkunitsService;\r\n\r\n    get properties(): WsWorkunits.ECLSourceFile { return this.get(); }\r\n    get Wuid(): string { return this.get(\"Wuid\"); }\r\n    get FileCluster(): string { return this.get(\"FileCluster\"); }\r\n    get Name(): string { return this.get(\"Name\"); }\r\n    get IsSuperFile(): boolean { return this.get(\"IsSuperFile\"); }\r\n    get Subs(): number { return this.get(\"Subs\"); }\r\n    get Count(): number { return this.get(\"Count\"); }\r\n    get ECLSourceFiles(): WsWorkunits.ECLSourceFiles { return this.get(\"ECLSourceFiles\"); }\r\n\r\n    constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclSourceFile: WsWorkunits.ECLSourceFile) {\r\n        super();\r\n        if (optsConnection instanceof WorkunitsService) {\r\n            this.connection = optsConnection;\r\n        } else {\r\n            this.connection = new WorkunitsService(optsConnection);\r\n        }\r\n\r\n        this.set({\r\n            Wuid: wuid,\r\n            ...eclSourceFile\r\n        });\r\n    }\r\n}\r\n","import { espTime2Seconds, StateObject } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\r\n\r\nexport interface ECLTimerEx extends WsWorkunits.ECLTimer {\r\n    Wuid: string;\r\n    Seconds: number;\r\n    HasSubGraphId: boolean;\r\n}\r\n\r\nexport class Timer extends StateObject<ECLTimerEx, ECLTimerEx> implements ECLTimerEx {\r\n    protected connection: WorkunitsService;\r\n\r\n    get properties(): WsWorkunits.ECLTimer { return this.get(); }\r\n    get Wuid(): string { return this.get(\"Wuid\"); }\r\n    get Name(): string { return this.get(\"Name\"); }\r\n    get Value(): string { return this.get(\"Value\"); }\r\n    get Seconds(): number { return this.get(\"Seconds\"); }\r\n    get GraphName(): string { return this.get(\"GraphName\"); }\r\n    get SubGraphId(): number { return this.get(\"SubGraphId\"); }\r\n    get HasSubGraphId(): boolean { return this.get(\"HasSubGraphId\"); }\r\n    get count(): number { return this.get(\"count\"); }\r\n    get Timestamp(): number { return this.get(\"Timestamp\"); }\r\n    get When(): string { return this.get(\"When\"); }\r\n\r\n    constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclTimer: WsWorkunits.ECLTimer) {\r\n        super();\r\n        if (optsConnection instanceof WorkunitsService) {\r\n            this.connection = optsConnection;\r\n        } else {\r\n            this.connection = new WorkunitsService(optsConnection);\r\n        }\r\n\r\n        const secs = espTime2Seconds(eclTimer.Value);\r\n        this.set({\r\n            Wuid: wuid,\r\n            Seconds: Math.round(secs * 1000) / 1000,\r\n            HasSubGraphId: eclTimer.SubGraphId !== undefined,\r\n            ...eclTimer\r\n        });\r\n    }\r\n}\r\n","import { Cache, deepMixinT, IEvent, RecursivePartial, scopedLogger, StateCallback, StateEvents, StateObject, StatePropCallback, StringAnyMap, XMLNode } from \"@hpcc-js/util\";\r\nimport { format as d3Format } from \"d3-format\";\r\nimport { utcFormat, utcParse } from \"d3-time-format\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { ESPExceptions } from \"../espConnection.ts\";\r\nimport { WsSMC } from \"../services/wsSMC.ts\";\r\nimport * as WsTopology from \"../services/wsTopology.ts\";\r\nimport { WsWorkunits, WUStateID, WorkunitsService, WorkunitsServiceEx, WUUpdate } from \"../services/wsWorkunits.ts\";\r\nimport { createGraph, createXGMMLGraph, ECLGraph, GraphCache, ScopeGraph, XGMMLGraph, XGMMLVertex } from \"./graph.ts\";\r\nimport { Resource } from \"./resource.ts\";\r\nimport { Result, ResultCache } from \"./result.ts\";\r\nimport { BaseScope, Scope } from \"./scope.ts\";\r\nimport { SourceFile } from \"./sourceFile.ts\";\r\nimport { Timer } from \"./timer.ts\";\r\n\r\nconst formatter = utcFormat(\"%Y-%m-%dT%H:%M:%S.%LZ\");\r\nconst parser = utcParse(\"%Y-%m-%dT%H:%M:%S.%LZ\");\r\nconst d3FormatNum = d3Format(\",\");\r\nfunction formatNum(num: number | string): string {\r\n    if (num && !isNaN(+num)) {\r\n        return d3FormatNum(+num);\r\n    }\r\n    return num as string;\r\n}\r\n\r\nfunction safeDelete(obj: { [id: string]: any; }, key: string, prop: string) {\r\n    if (obj[key] === undefined || obj[key][prop] === undefined) return;\r\n    if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") return;\r\n    delete obj[key][prop];\r\n}\r\n\r\nconst DEFINITION_LIST = \"DefinitionList\";\r\nconst definitionRegex = /([a-zA-Z]:)?(.*[\\\\\\/])(.*)(\\((\\d+),(\\d+)\\))/;\r\n\r\nexport const PropertyType = [\"Avg\", \"Min\", \"Max\", \"Delta\", \"StdDev\"];\r\nexport const RelatedProperty = [\"SkewMin\", \"SkewMax\", \"NodeMin\", \"NodeMax\"];\r\n\r\nexport interface IPropertyValue {\r\n    Key: string;\r\n    Value?: string;\r\n\r\n    //  Extended properties  ---\r\n    Avg?: string;\r\n    Min?: string;\r\n    Max?: string;\r\n    Delta?: string;\r\n    StdDev?: string;\r\n    StdDevs?: number;\r\n\r\n    // Related properties  ---\r\n    SkewMin?: string;\r\n    SkewMax?: string;\r\n    NodeMin?: string;\r\n    NodeMax?: string;\r\n}\r\n\r\nexport interface IScope {\r\n    __parentName?: string;\r\n    __children?: IScope[];\r\n    __formattedProps: { [key: string]: any };\r\n    __groupedProps: { [key: string]: IPropertyValue };\r\n    __StdDevs: number,\r\n    __StdDevsSource: string,\r\n    id: string;\r\n    name: string;\r\n    type: string;\r\n    Kind: string;\r\n    Label: string;\r\n    [key: string]: any;\r\n}\r\n\r\nexport interface ISplitMetric {\r\n    measure: string;\r\n    ext: string;\r\n    label: string;\r\n}\r\n\r\nconst metricKeyRegex = /[A-Z][a-z]*/g;\r\nfunction _splitMetric(fullLabel: string): ISplitMetric {\r\n\r\n    // Related properties  ---\r\n    for (const relProp of RelatedProperty) {\r\n        const index = fullLabel.indexOf(relProp);\r\n        if (index === 0) {\r\n            const measure = \"\";\r\n            const label = fullLabel.slice(index + relProp.length);\r\n            return { measure, ext: relProp, label };\r\n        }\r\n    }\r\n\r\n    // Primary properties  ---\r\n    const labelParts = fullLabel.match(metricKeyRegex);\r\n    if (labelParts?.length) {\r\n        const measure = labelParts.shift();\r\n        let label = labelParts.join(\"\");\r\n        for (const ext of PropertyType) {\r\n            const index = label.indexOf(ext);\r\n            if (index === 0) {\r\n                label = label.slice(index + ext.length);\r\n                return { measure, ext, label };\r\n            }\r\n        }\r\n        // Not an aggregate property  ---\r\n        return { measure, ext: \"\", label };\r\n    }\r\n\r\n    // No match found  ---\r\n    return { measure: \"\", ext: \"\", label: fullLabel };\r\n}\r\n\r\nconst splitLabelCache: { [key: string]: ISplitMetric } = {};\r\nexport function splitMetric(key: string): ISplitMetric {\r\n    let retVal = splitLabelCache[key];\r\n    if (!retVal) {\r\n        retVal = _splitMetric(key);\r\n        splitLabelCache[key] = retVal;\r\n    }\r\n    return retVal;\r\n}\r\n\r\nfunction formatValue(item: IScope, key: string): string | undefined {\r\n    return item.__formattedProps?.[key] ?? item[key];\r\n}\r\n\r\ntype DedupProperties = { [key: string]: boolean };\r\n\r\nfunction safeParseFloat(val: string | undefined): number | undefined {\r\n    if (val === undefined) return undefined;\r\n    const retVal = parseFloat(val);\r\n    return isNaN(retVal) ? undefined : retVal;\r\n}\r\n\r\nfunction formatValues(item: IScope, key: string, dedup: DedupProperties): IPropertyValue | null {\r\n    const keyParts = splitMetric(key);\r\n    if (!dedup[keyParts.measure]) {\r\n        dedup[keyParts.label] = true;\r\n        const avg = safeParseFloat(item[`${keyParts.measure}Avg${keyParts.label}`]);\r\n        const min = safeParseFloat(item[`${keyParts.measure}Min${keyParts.label}`]);\r\n        const max = safeParseFloat(item[`${keyParts.measure}Max${keyParts.label}`]);\r\n        const stdDev = safeParseFloat(item[`${keyParts.measure}StdDev${keyParts.label}`]);\r\n        const StdDevs = Math.max((avg - min) / stdDev, (max - avg) / stdDev);\r\n\r\n        return {\r\n            Key: `${keyParts.measure}${keyParts.label}`,\r\n            Value: formatValue(item, `${keyParts.measure}${keyParts.label}`),\r\n\r\n            //  Extended properties  ---\r\n            Avg: formatValue(item, `${keyParts.measure}Avg${keyParts.label}`),\r\n            Min: formatValue(item, `${keyParts.measure}Min${keyParts.label}`),\r\n            Max: formatValue(item, `${keyParts.measure}Max${keyParts.label}`),\r\n            Delta: formatValue(item, `${keyParts.measure}Delta${keyParts.label}`),\r\n            StdDev: formatValue(item, `${keyParts.measure}StdDev${keyParts.label}`),\r\n            StdDevs: isNaN(StdDevs) ? undefined : StdDevs,\r\n\r\n            // Related properties  ---\r\n            SkewMin: formatValue(item, `SkewMin${keyParts.label}`),\r\n            SkewMax: formatValue(item, `SkewMax${keyParts.label}`),\r\n            NodeMin: formatValue(item, `NodeMin${keyParts.label}`),\r\n            NodeMax: formatValue(item, `NodeMax${keyParts.label}`)\r\n        };\r\n    }\r\n    return null;\r\n}\r\n\r\nconst logger = scopedLogger(\"workunit.ts\");\r\n\r\nexport class WorkunitCache extends Cache<{ BaseUrl: string, Wuid: string }, Workunit> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return `${obj.BaseUrl}-${obj.Wuid}`;\r\n        });\r\n    }\r\n}\r\nconst _workunits = new WorkunitCache();\r\n\r\nexport interface DebugState {\r\n    sequence: number;\r\n    state: string;\r\n    [key: string]: any;\r\n}\r\n\r\nexport interface IWorkunit {\r\n    ResultViews: WsWorkunits.ResultViews;\r\n    HelpersCount: number;\r\n}\r\n\r\nexport interface IDebugWorkunit {\r\n    DebugState?: DebugState;\r\n}\r\n\r\nexport interface ITimeElapsed {\r\n    scope: string;\r\n    start: string;\r\n    elapsed: number;\r\n    finish: string;\r\n}\r\n\r\nexport type WorkunitEvents = \"completed\" | StateEvents;\r\nexport type UWorkunitState = WsWorkunits.ECLWorkunit & WsWorkunits.Workunit & WsSMC.ActiveWorkunit & IWorkunit & IDebugWorkunit;\r\nexport type IWorkunitState = WsWorkunits.ECLWorkunit | WsWorkunits.Workunit | WsSMC.ActiveWorkunit | IWorkunit | IDebugWorkunit;\r\nexport class Workunit extends StateObject<UWorkunitState, IWorkunitState> implements WsWorkunits.Workunit {\r\n    connection: WorkunitsService;\r\n    topologyConnection: WsTopology.TopologyService;\r\n    get BaseUrl() { return this.connection.baseUrl; }\r\n\r\n    private _debugMode: boolean = false;\r\n    private _debugAllGraph: any;\r\n    private _submitAction: WUUpdate.Action;\r\n\r\n    //  Accessors  ---\r\n    get properties(): WsWorkunits.ECLWorkunit & WsWorkunits.Workunit { return this.get(); }\r\n    get Wuid(): string { return this.get(\"Wuid\"); }\r\n    get Owner(): string { return this.get(\"Owner\", \"\"); }\r\n    get Cluster(): string { return this.get(\"Cluster\", \"\"); }\r\n    get Jobname(): string { return this.get(\"Jobname\", \"\"); }\r\n    get Description(): string { return this.get(\"Description\", \"\"); }\r\n    get ActionEx(): string { return this.get(\"ActionEx\", \"\"); }\r\n    get StateID(): WUStateID { return this.get(\"StateID\", WUStateID.Unknown); }\r\n    get State(): string { return this.get(\"State\") || WUStateID[this.StateID]; }\r\n    get Protected(): boolean { return this.get(\"Protected\", false); }\r\n    get Exceptions(): WsWorkunits.Exceptions2 { return this.get(\"Exceptions\", { ECLException: [] }); }\r\n    get ResultViews(): WsWorkunits.ResultViews { return this.get(\"ResultViews\", { View: [] }); }\r\n\r\n    private _resultCache = new ResultCache();\r\n    get ResultCount(): number { return this.get(\"ResultCount\", 0); }\r\n    get Results(): WsWorkunits.Results { return this.get(\"Results\", { ECLResult: [] }); }\r\n    get CResults(): Result[] {\r\n        return this.Results.ECLResult.map((eclResult) => {\r\n            return this._resultCache.get(eclResult, () => {\r\n                return Result.attach(this.connection, this.Wuid, eclResult, this.ResultViews.View);\r\n            });\r\n        });\r\n    }\r\n    get SequenceResults(): { [key: number]: Result } {\r\n        const retVal: { [key: number]: Result } = {};\r\n        this.CResults.forEach((result) => {\r\n            retVal[result.Sequence] = result;\r\n        });\r\n        return retVal;\r\n    }\r\n    get Timers(): WsWorkunits.Timers { return this.get(\"Timers\", { ECLTimer: [] }); }\r\n    get CTimers(): Timer[] {\r\n        return this.Timers.ECLTimer.map((eclTimer) => {\r\n            return new Timer(this.connection, this.Wuid, eclTimer);\r\n        });\r\n    }\r\n\r\n    private _graphCache = new GraphCache();\r\n    get GraphCount(): number { return this.get(\"GraphCount\", 0); }\r\n    get Graphs(): WsWorkunits.Graphs { return this.get(\"Graphs\", { ECLGraph: [] }); }\r\n    get CGraphs(): ECLGraph[] {\r\n        return this.Graphs.ECLGraph.map((eclGraph) => {\r\n            return this._graphCache.get(eclGraph, () => {\r\n                return new ECLGraph(this, eclGraph, this.CTimers);\r\n            });\r\n        });\r\n    }\r\n    get ThorLogList(): WsWorkunits.ThorLogList { return this.get(\"ThorLogList\"); }\r\n    get ResourceURLCount(): number { return this.get(\"ResourceURLCount\", 0); }\r\n    get ResourceURLs(): WsWorkunits.ResourceURLs { return this.get(\"ResourceURLs\", { URL: [] }); }\r\n    get CResourceURLs(): Resource[] {\r\n        return this.ResourceURLs.URL.map((url) => {\r\n            return new Resource(this, url);\r\n        });\r\n    }\r\n    get TotalClusterTime(): string { return this.get(\"TotalClusterTime\", \"\"); }\r\n    get DateTimeScheduled(): string { return this.get(\"DateTimeScheduled\"); }\r\n    get IsPausing(): boolean { return this.get(\"IsPausing\"); }\r\n    get ThorLCR(): boolean { return this.get(\"ThorLCR\"); }\r\n    get ApplicationValues(): WsWorkunits.ApplicationValues { return this.get(\"ApplicationValues\", { ApplicationValue: [] }); }\r\n    get HasArchiveQuery(): boolean { return this.get(\"HasArchiveQuery\"); }\r\n    get StateEx(): string { return this.get(\"StateEx\"); }\r\n    get PriorityClass(): number { return this.get(\"PriorityClass\"); }\r\n    get PriorityLevel(): number { return this.get(\"PriorityLevel\"); }\r\n    get Snapshot(): string { return this.get(\"Snapshot\"); }\r\n    get ResultLimit(): number { return this.get(\"ResultLimit\"); }\r\n    get EventSchedule(): number { return this.get(\"EventSchedule\"); }\r\n    get Query(): WsWorkunits.Query { return this.get(\"Query\"); }\r\n    get HelpersCount(): number { return this.get(\"HelpersCount\", 0); }\r\n    get Helpers(): WsWorkunits.Helpers { return this.get(\"Helpers\", { ECLHelpFile: [] }); }\r\n    get DebugValues(): WsWorkunits.DebugValues { return this.get(\"DebugValues\"); }\r\n    get AllowedClusters(): WsWorkunits.AllowedClusters { return this.get(\"AllowedClusters\"); }\r\n    get ErrorCount(): number { return this.get(\"ErrorCount\", 0); }\r\n    get WarningCount(): number { return this.get(\"WarningCount\", 0); }\r\n    get InfoCount(): number { return this.get(\"InfoCount\", 0); }\r\n    get AlertCount(): number { return this.get(\"AlertCount\", 0); }\r\n    get SourceFileCount(): number { return this.get(\"SourceFileCount\", 0); }\r\n    get SourceFiles(): WsWorkunits.SourceFiles { return this.get(\"SourceFiles\", { ECLSourceFile: [] }); }\r\n    get CSourceFiles(): SourceFile[] {\r\n        return this.SourceFiles.ECLSourceFile.map(eclSourceFile => new SourceFile(this.connection, this.Wuid, eclSourceFile));\r\n    }\r\n    get VariableCount(): number { return this.get(\"VariableCount\", 0); }\r\n    get Variables(): WsWorkunits.Variables { return this.get(\"Variables\", { ECLResult: [] }); }\r\n    get TimerCount(): number { return this.get(\"TimerCount\", 0); }\r\n    get HasDebugValue(): boolean { return this.get(\"HasDebugValue\"); }\r\n    get ApplicationValueCount(): number { return this.get(\"ApplicationValueCount\", 0); }\r\n    get XmlParams(): string { return this.get(\"XmlParams\"); }\r\n    get AccessFlag(): number { return this.get(\"AccessFlag\"); }\r\n    get ClusterFlag(): number { return this.get(\"ClusterFlag\"); }\r\n    get ResultViewCount(): number { return this.get(\"ResultViewCount\", 0); }\r\n    get DebugValueCount(): number { return this.get(\"DebugValueCount\", 0); }\r\n    get WorkflowCount(): number { return this.get(\"WorkflowCount\", 0); }\r\n    get Archived(): boolean { return this.get(\"Archived\"); }\r\n    get RoxieCluster(): string { return this.get(\"RoxieCluster\"); }\r\n    get DebugState(): DebugState { return this.get(\"DebugState\", {} as DebugState)!; }\r\n    get Queue(): string { return this.get(\"Queue\"); }\r\n    get Active(): boolean { return this.get(\"Active\"); }\r\n    get Action(): number { return this.get(\"Action\"); }\r\n    get Scope(): string { return this.get(\"Scope\"); }\r\n    get AbortBy(): string { return this.get(\"AbortBy\"); }\r\n    get AbortTime(): string { return this.get(\"AbortTime\"); }\r\n    get Workflows(): WsWorkunits.Workflows { return this.get(\"Workflows\"); }\r\n    get TimingData(): WsWorkunits.TimingData { return this.get(\"TimingData\"); }\r\n    get HelpersDesc(): string { return this.get(\"HelpersDesc\"); }\r\n    get GraphsDesc(): string { return this.get(\"GraphsDesc\"); }\r\n    get SourceFilesDesc(): string { return this.get(\"SourceFilesDesc\"); }\r\n    get ResultsDesc(): string { return this.get(\"ResultsDesc\"); }\r\n    get VariablesDesc(): string { return this.get(\"VariablesDesc\"); }\r\n    get TimersDesc(): string { return this.get(\"TimersDesc\"); }\r\n    get DebugValuesDesc(): string { return this.get(\"DebugValuesDesc\"); }\r\n    get ApplicationValuesDesc(): string { return this.get(\"ApplicationValuesDesc\"); }\r\n    get WorkflowsDesc(): string { return this.get(\"WorkflowsDesc\"); }\r\n    get ServiceNames(): WsWorkunits.ServiceNames { return this.get(\"ServiceNames\"); }\r\n    get CompileCost(): number { return this.get(\"CompileCost\"); }\r\n    get ExecuteCost(): number { return this.get(\"ExecuteCost\"); }\r\n    get FileAccessCost(): number { return this.get(\"FileAccessCost\"); }\r\n    get NoAccess(): boolean { return this.get(\"NoAccess\"); }\r\n    get ECLWUProcessList(): WsWorkunits.ECLWUProcessList { return this.get(\"ECLWUProcessList\"); }\r\n    get CostSavingPotential(): number { return this.get(\"CostSavingPotential\"); }\r\n\r\n    //  Factories  ---\r\n    static create(optsConnection: IOptions | IConnection): Promise<Workunit> {\r\n        const retVal: Workunit = new Workunit(optsConnection);\r\n        return retVal.connection.WUCreate().then((response) => {\r\n            _workunits.set(retVal);\r\n            retVal.set(response.Workunit);\r\n            return retVal;\r\n        });\r\n    }\r\n\r\n    static attach(optsConnection: IOptions | IConnection, wuid: string, state?: IWorkunitState): Workunit {\r\n        const retVal: Workunit = _workunits.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid }, () => {\r\n            return new Workunit(optsConnection, wuid);\r\n        });\r\n        if (state) {\r\n            retVal.set(state);\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    static existsLocal(baseUrl: string, wuid: string): boolean {\r\n        return _workunits.has({ BaseUrl: baseUrl, Wuid: wuid });\r\n    }\r\n\r\n    static submit(server: IOptions | IConnection, target: string, ecl: string, compileOnly = false): Promise<Workunit> {\r\n        return Workunit.create(server).then((wu) => {\r\n            return wu.update({ QueryText: ecl });\r\n        }).then((wu) => {\r\n            return compileOnly ? wu.submit(target, WUUpdate.Action.Compile) : wu.submit(target);\r\n        });\r\n    }\r\n\r\n    static compile(server: IOptions | IConnection, target: string, ecl: string): Promise<Workunit> {\r\n        return Workunit.submit(server, target, ecl, true);\r\n    }\r\n\r\n    static query(server: IOptions | IConnection, opts: Partial<WsWorkunits.WUQuery>): Promise<Workunit[]> {\r\n        const wsWorkunits = new WorkunitsService(server);\r\n        return wsWorkunits.WUQuery(opts).then((response) => {\r\n            return response.Workunits.ECLWorkunit.map(function (wu) {\r\n                return Workunit.attach(server, wu.Wuid, wu);\r\n            });\r\n        });\r\n    }\r\n\r\n    //  ---  ---  ---\r\n    protected constructor(optsConnection: IOptions | IConnection, wuid?: string) {\r\n        super();\r\n        this.connection = new WorkunitsService(optsConnection);\r\n        this.topologyConnection = new WsTopology.TopologyService(optsConnection);\r\n        this.clearState(wuid);\r\n    }\r\n\r\n    clearState(wuid?: string) {\r\n        this.clear({\r\n            Wuid: wuid,\r\n            StateID: WUStateID.Unknown\r\n        });\r\n    }\r\n\r\n    update(request: Partial<WsWorkunits.WUUpdate>): Promise<Workunit> {\r\n        return this.connection.WUUpdate({\r\n            ...request,\r\n            ...{\r\n                Wuid: this.Wuid,\r\n                StateOrig: this.StateID,\r\n                JobnameOrig: this.Jobname,\r\n                DescriptionOrig: this.Description,\r\n                ProtectedOrig: this.Protected,\r\n                ClusterOrig: this.Cluster\r\n            }\r\n        }).then((response) => {\r\n            this.set(response.Workunit);\r\n            return this;\r\n        });\r\n    }\r\n\r\n    submit(_cluster?: string, action: WUUpdate.Action = WUUpdate.Action.Run, resultLimit?: number): Promise<Workunit> {\r\n        let clusterPromise;\r\n        if (_cluster !== void 0) {\r\n            clusterPromise = Promise.resolve(_cluster);\r\n        } else {\r\n            clusterPromise = this.topologyConnection.DefaultTpLogicalClusterQuery().then((response) => {\r\n                return response.Name;\r\n            });\r\n        }\r\n\r\n        this._debugMode = false;\r\n        if (action === WUUpdate.Action.Debug) {\r\n            action = WUUpdate.Action.Run;\r\n            this._debugMode = true;\r\n        }\r\n\r\n        return clusterPromise.then((cluster) => {\r\n            return this.connection.WUUpdate({\r\n                Wuid: this.Wuid,\r\n                Action: action,\r\n                ResultLimit: resultLimit,\r\n                DebugValues: {\r\n                    DebugValue: [\r\n                        {\r\n                            Name: \"Debug\",\r\n                            Value: this._debugMode ? \"1\" : \"\"\r\n                        }\r\n                    ]\r\n                }\r\n            }).then((response) => {\r\n                this.set(response.Workunit);\r\n                this._submitAction = action;\r\n                return this.connection.WUSubmit({ Wuid: this.Wuid, Cluster: cluster });\r\n            });\r\n        }).then(() => {\r\n            return this;\r\n        });\r\n    }\r\n\r\n    isComplete(): boolean {\r\n        switch (this.StateID) {\r\n            case WUStateID.Compiled:\r\n                return this.ActionEx === \"compile\" || this._submitAction === WUUpdate.Action.Compile;\r\n            case WUStateID.Completed:\r\n            case WUStateID.Failed:\r\n            case WUStateID.Aborted:\r\n            case WUStateID.NotFound:\r\n                return true;\r\n            default:\r\n        }\r\n        return false;\r\n    }\r\n\r\n    isFailed() {\r\n        switch (this.StateID) {\r\n            case WUStateID.Aborted:\r\n            case WUStateID.Failed:\r\n                return true;\r\n            default:\r\n        }\r\n        return false;\r\n    }\r\n\r\n    isDeleted() {\r\n        switch (this.StateID) {\r\n            case WUStateID.NotFound:\r\n                return true;\r\n            default:\r\n        }\r\n        return false;\r\n    }\r\n\r\n    isDebugging() {\r\n        switch (this.StateID) {\r\n            case WUStateID.DebugPaused:\r\n            case WUStateID.DebugRunning:\r\n                return true;\r\n            default:\r\n        }\r\n        return this._debugMode;\r\n    }\r\n\r\n    isRunning(): boolean {\r\n        switch (this.StateID) {\r\n            case WUStateID.Compiled:\r\n            case WUStateID.Running:\r\n            case WUStateID.Aborting:\r\n            case WUStateID.Blocked:\r\n            case WUStateID.DebugPaused:\r\n            case WUStateID.DebugRunning:\r\n                return true;\r\n            default:\r\n        }\r\n        return false;\r\n    }\r\n\r\n    setToFailed() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.SetToFailed);\r\n    }\r\n\r\n    pause() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.Pause);\r\n    }\r\n\r\n    pauseNow() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.PauseNow);\r\n    }\r\n\r\n    resume() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.Resume);\r\n    }\r\n\r\n    abort() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.Abort);\r\n    }\r\n\r\n    protect() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.Protect);\r\n    }\r\n\r\n    unprotect() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.Unprotect);\r\n    }\r\n\r\n    delete() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.Delete);\r\n    }\r\n\r\n    restore() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.Restore);\r\n    }\r\n\r\n    deschedule() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.Deschedule);\r\n    }\r\n\r\n    reschedule() {\r\n        return this.WUAction(WsWorkunits.ECLWUActions.Reschedule);\r\n    }\r\n\r\n    resubmit(): Promise<Workunit> {\r\n        return this.WUResubmit({\r\n            CloneWorkunit: false,\r\n            ResetWorkflow: false\r\n        }).then(() => {\r\n            this.clearState(this.Wuid);\r\n            return this.refresh().then(() => {\r\n                this._monitor();\r\n                return this;\r\n            });\r\n        });\r\n    }\r\n\r\n    clone(): Promise<Workunit> {\r\n        return this.WUResubmit({\r\n            CloneWorkunit: true,\r\n            ResetWorkflow: false\r\n        }).then((response) => {\r\n            return Workunit.attach(this.connection.opts(), response.WUs.WU[0].WUID)\r\n                .refresh()\r\n                ;\r\n        });\r\n    }\r\n\r\n    async refreshState(): Promise<this> {\r\n        await this.WUQuery();\r\n        // Ensure \"isComplete\" is correct for WUs that are only \"Compiled\".\r\n        if (this.StateID === WUStateID.Compiled && !this.ActionEx && !this._submitAction) {\r\n            await this.refreshInfo();\r\n        }\r\n        return this;\r\n    }\r\n\r\n    async refreshInfo(request?: Partial<WsWorkunits.WUInfo>): Promise<this> {\r\n        await this.WUInfo(request);\r\n        return this;\r\n    }\r\n\r\n    async refreshDebug(): Promise<this> {\r\n        await this.debugStatus();\r\n        return this;\r\n    }\r\n\r\n    async refresh(full: boolean = false, request?: Partial<WsWorkunits.WUInfo>): Promise<this> {\r\n        if (full) {\r\n            await Promise.all([this.refreshInfo(request), this.refreshDebug()]);\r\n        } else {\r\n            await this.refreshState();\r\n        }\r\n        return this;\r\n    }\r\n\r\n    eclExceptions(): WsWorkunits.ECLException[] {\r\n        return this.Exceptions.ECLException;\r\n    }\r\n\r\n    fetchArchive(): Promise<string> {\r\n        return this.connection.WUFileEx({\r\n            Wuid: this.Wuid,\r\n            Type: \"ArchiveQuery\"\r\n        });\r\n    }\r\n\r\n    fetchECLExceptions(): Promise<WsWorkunits.ECLException[]> {\r\n        return this.WUInfo({ IncludeExceptions: true }).then(() => {\r\n            return this.eclExceptions();\r\n        });\r\n    }\r\n\r\n    fetchResults(): Promise<Result[]> {\r\n        return this.WUInfo({ IncludeResults: true }).then(() => {\r\n            return this.CResults;\r\n        });\r\n    }\r\n\r\n    fetchGraphs(): Promise<ECLGraph[]> {\r\n        return this.WUInfo({ IncludeGraphs: true }).then(() => {\r\n            return this.CGraphs;\r\n        });\r\n    }\r\n\r\n    fetchQuery(): Promise<WsWorkunits.Query> {\r\n        return this.WUInfo({ IncludeECL: true, TruncateEclTo64k: false }).then(() => {\r\n            return this.Query;\r\n        });\r\n    }\r\n\r\n    fetchHelpers(): Promise<WsWorkunits.ECLHelpFile[]> {\r\n        return this.WUInfo({ IncludeHelpers: true }).then(() => {\r\n            return this.Helpers?.ECLHelpFile || [];\r\n        });\r\n    }\r\n\r\n    fetchAllowedClusters(): Promise<string[]> {\r\n        return this.WUInfo({ IncludeAllowedClusters: true }).then(() => {\r\n            return this.AllowedClusters?.AllowedCluster || [];\r\n        });\r\n    }\r\n\r\n    fetchTotalClusterTime(): Promise<string> {\r\n        return this.WUInfo({ IncludeTotalClusterTime: true }).then(() => {\r\n            return this.TotalClusterTime;\r\n        });\r\n    }\r\n\r\n    fetchServiceNames(): Promise<string[]> {\r\n        return this.WUInfo({ IncludeServiceNames: true }).then(() => {\r\n            return this.ServiceNames?.Item;\r\n        });\r\n    }\r\n\r\n    fetchDetailsMeta(request: RecursivePartial<WsWorkunits.WUDetailsMeta> = {}): Promise<WsWorkunits.WUDetailsMetaResponse> {\r\n        return this.WUDetailsMeta(request);\r\n    }\r\n\r\n    fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<WsWorkunits.Scope[]> {\r\n        return this.WUDetails(request).then(response => response.Scopes.Scope);\r\n    }\r\n\r\n    normalizeDetails(meta: WsWorkunits.WUDetailsMetaResponse, scopes: WsWorkunits.Scope[]): { meta: WsWorkunits.WUDetailsMetaResponse, columns: { [id: string]: any }, data: IScope[] } {\r\n        const columns: { [id: string]: any } = {\r\n            id: {\r\n                Measure: \"label\"\r\n            },\r\n            name: {\r\n                Measure: \"label\"\r\n            },\r\n            type: {\r\n                Measure: \"label\"\r\n            }\r\n        };\r\n        const activityMap = new Map<number, string>();\r\n        for (const activity of meta.Activities?.Activity ?? []) {\r\n            activityMap.set(activity.Kind, activity.Name);\r\n        }\r\n        const data: IScope[] = new Array(scopes.length);\r\n        for (let i = 0; i < scopes.length; i++) {\r\n            const scope = scopes[i];\r\n            const props: { [key: string]: any } = {};\r\n            const formattedProps: { [key: string]: any } = {};\r\n            if (scope.Id && scope.Properties?.Property) {\r\n                for (const scopeProperty of scope.Properties.Property) {\r\n                    const measure = scopeProperty.Measure;\r\n                    const name = scopeProperty.Name;\r\n                    const rawValue = scopeProperty.RawValue;\r\n                    if (measure === \"ns\") {\r\n                        scopeProperty.Measure = \"s\";\r\n                    }\r\n                    if (name === \"Kind\") {\r\n                        const rawValueInt = parseInt(rawValue, 10);\r\n                        scopeProperty.Formatted = activityMap.get(rawValueInt) ?? rawValue;\r\n                    }\r\n                    columns[name] = {\r\n                        Name: scopeProperty.Name,\r\n                        Measure: scopeProperty.Measure,\r\n                        Creator: scopeProperty.Creator,\r\n                        CreatorType: scopeProperty.CreatorType\r\n                    };\r\n                    switch (scopeProperty.Measure) {\r\n                        case \"bool\":\r\n                            props[name] = !!+rawValue;\r\n                            break;\r\n                        case \"sz\":\r\n                            props[name] = +rawValue;\r\n                            break;\r\n                        case \"s\":\r\n                            props[name] = +rawValue / 1000000000;\r\n                            break;\r\n                        case \"ns\":\r\n                            props[name] = +rawValue;\r\n                            break;\r\n                        case \"ts\":\r\n                            props[name] = new Date(+rawValue / 1000).toISOString();\r\n                            break;\r\n                        case \"cnt\":\r\n                            props[name] = +rawValue;\r\n                            break;\r\n                        case \"cost\":\r\n                            props[name] = +rawValue / 1000000;\r\n                            break;\r\n                        case \"node\":\r\n                            props[name] = +rawValue;\r\n                            break;\r\n                        case \"skw\":\r\n                            props[name] = +rawValue;\r\n                            break;\r\n                        case \"cpu\":\r\n                        case \"ppm\":\r\n                        case \"ip\":\r\n                        case \"cy\":\r\n                        case \"en\":\r\n                        case \"txt\":\r\n                        case \"id\":\r\n                        case \"fname\":\r\n                        default:\r\n                            props[name] = rawValue;\r\n                    }\r\n                    formattedProps[name] = formatNum(scopeProperty.Formatted ?? props[name]);\r\n                }\r\n            }\r\n            const normalizedScope: IScope = {\r\n                id: scope.Id,\r\n                name: scope.ScopeName,\r\n                type: scope.ScopeType,\r\n                Kind: scope[\"Kind\"],\r\n                Label: scope[\"Label\"],\r\n                __formattedProps: formattedProps,\r\n                __groupedProps: {},\r\n                __groupedRawProps: {},\r\n                __StdDevs: 0,\r\n                __StdDevsSource: \"\",\r\n                ...props\r\n            };\r\n            const definitionList = normalizedScope[DEFINITION_LIST];\r\n            if (definitionList) {\r\n                try {\r\n                    const parsedList = JSON.parse(definitionList.split(\"\\\\\").join(\"\\\\\\\\\"));\r\n                    const processedDefinitions: Array<{ filePath: string, line: number, col: number }> = [];\r\n\r\n                    for (let k = 0; k < parsedList.length; k++) {\r\n                        const matches = parsedList[k].match(definitionRegex);\r\n                        if (matches) {\r\n                            processedDefinitions.push({\r\n                                filePath: (matches[1] ?? \"\") + matches[2] + matches[3],\r\n                                line: parseInt(matches[5], 10),\r\n                                col: parseInt(matches[6], 10)\r\n                            });\r\n                        }\r\n                    }\r\n                    normalizedScope[DEFINITION_LIST] = processedDefinitions;\r\n                } catch (e) {\r\n                    logger.error(`Unexpected \"DefinitionList\": ${definitionList}`);\r\n                }\r\n            }\r\n\r\n            const dedup: DedupProperties = {};\r\n            let maxStdDevs = 0;\r\n            let maxStdDevsSource = \"\";\r\n            for (const key in normalizedScope) {\r\n                if (!key.startsWith(\"__\")) {\r\n                    const row = formatValues(normalizedScope, key, dedup);\r\n                    if (row) {\r\n                        normalizedScope.__groupedProps[row.Key] = row;\r\n                        if (!isNaN(row.StdDevs) && row.StdDevs > maxStdDevs) {\r\n                            maxStdDevs = row.StdDevs;\r\n                            maxStdDevsSource = row.Key;\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            normalizedScope.__StdDevs = maxStdDevs;\r\n            normalizedScope.__StdDevsSource = maxStdDevsSource;\r\n\r\n            data[i] = normalizedScope;\r\n        }\r\n        return {\r\n            meta,\r\n            columns,\r\n            data\r\n        };\r\n    }\r\n\r\n    fetchDetailsNormalized(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<{ meta: WsWorkunits.WUDetailsMetaResponse, columns: { [id: string]: any }, data: IScope[] }> {\r\n        return Promise.all([this.fetchDetailsMeta(), this.fetchDetailsRaw(request)]).then(promises => {\r\n            return this.normalizeDetails(promises[0], promises[1]);\r\n        });\r\n    }\r\n\r\n    fetchInfo(request: Partial<WsWorkunits.WUInfo> = {}): Promise<WsWorkunits.WUInfoResponse> {\r\n        return this.WUInfo(request);\r\n    }\r\n\r\n    fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<Scope[]> {\r\n        return this.WUDetails(request).then((response) => {\r\n            return response.Scopes.Scope.map((rawScope) => {\r\n                return new Scope(this, rawScope);\r\n            });\r\n        });\r\n    }\r\n\r\n    fetchDetailsHierarchy(request: Partial<WsWorkunits.WUDetails> = {}): Promise<Scope[]> {\r\n        return this.WUDetails(request).then((response) => {\r\n            const retVal: Scope[] = [];\r\n\r\n            //  Recreate Scope Hierarchy and dedup  ---\r\n            const scopeMap: { [key: string]: Scope } = {};\r\n            response.Scopes.Scope.forEach((rawScope) => {\r\n                if (scopeMap[rawScope.ScopeName]) {\r\n                    scopeMap[rawScope.ScopeName].update(rawScope);\r\n                    return null;\r\n                } else {\r\n                    const scope = new Scope(this, rawScope);\r\n                    scopeMap[scope.ScopeName] = scope;\r\n                    return scope;\r\n                }\r\n            });\r\n            for (const key in scopeMap) {\r\n                if (scopeMap.hasOwnProperty(key)) {\r\n                    const scope = scopeMap[key];\r\n                    const parentScopeID = scope.parentScope();\r\n                    if (parentScopeID && scopeMap[parentScopeID]) {\r\n                        scopeMap[parentScopeID].children().push(scope);\r\n                    } else {\r\n                        retVal.push(scope);\r\n                    }\r\n                }\r\n            }\r\n\r\n            return retVal;\r\n        });\r\n    }\r\n\r\n    fetchGraphDetails(graphIDs: string[] = [], rootTypes: string[]): Promise<BaseScope[]> {\r\n        return this.fetchDetails({\r\n            ScopeFilter: {\r\n                MaxDepth: 999999,\r\n                Ids: graphIDs,\r\n                ScopeTypes: rootTypes,\r\n            },\r\n            NestedFilter: {\r\n                Depth: 999999,\r\n                ScopeTypes: [\"graph\", \"subgraph\", \"activity\", \"edge\", \"function\"]\r\n            },\r\n            PropertiesToReturn: {\r\n                AllStatistics: true,\r\n                AllAttributes: true,\r\n                AllHints: true,\r\n                AllProperties: true,\r\n                AllScopes: true\r\n            },\r\n            ScopeOptions: {\r\n                IncludeId: true,\r\n                IncludeScope: true,\r\n                IncludeScopeType: true\r\n            },\r\n            PropertyOptions: {\r\n                IncludeName: true,\r\n                IncludeRawValue: true,\r\n                IncludeFormatted: true,\r\n                IncludeMeasure: true,\r\n                IncludeCreator: false,\r\n                IncludeCreatorType: false\r\n            }\r\n        });\r\n    }\r\n\r\n    fetchScopeGraphs(graphIDs: string[] = []): Promise<ScopeGraph> {\r\n        return this.fetchGraphDetails(graphIDs, [\"graph\"]).then((scopes) => {\r\n            return createGraph(scopes);\r\n        });\r\n    }\r\n\r\n    fetchTimeElapsed(): Promise<ITimeElapsed[]> {\r\n        return this.fetchDetails({\r\n            ScopeFilter: {\r\n                PropertyFilters: {\r\n                    PropertyFilter: [{ Name: \"TimeElapsed\" }]\r\n                }\r\n            }\r\n        }).then((scopes) => {\r\n            const scopeInfo: { [key: string]: ITimeElapsed } = {};\r\n            scopes.forEach((scope) => {\r\n                scopeInfo[scope.ScopeName] = scopeInfo[scope.ScopeName] || {\r\n                    scope: scope.ScopeName,\r\n                    start: null,\r\n                    elapsed: null,\r\n                    finish: null\r\n                };\r\n                scope.CAttributes.forEach((attr) => {\r\n                    if (attr.Name === \"TimeElapsed\") {\r\n                        scopeInfo[scope.ScopeName].elapsed = +attr.RawValue;\r\n                    } else if (attr.Measure === \"ts\" && attr.Name.indexOf(\"Started\") >= 0) {\r\n                        scopeInfo[scope.ScopeName].start = attr.Formatted;\r\n                    }\r\n                });\r\n            });\r\n            // Workaround duplicate scope responses\r\n            const retVal: ITimeElapsed[] = [];\r\n            for (const key in scopeInfo) {\r\n                const scope = scopeInfo[key];\r\n                if (scope.start && scope.elapsed) {\r\n                    const endTime = parser(scope.start);\r\n                    endTime!.setMilliseconds(endTime!.getMilliseconds() + scope.elapsed / 1000000);\r\n                    scope.finish = formatter(endTime!);\r\n                    retVal.push(scope);\r\n                }\r\n            }\r\n            retVal.sort((l, r) => {\r\n                if (l.start < r.start) return -1;\r\n                if (l.start > r.start) return 1;\r\n                return 0;\r\n            });\r\n            return retVal;\r\n        });\r\n    }\r\n\r\n    //  Monitoring  ---\r\n    protected _monitor(): void {\r\n        if (this.isComplete()) {\r\n            this._monitorTickCount = 0;\r\n            return;\r\n        }\r\n        super._monitor();\r\n    }\r\n\r\n    protected _monitorTimeoutDuration(): number {\r\n        const retVal = super._monitorTimeoutDuration();\r\n        if (this._monitorTickCount <= 1) {          //  Once\r\n            return 1000;\r\n        } else if (this._monitorTickCount <= 3) {   //  Twice\r\n            return 3000;\r\n        } else if (this._monitorTickCount <= 5) {   //  Twice\r\n            return 5000;\r\n        } else if (this._monitorTickCount <= 7) {   //  Twice\r\n            return 10000;\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    //  Events  ---\r\n    on(eventID: WorkunitEvents, propIDorCallback: StateCallback | keyof UWorkunitState, callback?: StatePropCallback): this {\r\n        if (this.isCallback(propIDorCallback)) {\r\n            switch (eventID) {\r\n                case \"completed\":\r\n                    super.on(\"propChanged\", \"StateID\", (changeInfo: IEvent) => {\r\n                        if (this.isComplete()) {\r\n                            propIDorCallback([changeInfo]);\r\n                        }\r\n                    });\r\n                    break;\r\n                case \"changed\":\r\n                    super.on(eventID, propIDorCallback);\r\n                    break;\r\n                default:\r\n            }\r\n        } else {\r\n            switch (eventID) {\r\n                case \"changed\":\r\n                    super.on(eventID, propIDorCallback, callback!);\r\n                    break;\r\n                default:\r\n            }\r\n        }\r\n        this._monitor();\r\n        return this;\r\n    }\r\n\r\n    watchUntilComplete(callback?: StateCallback): Promise<this> {\r\n        return new Promise((resolve, _) => {\r\n            const watchHandle = this.watch((changes) => {\r\n                if (callback) {\r\n                    callback(changes);\r\n                }\r\n                if (this.isComplete()) {\r\n                    watchHandle.release();\r\n                    resolve(this);\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    watchUntilRunning(callback?: StateCallback): Promise<this> {\r\n        return new Promise((resolve, _) => {\r\n            const watchHandle = this.watch((changes) => {\r\n                if (callback) {\r\n                    callback(changes);\r\n                }\r\n                if (this.isComplete() || this.isRunning()) {\r\n                    watchHandle.release();\r\n                    resolve(this);\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    //  WsWorkunits passthroughs  ---\r\n    protected WUQuery(_request: Partial<WsWorkunits.WUQuery> = {}): Promise<WsWorkunits.WUQueryResponse> {\r\n        return this.connection.WUQuery({ ..._request, Wuid: this.Wuid }).then((response) => {\r\n            if (response.Workunits.ECLWorkunit.length === 0) {\r\n                //  deleted  ---\r\n                this.clearState(this.Wuid);\r\n                this.set(\"StateID\", WUStateID.NotFound);\r\n            } else {\r\n                this.set(response.Workunits.ECLWorkunit[0]);\r\n            }\r\n            return response;\r\n        }).catch((e: ESPExceptions) => {\r\n            //  deleted  ---\r\n            const wuMissing = e.Exception.some((exception) => {\r\n                if (exception.Code === 20081) {\r\n                    this.clearState(this.Wuid);\r\n                    this.set(\"StateID\", WUStateID.NotFound);\r\n                    return true;\r\n                }\r\n                return false;\r\n            });\r\n            if (!wuMissing) {\r\n                logger.warning(`Unexpected ESP exception: ${e.message}`);\r\n                throw e;\r\n            }\r\n            return {} as WsWorkunits.WUQueryResponse;\r\n        });\r\n    }\r\n\r\n    protected WUCreate() {\r\n        return this.connection.WUCreate().then((response) => {\r\n            this.set(response.Workunit);\r\n            _workunits.set(this);\r\n            return response;\r\n        });\r\n    }\r\n\r\n    protected WUInfo(_request: Partial<WsWorkunits.WUInfo> = {}): Promise<WsWorkunits.WUInfoResponse> {\r\n        const includeResults = _request.IncludeResults || _request.IncludeResultsViewNames;\r\n        return this.connection.WUInfo({\r\n            ..._request,\r\n            Wuid: this.Wuid,\r\n            IncludeResults: includeResults,\r\n            IncludeResultsViewNames: includeResults,\r\n            SuppressResultSchemas: false\r\n        }).then((response) => {\r\n            this.set(response.Workunit);\r\n            if (includeResults) {\r\n                this.set({\r\n                    ResultViews: response.ResultViews\r\n                } as IWorkunitState);\r\n            }\r\n            return response;\r\n        }).catch((e: ESPExceptions) => {\r\n            //  deleted  ---\r\n            const wuMissing = e.Exception.some((exception) => {\r\n                if (exception.Code === 20080) {\r\n                    this.clearState(this.Wuid);\r\n                    this.set(\"StateID\", WUStateID.NotFound);\r\n                    return true;\r\n                }\r\n                return false;\r\n            });\r\n            if (!wuMissing) {\r\n                logger.warning(`Unexpected ESP exception: ${e.message}`);\r\n                throw e;\r\n            }\r\n            return {} as WsWorkunits.WUInfoResponse;\r\n        });\r\n    }\r\n\r\n    protected WUResubmit(request: Partial<WsWorkunits.WUResubmit>): Promise<WsWorkunits.WUResubmitResponse> {\r\n        return this.connection.WUResubmit(deepMixinT<WsWorkunits.WUResubmit>({}, request, {\r\n            Wuids: { Item: [this.Wuid] }\r\n        }));\r\n    }\r\n\r\n    protected WUDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta>): Promise<WsWorkunits.WUDetailsMetaResponse> {\r\n        return this.connection.WUDetailsMeta(request);\r\n    }\r\n\r\n    protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>): Promise<WsWorkunits.WUDetailsResponse> {\r\n        return this.connection.WUDetails(deepMixinT<WsWorkunits.WUDetails>({\r\n            ScopeFilter: {\r\n                MaxDepth: 9999\r\n            },\r\n            ScopeOptions: {\r\n                IncludeMatchedScopesInResults: true,\r\n                IncludeScope: true,\r\n                IncludeId: false,\r\n                IncludeScopeType: false\r\n            },\r\n            PropertyOptions: {\r\n                IncludeName: true,\r\n                IncludeRawValue: false,\r\n                IncludeFormatted: true,\r\n                IncludeMeasure: true,\r\n                IncludeCreator: false,\r\n                IncludeCreatorType: false\r\n            }\r\n        }, request, { WUID: this.Wuid })).then((response) => {\r\n            return deepMixinT<WsWorkunits.WUDetailsResponse>({\r\n                Scopes: {\r\n                    Scope: []\r\n                }\r\n            }, response);\r\n        });\r\n    }\r\n\r\n    protected WUAction(actionType: WsWorkunits.ECLWUActions): Promise<WsWorkunits.WUActionResponse> {\r\n        return this.connection.WUAction({\r\n            Wuids: { Item: [this.Wuid] },\r\n            WUActionType: actionType\r\n        }).then((response) => {\r\n            return this.refresh().then(() => {\r\n                this._monitor();\r\n                return response;\r\n            });\r\n        });\r\n    }\r\n\r\n    publish(name?: string) {\r\n        return this.connection.WUPublishWorkunit({\r\n            Wuid: this.Wuid,\r\n            Cluster: this.Cluster,\r\n            JobName: name || this.Jobname,\r\n            AllowForeignFiles: true,\r\n            Activate: WsWorkunits.WUQueryActivationMode.ActivateQuery,\r\n            Wait: 5000\r\n        });\r\n    }\r\n\r\n    publishEx(request: Partial<WsWorkunits.WUPublishWorkunit>) {\r\n        const service = new WorkunitsServiceEx({ baseUrl: \"\" });\r\n        const publishRequest = {\r\n            Wuid: this.Wuid,\r\n            Cluster: this.Cluster,\r\n            JobName: this.Jobname,\r\n            AllowForeignFiles: true,\r\n            Activate: 1,\r\n            Wait: 5000,\r\n            ...request\r\n        };\r\n        return service.WUPublishWorkunitEx(publishRequest);\r\n    }\r\n\r\n    protected WUCDebug(command: string, opts: any = {}): Promise<XMLNode | null> {\r\n        let optsStr = \"\";\r\n        for (const key in opts) {\r\n            if (opts.hasOwnProperty(key)) {\r\n                optsStr += ` ${key}='${opts[key]}'`;\r\n            }\r\n        }\r\n        return this.connection.WUCDebugEx({\r\n            Wuid: this.Wuid,\r\n            Command: `<debug:${command} uid='${this.Wuid}'${optsStr}/>`\r\n        }).then((response) => {\r\n            return response;\r\n        });\r\n    }\r\n\r\n    debug(command: string, opts?: object): Promise<XMLNode> {\r\n        if (!this.isDebugging()) {\r\n            return Promise.resolve(new XMLNode(command));\r\n        }\r\n        return this.WUCDebug(command, opts).then((response: XMLNode) => {\r\n            const retVal: XMLNode[] = response.children(command);\r\n            if (retVal.length) {\r\n                return retVal[0];\r\n            }\r\n            return new XMLNode(command);\r\n        }).catch((_) => {\r\n            logger.error(_);\r\n            return Promise.resolve(new XMLNode(command));\r\n        });\r\n    }\r\n\r\n    debugStatus(): Promise<XMLNode> {\r\n        if (!this.isDebugging()) {\r\n            return Promise.resolve<any>({\r\n                DebugState: { state: \"unknown\" }\r\n            });\r\n        }\r\n        return this.debug(\"status\").then((response) => {\r\n            const debugState = { ...this.DebugState, ...response.$ };\r\n            this.set({\r\n                DebugState: debugState\r\n            });\r\n            return response;\r\n        });\r\n    }\r\n\r\n    debugContinue(mode = \"\"): Promise<XMLNode> {\r\n        return this.debug(\"continue\", {\r\n            mode\r\n        });\r\n    }\r\n\r\n    debugStep(mode: string): Promise<XMLNode> {\r\n        return this.debug(\"step\", {\r\n            mode\r\n        });\r\n    }\r\n\r\n    debugPause(): Promise<XMLNode> {\r\n        return this.debug(\"interrupt\");\r\n    }\r\n\r\n    debugQuit(): Promise<XMLNode> {\r\n        return this.debug(\"quit\");\r\n    }\r\n\r\n    debugDeleteAllBreakpoints(): Promise<XMLNode> {\r\n        return this.debug(\"delete\", {\r\n            idx: 0\r\n        });\r\n    }\r\n\r\n    protected debugBreakpointResponseParser(rootNode: StringAnyMap) {\r\n        return rootNode.children().map((childNode: XMLNode) => {\r\n            if (childNode.name === \"break\") {\r\n                return childNode.$;\r\n            }\r\n        });\r\n    }\r\n\r\n    debugBreakpointAdd(id: string, mode: string, action: string): Promise<XMLNode> {\r\n        return this.debug(\"breakpoint\", {\r\n            id,\r\n            mode,\r\n            action\r\n        }).then((rootNode) => {\r\n            return this.debugBreakpointResponseParser(rootNode);\r\n        });\r\n    }\r\n\r\n    debugBreakpointList(): Promise<any[]> {\r\n        return this.debug(\"list\").then((rootNode) => {\r\n            return this.debugBreakpointResponseParser(rootNode);\r\n        });\r\n    }\r\n\r\n    debugGraph(): Promise<XGMMLGraph> {\r\n        if (this._debugAllGraph && this.DebugState[\"_prevGraphSequenceNum\"] === this.DebugState[\"graphSequenceNum\"]) {\r\n            return Promise.resolve(this._debugAllGraph);\r\n        }\r\n        return this.debug(\"graph\", { name: \"all\" }).then((response) => {\r\n            this.DebugState[\"_prevGraphSequenceNum\"] = this.DebugState[\"graphSequenceNum\"];\r\n            this._debugAllGraph = createXGMMLGraph(this.Wuid, response);\r\n            return this._debugAllGraph;\r\n        });\r\n    }\r\n\r\n    debugBreakpointValid(path: string): Promise<IECLDefintion[]> {\r\n        return this.debugGraph().then((graph) => {\r\n            return breakpointLocations(graph, path);\r\n        });\r\n    }\r\n\r\n    debugPrint(edgeID: string, startRow: number = 0, numRows: number = 10): Promise<StringAnyMap[]> {\r\n        return this.debug(\"print\", {\r\n            edgeID,\r\n            startRow,\r\n            numRows\r\n        }).then((response: XMLNode) => {\r\n            return response.children().map((rowNode) => {\r\n                const retVal: StringAnyMap = {};\r\n                rowNode.children().forEach((cellNode) => {\r\n                    retVal[cellNode.name] = cellNode.content;\r\n                });\r\n                return retVal;\r\n            });\r\n        });\r\n    }\r\n}\r\n\r\nexport interface IECLDefintion {\r\n    id: string;\r\n    file: string;\r\n    line: number;\r\n    column: number;\r\n}\r\n\r\nconst ATTR_DEFINITION = \"definition\";\r\n\r\nfunction hasECLDefinition(vertex: XGMMLVertex): boolean {\r\n    return vertex._![ATTR_DEFINITION] !== undefined;\r\n}\r\n\r\nfunction getECLDefinition(vertex: XGMMLVertex): IECLDefintion {\r\n    const match = /([a-z]:\\\\(?:[-\\w\\.\\d]+\\\\)*(?:[-\\w\\.\\d]+)?|(?:\\/[\\w\\.\\-]+)+)\\((\\d*),(\\d*)\\)/.exec(vertex._![ATTR_DEFINITION]);\r\n    if (match) {\r\n        const [, _file, _row, _col] = match;\r\n        _file.replace(/\\/\\.\\//g, \"/\");\r\n        return {\r\n            id: vertex._![\"id\"],\r\n            file: _file,\r\n            line: +_row,\r\n            column: +_col\r\n        };\r\n    }\r\n    throw new Error(`Bad definition:  ${vertex._![ATTR_DEFINITION]}`);\r\n}\r\n\r\nfunction breakpointLocations(graph: XGMMLGraph, path?: string): IECLDefintion[] {\r\n    const retVal: IECLDefintion[] = [];\r\n    for (const vertex of graph.vertices) {\r\n        if (hasECLDefinition(vertex)) {\r\n            const definition = getECLDefinition(vertex);\r\n            if (definition && !path || path === definition.file) {\r\n                retVal.push(definition);\r\n            }\r\n        }\r\n    }\r\n    return retVal.sort((l, r) => {\r\n        return l.line - r.line;\r\n    });\r\n}\r\n","import { debounce, StateObject } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { WsSMC, SMCService } from \"../services/wsSMC.ts\";\r\nimport { Workunit } from \"./workunit.ts\";\r\n\r\nlet _activity: Activity;\r\n\r\nexport interface ActivityEx {\r\n}\r\n\r\nexport type UActivityState = WsSMC.ActivityResponse & ActivityEx;\r\nexport type IActivityState = WsSMC.ActivityResponse | ActivityEx;\r\nexport class Activity extends StateObject<UActivityState, IActivityState> implements UActivityState {\r\n    protected connection: SMCService;\r\n\r\n    get properties(): UActivityState { return this.get(); }\r\n    get Exceptions(): WsSMC.Exceptions { return this.get(\"Exceptions\"); }\r\n    get Build(): string { return this.get(\"Build\"); }\r\n    get ThorClusterList(): WsSMC.ThorClusterList { return this.get(\"ThorClusterList\"); }\r\n    get RoxieClusterList(): WsSMC.RoxieClusterList { return this.get(\"RoxieClusterList\"); }\r\n    get HThorClusterList(): WsSMC.HThorClusterList { return this.get(\"HThorClusterList\"); }\r\n    get DFUJobs(): WsSMC.DFUJobs { return this.get(\"DFUJobs\"); }\r\n    get Running(): WsSMC.Running { return this.get(\"Running\", { ActiveWorkunit: [] }); }\r\n    get BannerContent(): string { return this.get(\"BannerContent\"); }\r\n    get BannerColor(): string { return this.get(\"BannerColor\"); }\r\n    get BannerSize(): string { return this.get(\"BannerSize\"); }\r\n    get BannerScroll(): string { return this.get(\"BannerScroll\"); }\r\n    get ChatURL(): string { return this.get(\"ChatURL\"); }\r\n    get ShowBanner(): number { return this.get(\"ShowBanner\"); }\r\n    get ShowChatURL(): number { return this.get(\"ShowChatURL\"); }\r\n    get SortBy(): string { return this.get(\"SortBy\"); }\r\n    get Descending(): boolean { return this.get(\"Descending\"); }\r\n    get SuperUser(): boolean { return this.get(\"SuperUser\"); }\r\n    get AccessRight(): string { return this.get(\"AccessRight\"); }\r\n    get ServerJobQueues(): WsSMC.ServerJobQueues { return this.get(\"ServerJobQueues\"); }\r\n    get ActivityTime(): string { return this.get(\"ActivityTime\"); }\r\n    get DaliDetached(): boolean { return this.get(\"DaliDetached\"); }\r\n\r\n    static attach(optsConnection: IOptions | IConnection | SMCService, state?: IActivityState): Activity {\r\n        if (!_activity) {\r\n            _activity = new Activity(optsConnection);\r\n        }\r\n        if (state) {\r\n            _activity.set(state);\r\n        }\r\n        return _activity;\r\n    }\r\n\r\n    protected constructor(optsConnection: IOptions | IConnection | SMCService) {\r\n        super();\r\n        if (optsConnection instanceof SMCService) {\r\n            this.connection = optsConnection;\r\n        } else {\r\n            this.connection = new SMCService(optsConnection);\r\n        }\r\n        this.clear({\r\n        });\r\n    }\r\n\r\n    runningWorkunits(clusterName: string = \"\"): Workunit[] {\r\n        return this.Running.ActiveWorkunit.filter(awu => clusterName === \"\" || awu.ClusterName === clusterName).map(awu => Workunit.attach(this.connection.connectionOptions(), awu.Wuid, awu));\r\n    }\r\n\r\n    setBanner(request: Partial<WsSMC.SetBanner>): Promise<Activity> {\r\n        return this.connection.SetBanner({\r\n            ...request\r\n        } as WsSMC.SetBanner).then((response) => {\r\n            this.set(response);\r\n            return this;\r\n        });\r\n    }\r\n\r\n    lazyRefresh = debounce(async (): Promise<this> => {\r\n        const response = await this.connection.Activity({} as WsSMC.Activity);\r\n        this.set(response);\r\n        return this;\r\n    });\r\n\r\n    async refresh(): Promise<this> {\r\n        return this.lazyRefresh();\r\n    }\r\n}\r\n","import { Cache, scopedLogger, StateObject } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { DFUService, WsDfu } from \"../services/wsDFU.ts\";\r\nimport { ESPExceptions } from \"../espConnection.ts\";\r\n\r\nconst logger = scopedLogger(\"logicalFile.ts\");\r\n\r\nexport class LogicalFileCache extends Cache<{ BaseUrl: string, Cluster: string, Name: string }, LogicalFile> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return `${obj.BaseUrl}-${obj.Cluster}-${obj.Name}`;\r\n        });\r\n    }\r\n}\r\nconst _store = new LogicalFileCache();\r\n\r\nexport interface DFUPartEx extends WsDfu.DFUPart {\r\n    //  From WsDfu.DFUFilePartsOnCluster  ---\r\n    Cluster: string;\r\n    BaseDir: string;\r\n    ReplicateDir: string;\r\n    Replicate: boolean;\r\n    CanReplicate: boolean;\r\n}\r\n\r\nexport interface FileDetailEx extends WsDfu.FileDetail {\r\n    Cluster: string;\r\n    StateID?: number;\r\n}\r\n\r\nexport class LogicalFile extends StateObject<FileDetailEx, FileDetailEx> implements FileDetailEx {\r\n    protected connection: DFUService;\r\n    get BaseUrl() { return this.connection.baseUrl; }\r\n\r\n    get Cluster(): string { return this.get(\"Cluster\"); }\r\n    get Name(): string { return this.get(\"Name\"); }\r\n\r\n    get Filename(): string { return this.get(\"Filename\"); }\r\n    get Prefix(): string { return this.get(\"Prefix\"); }\r\n    get NodeGroup(): string { return this.get(\"NodeGroup\"); }\r\n    get NumParts(): number { return this.get(\"NumParts\"); }\r\n    get Description(): string { return this.get(\"Description\"); }\r\n    get Dir(): string { return this.get(\"Dir\"); }\r\n    get PathMask(): string { return this.get(\"PathMask\"); }\r\n    get Filesize(): string { return this.get(\"Filesize\"); }\r\n    get FileSizeInt64(): number { return this.get(\"FileSizeInt64\"); }\r\n    get RecordSize(): string { return this.get(\"RecordSize\"); }\r\n    get RecordCount(): string { return this.get(\"RecordCount\"); }\r\n    get RecordSizeInt64(): number { return this.get(\"RecordSizeInt64\"); }\r\n    get RecordCountInt64(): number { return this.get(\"RecordCountInt64\"); }\r\n    get Wuid(): string { return this.get(\"Wuid\"); }\r\n    get Owner(): string { return this.get(\"Owner\"); }\r\n    get JobName(): string { return this.get(\"JobName\"); }\r\n    get Persistent(): string { return this.get(\"Persistent\"); }\r\n    get Format(): string { return this.get(\"Format\"); }\r\n    get MaxRecordSize(): string { return this.get(\"MaxRecordSize\"); }\r\n    get CsvSeparate(): string { return this.get(\"CsvSeparate\"); }\r\n    get CsvQuote(): string { return this.get(\"CsvQuote\"); }\r\n    get CsvTerminate(): string { return this.get(\"CsvTerminate\"); }\r\n    get CsvEscape(): string { return this.get(\"CsvEscape\"); }\r\n    get Modified(): string { return this.get(\"Modified\"); }\r\n    get Ecl(): string { return this.get(\"Ecl\"); }\r\n    get Stat(): WsDfu.Stat { return this.get(\"Stat\"); }\r\n    get DFUFilePartsOnClusters(): WsDfu.DFUFilePartsOnClusters { return this.get(\"DFUFilePartsOnClusters\"); }\r\n    get isSuperfile(): boolean { return this.get(\"isSuperfile\"); }\r\n    get ShowFileContent(): boolean { return this.get(\"ShowFileContent\"); }\r\n    get subfiles(): WsDfu.subfiles { return this.get(\"subfiles\"); }\r\n    get Superfiles(): WsDfu.Superfiles { return this.get(\"Superfiles\"); }\r\n    get ProtectList(): WsDfu.ProtectList { return this.get(\"ProtectList\"); }\r\n    get FromRoxieCluster(): boolean { return this.get(\"FromRoxieCluster\"); }\r\n    get Graphs(): WsDfu.Graphs { return this.get(\"Graphs\"); }\r\n    get UserPermission(): string { return this.get(\"UserPermission\"); }\r\n    get ContentType(): string { return this.get(\"ContentType\"); }\r\n    get CompressedFileSize(): number { return this.get(\"CompressedFileSize\"); }\r\n    get PercentCompressed(): string { return this.get(\"PercentCompressed\"); }\r\n    get IsCompressed(): boolean { return this.get(\"IsCompressed\"); }\r\n    get BrowseData(): boolean { return this.get(\"BrowseData\"); }\r\n    get jsonInfo(): string { return this.get(\"jsonInfo\"); }\r\n    get binInfo(): WsDfu.base64Binary { return this.get(\"binInfo\"); }\r\n    get PackageID(): string { return this.get(\"PackageID\"); }\r\n    get Partition(): WsDfu.Partition { return this.get(\"Partition\"); }\r\n    get Blooms(): WsDfu.Blooms { return this.get(\"Blooms\"); }\r\n    get ExpireDays(): number { return this.get(\"ExpireDays\"); }\r\n    get KeyType(): string { return this.get(\"KeyType\"); }\r\n    get IsRestricted(): boolean { return this.get(\"IsRestricted\"); }\r\n    get AtRestCost(): number { return this.get(\"AtRestCost\"); }\r\n    get AccessCost(): number { return this.get(\"AccessCost\"); }\r\n    get StateID(): number { return this.get(\"StateID\"); }\r\n    get ExpirationDate(): string { return this.get(\"ExpirationDate\"); }\r\n    get ExtendedIndexInfo(): WsDfu.ExtendedIndexInfo { return this.get(\"ExtendedIndexInfo\"); }\r\n    get CompressionType(): string { return this.get(\"CompressionType\"); }\r\n\r\n    get properties(): FileDetailEx { return this.get(); }\r\n\r\n    static attach(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string, state?: FileDetailEx): LogicalFile {\r\n        const retVal: LogicalFile = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster, Name }, () => {\r\n            return new LogicalFile(optsConnection, Cluster, Name);\r\n        });\r\n        if (state) {\r\n            retVal.set(state);\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    protected constructor(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string) {\r\n        super();\r\n        if (optsConnection instanceof DFUService) {\r\n            this.connection = optsConnection;\r\n        } else {\r\n            this.connection = new DFUService(optsConnection);\r\n        }\r\n\r\n        this.clear({\r\n            Cluster,\r\n            Name\r\n        });\r\n    }\r\n\r\n    filePartsOnCluster() {\r\n        return [...(this.DFUFilePartsOnClusters?.DFUFilePartsOnCluster || [])];\r\n    }\r\n\r\n    fileParts() {\r\n        const retVal: DFUPartEx[] = [];\r\n        for (const poc of this.DFUFilePartsOnClusters?.DFUFilePartsOnCluster || []) {\r\n            for (const part of poc?.DFUFileParts?.DFUPart || []) {\r\n                const row = { ...poc, ...part };\r\n                delete row.DFUFileParts;\r\n                retVal.push(row);\r\n            }\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    update(request: Partial<WsDfu.DFUInfoRequest>): Promise<WsDfu.DFUInfoResponse> {\r\n        return this.connection.DFUInfo({\r\n            ...request,\r\n            ...{\r\n                Cluster: this.Cluster,\r\n                Name: this.Name\r\n            }\r\n        }).then((response) => {\r\n            this.set({\r\n                Cluster: this.Cluster,\r\n                ...response.FileDetail\r\n            });\r\n            return response;\r\n        });\r\n    }\r\n\r\n    fetchInfo(): Promise<WsDfu.FileDetail> {\r\n        return this.connection.DFUInfo({ Cluster: this.Cluster, Name: this.Name }).then(response => {\r\n            this.set({\r\n                Cluster: this.Cluster,\r\n                ...response.FileDetail,\r\n                ProtectList: response?.FileDetail?.ProtectList ?? { DFUFileProtect: [] }\r\n            });\r\n            return response.FileDetail;\r\n        }).catch((e: ESPExceptions) => {\r\n            //  deleted  ---\r\n            const fileMissing = e.Exception.some((exception) => {\r\n                if (exception.Code === 20038) {\r\n                    this.set(\"Name\", this.Name + \" (Deleted)\");\r\n                    this.set(\"StateID\", 999);\r\n                    return true;\r\n                }\r\n                return false;\r\n            });\r\n            if (!fileMissing) {\r\n                logger.warning(`Unexpected ESP exception: ${e.message}`);\r\n                throw e;\r\n            }\r\n            return {} as FileDetailEx;\r\n        });\r\n    }\r\n\r\n    fetchDefFile(format: WsDfu.DFUDefFileFormat): Promise<string> {\r\n        return this.connection.DFUFile({ Name: this.Name, Format: format });\r\n    }\r\n\r\n    fetchAllLogicalFiles(): Promise<string[]> {\r\n        return this.connection.recursiveFetchLogicalFiles([this]);\r\n    }\r\n\r\n    fetchListHistory(): Promise<WsDfu.Origin[]> {\r\n        return this.connection.ListHistory({ Name: this.Name }).then(response => {\r\n            return response?.History?.Origin || [];\r\n        });\r\n    }\r\n\r\n    eraseHistory(): Promise<WsDfu.Origin[]> {\r\n        return this.connection.EraseHistory({ Name: this.Name }).then(response => {\r\n            return response?.History?.Origin || [];\r\n        });\r\n    }\r\n}\r\n","import { Cache, StateObject } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { WsMachine, MachineService } from \"../services/wsMachine.ts\";\r\n\r\nexport class MachineCache extends Cache<{ Address: string }, Machine> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return obj.Address;\r\n        });\r\n    }\r\n}\r\nconst _machines = new MachineCache();\r\n\r\nexport interface MachineInfoEx extends WsMachine.MachineInfoEx {\r\n}\r\n\r\nexport class Machine extends StateObject<MachineInfoEx, MachineInfoEx> implements MachineInfoEx {\r\n    protected connection: MachineService;\r\n\r\n    get Address(): string { return this.get(\"Address\"); }\r\n    get ConfigAddress(): string { return this.get(\"ConfigAddress\"); }\r\n    get Name(): string { return this.get(\"Name\"); }\r\n    get ProcessType(): string { return this.get(\"ProcessType\"); }\r\n    get DisplayType(): string { return this.get(\"DisplayType\"); }\r\n    get Description(): string { return this.get(\"Description\"); }\r\n    get AgentVersion(): string { return this.get(\"AgentVersion\"); }\r\n    get Contact(): string { return this.get(\"Contact\"); }\r\n    get Location(): string { return this.get(\"Location\"); }\r\n    get UpTime(): string { return this.get(\"UpTime\"); }\r\n    get ComponentName(): string { return this.get(\"ComponentName\"); }\r\n    get ComponentPath(): string { return this.get(\"ComponentPath\"); }\r\n    get RoxieState(): string { return this.get(\"RoxieState\"); }\r\n    get RoxieStateDetails(): string { return this.get(\"RoxieStateDetails\"); }\r\n    get OS(): number { return this.get(\"OS\"); }\r\n    get ProcessNumber(): number { return this.get(\"ProcessNumber\"); }\r\n    get Channels(): number { return this.get(\"Channels\"); }\r\n    get Processors(): WsMachine.Processors { return this.get(\"Processors\"); }\r\n    get Storage(): WsMachine.Storage { return this.get(\"Storage\"); }\r\n    get Running(): WsMachine.Running { return this.get(\"Running\"); }\r\n    get PhysicalMemory(): WsMachine.PhysicalMemory { return this.get(\"PhysicalMemory\"); }\r\n    get VirtualMemory(): WsMachine.VirtualMemory { return this.get(\"VirtualMemory\"); }\r\n    get ComponentInfo(): WsMachine.ComponentInfo { return this.get(\"ComponentInfo\"); }\r\n    get Exception(): string { return this.get(\"Exception\"); }\r\n\r\n    static attach(optsConnection: IOptions | IConnection | MachineService, address: string, state?: WsMachine.MachineInfoEx): Machine {\r\n        const retVal: Machine = _machines.get({ Address: address }, () => {\r\n            return new Machine(optsConnection);\r\n        });\r\n        if (state) {\r\n            retVal.set(state);\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    private constructor(optsConnection: IOptions | IConnection | MachineService) {\r\n        super();\r\n        if (optsConnection instanceof MachineService) {\r\n            this.connection = optsConnection;\r\n        } else {\r\n            this.connection = new MachineService(optsConnection);\r\n        }\r\n    }\r\n}\r\n","import { Cache, StateObject } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { WsMachine, WsMachineEx, MachineService } from \"../services/wsMachine.ts\";\r\nimport { TopologyService, WsTopology } from \"../services/wsTopology.ts\";\r\nimport { Machine } from \"./machine.ts\";\r\n\r\nexport class TargetClusterCache extends Cache<{ BaseUrl: string, Name: string }, TargetCluster> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return `${obj.BaseUrl}-${obj.Name}`;\r\n        });\r\n    }\r\n}\r\nconst _targetCluster = new TargetClusterCache();\r\n\r\nexport interface TpTargetClusterEx {\r\n    MachineInfoEx: WsMachine.MachineInfoEx[];\r\n}\r\n\r\nexport type UTargetClusterState = WsTopology.TpTargetCluster & WsTopology.TpClusterNameType & TpTargetClusterEx;\r\nexport type ITargetClusterState = WsTopology.TpTargetCluster | WsTopology.TpClusterNameType | TpTargetClusterEx;\r\nexport class TargetCluster extends StateObject<UTargetClusterState, ITargetClusterState> implements UTargetClusterState {\r\n    protected connection: TopologyService;\r\n    protected machineConnection: MachineService;\r\n    get BaseUrl() { return this.connection.baseUrl; }\r\n\r\n    get Name(): string { return this.get(\"Name\"); }\r\n    get Prefix(): string { return this.get(\"Prefix\"); }\r\n    get Type(): string { return this.get(\"Type\"); }\r\n    get IsDefault(): boolean { return this.get(\"IsDefault\"); }\r\n    get TpClusters(): WsTopology.TpClusters { return this.get(\"TpClusters\"); }\r\n    get TpEclCCServers(): WsTopology.TpEclCCServers { return this.get(\"TpEclCCServers\"); }\r\n    get TpEclServers(): WsTopology.TpEclServers { return this.get(\"TpEclServers\"); }\r\n    get TpEclAgents(): WsTopology.TpEclAgents { return this.get(\"TpEclAgents\"); }\r\n    get TpEclSchedulers(): WsTopology.TpEclSchedulers { return this.get(\"TpEclSchedulers\"); }\r\n    get MachineInfoEx(): WsMachine.MachineInfoEx[] { return this.get(\"MachineInfoEx\", []); }\r\n    get CMachineInfoEx(): Machine[] {\r\n        return this.MachineInfoEx.map(machineInfoEx => Machine.attach(this.machineConnection, machineInfoEx.Address, machineInfoEx));\r\n    }\r\n\r\n    static attach(optsConnection: IOptions | IConnection | TopologyService, name: string, state?: ITargetClusterState): TargetCluster {\r\n        const retVal: TargetCluster = _targetCluster.get({ BaseUrl: optsConnection.baseUrl, Name: name }, () => {\r\n            return new TargetCluster(optsConnection, name);\r\n        });\r\n        if (state) {\r\n            retVal.set(state);\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    protected constructor(optsConnection: IOptions | IConnection | TopologyService, name: string) {\r\n        super();\r\n        if (optsConnection instanceof TopologyService) {\r\n            this.connection = optsConnection;\r\n            this.machineConnection = new MachineService(optsConnection.connectionOptions());\r\n        } else {\r\n            this.connection = new TopologyService(optsConnection);\r\n            this.machineConnection = new MachineService(optsConnection);\r\n        }\r\n        this.clear({\r\n            Name: name\r\n        });\r\n    }\r\n\r\n    fetchMachines(request: WsMachine.GetTargetClusterInfoRequest = {}): Promise<Machine[]> {\r\n        return this.machineConnection.GetTargetClusterInfo({\r\n            TargetClusters: {\r\n                Item: [`${this.Type}:${this.Name}`]\r\n            },\r\n            ...request\r\n        }).then(response => {\r\n            const retVal: WsMachine.MachineInfoEx[] = [];\r\n            for (const machineInfo of response.TargetClusterInfoList.TargetClusterInfo) {\r\n                for (const machineInfoEx of machineInfo.Processes.MachineInfoEx) {\r\n                    retVal.push(machineInfoEx);\r\n                }\r\n            }\r\n            this.set(\"MachineInfoEx\", retVal);\r\n            return this.CMachineInfoEx;\r\n        });\r\n    }\r\n\r\n    machineStats(): { maxDisk: number; meanDisk: number } {\r\n        let maxDisk = 0;\r\n        let totalFree = 0;\r\n        let total = 0;\r\n        for (const machine of this.CMachineInfoEx) {\r\n            for (const storageInfo of machine.Storage.StorageInfo) {\r\n                totalFree += storageInfo.Available;\r\n                total += storageInfo.Total;\r\n                const usage = 1 - storageInfo.Available / storageInfo.Total;\r\n                if (usage > maxDisk) {\r\n                    maxDisk = usage;\r\n                }\r\n            }\r\n        }\r\n        return {\r\n            maxDisk,\r\n            meanDisk: 1 - (total ? totalFree / total : 1)\r\n        };\r\n    }\r\n\r\n    fetchUsage(): Promise<WsMachineEx.TargetClusterUsage[]> {\r\n        return this.machineConnection.GetTargetClusterUsageEx([this.Name]);\r\n    }\r\n}\r\n\r\nexport function targetClusters(optsConnection: IOptions | IConnection | TopologyService): Promise<TargetCluster[]> {\r\n    let connection: TopologyService;\r\n    if (optsConnection instanceof TopologyService) {\r\n        connection = optsConnection;\r\n    } else {\r\n        connection = new TopologyService(optsConnection);\r\n    }\r\n    return connection.TpListTargetClusters({}).then(response => {\r\n        return response.TargetClusters.TpClusterNameType.map(item => TargetCluster.attach(optsConnection, item.Name, item));\r\n    });\r\n}\r\n\r\nconst _defaultTargetCluster: { [baseUrl: string]: Promise<TargetCluster> } = {};\r\nexport function defaultTargetCluster(optsConnection: IOptions | IConnection | TopologyService): Promise<TargetCluster> {\r\n    if (!_defaultTargetCluster[optsConnection.baseUrl]) {\r\n        let connection: TopologyService;\r\n        if (optsConnection instanceof TopologyService) {\r\n            connection = optsConnection;\r\n        } else {\r\n            connection = new TopologyService(optsConnection);\r\n        }\r\n        _defaultTargetCluster[optsConnection.baseUrl] = connection.TpListTargetClusters({}).then(response => {\r\n            let firstItem: WsTopology.TpClusterNameType;\r\n            let defaultItem: WsTopology.TpClusterNameType;\r\n            let hthorItem: WsTopology.TpClusterNameType;\r\n            response.TargetClusters.TpClusterNameType.forEach(item => {\r\n                if (!firstItem) {\r\n                    firstItem = item;\r\n                }\r\n                if (!defaultItem && item.IsDefault === true) {\r\n                    defaultItem = item;\r\n                }\r\n                if (!hthorItem && item.Type === \"hthor\") {\r\n                    hthorItem = item;\r\n                }\r\n            });\r\n            const defItem = defaultItem || hthorItem || firstItem;\r\n            return TargetCluster.attach(optsConnection, defItem.Name, defItem);\r\n        });\r\n    }\r\n    return _defaultTargetCluster[optsConnection.baseUrl];\r\n}\r\n","import { Cache, exists, StateCallback, StateEvents, StateObject, StatePropCallback } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { TopologyService, WsTopology } from \"../services/wsTopology.ts\";\r\nimport { TargetCluster } from \"./targetCluster.ts\";\r\n\r\nexport class TopologyCache extends Cache<{ BaseUrl: string }, Topology> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return obj.BaseUrl;\r\n        });\r\n    }\r\n}\r\nconst _topology = new TopologyCache();\r\n\r\nexport interface TopologyStateEx {\r\n    TargetClusters?: WsTopology.TpTargetCluster[];\r\n    LogicalClusters?: WsTopology.TpLogicalCluster[];\r\n    Services?: WsTopology.ServiceList;\r\n}\r\nexport class Topology extends StateObject<TopologyStateEx, TopologyStateEx> implements TopologyStateEx {\r\n    protected connection: TopologyService;\r\n    get BaseUrl() { return this.connection.baseUrl; }\r\n\r\n    //  Accessors  ---\r\n    get properties(): TopologyStateEx { return this.get(); }\r\n    get TargetClusters(): WsTopology.TpTargetCluster[] { return this.get(\"TargetClusters\"); }\r\n    get CTargetClusters(): TargetCluster[] {\r\n        return this.TargetClusters.map(tc => TargetCluster.attach(this.connection, tc.Name, tc));\r\n    }\r\n    get LogicalClusters(): WsTopology.TpLogicalCluster[] { return this.get(\"LogicalClusters\"); }\r\n    get Services(): WsTopology.ServiceList { return this.get(\"Services\"); }\r\n\r\n    static attach(optsConnection: IOptions | IConnection | TopologyService, state?: TopologyStateEx): Topology {\r\n        const retVal: Topology = _topology.get({ BaseUrl: optsConnection.baseUrl }, () => {\r\n            return new Topology(optsConnection);\r\n        });\r\n        if (state) {\r\n            retVal.set(state);\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    protected constructor(optsConnection: IOptions | IConnection | TopologyService) {\r\n        super();\r\n        if (optsConnection instanceof TopologyService) {\r\n            this.connection = optsConnection;\r\n        } else {\r\n            this.connection = new TopologyService(optsConnection);\r\n        }\r\n    }\r\n\r\n    GetESPServiceBaseURL(type: string = \"\"): Promise<string> {\r\n        return this.connection.TpServiceQuery({}).then(response => {\r\n            const rootProtocol = this.connection.protocol();\r\n            const ip = this.connection.ip();\r\n            let port = rootProtocol === \"https:\" ? \"18002\" : \"8002\";\r\n            if (exists(\"ServiceList.TpEspServers.TpEspServer\", response)) {\r\n                for (const item of response.ServiceList.TpEspServers.TpEspServer) {\r\n                    if (exists(\"TpBindings.TpBinding\", item)) {\r\n                        for (const binding of item.TpBindings.TpBinding) {\r\n                            if (binding.Service === type && binding.Protocol + \":\" === rootProtocol) {\r\n                                port = binding.Port;\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            return `${rootProtocol}//${ip}:${port}/`;\r\n        });\r\n    }\r\n\r\n    fetchTargetClusters(): Promise<TargetCluster[]> {\r\n        return this.connection.TpTargetClusterQuery({ Type: \"ROOT\" }).then(response => {\r\n            this.set({\r\n                TargetClusters: response.TpTargetClusters?.TpTargetCluster ?? []\r\n            });\r\n            return this.CTargetClusters;\r\n        });\r\n    }\r\n\r\n    fetchLogicalClusters(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.TpLogicalCluster[]> {\r\n        return this.connection.TpLogicalClusterQuery(request).then(response => {\r\n            this.set({\r\n                LogicalClusters: response.TpLogicalClusters.TpLogicalCluster\r\n            });\r\n            return this.LogicalClusters;\r\n        });\r\n    }\r\n\r\n    fetchServices(request: WsTopology.TpServiceQueryRequest = {}): Promise<WsTopology.ServiceList> {\r\n        return this.connection.TpServiceQuery(request).then(response => {\r\n            this.set({\r\n                Services: response.ServiceList\r\n            });\r\n            return this.Services;\r\n        });\r\n    }\r\n\r\n    protected _prevRefresh;\r\n    refresh(force: boolean = false): Promise<this> {\r\n        if (!this._prevRefresh || force) {\r\n            this._prevRefresh = Promise.all([this.fetchTargetClusters(), this.fetchLogicalClusters(), this.fetchServices()]).then(() => {\r\n                return this;\r\n            });\r\n        }\r\n        return this._prevRefresh;\r\n    }\r\n\r\n    //  Monitoring  ---\r\n\r\n    //  Events  ---\r\n    on(eventID: StateEvents, propIDorCallback: StateCallback | keyof TopologyStateEx, callback?: StatePropCallback): this {\r\n        if (this.isCallback(propIDorCallback)) {\r\n            switch (eventID) {\r\n                case \"changed\":\r\n                    super.on(eventID, propIDorCallback);\r\n                    break;\r\n                default:\r\n            }\r\n        } else {\r\n            switch (eventID) {\r\n                case \"changed\":\r\n                    super.on(eventID, propIDorCallback, callback!);\r\n                    break;\r\n                default:\r\n            }\r\n        }\r\n        this._monitor();\r\n        return this;\r\n    }\r\n}\r\n","//  Ported from:  https://github.com/hpcc-systems/HPCC-Platform/blob/f0ed9dbeca49c39fb55aa28fec295c89407ac663/esp/src/src/ESPGraph.ts\r\n\r\nexport function safeAssign(obj: { [id: string]: any }, key: string, value: string) {\r\n    if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") return;\r\n    obj[key] = value;\r\n}\r\n\r\nfunction xmlEncode(str: string): string {\r\n    str = \"\" + str;\r\n    return str.replace(/&/g, \"&amp;\")\r\n        .replace(/\"/g, \"&quot;\")\r\n        .replace(/'/g, \"&apos;\")\r\n        .replace(/</g, \"&lt;\")\r\n        .replace(/>/g, \"&gt;\")\r\n        .replace(/\\n/g, \"&#10;\")\r\n        .replace(/\\r/g, \"&#13;\")\r\n        ;\r\n}\r\n\r\nfunction espTime2Seconds(duration?: string): number {\r\n    if (!duration) {\r\n        return 0;\r\n    } else if (!isNaN(+duration)) {\r\n        return parseFloat(duration);\r\n    }\r\n    const re = /(?:(?:(\\d+).days.)?(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+\\.\\d+|\\d+)s))|(?:(\\d+\\.\\d+|\\d+)ms|(\\d+\\.\\d+|\\d+)us|(\\d+\\.\\d+|\\d+)ns)/;\r\n    const match = re.exec(duration);\r\n    if (!match) return 0;\r\n    const days = +match[1] || 0;\r\n    const hours = +match[2] || 0;\r\n    const mins = +match[3] || 0;\r\n    const secs = +match[4] || 0;\r\n    const ms = +match[5] || 0;\r\n    const us = +match[6] || 0;\r\n    const ns = +match[7] || 0;\r\n    return (days * 24 * 60 * 60) + (hours * 60 * 60) + (mins * 60) + secs + ms / 1000 + us / 1000000 + ns / 1000000000;\r\n}\r\n\r\nfunction unitTest(size: string, unit: string) {\r\n    const nsIndex = size.indexOf(unit);\r\n    if (nsIndex !== -1) {\r\n        return parseFloat(size.substring(0, nsIndex));\r\n    }\r\n    return -1;\r\n}\r\n\r\nfunction espSize2Bytes(size: string): number {\r\n    if (!size) {\r\n        return 0;\r\n    } else if (!isNaN(+size)) {\r\n        return parseFloat(size);\r\n    }\r\n    let retVal = unitTest(size, \"Kb\");\r\n    if (retVal >= 0) {\r\n        return retVal * 1024;\r\n    }\r\n    retVal = unitTest(size, \"Mb\");\r\n    if (retVal >= 0) {\r\n        return retVal * Math.pow(1024, 2);\r\n    }\r\n    retVal = unitTest(size, \"Gb\");\r\n    if (retVal >= 0) {\r\n        return retVal * Math.pow(1024, 3);\r\n    }\r\n    retVal = unitTest(size, \"Tb\");\r\n    if (retVal >= 0) {\r\n        return retVal * Math.pow(1024, 4);\r\n    }\r\n    retVal = unitTest(size, \"Pb\");\r\n    if (retVal >= 0) {\r\n        return retVal * Math.pow(1024, 5);\r\n    }\r\n    retVal = unitTest(size, \"Eb\");\r\n    if (retVal >= 0) {\r\n        return retVal * Math.pow(1024, 6);\r\n    }\r\n    retVal = unitTest(size, \"Zb\");\r\n    if (retVal >= 0) {\r\n        return retVal * Math.pow(1024, 7);\r\n    }\r\n    retVal = unitTest(size, \"b\");\r\n    if (retVal >= 0) {\r\n        return retVal;\r\n    }\r\n    return 0;\r\n}\r\n\r\nfunction espSkew2Number(skew: string): number {\r\n    if (!skew) {\r\n        return 0;\r\n    }\r\n    return parseFloat(skew);\r\n}\r\n\r\nenum GRAPH_TYPE {\r\n    UNKNOWN = 0,\r\n    GRAPH = 1,\r\n    SUBGRAPH = 2,\r\n    VERTEX = 3,\r\n    EDGE = 4,\r\n    LAST = 5\r\n}\r\n\r\nenum GRAPH_TYPE_STRING {\r\n    UNKNOWN = \"Unknown\",\r\n    GRAPH = \"Graph\",\r\n    SUBGRAPH = \"Cluster\",\r\n    VERTEX = \"Vertex\",\r\n    EDGE = \"Edge\",\r\n    LAST = \"Last\"\r\n}\r\n\r\nclass LocalisedXGMMLWriter {\r\n\r\n    graph: QueryGraph;\r\n    m_xgmml: string;\r\n    m_visibleSubgraphs: { [id: string]: Subgraph };\r\n    m_visibleVertices: { [id: string]: Vertex };\r\n    m_semiVisibleVertices: { [id: string]: Vertex };\r\n    m_visibleEdges: { [id: string]: Edge };\r\n    noSpills: boolean;\r\n\r\n    constructor(graph: QueryGraph) {\r\n        this.graph = graph;\r\n\r\n        this.m_xgmml = \"\";\r\n        this.m_visibleSubgraphs = {};\r\n        this.m_visibleVertices = {};\r\n        this.m_semiVisibleVertices = {};\r\n        this.m_visibleEdges = {};\r\n    }\r\n\r\n    calcVisibility(items: GraphItem[], localisationDepth: number, localisationDistance: number, noSpills: boolean): void {\r\n        this.noSpills = noSpills;\r\n        items.forEach((item) => {\r\n            if (this.graph.isVertex(item)) {\r\n                this.calcInVertexVisibility(item, localisationDistance);\r\n                this.calcOutVertexVisibility(item, localisationDistance);\r\n            } else if (this.graph.isEdge(item)) {\r\n                this.calcInVertexVisibility(item.getSource(), localisationDistance - 1);\r\n                this.calcOutVertexVisibility(item.getTarget(), localisationDistance - 1);\r\n            } else if (this.graph.isSubgraph(item)) {\r\n                this.m_visibleSubgraphs[item.__hpcc_id] = item;\r\n                this.calcSubgraphVisibility(item, localisationDepth - 1);\r\n            }\r\n        });\r\n        this.calcVisibility2();\r\n    }\r\n\r\n    calcInVertexVisibility(vertex: Vertex, localisationDistance: number) {\r\n        if (this.noSpills && vertex.isSpill()) {\r\n            localisationDistance++;\r\n        }\r\n        this.m_visibleVertices[vertex.__hpcc_id] = vertex;\r\n        if (localisationDistance > 0) {\r\n            vertex.getInEdges().forEach(edge => {\r\n                this.calcInVertexVisibility(edge.getSource(), localisationDistance - 1);\r\n            });\r\n        }\r\n    }\r\n\r\n    calcOutVertexVisibility(vertex: Vertex, localisationDistance: number): void {\r\n        if (this.noSpills && vertex.isSpill()) {\r\n            localisationDistance++;\r\n        }\r\n        this.m_visibleVertices[vertex.__hpcc_id] = vertex;\r\n        if (localisationDistance > 0) {\r\n            vertex.getOutEdges().forEach(edge => {\r\n                this.calcOutVertexVisibility(edge.getTarget(), localisationDistance - 1);\r\n            });\r\n        }\r\n    }\r\n\r\n    calcSubgraphVisibility(subgraph: Subgraph, localisationDepth: number): void {\r\n        if (localisationDepth < 0) {\r\n            return;\r\n        }\r\n\r\n        if (localisationDepth > 0) {\r\n            subgraph.__hpcc_subgraphs.forEach((subgraph, idx) => {\r\n                this.calcSubgraphVisibility(subgraph, localisationDepth - 1);\r\n            });\r\n        }\r\n\r\n        subgraph.__hpcc_subgraphs.forEach((subgraph, idx) => {\r\n            this.m_visibleSubgraphs[subgraph.__hpcc_id] = subgraph;\r\n        });\r\n        subgraph.__hpcc_vertices.forEach((vertex, idx) => {\r\n            this.m_visibleVertices[vertex.__hpcc_id] = vertex;\r\n        });\r\n\r\n        //  Calculate edges that pass through the subgraph  ---\r\n        const dedupEdges = {};\r\n        this.graph.edges.forEach((edge: Edge, idx: any) => {\r\n            if (edge.getSource().__hpcc_parent !== edge.getTarget().__hpcc_parent && subgraph === this.getCommonAncestor(edge)) {\r\n                //  Only include one unique edge between subgraphs  ---\r\n                if (!dedupEdges[edge.getSource().__hpcc_parent.__hpcc_id + \"::\" + edge.getTarget().__hpcc_parent.__hpcc_id]) {\r\n                    dedupEdges[edge.getSource().__hpcc_parent.__hpcc_id + \"::\" + edge.getTarget().__hpcc_parent.__hpcc_id] = true;\r\n                    this.m_visibleEdges[edge.__hpcc_id] = edge;\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n    buildVertexString(vertex: Vertex, isPoint: boolean): string {\r\n        let attrStr = \"\";\r\n        let propsStr = \"\";\r\n        const props = vertex.getProperties();\r\n        for (const key in props) {\r\n            if (isPoint && key.indexOf(\"_kind\") >= 0) {\r\n                propsStr += \"<att name=\\\"_kind\\\" value=\\\"point\\\"/>\";\r\n            } else if (key === \"id\" || key === \"label\") {\r\n                attrStr += \" \" + key + \"=\\\"\" + xmlEncode(props[key]) + \"\\\"\";\r\n            } else {\r\n                propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\r\n            }\r\n        }\r\n        return \"<node\" + attrStr + \">\" + propsStr + \"</node>\";\r\n    }\r\n\r\n    buildEdgeString(edge: Edge): string {\r\n        let attrStr: string = \"\";\r\n        let propsStr: string = \"\";\r\n        const props = edge.getProperties();\r\n        for (const key in props) {\r\n            if (key.toLowerCase() === \"id\" ||\r\n                key.toLowerCase() === \"label\" ||\r\n                key.toLowerCase() === \"source\" ||\r\n                key.toLowerCase() === \"target\") {\r\n                attrStr += \" \" + key + \"=\\\"\" + xmlEncode(props[key]) + \"\\\"\";\r\n            } else {\r\n                propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\r\n            }\r\n        }\r\n        return \"<edge\" + attrStr + \">\" + propsStr + \"</edge>\";\r\n    }\r\n\r\n    getAncestors(v: Vertex, ancestors: Subgraph[]): void {\r\n        let parent = v.__hpcc_parent;\r\n        while (parent) {\r\n            ancestors.push(parent);\r\n            parent = parent.__hpcc_parent;\r\n        }\r\n    }\r\n\r\n    getCommonAncestorV(v1: Vertex, v2: Vertex): Subgraph | null {\r\n        const v1_ancestors = [];\r\n        const v2_ancestors = [];\r\n        this.getAncestors(v1, v1_ancestors);\r\n        this.getAncestors(v2, v2_ancestors);\r\n        let finger1 = v1_ancestors.length - 1;\r\n        let finger2 = v2_ancestors.length - 1;\r\n        let retVal = null;\r\n        while (finger1 >= 0 && finger2 >= 0 && v1_ancestors[finger1] === v2_ancestors[finger2]) {\r\n            retVal = v1_ancestors[finger1];\r\n            --finger1;\r\n            --finger2;\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    getCommonAncestor(e: Edge): Subgraph | null {\r\n        return this.getCommonAncestorV(e.getSource(), e.getTarget());\r\n    }\r\n\r\n    calcAncestorVisibility(vertex: Vertex): void {\r\n        const ancestors = [];\r\n        this.getAncestors(vertex, ancestors);\r\n        ancestors.forEach((item, idx) => {\r\n            this.m_visibleSubgraphs[item.__hpcc_id] = item;\r\n        });\r\n    }\r\n\r\n    calcVisibility2(): void {\r\n        for (const key in this.m_visibleVertices) {\r\n            const vertex = this.m_visibleVertices[key];\r\n            vertex.getInEdges().forEach((edge: Edge, idx: any) => {\r\n                this.m_visibleEdges[edge.__hpcc_id] = edge;\r\n            });\r\n            vertex.getOutEdges().forEach((edge: Edge, idx: any) => {\r\n                this.m_visibleEdges[edge.__hpcc_id] = edge;\r\n            });\r\n            this.calcAncestorVisibility(vertex);\r\n        }\r\n        this.calcSemiVisibleVertices();\r\n    }\r\n\r\n    addSemiVisibleEdge(edge: Edge): void {\r\n        if (edge && !this.m_visibleEdges[edge.__hpcc_id]) {\r\n            this.m_visibleEdges[edge.__hpcc_id] = edge;\r\n        }\r\n    }\r\n\r\n    addSemiVisibleVertex(vertex: Vertex): void {\r\n        if (!this.m_visibleVertices[vertex.__hpcc_id]) {\r\n            this.m_semiVisibleVertices[vertex.__hpcc_id] = vertex;\r\n            this.calcAncestorVisibility(vertex);\r\n        }\r\n    }\r\n\r\n    calcSemiVisibleVertices(): void {\r\n        for (const key in this.m_visibleEdges) {\r\n            const edge = this.m_visibleEdges[key];\r\n            let source = edge.getSource();\r\n            this.addSemiVisibleVertex(source);\r\n            while (this.noSpills && source.isSpill()) {\r\n                const inEdges = source.getInEdges();\r\n                if (inEdges.length) {\r\n                    this.addSemiVisibleEdge(inEdges[0]);\r\n                    source = inEdges[0].getSource();\r\n                    this.addSemiVisibleVertex(source);\r\n                } else {\r\n                    break;\r\n                }\r\n            }\r\n            let target = edge.getTarget();\r\n            this.addSemiVisibleVertex(target);\r\n            while (this.noSpills && target.isSpill()) {\r\n                const outEdges = target.getOutEdges();\r\n                if (outEdges.length) {\r\n                    this.addSemiVisibleEdge(outEdges[0]);\r\n                    target = outEdges[0].getTarget();\r\n                    this.addSemiVisibleVertex(target);\r\n                } else {\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    writeXgmml(): void {\r\n        this.subgraphVisited(this.graph.subgraphs[0], true);\r\n        this.graph.edges.forEach((edge: any, idx: any) => {\r\n            this.edgeVisited(edge);\r\n        });\r\n    }\r\n\r\n    subgraphVisited(subgraph: Subgraph, root: boolean = false): boolean {\r\n        if (this.m_visibleSubgraphs[subgraph.__hpcc_id]) {\r\n            let propsStr = \"\";\r\n            this.m_xgmml += root ? \"\" : \"<node id=\\\"\" + subgraph.__hpcc_id + \"\\\"><att><graph>\";\r\n            const xgmmlLen = this.m_xgmml.length;\r\n            subgraph.walkSubgraphs(this);\r\n            subgraph.walkVertices(this);\r\n            if (xgmmlLen === this.m_xgmml.length) {\r\n                //  Add at least one child otherwise subgraphs will render as a vertex  ---\r\n                const vertex = subgraph.__hpcc_vertices[0];\r\n                if (vertex) {\r\n                    this.m_xgmml += this.buildVertexString(vertex, true);\r\n                }\r\n            }\r\n\r\n            const props = subgraph.getProperties();\r\n            for (const key in props) {\r\n                propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\r\n            }\r\n            this.m_xgmml += root ? \"\" : \"</graph></att>\" + propsStr + \"</node>\";\r\n        }\r\n        return false;\r\n    }\r\n\r\n    vertexVisited(vertex: Vertex) {\r\n        if (this.m_visibleVertices[vertex.__hpcc_id]) {\r\n            this.m_xgmml += this.buildVertexString(vertex, false);\r\n        } else if (this.m_semiVisibleVertices[vertex.__hpcc_id]) {\r\n            this.m_xgmml += this.buildVertexString(vertex, true);\r\n        }\r\n    }\r\n\r\n    edgeVisited(edge: Edge) {\r\n        if (this.m_visibleEdges[edge.__hpcc_id]) {\r\n            this.m_xgmml += this.buildEdgeString(edge);\r\n        }\r\n    }\r\n}\r\n\r\nabstract class GraphItem {\r\n\r\n    abstract _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\";\r\n\r\n    __hpcc_graph: QueryGraph;\r\n    __hpcc_parent: Subgraph;\r\n    __widget: any;\r\n\r\n    __hpcc_id: string;\r\n    _globalID: string;\r\n\r\n    constructor(graph: QueryGraph, id: string) {\r\n        this.__hpcc_graph = graph;\r\n        this.__hpcc_id = id;\r\n        this._globalID = id;\r\n    }\r\n\r\n    getProperties() {\r\n        const retVal: { [id: string]: any } = {};\r\n        for (const key in this) {\r\n            if (key.indexOf(\"__\") !== 0 && this.hasOwnProperty(key)) {\r\n                retVal[key] = this[key];\r\n            }\r\n        }\r\n        return retVal;\r\n    }\r\n}\r\n\r\nclass Subgraph extends GraphItem {\r\n    _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\";\r\n\r\n    __hpcc_subgraphs: any[];\r\n    __hpcc_vertices: any[];\r\n    __hpcc_edges: any[];\r\n    id: string;\r\n\r\n    constructor(graph: QueryGraph, id: string) {\r\n        super(graph, id);\r\n        this._globalType = id === \"0\" ? \"Graph\" : \"Cluster\";\r\n        this.__hpcc_subgraphs = [];\r\n        this.__hpcc_vertices = [];\r\n        this.__hpcc_edges = [];\r\n        this.id = id;\r\n    }\r\n\r\n    addSubgraph(subgraph) {\r\n        subgraph.__hpcc_parent = this;\r\n        if (!this.__hpcc_subgraphs.some(subgraph2 => subgraph === subgraph2)) {\r\n            this.__hpcc_subgraphs.push(subgraph);\r\n        }\r\n    }\r\n\r\n    addVertex(vertex) {\r\n        vertex.__hpcc_parent = this;\r\n        if (!this.__hpcc_vertices.some(vertex2 => vertex === vertex2)) {\r\n            this.__hpcc_vertices.push(vertex);\r\n        }\r\n    }\r\n\r\n    removeVertex(vertex: any) {\r\n        this.__hpcc_vertices = this.__hpcc_vertices.filter(vertex2 => vertex !== vertex2);\r\n    }\r\n\r\n    addEdge(edge) {\r\n        edge.__hpcc_parent = this;\r\n        if (!this.__hpcc_edges.some(edge2 => edge === edge2)) {\r\n            this.__hpcc_edges.push(edge);\r\n        }\r\n    }\r\n\r\n    removeEdge(edge: any) {\r\n        this.__hpcc_edges = this.__hpcc_edges.filter(edge2 => edge !== edge2);\r\n    }\r\n\r\n    remove() {\r\n        this.__hpcc_subgraphs.forEach(subgraph => subgraph.__hpcc_parent = this.__hpcc_parent);\r\n        this.__hpcc_vertices.forEach(vertex => vertex.__hpcc_parent = this.__hpcc_parent);\r\n        this.__hpcc_edges.forEach(edge => edge.__hpcc_parent = this.__hpcc_parent);\r\n        delete this.__hpcc_parent;\r\n        this.__hpcc_graph.removeItem(this);\r\n    }\r\n\r\n    walkSubgraphs(visitor: { subgraphVisited: (arg0: Subgraph) => boolean; }) {\r\n        this.__hpcc_subgraphs.forEach((subgraph, idx) => {\r\n            if (visitor.subgraphVisited(subgraph)) {\r\n                subgraph.walkSubgraphs(visitor);\r\n            }\r\n        });\r\n    }\r\n\r\n    walkVertices(visitor: { vertexVisited: (arg0: Vertex) => void; }) {\r\n        this.__hpcc_vertices.forEach((vertex, idx) => {\r\n            visitor.vertexVisited(vertex);\r\n        });\r\n    }\r\n}\r\n\r\nclass Vertex extends GraphItem {\r\n    _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\" = \"Vertex\";\r\n    _isSpill: boolean;\r\n\r\n    constructor(graph: QueryGraph, id: string) {\r\n        super(graph, id);\r\n    }\r\n\r\n    isSpill() {\r\n        return this._isSpill;\r\n    }\r\n\r\n    remove() {\r\n        const inVertices = this.getInVertices();\r\n        if (inVertices.length <= 1) {\r\n            console.warn(this.__hpcc_id + \":  remove only supports single or zero inputs activities...\");\r\n        }\r\n        this.getInEdges().forEach((edge: Edge) => {\r\n            edge.remove();\r\n        });\r\n        this.getOutEdges().forEach((edge: Edge) => {\r\n            edge.setSource(inVertices[0]);\r\n        });\r\n        this.__hpcc_parent?.removeVertex(this);\r\n        this.__hpcc_graph.removeItem(this);\r\n    }\r\n\r\n    getInVertices(): Vertex[] {\r\n        return this.getInEdges().map((edge) => {\r\n            return edge.getSource();\r\n        });\r\n    }\r\n\r\n    getInEdges(): Edge[] {\r\n        return this.__hpcc_graph.edges.filter((edge) => {\r\n            return edge.getTarget() === this;\r\n        });\r\n    }\r\n\r\n    getOutVertices(): Vertex[] {\r\n        return this.getOutEdges().map((edge) => {\r\n            return edge.getTarget();\r\n        });\r\n    }\r\n\r\n    getOutEdges(): Edge[] {\r\n        return this.__hpcc_graph.edges.filter((edge) => {\r\n            return edge.getSource() === this;\r\n        });\r\n    }\r\n}\r\n\r\nclass Edge extends GraphItem {\r\n    _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\" = \"Edge\";\r\n\r\n    _sourceActivity: any;\r\n    source: any;\r\n    _targetActivity: any;\r\n    target: any;\r\n\r\n    constructor(graph: QueryGraph, id: string) {\r\n        super(graph, id);\r\n        this._globalType = \"Edge\";\r\n    }\r\n\r\n    remove() {\r\n        this.__hpcc_graph.subgraphs.forEach((subgraph) => {\r\n            subgraph.removeEdge(this);\r\n        });\r\n        this.__hpcc_graph.removeItem(this);\r\n    }\r\n\r\n    getSource(): Vertex {\r\n        return this.__hpcc_graph.idx[this._sourceActivity || this.source] as Vertex;\r\n    }\r\n\r\n    setSource(source: Vertex) {\r\n        if (this._sourceActivity) {\r\n            this._sourceActivity = source.__hpcc_id;\r\n        } else if (this.source) {\r\n            this.source = source.__hpcc_id;\r\n        }\r\n        if (this.__widget) {\r\n            this.__widget.setSource(this.getSource().__widget);\r\n        }\r\n    }\r\n\r\n    getTarget(): Vertex {\r\n        return this.__hpcc_graph.idx[this._targetActivity || this.target] as Vertex;\r\n    }\r\n}\r\n\r\nexport class QueryGraph {\r\n    idx: { [id: string]: Subgraph | Vertex | Edge } = {};\r\n    subgraphs: Subgraph[] = [];\r\n    vertices: Vertex[] = [];\r\n    edges: Edge[] = [];\r\n\r\n    xgmml: string = \"\";\r\n\r\n    constructor() {\r\n        this.clear();\r\n    }\r\n\r\n    clear() {\r\n        this.xgmml = \"\";\r\n\r\n        this.idx = {};\r\n        this.subgraphs = [];\r\n        this.vertices = [];\r\n        this.edges = [];\r\n    }\r\n\r\n    load(xgmml: string) {\r\n        this.clear();\r\n        this.merge(xgmml);\r\n    }\r\n\r\n    merge(xgmml: string) {\r\n        this.xgmml = xgmml;\r\n        const parser = new DOMParser();\r\n        const dom = parser.parseFromString(xgmml, \"text/xml\");\r\n        this.walkDocument(dom.documentElement, \"0\");\r\n    }\r\n\r\n    isSubgraph(item: GraphItem): item is Subgraph {\r\n        return item instanceof Subgraph;\r\n    }\r\n\r\n    isVertex(item: GraphItem): item is Vertex {\r\n        return item instanceof Vertex;\r\n    }\r\n\r\n    isEdge(item: GraphItem): item is Edge {\r\n        return item instanceof Edge;\r\n    }\r\n\r\n    getGlobalType(item: QueryGraph | Subgraph | Vertex | Edge): GRAPH_TYPE {\r\n        if (item instanceof Vertex) {\r\n            return GRAPH_TYPE.VERTEX;\r\n        } else if (item instanceof Edge) {\r\n            return GRAPH_TYPE.EDGE;\r\n        } else if (item instanceof Subgraph) {\r\n            return GRAPH_TYPE.SUBGRAPH;\r\n        } else if (item instanceof QueryGraph) {\r\n            return GRAPH_TYPE.GRAPH;\r\n        }\r\n        return GRAPH_TYPE.UNKNOWN;\r\n    }\r\n\r\n    getGlobalTypeString(item: QueryGraph | Subgraph | Vertex | Edge): GRAPH_TYPE_STRING {\r\n        if (item instanceof Vertex) {\r\n            return GRAPH_TYPE_STRING.VERTEX;\r\n        } else if (item instanceof Edge) {\r\n            return GRAPH_TYPE_STRING.EDGE;\r\n        } else if (item instanceof Subgraph) {\r\n            return GRAPH_TYPE_STRING.SUBGRAPH;\r\n        } else if (item instanceof QueryGraph) {\r\n            return GRAPH_TYPE_STRING.GRAPH;\r\n        }\r\n        return GRAPH_TYPE_STRING.UNKNOWN;\r\n    }\r\n\r\n    getItem(docNode: HTMLElement, id: string): Subgraph | Vertex | Edge {\r\n        if (!this.idx[id]) {\r\n            switch (docNode.tagName) {\r\n                case \"graph\":\r\n                    const subgraph = new Subgraph(this, id);\r\n                    this.subgraphs.push(subgraph);\r\n                    this.idx[id] = subgraph;\r\n                    break;\r\n                case \"node\":\r\n                    const vertex = new Vertex(this, id);\r\n                    this.vertices.push(vertex);\r\n                    this.idx[id] = vertex;\r\n                    break;\r\n                case \"edge\":\r\n                    const edge = new Edge(this, id);\r\n                    this.edges.push(edge);\r\n                    this.idx[id] = edge;\r\n                    break;\r\n                default:\r\n                    console.warn(\"Graph.getItem - Unknown Node Type!\");\r\n                    break;\r\n            }\r\n        }\r\n        const retVal = this.idx[id];\r\n        Array.from(docNode.attributes).forEach(attr => {\r\n            safeAssign(retVal, attr.name, attr.value);\r\n        });\r\n        return retVal;\r\n    }\r\n\r\n    removeItem(item: Subgraph | Vertex | Edge) {\r\n        delete this.idx[item.__hpcc_id];\r\n        if (item instanceof Subgraph) {\r\n            this.subgraphs = this.subgraphs.filter((subgraph: Subgraph) => {\r\n                return item !== subgraph;\r\n            });\r\n        } else if (item instanceof Vertex) {\r\n            this.vertices = this.vertices.filter(vertex => {\r\n                return item !== vertex;\r\n            });\r\n        } else if (item instanceof Edge) {\r\n            this.edges = this.edges.filter((edge: Edge) => {\r\n                return item !== edge;\r\n            });\r\n        }\r\n    }\r\n\r\n    getChildByTagName(docNode: HTMLElement, tagName: string): HTMLElement | null {\r\n        let retVal: HTMLElement | null = null;\r\n        Array.from(docNode.childNodes as NodeListOf<HTMLElement>).some((childNode) => {\r\n            if (childNode.tagName === tagName) {\r\n                retVal = childNode;\r\n                return true;\r\n            }\r\n        });\r\n        return retVal;\r\n    }\r\n\r\n    walkDocument(docNode: HTMLElement, id: string): Subgraph | Vertex | Edge {\r\n        const retVal: any = this.getItem(docNode, id);\r\n        (docNode.childNodes as NodeListOf<HTMLElement>).forEach((childNode) => {\r\n            switch (childNode.nodeType) {\r\n                case 1:     // \tELEMENT_NODE\r\n                    switch (childNode.tagName) {\r\n                        case \"graph\":\r\n                            break;\r\n                        case \"node\":\r\n                            let isSubgraph = false;\r\n                            const attNode = this.getChildByTagName(childNode, \"att\");\r\n                            if (attNode) {\r\n                                const graphNode = this.getChildByTagName(attNode, \"graph\");\r\n                                if (graphNode) {\r\n                                    isSubgraph = true;\r\n                                    const subgraph = this.walkDocument(graphNode, childNode.getAttribute(\"id\"));\r\n                                    retVal.addSubgraph(subgraph);\r\n                                }\r\n                            }\r\n                            if (!isSubgraph) {\r\n                                const vertex = this.walkDocument(childNode, childNode.getAttribute(\"id\"));\r\n                                retVal.addVertex(vertex);\r\n                            }\r\n                            break;\r\n                        case \"att\":\r\n                            const name = childNode.getAttribute(\"name\");\r\n                            const uname = \"_\" + name;\r\n                            const value = childNode.getAttribute(\"value\");\r\n                            if (name.indexOf(\"Time\") === 0) {\r\n                                safeAssign(retVal, uname, value);\r\n                                safeAssign(retVal, name, \"\" + espTime2Seconds(value));\r\n                            } else if (name.indexOf(\"Size\") === 0) {\r\n                                safeAssign(retVal, uname, value);\r\n                                safeAssign(retVal, name, \"\" + espSize2Bytes(value));\r\n                            } else if (name.indexOf(\"Skew\") === 0) {\r\n                                safeAssign(retVal, uname, value);\r\n                                safeAssign(retVal, name, \"\" + espSkew2Number(value));\r\n                            } else {\r\n                                safeAssign(retVal, name, value);\r\n                            }\r\n                            break;\r\n                        case \"edge\":\r\n                            const edge: any = this.walkDocument(childNode, childNode.getAttribute(\"id\"));\r\n                            if (edge.NumRowsProcessed !== undefined) {\r\n                                edge._eclwatchCount = edge.NumRowsProcessed.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n                            } else if (edge.Count !== undefined) {\r\n                                edge._eclwatchCount = edge.Count.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n                            } else if (edge.count !== undefined) {\r\n                                edge._eclwatchCount = edge.count.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n                            }\r\n                            if (edge.inputProgress) {\r\n                                edge._eclwatchInputProgress = \"[\" + edge.inputProgress.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") + \"]\";\r\n                            }\r\n                            if (edge.SkewMaxRowsProcessed && edge.SkewMinRowsProcessed) {\r\n                                edge._eclwatchSkew = \"+\" + edge.SkewMaxRowsProcessed + \", \" + edge.SkewMinRowsProcessed;\r\n                            }\r\n                            if (edge._dependsOn) {\r\n                            } else if (edge._childGraph) {\r\n                            } else if (edge._sourceActivity || edge._targetActivity) {\r\n                                edge._isSpill = true;\r\n                                const source = edge.getSource();\r\n                                if (source) {\r\n                                    source._isSpill = true;\r\n                                }\r\n                                const target = edge.getTarget();\r\n                                if (target) {\r\n                                    target._isSpill = true;\r\n                                }\r\n                            }\r\n                            retVal.addEdge(edge);\r\n                            break;\r\n                        default:\r\n                            break;\r\n                    }\r\n                    break;\r\n                case 2:     // \tATTRIBUTE_NODE\r\n                case 3:     // \tTEXT_NODE\r\n                case 4:     // \tCDATA_SECTION_NODE\r\n                case 5:     // \tENTITY_REFERENCE_NODE\r\n                case 6:     // \tENTITY_NODE\r\n                case 7:     // \tPROCESSING_INSTRUCTION_NODE\r\n                case 8:     // \tCOMMENT_NODE\r\n                case 9:     // \tDOCUMENT_NODE\r\n                case 10:    // \tDOCUMENT_TYPE_NODE\r\n                case 11:    // \tDOCUMENT_FRAGMENT_NODE\r\n                case 12:    // \tNOTATION_NODE\r\n                    break;\r\n                default:\r\n                    break;\r\n            }\r\n        });\r\n        return retVal;\r\n    }\r\n\r\n    removeSubgraphs(): void {\r\n        const subgraphs = [...this.subgraphs];\r\n        subgraphs.forEach((subgraph) => {\r\n            if (subgraph.__hpcc_parent instanceof Subgraph) {\r\n                subgraph.remove();\r\n            }\r\n        });\r\n    }\r\n\r\n    removeSpillVertices(): void {\r\n        const vertices = [...this.vertices];\r\n        vertices.forEach((vertex) => {\r\n            if (vertex.isSpill()) {\r\n                vertex.remove();\r\n            }\r\n        });\r\n    }\r\n\r\n    getLocalisedXGMML(items: GraphItem[], localisationDepth: number, localisationDistance: number, noSpills: boolean): string {\r\n        const xgmmlWriter = new LocalisedXGMMLWriter(this);\r\n        xgmmlWriter.calcVisibility(items, localisationDepth, localisationDistance, noSpills);\r\n        xgmmlWriter.writeXgmml();\r\n        return \"<graph>\" + xgmmlWriter.m_xgmml + \"</graph>\";\r\n    }\r\n}\r\n","import { Cache, StateObject, scopedLogger, RecursivePartial } from \"@hpcc-js/util\";\r\nimport { format as d3Format } from \"d3-format\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { EclService, IWsEclRequest, IWsEclResponse, IWsEclResult } from \"../services/wsEcl.ts\";\r\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\r\nimport { Topology } from \"./topology.ts\";\r\nimport { Workunit, IScope } from \"./workunit.ts\";\r\nimport { QueryGraph } from \"./queryGraph.ts\";\r\n\r\nexport { QueryGraph };\r\n\r\nconst logger = scopedLogger(\"@hpcc-js/comms/ecl/query.ts\");\r\n\r\nconst siFormatter = d3Format(\"~s\");\r\n\r\nfunction isNumber(n) {\r\n    return !isNaN(parseFloat(n)) && !isNaN(n - 0);\r\n}\r\nexport interface QueryEx extends WsWorkunits.WUQueryDetailsResponse {\r\n    BaseUrl: string;\r\n}\r\n\r\nclass QueryCache extends Cache<QueryEx, Query> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return Cache.hash([obj.QueryId, obj.QuerySet]);\r\n        });\r\n    }\r\n}\r\nconst _queries = new QueryCache();\r\n\r\nexport class Query extends StateObject<QueryEx, QueryEx> implements QueryEx {\r\n    protected wsWorkunitsService: WorkunitsService;\r\n    get BaseUrl() { return this.wsWorkunitsService.baseUrl; }\r\n    protected topology: Topology;\r\n    protected _requestSchema: IWsEclRequest;\r\n    protected _responseSchema: IWsEclResponse;\r\n\r\n    get properties(): WsWorkunits.WUQueryDetailsResponse { return this.get(); }\r\n    get Exceptions(): WsWorkunits.Exceptions { return this.get(\"Exceptions\"); }\r\n    get QueryId(): string { return this.get(\"QueryId\"); }\r\n    get QuerySet(): string { return this.get(\"QuerySet\"); }\r\n    get QueryName(): string { return this.get(\"QueryName\"); }\r\n    get Wuid(): string { return this.get(\"Wuid\"); }\r\n    get Dll(): string { return this.get(\"Dll\"); }\r\n    get Suspended(): boolean { return this.get(\"Suspended\"); }\r\n    get Activated(): boolean { return this.get(\"Activated\"); }\r\n    get SuspendedBy(): string { return this.get(\"SuspendedBy\"); }\r\n    get Clusters(): WsWorkunits.Clusters2 { return this.get(\"Clusters\"); }\r\n    get PublishedBy(): string { return this.get(\"PublishedBy\"); }\r\n    get Comment() { return this.get(\"Comment\"); }\r\n    get LogicalFiles(): WsWorkunits.LogicalFiles { return this.get(\"LogicalFiles\"); }\r\n    get SuperFiles(): WsWorkunits.SuperFiles { return this.get(\"SuperFiles\"); }\r\n    get IsLibrary(): boolean { return this.get(\"IsLibrary\"); }\r\n    get Priority(): string { return this.get(\"Priority\"); }\r\n    get WUSnapShot(): string { return this.get(\"WUSnapShot\"); }\r\n    get CompileTime(): string { return this.get(\"CompileTime\"); }\r\n    get LibrariesUsed(): WsWorkunits.LibrariesUsed { return this.get(\"LibrariesUsed\"); }\r\n    get CountGraphs(): number { return this.get(\"CountGraphs\"); }\r\n    get ResourceURLCount(): number { return this.get(\"ResourceURLCount\"); }\r\n    get WsEclAddresses(): WsWorkunits.WsEclAddresses { return this.get(\"WsEclAddresses\"); }\r\n    get WUGraphs(): WsWorkunits.WUGraphs { return this.get(\"WUGraphs\"); }\r\n    get WUTimers(): WsWorkunits.WUTimers { return this.get(\"WUTimers\"); }\r\n    get PriorityID(): number { return this.get(\"PriorityID\"); }\r\n\r\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, querySet: string, queryID: string, queryDetails?: WsWorkunits.WUQueryDetailsResponse) {\r\n        super();\r\n        if (optsConnection instanceof WorkunitsService) {\r\n            this.wsWorkunitsService = optsConnection;\r\n        } else {\r\n            this.wsWorkunitsService = new WorkunitsService(optsConnection);\r\n        }\r\n        this.topology = Topology.attach(this.wsWorkunitsService.opts());\r\n        this.set({\r\n            QuerySet: querySet,\r\n            QueryId: queryID,\r\n            ...queryDetails\r\n        } as QueryEx);\r\n    }\r\n\r\n    static attach(optsConnection: IOptions | IConnection, querySet: string, queryId: string, state?: QueryEx): Query {\r\n        const retVal: Query = _queries.get({ BaseUrl: optsConnection.baseUrl, QuerySet: querySet, QueryId: queryId } as QueryEx, () => {\r\n            return new Query(optsConnection, querySet, queryId);\r\n        });\r\n        if (state) {\r\n            retVal.set(state);\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    private _eclService: Promise<EclService>;\r\n    protected async wsEclService(): Promise<EclService | undefined> {\r\n        if (!this._eclService) {\r\n            this._eclService = this.topology.fetchServices({}).then(services => {\r\n                for (const espServer of services?.TpEspServers?.TpEspServer ?? []) {\r\n                    for (const binding of espServer?.TpBindings?.TpBinding ?? []) {\r\n                        if (binding?.Service === \"ws_ecl\") {\r\n                            const baseUrl = `${binding.Protocol}://${globalThis.location.hostname}:${binding.Port}`;\r\n                            return new EclService({ baseUrl });\r\n                        }\r\n                    }\r\n                }\r\n                return undefined;\r\n            });\r\n        }\r\n        return this._eclService;\r\n    }\r\n\r\n    private async fetchDetails(): Promise<void> {\r\n        const queryDetails = await this.wsWorkunitsService.WUQueryDetails({\r\n            QuerySet: this.QuerySet,\r\n            QueryId: this.QueryId,\r\n            IncludeStateOnClusters: true,\r\n            IncludeSuperFiles: true,\r\n            IncludeWsEclAddresses: true,\r\n            CheckAllNodes: false\r\n        });\r\n        this.set({ ...queryDetails } as QueryEx);\r\n    }\r\n\r\n    private async fetchRequestSchema(): Promise<void> {\r\n        const wsEclService = await this.wsEclService();\r\n        try {\r\n            this._requestSchema = await wsEclService?.requestJson(this.QuerySet, this.QueryId) ?? [];\r\n        } catch (e: any) {\r\n            //  See:  https://track.hpccsystems.com/browse/HPCC-29827\r\n            logger.debug(e.message ?? e);\r\n            this._requestSchema = [];\r\n        }\r\n    }\r\n\r\n    private async fetchResponseSchema(): Promise<void> {\r\n        const wsEclService = await this.wsEclService();\r\n        try {\r\n            this._responseSchema = await wsEclService?.responseJson(this.QuerySet, this.QueryId) ?? {};\r\n        } catch (e: any) {\r\n            //  See:  https://track.hpccsystems.com/browse/HPCC-29827\r\n            logger.debug(e.message ?? e);\r\n            this._responseSchema = {};\r\n        }\r\n    }\r\n\r\n    private async fetchSchema(): Promise<void> {\r\n        await Promise.all([this.fetchRequestSchema(), this.fetchResponseSchema()]);\r\n    }\r\n\r\n    fetchSummaryStats() {\r\n        return this.wsWorkunitsService.WUQueryGetSummaryStats({ Target: this.QuerySet, QueryId: this.QueryId });\r\n    }\r\n\r\n    fetchGraph(GraphName: string = \"\", SubGraphId: string = \"\"): Promise<QueryGraph> {\r\n        return this.wsWorkunitsService.WUQueryGetGraph({ Target: this.QuerySet, QueryId: this.QueryId, GraphName, SubGraphId }).then(response => {\r\n            const graph = new QueryGraph();\r\n            let first = true;\r\n            for (const graphItem of response?.Graphs?.ECLGraphEx || []) {\r\n                if (first) {\r\n                    graph.load(graphItem.Graph);\r\n                    first = false;\r\n                } else {\r\n                    graph.merge(graphItem.Graph);\r\n                }\r\n            }\r\n            return graph;\r\n        });\r\n    }\r\n\r\n    fetchDetailsNormalized(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<{ meta: WsWorkunits.WUDetailsMetaResponse | undefined, columns: { [id: string]: any } | undefined, data: IScope[] | undefined }> {\r\n        const wu = Workunit.attach(this.wsWorkunitsService, this.Wuid);\r\n        if (wu) {\r\n            return Promise.all([this.fetchGraph(), wu.fetchDetailsMeta(), wu.fetchDetailsRaw(request)]).then(promises => {\r\n                const graph = promises[0];\r\n                const meta = promises[1];\r\n                const metrics: WsWorkunits.Scope[] = promises[2];\r\n                const data = metrics.map(metric => {\r\n                    const firstChar = metric.Id[0];\r\n                    if (firstChar === \"a\" || firstChar === \"e\") {\r\n                        const item = graph.idx[metric.Id.substring(1)];\r\n                        if (!item) {\r\n                            logger.debug(`Missing graph data for metric ID: ${metric.Id}`);\r\n                            return metric;\r\n                        }\r\n                        const existingProperties = new Set(metric.Properties.Property.map(prop => prop.Name));\r\n                        const newProperties: WsWorkunits.Property[] = [];\r\n                        for (const key in item) {\r\n                            const firstCharOfKey = key.charAt(0);\r\n                            if (firstCharOfKey !== \"_\" &&\r\n                                firstCharOfKey === firstCharOfKey.toUpperCase() &&\r\n                                !existingProperties.has(key)) {\r\n                                const value = item[key];\r\n                                const valueType = typeof value;\r\n                                if (valueType === \"string\" || valueType === \"number\" || valueType === \"boolean\") {\r\n                                    const isNum = isNumber(value);\r\n                                    let rawValue = isNum ? parseFloat(value as string) : value;\r\n                                    let formatted = value;\r\n                                    if (key.indexOf(\"Time\") >= 0) {\r\n                                        rawValue = (rawValue as number) / 1000000000;\r\n                                        formatted = siFormatter(rawValue) + \"s\";\r\n                                    }\r\n                                    newProperties.push({\r\n                                        Name: key,\r\n                                        RawValue: rawValue as any,\r\n                                        Formatted: formatted\r\n                                    } as WsWorkunits.Property);\r\n                                }\r\n                            }\r\n                        }\r\n                        if (newProperties.length > 0) {\r\n                            metric.Properties.Property.push(...newProperties);\r\n                        }\r\n                    }\r\n                    return metric;\r\n                });\r\n                return wu.normalizeDetails(meta, data);\r\n            });\r\n        }\r\n        return Promise.resolve({ meta: undefined, columns: undefined, data: undefined });\r\n    }\r\n\r\n    async submit(request: object): Promise<Array<{ [key: string]: object[] }>> {\r\n        const wsEclService = await this.wsEclService();\r\n        try {\r\n            return wsEclService?.submit(this.QuerySet, this.QueryId, request).then(results => {\r\n                for (const key in results) {\r\n                    results[key] = results[key].Row;\r\n                }\r\n                return results;\r\n            }) ?? [];\r\n        } catch (e: any) {\r\n            //  See:  https://track.hpccsystems.com/browse/HPCC-29827\r\n            logger.debug(e.message ?? e);\r\n            return [];\r\n        }\r\n    }\r\n\r\n    async refresh(): Promise<this> {\r\n        await Promise.all([\r\n            this.fetchDetails(),\r\n            this.fetchSchema()\r\n        ]);\r\n        return this;\r\n    }\r\n\r\n    requestFields(): IWsEclRequest {\r\n        if (!this._requestSchema) return [];\r\n        return this._requestSchema;\r\n    }\r\n\r\n    responseFields(): IWsEclResponse {\r\n        if (!this._responseSchema) return {};\r\n        return this._responseSchema;\r\n    }\r\n\r\n    resultNames(): string[] {\r\n        const retVal: string[] = [];\r\n        for (const key in this.responseFields()) {\r\n            retVal.push(key);\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    resultFields(resultName: string): IWsEclResult {\r\n        if (!this._responseSchema[resultName]) return [];\r\n        return this._responseSchema[resultName];\r\n    }\r\n}\r\n","import { Cache, Dispatch, IObserverHandle, Message } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { StoreService } from \"../services/wsStore.ts\";\r\n\r\nexport class StoreCache extends Cache<{ BaseUrl: string, Name: string, UserSpecific: boolean, Namespace: string }, Store> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return `${obj.BaseUrl}-${obj.Name}:${obj.UserSpecific}-${obj.Namespace}`;\r\n        });\r\n    }\r\n}\r\nconst _store = new StoreCache();\r\n\r\nexport class ValueChangedMessage extends Message {\r\n\r\n    constructor(readonly key: string, public value: any, public oldValue?: any) {\r\n        super();\r\n    }\r\n\r\n    get canConflate(): boolean { return true; }\r\n    conflate(other: ValueChangedMessage): boolean {\r\n        if (this.key === other.key) {\r\n            this.value = other.value;\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    void(): boolean {\r\n        return this.value === this.oldValue;\r\n    }\r\n}\r\n\r\nexport class Store {\r\n    protected connection: StoreService;\r\n    get BaseUrl() { return this.connection.baseUrl; }\r\n    readonly Name: string;\r\n    readonly UserSpecific: boolean;\r\n    readonly Namespace: string;\r\n\r\n    protected _dispatch = new Dispatch<ValueChangedMessage>();\r\n\r\n    static attach(optsConnection: IOptions | IConnection | StoreService, Name: string = \"HPCCApps\", Namespace: string, UserSpecific: boolean = true): Store {\r\n        const retVal: Store = _store.get({ BaseUrl: optsConnection.baseUrl, Name, UserSpecific, Namespace }, () => {\r\n            return new Store(optsConnection, Name, Namespace, UserSpecific);\r\n        });\r\n        return retVal;\r\n    }\r\n\r\n    protected constructor(optsConnection: IOptions | IConnection | StoreService, Name: string, Namespace: string, UserSpecific: boolean) {\r\n        if (optsConnection instanceof StoreService) {\r\n            this.connection = optsConnection;\r\n        } else {\r\n            this.connection = new StoreService(optsConnection);\r\n        }\r\n        this.Name = Name;\r\n        this.UserSpecific = UserSpecific;\r\n        this.Namespace = Namespace;\r\n    }\r\n\r\n    private _knownValues: { [key: string]: any } = {};\r\n\r\n    protected create() {\r\n        this.connection.CreateStore({ Name: this.Name, Type: \"\", Description: \"\" });\r\n    }\r\n\r\n    set(key: string, value: string, broadcast = true): Promise<void> {\r\n        return this.connection.Set({\r\n            StoreName: this.Name,\r\n            UserSpecific: this.UserSpecific,\r\n            Namespace: this.Namespace,\r\n            Key: key,\r\n            Value: value\r\n        }).then(response => {\r\n            const oldValue = this._knownValues[key];\r\n            this._knownValues[key] = value;\r\n            if (broadcast) {\r\n                this._dispatch.post(new ValueChangedMessage(key, value, oldValue));\r\n            }\r\n        }).catch(e => {\r\n            console.error(`Store.set(\"${key}\", \"${value}\") failed:`, e);\r\n        });\r\n    }\r\n\r\n    get(key: string, broadcast = true): Promise<string | undefined> {\r\n        return this.connection.Fetch({\r\n            StoreName: this.Name,\r\n            UserSpecific: this.UserSpecific,\r\n            Namespace: this.Namespace,\r\n            Key: key\r\n        }).then(response => {\r\n            const oldValue = this._knownValues[key];\r\n            this._knownValues[key] = response.Value;\r\n            if (broadcast) {\r\n                this._dispatch.post(new ValueChangedMessage(key, response.Value, oldValue));\r\n            }\r\n            return response.Value;\r\n        }).catch(e => {\r\n            console.error(`Store.get(${key}) failed:`, e);\r\n            return undefined;\r\n        });\r\n    }\r\n\r\n    getAll(broadcast = true): Promise<{ [key: string]: string }> {\r\n        return this.connection.FetchAll({\r\n            StoreName: this.Name,\r\n            UserSpecific: this.UserSpecific,\r\n            Namespace: this.Namespace\r\n        }).then(response => {\r\n            const retVal: { [key: string]: string } = {};\r\n            const deletedValues = this._knownValues;\r\n            this._knownValues = {};\r\n            response.Pairs.Pair.forEach(pair => {\r\n                const oldValue = this._knownValues[pair.Key];\r\n                this._knownValues[pair.Key] = pair.Value;\r\n                delete deletedValues[pair.Key];\r\n                retVal[pair.Key] = pair.Value;\r\n                if (broadcast) {\r\n                    this._dispatch.post(new ValueChangedMessage(pair.Key, pair.Value, oldValue));\r\n                }\r\n            });\r\n            if (broadcast) {\r\n                for (const key in deletedValues) {\r\n                    this._dispatch.post(new ValueChangedMessage(key, undefined, deletedValues[key]));\r\n                }\r\n            }\r\n            return retVal;\r\n        }).catch(e => {\r\n            console.error(\"Store.getAll failed:\", e);\r\n            return {};\r\n        });\r\n    }\r\n\r\n    delete(key: string, broadcast = true): Promise<void> {\r\n        return this.connection.Delete({\r\n            StoreName: this.Name,\r\n            UserSpecific: this.UserSpecific,\r\n            Namespace: this.Namespace,\r\n            Key: key\r\n        }).then(response => {\r\n            const oldValue = this._knownValues[key];\r\n            delete this._knownValues[key];\r\n            if (broadcast) {\r\n                this._dispatch.post(new ValueChangedMessage(key, undefined, oldValue));\r\n            }\r\n        }).catch(e => {\r\n            console.error(`Store.delete(${key}) failed:`, e);\r\n        });\r\n    }\r\n\r\n    monitor(callback: (messages: ValueChangedMessage[]) => void): IObserverHandle {\r\n        return this._dispatch.attach(callback);\r\n    }\r\n}\r\n","import { Cache, IEvent, scopedLogger, StateCallback, StateEvents, StateObject, StatePropCallback } from \"@hpcc-js/util\";\r\nimport { IConnection, IOptions } from \"../connection.ts\";\r\nimport { ESPExceptions } from \"../espConnection.ts\";\r\nimport { WsSMC } from \"../services/wsSMC.ts\";\r\nimport { FileSpray, FileSprayService, UpdateDFUWorkunitEx } from \"../services/fileSpray.ts\";\r\nimport * as WsTopology from \"../services/wsTopology.ts\";\r\n\r\nconst logger = scopedLogger(\"@hpcc-js/comms/dfuWorkunit.ts\");\r\n\r\nenum States {\r\n    Unknown = 0,\r\n    Scheduled,\r\n    Queued,\r\n    Started,\r\n    Aborted,\r\n    Failed,\r\n    Finished,\r\n    Monitoring,\r\n    Aborting,\r\n    NotFound = 999\r\n}\r\n\r\nexport class DFUWorkunitCache extends Cache<{ BaseUrl: string, ID: string }, DFUWorkunit> {\r\n    constructor() {\r\n        super((obj) => {\r\n            return `${obj.BaseUrl}-${obj.ID}`;\r\n        });\r\n    }\r\n}\r\nconst _workunits = new DFUWorkunitCache();\r\n\r\nexport type DFUWorkunitEvents = \"finished\" | StateEvents;\r\nexport type UDFUWorkunitState = FileSpray.DFUWorkunit;\r\nexport type IDFUWorkunitState = FileSpray.DFUWorkunit | WsSMC.ActiveWorkunit;\r\nexport class DFUWorkunit extends StateObject<UDFUWorkunitState, IDFUWorkunitState> implements FileSpray.DFUWorkunit {\r\n    connection: FileSprayService;\r\n    topologyConnection: WsTopology.TopologyService;\r\n    get BaseUrl() { return this.connection.baseUrl; }\r\n\r\n    //  Accessors  ---\r\n    get properties(): FileSpray.DFUWorkunit { return this.get(); }\r\n    get ID(): string { return this.get(\"ID\"); }\r\n    get DFUServerName(): string { return this.get(\"DFUServerName\"); }\r\n    get ClusterName(): string { return this.get(\"ClusterName\"); }\r\n    get JobName(): string { return this.get(\"JobName\"); }\r\n    get Queue(): string { return this.get(\"Queue\"); }\r\n    get User(): string { return this.get(\"User\"); }\r\n    get isProtected(): boolean { return this.get(\"isProtected\"); }\r\n    get Command(): number { return this.get(\"Command\"); }\r\n    get CommandMessage(): string { return this.get(\"CommandMessage\"); }\r\n    get PercentDone(): number { return this.get(\"PercentDone\"); }\r\n    get SecsLeft(): number { return this.get(\"SecsLeft\"); }\r\n    get ProgressMessage(): string { return this.get(\"ProgressMessage\"); }\r\n    get SummaryMessage(): string { return this.get(\"SummaryMessage\"); }\r\n    get State(): number { return this.get(\"State\", States.Unknown); }\r\n    get SourceLogicalName(): string { return this.get(\"SourceLogicalName\"); }\r\n    get SourceIP(): string { return this.get(\"SourceIP\"); }\r\n    get SourceFilePath(): string { return this.get(\"SourceFilePath\"); }\r\n    get SourceDali(): string { return this.get(\"SourceDali\"); }\r\n    get SourceRecordSize(): number { return this.get(\"SourceRecordSize\"); }\r\n    get SourceFormat(): number { return this.get(\"SourceFormat\"); }\r\n    get RowTag(): string { return this.get(\"RowTag\"); }\r\n    get SourceNumParts(): number { return this.get(\"SourceNumParts\"); }\r\n    get SourceDirectory(): string { return this.get(\"SourceDirectory\"); }\r\n    get DestLogicalName(): string { return this.get(\"DestLogicalName\"); }\r\n    get DestGroupName(): string { return this.get(\"DestGroupName\"); }\r\n    get DestDirectory(): string { return this.get(\"DestDirectory\"); }\r\n    get DestIP(): string { return this.get(\"DestIP\"); }\r\n    get DestFilePath(): string { return this.get(\"DestFilePath\"); }\r\n    get DestFormat(): number { return this.get(\"DestFormat\"); }\r\n    get DestNumParts(): number { return this.get(\"DestNumParts\"); }\r\n    get DestRecordSize(): number { return this.get(\"DestRecordSize\"); }\r\n    get Replicate(): boolean { return this.get(\"Replicate\"); }\r\n    get Overwrite(): boolean { return this.get(\"Overwrite\"); }\r\n    get Compress(): boolean { return this.get(\"Compress\"); }\r\n    get SourceCsvSeparate(): string { return this.get(\"SourceCsvSeparate\"); }\r\n    get SourceCsvQuote(): string { return this.get(\"SourceCsvQuote\"); }\r\n    get SourceCsvTerminate(): string { return this.get(\"SourceCsvTerminate\"); }\r\n    get SourceCsvEscape(): string { return this.get(\"SourceCsvEscape\"); }\r\n    get TimeStarted(): string { return this.get(\"TimeStarted\"); }\r\n    get TimeStopped(): string { return this.get(\"TimeStopped\"); }\r\n    get StateMessage(): string { return this.get(\"StateMessage\"); }\r\n    get MonitorEventName(): string { return this.get(\"MonitorEventName\"); }\r\n    get MonitorSub(): boolean { return this.get(\"MonitorSub\"); }\r\n    get MonitorShotLimit(): number { return this.get(\"MonitorShotLimit\"); }\r\n    get SourceDiffKeyName(): string { return this.get(\"SourceDiffKeyName\"); }\r\n    get DestDiffKeyName(): string { return this.get(\"DestDiffKeyName\"); }\r\n    get Archived(): boolean { return this.get(\"Archived\"); }\r\n    get encrypt(): string { return this.get(\"encrypt\"); }\r\n    get decrypt(): string { return this.get(\"decrypt\"); }\r\n    get failIfNoSourceFile(): boolean { return this.get(\"failIfNoSourceFile\"); }\r\n    get recordStructurePresent(): boolean { return this.get(\"recordStructurePresent\"); }\r\n    get quotedTerminator(): boolean { return this.get(\"quotedTerminator\"); }\r\n    get preserveCompression(): boolean { return this.get(\"preserveCompression\"); }\r\n    get expireDays(): number { return this.get(\"expireDays\"); }\r\n    get PreserveFileParts(): boolean { return this.get(\"PreserveFileParts\"); }\r\n    get FileAccessCost(): number { return this.get(\"FileAccessCost\"); }\r\n    get KbPerSecAve(): number { return this.get(\"KbPerSecAve\"); }\r\n    get KbPerSec(): number { return this.get(\"KbPerSec\"); }\r\n\r\n    //  Factories  ---\r\n    static create(optsConnection: IOptions | IConnection, dfuServerQueue: string): Promise<DFUWorkunit> {\r\n        const retVal: DFUWorkunit = new DFUWorkunit(optsConnection);\r\n        return retVal.connection.CreateDFUWorkunit({ DFUServerQueue: dfuServerQueue }).then((response) => {\r\n            _workunits.set(retVal);\r\n            retVal.set(response.result);\r\n            return retVal;\r\n        });\r\n    }\r\n\r\n    static attach(optsConnection: IOptions | IConnection, wuid: string, state?: IDFUWorkunitState): DFUWorkunit {\r\n        const retVal: DFUWorkunit = _workunits.get({ BaseUrl: optsConnection.baseUrl, ID: wuid }, () => {\r\n            return new DFUWorkunit(optsConnection, wuid);\r\n        });\r\n        if (state) {\r\n            retVal.set(state);\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    static sprayFixed(server: IOptions | IConnection, request: Partial<FileSpray.SprayFixed>): Promise<DFUWorkunit> {\r\n        const service = new FileSprayService(server);\r\n        return service.SprayFixedEx({\r\n            ...request\r\n        }).then(response => {\r\n            const wuid = response.wuid;\r\n            return service.GetDFUWorkunit({ wuid }).then(response => {\r\n                return DFUWorkunit.attach(server, wuid, response.result);\r\n            });\r\n        });\r\n    }\r\n\r\n    static sprayVariable(server: IOptions | IConnection, request: Partial<FileSpray.SprayVariable>): Promise<DFUWorkunit> {\r\n        const service = new FileSprayService(server);\r\n        return service.SprayVariableEx({\r\n            ...request\r\n        }).then(response => {\r\n            const wuid = response.wuid;\r\n            return service.GetDFUWorkunit({ wuid }).then(response => {\r\n                return DFUWorkunit.attach(server, wuid, response.result);\r\n            });\r\n        });\r\n    }\r\n\r\n    static despray(server: IOptions | IConnection, request: Partial<FileSpray.Despray>): Promise<DFUWorkunit> {\r\n        const service = new FileSprayService(server);\r\n        return service.DesprayEx({\r\n            ...request\r\n        }).then(response => {\r\n            const wuid = response.wuid;\r\n            return service.GetDFUWorkunit({ wuid }).then(response => {\r\n                return DFUWorkunit.attach(server, wuid, response.result);\r\n            });\r\n        });\r\n    }\r\n\r\n    update(request: Partial<UpdateDFUWorkunitEx>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\r\n        return this.connection.UpdateDFUWorkunitEx({\r\n            wu: {\r\n                JobName: request?.wu?.JobName ?? this.JobName,\r\n                isProtected: request?.wu?.isProtected ?? this.isProtected,\r\n                ID: this.ID,\r\n                State: this.State\r\n            },\r\n            ClusterOrig: this.ClusterName,\r\n            JobNameOrig: this.JobName,\r\n            isProtectedOrig: this.isProtected,\r\n            StateOrig: this.State\r\n        });\r\n    }\r\n\r\n    isComplete(): boolean {\r\n        switch (this.State) {\r\n            case States.Finished:\r\n            case States.Failed:\r\n            case States.Aborted:\r\n            case States.NotFound:\r\n                return true;\r\n            default:\r\n        }\r\n        return false;\r\n    }\r\n\r\n    isFailed() {\r\n        if (this.isComplete() && this.State !== States.Finished) {\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    isDeleted() {\r\n        switch (this.State) {\r\n            case States.NotFound:\r\n                return true;\r\n            default:\r\n        }\r\n        return false;\r\n    }\r\n\r\n    isRunning(): boolean {\r\n        return !this.isComplete();\r\n    }\r\n\r\n    abort(): Promise<FileSpray.AbortDFUWorkunitResponse> {\r\n        return this.connection.AbortDFUWorkunit({ wuid: this.ID });\r\n    }\r\n\r\n    delete() {\r\n        return this.DFUWUAction(FileSpray.DFUWUActions.Delete).then(response => {\r\n            return this.refresh().then(() => {\r\n                this._monitor();\r\n                return response;\r\n            });\r\n        });\r\n    }\r\n\r\n    async refresh(full: boolean = false): Promise<this> {\r\n        await this.GetDFUWorkunit();\r\n        return this;\r\n    }\r\n\r\n    fetchXML(callback?: void): Promise<string> {\r\n        return this.DFUWUFile();\r\n    }\r\n\r\n    //  Monitoring  ---\r\n    protected _monitor(): void {\r\n        if (this.isComplete()) {\r\n            this._monitorTickCount = 0;\r\n            return;\r\n        }\r\n        super._monitor();\r\n    }\r\n\r\n    protected _monitorTimeoutDuration(): number {\r\n        const retVal = super._monitorTimeoutDuration();\r\n        if (this._monitorTickCount <= 1) {          //  Once\r\n            return 3000;\r\n        } else if (this._monitorTickCount <= 5) {   //  Twice\r\n            return 6000;\r\n        } else if (this._monitorTickCount <= 7) {   //  Twice\r\n            return 12000;\r\n        }\r\n        return retVal;\r\n    }\r\n\r\n    protected DFUWUFile(_request: Partial<FileSpray.DFUWUFileRequest> = {}): Promise<string> {\r\n        return this.connection.DFUWUFileEx({\r\n            ..._request, Wuid: this.ID\r\n        }).then(response => {\r\n            //TODO: additional processing?\r\n            return response;\r\n        }).catch((e: ESPExceptions) => {\r\n            return \"\";\r\n        });\r\n    }\r\n\r\n    protected DFUWUAction(actionType: FileSpray.DFUWUActions): Promise<FileSpray.DFUWorkunitsActionResponse> {\r\n        return this.connection.DFUWorkunitsAction({\r\n            wuids: { Item: [this.ID] },\r\n            Type: actionType\r\n        }).then((response) => {\r\n            if (actionType === FileSpray.DFUWUActions.Delete) return response;\r\n            return this.refresh().then(() => {\r\n                this._monitor();\r\n                return response;\r\n            });\r\n        });\r\n    }\r\n\r\n    //  Events  ---\r\n    on(eventID: DFUWorkunitEvents, propIDorCallback: StateCallback | keyof UDFUWorkunitState, callback?: StatePropCallback): this {\r\n        if (this.isCallback(propIDorCallback)) {\r\n            switch (eventID) {\r\n                case \"finished\":\r\n                    super.on(\"propChanged\", \"State\", (changeInfo: IEvent) => {\r\n                        if (this.isComplete()) {\r\n                            propIDorCallback([changeInfo]);\r\n                        }\r\n                    });\r\n                    break;\r\n                case \"changed\":\r\n                    super.on(eventID, propIDorCallback);\r\n                    break;\r\n                default:\r\n            }\r\n        } else {\r\n            switch (eventID) {\r\n                case \"changed\":\r\n                    super.on(eventID, propIDorCallback, callback!);\r\n                    break;\r\n                default:\r\n            }\r\n        }\r\n        this._monitor();\r\n        return this;\r\n    }\r\n\r\n    watchUntilComplete(callback?: StateCallback): Promise<this> {\r\n        return new Promise((resolve, _) => {\r\n            const watchHandle = this.watch((changes) => {\r\n                if (callback) {\r\n                    callback(changes);\r\n                }\r\n                if (this.isComplete()) {\r\n                    watchHandle.release();\r\n                    resolve(this);\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    watchUntilRunning(callback?: StateCallback): Promise<this> {\r\n        return new Promise((resolve, _) => {\r\n            const watchHandle = this.watch((changes) => {\r\n                if (callback) {\r\n                    callback(changes);\r\n                }\r\n                if (this.isComplete() || this.isRunning()) {\r\n                    watchHandle.release();\r\n                    resolve(this);\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    //  ---  ---  ---\r\n    protected constructor(optsConnection: IOptions | IConnection, wuid?: string) {\r\n        super();\r\n        this.connection = new FileSprayService(optsConnection);\r\n        this.topologyConnection = new WsTopology.TopologyService(optsConnection);\r\n        this.clearState(wuid);\r\n    }\r\n\r\n    clearState(wuid?: string) {\r\n        this.clear({\r\n            ID: wuid,\r\n            State: States.Unknown\r\n        });\r\n    }\r\n\r\n    //  FileSpray passthroughs  ---\r\n    protected GetDFUWorkunit(_request: Partial<FileSpray.GetDFUWorkunit> = {}): Promise<FileSpray.GetDFUWorkunitResponse> {\r\n        return this.connection.GetDFUWorkunit({ ..._request, wuid: this.ID }).then((response) => {\r\n            this.set(response.result);\r\n            return response;\r\n        }).catch((e: ESPExceptions) => {\r\n            //  deleted  ---\r\n            const wuMissing = e.Exception.some((exception) => {\r\n                if (exception.Code === 20080 || exception.Code === 20081) {\r\n                    this.clearState(this.ID);\r\n                    this.set(\"State\", States.NotFound);\r\n                    return true;\r\n                }\r\n                return false;\r\n            });\r\n            if (!wuMissing) {\r\n                logger.warning(`Unexpected ESP exception: ${e.message}`);\r\n                throw e;\r\n            }\r\n            return {} as FileSpray.GetDFUWorkunitResponse;\r\n        });\r\n    }\r\n}"],"names":["logger","scopedLogger","instanceOfIOptions","object","__name","DefaultOptions","type","baseUrl","userID","password","rejectUnauthorized","timeoutSecs","instanceOfIConnection","opts","send","clone","encode","uriComponent","encodeRequest","encodeURIComponent","serializeRequest","obj","prefix","str","key","hasOwnProperty","Array","includeItemCount","forEach","row","i","push","length","join","deserializeResponse","body","JSON","parse","jsonp","action","request","responseType","header","console","warn","Promise","resolve","reject","respondedTimeout","callbackName","Math","round","random","window","response","doCallback","script","document","createElement","url","indexOf","src","appendChild","progress","setInterval","clearInterval","error","Error","debug","removeChild","authHeader","Authorization","utf8ToBase64","_omitMap","doFetch","requestInit","headersInit","handleResponse","ok","json","text","statusText","credentials","headers","root","__hpcc_rejectUnauthorizedAgent","__hpcc_trustwaveAgent","fetchOverride","__hpcc_undiciFetch","fetch","promiseTimeout","then","catch","e","responseBody","post","abortSignal","upload_","abortSignal_","method","signal","get","retVal","hookedSend","hookSend","newSend","_Connection","_opts","this","constructor","_","arguments","Connection","setTransportFactory","newFunc","createConnection","isArray","arg","Object","prototype","toString","call","_ESPExceptions","isESPExceptions","Source","Exception","exceptions","super","message","Code","Message","ESPExceptions","isExceptions","err","isConnection","optsConnection","_ESPConnection","_connection","_service","_version","service","version","toESPStringArray","target","arrayName","_request","espResponseType","largeUpload","espResponseField","ver_","serviceAction","actionParts","split","pop","Exceptions","ESPConnection","_Service","connection","Service","FileSpray","DFUWUActions","_FileSprayServiceBase","AbortDFUWorkunit","Copy","CreateDFUPublisherWorkunit","CreateDFUWorkunit","DFUWUFile","DFUWUSearch","DFUWorkunitsAction","DeleteDFUWorkunit","DeleteDFUWorkunits","DeleteDropZoneFiles","Despray","DfuMonitor","DropZoneFileSearch","DropZoneFiles","EchoDateTime","FileList","GetDFUExceptions","GetDFUProgress","GetDFUServerQueues","GetDFUWorkunit","GetDFUWorkunits","GetRemoteTargets","GetSprayTargets","OpenSave","Ping","Rename","Replicate","ShowResult","SprayFixed","SprayVariable","SubmitDFUWorkunit","UpdateDFUWorkunit","FileSprayServiceBase","FileSprayStates","DFUWUTypes","_FileSprayService","DFUWUFileEx","SprayFixedEx","SprayVariableEx","DesprayEx","UpdateDFUWorkunitEx","FileSprayService","WsAccess","ViewMemberType","UserSortBy","GroupSortBy","AccountTypeReq","ResourcePermissionSortBy","ResourceSortBy","_AccessServiceBase","AccountPermissions","AccountPermissionsV2","AddUser","AddView","AddViewColumn","AddViewMember","ClearPermissionsCache","DeleteView","DeleteViewColumn","DeleteViewMember","DisableScopeScans","EnableScopeScans","FilePermission","GroupAction","GroupAdd","GroupEdit","GroupMemberEdit","GroupMemberEditInput","GroupMemberQuery","GroupQuery","Groups","PermissionAction","Permissions","PermissionsReset","QueryScopeScansEnabled","QueryUserViewColumns","QueryViewColumns","QueryViewMembers","QueryViews","ResourceAdd","ResourceDelete","ResourcePermissionQuery","ResourcePermissions","ResourceQuery","Resources","UserAccountExport","UserAction","UserEdit","UserGroupEdit","UserGroupEditInput","UserInfoEdit","UserInfoEditInput","UserPosix","UserPosixInput","UserQuery","UserResetPass","UserResetPassInput","UserSudoers","UserSudoersInput","Users","AccessServiceBase","_AccessService","AccessService","_AccountServiceBase","MyAccount","UpdateUser","UpdateUserInput","VerifyUser","AccountServiceBase","_AccountService","some","exception","retcode","AccountService","_CloudServiceBase","GetPODs","GetServices","CloudServiceBase","isGetPODsResponse_v1_02","Pods","mapPorts","pod","spec","containers","reduce","prev","curr","ports","p","ContainerPort","containerPort","Name","name","Protocol","protocol","mapPods","pods","filter","labels","metadata","map","started","Date","creationTimestamp","Status","status","phase","CreationTimestamp","toISOString","ContainerName","containerStatuses","ContainerCount","ContainerReadyCount","ready","ContainerRestartCount","restartCount","Ports","Port","_CloudService","getPODs","Pod","Result","items","String","CloudService","WsCodesign","SigningMethodType","_CodesignServiceBase","ListUserIDs","Sign","Verify","CodesignServiceBase","_CodesignService","ListUserIDsEx","UserIDs","Item","SigningMethod","gpg","CodesignService","_DaliServiceBase","Add","ClearTraceTransactions","Count","DFSCheck","DFSExists","DFSLS","Delete","DisconnectClientConnection","GetClients","GetConnections","GetDFSCSV","GetDFSMap","GetDFSParents","GetLogicalFile","GetLogicalFilePart","GetProtectedList","GetSDSStats","GetSDSSubscribers","GetValue","Import","ListSDSLocks","SaveSDSStore","SetLogicalFilePartAttr","SetProtected","SetTraceSlowTransactions","SetTraceTransactions","SetUnprotected","SetValue","UnlockSDSLock","DaliServiceBase","_DaliService","DaliService","WsDfu","DFUArrayActions","DFUChangeProtection","DFUChangeRestriction","DFUDefFileFormat","FileAccessRole","SecAccessType","DFUFileType","_DfuServiceBase","AddRemote","AddtoSuperfile","DFUArrayAction","DFUBrowseData","DFUDefFile","DFUFileAccess","DFUFileAccessV2","DFUFileCreate","DFUFileCreateV2","DFUFilePublish","DFUFileView","DFUGetDataColumns","DFUGetFileMetaData","DFUGetMetaInquiry","DFUInfo","DFUQuery","DFURecordTypeInfo","DFUSearch","DFUSearchData","DFUSpace","EclRecordTypeInfo","EraseHistory","ListHistory","Savexml","SuperfileAction","SuperfileList","DfuServiceBase","_DFUService","DFUFile","recursiveFetchLogicalFiles","superFiles","childSuperFiles","logicalFiles","all","superFile","Cluster","NodeGroup","IncludeJsonTypeInfo","IncludeBinTypeInfo","ForceIndexInfo","child","FileDetail","Superfiles","DFULogicalFile","subfiles","concat","DFUService","_DFUXRefServiceBase","DFUXRefArrayAction","DFUXRefBuild","DFUXRefBuildCancel","DFUXRefCleanDirectories","DFUXRefDirectories","DFUXRefFoundFiles","DFUXRefList","DFUXRefLostFiles","DFUXRefMessages","DFUXRefOrphanFiles","DFUXRefUnusedFiles","DFUXRefServiceBase","_DFUXRefService","DFUXRefDirectoriesEx","DFUXRefListEx","DFUXRefService","jsonToIField","id","item","Row","children","jsonToIFieldArr","fieldType","fields","jsonToIFieldObj","_EclService","requestJson","querySet","queryId","requestSchema","responseJson","responseSchema","Results","resultsJson","submit","EclService","_ElkServiceBase","GetConfigDetails","ElkServiceBase","_ElkService","ElkService","WsLogaccess","LogColumnType","LogColumnValueType","LogAccessType","LogAccessStatusCode","LogAccessFilterOperator","LogSelectColumnMode","SortColumType","SortDirection","_LogaccessServiceBase","GetHealthReport","GetLogAccessInfo","GetLogs","LogaccessServiceBase","LogType","TargetAudience","knownLogManagerTypes","Set","logColumnTypeValues","values","getLogCategory","searchField","workunits","ByJobID","audience","ByTargetAudience","class","ByLogType","components","ByComponent","ByFieldName","FILTER_KEYS","buildFilters","columnMap","filters","value","has","logCategory","appendWildcard","rawValues","raw","LogCategory","SearchField","SearchByValue","buildOrGroup","group","leftFilter","node","Operator","OR","rightFilter","rightBinaryFilter","BinaryLogFilter","buildAndChain","groups","firstGroup","remainingGroups","leftBinaryFilter","AND","secondGroup","buildFilterTree","groupMap","Map","f","existing","set","All","_LogaccessService","_logAccessInfo","convertLogLine","line","assign","GetLogsEx","logInfo","Columns","Column","column","range","StartDate","EndDate","getLogsRequest","Filter","Range","LogLineStartFrom","LogLineLimit","SelectColumnMode","DEFAULT","Format","SortBy","SortCondition","BySortType","ByDate","ColumnName","Direction","logLines","LogLines","lines","RemoteLogManagerType","warning","total","TotalLogLinesAvailable","LogaccessService","ascending","a","b","NaN","bisector","compare","ascendingComparator","left","x","lo","hi","mid","right","d","number","d3Max","valueof","max","n","d3Mean","m","sum","isNaN","WsMachine","ThresholdType","TpMachineType","_MachineServiceBase","GetComponentStatus","GetComponentUsage","GetMachineInfo","GetMachineInfoEx","GetMetrics","GetNodeGroupUsage","GetTargetClusterInfo","GetTargetClusterUsage","UpdateComponentStatus","MachineServiceBase","_MachineService","GetTargetClusterUsageEx","targetClusters","bypassCachedResult","TargetClusters","BypassCachedResult","exists","TargetClusterUsages","TargetClusterUsage","tcu","ComponentUsages","ComponentUsage","cu","MachineUsages","MachineUsage","mu","DiskUsages","DiskUsage","du","InUse","Total","Available","PercentUsed","PercentAvailable","NetAddress","Description","mean","Type","MachineUsagesDescription","ComponentUsagesDescription","MachineService","_PackageProcessServiceBase","ActivatePackage","AddPackage","AddPartToPackageMap","CopyPackageMap","DeActivatePackage","DeletePackage","Echo","GetPackage","GetPackageMapById","GetPackageMapSelectOptions","GetPartFromPackageMap","GetQueryFileMapping","ListPackage","ListPackages","RemovePartFromPackageMap","ValidatePackage","PackageProcessServiceBase","_PackageProcessService","PackageProcessService","_ResourcesServiceBase","ServiceQuery","WebLinksQuery","ResourcesServiceBase","_ResourcesService","ResourcesService","WsSasha","WUTypes","_SashaServiceBase","ArchiveWU","GetVersion","ListWU","RestoreWU","SashaServiceBase","_SashaService","SashaService","t0","t1","newInterval","floori","offseti","count","field","interval","date","floor","ceil","d0","d1","offset","step","start","stop","previous","test","setTime","end","every","isFinite","durationDay","durationWeek","day","setHours","setDate","getDate","getTimezoneOffset","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","year","setMonth","setFullYear","getFullYear","k","utcDay","setUTCHours","setUTCDate","getUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","y","H","M","S","L","utcDate","UTC","newDate","formatLocale","locale","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","A","formatWeekday","formatShortMonth","B","formatMonth","c","formatDayOfMonth","formatMicroseconds","g","formatYearISO","G","formatFullYearISO","formatHour24","I","formatHour12","j","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","q","formatQuarter","Q","formatUnixTimestamp","s","formatUnixTimestampSeconds","formatSeconds","u","formatWeekdayNumberMonday","U","formatWeekNumberSunday","V","formatWeekNumberISO","w","formatWeekdayNumberSunday","W","formatWeekNumberMonday","X","formatYear","Y","formatFullYear","Z","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","newFormat","specifier","pad","format","string","charCodeAt","slice","pads","charAt","newParse","week","parseSpecifier","getUTCMonth","timeMonday","timeDay","getMonth","exec","toLowerCase","getHours","getUTCHours","utcFormat","utcParse","timeParse","WsSMC","LockModes","RoxieControlCmdType","numberRe","percentRe","requoteRe","fill","width","sign","requote","replace","names","RegExp","timeYear","getMilliseconds","getMinutes","getSeconds","timeSunday","dISO","timeThursday","z","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","dow","UTCdISO","defaultLocale","definition","_SMCServiceBase","Activity","BrowseResources","ClearQueue","GetBuildInfo","GetGlobalMetrics","GetStatusServerInfo","GetThorQueueAvailability","Index","LockQuery","MoveJobBack","MoveJobDown","MoveJobFront","MoveJobUp","NotInCommunityEdition","PauseQueue","RecordGlobalMetrics","RemoveJob","ResumeQueue","RoxieControlCmd","RoxieXrefCmd","SetBanner","SetJobPriority","StopQueue","SMCServiceBase","dateParser","isNumeric","trim","_SMCService","connectionOptions","Running","ActiveWorkunit","parseGlobalMetric","startsWith","GetNormalisedGlobalMetrics","metric","GlobalMetrics","GlobalMetric","Category","Start","DateTimeRange","End","dimensions","stats","dimension","Dimensions","Dimension","Value","stat","Stats","Stat","SMCService","_storeServiceBase","CreateStore","DeleteNamespace","Fetch","FetchAll","FetchKeyMetadata","ListKeys","ListNamespaces","ListStores","storeServiceBase","_StoreService","StoreServiceBase","Success","StoreService","WsTopology","TpConfigResponseFormat","RoxieQueueFilter","_TopologyServiceBase","SystemLog","TpClusterInfo","TpClusterQuery","TpComponentConfiguration","TpConfiguredComponents","TpDropZoneQuery","TpGetComponentFile","TpGetServicePlugins","TpGroupQuery","TpListLogFiles","TpListTargetClusters","TpLogFile","TpLogFileDisplay","TpLogicalClusterQuery","TpMachineInfo","TpMachineQuery","TpServiceQuery","TpSetMachineStatus","TpSwapNode","TpTargetClusterQuery","TpThorStatus","TpXMLFile","TopologyServiceBase","_TopologyService","ip","DefaultTpLogicalClusterQuery","default","firstHThor","first","TpLogicalClusters","TpLogicalCluster","idx","TopologyService","WsWorkunits","ECLWUActions","LogEventClass","WUDetailsAttrValueType","EclDefinitionActions","ErrorMessageFormat","LogAccessLogFormat","WUExceptionSeverity","WUQueryFilterSuspendedType","WUQuerySetFilterType","WUProtectFilter","QuerysetImportActivation","QuerySetQueryActionTypes","WUQueryActivationMode","QuerySetAliasActionTypes","_WorkunitsServiceBase","GVCAjaxGraph","WUAbort","WUAction","WUAddLocalFileToWorkunit","WUAnalyseHotspot","WUCDebug","WUCheckFeatures","WUClusterJobQueueLOG","WUClusterJobQueueXLS","WUClusterJobSummaryXLS","WUClusterJobXLS","WUCompileECL","WUCopyLogicalFiles","WUCopyQuerySet","WUCreate","WUCreateAndUpdate","WUCreateZAPInfo","WUDelete","WUDeployWorkunit","WUDetails","WUDetailsMeta","WUEclDefinitionAction","WUExport","WUFile","WUFullResult","WUGVCGraphInfo","WUGetArchiveFile","WUGetDependancyTrees","WUGetGraph","WUGetGraphNameAndTypes","WUGetNumFileToCopy","WUGetPlugins","WUGetStats","WUGetThorJobList","WUGetThorJobQueue","WUGetZAPInfo","WUGraphInfo","WUGraphTiming","WUInfo","WUInfoDetails","WUJobList","WULightWeightQuery","WUListArchiveFiles","WUListLocalFileRequired","WUListQueries","WUListQueriesUsingFile","WUMultiQuerysetDetails","WUProcessGraph","WUProtect","WUPublishWorkunit","WUPushEvent","WUQuery","WUQueryConfig","WUQueryDetails","WUQueryDetailsLightWeight","WUQueryFiles","WUQueryGetGraph","WUQueryGetSummaryStats","WUQuerysetAliasAction","WUQuerysetCopyQuery","WUQuerysetDetails","WUQuerysetExport","WUQuerysetImport","WUQuerysetQueryAction","WUQuerysets","WURecreateQuery","WUResubmit","WUResult","WUResultBin","WUResultSummary","WUResultView","WURun","WUSchedule","WUShowScheduled","WUSubmit","WUSyntaxCheckECL","WUUpdate","WUUpdateQueryEntry","WUWaitCompiled","WUWaitComplete","WorkunitsServiceBase","Action","WUStateID","isECLResult","isWUQueryECLWorkunit","TotalClusterTime","isWUInfoWorkunit","StateEx","_WorkunitsService","result","deepMixin","Workunits","ECLWorkunit","Wuid","TruncateEclTo64k","IncludeExceptions","IncludeGraphs","IncludeSourceFiles","IncludeResults","IncludeResultsViewNames","IncludeVariables","IncludeTimers","IncludeDebugValues","IncludeApplicationValues","IncludeWorkflows","IncludeXmlSchemas","IncludeResourceURLs","IncludeECL","IncludeHelpers","IncludeAllowedClusters","IncludeTotalClusterTime","IncludeServiceNames","SuppressResultSchemas","ActionType","WUActionType","WUFileEx","_WUDetailsMetaPromise","WUCDebugEx","xml2json","WorkunitsService","_WorkunitsServiceEx","WUPublishWorkunitEx","WorkunitsServiceEx","formatDecimal","abs","toLocaleString","formatDecimalParts","toExponential","coefficient","exponent","formatGroup","grouping","thousands","t","substring","reverse","formatNumerals","numerals","prefixExponent","re","formatSpecifier","match","FormatSpecifier","align","symbol","zero","comma","precision","formatTrim","out","i1","i0","formatPrefixAuto","min","formatRounded","formatTypes","toFixed","toPrecision","o","r","toUpperCase","identity","prefixes","Number","currencyPrefix","currency","currencySuffix","decimal","percent","minus","nan","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","Infinity","padding","formatPrefix","pow","_ECLGraph","StateObject","wu","properties","Label","Complete","WhenStarted","WhenFinished","Time","RunningId","Failed","eclGraph","eclTimers","duration","eclTimer","GraphName","HasSubGraphId","Seconds","fetchScopeGraph","subgraphID","fetchGraphDetails","scopes","createGraph","ECLGraph","_GraphCache","Cache","hash","GraphCache","walkXmlJson","callback","stack","$","childNode","flattenAtt","nodes","_XGMMLGraph","Graph","XGMMLGraph","_XGMMLSubgraph","Subgraph","XGMMLSubgraph","_XGMMLVertex","Vertex","XGMMLVertex","_XGMMLEdge","Edge","XGMMLEdge","createXGMMLGraph","graphs","subgraphs","vertices","edges","graph","tag","attributes","childNodes","_stack","top","subgraph","createSubgraph","vertex","createVertex","edge","createEdge","_ScopeGraph","ScopeGraph","_ScopeSubgraph","ScopeSubgraph","_ScopeVertex","ScopeVertex","_ScopeEdge","ScopeEdge","scope","ScopeType","Id","ScopeName","scopeStack","parentScope","scopeParent1","parent1","scopeParent2","scopeParent3","parent3","source","attr","RawValue","_Resource","URL","DisplayName","DisplayPath","cleanedURL","urlParts","matchStr","displayPath","displayName","substr","Resource","_XSDNode","fix","XSDNode","_XSDXMLNode","isSet","attrs","_children","append","splice","setOfType","isAll","charWidth","numStr","underbarPos","lastIndexOf","parseInt","XSDXMLNode","_XSDSimpleType","maxLength","_restricition","_maxLength","XSDSimpleType","_XSDSchema","simpleTypes","XSDSchema","_XSDParser","SAXStackParser","schema","simpleType","xsdStack","Stack","startXMLNode","xsdXMLNode","depth","endXMLNode","xsdXMLNode2","XSDParser","parseXSD","xml","saxParser","_XSDParser2","_rootName","rootName","XSDParser2","parseXSD2","_GlobalResultCache","BaseUrl","ResultName","GlobalResultCache","_results","_Result","_bypassCache","xsdSchema","ResultSequence","LogicalFileName","Sequence","Link","FileName","IsSupplied","ShowFileContent","ECLSchemas","ResultViews","XmlSchema","attach","wuid","name_sequence_eclResult","resultViews","attachLogicalFile","nodeGroup","logicalFile","wuid_NodeGroup","name_sequence_eclResult_logicalFile","resultViews_isLogicalFile","isComplete","bypassCache","bypass","_fetchXMLSchemaPromise","fetchXMLSchema","refresh","fetchRows","from","includeSchema","shouldBypassCache","rootField","suppressXmlSchema","FilterBy","NamedValue","itemcount","LogicalName","SuppressXmlSchema","_ResultCache","ResultCache","_Attribute","Formatted","FormattedEnd","Measure","Creator","CreatorType","attribute","Attribute","_BaseScope","_attributeMap","Properties","Property","Notes","Note","SinkActivity","CAttributes","timeElapsed","scopeAttr","update","scopeParts","walk","visitor","formattedAttrs","rawAttrs","hasAttr","attrMeasure","calcTooltip","label","rows","BaseScope","_Scope","Scope","_SourceFile","FileCluster","IsSuperFile","Subs","ECLSourceFiles","eclSourceFile","SourceFile","_Timer","SubGraphId","Timestamp","When","secs","espTime2Seconds","Timer","formatter","parser","d3FormatNum","d3Format","formatNum","num","DEFINITION_LIST","definitionRegex","PropertyType","RelatedProperty","metricKeyRegex","_splitMetric","fullLabel","relProp","index","measure","ext","labelParts","shift","splitLabelCache","splitMetric","formatValue","__formattedProps","safeParseFloat","val","parseFloat","formatValues","dedup","keyParts","avg","stdDev","StdDevs","Key","Avg","Min","Max","Delta","StdDev","SkewMin","SkewMax","NodeMin","NodeMax","_WorkunitCache","WorkunitCache","_workunits","_Workunit","topologyConnection","_debugMode","_debugAllGraph","_submitAction","Owner","Jobname","ActionEx","StateID","Unknown","State","Protected","ECLException","View","_resultCache","ResultCount","ECLResult","CResults","eclResult","SequenceResults","Timers","ECLTimer","CTimers","_graphCache","GraphCount","Graphs","CGraphs","ThorLogList","ResourceURLCount","ResourceURLs","CResourceURLs","DateTimeScheduled","IsPausing","ThorLCR","ApplicationValues","ApplicationValue","HasArchiveQuery","PriorityClass","PriorityLevel","Snapshot","ResultLimit","EventSchedule","Query","HelpersCount","Helpers","ECLHelpFile","DebugValues","AllowedClusters","ErrorCount","WarningCount","InfoCount","AlertCount","SourceFileCount","SourceFiles","ECLSourceFile","CSourceFiles","VariableCount","Variables","TimerCount","HasDebugValue","ApplicationValueCount","XmlParams","AccessFlag","ClusterFlag","ResultViewCount","DebugValueCount","WorkflowCount","Archived","RoxieCluster","DebugState","Queue","Active","AbortBy","AbortTime","Workflows","TimingData","HelpersDesc","GraphsDesc","SourceFilesDesc","ResultsDesc","VariablesDesc","TimersDesc","DebugValuesDesc","ApplicationValuesDesc","WorkflowsDesc","ServiceNames","CompileCost","ExecuteCost","FileAccessCost","NoAccess","ECLWUProcessList","CostSavingPotential","create","Workunit","state","existsLocal","server","ecl","compileOnly","QueryText","Compile","compile","query","WsTopology.TopologyService","clearState","clear","StateOrig","JobnameOrig","DescriptionOrig","ProtectedOrig","ClusterOrig","_cluster","Run","resultLimit","clusterPromise","Debug","cluster","DebugValue","Compiled","Completed","Aborted","NotFound","isFailed","isDeleted","isDebugging","DebugPaused","DebugRunning","isRunning","Aborting","Blocked","setToFailed","SetToFailed","pause","Pause","pauseNow","PauseNow","resume","Resume","abort","Abort","protect","Protect","unprotect","Unprotect","restore","Restore","deschedule","Deschedule","reschedule","Reschedule","resubmit","CloneWorkunit","ResetWorkflow","_monitor","WUs","WU","WUID","refreshState","refreshInfo","refreshDebug","debugStatus","full","eclExceptions","fetchArchive","fetchECLExceptions","fetchResults","fetchGraphs","fetchQuery","fetchHelpers","fetchAllowedClusters","AllowedCluster","fetchTotalClusterTime","fetchServiceNames","fetchDetailsMeta","fetchDetailsRaw","Scopes","normalizeDetails","meta","columns","activityMap","activity","Activities","Kind","data","props","formattedProps","scopeProperty","rawValue","rawValueInt","normalizedScope","__groupedProps","__groupedRawProps","__StdDevs","__StdDevsSource","definitionList","parsedList","processedDefinitions","matches","filePath","col","maxStdDevs","maxStdDevsSource","fetchDetailsNormalized","promises","fetchInfo","fetchDetails","rawScope","fetchDetailsHierarchy","scopeMap","parentScopeID","graphIDs","rootTypes","ScopeFilter","MaxDepth","Ids","ScopeTypes","NestedFilter","Depth","PropertiesToReturn","AllStatistics","AllAttributes","AllHints","AllProperties","AllScopes","ScopeOptions","IncludeId","IncludeScope","IncludeScopeType","PropertyOptions","IncludeName","IncludeRawValue","IncludeFormatted","IncludeMeasure","IncludeCreator","IncludeCreatorType","fetchScopeGraphs","fetchTimeElapsed","PropertyFilters","PropertyFilter","scopeInfo","elapsed","finish","endTime","setMilliseconds","sort","l","_monitorTickCount","_monitorTimeoutDuration","on","eventID","propIDorCallback","isCallback","changeInfo","watchUntilComplete","watchHandle","watch","changes","release","watchUntilRunning","includeResults","deepMixinT","Wuids","IncludeMatchedScopesInResults","actionType","publish","JobName","AllowForeignFiles","Activate","ActivateQuery","Wait","publishEx","publishRequest","command","optsStr","Command","XMLNode","debugState","debugContinue","mode","debugStep","debugPause","debugQuit","debugDeleteAllBreakpoints","debugBreakpointResponseParser","rootNode","debugBreakpointAdd","debugBreakpointList","debugGraph","debugBreakpointValid","path","breakpointLocations","debugPrint","edgeID","startRow","numRows","rowNode","cellNode","content","ATTR_DEFINITION","hasECLDefinition","getECLDefinition","_file","_row","_col","file","_activity","_Activity","Build","ThorClusterList","RoxieClusterList","HThorClusterList","DFUJobs","BannerContent","BannerColor","BannerSize","BannerScroll","ChatURL","ShowBanner","ShowChatURL","Descending","SuperUser","AccessRight","ServerJobQueues","ActivityTime","DaliDetached","runningWorkunits","clusterName","awu","ClusterName","setBanner","lazyRefresh","debounce","async","_LogicalFileCache","LogicalFileCache","_store","_LogicalFile","Filename","Prefix","NumParts","Dir","PathMask","Filesize","FileSizeInt64","RecordSize","RecordCount","RecordSizeInt64","RecordCountInt64","Persistent","MaxRecordSize","CsvSeparate","CsvQuote","CsvTerminate","CsvEscape","Modified","Ecl","DFUFilePartsOnClusters","isSuperfile","ProtectList","FromRoxieCluster","UserPermission","ContentType","CompressedFileSize","PercentCompressed","IsCompressed","BrowseData","jsonInfo","binInfo","PackageID","Partition","Blooms","ExpireDays","KeyType","IsRestricted","AtRestCost","AccessCost","ExpirationDate","ExtendedIndexInfo","CompressionType","filePartsOnCluster","DFUFilePartsOnCluster","fileParts","poc","part","DFUFileParts","DFUPart","DFUFileProtect","fetchDefFile","fetchAllLogicalFiles","fetchListHistory","History","Origin","eraseHistory","LogicalFile","_MachineCache","Address","MachineCache","_machines","_Machine","ConfigAddress","ProcessType","DisplayType","AgentVersion","Contact","Location","UpTime","ComponentName","ComponentPath","RoxieState","RoxieStateDetails","OS","ProcessNumber","Channels","Processors","Storage","PhysicalMemory","VirtualMemory","ComponentInfo","address","Machine","_TargetClusterCache","TargetClusterCache","_targetCluster","_TargetCluster","machineConnection","IsDefault","TpClusters","TpEclCCServers","TpEclServers","TpEclAgents","TpEclSchedulers","MachineInfoEx","CMachineInfoEx","machineInfoEx","fetchMachines","machineInfo","TargetClusterInfoList","TargetClusterInfo","Processes","machineStats","maxDisk","totalFree","machine","storageInfo","StorageInfo","usage","meanDisk","fetchUsage","TargetCluster","TpClusterNameType","_defaultTargetCluster","defaultTargetCluster","firstItem","defaultItem","hthorItem","defItem","_TopologyCache","TopologyCache","_topology","_Topology","CTargetClusters","tc","LogicalClusters","Services","GetESPServiceBaseURL","rootProtocol","port","ServiceList","TpEspServers","TpEspServer","binding","TpBindings","TpBinding","fetchTargetClusters","TpTargetClusters","TpTargetCluster","fetchLogicalClusters","fetchServices","_prevRefresh","force","Topology","safeAssign","xmlEncode","unitTest","size","unit","nsIndex","espSize2Bytes","espSkew2Number","skew","_LocalisedXGMMLWriter","m_xgmml","m_visibleSubgraphs","m_visibleVertices","m_semiVisibleVertices","m_visibleEdges","noSpills","calcVisibility","localisationDepth","localisationDistance","isVertex","calcInVertexVisibility","calcOutVertexVisibility","isEdge","getSource","getTarget","isSubgraph","__hpcc_id","calcSubgraphVisibility","calcVisibility2","isSpill","getInEdges","getOutEdges","__hpcc_subgraphs","__hpcc_vertices","dedupEdges","__hpcc_parent","getCommonAncestor","buildVertexString","isPoint","attrStr","propsStr","getProperties","buildEdgeString","getAncestors","v","ancestors","parent","getCommonAncestorV","v1","v2","v1_ancestors","v2_ancestors","finger1","finger2","calcAncestorVisibility","calcSemiVisibleVertices","addSemiVisibleEdge","addSemiVisibleVertex","inEdges","outEdges","writeXgmml","subgraphVisited","edgeVisited","xgmmlLen","walkSubgraphs","walkVertices","vertexVisited","LocalisedXGMMLWriter","_GraphItem","__hpcc_graph","__widget","_globalID","GraphItem","_Subgraph","_globalType","__hpcc_edges","addSubgraph","subgraph2","addVertex","vertex2","removeVertex","addEdge","edge2","removeEdge","remove","removeItem","_Vertex","_isSpill","inVertices","getInVertices","setSource","getOutVertices","_Edge","_sourceActivity","_targetActivity","_QueryGraph","xgmml","load","merge","dom","DOMParser","parseFromString","walkDocument","documentElement","getGlobalType","getGlobalTypeString","getItem","docNode","tagName","getChildByTagName","nodeType","attNode","graphNode","getAttribute","uname","NumRowsProcessed","_eclwatchCount","inputProgress","_eclwatchInputProgress","SkewMaxRowsProcessed","SkewMinRowsProcessed","_eclwatchSkew","_dependsOn","_childGraph","removeSubgraphs","removeSpillVertices","getLocalisedXGMML","xgmmlWriter","QueryGraph","siFormatter","isNumber","_QueryCache","QueryId","QuerySet","_queries","_Query","wsWorkunitsService","topology","_requestSchema","_responseSchema","QueryName","Dll","Suspended","Activated","SuspendedBy","Clusters","PublishedBy","Comment","LogicalFiles","SuperFiles","IsLibrary","Priority","WUSnapShot","CompileTime","LibrariesUsed","CountGraphs","WsEclAddresses","WUGraphs","WUTimers","PriorityID","queryID","queryDetails","_eclService","wsEclService","services","espServer","globalThis","location","hostname","IncludeStateOnClusters","IncludeSuperFiles","IncludeWsEclAddresses","CheckAllNodes","fetchRequestSchema","fetchResponseSchema","fetchSchema","fetchSummaryStats","Target","fetchGraph","graphItem","ECLGraphEx","firstChar","existingProperties","prop","newProperties","firstCharOfKey","valueType","formatted","results","requestFields","responseFields","resultNames","resultFields","resultName","_StoreCache","UserSpecific","Namespace","StoreCache","_ValueChangedMessage","oldValue","canConflate","conflate","other","ValueChangedMessage","_Store","_dispatch","Dispatch","_knownValues","broadcast","StoreName","getAll","deletedValues","Pairs","Pair","pair","monitor","Store","_DFUWorkunitCache","ID","DFUWorkunitCache","_DFUWorkunit","DFUServerName","User","isProtected","CommandMessage","PercentDone","SecsLeft","ProgressMessage","SummaryMessage","SourceLogicalName","SourceIP","SourceFilePath","SourceDali","SourceRecordSize","SourceFormat","RowTag","SourceNumParts","SourceDirectory","DestLogicalName","DestGroupName","DestDirectory","DestIP","DestFilePath","DestFormat","DestNumParts","DestRecordSize","Overwrite","Compress","SourceCsvSeparate","SourceCsvQuote","SourceCsvTerminate","SourceCsvEscape","TimeStarted","TimeStopped","StateMessage","MonitorEventName","MonitorSub","MonitorShotLimit","SourceDiffKeyName","DestDiffKeyName","encrypt","decrypt","failIfNoSourceFile","recordStructurePresent","quotedTerminator","preserveCompression","expireDays","PreserveFileParts","KbPerSecAve","KbPerSec","dfuServerQueue","DFUServerQueue","sprayFixed","sprayVariable","despray","JobNameOrig","isProtectedOrig","DFUWUAction","fetchXML","wuids","DFUWorkunit"],"mappings":"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","x_google_ignoreList":[24,25,26,27,28,30,38,39,40,41,42,43,44,45,46,47,56,57,58,59,60,61,62,63,64,65,66,67]}