UNPKG

581 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.es6.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.js","../src/connection.ts","../src/espConnection.ts","../src/services/wsAccount.ts","../src/services/wsDFU.ts","../src/services/wsEcl.ts","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/bisect.js","../../../node_modules/d3-array/src/number.js","../../../node_modules/d3-array/src/max.js","../../../node_modules/d3-array/src/mean.js","../src/services/wsMachine.ts","../src/services/wsSMC.ts","../src/services/wsStore.ts","../src/services/wsTopology.ts","../src/services/wsWorkunits.ts","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/millisecond.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/second.js","../../../node_modules/d3-time/src/minute.js","../../../node_modules/d3-time/src/hour.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-time/src/utcMinute.js","../../../node_modules/d3-time/src/utcHour.js","../../../node_modules/d3-time/src/utcDay.js","../../../node_modules/d3-time/src/utcWeek.js","../../../node_modules/d3-time/src/utcMonth.js","../../../node_modules/d3-time/src/utcYear.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/d3-time-format/src/isoFormat.js","../../../node_modules/d3-time-format/src/isoParse.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/query.ts","../src/ecl/store.ts","../src/ecl/targetCluster.ts","../src/ecl/topology.ts","../src/clienttools/eclMeta.ts","../src/clienttools/eclcc.ts","../src/index.node.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/comms\";\r\nexport const PKG_VERSION = \"2.20.0\";\r\nexport const BUILD_VERSION = \"2.28.0\";\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { join, promiseTimeout, scopedLogger } from \"@hpcc-js/util\";\n\nconst logger = scopedLogger(\"comms/connection.ts\");\n\nexport type RequestType = \"post\" | \"get\" | \"jsonp\";\nexport type ResponseType = \"json\" | \"text\";\n\nexport type IOptionsSend = (options: IOptions, action: string, request: any, responseType: ResponseType, defaultSend: SendFunc, header?: any) => Promise<any>;\nexport interface IOptions {\n baseUrl: string;\n type?: RequestType;\n userID?: string;\n password?: string;\n rejectUnauthorized?: boolean;\n timeoutSecs?: number;\n hookSend?: IOptionsSend;\n encodeRequest?: boolean; // defaults to true\n}\nexport function instanceOfIOptions(object: any): object is IOptions {\n return \"baseUrl\" in object;\n}\n\nconst DefaultOptions: IOptions = {\n type: \"post\",\n baseUrl: \"\",\n userID: \"\",\n password: \"\",\n rejectUnauthorized: true,\n timeoutSecs: 60\n};\n\nexport interface IConnection {\n opts(_: Partial<IOptions>): this;\n opts(): IOptions;\n baseUrl: string;\n\n send(action: string, request: any, responseType?: ResponseType): Promise<any>;\n clone(): IConnection;\n}\nexport function instanceOfIConnection(object: any): object is IConnection {\n return typeof object.opts === \"function\" &&\n typeof object.send === \"function\" &&\n typeof object.clone === \"function\";\n}\n\n// comms ---\n\nfunction encode(uriComponent: string | number | boolean, encodeRequest: boolean): string {\n return (encodeRequest === undefined || encodeRequest === true) ? encodeURIComponent(uriComponent) : \"\" + uriComponent;\n}\n\nexport function serializeRequest(obj: any, encodeRequest: boolean = true, prefix: string = \"\"): string {\n if (prefix) {\n prefix += \".\";\n }\n if (typeof obj !== \"object\") {\n return encode(obj, encodeRequest);\n }\n\n const str: string[] = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (obj[key] instanceof Array) {\n // Specific to ESP - but no REST standard exists...\n let includeItemCount = false;\n obj[key].forEach((row: any, i: number) => {\n if (typeof row === \"object\") {\n includeItemCount = true;\n str.push(serializeRequest(row, encodeRequest, prefix + encode(`${key}.${i}`, encodeRequest)));\n } else {\n str.push(prefix + encode(`${key}_i${i}`, encodeRequest) + \"=\" + serializeRequest(row, encodeRequest));\n }\n });\n if (includeItemCount) {\n str.push(prefix + encode(`${key}.itemcount`, encodeRequest) + \"=\" + obj[key].length);\n }\n } else if (typeof obj[key] === \"object\") {\n if (obj[key] && obj[key][\"Item\"] instanceof Array) { // Specific to ws_machine.GetTargetClusterInfo?\n str.push(serializeRequest(obj[key][\"Item\"], encodeRequest, prefix + encode(key, encodeRequest)));\n str.push(prefix + encode(`${key}.itemcount`, encodeRequest) + \"=\" + obj[key][\"Item\"].length);\n } else {\n str.push(serializeRequest(obj[key], encodeRequest, prefix + encode(key, encodeRequest)));\n }\n } else if (obj[key] !== undefined) {\n str.push(prefix + encode(key, encodeRequest) + \"=\" + encode(obj[key], encodeRequest));\n } else {\n str.push(prefix + encode(key, encodeRequest));\n }\n }\n }\n return str.join(\"&\");\n}\n\nexport function deserializeResponse(body: string) {\n return JSON.parse(body);\n}\n\nexport function jsonp(opts: IOptions, action: string, request: any = {}, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n if (header) {\n console.warn(\"Header attributes ignored for JSONP connections\");\n }\n return new Promise<any>((resolve, reject) => {\n let respondedTimeout = opts.timeoutSecs! * 1000;\n const respondedTick = 5000;\n const callbackName = \"jsonp_callback_\" + Math.round(Math.random() * 999999);\n (window as any)[callbackName] = function (response: any) {\n respondedTimeout = 0;\n doCallback();\n resolve(responseType === \"json\" && typeof response === \"string\" ? deserializeResponse(response) : response);\n };\n const script = document.createElement(\"script\");\n let url = join(opts.baseUrl, action);\n url += url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n script.src = url + \"jsonp=\" + callbackName + \"&\" + serializeRequest(request, opts.encodeRequest);\n document.body.appendChild(script);\n const progress = setInterval(function () {\n if (respondedTimeout <= 0) {\n clearInterval(progress);\n } else {\n respondedTimeout -= respondedTick;\n if (respondedTimeout <= 0) {\n clearInterval(progress);\n logger.error(\"Request timeout: \" + script.src);\n doCallback();\n reject(Error(\"Request timeout: \" + script.src));\n } else {\n logger.debug(\"Request pending (\" + respondedTimeout / 1000 + \" sec): \" + script.src);\n }\n }\n }, respondedTick);\n\n function doCallback() {\n delete (window as any)[callbackName];\n document.body.removeChild(script);\n }\n });\n}\n\nfunction authHeader(opts: IOptions): object {\n return opts.userID ? { Authorization: `Basic ${btoa(`${opts.userID}:${opts.password}`)}` } : {};\n}\n\n// _omitMap is a workaround for older HPCC-Platform instances without credentials ---\nconst _omitMap: { [baseUrl: string]: boolean } = {};\nfunction doFetch(opts: IOptions, action: string, requestInit: RequestInit, headersInit: HeadersInit, responseType: string) {\n headersInit = {\n ...authHeader(opts),\n ...headersInit\n };\n\n requestInit = {\n credentials: _omitMap[opts.baseUrl] ? \"omit\" : \"include\",\n ...requestInit,\n headers: headersInit\n };\n\n if (opts.rejectUnauthorized === false && fetch[\"__agent\"] && opts.baseUrl.indexOf(\"https:\") === 0) {\n // NodeJS / node-fetch only ---\n requestInit[\"agent\"] = fetch[\"__agent\"];\n }\n\n function handleResponse(response: Response): Promise<any> {\n if (response.ok) {\n return responseType === \"json\" ? response.json() : response.text();\n }\n throw new Error(response.statusText);\n }\n\n return promiseTimeout(opts.timeoutSecs! * 1000, fetch(join(opts.baseUrl, action), requestInit)\n .then(handleResponse)\n .catch(e => {\n // Try again with the opposite credentials mode ---\n requestInit.credentials = !_omitMap[opts.baseUrl] ? \"omit\" : \"include\";\n return fetch(join(opts.baseUrl, action), requestInit)\n .then(handleResponse)\n .then(responseBody => {\n _omitMap[opts.baseUrl] = !_omitMap[opts.baseUrl]; // The \"opposite\" credentials mode is known to work ---\n return responseBody;\n });\n })\n );\n}\n\nexport function post(opts: IOptions, action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n return doFetch(opts, action, {\n method: \"post\",\n body: serializeRequest(request, opts.encodeRequest)\n }, {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n ...header\n } as any, responseType);\n}\n\nexport function get(opts: IOptions, action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n return doFetch(opts, `${action}?${serializeRequest(request, opts.encodeRequest)}`, {\n method: \"get\"\n }, {\n ...header\n } as any, responseType);\n}\n\nexport type SendFunc = (opts: IOptions, action: string, request: any, responseType: ResponseType, header?: any) => Promise<any>;\nexport function send(opts: IOptions, action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n let retVal: Promise<any>;\n switch (opts.type) {\n case \"jsonp\":\n retVal = jsonp(opts, action, request, responseType, header);\n break;\n case \"get\":\n retVal = get(opts, action, request, responseType, header);\n break;\n case \"post\":\n default:\n retVal = post(opts, action, request, responseType, header);\n break;\n }\n return retVal;\n}\n\nlet hookedSend: SendFunc = send;\nexport function hookSend(newSend?: SendFunc): SendFunc {\n const retVal = hookedSend;\n if (newSend) {\n hookedSend = newSend;\n }\n return retVal;\n}\n\nexport class Connection implements IConnection {\n protected _opts: IOptions;\n get baseUrl() { return this._opts.baseUrl; }\n\n constructor(opts: IOptions) {\n this.opts(opts);\n }\n\n // IConnection ---\n opts(_: Partial<IOptions>): this;\n opts(): IOptions;\n opts(_?: Partial<IOptions>): this | IOptions {\n if (arguments.length === 0) return this._opts;\n this._opts = { ...DefaultOptions, ..._ };\n return this;\n }\n\n send(action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n if (this._opts.hookSend) {\n return this._opts.hookSend(this._opts, action, request, responseType, hookedSend, header);\n }\n return hookedSend(this._opts, action, request, responseType, header);\n }\n\n clone() {\n return new Connection(this.opts());\n }\n}\n\nexport type IConnectionFactory = (opts: IOptions) => IConnection;\nexport let createConnection: IConnectionFactory = function (opts: IOptions): IConnection {\n return new Connection(opts);\n};\n\nexport function setTransportFactory(newFunc: IConnectionFactory): IConnectionFactory {\n const retVal = createConnection;\n createConnection = newFunc;\n return retVal;\n}\n","import { join } from \"@hpcc-js/util\";\nimport { createConnection, IConnection, IOptions, ResponseType } from \"./connection\";\n\nexport type ESPResponseType = ResponseType | \"json2\" | \"xsd\";\n\nexport function isArray(arg: any) {\n return Object.prototype.toString.call(arg) === \"[object Array]\";\n}\n\nexport interface Exception {\n Code: number;\n Message: string;\n}\n\nexport interface Exceptions {\n Source: string;\n Exception: Exception[];\n}\n\nexport class ESPExceptions extends Error implements Exceptions {\n isESPExceptions = true;\n action: string;\n request: string;\n Source: string;\n Exception: Exception[];\n\n constructor(action: string, request: any, exceptions: Exceptions) {\n super(\"ESPException: \" + exceptions.Source);\n this.action = action;\n this.request = request;\n this.Source = exceptions.Source;\n this.Exception = exceptions.Exception;\n if (exceptions.Exception.length) {\n this.message = `${exceptions.Exception[0].Code}: ${exceptions.Exception[0].Message}`;\n }\n }\n}\n\nfunction isConnection(optsConnection: IOptions | IConnection): optsConnection is IConnection {\n return (optsConnection as IConnection).send !== undefined;\n}\n\nexport class ESPConnection implements IConnection {\n private _connection: IConnection;\n get baseUrl() { return this._connection.opts().baseUrl; }\n private _service: string;\n private _version: string;\n\n constructor(optsConnection: IOptions | IConnection, service: string, version: string) {\n this._connection = isConnection(optsConnection) ? optsConnection : createConnection(optsConnection);\n this._service = service;\n this._version = version;\n }\n\n service(): string;\n service(_: string): ESPConnection;\n service(_?: string): string | ESPConnection {\n if (_ === void 0) return this._service;\n this._service = _;\n return this;\n }\n\n version(): string;\n version(_: string): ESPConnection;\n version(_?: string): string | ESPConnection {\n if (_ === void 0) return this._version;\n this._version = _;\n return this;\n }\n\n toESPStringArray(target: any, arrayName: string): any {\n if (isArray(target[arrayName])) {\n for (let i = 0; i < target[arrayName].length; ++i) {\n target[arrayName + \"_i\" + i] = target[arrayName][i];\n }\n delete target[arrayName];\n }\n return target;\n }\n\n // IConnection ---\n opts(_: Partial<IOptions>): this;\n opts(): IOptions;\n opts(_?: Partial<IOptions>): this | IOptions {\n if (_ === void 0) return this._connection.opts();\n this._connection.opts(_);\n return this;\n }\n\n send(action: string, _request: any = {}, espResponseType: ESPResponseType = \"json\", largeUpload: boolean = false): Promise<any> {\n const request = { ..._request, ...{ ver_: this._version } };\n if (largeUpload) {\n request[\"upload_\"] = true;\n }\n let serviceAction: string;\n let responseType: ResponseType = \"json\";\n switch (espResponseType) {\n case \"text\":\n serviceAction = join(this._service, action);\n responseType = \"text\";\n break;\n case \"xsd\":\n serviceAction = join(this._service, action + \".xsd\");\n responseType = \"text\";\n break;\n case \"json2\":\n serviceAction = join(this._service, action + \"/json\");\n espResponseType = \"json\";\n const actionParts = action.split(\"/\");\n action = actionParts.pop()!;\n break;\n default:\n serviceAction = join(this._service, action + \".json\");\n }\n return this._connection.send(serviceAction, request, responseType).then((response) => {\n if (espResponseType === \"json\") {\n let retVal;\n if (response && response.Exceptions) {\n throw new ESPExceptions(action, request, response.Exceptions);\n } else if (response) {\n retVal = response[`${action === \"WUCDebug\" ? \"WUDebug\" : action}Response`];\n }\n if (!retVal) {\n throw new ESPExceptions(action, request, {\n Source: \"ESPConnection.send\",\n Exception: [{ Code: 0, Message: \"Missing Response\" }]\n });\n }\n return retVal;\n }\n return response;\n }).catch(e => {\n if (e.isESPExceptions) {\n throw e;\n }\n throw new ESPExceptions(action, request, {\n Source: \"ESPConnection.send\",\n Exception: [{ Code: 0, Message: e.message }]\n });\n });\n }\n\n clone() {\n return new ESPConnection(this._connection.clone(), this._service, this._version);\n }\n}\n\nexport class Service {\n protected _connection: ESPConnection;\n get baseUrl() { return this._connection.opts().baseUrl; }\n\n constructor(optsConnection: IOptions | IConnection, service: string, version: string) {\n this._connection = new ESPConnection(optsConnection, service, version);\n }\n}\n","import { IConnection, IOptions } from \"../connection\";\nimport { ESPConnection } from \"../espConnection\";\n\n/*\n Response structures generated via:\n * http://192.168.3.22:8010/Ws_Account/VerifyUser?respjson_\n * http://json2ts.com/\n*/\nexport namespace VerifyUser {\n\n export interface Request {\n application: string;\n version: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n retcode: number;\n }\n}\n\nexport class AccountService {\n private _connection: ESPConnection;\n\n constructor(optsConnection: IOptions | IConnection) {\n this._connection = new ESPConnection(optsConnection, \"Ws_Account\", \"1.03\");\n }\n\n connectionOptions(): IOptions {\n return this._connection.opts();\n }\n\n VerifyUser(request: VerifyUser.Request): Promise<VerifyUser.Response> {\n return this._connection.send(\"VerifyUser\", request);\n }\n}\n","import { IConnection, IOptions } from \"../connection\";\nimport { Service } from \"../espConnection\";\n\n/*\n Response structures generated via:\n * http://localhost:8010/WsDfu/?ver_=1.5&reqjson_\n * http://localhost:8010/WsDfu/?ver_=1.5&respjson_\n * http://json2ts.com/\n*/\n\nexport namespace WsDfu {\n export interface AddRequest {\n dstname: string;\n xmlmap: string;\n }\n\n export interface AddRemoteRequest {\n dstname: string;\n srcname: string;\n srcdali: string;\n srcusername: string;\n srcpassword: string;\n }\n\n export interface Names {\n Item: string[];\n }\n\n export interface AddtoSuperfileRequest {\n Superfile: string;\n Subfiles: string;\n names: Names;\n ExistingFile: boolean;\n BackToPage: string;\n }\n\n export interface LogicalFiles {\n Item: string[];\n }\n\n export interface DFUArrayActionRequest {\n Type: string;\n NoDelete: boolean;\n BackToPage: string;\n LogicalFiles: LogicalFiles;\n removeFromSuperfiles: boolean;\n removeRecursively: boolean;\n }\n\n export interface DFUBrowseDataRequest {\n LogicalName: string;\n FilterBy: string;\n ShowColumns: string;\n SchemaOnly: boolean;\n StartForGoback: number;\n CountForGoback: number;\n ChooseFile: number;\n Cluster: string;\n ClusterType: string;\n ParentName: string;\n Start: number;\n Count: number;\n DisableUppercaseTranslation: boolean;\n }\n\n export interface DFUDefFileRequest {\n Name: string;\n Format: string;\n }\n\n export interface RequestBase {\n Name: string;\n Cluster: string;\n JobId: string;\n ExpirySeconds: number;\n AccessRole: string;\n AccessType: string;\n ReturnJsonTypeInfo: boolean;\n ReturnBinTypeInfo: boolean;\n }\n\n export interface DFUFileAccessRequest {\n RequestBase: RequestBase;\n }\n\n export interface DFUFileAccessV2Request {\n Name: string;\n Cluster: string;\n RequestId: string;\n ExpirySeconds: number;\n ReturnTextResponse: boolean;\n }\n\n export interface PartLocations {\n Item: string[];\n }\n\n export interface RequestBase2 {\n Name: string;\n Cluster: string;\n JobId: string;\n ExpirySeconds: number;\n AccessRole: string;\n AccessType: string;\n ReturnJsonTypeInfo: boolean;\n ReturnBinTypeInfo: boolean;\n }\n\n export interface DFUFileCreateRequest {\n ECLRecordDefinition: string;\n PartLocations: PartLocations;\n RequestBase: RequestBase2;\n }\n\n export interface DFUFileCreateV2Request {\n Name: string;\n Cluster: string;\n Type: string;\n ECLRecordDefinition: string;\n RequestId: string;\n ExpirySeconds: number;\n ReturnTextResponse: boolean;\n Compressed: boolean;\n }\n\n export interface DFUFilePublishRequest {\n FileId: string;\n Overwrite: boolean;\n FileDescriptorBlob: string;\n ECLRecordDefinition: string;\n RecordCount: number;\n FileSize: number;\n }\n\n export interface DFUFileViewRequest {\n Scope: string;\n IncludeSuperOwner: boolean;\n }\n\n export interface DFUGetDataColumnsRequest {\n OpenLogicalName: string;\n LogicalName: string;\n FilterBy: string;\n ShowColumns: string;\n ChooseFile: number;\n Cluster: string;\n ClusterType: string;\n StartIndex: number;\n EndIndex: number;\n }\n\n export interface DFUGetFileMetaDataRequest {\n LogicalFileName: string;\n ClusterName: string;\n IncludeXmlSchema: boolean;\n AddHeaderInXmlSchema: boolean;\n IncludeXmlXPathSchema: boolean;\n AddHeaderInXmlXPathSchema: boolean;\n }\n\n export interface DFUInfoRequest {\n Name: string;\n Cluster: string;\n UpdateDescription?: boolean;\n QuerySet?: string;\n Query?: string;\n FileDesc?: string;\n IncludeJsonTypeInfo?: boolean;\n IncludeBinTypeInfo?: boolean;\n Protect?: string;\n }\n\n export interface DFUQueryRequest {\n Prefix?: string;\n NodeGroup?: string;\n ContentType?: string;\n LogicalName?: string;\n Owner?: string;\n StartDate?: string;\n EndDate?: string;\n FileType?: string;\n FileSizeFrom?: number;\n FileSizeTo?: number;\n FirstN?: number;\n PageSize?: number;\n PageStartFrom?: number;\n Sortby?: string;\n Descending?: boolean;\n OneLevelDirFileReturn?: boolean;\n CacheHint?: number;\n MaxNumberOfFiles?: number;\n IncludeSuperOwner?: boolean;\n }\n\n export interface DFURecordTypeInfoRequest {\n Name: string;\n IncludeJsonTypeInfo: boolean;\n IncludeBinTypeInfo: boolean;\n }\n\n export interface DFUSearchRequest {\n ShowExample: string;\n }\n\n export interface DFUSearchDataRequest {\n Cluster: string;\n ClusterType: string;\n OpenLogicalName: string;\n FilterBy: string;\n ShowColumns: string;\n ChooseFile: number;\n StartIndex: number;\n EndIndex: number;\n LogicalName: string;\n ParentName: string;\n StartForGoback: number;\n CountForGoback: number;\n Start: number;\n Count: number;\n File: string;\n Key: string;\n SchemaOnly: boolean;\n RoxieSelections: boolean;\n DisableUppercaseTranslation: boolean;\n SelectedKey: string;\n }\n\n export interface DFUSpaceRequest {\n CountBy: string;\n ScopeUnder: string;\n OwnerUnder: string;\n Interval: string;\n StartDate: string;\n EndDate: string;\n }\n\n export interface EclRecordTypeInfoRequest {\n Ecl: string;\n IncludeJsonTypeInfo: boolean;\n IncludeBinTypeInfo: boolean;\n }\n\n export interface EraseHistoryRequest {\n Name: string;\n }\n\n export interface ListHistoryRequest {\n Name: string;\n }\n\n export interface WsDfuPingRequest {\n }\n\n export interface SavexmlRequest {\n name: string;\n }\n\n export interface Subfiles {\n Item: string[];\n }\n\n export interface SuperfileActionRequest {\n action: string;\n superfile: string;\n subfiles: Subfiles;\n before: string;\n delete: boolean;\n removeSuperfile: boolean;\n }\n\n export interface SuperfileListRequest {\n superfile: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface AddResponse {\n Exceptions: Exceptions;\n }\n\n export interface AddRemoteResponse {\n Exceptions: Exceptions;\n }\n\n export interface SubfileNames {\n SubfileName: string[];\n }\n\n export interface AddtoSuperfileResponse {\n Exceptions: Exceptions;\n Subfiles: string;\n BackToPage: string;\n SubfileNames: SubfileNames;\n }\n\n export interface DFUActionInfo {\n FileName: string;\n NodeGroup: string;\n ActionResult: string;\n Failed: boolean;\n }\n\n export interface ActionResults {\n DFUActionInfo: DFUActionInfo[];\n }\n\n export interface DFUArrayActionResponse {\n Exceptions: Exceptions;\n BackToPage: string;\n RedirectTo: string;\n ActionResults: ActionResults;\n }\n\n export interface DataColumns {\n DFUDataColumn: any[];\n }\n\n export interface ColumnHidden {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns;\n }\n\n export interface ColumnsHidden {\n ColumnHidden: ColumnHidden[];\n }\n\n export interface DFUBrowseDataResponse {\n Exceptions: Exceptions;\n Name: string;\n LogicalName: string;\n FilterBy: string;\n FilterForGoBack: string;\n ColumnsHidden: ColumnsHidden;\n ColumnCount: number;\n StartForGoback: number;\n CountForGoback: number;\n ChooseFile: number;\n SchemaOnly: boolean;\n Cluster: string;\n ClusterType: string;\n ParentName: string;\n Start: number;\n Count: number;\n PageSize: number;\n Total: number;\n Result: string;\n MsgToDisplay: string;\n DisableUppercaseTranslation: boolean;\n }\n\n export interface DFUDefFileResponse {\n Exceptions: Exceptions;\n defFile: string;\n }\n\n export interface DFUPartLocation {\n LocationIndex: number;\n Host: string;\n }\n\n export interface FileLocations {\n DFUPartLocation: DFUPartLocation[];\n }\n\n export interface DFUFileCopy {\n CopyIndex: number;\n LocationIndex: number;\n Path: string;\n }\n\n export interface Copies {\n DFUFileCopy: DFUFileCopy[];\n }\n\n export interface DFUFilePart {\n PartIndex: number;\n Copies: Copies;\n }\n\n export interface FileParts {\n DFUFilePart: DFUFilePart[];\n }\n\n export interface AccessInfo {\n MetaInfoBlob: string;\n ExpiryTime: string;\n NumParts: number;\n FileLocations: FileLocations;\n FileParts: FileParts;\n RecordTypeInfoJson: string;\n fileAccessPort: number;\n fileAccessSSL: boolean;\n }\n\n export interface DFUFileAccessResponse {\n Exceptions: Exceptions;\n AccessInfo: AccessInfo;\n }\n\n export interface DFUPartLocation2 {\n LocationIndex: number;\n Host: string;\n }\n\n export interface FileLocations2 {\n DFUPartLocation: DFUPartLocation2[];\n }\n\n export interface DFUFileCopy2 {\n CopyIndex: number;\n LocationIndex: number;\n Path: string;\n }\n\n export interface Copies2 {\n DFUFileCopy: DFUFileCopy2[];\n }\n\n export interface DFUFilePart2 {\n PartIndex: number;\n Copies: Copies2;\n }\n\n export interface FileParts2 {\n DFUFilePart: DFUFilePart2[];\n }\n\n export interface AccessInfo2 {\n MetaInfoBlob: string;\n ExpiryTime: string;\n NumParts: number;\n FileLocations: FileLocations2;\n FileParts: FileParts2;\n RecordTypeInfoJson: string;\n fileAccessPort: number;\n fileAccessSSL: boolean;\n }\n\n export interface DFUFileCreateResponse {\n Exceptions: Exceptions;\n FileId: string;\n Warning: string;\n AccessInfo: AccessInfo2;\n }\n\n export interface DFUFilePublishResponse {\n Exceptions: Exceptions;\n }\n\n export interface DFULogicalFile {\n Prefix: string;\n NodeGroup: string;\n Directory: string;\n Description: string;\n Parts: string;\n Name: string;\n Owner: string;\n Totalsize: string;\n RecordCount: string;\n Modified: string;\n LongSize: string;\n LongRecordCount: string;\n isSuperfile: boolean;\n isDirectory: boolean;\n Replicate: boolean;\n IntSize: number;\n IntRecordCount: number;\n FromRoxieCluster: boolean;\n BrowseData: boolean;\n IsCompressed: boolean;\n ContentType: string;\n CompressedFileSize: number;\n SuperOwners: string;\n Persistent: boolean;\n IsProtected: boolean;\n KeyType: string;\n }\n\n export interface DFULogicalFiles {\n DFULogicalFile: DFULogicalFile[];\n }\n\n export interface DFUFileViewResponse {\n Exceptions: Exceptions;\n Scope: string;\n NumFiles: number;\n DFULogicalFiles: DFULogicalFiles;\n }\n\n export interface DataColumns2 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns2;\n }\n\n export interface DFUDataKeyedColumns1 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DataColumns3 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn2 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns3;\n }\n\n export interface DFUDataKeyedColumns2 {\n DFUDataColumn: DFUDataColumn2[];\n }\n\n export interface DataColumns4 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn3 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns4;\n }\n\n export interface DFUDataKeyedColumns3 {\n DFUDataColumn: DFUDataColumn3[];\n }\n\n export interface DataColumns5 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn4 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns5;\n }\n\n export interface DFUDataKeyedColumns4 {\n DFUDataColumn: DFUDataColumn4[];\n }\n\n export interface DataColumns6 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn5 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns6;\n }\n\n export interface DFUDataKeyedColumns5 {\n DFUDataColumn: DFUDataColumn5[];\n }\n\n export interface DataColumns7 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn6 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns7;\n }\n\n export interface DFUDataKeyedColumns6 {\n DFUDataColumn: DFUDataColumn6[];\n }\n\n export interface DataColumns8 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn7 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns8;\n }\n\n export interface DFUDataKeyedColumns7 {\n DFUDataColumn: DFUDataColumn7[];\n }\n\n export interface DataColumns9 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn8 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns9;\n }\n\n export interface DFUDataKeyedColumns8 {\n DFUDataColumn: DFUDataColumn8[];\n }\n\n export interface DataColumns10 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn9 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns10;\n }\n\n export interface DFUDataKeyedColumns9 {\n DFUDataColumn: DFUDataColumn9[];\n }\n\n export interface DataColumns11 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn10 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns11;\n }\n\n export interface DFUDataKeyedColumns10 {\n DFUDataColumn: DFUDataColumn10[];\n }\n\n export interface DataColumns12 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn11 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns12;\n }\n\n export interface DFUDataKeyedColumns11 {\n DFUDataColumn: DFUDataColumn11[];\n }\n\n export interface DataColumns13 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn12 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns13;\n }\n\n export interface DFUDataKeyedColumns12 {\n DFUDataColumn: DFUDataColumn12[];\n }\n\n export interface DataColumns14 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn13 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns14;\n }\n\n export interface DFUDataKeyedColumns13 {\n DFUDataColumn: DFUDataColumn13[];\n }\n\n export interface DataColumns15 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn14 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns15;\n }\n\n export interface DFUDataKeyedColumns14 {\n DFUDataColumn: DFUDataColumn14[];\n }\n\n export interface DataColumns16 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn15 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns16;\n }\n\n export interface DFUDataKeyedColumns15 {\n DFUDataColumn: DFUDataColumn15[];\n }\n\n export interface DataColumns17 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn16 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns17;\n }\n\n export interface DFUDataKeyedColumns16 {\n DFUDataColumn: DFUDataColumn16[];\n }\n\n export interface DataColumns18 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn17 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns18;\n }\n\n export interface DFUDataKeyedColumns17 {\n DFUDataColumn: DFUDataColumn17[];\n }\n\n export interface DataColumns19 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn18 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns19;\n }\n\n export interface DFUDataKeyedColumns18 {\n DFUDataColumn: DFUDataColumn18[];\n }\n\n export interface DataColumns20 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn19 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns20;\n }\n\n export interface DFUDataKeyedColumns19 {\n DFUDataColumn: DFUDataColumn19[];\n }\n\n export interface DataColumns21 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn20 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns21;\n }\n\n export interface DFUDataKeyedColumns20 {\n DFUDataColumn: DFUDataColumn20[];\n }\n\n export interface DataColumns22 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn21 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns22;\n }\n\n export interface DFUDataNonKeyedColumns1 {\n DFUDataColumn: DFUDataColumn21[];\n }\n\n export interface DataColumns23 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn22 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns23;\n }\n\n export interface DFUDataNonKeyedColumns2 {\n DFUDataColumn: DFUDataColumn22[];\n }\n\n export interface DataColumns24 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn23 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns24;\n }\n\n export interface DFUDataNonKeyedColumns3 {\n DFUDataColumn: DFUDataColumn23[];\n }\n\n export interface DataColumns25 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn24 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns25;\n }\n\n export interface DFUDataNonKeyedColumns4 {\n DFUDataColumn: DFUDataColumn24[];\n }\n\n export interface DataColumns26 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn25 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns26;\n }\n\n export interface DFUDataNonKeyedColumns5 {\n DFUDataColumn: DFUDataColumn25[];\n }\n\n export interface DataColumns27 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn26 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns27;\n }\n\n export interface DFUDataNonKeyedColumns6 {\n DFUDataColumn: DFUDataColumn26[];\n }\n\n export interface DataColumns28 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn27 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns28;\n }\n\n export interface DFUDataNonKeyedColumns7 {\n DFUDataColumn: DFUDataColumn27[];\n }\n\n export interface DataColumns29 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn28 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns29;\n }\n\n export interface DFUDataNonKeyedColumns8 {\n DFUDataColumn: DFUDataColumn28[];\n }\n\n export interface DataColumns30 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn29 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns30;\n }\n\n export interface DFUDataNonKeyedColumns9 {\n DFUDataColumn: DFUDataColumn29[];\n }\n\n export interface DataColumns31 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn30 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns31;\n }\n\n export interface DFUDataNonKeyedColumns10 {\n DFUDataColumn: DFUDataColumn30[];\n }\n\n export interface DataColumns32 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn31 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns32;\n }\n\n export interface DFUDataNonKeyedColumns11 {\n DFUDataColumn: DFUDataColumn31[];\n }\n\n export interface DataColumns33 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn32 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns33;\n }\n\n export interface DFUDataNonKeyedColumns12 {\n DFUDataColumn: DFUDataColumn32[];\n }\n\n export interface DataColumns34 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn33 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns34;\n }\n\n export interface DFUDataNonKeyedColumns13 {\n DFUDataColumn: DFUDataColumn33[];\n }\n\n export interface DataColumns35 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn34 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns35;\n }\n\n export interface DFUDataNonKeyedColumns14 {\n DFUDataColumn: DFUDataColumn34[];\n }\n\n export interface DataColumns36 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn35 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns36;\n }\n\n export interface DFUDataNonKeyedColumns15 {\n DFUDataColumn: DFUDataColumn35[];\n }\n\n export interface DataColumns37 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn36 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns37;\n }\n\n export interface DFUDataNonKeyedColumns16 {\n DFUDataColumn: DFUDataColumn36[];\n }\n\n export interface DataColumns38 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn37 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns38;\n }\n\n export interface DFUDataNonKeyedColumns17 {\n DFUDataColumn: DFUDataColumn37[];\n }\n\n export interface DataColumns39 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn38 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns39;\n }\n\n export interface DFUDataNonKeyedColumns18 {\n DFUDataColumn: DFUDataColumn38[];\n }\n\n export interface DataColumns40 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn39 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns40;\n }\n\n export interface DFUDataNonKeyedColumns19 {\n DFUDataColumn: DFUDataColumn39[];\n }\n\n export interface DataColumns41 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn40 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns41;\n }\n\n export interface DFUDataNonKeyedColumns20 {\n DFUDataColumn: DFUDataColumn40[];\n }\n\n export interface DFUGetDataColumnsResponse {\n Exceptions: Exceptions;\n LogicalName: string;\n StartIndex: number;\n EndIndex: number;\n DFUDataKeyedColumns1: DFUDataKeyedColumns1;\n DFUDataKeyedColumns2: DFUDataKeyedColumns2;\n DFUDataKeyedColumns3: DFUDataKeyedColumns3;\n DFUDataKeyedColumns4: DFUDataKeyedColumns4;\n DFUDataKeyedColumns5: DFUDataKeyedColumns5;\n DFUDataKeyedColumns6: DFUDataKeyedColumns6;\n DFUDataKeyedColumns7: DFUDataKeyedColumns7;\n DFUDataKeyedColumns8: DFUDataKeyedColumns8;\n DFUDataKeyedColumns9: DFUDataKeyedColumns9;\n DFUDataKeyedColumns10: DFUDataKeyedColumns10;\n DFUDataKeyedColumns11: DFUDataKeyedColumns11;\n DFUDataKeyedColumns12: DFUDataKeyedColumns12;\n DFUDataKeyedColumns13: DFUDataKeyedColumns13;\n DFUDataKeyedColumns14: DFUDataKeyedColumns14;\n DFUDataKeyedColumns15: DFUDataKeyedColumns15;\n DFUDataKeyedColumns16: DFUDataKeyedColumns16;\n DFUDataKeyedColumns17: DFUDataKeyedColumns17;\n DFUDataKeyedColumns18: DFUDataKeyedColumns18;\n DFUDataKeyedColumns19: DFUDataKeyedColumns19;\n DFUDataKeyedColumns20: DFUDataKeyedColumns20;\n DFUDataNonKeyedColumns1: DFUDataNonKeyedColumns1;\n DFUDataNonKeyedColumns2: DFUDataNonKeyedColumns2;\n DFUDataNonKeyedColumns3: DFUDataNonKeyedColumns3;\n DFUDataNonKeyedColumns4: DFUDataNonKeyedColumns4;\n DFUDataNonKeyedColumns5: DFUDataNonKeyedColumns5;\n DFUDataNonKeyedColumns6: DFUDataNonKeyedColumns6;\n DFUDataNonKeyedColumns7: DFUDataNonKeyedColumns7;\n DFUDataNonKeyedColumns8: DFUDataNonKeyedColumns8;\n DFUDataNonKeyedColumns9: DFUDataNonKeyedColumns9;\n DFUDataNonKeyedColumns10: DFUDataNonKeyedColumns10;\n DFUDataNonKeyedColumns11: DFUDataNonKeyedColumns11;\n DFUDataNonKeyedColumns12: DFUDataNonKeyedColumns12;\n DFUDataNonKeyedColumns13: DFUDataNonKeyedColumns13;\n DFUDataNonKeyedColumns14: DFUDataNonKeyedColumns14;\n DFUDataNonKeyedColumns15: DFUDataNonKeyedColumns15;\n DFUDataNonKeyedColumns16: DFUDataNonKeyedColumns16;\n DFUDataNonKeyedColumns17: DFUDataNonKeyedColumns17;\n DFUDataNonKeyedColumns18: DFUDataNonKeyedColumns18;\n DFUDataNonKeyedColumns19: DFUDataNonKeyedColumns19;\n DFUDataNonKeyedColumns20: DFUDataNonKeyedColumns20;\n RowCount: number;\n ShowColumns: string;\n ChooseFile: number;\n Cluster: string;\n ClusterType: string;\n }\n\n export interface DataColumns43 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn41 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns43;\n }\n\n export interface DataColumns42 {\n DFUDataColumn: DFUDataColumn41[];\n }\n\n export interface DFUGetFileMetaDataResponse {\n Exceptions: Exceptions;\n TotalColumnCount: number;\n KeyedColumnCount: number;\n DataColumns: DataColumns42;\n XmlSchema: string;\n XmlXPathSchema: string;\n TotalResultRows: number;\n }\n\n export interface Stat {\n MinSkew: string;\n MaxSkew: string;\n MinSkewInt64: number;\n MaxSkewInt64: number;\n }\n\n export interface DFUPart {\n Id: number;\n Copy: number;\n Ip: string;\n Partsize: string;\n PartSizeInt64: number;\n }\n\n export interface DFUFileParts {\n DFUPart: DFUPart[];\n }\n\n export interface DFUFilePartsOnCluster {\n Cluster: string;\n BaseDir: string;\n ReplicateDir: string;\n Replicate: boolean;\n CanReplicate: boolean;\n DFUFileParts: DFUFileParts;\n }\n\n export interface DFUFilePartsOnClusters {\n DFUFilePartsOnCluster: DFUFilePartsOnCluster[];\n }\n\n export interface Subfiles {\n Item: string[];\n }\n\n export interface DFULogicalFile2 {\n Prefix: string;\n NodeGroup: string;\n Directory: string;\n Description: string;\n Parts: string;\n Name: string;\n Owner: string;\n Totalsize: string;\n RecordCount: string;\n Modified: string;\n LongSize: string;\n LongRecordCount: string;\n isSuperfile: boolean;\n isDirectory: boolean;\n Replicate: boolean;\n IntSize: number;\n IntRecordCount: number;\n FromRoxieCluster: boolean;\n BrowseData: boolean;\n IsCompressed: boolean;\n ContentType: string;\n CompressedFileSize: number;\n SuperOwners: string;\n Persistent: boolean;\n IsProtected: boolean;\n KeyType: string;\n }\n\n export interface Superfiles {\n DFULogicalFile: DFULogicalFile2[];\n }\n\n export interface DFUFileProtect {\n Owner: string;\n Count: number;\n Modified: string;\n }\n\n export interface ProtectList {\n DFUFileProtect: DFUFileProtect[];\n }\n\n export interface Graphs {\n ECLGraph: string[];\n }\n\n export interface FieldNames {\n Item: string[];\n }\n\n export interface Partition {\n FieldMask: number;\n FieldNames: FieldNames;\n }\n\n export interface FieldNames2 {\n Item: string[];\n }\n\n export interface DFUFileBloom {\n FieldMask: number;\n FieldNames: FieldNames2;\n Limit: number;\n Probability: string;\n }\n\n export interface Blooms {\n DFUFileBloom: DFUFileBloom[];\n }\n\n export interface FileDetail {\n Name: string;\n Filename: string;\n Prefix: string;\n NodeGroup: string;\n NumParts: number;\n Description: string;\n Dir: string;\n PathMask: string;\n Filesize: string;\n FileSizeInt64: number;\n RecordSize: string;\n RecordCount: string;\n RecordSizeInt64: number;\n RecordCountInt64: number;\n Wuid: string;\n Owner: string;\n JobName: string;\n Persistent: string;\n Format: string;\n MaxRecordSize: string;\n CsvSeparate: string;\n CsvQuote: string;\n CsvTerminate: string;\n CsvEscape: string;\n Modified: string;\n Ecl: string;\n Stat: Stat;\n DFUFilePartsOnClusters: DFUFilePartsOnClusters;\n isSuperfile: boolean;\n ShowFileContent: boolean;\n subfiles: Subfiles;\n Superfiles: Superfiles;\n ProtectList: ProtectList;\n FromRoxieCluster: boolean;\n Graphs: Graphs;\n UserPermission: string;\n ContentType: string;\n CompressedFileSize: number;\n PercentCompressed: string;\n IsCompressed: boolean;\n BrowseData: boolean;\n jsonInfo: string;\n binInfo: string;\n PackageID: string;\n Partition: Partition;\n Blooms: Blooms;\n ExpireDays: number;\n KeyType: string;\n }\n\n export interface DFUInfoResponse {\n Exceptions: Exceptions;\n FileDetail: FileDetail;\n }\n\n export interface DFULogicalFile3 {\n Prefix: string;\n NodeGroup: string;\n Directory: string;\n Description: string;\n Parts: string;\n Name: string;\n Owner: string;\n Totalsize: string;\n RecordCount: string;\n Modified: string;\n LongSize: string;\n LongRecordCount: string;\n isSuperfile: boolean;\n isDirectory: boolean;\n Replicate: boolean;\n IntSize: number;\n IntRecordCount: number;\n FromRoxieCluster: boolean;\n BrowseData: boolean;\n IsCompressed: boolean;\n ContentType: string;\n CompressedFileSize: number;\n SuperOwners: string;\n Persistent: boolean;\n IsProtected: boolean;\n KeyType: string;\n }\n\n export interface DFULogicalFiles2 {\n DFULogicalFile: DFULogicalFile3[];\n }\n\n export interface DFUQueryResponse {\n Exceptions: Exceptions;\n DFULogicalFiles: DFULogicalFiles2;\n Prefix: string;\n NodeGroup: string;\n LogicalName: string;\n Description: string;\n Owner: string;\n StartDate: string;\n EndDate: string;\n FileType: string;\n FileSizeFrom: number;\n FileSizeTo: number;\n FirstN: number;\n PageSize: number;\n PageStartFrom: number;\n LastPageFrom: number;\n PageEndAt: number;\n PrevPageFrom: number;\n NextPageFrom: number;\n NumFiles: number;\n Sortby: string;\n Descending: boolean;\n BasicQuery: string;\n ParametersForPaging: string;\n Filters: string;\n CacheHint: number;\n IsSubsetOfFiles: boolean;\n Warning: string;\n }\n\n export interface DFURecordTypeInfoResponse {\n jsonInfo: string;\n binInfo: string;\n }\n\n export interface ClusterNames {\n ClusterName: string[];\n }\n\n export interface FileTypes {\n FileType: string[];\n }\n\n export interface DFUSearchResponse {\n Exceptions: Exceptions;\n ShowExample: string;\n ClusterNames: ClusterNames;\n FileTypes: FileTypes;\n }\n\n export interface DataColumns44 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn42 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns44;\n }\n\n export interface DFUDataKeyedColumns110 {\n DFUDataColumn: DFUDataColumn42[];\n }\n\n export interface DataColumns45 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn43 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns45;\n }\n\n export interface DFUDataKeyedColumns22 {\n DFUDataColumn: DFUDataColumn43[];\n }\n\n export interface DataColumns46 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn44 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns46;\n }\n\n export interface DFUDataKeyedColumns32 {\n DFUDataColumn: DFUDataColumn44[];\n }\n\n export interface DataColumns47 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn45 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns47;\n }\n\n export interface DFUDataKeyedColumns42 {\n DFUDataColumn: DFUDataColumn45[];\n }\n\n export interface DataColumns48 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn46 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns48;\n }\n\n export interface DFUDataKeyedColumns52 {\n DFUDataColumn: DFUDataColumn46[];\n }\n\n export interface DataColumns49 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn47 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns49;\n }\n\n export interface DFUDataKeyedColumns62 {\n DFUDataColumn: DFUDataColumn47[];\n }\n\n export interface DataColumns50 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn48 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns50;\n }\n\n export interface DFUDataKeyedColumns72 {\n DFUDataColumn: DFUDataColumn48[];\n }\n\n export interface DataColumns51 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn49 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns51;\n }\n\n export interface DFUDataKeyedColumns82 {\n DFUDataColumn: DFUDataColumn49[];\n }\n\n export interface DataColumns52 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn50 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns52;\n }\n\n export interface DFUDataKeyedColumns92 {\n DFUDataColumn: DFUDataColumn50[];\n }\n\n export interface DataColumns53 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn51 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns53;\n }\n\n export interface DFUDataKeyedColumns102 {\n DFUDataColumn: DFUDataColumn51[];\n }\n\n export interface DataColumns54 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn52 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns54;\n }\n\n export interface DFUDataKeyedColumns112 {\n DFUDataColumn: DFUDataColumn52[];\n }\n\n export interface DataColumns55 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn53 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns55;\n }\n\n export interface DFUDataKeyedColumns122 {\n DFUDataColumn: DFUDataColumn53[];\n }\n\n export interface DataColumns56 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn54 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns56;\n }\n\n export interface DFUDataKeyedColumns132 {\n DFUDataColumn: DFUDataColumn54[];\n }\n\n export interface DataColumns57 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn55 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns57;\n }\n\n export interface DFUDataKeyedColumns142 {\n DFUDataColumn: DFUDataColumn55[];\n }\n\n export interface DataColumns58 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn56 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns58;\n }\n\n export interface DFUDataKeyedColumns152 {\n DFUDataColumn: DFUDataColumn56[];\n }\n\n export interface DataColumns59 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn57 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns59;\n }\n\n export interface DFUDataKeyedColumns162 {\n DFUDataColumn: DFUDataColumn57[];\n }\n\n export interface DataColumns60 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn58 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns60;\n }\n\n export interface DFUDataKeyedColumns172 {\n DFUDataColumn: DFUDataColumn58[];\n }\n\n export interface DataColumns61 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn59 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns61;\n }\n\n export interface DFUDataKeyedColumns182 {\n DFUDataColumn: DFUDataColumn59[];\n }\n\n export interface DataColumns62 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn60 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns62;\n }\n\n export interface DFUDataKeyedColumns192 {\n DFUDataColumn: DFUDataColumn60[];\n }\n\n export interface DataColumns63 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn61 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns63;\n }\n\n export interface DFUDataKeyedColumns202 {\n DFUDataColumn: DFUDataColumn61[];\n }\n\n export interface DataColumns64 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn62 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns64;\n }\n\n export interface DFUDataNonKeyedColumns110 {\n DFUDataColumn: DFUDataColumn62[];\n }\n\n export interface DataColumns65 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn63 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns65;\n }\n\n export interface DFUDataNonKeyedColumns22 {\n DFUDataColumn: DFUDataColumn63[];\n }\n\n export interface DataColumns66 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn64 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns66;\n }\n\n export interface DFUDataNonKeyedColumns32 {\n DFUDataColumn: DFUDataColumn64[];\n }\n\n export interface DataColumns67 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn65 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns67;\n }\n\n export interface DFUDataNonKeyedColumns42 {\n DFUDataColumn: DFUDataColumn65[];\n }\n\n export interface DataColumns68 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn66 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns68;\n }\n\n export interface DFUDataNonKeyedColumns52 {\n DFUDataColumn: DFUDataColumn66[];\n }\n\n export interface DataColumns69 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn67 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns69;\n }\n\n export interface DFUDataNonKeyedColumns62 {\n DFUDataColumn: DFUDataColumn67[];\n }\n\n export interface DataColumns70 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn68 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns70;\n }\n\n export interface DFUDataNonKeyedColumns72 {\n DFUDataColumn: DFUDataColumn68[];\n }\n\n export interface DataColumns71 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn69 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns71;\n }\n\n export interface DFUDataNonKeyedColumns82 {\n DFUDataColumn: DFUDataColumn69[];\n }\n\n export interface DataColumns72 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn70 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns72;\n }\n\n export interface DFUDataNonKeyedColumns92 {\n DFUDataColumn: DFUDataColumn70[];\n }\n\n export interface DataColumns73 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn71 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns73;\n }\n\n export interface DFUDataNonKeyedColumns102 {\n DFUDataColumn: DFUDataColumn71[];\n }\n\n export interface DataColumns74 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn72 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns74;\n }\n\n export interface DFUDataNonKeyedColumns112 {\n DFUDataColumn: DFUDataColumn72[];\n }\n\n export interface DataColumns75 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn73 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns75;\n }\n\n export interface DFUDataNonKeyedColumns122 {\n DFUDataColumn: DFUDataColumn73[];\n }\n\n export interface DataColumns76 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn74 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns76;\n }\n\n export interface DFUDataNonKeyedColumns132 {\n DFUDataColumn: DFUDataColumn74[];\n }\n\n export interface DataColumns77 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn75 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns77;\n }\n\n export interface DFUDataNonKeyedColumns142 {\n DFUDataColumn: DFUDataColumn75[];\n }\n\n export interface DataColumns78 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn76 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns78;\n }\n\n export interface DFUDataNonKeyedColumns152 {\n DFUDataColumn: DFUDataColumn76[];\n }\n\n export interface DataColumns79 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn77 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns79;\n }\n\n export interface DFUDataNonKeyedColumns162 {\n DFUDataColumn: DFUDataColumn77[];\n }\n\n export interface DataColumns80 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn78 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns80;\n }\n\n export interface DFUDataNonKeyedColumns172 {\n DFUDataColumn: DFUDataColumn78[];\n }\n\n export interface DataColumns81 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn79 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns81;\n }\n\n export interface DFUDataNonKeyedColumns182 {\n DFUDataColumn: DFUDataColumn79[];\n }\n\n export interface DataColumns82 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn80 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns82;\n }\n\n export interface DFUDataNonKeyedColumns192 {\n DFUDataColumn: DFUDataColumn80[];\n }\n\n export interface DataColumns83 {\n DFUDataColumn: any[];\n }\n\n export interface DFUDataColumn81 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns83;\n }\n\n export interface DFUDataNonKeyedColumns202 {\n DFUDataColumn: DFUDataColumn81[];\n }\n\n export interface DataColumns84 {\n DFUDataColumn: any[];\n }\n\n export interface ColumnHidden2 {\n ColumnID: number;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: number;\n MaxSize: number;\n ColumnEclType: string;\n ColumnRawSize: number;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns84;\n }\n\n export interface ColumnsHidden2 {\n ColumnHidden: ColumnHidden2[];\n }\n\n export interface DFUSearchDataResponse {\n Exceptions: Exceptions;\n OpenLogicalName: string;\n LogicalName: string;\n ParentName: string;\n StartIndex: number;\n EndIndex: number;\n DFUDataKeyedColumns1: DFUDataKeyedColumns110;\n DFUDataKeyedColumns2: DFUDataKeyedColumns22;\n DFUDataKeyedColumns3: DFUDataKeyedColumns32;\n DFUDataKeyedColumns4: DFUDataKeyedColumns42;\n DFUDataKeyedColumns5: DFUDataKeyedColumns52;\n DFUDataKeyedColumns6: DFUDataKeyedColumns62;\n DFUDataKeyedColumns7: DFUDataKeyedColumns72;\n DFUDataKeyedColumns8: DFUDataKeyedColumns82;\n DFUDataKeyedColumns9: DFUDataKeyedColumns92;\n DFUDataKeyedColumns10: DFUDataKeyedColumns102;\n DFUDataKeyedColumns11: DFUDataKeyedColumns112;\n DFUDataKeyedColumns12: DFUDataKeyedColumns122;\n DFUDataKeyedColumns13: DFUDataKeyedColumns132;\n DFUDataKeyedColumns14: DFUDataKeyedColumns142;\n DFUDataKeyedColumns15: DFUDataKeyedColumns152;\n DFUDataKeyedColumns16: DFUDataKeyedColumns162;\n DFUDataKeyedColumns17: DFUDataKeyedColumns172;\n DFUDataKeyedColumns18: DFUDataKeyedColumns182;\n DFUDataKeyedColumns19: DFUDataKeyedColumns192;\n DFUDataKeyedColumns20: DFUDataKeyedColumns202;\n DFUDataNonKeyedColumns1: DFUDataNonKeyedColumns110;\n DFUDataNonKeyedColumns2: DFUDataNonKeyedColumns22;\n DFUDataNonKeyedColumns3: DFUDataNonKeyedColumns32;\n DFUDataNonKeyedColumns4: DFUDataNonKeyedColumns42;\n DFUDataNonKeyedColumns5: DFUDataNonKeyedColumns52;\n DFUDataNonKeyedColumns6: DFUDataNonKeyedColumns62;\n DFUDataNonKeyedColumns7: DFUDataNonKeyedColumns72;\n DFUDataNonKeyedColumns8: DFUDataNonKeyedColumns82;\n DFUDataNonKeyedColumns9: DFUDataNonKeyedColumns92;\n DFUDataNonKeyedColumns10: DFUDataNonKeyedColumns102;\n DFUDataNonKeyedColumns11: DFUDataNonKeyedColumns112;\n DFUDataNonKeyedColumns12: DFUDataNonKeyedColumns122;\n DFUDataNonKeyedColumns13: DFUDataNonKeyedColumns132;\n DFUDataNonKeyedColumns14: DFUDataNonKeyedColumns142;\n DFUDataNonKeyedColumns15: DFUDataNonKeyedColumns152;\n DFUDataNonKeyedColumns16: DFUDataNonKeyedColumns162;\n DFUDataNonKeyedColumns17: DFUDataNonKeyedColumns172;\n DFUDataNonKeyedColumns18: DFUDataNonKeyedColumns182;\n DFUDataNonKeyedColumns19: DFUDataNonKeyedColumns192;\n DFUDataNonKeyedColumns20: DFUDataNonKeyedColumns202;\n RowCount: number;\n ShowColumns: string;\n ChooseFile: number;\n Name: string;\n FilterBy: string;\n FilterForGoBack: string;\n ColumnsHidden: ColumnsHidden2;\n ColumnCount: number;\n StartForGoback: number;\n CountForGoback: number;\n Start: number;\n Count: number;\n PageSize: number;\n Total: number;\n Result: string;\n MsgToDisplay: string;\n Cluster: string;\n ClusterType: string;\n File: string;\n Key: string;\n SchemaOnly: boolean;\n RoxieSelections: boolean;\n DisableUppercaseTranslation: boolean;\n AutoUppercaseTranslation: boolean;\n SelectedKey: string;\n }\n\n export interface DFUSpaceItem {\n Name: string;\n NumOfFiles: string;\n NumOfFilesUnknown: string;\n TotalSize: string;\n LargestFile: string;\n LargestSize: string;\n SmallestFile: string;\n SmallestSize: string;\n NumOfFilesInt64: number;\n NumOfFilesUnknownInt64: number;\n TotalSizeInt64: number;\n LargestSizeInt64: number;\n SmallestSizeInt64: number;\n }\n\n export interface DFUSpaceItems {\n DFUSpaceItem: DFUSpaceItem[];\n }\n\n export interface DFUSpaceResponse {\n Exceptions: Exceptions;\n CountBy: string;\n ScopeUnder: string;\n OwnerUnder: string;\n Interval: string;\n StartDate: string;\n EndDate: string;\n DFUSpaceItems: DFUSpaceItems;\n }\n\n export interface EclRecordTypeInfoResponse {\n jsonInfo: string;\n binInfo: string;\n }\n\n export interface Origin {\n Name: string;\n Operation: string;\n Timestamp: string;\n IP: string;\n Path: string;\n Owner: string;\n Workunit: string;\n }\n\n export interface History {\n Origin: Origin[];\n }\n\n export interface EraseHistoryResponse {\n Exceptions: Exceptions;\n History: History;\n }\n\n export interface Origin2 {\n Name: string;\n Operation: string;\n Timestamp: string;\n IP: string;\n Path: string;\n Owner: string;\n Workunit: string;\n }\n\n export interface History2 {\n Origin: Origin2[];\n }\n\n export interface ListHistoryResponse {\n Exceptions: Exceptions;\n History: History2;\n }\n\n export interface WsDfuPingResponse {\n }\n\n export interface SavexmlResponse {\n Exceptions: Exceptions;\n xmlmap: string;\n }\n\n export interface SuperfileActionResponse {\n Exceptions: Exceptions;\n superfile: string;\n retcode: number;\n }\n\n export interface Subfiles2 {\n Item: string[];\n }\n\n export interface SuperfileListResponse {\n Exceptions: Exceptions;\n superfile: string;\n subfiles: Subfiles2;\n }\n}\n\nexport class DFUService extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsDfu\", \"1.5\");\n }\n\n DFUQuery(request: WsDfu.DFUQueryRequest): Promise<WsDfu.DFUQueryResponse> {\n return this._connection.send(\"DFUQuery\", request);\n }\n\n DFUInfo(request: WsDfu.DFUInfoRequest): Promise<WsDfu.DFUInfoResponse> {\n return this._connection.send(\"DFUInfo\", request);\n }\n}\n","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { ESPExceptions, Service } from \"../espConnection\";\n\nexport type IFieldType = DDL2.IFieldType;\nexport type IField = DDL2.IField;\n\nexport type IWsEclRequest = IField[];\nexport type IWsEclResult = IField[];\nexport type IWsEclResponse = { [id: string]: IField[] };\n\nfunction jsonToIField(id: string, item: any): IField {\n const type = typeof item;\n switch (type) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n return { id, type };\n case \"object\":\n if (item.Row instanceof Array) {\n item = item.Row;\n }\n if (item instanceof Array) {\n return {\n id,\n type: \"dataset\",\n children: jsonToIFieldArr(item[0])\n };\n } else if (item instanceof Object) {\n if (item.Item && item.Item instanceof Array && item.Item.length === 1) {\n const fieldType = typeof item.Item[0];\n if (fieldType === \"string\" || fieldType === \"number\") {\n return {\n id,\n type: \"set\",\n fieldType\n };\n }\n throw new Error(\"Unknown field type\");\n }\n return {\n id,\n type: \"object\",\n fields: jsonToIFieldObj(item)\n };\n }\n // Fall through ---\n default:\n throw new Error(\"Unknown field type\");\n }\n}\n\nfunction jsonToIFieldArr(json: any): IField[] {\n if (json.Row && json.Row instanceof Array) {\n json = json.Row[0];\n }\n const retVal: IField[] = [];\n for (const key in json) {\n retVal.push(jsonToIField(key, json[key]));\n }\n return retVal;\n}\n\nfunction jsonToIFieldObj(json: any): { [id: string]: IField } {\n const fields = {};\n for (const key in json) {\n fields[key] = jsonToIField(key, json[key]);\n }\n return fields;\n}\n\nexport class EclService extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsEcl\", \"0\");\n }\n\n opts() {\n return this._connection.opts();\n }\n\n requestJson(querySet: string, queryId: string): Promise<IWsEclRequest> {\n // http://192.168.3.22:8002/WsEcl/example/request/query/roxie/peopleaccounts/json?display\n return this._connection.send(`example/request/query/${querySet}/${queryId}/json`, {}, \"text\").then(response => {\n const requestSchema = JSON.parse(response);\n for (const key in requestSchema) {\n return requestSchema[key];\n }\n return {};\n }).then(jsonToIFieldArr);\n }\n\n responseJson(querySet: string, queryId: string): Promise<IWsEclResponse> {\n // http://192.168.3.22:8002/WsEcl/example/response/query/roxie/peopleaccounts/json?display\n return this._connection.send(`example/response/query/${querySet}/${queryId}/json`, {}, \"text\").then(response => {\n const responseSchema = JSON.parse(response);\n for (const key in responseSchema) {\n return responseSchema[key].Results;\n }\n return {};\n }).then(resultsJson => {\n const retVal: IWsEclResponse = {};\n for (const key in resultsJson) {\n retVal[key] = jsonToIFieldArr(resultsJson[key]);\n }\n return retVal;\n });\n }\n\n submit(querySet: string, queryId: string, request: object) {\n // http://192.168.3.22:8002/WsEcl/submit/query/roxie/peopleaccounts.1/json\n const action = `submit/query/${querySet}/${queryId}`;\n return this._connection.send(action, request, \"json2\").then(response => {\n if (response.Results && response.Results.Exception) {\n throw new ESPExceptions(action, request, {\n Source: \"wsEcl.submit\",\n Exception: response.Results.Exception\n });\n }\n return response.Results;\n });\n }\n}\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","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","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 { exists } from \"@hpcc-js/util\";\nimport { max as d3Max, mean as d3Mean } from \"d3-array\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { ESPConnection } from \"../espConnection\";\n\n/*\n Response structures generated via:\n * http://192.168.3.22:8010/ws_machine/GetTargetClusterInfo?respjson_\n * http://json2ts.com/\n*/\n\nexport namespace GetTargetClusterInfo {\n\n export interface TargetClusters {\n Item: string[];\n }\n\n export interface Request {\n TargetClusters?: TargetClusters;\n AddProcessesToFilter?: string;\n ApplyProcessFilter?: boolean;\n GetProcessorInfo?: boolean;\n GetStorageInfo?: boolean;\n LocalFileSystemsOnly?: boolean;\n GetSoftwareInfo?: boolean;\n MemThreshold?: number;\n DiskThreshold?: number;\n CpuThreshold?: number;\n AutoRefresh?: number;\n MemThresholdType?: string;\n DiskThresholdType?: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Columns {\n Item: string[];\n }\n\n export interface Addresses {\n Item: string[];\n }\n\n export interface RequestInfo {\n Addresses: Addresses;\n ClusterType: string;\n Cluster: string;\n OldIP: string;\n Path: string;\n AddProcessesToFilter: string;\n ApplyProcessFilter: boolean;\n GetProcessorInfo: boolean;\n GetStorageInfo: boolean;\n LocalFileSystemsOnly: boolean;\n GetSoftwareInfo: boolean;\n MemThreshold: number;\n DiskThreshold: number;\n CpuThreshold: number;\n AutoRefresh: number;\n MemThresholdType: string;\n DiskThresholdType: string;\n SecurityString: string;\n UserName: string;\n Password: string;\n EnableSNMP: boolean;\n }\n\n export interface ProcessorInfo {\n Type: string;\n Load: number;\n }\n\n export interface Processors {\n ProcessorInfo: ProcessorInfo[];\n }\n\n export interface StorageInfo {\n Description: string;\n Type: string;\n Available: number;\n PercentAvail: number;\n Total: number;\n Failures: number;\n }\n\n export interface Storage {\n StorageInfo: StorageInfo[];\n }\n\n export interface SWRunInfo {\n Name: string;\n Instances: number;\n State: number;\n }\n\n export interface Running {\n SWRunInfo: SWRunInfo[];\n }\n\n export interface PhysicalMemory {\n Description: string;\n Type: string;\n Available: number;\n PercentAvail: number;\n Total: number;\n Failures: number;\n }\n\n export interface VirtualMemory {\n Description: string;\n Type: string;\n Available: number;\n PercentAvail: number;\n Total: number;\n Failures: number;\n }\n\n export interface ComponentInfo {\n Condition: number;\n State: number;\n UpTime: string;\n }\n\n export interface MachineInfoEx {\n Address: string;\n ConfigAddress: string;\n Name: string;\n ProcessType: string;\n DisplayType: string;\n Description: string;\n AgentVersion: string;\n Contact: string;\n Location: string;\n UpTime: string;\n ComponentName: string;\n ComponentPath: string;\n RoxieState: string;\n RoxieStateDetails: string;\n OS: number;\n ProcessNumber: number;\n Processors: Processors;\n Storage: Storage;\n Running: Running;\n PhysicalMemory: PhysicalMemory;\n VirtualMemory: VirtualMemory;\n ComponentInfo: ComponentInfo;\n }\n\n export interface Processes {\n MachineInfoEx: MachineInfoEx[];\n }\n\n export interface TargetClusterInfo {\n Name: string;\n Type: string;\n Processes: Processes;\n }\n\n export interface TargetClusterInfoList {\n TargetClusterInfo: TargetClusterInfo[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Columns: Columns;\n RequestInfo: RequestInfo;\n TargetClusterInfoList: TargetClusterInfoList;\n TimeStamp: string;\n AcceptLanguage: string;\n }\n}\n\nexport namespace GetTargetClusterUsage {\n\n export interface TargetClusters {\n Item: string[];\n }\n\n export interface Request {\n TargetClusters?: TargetClusters;\n BypassCachedResult: boolean;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface DiskUsage {\n Name: string;\n Path: string;\n Description: string;\n InUse: number;\n Available: number;\n PercentAvailable: number;\n }\n\n export interface DiskUsages {\n DiskUsage: DiskUsage[];\n }\n\n export interface MachineUsage {\n Name: string;\n NetAddress: string;\n Description: string;\n DiskUsages: DiskUsages;\n }\n\n export interface MachineUsages {\n MachineUsage: MachineUsage[];\n }\n\n export interface ComponentUsage {\n Type: string;\n Name: string;\n Description: string;\n MachineUsages: MachineUsages;\n }\n\n export interface ComponentUsages {\n ComponentUsage: ComponentUsage[];\n }\n\n export interface TargetClusterUsage {\n Name: string;\n Description: string;\n ComponentUsages: ComponentUsages;\n }\n\n export interface TargetClusterUsages {\n TargetClusterUsage: TargetClusterUsage[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n TargetClusterUsages: TargetClusterUsages;\n }\n}\n\nexport namespace GetTargetClusterUsageEx {\n\n export interface DiskUsage {\n Name: string;\n Path: string;\n Description: string;\n InUse: number;\n Available: number;\n Total: number;\n PercentAvailable: number;\n PercentUsed: number;\n }\n\n export interface MachineUsage {\n Name: string;\n NetAddress: string;\n Description: string;\n DiskUsages: DiskUsage[];\n mean: number;\n max: number;\n }\n\n export interface ComponentUsage {\n Type: string;\n Name: string;\n Description: string;\n MachineUsages: MachineUsage[];\n MachineUsagesDescription: string;\n mean: number;\n max: number;\n }\n\n export interface TargetClusterUsage {\n Name: string;\n Description: string;\n ComponentUsages: ComponentUsage[];\n ComponentUsagesDescription: string;\n mean: number;\n max: number;\n }\n}\n\nexport class MachineService {\n private _connection: ESPConnection;\n\n constructor(optsConnection: IOptions | IConnection) {\n this._connection = new ESPConnection(optsConnection, \"ws_machine\", \"1.13\");\n }\n\n GetTargetClusterInfo(request: GetTargetClusterInfo.Request = {}): Promise<GetTargetClusterInfo.Response> {\n return this._connection.send(\"GetTargetClusterInfo\", request);\n }\n\n GetTargetClusterUsage(targetClusters?: string[], bypassCachedResult: boolean = false): Promise<GetTargetClusterUsage.TargetClusterUsage[]> {\n return this._connection.send(\"GetTargetClusterUsage\", {\n TargetClusters: targetClusters ? { Item: targetClusters } : {},\n BypassCachedResult: bypassCachedResult\n }).then(response => {\n return exists(\"TargetClusterUsages.TargetClusterUsage\", response) ? response.TargetClusterUsages.TargetClusterUsage : [];\n });\n }\n\n GetTargetClusterUsageEx(targetClusters?: string[], bypassCachedResult: boolean = false): Promise<GetTargetClusterUsageEx.TargetClusterUsage[]> {\n return this.GetTargetClusterUsage(targetClusters, bypassCachedResult).then(response => {\n return response.filter(tcu => !!tcu.ComponentUsages).map(tcu => {\n const ComponentUsages: GetTargetClusterUsageEx.ComponentUsage[] = tcu.ComponentUsages.ComponentUsage.map(cu => {\n const MachineUsages = (cu.MachineUsages && cu.MachineUsages.MachineUsage ? cu.MachineUsages.MachineUsage : []).map(mu => {\n const DiskUsages: GetTargetClusterUsageEx.DiskUsage[] = mu.DiskUsages && mu.DiskUsages.DiskUsage ? mu.DiskUsages.DiskUsage.map(du => {\n return {\n ...du,\n Total: du.InUse + du.Available,\n PercentUsed: 100 - du.PercentAvailable\n };\n }) : [];\n return {\n Name: mu.Name,\n NetAddress: mu.NetAddress,\n Description: mu.Description,\n DiskUsages,\n mean: d3Mean(DiskUsages.filter(du => !isNaN(du.PercentUsed)), du => du.PercentUsed),\n max: d3Max(DiskUsages.filter(du => !isNaN(du.PercentUsed)), du => du.PercentUsed)\n };\n });\n return {\n Type: cu.Type,\n Name: cu.Name,\n Description: cu.Description,\n MachineUsages,\n MachineUsagesDescription: MachineUsages.reduce((prev, mu) => prev + (mu.Description || \"\"), \"\"),\n mean: d3Mean(MachineUsages.filter(mu => !isNaN(mu.mean)), mu => mu.mean),\n max: d3Max(MachineUsages.filter(mu => !isNaN(mu.max)), mu => mu.max)\n };\n });\n return {\n Name: tcu.Name,\n Description: tcu.Description,\n ComponentUsages,\n ComponentUsagesDescription: ComponentUsages.reduce((prev, cu) => prev + (cu.MachineUsagesDescription || \"\"), \"\"),\n mean: d3Mean(ComponentUsages.filter(cu => !isNaN(cu.mean)), cu => cu.mean),\n max: d3Max(ComponentUsages.filter(cu => !isNaN(cu.max)), cu => cu.max)\n };\n });\n });\n }\n}\n","import { IConnection, IOptions } from \"../connection\";\nimport { ESPConnection } from \"../espConnection\";\n\n/*\n Response structures generated via:\n * http://192.168.3.22:8010/WsSMC/Activity?respjson_\n * http://json2ts.com/\n*/\n\nexport namespace SMCActivity {\n export interface Request {\n ChatURL?: string;\n BannerContent?: string;\n BannerColor?: string;\n BannerSize?: string;\n BannerScroll?: string;\n BannerAction?: string;\n EnableChatURL?: boolean;\n FromSubmitBtn?: boolean;\n SortBy?: string;\n Descending?: boolean;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface TargetCluster {\n ClusterName: string;\n QueueName: string;\n QueueStatus: string;\n StatusDetails: string;\n Warning: string;\n ClusterType: number;\n ClusterSize: number;\n ClusterStatus: number;\n }\n\n export interface ThorClusterList {\n TargetCluster: TargetCluster[];\n }\n\n export interface TargetCluster2 {\n ClusterName: string;\n QueueName: string;\n QueueStatus: string;\n StatusDetails: string;\n Warning: string;\n ClusterType: number;\n ClusterSize: number;\n ClusterStatus: number;\n }\n\n export interface RoxieClusterList {\n TargetCluster: TargetCluster2[];\n }\n\n export interface TargetCluster3 {\n ClusterName: string;\n QueueName: string;\n QueueStatus: string;\n StatusDetails: string;\n Warning: string;\n ClusterType: number;\n ClusterSize: number;\n ClusterStatus: number;\n }\n\n export interface HThorClusterList {\n TargetCluster: TargetCluster3[];\n }\n\n export interface DFUJob {\n TimeStarted: string;\n Done: number;\n Total: number;\n Command: string;\n }\n\n export interface DFUJobs {\n DFUJob: DFUJob[];\n }\n\n export interface ActiveWorkunit {\n Wuid: string;\n State: string;\n StateID: number;\n Owner: string;\n Jobname: string;\n Server: string;\n Instance: string;\n Priority: string;\n Extra: string;\n GraphName: string;\n Duration: string;\n GID: string;\n QueueName: string;\n MemoryBlocked: number;\n IsPausing: boolean;\n Warning: string;\n ClusterName: string;\n ClusterType: string;\n ClusterQueueName: string;\n TargetClusterName: string;\n }\n\n export interface Running {\n ActiveWorkunit: ActiveWorkunit[];\n }\n\n export interface ServerJobQueue {\n QueueName: string;\n ServerName: string;\n ServerType: string;\n QueueStatus: string;\n StatusDetails: string;\n NetworkAddress: string;\n Port: number;\n }\n\n export interface ServerJobQueues {\n ServerJobQueue: ServerJobQueue[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Build: string;\n ThorClusterList: ThorClusterList;\n RoxieClusterList: RoxieClusterList;\n HThorClusterList: HThorClusterList;\n DFUJobs: DFUJobs;\n Running: Running;\n BannerContent: string;\n BannerColor: string;\n BannerSize: string;\n BannerScroll: string;\n ChatURL: string;\n ShowBanner: number;\n ShowChatURL: number;\n SortBy: string;\n Descending: boolean;\n SuperUser: boolean;\n AccessRight: string;\n ServerJobQueues: ServerJobQueues;\n }\n}\n\nexport class SMCService {\n private _connection: ESPConnection;\n\n constructor(optsConnection: IOptions | IConnection) {\n this._connection = new ESPConnection(optsConnection, \"WsSMC\", \"1.19\");\n }\n\n connectionOptions(): IOptions {\n return this._connection.opts();\n }\n\n Activity(request: SMCActivity.Request): Promise<SMCActivity.Response> {\n return this._connection.send(\"Activity\", request).then(response => {\n return {\n Running: {\n ActiveWorkunit: []\n },\n ...response\n };\n });\n }\n}\n","import { IConnection, IOptions } from \"../connection\";\nimport { Service } from \"../espConnection\";\n\n/*\n Response structures generated via:\n * http://localhost:8010/wsstore/Fetch?reqjson_\n * http://localhost:8010/wsstore/Fetch?respjson_\n * http://json2ts.com/\n*/\n\nexport namespace WsStore {\n\n export interface CreateStoreRequest {\n Name: string;\n Type: string;\n Description: string;\n UserSpecific: boolean;\n }\n\n export interface DeleteRequest {\n StoreName: string;\n Namespace: string;\n Key: string;\n UserSpecific: boolean;\n TargetUser?: string;\n }\n\n export interface DeleteNamespaceRequest {\n StoreName: string;\n Namespace: string;\n UserSpecific: boolean;\n TargetUser: string;\n }\n\n export interface FetchRequest {\n StoreName: string;\n Namespace: string;\n Key: string;\n UserSpecific: boolean;\n }\n\n export interface FetchAllRequest {\n StoreName: string;\n Namespace: string;\n UserSpecific: boolean;\n }\n\n export interface FetchKeyMDRequest {\n StoreName: string;\n Namespace: string;\n Key: string;\n UserSpecific: boolean;\n }\n\n export interface ListKeysRequest {\n StoreName: string;\n Namespace: string;\n UserSpecific: boolean;\n }\n\n export interface ListNamespacesRequest {\n StoreName: string;\n UserSpecific: boolean;\n }\n\n export interface SetRequest {\n StoreName: string;\n Namespace: string;\n Key: string;\n Value: string;\n UserSpecific: boolean;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface CreateStoreResponse {\n Exceptions: Exceptions;\n Name: string;\n Type: string;\n Description: string;\n Owner: string;\n }\n\n export interface DeleteResponse {\n Exceptions: Exceptions;\n Success: boolean;\n }\n\n export interface DeleteNamespaceResponse {\n Exceptions: Exceptions;\n Success: boolean;\n }\n\n export interface FetchResponse {\n Exceptions: Exceptions;\n Value: string;\n }\n\n export interface Pair {\n Key: string;\n Value: string;\n }\n\n export interface Pairs {\n Pair: Pair[];\n }\n\n export interface FetchAllResponse {\n Exceptions: Exceptions;\n Namespace: string;\n Pairs: Pairs;\n }\n\n export interface Pair2 {\n Key: string;\n Value: string;\n }\n\n export interface Pairs2 {\n Pair: Pair2[];\n }\n\n export interface FetchKeyMDResponse {\n Exceptions: Exceptions;\n StoreName: string;\n Namespace: string;\n Key: string;\n Pairs: Pairs2;\n }\n\n export interface KeySet {\n Key: string[];\n }\n\n export interface ListKeysResponse {\n Exceptions: Exceptions;\n StoreName: string;\n Namespace: string;\n KeySet: KeySet;\n }\n\n export interface Namespaces {\n Namespace: string[];\n }\n\n export interface ListNamespacesResponse {\n Exceptions: Exceptions;\n StoreName: string;\n Namespaces: Namespaces;\n }\n\n export interface WsstorePingResponse {\n }\n\n export interface SetResponse {\n Exceptions: Exceptions;\n Success: boolean;\n }\n}\n\nexport class StoreService extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsStore\", \"1\");\n }\n\n CreateStore(request: WsStore.CreateStoreRequest): Promise<WsStore.CreateStoreResponse> {\n return this._connection.send(\"Fetch\", request);\n }\n\n Delete(request: WsStore.DeleteRequest): Promise<WsStore.DeleteResponse> {\n return this._connection.send(\"Delete\", request).catch(e => {\n if (e.isESPExceptions && e.Exception.some(e => e.Code === -1)) {\n // \"Delete\" item does not exist ---\n return {\n Exceptions: undefined,\n Success: true\n } as WsStore.DeleteResponse;\n }\n throw e;\n });\n }\n\n DeleteNamespace(request: WsStore.DeleteNamespaceRequest): Promise<WsStore.DeleteNamespaceResponse> {\n return this._connection.send(\"DeleteNamespace\", request);\n }\n\n Fetch(request: WsStore.FetchRequest): Promise<WsStore.FetchResponse> {\n return this._connection.send(\"Fetch\", request).catch(e => {\n if (e.isESPExceptions && e.Exception.some(e => e.Code === -1)) {\n // \"Fetch\" item does not exist ---\n return {\n Exceptions: undefined,\n Value: undefined\n } as WsStore.FetchResponse;\n }\n throw e;\n });\n }\n\n FetchAll(request: WsStore.FetchAllRequest): Promise<WsStore.FetchAllResponse> {\n return this._connection.send(\"FetchAll\", request);\n }\n\n FetchKeyMD(request: WsStore.FetchKeyMDRequest): Promise<WsStore.FetchKeyMDResponse> {\n return this._connection.send(\"FetchKeyMD\", request);\n }\n\n ListKeys(request: WsStore.ListKeysRequest): Promise<WsStore.ListKeysResponse> {\n return this._connection.send(\"ListKeys\", request);\n }\n\n ListNamespaces(request: WsStore.ListNamespacesRequest): Promise<WsStore.ListNamespacesResponse> {\n return this._connection.send(\"ListNamespaces\", request);\n }\n\n Set(request: WsStore.SetRequest): Promise<WsStore.SetResponse> {\n return this._connection.send(\"Set\", request);\n }\n}\n","import { IConnection, IOptions } from \"../connection\";\nimport { Service } from \"../espConnection\";\n\n/*\n Response structures generated via:\n * http://192.168.3.22:8010/WsTopology/TpLogicalClusterQuery?respjson_\n * http://json2ts.com/\n*/\n\nexport namespace TpLogicalClusterQuery {\n export interface Request {\n EclServerQueue?: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface TpLogicalCluster {\n Name: string;\n Queue: string;\n LanguageVersion: string;\n Process: string;\n Type: string;\n }\n\n export interface TpLogicalClusters {\n TpLogicalCluster: TpLogicalCluster[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n TpLogicalClusters: TpLogicalClusters;\n }\n}\n\nexport namespace TpServiceQuery {\n export interface Request {\n Type?: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface TpMachine {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines {\n TpMachine: TpMachine[];\n }\n\n export interface TpDali {\n Name: string;\n Description: string;\n Build: string;\n BackupComputer: string;\n BackupDirectory: string;\n Type: string;\n Path: string;\n LogDirectory: string;\n TpMachines: TpMachines;\n }\n\n export interface TpDalis {\n TpDali: TpDali[];\n }\n\n export interface TpMachine2 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines2 {\n TpMachine: TpMachine2[];\n }\n\n export interface TpDfuServer {\n Name: string;\n Description: string;\n Build: string;\n Queue: string;\n Type: string;\n Path: string;\n LogDirectory: string;\n TpMachines: TpMachines2;\n }\n\n export interface TpDfuServers {\n TpDfuServer: TpDfuServer[];\n }\n\n export interface TpMachine3 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines3 {\n TpMachine: TpMachine3[];\n }\n\n export interface TpDkcSlave {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines3;\n }\n\n export interface TpDkcSlaves {\n TpDkcSlave: TpDkcSlave[];\n }\n\n export interface TpMachine4 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines4 {\n TpMachine: TpMachine4[];\n }\n\n export interface TpDropZone {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n ECLWatchVisible: boolean;\n UMask: string;\n TpMachines: TpMachines4;\n }\n\n export interface TpDropZones {\n TpDropZone: TpDropZone[];\n }\n\n export interface TpMachine5 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines5 {\n TpMachine: TpMachine5[];\n }\n\n export interface TpEclAgent {\n Name: string;\n Description: string;\n Build: string;\n Type: string;\n Path: string;\n DaliServer: string;\n LogDir: string;\n TpMachines: TpMachines5;\n }\n\n export interface TpEclAgents {\n TpEclAgent: TpEclAgent[];\n }\n\n export interface TpMachine6 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines6 {\n TpMachine: TpMachine6[];\n }\n\n export interface TpEclServer {\n Name: string;\n Description: string;\n Build: string;\n LogDirectory: string;\n Type: string;\n Path: string;\n TpMachines: TpMachines6;\n }\n\n export interface TpEclServers {\n TpEclServer: TpEclServer[];\n }\n\n export interface TpMachine7 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines7 {\n TpMachine: TpMachine7[];\n }\n\n export interface TpEclServer2 {\n Name: string;\n Description: string;\n Build: string;\n LogDirectory: string;\n Type: string;\n Path: string;\n TpMachines: TpMachines7;\n }\n\n export interface TpEclCCServers {\n TpEclServer: TpEclServer2[];\n }\n\n export interface TpMachine8 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines8 {\n TpMachine: TpMachine8[];\n }\n\n export interface TpEclScheduler {\n Name: string;\n Description: string;\n Build: string;\n LogDirectory: string;\n Type: string;\n Path: string;\n TpMachines: TpMachines8;\n }\n\n export interface TpEclSchedulers {\n TpEclScheduler: TpEclScheduler[];\n }\n\n export interface TpMachine9 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines9 {\n TpMachine: TpMachine9[];\n }\n\n export interface TpBinding {\n Name: string;\n Service: string;\n ServiceType: string;\n BindingType: string;\n ServiceBuildSet: string;\n Port: string;\n Protocol: string;\n }\n\n export interface TpBindings {\n TpBinding: TpBinding[];\n }\n\n export interface TpEspServer {\n Name: string;\n Description: string;\n Build: string;\n Type: string;\n Path: string;\n LogDirectory: string;\n TpMachines: TpMachines9;\n TpBindings: TpBindings;\n }\n\n export interface TpEspServers {\n TpEspServer: TpEspServer[];\n }\n\n export interface TpMachine10 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines10 {\n TpMachine: TpMachine10[];\n }\n\n export interface TpFTSlave {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines10;\n }\n\n export interface TpFTSlaves {\n TpFTSlave: TpFTSlave[];\n }\n\n export interface TpMachine11 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines11 {\n TpMachine: TpMachine11[];\n }\n\n export interface TpGenesisServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines11;\n }\n\n export interface TpGenesisServers {\n TpGenesisServer: TpGenesisServer[];\n }\n\n export interface TpMachine12 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines12 {\n TpMachine: TpMachine12[];\n }\n\n export interface TpLdapServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines12;\n }\n\n export interface TpLdapServers {\n TpLdapServer: TpLdapServer[];\n }\n\n export interface TpMachine13 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines13 {\n TpMachine: TpMachine13[];\n }\n\n export interface TpMySqlServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines13;\n }\n\n export interface TpMySqlServers {\n TpMySqlServer: TpMySqlServer[];\n }\n\n export interface TpMachine14 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines14 {\n TpMachine: TpMachine14[];\n }\n\n export interface TpSashaServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n LogDirectory: string;\n TpMachines: TpMachines14;\n }\n\n export interface TpSashaServers {\n TpSashaServer: TpSashaServer[];\n }\n\n export interface ServiceList {\n TpDalis: TpDalis;\n TpDfuServers: TpDfuServers;\n TpDkcSlaves: TpDkcSlaves;\n TpDropZones: TpDropZones;\n TpEclAgents: TpEclAgents;\n TpEclServers: TpEclServers;\n TpEclCCServers: TpEclCCServers;\n TpEclSchedulers: TpEclSchedulers;\n TpEspServers: TpEspServers;\n TpFTSlaves: TpFTSlaves;\n TpGenesisServers: TpGenesisServers;\n TpLdapServers: TpLdapServers;\n TpMySqlServers: TpMySqlServers;\n TpSashaServers: TpSashaServers;\n }\n\n export interface Response {\n Exceptions: Exceptions;\n MemThreshold: number;\n DiskThreshold: number;\n CpuThreshold: number;\n EncapsulatedSystem: boolean;\n EnableSNMP: boolean;\n PreflightProcessFilter: string;\n AcceptLanguage: string;\n MemThresholdType: string;\n DiskThresholdType: string;\n ServiceList: ServiceList;\n }\n}\n\nexport namespace TpTargetClusterQuery {\n\n export interface Request {\n Type?: string;\n Name?: string;\n ShowDetails?: boolean;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface TpMachine {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines {\n TpMachine: TpMachine[];\n }\n\n export interface TpCluster {\n Type: string;\n Name: string;\n QueueName: string;\n Build: string;\n Directory: string;\n LogDirectory: string;\n Desc: string;\n Path: string;\n DataModel: string;\n OS: number;\n HasThorSpareProcess: boolean;\n TpMachines: TpMachines;\n }\n\n export interface TpClusters {\n TpCluster: TpCluster[];\n }\n\n export interface TpMachine2 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines2 {\n TpMachine: TpMachine2[];\n }\n\n export interface TpEclServer {\n Name: string;\n Description: string;\n Build: string;\n LogDirectory: string;\n Type: string;\n Path: string;\n TpMachines: TpMachines2;\n }\n\n export interface TpEclCCServers {\n TpEclServer: TpEclServer[];\n }\n\n export interface TpMachine3 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines3 {\n TpMachine: TpMachine3[];\n }\n\n export interface TpEclServer2 {\n Name: string;\n Description: string;\n Build: string;\n LogDirectory: string;\n Type: string;\n Path: string;\n TpMachines: TpMachines3;\n }\n\n export interface TpEclServers {\n TpEclServer: TpEclServer2[];\n }\n\n export interface TpMachine4 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines4 {\n TpMachine: TpMachine4[];\n }\n\n export interface TpEclAgent {\n Name: string;\n Description: string;\n Build: string;\n Type: string;\n Path: string;\n DaliServer: string;\n LogDir: string;\n TpMachines: TpMachines4;\n }\n\n export interface TpEclAgents {\n TpEclAgent: TpEclAgent[];\n }\n\n export interface TpMachine5 {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: number;\n Path: string;\n Port: number;\n ProcessNumber: number;\n }\n\n export interface TpMachines5 {\n TpMachine: TpMachine5[];\n }\n\n export interface TpEclScheduler {\n Name: string;\n Description: string;\n Build: string;\n LogDirectory: string;\n Type: string;\n Path: string;\n TpMachines: TpMachines5;\n }\n\n export interface TpEclSchedulers {\n TpEclScheduler: TpEclScheduler[];\n }\n\n export interface TpTargetCluster {\n Name: string;\n Prefix: string;\n Type: string;\n TpClusters: TpClusters;\n TpEclCCServers: TpEclCCServers;\n TpEclServers: TpEclServers;\n TpEclAgents: TpEclAgents;\n TpEclSchedulers: TpEclSchedulers;\n }\n\n export interface TpTargetClusters {\n TpTargetCluster: TpTargetCluster[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n ShowDetails: boolean;\n MemThreshold: number;\n DiskThreshold: number;\n CpuThreshold: number;\n MemThresholdType: string;\n DiskThresholdType: string;\n PreflightProcessFilter: string;\n AcceptLanguage: string;\n TpTargetClusters: TpTargetClusters;\n }\n}\n\nexport namespace TpListTargetClusters {\n\n export interface Request {\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface TpClusterNameType {\n Name: string;\n Type: string;\n IsDefault: boolean;\n }\n\n export interface TargetClusters {\n TpClusterNameType: TpClusterNameType[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n TargetClusters: TargetClusters;\n }\n\n}\n\nexport class TopologyService extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsTopology\", \"1.25\");\n }\n\n connectionOptions(): IOptions {\n return this._connection.opts();\n }\n\n protocol(): string {\n const parts = this._connection.opts().baseUrl.split(\"//\");\n return parts[0];\n }\n\n ip(): string {\n const parts = this._connection.opts().baseUrl.split(\"//\");\n const parts2 = parts[1].split(\":\");\n return parts2[0];\n }\n\n TpLogicalClusterQuery(request: TpLogicalClusterQuery.Request = {}): Promise<TpLogicalClusterQuery.Response> {\n return this._connection.send(\"TpLogicalClusterQuery\", request);\n }\n\n DefaultTpLogicalClusterQuery(request: TpLogicalClusterQuery.Request = {}): Promise<TpLogicalClusterQuery.TpLogicalCluster> {\n return this.TpLogicalClusterQuery(request).then((response) => {\n if ((response as any).default) {\n return (response as any).default;\n }\n let firstHThor;\n let first;\n response.TpLogicalClusters.TpLogicalCluster.some((item, idx) => {\n if (idx === 0) {\n first = item;\n }\n if (item.Type === \"hthor\") {\n firstHThor = item;\n return true;\n }\n return false;\n });\n return firstHThor || first;\n });\n }\n\n TpServiceQuery(request: TpServiceQuery.Request): Promise<TpServiceQuery.Response> {\n return this._connection.send(\"TpServiceQuery\", request);\n }\n\n TpTargetClusterQuery(request: TpTargetClusterQuery.Request): Promise<TpTargetClusterQuery.Response> {\n return this._connection.send(\"TpTargetClusterQuery\", request);\n }\n\n TpListTargetClusters(request: TpListTargetClusters.Request): Promise<TpListTargetClusters.Response> {\n return this._connection.send(\"TpListTargetClusters\", request);\n }\n}\n","import { deepMixin, xml2json, XMLNode } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { ESPConnection, Service } from \"../espConnection\";\n\n/*\n Response structures generated via:\n * http://192.168.3.22:8010/WsWorkunits/WUQuery?respjson_\n * http://json2ts.com/\n*/\n\nexport enum WUStateID {\n Unknown = 0,\n Compiled,\n Running,\n Completed,\n Failed,\n Archived,\n Aborting,\n Aborted,\n Blocked,\n Submitted,\n Scheduled,\n Compiling,\n Wait,\n UploadingFiled,\n DebugPaused,\n DebugRunning,\n Paused,\n LAST,\n NotFound = 999\n}\n\nexport namespace WUInfo {\n export interface Request {\n Wuid: string;\n TruncateEclTo64k?: boolean;\n Type?: string;\n IncludeExceptions?: boolean;\n IncludeGraphs?: boolean;\n IncludeSourceFiles?: boolean;\n IncludeResults?: boolean;\n IncludeResultsViewNames?: boolean;\n IncludeVariables?: boolean;\n IncludeTimers?: boolean;\n IncludeDebugValues?: boolean;\n IncludeApplicationValues?: boolean;\n IncludeWorkflows?: boolean;\n IncludeXmlSchemas?: boolean;\n IncludeResourceURLs?: boolean;\n SuppressResultSchemas?: boolean;\n ThorSlaveIP?: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Query {\n Text: string;\n Cpp: string;\n ResTxt: string;\n Dll: string;\n ThorLog: string;\n QueryMainDefinition: string;\n }\n\n export interface ECLHelpFile {\n Name: string;\n Type: string;\n IPAddress: string;\n Description: string;\n FileSize: number;\n PID: number;\n minActivityId: number;\n maxActivityId: number;\n }\n\n export interface Helpers {\n ECLHelpFile: ECLHelpFile[];\n }\n\n export interface ECLException {\n Source: string;\n Severity: string;\n Code: number;\n Message: string;\n FileName: string;\n LineNo: number;\n Column: number;\n Activity: number;\n }\n\n export interface Exceptions2 {\n ECLException: ECLException[];\n }\n\n export interface ECLGraph {\n Name: string;\n Label: string;\n Type: string;\n Running: boolean;\n Complete: boolean;\n Failed: boolean;\n RunningId: number;\n WhenStarted: string;\n WhenFinished: string;\n }\n\n export interface Graphs {\n ECLGraph: ECLGraph[];\n }\n\n export interface ECLSourceFiles {\n ECLSourceFile: any[];\n }\n\n export interface ECLSourceFile {\n FileCluster: string;\n Name: string;\n IsSuperFile: boolean;\n Subs: number;\n Count: number;\n ECLSourceFiles: ECLSourceFiles;\n }\n\n export interface SourceFiles {\n ECLSourceFile: ECLSourceFile[];\n }\n\n export interface ECLSchemaItem {\n ColumnName: string;\n ColumnType: string;\n ColumnTypeCode: number;\n isConditional: boolean;\n }\n\n export interface ECLSchemas {\n ECLSchemaItem: ECLSchemaItem[];\n }\n\n export interface ECLResult {\n Name: string;\n Sequence: number;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: number;\n ECLSchemas: ECLSchemas;\n XmlSchema: string;\n }\n\n export interface Results {\n ECLResult: ECLResult[];\n }\n\n export interface ECLSchemaItem2 {\n ColumnName: string;\n ColumnType: string;\n ColumnTypeCode: number;\n isConditional: boolean;\n }\n\n export interface ECLSchemas2 {\n ECLSchemaItem: ECLSchemaItem2[];\n }\n\n export interface ECLResult2 {\n Name: string;\n Sequence: number;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: number;\n ECLSchemas: ECLSchemas2;\n XmlSchema: string;\n }\n\n export interface Variables {\n ECLResult: ECLResult2[];\n }\n\n export interface ECLTimer {\n Name: string;\n Value: string;\n count: number;\n GraphName: string;\n SubGraphId: number;\n }\n\n export interface Timers {\n ECLTimer: ECLTimer[];\n }\n\n export interface DebugValue {\n Name: string;\n Value: string;\n }\n\n export interface DebugValues {\n DebugValue: DebugValue[];\n }\n\n export interface ApplicationValue {\n Application: string;\n Name: string;\n Value: string;\n }\n\n export interface ApplicationValues {\n ApplicationValue: ApplicationValue[];\n }\n\n export interface ECLWorkflow {\n WFID: string;\n EventName: string;\n EventText: string;\n Count: number;\n CountRemaining: number;\n }\n\n export interface Workflows {\n ECLWorkflow: ECLWorkflow[];\n }\n\n export interface ECLTimingData {\n Name: string;\n GraphNum: number;\n SubGraphNum: number;\n GID: number;\n Min: number;\n MS: number;\n }\n\n export interface TimingData {\n ECLTimingData: ECLTimingData[];\n }\n\n export interface AllowedClusters {\n AllowedCluster: string[];\n }\n\n export interface ThorLogInfo {\n ProcessName: string;\n ClusterGroup: string;\n LogDate: string;\n NumberSlaves: number;\n }\n\n export interface ThorLogList {\n ThorLogInfo: ThorLogInfo[];\n }\n\n export interface ResourceURLs {\n URL: string[];\n }\n\n export interface Workunit {\n Wuid: string;\n Owner: string;\n Cluster: string;\n RoxieCluster: string;\n Jobname: string;\n Queue: string;\n StateID: number;\n State: string;\n StateEx: string;\n Description: string;\n Protected: boolean;\n Active: boolean;\n Action: number;\n ActionEx: string;\n DateTimeScheduled: string;\n PriorityClass: number;\n PriorityLevel: number;\n Scope: string;\n Snapshot: string;\n ResultLimit: number;\n Archived: boolean;\n IsPausing: boolean;\n ThorLCR: boolean;\n EventSchedule: number;\n HaveSubGraphTimings: boolean;\n TotalClusterTime: string;\n AbortBy: string;\n AbortTime: string;\n Query: Query;\n Helpers: Helpers;\n Exceptions: Exceptions2;\n Graphs: Graphs;\n SourceFiles: SourceFiles;\n Results: Results;\n Variables: Variables;\n Timers: Timers;\n DebugValues: DebugValues;\n ApplicationValues: ApplicationValues;\n Workflows: Workflows;\n TimingData: TimingData;\n AllowedClusters: AllowedClusters;\n ErrorCount: number;\n WarningCount: number;\n InfoCount: number;\n AlertCount: number;\n GraphCount: number;\n SourceFileCount: number;\n ResultCount: number;\n VariableCount: number;\n TimerCount: number;\n HasDebugValue: boolean;\n ApplicationValueCount: number;\n XmlParams: string;\n AccessFlag: number;\n ClusterFlag: number;\n HelpersDesc: string;\n GraphsDesc: string;\n SourceFilesDesc: string;\n ResultsDesc: string;\n VariablesDesc: string;\n TimersDesc: string;\n DebugValuesDesc: string;\n ApplicationValuesDesc: string;\n WorkflowsDesc: string;\n HasArchiveQuery: boolean;\n ThorLogList: ThorLogList;\n ResourceURLs: ResourceURLs;\n ResultViewCount: number;\n ResourceURLCount: number;\n DebugValueCount: number;\n WorkflowCount: number;\n HelpersCount: number;\n }\n\n export interface ResultViews {\n View: string[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Workunit: Workunit;\n AutoRefresh: number;\n CanCompile: boolean;\n ThorSlaveIP: string;\n ResultViews: ResultViews;\n SecMethod: string;\n }\n}\n\nexport namespace WUQuery {\n export interface ApplicationValue {\n Application: string;\n Name: string;\n Value: string;\n }\n\n export interface Request {\n Wuid?: string;\n Type?: string;\n Cluster?: string;\n RoxieCluster?: string;\n Owner?: string;\n State?: string;\n StartDate?: string;\n EndDate?: string;\n ECL?: string;\n Jobname?: string;\n LogicalFile?: string;\n LogicalFileSearchType?: string;\n ApplicationValues?: {\n ApplicationValue: ApplicationValue[]\n };\n After?: string;\n Before?: string;\n Count?: number;\n PageSize?: number;\n PageStartFrom?: number;\n PageEndAt?: number;\n LastNDays?: number;\n Sortby?: string;\n Descending?: boolean;\n CacheHint?: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Query {\n Text: string;\n Cpp: string;\n ResTxt: string;\n Dll: string;\n ThorLog: string;\n QueryMainDefinition: string;\n }\n\n export interface ECLHelpFile {\n Name: string;\n Type: string;\n IPAddress: string;\n Description: string;\n FileSize: number;\n PID: number;\n minActivityId: number;\n maxActivityId: number;\n }\n\n export interface Helpers {\n ECLHelpFile: ECLHelpFile[];\n }\n\n export interface ECLException {\n Source: string;\n Severity: string;\n Code: number;\n Message: string;\n FileName: string;\n LineNo: number;\n Column: number;\n Activity: number;\n }\n\n export interface Exceptions2 {\n ECLException: ECLException[];\n }\n\n export interface ECLGraph {\n Name: string;\n Label: string;\n Type: string;\n Running: boolean;\n Complete: boolean;\n Failed: boolean;\n RunningId: number;\n WhenStarted: string;\n WhenFinished: string;\n }\n\n export interface Graphs {\n ECLGraph: ECLGraph[];\n }\n\n export interface ECLSourceFiles {\n ECLSourceFile: any[];\n }\n\n export interface ECLSourceFile {\n FileCluster: string;\n Name: string;\n IsSuperFile: boolean;\n Subs: number;\n Count: number;\n ECLSourceFiles: ECLSourceFiles;\n }\n\n export interface SourceFiles {\n ECLSourceFile: ECLSourceFile[];\n }\n\n export interface ECLSchemaItem {\n ColumnName: string;\n ColumnType: string;\n ColumnTypeCode: number;\n isConditional: boolean;\n }\n\n export interface ECLSchemas {\n ECLSchemaItem: ECLSchemaItem[];\n }\n\n export interface ECLResult {\n Name: string;\n Sequence: number;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: number;\n ECLSchemas: ECLSchemas;\n XmlSchema: string;\n }\n\n export interface Results {\n ECLResult: ECLResult[];\n }\n\n export interface ECLSchemaItem2 {\n ColumnName: string;\n ColumnType: string;\n ColumnTypeCode: number;\n isConditional: boolean;\n }\n\n export interface ECLSchemas2 {\n ECLSchemaItem: ECLSchemaItem2[];\n }\n\n export interface ECLResult2 {\n Name: string;\n Sequence: number;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: number;\n ECLSchemas: ECLSchemas2;\n XmlSchema: string;\n }\n\n export interface Variables {\n ECLResult: ECLResult2[];\n }\n\n export interface ECLTimer {\n Name: string;\n Value: string;\n count: number;\n GraphName: string;\n SubGraphId: number;\n }\n\n export interface Timers {\n ECLTimer: ECLTimer[];\n }\n\n export interface DebugValue {\n Name: string;\n Value: string;\n }\n\n export interface DebugValues {\n DebugValue: DebugValue[];\n }\n\n export interface ApplicationValue {\n Application: string;\n Name: string;\n Value: string;\n }\n\n export interface ApplicationValues {\n ApplicationValue: ApplicationValue[];\n }\n\n export interface ECLWorkflow {\n WFID: string;\n EventName: string;\n EventText: string;\n Count: number;\n CountRemaining: number;\n }\n\n export interface Workflows {\n ECLWorkflow: ECLWorkflow[];\n }\n\n export interface ECLTimingData {\n Name: string;\n GraphNum: number;\n SubGraphNum: number;\n GID: number;\n Min: number;\n MS: number;\n }\n\n export interface TimingData {\n ECLTimingData: ECLTimingData[];\n }\n\n export interface AllowedClusters {\n AllowedCluster: string[];\n }\n\n export interface ThorLogInfo {\n ProcessName: string;\n ClusterGroup: string;\n LogDate: string;\n NumberSlaves: number;\n }\n\n export interface ThorLogList {\n ThorLogInfo: ThorLogInfo[];\n }\n\n export interface ResourceURLs {\n URL: string[];\n }\n\n export interface ECLWorkunit {\n Wuid: string;\n Owner: string;\n Cluster: string;\n RoxieCluster: string;\n Jobname: string;\n Queue: string;\n StateID: number;\n State: string;\n StateEx: string;\n Description: string;\n Protected: boolean;\n Active: boolean;\n Action: number;\n ActionEx: string;\n DateTimeScheduled: string;\n PriorityClass: number;\n PriorityLevel: number;\n Scope: string;\n Snapshot: string;\n ResultLimit: number;\n Archived: boolean;\n IsPausing: boolean;\n ThorLCR: boolean;\n EventSchedule: number;\n HaveSubGraphTimings: boolean;\n TotalClusterTime: string;\n AbortBy: string;\n AbortTime: string;\n Query: Query;\n Helpers: Helpers;\n Exceptions: Exceptions2;\n Graphs: Graphs;\n SourceFiles: SourceFiles;\n Results: Results;\n Variables: Variables;\n Timers: Timers;\n DebugValues: DebugValues;\n ApplicationValues: ApplicationValues;\n Workflows: Workflows;\n TimingData: TimingData;\n AllowedClusters: AllowedClusters;\n ErrorCount: number;\n WarningCount: number;\n InfoCount: number;\n AlertCount: number;\n GraphCount: number;\n SourceFileCount: number;\n ResultCount: number;\n VariableCount: number;\n TimerCount: number;\n HasDebugValue: boolean;\n ApplicationValueCount: number;\n XmlParams: string;\n AccessFlag: number;\n ClusterFlag: number;\n HelpersDesc: string;\n GraphsDesc: string;\n SourceFilesDesc: string;\n ResultsDesc: string;\n VariablesDesc: string;\n TimersDesc: string;\n DebugValuesDesc: string;\n ApplicationValuesDesc: string;\n WorkflowsDesc: string;\n HasArchiveQuery: boolean;\n ThorLogList: ThorLogList;\n ResourceURLs: ResourceURLs;\n ResultViewCount: number;\n ResourceURLCount: number;\n DebugValueCount: number;\n WorkflowCount: number;\n HelpersCount: number;\n }\n\n export interface Workunits {\n ECLWorkunit: ECLWorkunit[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Type: string;\n Cluster: string;\n RoxieCluster: string;\n Owner: string;\n State: string;\n StartDate: string;\n EndDate: string;\n ECL: string;\n Jobname: string;\n LogicalFile: string;\n LogicalFileSearchType: string;\n Current: string;\n Next: string;\n Count: number;\n PageSize: number;\n PrevPage: number;\n NextPage: number;\n LastPage: number;\n NumWUs: number;\n First: boolean;\n PageStartFrom: number;\n PageEndAt: number;\n LastNDays: number;\n Sortby: string;\n Descending: boolean;\n BasicQuery: string;\n Filters: string;\n CacheHint: number;\n Workunits: Workunits;\n }\n}\n\nexport namespace WUCreate {\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Query {\n Text: string;\n Cpp: string;\n ResTxt: string;\n Dll: string;\n ThorLog: string;\n QueryMainDefinition: string;\n }\n\n export interface ECLHelpFile {\n Name: string;\n Type: string;\n IPAddress: string;\n Description: string;\n FileSize: number;\n PID: number;\n minActivityId: number;\n maxActivityId: number;\n }\n\n export interface Helpers {\n ECLHelpFile: ECLHelpFile[];\n }\n\n export interface ECLException {\n Source: string;\n Severity: string;\n Code: number;\n Message: string;\n FileName: string;\n LineNo: number;\n Column: number;\n Activity: number;\n }\n\n export interface Exceptions2 {\n ECLException: ECLException[];\n }\n\n export interface ECLGraph {\n Name: string;\n Label: string;\n Type: string;\n Running: boolean;\n Complete: boolean;\n Failed: boolean;\n RunningId: number;\n WhenStarted: string;\n WhenFinished: string;\n }\n\n export interface Graphs {\n ECLGraph: ECLGraph[];\n }\n\n export interface ECLSourceFiles {\n ECLSourceFile: any[];\n }\n\n export interface ECLSourceFile {\n FileCluster: string;\n Name: string;\n IsSuperFile: boolean;\n Subs: number;\n Count: number;\n ECLSourceFiles: ECLSourceFiles;\n }\n\n export interface SourceFiles {\n ECLSourceFile: ECLSourceFile[];\n }\n\n export interface ECLSchemaItem {\n ColumnName: string;\n ColumnType: string;\n ColumnTypeCode: number;\n isConditional: boolean;\n }\n\n export interface ECLSchemas {\n ECLSchemaItem: ECLSchemaItem[];\n }\n\n export interface ECLResult {\n Name: string;\n Sequence: number;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: number;\n ECLSchemas: ECLSchemas;\n XmlSchema: string;\n }\n\n export interface Results {\n ECLResult: ECLResult[];\n }\n\n export interface ECLSchemaItem2 {\n ColumnName: string;\n ColumnType: string;\n ColumnTypeCode: number;\n isConditional: boolean;\n }\n\n export interface ECLSchemas2 {\n ECLSchemaItem: ECLSchemaItem2[];\n }\n\n export interface ECLResult2 {\n Name: string;\n Sequence: number;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: number;\n ECLSchemas: ECLSchemas2;\n XmlSchema: string;\n }\n\n export interface Variables {\n ECLResult: ECLResult2[];\n }\n\n export interface ECLTimer {\n Name: string;\n Value: string;\n count: number;\n GraphName: string;\n SubGraphId: number;\n }\n\n export interface Timers {\n ECLTimer: ECLTimer[];\n }\n\n export interface DebugValue {\n Name: string;\n Value: string;\n }\n\n export interface DebugValues {\n DebugValue: DebugValue[];\n }\n\n export interface ApplicationValue {\n Application: string;\n Name: string;\n Value: string;\n }\n\n export interface ApplicationValues {\n ApplicationValue: ApplicationValue[];\n }\n\n export interface ECLWorkflow {\n WFID: string;\n EventName: string;\n EventText: string;\n Count: number;\n CountRemaining: number;\n }\n\n export interface Workflows {\n ECLWorkflow: ECLWorkflow[];\n }\n\n export interface ECLTimingData {\n Name: string;\n GraphNum: number;\n SubGraphNum: number;\n GID: number;\n Min: number;\n MS: number;\n }\n\n export interface TimingData {\n ECLTimingData: ECLTimingData[];\n }\n\n export interface AllowedClusters {\n AllowedCluster: string[];\n }\n\n export interface ThorLogInfo {\n ProcessName: string;\n ClusterGroup: string;\n LogDate: string;\n NumberSlaves: number;\n }\n\n export interface ThorLogList {\n ThorLogInfo: ThorLogInfo[];\n }\n\n export interface ResourceURLs {\n URL: string[];\n }\n\n export interface Workunit {\n Wuid: string;\n Owner: string;\n Cluster: string;\n RoxieCluster: string;\n Jobname: string;\n Queue: string;\n StateID: number;\n State: string;\n StateEx: string;\n Description: string;\n Protected: boolean;\n Active: boolean;\n Action: number;\n ActionEx: string;\n DateTimeScheduled: string;\n PriorityClass: number;\n PriorityLevel: number;\n Scope: string;\n Snapshot: string;\n ResultLimit: number;\n Archived: boolean;\n IsPausing: boolean;\n ThorLCR: boolean;\n EventSchedule: number;\n HaveSubGraphTimings: boolean;\n TotalClusterTime: string;\n AbortBy: string;\n AbortTime: string;\n Query: Query;\n Helpers: Helpers;\n Exceptions: Exceptions2;\n Graphs: Graphs;\n SourceFiles: SourceFiles;\n Results: Results;\n Variables: Variables;\n Timers: Timers;\n DebugValues: DebugValues;\n ApplicationValues: ApplicationValues;\n Workflows: Workflows;\n TimingData: TimingData;\n AllowedClusters: AllowedClusters;\n ErrorCount: number;\n WarningCount: number;\n InfoCount: number;\n AlertCount: number;\n GraphCount: number;\n SourceFileCount: number;\n ResultCount: number;\n VariableCount: number;\n TimerCount: number;\n HasDebugValue: boolean;\n ApplicationValueCount: number;\n XmlParams: string;\n AccessFlag: number;\n ClusterFlag: number;\n HelpersDesc: string;\n GraphsDesc: string;\n SourceFilesDesc: string;\n ResultsDesc: string;\n VariablesDesc: string;\n TimersDesc: string;\n DebugValuesDesc: string;\n ApplicationValuesDesc: string;\n WorkflowsDesc: string;\n HasArchiveQuery: boolean;\n ThorLogList: ThorLogList;\n ResourceURLs: ResourceURLs;\n ResultViewCount: number;\n ResourceURLCount: number;\n DebugValueCount: number;\n WorkflowCount: number;\n HelpersCount: number;\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Workunit: Workunit;\n }\n}\n\nexport namespace WUListQueries {\n export interface Request {\n QueryID: string;\n QueryName: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface ClusterQueryState {\n Cluster: string;\n State: string;\n Errors: string;\n MixedNodeStates: boolean;\n }\n\n export interface Clusters {\n ClusterQueryState: ClusterQueryState[];\n }\n\n export interface QuerySetQuery {\n Id: string;\n Name: string;\n Wuid: string;\n Dll: string;\n Suspended: boolean;\n Clusters: Clusters;\n memoryLimit: string;\n timeLimit: number;\n warnTimeLimit: number;\n priority: string;\n Comment: string;\n QuerySetId: string;\n IsLibrary: boolean;\n Activated: boolean;\n PublishedBy: string;\n snapshot: string;\n }\n\n export interface QuerysetQueries {\n QuerySetQuery: QuerySetQuery[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n NumberOfQueries: number;\n CacheHint: number;\n QuerysetQueries: QuerysetQueries;\n }\n}\n\nexport namespace WUPushEvent {\n export interface Request {\n EventName: string;\n EventText: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n }\n}\n\nexport namespace WUUpdate {\n export enum Action {\n Unknown = 0,\n Compile,\n Check,\n Run,\n ExecuteExisting,\n Pause,\n PauseNow,\n Resume,\n Debug,\n __size\n }\n\n export interface Request {\n Wuid: string;\n State?: string;\n StateOrig?: string;\n Jobname?: string;\n JobnameOrig?: string;\n QueryText?: string;\n Action?: Action;\n Description?: string;\n DescriptionOrig?: string;\n AddDrilldownFields?: boolean;\n ResultLimit?: number;\n Protected?: boolean;\n ProtectedOrig?: boolean;\n PriorityClass?: string;\n PriorityLevel?: string;\n Scope?: string;\n ScopeOrig?: string;\n ClusterSelection?: string;\n ClusterOrig?: string;\n XmlParams?: string;\n ThorSlaveIP?: string;\n QueryMainDefinition?: string;\n DebugValues?: DebugValues;\n ApplicationValues?: ApplicationValues;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Query {\n Text: string;\n Cpp: string;\n ResTxt: string;\n Dll: string;\n ThorLog: string;\n QueryMainDefinition: string;\n }\n\n export interface ECLHelpFile {\n Name: string;\n Type: string;\n IPAddress: string;\n Description: string;\n FileSize: number;\n PID: number;\n minActivityId: number;\n maxActivityId: number;\n }\n\n export interface Helpers {\n ECLHelpFile: ECLHelpFile[];\n }\n\n export interface ECLException {\n Source: string;\n Severity: string;\n Code: number;\n Message: string;\n FileName: string;\n LineNo: number;\n Column: number;\n Activity: number;\n }\n\n export interface Exceptions2 {\n ECLException: ECLException[];\n }\n\n export interface ECLGraph {\n Name: string;\n Label: string;\n Type: string;\n Running: boolean;\n Complete: boolean;\n Failed: boolean;\n RunningId: number;\n WhenStarted: string;\n WhenFinished: string;\n }\n\n export interface Graphs {\n ECLGraph: ECLGraph[];\n }\n\n export interface ECLSourceFiles {\n ECLSourceFile: any[];\n }\n\n export interface ECLSourceFile {\n FileCluster: string;\n Name: string;\n IsSuperFile: boolean;\n Subs: number;\n Count: number;\n ECLSourceFiles: ECLSourceFiles;\n }\n\n export interface SourceFiles {\n ECLSourceFile: ECLSourceFile[];\n }\n\n export interface ECLSchemaItem {\n ColumnName: string;\n ColumnType: string;\n ColumnTypeCode: number;\n isConditional: boolean;\n }\n\n export interface ECLSchemas {\n ECLSchemaItem: ECLSchemaItem[];\n }\n\n export interface ECLResult {\n Name: string;\n Sequence: number;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: number;\n ECLSchemas: ECLSchemas;\n XmlSchema: string;\n }\n\n export interface Results {\n ECLResult: ECLResult[];\n }\n\n export interface ECLSchemaItem2 {\n ColumnName: string;\n ColumnType: string;\n ColumnTypeCode: number;\n isConditional: boolean;\n }\n\n export interface ECLSchemas2 {\n ECLSchemaItem: ECLSchemaItem2[];\n }\n\n export interface ECLResult2 {\n Name: string;\n Sequence: number;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: number;\n ECLSchemas: ECLSchemas2;\n XmlSchema: string;\n }\n\n export interface Variables {\n ECLResult: ECLResult2[];\n }\n\n export interface ECLTimer {\n Name: string;\n Value: string;\n count: number;\n GraphName: string;\n SubGraphId: number;\n }\n\n export interface Timers {\n ECLTimer: ECLTimer[];\n }\n\n export interface DebugValue {\n Name: string;\n Value: string;\n }\n\n export interface DebugValues {\n DebugValue: DebugValue[];\n }\n\n export interface ApplicationValue {\n Application: string;\n Name: string;\n Value: string;\n }\n\n export interface ApplicationValues {\n ApplicationValue: ApplicationValue[];\n }\n\n export interface ECLWorkflow {\n WFID: string;\n EventName: string;\n EventText: string;\n Count: number;\n CountRemaining: number;\n }\n\n export interface Workflows {\n ECLWorkflow: ECLWorkflow[];\n }\n\n export interface ECLTimingData {\n Name: string;\n GraphNum: number;\n SubGraphNum: number;\n GID: number;\n Min: number;\n MS: number;\n }\n\n export interface TimingData {\n ECLTimingData: ECLTimingData[];\n }\n\n export interface AllowedClusters {\n AllowedCluster: string[];\n }\n\n export interface ThorLogInfo {\n ProcessName: string;\n ClusterGroup: string;\n LogDate: string;\n NumberSlaves: number;\n }\n\n export interface ThorLogList {\n ThorLogInfo: ThorLogInfo[];\n }\n\n export interface ResourceURLs {\n URL: string[];\n }\n\n export interface Workunit {\n Wuid: string;\n Owner: string;\n Cluster: string;\n RoxieCluster: string;\n Jobname: string;\n Queue: string;\n StateID: number;\n State: string;\n StateEx: string;\n Description: string;\n Protected: boolean;\n Active: boolean;\n Action: number;\n ActionEx: string;\n DateTimeScheduled: string;\n PriorityClass: number;\n PriorityLevel: number;\n Scope: string;\n Snapshot: string;\n ResultLimit: number;\n Archived: boolean;\n IsPausing: boolean;\n ThorLCR: boolean;\n EventSchedule: number;\n HaveSubGraphTimings: boolean;\n TotalClusterTime: string;\n AbortBy: string;\n AbortTime: string;\n Query: Query;\n Helpers: Helpers;\n Exceptions: Exceptions2;\n Graphs: Graphs;\n SourceFiles: SourceFiles;\n Results: Results;\n Variables: Variables;\n Timers: Timers;\n DebugValues: DebugValues;\n ApplicationValues: ApplicationValues;\n Workflows: Workflows;\n TimingData: TimingData;\n AllowedClusters: AllowedClusters;\n ErrorCount: number;\n WarningCount: number;\n InfoCount: number;\n AlertCount: number;\n GraphCount: number;\n SourceFileCount: number;\n ResultCount: number;\n VariableCount: number;\n TimerCount: number;\n HasDebugValue: boolean;\n ApplicationValueCount: number;\n XmlParams: string;\n AccessFlag: number;\n ClusterFlag: number;\n HelpersDesc: string;\n GraphsDesc: string;\n SourceFilesDesc: string;\n ResultsDesc: string;\n VariablesDesc: string;\n TimersDesc: string;\n DebugValuesDesc: string;\n ApplicationValuesDesc: string;\n WorkflowsDesc: string;\n HasArchiveQuery: boolean;\n ThorLogList: ThorLogList;\n ResourceURLs: ResourceURLs;\n ResultViewCount: number;\n ResourceURLCount: number;\n DebugValueCount: number;\n WorkflowCount: number;\n HelpersCount: number;\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Workunit: Workunit;\n }\n}\n\nexport namespace WUSubmit {\n export interface Request {\n Wuid: string;\n Cluster: string;\n Queue?: string;\n Snapshot?: string;\n MaxRunTime?: number;\n BlockTillFinishTimer?: boolean;\n SyntaxCheck?: boolean;\n NotifyCluster?: boolean;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n }\n}\n\nexport namespace WUResubmit {\n export interface Request {\n Wuids: string[];\n ResetWorkflow: boolean;\n CloneWorkunit: boolean;\n BlockTillFinishTimer?: number;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface WU {\n WUID: string;\n ParentWUID: string;\n }\n\n export interface WUs {\n WU: WU[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n WUs: WUs;\n }\n}\n\nexport namespace WUQueryDetails {\n export interface Request {\n QueryId: string;\n QuerySet: string;\n IncludeStateOnClusters: boolean;\n IncludeSuperFiles: boolean;\n IncludeWsEclAddresses: boolean;\n CheckAllNodes: boolean;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface ClusterQueryState {\n Cluster: string;\n State: string;\n Errors: string;\n MixedNodeStates: boolean;\n }\n\n export interface Clusters {\n ClusterQueryState: ClusterQueryState[];\n }\n\n export interface LogicalFiles {\n Item: string[];\n }\n\n export interface SubFiles {\n File: string[];\n }\n\n export interface SuperFiles2 {\n SuperFile: any[];\n }\n\n export interface SuperFile {\n Name: string;\n SubFiles: SubFiles;\n SuperFiles: SuperFiles2;\n }\n\n export interface SuperFiles {\n SuperFile: SuperFile[];\n }\n\n export interface LibrariesUsed {\n Item: string[];\n }\n\n export interface WsEclAddresses {\n Address: string[];\n }\n\n export interface ECLGraph {\n Name: string;\n Label: string;\n Type: string;\n Running: boolean;\n Complete: boolean;\n Failed: boolean;\n RunningId: number;\n WhenStarted: string;\n WhenFinished: string;\n }\n\n export interface WUGraphs {\n ECLGraph: ECLGraph[];\n }\n\n export interface ECLTimer {\n Name: string;\n Value: string;\n count: number;\n GraphName: string;\n SubGraphId: number;\n }\n\n export interface WUTimers {\n ECLTimer: ECLTimer[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n QueryId: string;\n QuerySet: string;\n QueryName: string;\n Wuid: string;\n Dll: string;\n Suspended: boolean;\n Activated: boolean;\n SuspendedBy: string;\n Clusters: Clusters;\n PublishedBy: string;\n Comment: string;\n LogicalFiles: LogicalFiles;\n SuperFiles: SuperFiles;\n IsLibrary: boolean;\n Priority: string;\n WUSnapShot: string;\n CompileTime: string;\n LibrariesUsed: LibrariesUsed;\n CountGraphs: number;\n ResourceURLCount: number;\n WsEclAddresses: WsEclAddresses;\n WUGraphs: WUGraphs;\n WUTimers: WUTimers;\n }\n}\n\nexport namespace WUAction {\n export type Type = \"SetToFailed\" | \"Pause\" | \"PauseNow\" | \"Resume\" | \"Abort\" | \"Delete\" | \"Restore\" | \"Deschedule\" | \"Reschedule\";\n export interface Request {\n Wuids: string[];\n WUActionType: Type;\n Cluster?: string;\n Owner?: string;\n State?: string;\n StartDate?: string;\n EndDate?: string;\n ECL?: string;\n Jobname?: string;\n Test?: string;\n CurrentPage?: number;\n PageSize?: number;\n Sortby?: number;\n Descending?: boolean;\n EventServer?: string;\n EventName?: string;\n PageFrom?: number;\n BlockTillFinishTimer?: number;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface WUActionResult {\n Wuid: string;\n Action: string;\n Result: string;\n }\n\n export interface ActionResults {\n WUActionResult: WUActionResult[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n ActionResults: ActionResults;\n }\n}\n\nexport namespace WUGetZAPInfo {\n export interface Request {\n WUID: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n WUID: string;\n ESPIPAddress: string;\n ThorIPAddress: string;\n BuildVersion: string;\n Archive: string;\n }\n}\n\nexport namespace WUShowScheduled {\n export interface Request {\n Cluster: string;\n EventName: string;\n PushEventName: string;\n PushEventText: string;\n State: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface ServerInfo {\n Name: string;\n NetAddress: string;\n }\n\n export interface Clusters {\n ServerInfo: ServerInfo[];\n }\n\n export interface ScheduledWU {\n Wuid: string;\n Cluster: string;\n EventName: string;\n EventText: string;\n JobName: string;\n StateID: number;\n State: string;\n Owner: string;\n }\n\n export interface Workunits {\n ScheduledWU: ScheduledWU[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n ClusterSelected: number;\n EventName: string;\n PushEventName: string;\n PushEventText: string;\n Query: string;\n Clusters: Clusters;\n Workunits: Workunits;\n }\n}\n\nexport namespace WUQuerySetQueryAction {\n export interface Request {\n Action: string;\n QuerySetName: string;\n Queries: any[];\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Result {\n QueryId: string;\n Suspended: boolean;\n Success: boolean;\n Code: number;\n Message: string;\n }\n\n export interface Results {\n Result: Result[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Action: string;\n QuerySetName: string;\n Results: Results;\n }\n}\n\nexport namespace WUQuerySetAliasAction {\n export interface Request {\n Action: string;\n QuerySetName: string;\n Queries: any[];\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Result {\n Name: string;\n Success: boolean;\n Code: number;\n Message: string;\n }\n\n export interface Results {\n Result: Result[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Action: string;\n QuerySetName: string;\n Results: Results;\n }\n}\n\nexport namespace WUPublishWorkunit {\n export interface Request {\n Wuid: string;\n Cluster: string;\n JobName: string;\n Activate: boolean;\n NotifyCluster?: boolean;\n Wait?: number;\n NoReload?: boolean;\n UpdateWorkUnitName?: boolean;\n memoryLimit?: string;\n TimeLimit?: string;\n WarnTimeLimit?: string;\n Priority?: string;\n RemoteDali?: string;\n Comment?: string;\n DontCopyFiles?: boolean;\n SourceProcess?: string;\n AllowForeignFiles: boolean;\n UpdateDfs?: boolean;\n UpdateSuperFiles?: boolean;\n UpdateCloneFrom?: boolean;\n AppendCluster?: boolean;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Clusters {\n Item: string[];\n }\n\n export interface WULogicalFileCopyInfo {\n IsIndex: boolean;\n LogicalName: string;\n DfuCopyWuid: string;\n DfuCopyError: string;\n Clusters: Clusters;\n }\n\n export interface OnCluster {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\n }\n\n export interface Clusters2 {\n Item: string[];\n }\n\n export interface WULogicalFileCopyInfo2 {\n IsIndex: boolean;\n LogicalName: string;\n DfuCopyWuid: string;\n DfuCopyError: string;\n Clusters: Clusters2;\n }\n\n export interface NotOnCluster {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo2[];\n }\n\n export interface Clusters3 {\n Item: string[];\n }\n\n export interface WULogicalFileCopyInfo3 {\n IsIndex: boolean;\n LogicalName: string;\n DfuCopyWuid: string;\n DfuCopyError: string;\n Clusters: Clusters3;\n }\n\n export interface Foreign {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo3[];\n }\n\n export interface Clusters4 {\n Item: string[];\n }\n\n export interface WULogicalFileCopyInfo4 {\n IsIndex: boolean;\n LogicalName: string;\n DfuCopyWuid: string;\n DfuCopyError: string;\n Clusters: Clusters4;\n }\n\n export interface NotFound {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo4[];\n }\n\n export interface Cluster {\n ClusterName: string;\n OnCluster: OnCluster;\n NotOnCluster: NotOnCluster;\n Foreign: Foreign;\n NotFound: NotFound;\n }\n\n export interface ClusterFiles {\n Cluster: Cluster[];\n }\n\n export interface File {\n Error: string;\n LogicalName: string;\n }\n\n export interface FileErrors {\n File: File[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Wuid: string;\n Result: string;\n QuerySet: string;\n QueryName: string;\n QueryId: string;\n ReloadFailed: boolean;\n Suspended: boolean;\n ErrorMessage: string;\n ClusterFiles: ClusterFiles;\n FileErrors: FileErrors;\n }\n}\n\nexport namespace WUGetGraph {\n\n export interface Request {\n Wuid: string;\n GraphName: string;\n SubGraphId: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface ECLGraphEx {\n Name: string;\n Label: string;\n Type: string;\n Graph: string;\n Running: boolean;\n RunningId: number;\n Complete: boolean;\n Failed: boolean;\n }\n\n export interface Graphs {\n ECLGraphEx: ECLGraphEx[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Graphs: Graphs;\n }\n}\n\nexport namespace WUResult {\n export interface Request {\n Wuid?: string;\n Sequence?: number;\n ResultName?: string;\n LogicalName?: string;\n Cluster?: string;\n SuppressXmlSchema?: boolean;\n BypassCachedResult?: boolean;\n FilterBy?: any;\n Start: number;\n Count: number;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface XmlSchema {\n \"@name\": string;\n xml: string;\n }\n\n export interface Result {\n XmlSchema: XmlSchema;\n \"@xmlSchema\": string;\n Row: any[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Wuid: string;\n Sequence: number;\n LogicalName: string;\n Cluster: string;\n Name: string;\n Start: number;\n Requested: number;\n Count: number;\n Total: number;\n Result: Result;\n }\n}\n\nexport namespace WUQueryGetGraph {\n export interface Request {\n Target: string;\n QueryId: string;\n GraphName: string;\n SubGraphId: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface ECLGraphEx {\n Name: string;\n Label: string;\n Type: string;\n Graph: string;\n Running: boolean;\n RunningId: number;\n Complete: boolean;\n Failed: boolean;\n }\n\n export interface Graphs {\n ECLGraphEx: ECLGraphEx[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Graphs: Graphs;\n }\n}\n\nexport interface WUFileRequest {\n Wuid: string;\n Type: string;\n Name?: string;\n Option?: string;\n SlaveIP?: string;\n IPAddress?: string;\n Description?: string;\n QuerySet?: string;\n Query?: string;\n Process?: string;\n ClusterGroup?: string;\n LogDate?: string;\n SlaveNumber?: number;\n SizeLimit?: number;\n PlainText?: string;\n}\n\nexport namespace WUGetStats {\n export interface Request {\n WUID: string;\n CreatorType: string;\n Creator: string;\n ScopeType: string;\n Scope: string;\n Kind: string;\n Measure: string;\n MinScopeDepth: number;\n MaxScopeDepth: number;\n IncludeGraphs: boolean;\n CreateDescriptions: boolean;\n MinValue: number;\n MaxValue: number;\n Filter: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface WUStatisticItem {\n Creator: string;\n CreatorType: string;\n Scope: string;\n ScopeType: string;\n Description: string;\n TimeStamp: string;\n Measure: string;\n Kind: string;\n Value: string;\n RawValue: number;\n Count: number;\n Max: number;\n Wuid: string;\n }\n\n export interface Statistics {\n WUStatisticItem: WUStatisticItem[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n WUID: string;\n Statistics: Statistics;\n }\n}\n\nexport namespace WUCDebug {\n export interface Request {\n Wuid: string;\n Command: string;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Result: string;\n }\n}\n\nexport namespace WUDetailsMeta {\n export interface Request {\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Attributes {\n Attribute: string[];\n }\n\n export interface ScopeTypes {\n ScopeType: string[];\n }\n\n export interface Measures {\n Measure: string[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n Attributes: Attributes;\n ScopeTypes: ScopeTypes;\n Measures: Measures;\n }\n}\n\nexport namespace WUDetails {\n export namespace RequestNS {\n\n export interface Scopes {\n Scope: string[];\n }\n\n export interface Ids {\n id: string[];\n }\n\n export interface ScopeTypes {\n ScopeType: string[];\n }\n\n export interface PropertyFilter {\n Name?: string;\n ExactValue?: string;\n MinValue?: string;\n MaxValue?: string;\n }\n\n export interface PropertyFilters {\n PropertyFilter: PropertyFilter[];\n }\n\n export interface ScopeFilter {\n MaxDepth?: number;\n Scopes?: Scopes;\n Ids?: string[];\n ScopeTypes?: string[];\n PropertyFilters?: PropertyFilters;\n }\n\n export interface ScopeTypes2 {\n ScopeType: string[];\n }\n\n export interface NestedFilter {\n Depth?: number;\n ScopeTypes: string[];\n }\n\n export interface Properties {\n Property: string[];\n }\n\n export interface Properties2 {\n Property: string[];\n }\n\n export interface Extra {\n scopeType: string;\n Properties: Properties2;\n }\n\n export interface ExtraProperties {\n Extra: Extra[];\n }\n\n export interface PropertiesToReturn {\n AllStatistics?: boolean;\n AllAttributes?: boolean;\n AllHints?: boolean;\n AllScopes?: boolean;\n AllProperties?: boolean;\n MinVersion?: string;\n Measure?: string;\n Properties?: string[];\n ExtraProperties?: ExtraProperties;\n }\n\n export interface ScopeOptions {\n IncludeMatchedScopesInResults?: boolean;\n IncludeScope?: boolean;\n IncludeId?: boolean;\n IncludeScopeType?: boolean;\n }\n\n export interface PropertyOptions {\n IncludeName?: boolean;\n IncludeRawValue?: boolean;\n IncludeFormatted?: boolean;\n IncludeMeasure?: boolean;\n IncludeCreator?: boolean;\n IncludeCreatorType?: boolean;\n }\n }\n\n export interface Request {\n WUID: string;\n ScopeFilter?: RequestNS.ScopeFilter;\n NestedFilter?: RequestNS.NestedFilter;\n PropertiesToReturn: RequestNS.PropertiesToReturn;\n Filter?: string;\n ScopeOptions: RequestNS.ScopeOptions;\n PropertyOptions: RequestNS.PropertyOptions;\n }\n\n export interface Exception {\n Code: string;\n Audience: string;\n Source: string;\n Message: string;\n }\n\n export interface Exceptions {\n Source: string;\n Exception: Exception[];\n }\n\n export interface Property {\n Name: string;\n RawValue: string;\n Formatted: string;\n Measure: string;\n Creator: string;\n CreatorType: string;\n }\n\n export interface Properties {\n Property: Property[];\n }\n\n export interface Scope {\n ScopeName: string;\n Id: string;\n ScopeType: string;\n Properties: Properties;\n }\n\n export interface Scopes {\n Scope: Scope[];\n }\n\n export interface Response {\n Exceptions: Exceptions;\n MaxVersion: string;\n WUID: string;\n Scopes: Scopes;\n }\n}\n\nexport function isWUQueryECLWorkunit(_: WUQuery.ECLWorkunit | WUInfo.Workunit): _ is WUQuery.ECLWorkunit {\n return (_ as WUQuery.ECLWorkunit).TotalClusterTime !== undefined;\n}\n\nexport function isWUInfoWorkunit(_: WUQuery.ECLWorkunit | WUInfo.Workunit): _ is WUInfo.Workunit {\n return (_ as WUInfo.Workunit).StateEx !== undefined;\n}\n\nexport class WorkunitsService extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsWorkunits\", \"1.68\");\n }\n\n opts() {\n return this._connection.opts();\n }\n\n connection(): ESPConnection {\n return this._connection;\n }\n\n WUQuery(request: WUQuery.Request = {}): Promise<WUQuery.Response> {\n return this._connection.send(\"WUQuery\", request).then((response) => {\n return deepMixin({ Workunits: { ECLWorkunit: [] } }, response);\n });\n }\n\n WUInfo(_request: WUInfo.Request): Promise<WUInfo.Response> {\n const request: WUInfo.Request = {\n Wuid: \"\",\n TruncateEclTo64k: true,\n IncludeExceptions: false,\n IncludeGraphs: false,\n IncludeSourceFiles: false,\n IncludeResults: false,\n IncludeResultsViewNames: false,\n IncludeVariables: false,\n IncludeTimers: false,\n IncludeDebugValues: false,\n IncludeApplicationValues: false,\n IncludeWorkflows: false,\n IncludeXmlSchemas: false,\n IncludeResourceURLs: false,\n SuppressResultSchemas: true,\n ..._request\n };\n return this._connection.send(\"WUInfo\", request);\n }\n\n WUCreate(): Promise<WUCreate.Response> {\n return this._connection.send(\"WUCreate\");\n }\n\n WUUpdate(request: WUUpdate.Request): Promise<WUUpdate.Response> {\n return this._connection.send(\"WUUpdate\", request, \"json\", true);\n }\n\n WUSubmit(request: WUSubmit.Request): Promise<WUSubmit.Response> {\n return this._connection.send(\"WUSubmit\", request);\n }\n\n WUResubmit(request: WUResubmit.Request): Promise<WUResubmit.Response> {\n this._connection.toESPStringArray(request, \"Wuids\");\n return this._connection.send(\"WUResubmit\", request);\n }\n\n WUQueryDetails(request: WUQueryDetails.Request): Promise<WUQueryDetails.Response> {\n return this._connection.send(\"WUQueryDetails\", request);\n }\n\n WUListQueries(request: WUListQueries.Request): Promise<WUListQueries.Response> {\n return this._connection.send(\"WUListQueries\", request);\n }\n\n WUPushEvent(request: WUPushEvent.Request): Promise<WUPushEvent.Response> {\n return this._connection.send(\"WUPushEvent\", request);\n }\n\n WUAction(request: WUAction.Request): Promise<WUAction.Response> {\n (request as any).ActionType = request.WUActionType; // v5.x compatibility\n return this._connection.send(\"WUAction\", request);\n }\n\n WUGetZAPInfo(request: WUGetZAPInfo.Request): Promise<WUGetZAPInfo.Response> {\n return this._connection.send(\"WUGetZAPInfo\", request);\n }\n\n WUShowScheduled(request: WUShowScheduled.Request): Promise<WUShowScheduled.Response> {\n return this._connection.send(\"WUShowScheduled\", request);\n }\n\n WUQuerySetAliasAction(request: WUQuerySetAliasAction.Request): Promise<WUQuerySetAliasAction.Response> {\n return this._connection.send(\"WUQuerySetAliasAction\", request);\n }\n\n WUQuerySetQueryAction(request: WUQuerySetQueryAction.Request): Promise<WUQuerySetQueryAction.Response> {\n return this._connection.send(\"WUQuerySetQueryAction\", request);\n }\n\n WUPublishWorkunit(request: WUPublishWorkunit.Request): Promise<WUPublishWorkunit.Response> {\n return this._connection.send(\"WUPublishWorkunit\", request);\n }\n\n WUGetGraph(request: WUGetGraph.Request): Promise<WUGetGraph.Response> {\n return this._connection.send(\"WUGetGraph\", request);\n }\n\n WUResult(request: WUResult.Request): Promise<WUResult.Response> {\n return this._connection.send(\"WUResult\", request);\n }\n\n WUQueryGetGraph(request: WUQueryGetGraph.Request): Promise<WUQueryGetGraph.Response> {\n return this._connection.send(\"WUQueryGetGraph\", request);\n }\n\n WUFile(request: WUFileRequest): Promise<string> {\n return this._connection.send(\"WUFile\", request, \"text\");\n }\n\n WUGetStats(request: WUGetStats.Request): Promise<WUGetStats.Response> {\n return this._connection.send(\"WUGetStats\", request);\n }\n\n private _WUDetailsMetaPromise: Promise<WUDetailsMeta.Response>;\n WUDetailsMeta(request: WUDetailsMeta.Request): Promise<WUDetailsMeta.Response> {\n if (!this._WUDetailsMetaPromise) {\n this._WUDetailsMetaPromise = this._connection.send(\"WUDetailsMeta\", request);\n }\n return this._WUDetailsMetaPromise;\n }\n\n WUDetails(request: WUDetails.Request): Promise<WUDetails.Response> {\n return this._connection.send(\"WUDetails\", request);\n }\n\n WUCDebug(request: WUCDebug.Request): Promise<XMLNode | null> {\n return this._connection.send(\"WUCDebug\", request).then((response) => {\n const retVal = xml2json(response.Result);\n const children = retVal.children();\n if (children.length) {\n return children[0];\n }\n return null;\n });\n }\n}\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 = new Date(+date)), date;\n }\n\n interval.floor = interval;\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 = [];\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(new Date(+start)); while (offseti(start, step), floori(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) while (--step >= 0) while (offseti(date, 1), !test(date)) {} // eslint-disable-line no-empty\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","import interval from \"./interval\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\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\";\nimport {durationSecond} from \"./duration\";\n\nvar second = interval(function(date) {\n date.setTime(Math.floor(date / durationSecond) * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval\";\nimport {durationMinute} from \"./duration\";\n\nvar minute = interval(function(date) {\n date.setTime(Math.floor(date / durationMinute) * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval\";\nimport {durationHour, durationMinute} from \"./duration\";\n\nvar hour = interval(function(date) {\n var offset = date.getTimezoneOffset() * durationMinute % durationHour;\n if (offset < 0) offset += durationHour;\n date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval\";\nimport {durationDay, durationMinute} from \"./duration\";\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\";\nimport {durationMinute, durationWeek} from \"./duration\";\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\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval\";\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\";\nimport {durationMinute} from \"./duration\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval\";\nimport {durationHour} from \"./duration\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval\";\nimport {durationDay} from \"./duration\";\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\";\nimport {durationWeek} from \"./duration\";\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\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval\";\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 newYear(y) {\n return {y: y, m: 0, d: 1, 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 \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\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 \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\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 \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\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, newDate) {\n return function(string) {\n var d = newYear(1900),\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\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 // 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(newYear(d.y)), 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 = newDate(newYear(d.y)), 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(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).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 newDate(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 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 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 += \"\", localDate);\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, utcDate);\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 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.Q = (+n[0]) * 1000, 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), d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(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), d), p, 2);\n}\n\nfunction formatYear(d, p) {\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 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), d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(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), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\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 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\";\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 {utcFormat} from \"./defaultLocale\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat\";\nimport {utcParse} from \"./defaultLocale\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import { Cache, Edge, Graph, StateObject, StringAnyMap, Subgraph, Vertex, XMLNode } from \"@hpcc-js/util\";\nimport { WUInfo } from \"../services/wsWorkunits\";\nimport { BaseScope } from \"./scope\";\nimport { Timer } from \"./timer\";\nimport { Workunit } from \"./workunit\";\n\nexport interface ECLGraphEx extends WUInfo.ECLGraph {\n Time: number;\n}\n\nexport class ECLGraph extends StateObject<ECLGraphEx, ECLGraphEx> implements ECLGraphEx {\n protected wu: Workunit;\n\n get properties(): ECLGraphEx { return this.get(); }\n get Name(): string { return this.get(\"Name\"); }\n get Label(): string { return this.get(\"Label\"); }\n get Type(): string { return this.get(\"Type\"); }\n get Complete(): boolean { return this.get(\"Complete\"); }\n get WhenStarted(): string { return this.get(\"WhenStarted\"); }\n get WhenFinished(): string { return this.get(\"WhenFinished\"); }\n get Time(): number { return this.get(\"Time\"); }\n get Running(): boolean { return this.get(\"Running\"); }\n get RunningId(): number { return this.get(\"RunningId\"); }\n get Failed(): boolean { return this.get(\"Failed\"); }\n\n constructor(wu: Workunit, eclGraph: WUInfo.ECLGraph, eclTimers: Timer[]) {\n super();\n this.wu = wu;\n let duration = 0;\n for (const eclTimer of eclTimers) {\n if (eclTimer.GraphName === eclGraph.Name && !eclTimer.HasSubGraphId) {\n duration = Math.round(eclTimer.Seconds * 1000) / 1000;\n break;\n }\n }\n this.set({ Time: duration, ...eclGraph });\n }\n\n fetchScopeGraph(subgraphID?: string): Promise<ScopeGraph> {\n if (subgraphID) {\n return this.wu.fetchGraphDetails([subgraphID], [\"subgraph\"]).then((scopes) => {\n return createGraph(scopes);\n });\n }\n return this.wu.fetchGraphDetails([this.Name], [\"graph\"]).then((scopes) => {\n return createGraph(scopes);\n });\n }\n}\n\nexport class GraphCache extends Cache<WUInfo.ECLGraph, ECLGraph> {\n constructor() {\n super((obj) => {\n return Cache.hash([obj.Name]);\n });\n }\n}\n\ntype Callback = (tag: string, attributes: StringAnyMap, children: XMLNode[], _stack: XMLNode[]) => void;\nfunction walkXmlJson(node: XMLNode, callback: Callback, stack?: XMLNode[]) {\n stack = stack || [];\n stack.push(node);\n callback(node.name, node.$, node.children(), stack);\n node.children().forEach((childNode) => {\n walkXmlJson(childNode, callback, stack);\n });\n stack.pop();\n}\n\nfunction flattenAtt(nodes: XMLNode[]): StringAnyMap {\n const retVal: StringAnyMap = {};\n nodes.forEach((node: XMLNode) => {\n if (node.name === \"att\") {\n retVal[node.$[\"name\"]] = node.$[\"value\"];\n }\n });\n return retVal;\n}\n\nexport class XGMMLGraph extends Graph<StringAnyMap, StringAnyMap, StringAnyMap> { }\nexport class XGMMLSubgraph extends Subgraph<StringAnyMap, StringAnyMap, StringAnyMap> { }\nexport class XGMMLVertex extends Vertex<StringAnyMap, StringAnyMap, StringAnyMap> { }\nexport class XGMMLEdge extends Edge<StringAnyMap, StringAnyMap, StringAnyMap> { }\n\nexport function createXGMMLGraph(id: string, graphs: XMLNode): XGMMLGraph {\n const subgraphs: { [id: string]: XGMMLSubgraph } = {};\n const vertices: { [id: string]: XGMMLVertex } = {};\n const edges: { [id: string]: XGMMLEdge } = {};\n\n const graph = new XGMMLGraph((item) => {\n return item._![\"id\"];\n });\n\n const stack: XGMMLSubgraph[] = [graph.root];\n walkXmlJson(graphs, (tag: string, attributes: StringAnyMap, childNodes: XMLNode[], _stack) => {\n const top = stack[stack.length - 1];\n switch (tag) {\n case \"graph\":\n break;\n case \"node\":\n if (childNodes.length && childNodes[0].children().length && childNodes[0].children()[0].name === \"graph\") {\n const subgraph = top.createSubgraph(flattenAtt(childNodes));\n stack.push(subgraph);\n subgraphs[attributes[\"id\"]] = subgraph;\n } else {\n }\n // TODO: Is this really a node when its also a subgraph?\n const vertex = top.createVertex(flattenAtt(childNodes));\n vertices[attributes[\"id\"]] = vertex;\n break;\n case \"edge\":\n const edge = top.createEdge(vertices[attributes[\"source\"]], vertices[attributes[\"target\"]], flattenAtt(childNodes));\n edges[attributes[\"id\"]] = edge;\n break;\n default:\n }\n });\n return graph;\n}\n\nexport class ScopeGraph extends Graph<BaseScope, BaseScope, BaseScope> { }\nexport class ScopeSubgraph extends Subgraph<BaseScope, BaseScope, BaseScope> { }\nexport class ScopeVertex extends Vertex<BaseScope, BaseScope, BaseScope> { }\nexport class ScopeEdge extends Edge<BaseScope, BaseScope, BaseScope> { }\n\nexport function createGraph(scopes: BaseScope[]): ScopeGraph {\n const subgraphs: { [scopeName: string]: ScopeSubgraph } = {};\n const edges: { [scopeName: string]: BaseScope } = {};\n\n let graph: ScopeGraph | undefined;\n for (const scope of scopes) {\n switch (scope.ScopeType) {\n case \"graph\":\n graph = new ScopeGraph(item => item._!.Id, scope);\n subgraphs[scope.ScopeName] = graph.root;\n break;\n case \"subgraph\":\n if (!graph) {\n graph = new ScopeGraph(item => item._!.Id, scope);\n subgraphs[scope.ScopeName] = graph.root;\n }\n const scopeStack = scope.parentScope().split(\":\");\n let scopeParent1 = subgraphs[scope.parentScope()];\n while (scopeStack.length && !scopeParent1) {\n scopeParent1 = subgraphs[scopeStack.join(\":\")];\n scopeStack.pop();\n }\n if (!scopeParent1) {\n console.log(`Missing SG:Parent (${scope.Id}): ${scope.parentScope()}`);\n } else {\n const parent1: ScopeSubgraph = scopeParent1;\n subgraphs[scope.ScopeName] = parent1.createSubgraph(scope);\n }\n break;\n case \"activity\":\n const scopeParent2 = subgraphs[scope.parentScope()];\n if (!scopeParent2) {\n console.log(`Missing A:Parent (${scope.Id}): ${scope.parentScope()}`);\n } else {\n scopeParent2.createVertex(scope);\n }\n break;\n case \"edge\":\n edges[scope.ScopeName] = scope;\n break;\n }\n }\n for (const id in edges) {\n const scope = edges[id];\n const scopeParent3 = subgraphs[scope.parentScope()];\n if (!scopeParent3) {\n console.log(`Missing E:Parent (${scope.Id}): ${scope.parentScope()}`);\n } else {\n const parent3: ScopeSubgraph = scopeParent3;\n try {\n const source = graph!.vertex(scope.attr(\"IdSource\").RawValue);\n const target = graph!.vertex(scope.attr(\"IdTarget\").RawValue);\n parent3.createEdge(source, target, scope);\n } catch (e) {\n // const sourceIndex = scope.attr(\"SourceIndex\").RawValue;\n // const targetIndex = scope.attr(\"TargetIndex\").RawValue;\n console.log(`Invalid Edge: ${id}`);\n }\n }\n }\n return graph!;\n}\n","import { StateObject } from \"@hpcc-js/util\";\nimport { Workunit } from \"./workunit\";\n\nexport interface ResourceEx {\n URL: string;\n DisplayName: string;\n DisplayPath: string;\n}\n\nexport class Resource extends StateObject<ResourceEx, ResourceEx> implements ResourceEx {\n protected wu: Workunit;\n\n get properties(): ResourceEx { return this.get(); }\n get URL(): string { return this.get(\"URL\"); }\n get DisplayName(): string { return this.get(\"DisplayName\"); }\n get DisplayPath(): string { return this.get(\"DisplayPath\"); }\n\n constructor(wu: Workunit, url: string) {\n super();\n this.wu = wu;\n\n const cleanedURL = url.split(\"\\\\\").join(\"/\");\n const urlParts = cleanedURL.split(\"/\");\n const matchStr = \"res/\" + this.wu.Wuid + \"/\";\n let displayPath = \"\";\n let displayName = \"\";\n\n if (cleanedURL.indexOf(matchStr) === 0) {\n displayPath = cleanedURL.substr(matchStr.length);\n displayName = urlParts[urlParts.length - 1];\n }\n\n this.set({\n URL: url,\n DisplayName: displayName,\n DisplayPath: displayPath\n });\n }\n}\n","import { SAXStackParser, Stack, XMLNode } from \"@hpcc-js/util\";\n\nexport class XSDNode {\n protected e?: XMLNode;\n\n constructor(e: XMLNode) {\n this.e = e;\n }\n fix() {\n delete this.e;\n }\n}\n\nexport class XSDXMLNode extends XSDNode {\n name: string;\n type: string;\n attrs: { [key: string]: string } = {};\n private _children: XSDXMLNode[] = [];\n\n constructor(e: XMLNode) {\n super(e);\n }\n\n append(child: XSDXMLNode) {\n this._children.push(child);\n if (!this.type) {\n this.type = \"hpcc:childDataset\";\n }\n }\n\n fix() {\n this.name = this.e!.$[\"name\"];\n this.type = this.e!.$[\"type\"];\n for (let i = this._children.length - 1; i >= 0; --i) {\n const row = this._children[i];\n if (row.name === \"Row\" && row.type === undefined) {\n this._children.push(...row._children);\n this._children.splice(i, 1);\n }\n }\n super.fix();\n }\n\n children(): XSDXMLNode[] {\n return this._children;\n }\n\n charWidth() {\n let retVal: number = -1;\n\n switch (this.type) {\n case \"xs:boolean\":\n retVal = 5;\n break;\n case \"xs:integer\":\n retVal = 8;\n break;\n case \"xs:nonNegativeInteger\":\n retVal = 8;\n break;\n case \"xs:double\":\n retVal = 8;\n break;\n case \"xs:string\":\n retVal = 32;\n break;\n default:\n const numStr: string = \"0123456789\";\n const underbarPos: number = this.type.lastIndexOf(\"_\");\n const length: number = underbarPos > 0 ? underbarPos : this.type.length;\n let i: number = length - 1;\n for (; i >= 0; --i) {\n if (numStr.indexOf(this.type.charAt(i)) === -1)\n break;\n }\n if (i + 1 < length) {\n retVal = parseInt(this.type.substring(i + 1, length), 10);\n }\n if (this.type.indexOf(\"data\") === 0) {\n retVal *= 2;\n }\n break;\n }\n if (retVal < this.name.length)\n retVal = this.name.length;\n\n return retVal;\n }\n}\n\nexport class XSDSimpleType extends XSDNode {\n name: string;\n type: string;\n maxLength: number | undefined;\n\n protected _restricition?: XMLNode;\n protected _maxLength?: XMLNode;\n\n constructor(e: XMLNode) {\n super(e);\n }\n\n append(e: XMLNode) {\n switch (e.name) {\n case \"xs:restriction\":\n this._restricition = e;\n break;\n case \"xs:maxLength\":\n this._maxLength = e;\n break;\n default:\n }\n }\n\n fix() {\n this.name = this.e!.$[\"name\"];\n this.type = this._restricition!.$[\"base\"];\n this.maxLength = this._maxLength ? +this._maxLength!.$[\"value\"] : undefined;\n delete this._restricition;\n delete this._maxLength;\n super.fix();\n }\n}\n\nexport class XSDSchema {\n root: XSDXMLNode;\n simpleTypes: { [name: string]: XSDSimpleType } = {};\n\n fields(): XSDXMLNode[] {\n return this.root.children();\n }\n}\n\nclass XSDParser extends SAXStackParser {\n schema: XSDSchema = new XSDSchema();\n simpleType: XSDSimpleType;\n simpleTypes: { [name: string]: XSDSimpleType } = {};\n\n xsdStack: Stack<XSDXMLNode> = new Stack<XSDXMLNode>();\n\n startXMLNode(e: XMLNode) {\n super.startXMLNode(e);\n switch (e.name) {\n case \"xs:element\":\n const xsdXMLNode = new XSDXMLNode(e);\n if (!this.schema.root) {\n this.schema.root = xsdXMLNode;\n } else if (this.xsdStack.depth()) {\n this.xsdStack.top()!.append(xsdXMLNode);\n }\n this.xsdStack.push(xsdXMLNode);\n break;\n case \"xs:simpleType\":\n this.simpleType = new XSDSimpleType(e);\n break;\n default:\n break;\n }\n }\n\n endXMLNode(e: XMLNode) {\n switch (e!.name) {\n case \"xs:element\":\n const xsdXMLNode = this.xsdStack.pop();\n xsdXMLNode!.fix();\n break;\n case \"xs:simpleType\":\n this.simpleType.fix();\n this.simpleTypes[this.simpleType.name] = this.simpleType;\n delete this.simpleType;\n break;\n case \"xs:appinfo\":\n const xsdXMLNode2 = this.xsdStack.top();\n for (const key in e.$) {\n xsdXMLNode2!.attrs[key] = e.$[key];\n }\n break;\n default:\n if (this.simpleType) {\n this.simpleType.append(e);\n }\n }\n super.endXMLNode(e);\n }\n}\n\nexport function parseXSD(xml: string): XSDSchema {\n const saxParser = new XSDParser();\n saxParser.parse(xml);\n return saxParser.schema;\n}\n\nclass XSDParser2 extends XSDParser {\n _rootName: string;\n schema: XSDSchema = new XSDSchema();\n simpleType: XSDSimpleType;\n simpleTypes: { [name: string]: XSDSimpleType } = {};\n\n xsdStack: Stack<XSDXMLNode> = new Stack<XSDXMLNode>();\n\n constructor(rootName: string) {\n super();\n this._rootName = rootName;\n }\n\n startXMLNode(e: XMLNode) {\n super.startXMLNode(e);\n switch (e.name) {\n case \"xsd:element\":\n const xsdXMLNode = new XSDXMLNode(e);\n if (!this.schema.root && this._rootName === e.$.name) {\n this.schema.root = xsdXMLNode;\n }\n if (this.xsdStack.depth()) {\n this.xsdStack.top()!.append(xsdXMLNode);\n }\n this.xsdStack.push(xsdXMLNode);\n break;\n case \"xsd:simpleType\":\n this.simpleType = new XSDSimpleType(e);\n break;\n default:\n break;\n }\n }\n\n endXMLNode(e: XMLNode) {\n switch (e!.name) {\n case \"xsd:element\":\n const xsdXMLNode = this.xsdStack.pop()!;\n xsdXMLNode.fix();\n break;\n case \"xsd:simpleType\":\n break;\n default:\n break;\n }\n super.endXMLNode(e);\n }\n}\n\nexport function parseXSD2(xml: string, rootName): XSDSchema {\n const saxParser = new XSDParser2(rootName);\n saxParser.parse(xml);\n return saxParser.schema;\n}\n","import { Cache, exists, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { WsDfu } from \"../services/wsDFU\";\nimport { WorkunitsService, WUInfo, WUResult } from \"../services/wsWorkunits\";\nimport { parseXSD, XSDSchema, XSDXMLNode } from \"./xsdParser\";\n\nexport class GlobalResultCache extends Cache<{ BaseUrl: string, Wuid: string, ResultName: string }, Result> {\n constructor() {\n super((obj) => {\n return `${obj.BaseUrl}-${obj.Wuid}-${obj.ResultName}`;\n });\n }\n}\nconst _results = new GlobalResultCache();\n\nexport interface ECLResultEx extends WUInfo.ECLResult {\n Wuid: string;\n ResultName?: string;\n ResultSequence?: number;\n LogicalFileName?: string;\n ResultViews: any[];\n}\n\nexport type UResulState = ECLResultEx & WsDfu.DFULogicalFile;\nexport type IResulState = ECLResultEx | WsDfu.DFULogicalFile;\nexport class Result extends StateObject<UResulState, IResulState> implements ECLResultEx {\n protected connection: WorkunitsService;\n get BaseUrl() { return this.connection.baseUrl; }\n protected xsdSchema: XSDSchema;\n\n get properties(): WUInfo.ECLResult { return this.get(); }\n get Wuid(): string { return this.get(\"Wuid\"); }\n get ResultName(): string | undefined { return this.get(\"ResultName\"); }\n get ResultSequence(): number | undefined { return this.get(\"ResultSequence\"); }\n get LogicalFileName(): string | undefined { return this.get(\"LogicalFileName\"); }\n get Name(): string { return this.get(\"Name\"); }\n get Sequence(): number { return this.get(\"Sequence\"); }\n get Value(): string { return this.get(\"Value\"); }\n get Link(): string { return this.get(\"Link\"); }\n get FileName(): string { return this.get(\"FileName\"); }\n get IsSupplied(): boolean { return this.get(\"IsSupplied\"); }\n get ShowFileContent() { return this.get(\"ShowFileContent\"); }\n get Total(): number { return this.get(\"Total\"); }\n get ECLSchemas(): WUInfo.ECLSchemas { return this.get(\"ECLSchemas\"); }\n get NodeGroup(): string { return this.get(\"NodeGroup\"); }\n get ResultViews(): any[] { return this.get(\"ResultViews\"); }\n get XmlSchema(): string { return this.get(\"XmlSchema\"); }\n\n static attach(optsConnection: IOptions | IConnection, wuid: string, resultName: string, state?: IResulState): Result {\n const retVal: Result = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: resultName }, () => {\n return new Result(optsConnection, wuid, resultName);\n });\n if (state) {\n retVal.set(state);\n }\n return retVal;\n }\n\n // TODO: Make protected and add additional attach methodes.\n constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuidOrLogicalFile: string, resultName?: string | number);\n constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WUInfo.ECLResult, resultViews: any[]);\n constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuidOrLogicalFile: string, eclResultOrResultName?: WUInfo.ECLResult | string | number, resultViews: any[] = []) {\n super();\n if (optsConnection instanceof WorkunitsService) {\n this.connection = optsConnection;\n } else {\n this.connection = new WorkunitsService(optsConnection);\n }\n if (typeof eclResultOrResultName === \"undefined\") {\n this.set({\n LogicalFileName: wuidOrLogicalFile\n } as ECLResultEx);\n } else if (typeof eclResultOrResultName === \"string\") {\n this.set({\n Wuid: wuidOrLogicalFile,\n ResultName: eclResultOrResultName,\n ResultViews: resultViews\n } as ECLResultEx);\n } else if (typeof eclResultOrResultName === \"number\") {\n this.set({\n Wuid: wuidOrLogicalFile,\n ResultSequence: eclResultOrResultName,\n ResultViews: resultViews\n } as ECLResultEx);\n } else {\n this.set({\n Wuid: wuidOrLogicalFile,\n ResultName: eclResultOrResultName.Name,\n ResultViews: resultViews,\n ...eclResultOrResultName\n });\n }\n }\n\n isComplete() {\n return this.Total !== -1;\n }\n\n fetchXMLSchema(): Promise<XSDSchema | null> {\n if (this.xsdSchema) {\n return Promise.resolve(this.xsdSchema);\n }\n return this.WUResult().then((response) => {\n if (exists(\"Result.XmlSchema.xml\", response)) {\n this.xsdSchema = parseXSD(response.Result.XmlSchema.xml);\n return this.xsdSchema;\n }\n return null;\n });\n }\n\n async refresh(): Promise<this> {\n await this.fetchRows(0, 1, true);\n return this;\n }\n\n fetchRows(from: number = 0, count: number = -1, includeSchema: boolean = false, filter: { [key: string]: string | number } = {}): Promise<any[]> {\n return this.WUResult(from, count, !includeSchema, filter).then((response) => {\n const result = response.Result;\n delete response.Result; // Do not want it in \"set\"\n this.set({\n ...response\n } as any);\n if (exists(\"XmlSchema.xml\", result)) {\n this.xsdSchema = parseXSD(result.XmlSchema.xml);\n }\n if (exists(\"Row\", result)) {\n return result.Row;\n } else if (this.ResultName && exists(this.ResultName, result)) {\n return result[this.ResultName].Row;\n }\n return [];\n });\n }\n\n rootField(): XSDXMLNode | null {\n if (!this.xsdSchema) return null;\n return this.xsdSchema.root;\n }\n\n fields(): XSDXMLNode[] {\n if (!this.xsdSchema) return [];\n return this.xsdSchema.root.children();\n }\n\n protected WUResult(start: number = 0, count: number = 1, suppressXmlSchema: boolean = false, filter: { [key: string]: string | number } = {}): Promise<WUResult.Response> {\n const FilterBy = {\n NamedValue: {\n itemcount: 0\n }\n };\n for (const key in filter) {\n FilterBy.NamedValue[FilterBy.NamedValue.itemcount++] = {\n Name: key,\n Value: filter[key]\n };\n }\n const request: WUResult.Request = { FilterBy } as WUResult.Request;\n if (this.Wuid && this.ResultName !== undefined) {\n request.Wuid = this.Wuid;\n request.ResultName = this.ResultName;\n } else if (this.Wuid && this.ResultSequence !== undefined) {\n request.Wuid = this.Wuid;\n request.Sequence = this.ResultSequence;\n } else if (this.LogicalFileName && this.NodeGroup) {\n request.LogicalName = this.LogicalFileName;\n request.Cluster = this.NodeGroup;\n } else if (this.LogicalFileName) {\n request.LogicalName = this.LogicalFileName;\n }\n request.Start = start;\n request.Count = count;\n request.SuppressXmlSchema = suppressXmlSchema;\n return this.connection.WUResult(request).then((response) => {\n return response;\n });\n }\n}\n\nexport class ResultCache extends Cache<WUInfo.ECLResult, Result> {\n constructor() {\n super((obj) => {\n return Cache.hash([obj.Sequence, obj.Name, obj.FileName]);\n });\n }\n}\n","import { StateObject, StringAnyMap } from \"@hpcc-js/util\";\n// import { utcFormat, utcParse } from \"d3-time-format\";\nimport { WUDetails } from \"../services/wsWorkunits\";\nimport { Workunit } from \"./workunit\";\n\n// const formatter = utcFormat(\"%Y-%m-%dT%H:%M:%S.%LZ\");\n// const parser = utcParse(\"%Y-%m-%dT%H:%M:%S.%LZ\");\n\nexport interface AttributeEx extends WUDetails.Property {\n FormattedEnd?: string;\n}\n\nexport class Attribute extends StateObject<AttributeEx, AttributeEx> implements AttributeEx {\n readonly scope: BaseScope;\n\n get properties(): AttributeEx { return this.get(); }\n get Name(): string { return this.get(\"Name\"); }\n get RawValue(): string { return this.get(\"RawValue\"); }\n get Formatted(): string { return this.get(\"Formatted\"); }\n get FormattedEnd(): string | undefined { return this.get(\"FormattedEnd\"); }\n get Measure(): string { return this.get(\"Measure\"); }\n get Creator(): string { return this.get(\"Creator\"); }\n get CreatorType(): string { return this.get(\"CreatorType\"); }\n\n constructor(scope: BaseScope, attribute: WUDetails.Property) {\n super();\n this.scope = scope;\n this.set(attribute);\n }\n}\n\nexport interface ScopeEx extends WUDetails.Scope {\n}\n\nexport interface IScopeVisitor {\n start(scope: BaseScope): boolean;\n end(scope: BaseScope): boolean;\n}\n\nexport class BaseScope extends StateObject<ScopeEx, ScopeEx> implements ScopeEx {\n protected _attributeMap: { [key: string]: Attribute } = {};\n protected _children: BaseScope[] = [];\n\n get properties(): ScopeEx { return this.get(); }\n get ScopeName(): string { return this.get(\"ScopeName\"); }\n get Id(): string { return this.get(\"Id\"); }\n get ScopeType(): string { return this.get(\"ScopeType\"); }\n get Properties(): WUDetails.Properties { return this.get(\"Properties\", { Property: [] }); }\n get CAttributes(): Attribute[] {\n // Match \"started\" and time elapsed\n const retVal: Attribute[] = [];\n const timeElapsed: { start: AttributeEx | null, end: AttributeEx | null } = {\n start: null,\n end: null\n };\n this.Properties.Property.forEach((scopeAttr) => {\n if (scopeAttr.Measure === \"ts\" && scopeAttr.Name.indexOf(\"Started\") >= 0) {\n timeElapsed.start = scopeAttr;\n } else if (this.ScopeName && scopeAttr.Measure === \"ts\" && scopeAttr.Name.indexOf(\"Finished\") >= 0) {\n timeElapsed.end = scopeAttr;\n } else {\n retVal.push(new Attribute(this, scopeAttr));\n }\n });\n if (timeElapsed.start && timeElapsed.end) {\n // const endTime = parser(timeElapsed.start.Formatted);\n // endTime!.setMilliseconds(endTime!.getMilliseconds() + (+timeElapsed.elapsed.RawValue) / 1000000);\n // timeElapsed.start.FormattedEnd = formatter(endTime!);\n timeElapsed.start.FormattedEnd = timeElapsed.end.Formatted;\n retVal.push(new Attribute(this, timeElapsed.start));\n } else if (timeElapsed.start) {\n retVal.push(new Attribute(this, timeElapsed.start));\n } else if (timeElapsed.end) {\n retVal.push(new Attribute(this, timeElapsed.end)); // Should not happen?\n }\n return retVal;\n }\n\n constructor(scope: WUDetails.Scope) {\n super();\n this.update(scope);\n }\n\n update(scope: WUDetails.Scope) {\n this.set(scope);\n this.CAttributes.forEach((attr) => {\n this._attributeMap[attr.Name] = attr;\n });\n this.Properties.Property = [];\n for (const key in this._attributeMap) {\n if (this._attributeMap.hasOwnProperty(key)) {\n this.Properties.Property.push(this._attributeMap[key].properties);\n }\n }\n }\n\n parentScope(): string {\n const scopeParts = this.ScopeName.split(\":\");\n scopeParts.pop();\n return scopeParts.join(\":\");\n }\n\n children(): BaseScope[];\n children(_: BaseScope[]): BaseScope;\n children(_?: BaseScope[]): BaseScope[] | BaseScope {\n if (!arguments.length) return this._children;\n this._children = _!;\n return this;\n }\n\n walk(visitor: IScopeVisitor): boolean {\n if (visitor.start(this)) return true;\n for (const scope of this.children()) {\n if (scope.walk(visitor)) {\n return true;\n }\n }\n return visitor.end(this);\n }\n\n formattedAttrs(): StringAnyMap {\n const retVal: StringAnyMap = {};\n for (const attr in this._attributeMap) {\n retVal[attr] = this._attributeMap[attr].Formatted || this._attributeMap[attr].RawValue;\n }\n return retVal;\n }\n\n rawAttrs(): StringAnyMap {\n const retVal: StringAnyMap = {};\n for (const attr in this._attributeMap) {\n retVal[attr] = this._attributeMap[attr].RawValue;\n }\n return retVal;\n }\n\n hasAttr(name: string): boolean {\n return this._attributeMap[name] !== undefined;\n }\n\n attr(name: string): Attribute {\n return this._attributeMap[name] || new Attribute(this, {\n Creator: \"\",\n CreatorType: \"\",\n Formatted: \"\",\n Measure: \"\",\n Name: \"\",\n RawValue: \"\"\n });\n }\n\n attrMeasure(name: string): string {\n return this._attributeMap[name].Measure;\n }\n\n calcTooltip(parentScope?: BaseScope) {\n let label = \"\";\n const rows: string[] = [];\n label = this.Id;\n rows.push(`<tr><td class=\"key\">ID:</td><td class=\"value\">${this.Id}</td></tr>`);\n if (parentScope) {\n rows.push(`<tr><td class=\"key\">Parent ID:</td><td class=\"value\">${parentScope.Id}</td></tr>`);\n }\n rows.push(`<tr><td class=\"key\">Scope:</td><td class=\"value\">${this.ScopeName}</td></tr>`);\n const attrs = this.formattedAttrs();\n for (const key in attrs) {\n if (key === \"Label\") {\n label = attrs[key];\n } else {\n rows.push(`<tr><td class=\"key\">${key}</td><td class=\"value\">${attrs[key]}</td></tr>`);\n }\n }\n\n return `<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n <h4 align=\"center\">${label}</h4>\n <table>\n ${rows.join(\"\")}\n </table>\n </div>`;\n }\n}\n\nexport class Scope extends BaseScope {\n readonly wu: Workunit;\n\n constructor(wu: Workunit, scope: WUDetails.Scope) {\n super(scope);\n this.wu = wu;\n }\n}\n","import { StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { WorkunitsService, WUInfo } from \"../services/wsWorkunits\";\n\nexport interface ECLSourceFileEx extends WUInfo.ECLSourceFile {\n Wuid: string;\n}\n\nexport class SourceFile extends StateObject<ECLSourceFileEx, ECLSourceFileEx> implements ECLSourceFileEx {\n protected connection: WorkunitsService;\n\n get properties(): WUInfo.ECLSourceFile { return this.get(); }\n get Wuid(): string { return this.get(\"Wuid\"); }\n get FileCluster(): string { return this.get(\"FileCluster\"); }\n get Name(): string { return this.get(\"Name\"); }\n get IsSuperFile(): boolean { return this.get(\"IsSuperFile\"); }\n get Subs(): number { return this.get(\"Subs\"); }\n get Count(): number { return this.get(\"Count\"); }\n get ECLSourceFiles(): WUInfo.ECLSourceFiles { return this.get(\"ECLSourceFiles\"); }\n\n constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclSourceFile: WUInfo.ECLSourceFile) {\n super();\n if (optsConnection instanceof WorkunitsService) {\n this.connection = optsConnection;\n } else {\n this.connection = new WorkunitsService(optsConnection);\n }\n\n this.set({\n Wuid: wuid,\n ...eclSourceFile\n });\n }\n}\n","import { espTime2Seconds, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { WorkunitsService, WUInfo } from \"../services/wsWorkunits\";\n\nexport interface ECLTimerEx extends WUInfo.ECLTimer {\n Wuid: string;\n Seconds: number;\n HasSubGraphId: boolean;\n}\n\nexport class Timer extends StateObject<ECLTimerEx, ECLTimerEx> implements ECLTimerEx {\n protected connection: WorkunitsService;\n\n get properties(): WUInfo.ECLTimer { return this.get(); }\n get Wuid(): string { return this.get(\"Wuid\"); }\n get Name(): string { return this.get(\"Name\"); }\n get Value(): string { return this.get(\"Value\"); }\n get Seconds(): number { return this.get(\"Seconds\"); }\n get GraphName(): string { return this.get(\"GraphName\"); }\n get SubGraphId(): number { return this.get(\"SubGraphId\"); }\n get HasSubGraphId(): boolean { return this.get(\"HasSubGraphId\"); }\n get count(): number { return this.get(\"count\"); }\n\n constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclTimer: WUInfo.ECLTimer) {\n super();\n if (optsConnection instanceof WorkunitsService) {\n this.connection = optsConnection;\n } else {\n this.connection = new WorkunitsService(optsConnection);\n }\n\n const secs = espTime2Seconds(eclTimer.Value);\n this.set({\n Wuid: wuid,\n Seconds: Math.round(secs * 1000) / 1000,\n HasSubGraphId: eclTimer.SubGraphId !== undefined,\n ...eclTimer\n });\n }\n}\n","import { Cache, deepMixinT, IEvent, scopedLogger, StateCallback, StateEvents, StateObject, StatePropCallback, StringAnyMap, XMLNode } from \"@hpcc-js/util\";\nimport { utcFormat, utcParse } from \"d3-time-format\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { ESPExceptions } from \"../espConnection\";\nimport { SMCActivity } from \"../services/wsSMC\";\nimport * as WsTopology from \"../services/wsTopology\";\nimport * as WsWorkunits from \"../services/wsWorkunits\";\nimport { createGraph, createXGMMLGraph, ECLGraph, GraphCache, ScopeGraph, XGMMLGraph, XGMMLVertex } from \"./graph\";\nimport { Resource } from \"./resource\";\nimport { Result, ResultCache } from \"./result\";\nimport { BaseScope, Scope } from \"./scope\";\nimport { SourceFile } from \"./sourceFile\";\nimport { Timer } from \"./timer\";\n\nconst formatter = utcFormat(\"%Y-%m-%dT%H:%M:%S.%LZ\");\nconst parser = utcParse(\"%Y-%m-%dT%H:%M:%S.%LZ\");\nconst logger = scopedLogger(\"workunit.ts\");\n\nconst WUStateID = WsWorkunits.WUStateID;\n\nexport class WorkunitCache extends Cache<{ BaseUrl: string, Wuid: string }, Workunit> {\n constructor() {\n super((obj) => {\n return `${obj.BaseUrl}-${obj.Wuid}`;\n });\n }\n}\nconst _workunits = new WorkunitCache();\n\nexport interface DebugState {\n sequence: number;\n state: string;\n [key: string]: any;\n}\n\nexport interface IWorkunit {\n ResultViews: any[];\n HelpersCount: number;\n}\n\nexport interface IDebugWorkunit {\n DebugState?: DebugState;\n}\n\nexport interface ITimeElapsed {\n scope: string;\n start: string;\n elapsed: number;\n finish: string;\n}\n\nexport type WorkunitEvents = \"completed\" | StateEvents;\nexport type UWorkunitState = WsWorkunits.WUQuery.ECLWorkunit & WsWorkunits.WUInfo.Workunit & SMCActivity.ActiveWorkunit & IWorkunit & IDebugWorkunit;\nexport type IWorkunitState = WsWorkunits.WUQuery.ECLWorkunit | WsWorkunits.WUInfo.Workunit | SMCActivity.ActiveWorkunit | IWorkunit | IDebugWorkunit;\nexport class Workunit extends StateObject<UWorkunitState, IWorkunitState> implements WsWorkunits.WUInfo.Workunit {\n connection: WsWorkunits.WorkunitsService;\n topologyConnection: WsTopology.TopologyService;\n get BaseUrl() { return this.connection.baseUrl; }\n\n private _debugMode: boolean = false;\n private _debugAllGraph: any;\n private _submitAction: WsWorkunits.WUUpdate.Action;\n\n // Accessors ---\n get properties(): WsWorkunits.WUQuery.ECLWorkunit & WsWorkunits.WUInfo.Workunit { return this.get(); }\n get Wuid(): string { return this.get(\"Wuid\"); }\n get Owner(): string { return this.get(\"Owner\", \"\"); }\n get Cluster(): string { return this.get(\"Cluster\", \"\"); }\n get Jobname(): string { return this.get(\"Jobname\", \"\"); }\n get Description(): string { return this.get(\"Description\", \"\"); }\n get ActionEx(): string { return this.get(\"ActionEx\", \"\"); }\n get StateID(): WsWorkunits.WUStateID { return this.get(\"StateID\", WsWorkunits.WUStateID.Unknown); }\n get State(): string { return this.get(\"State\") || WsWorkunits.WUStateID[this.StateID]; }\n get Protected(): boolean { return this.get(\"Protected\", false); }\n get Exceptions(): WsWorkunits.WUInfo.Exceptions2 { return this.get(\"Exceptions\", { ECLException: [] }); }\n get ResultViews(): any[] { return this.get(\"ResultViews\", []); }\n\n private _resultCache = new ResultCache();\n get ResultCount(): number { return this.get(\"ResultCount\", 0); }\n get Results(): WsWorkunits.WUInfo.Results { return this.get(\"Results\", { ECLResult: [] }); }\n get CResults(): Result[] {\n return this.Results.ECLResult.map((eclResult) => {\n return this._resultCache.get(eclResult, () => {\n return new Result(this.connection, this.Wuid, eclResult, this.ResultViews);\n });\n });\n }\n get SequenceResults(): { [key: number]: Result } {\n const retVal: { [key: number]: Result } = {};\n this.CResults.forEach((result) => {\n retVal[result.Sequence] = result;\n });\n return retVal;\n }\n get Timers(): WsWorkunits.WUInfo.Timers { return this.get(\"Timers\", { ECLTimer: [] }); }\n get CTimers(): Timer[] {\n return this.Timers.ECLTimer.map((eclTimer) => {\n return new Timer(this.connection, this.Wuid, eclTimer);\n });\n }\n\n private _graphCache = new GraphCache();\n get GraphCount(): number { return this.get(\"GraphCount\", 0); }\n get Graphs(): WsWorkunits.WUInfo.Graphs { return this.get(\"Graphs\", { ECLGraph: [] }); }\n get CGraphs(): ECLGraph[] {\n return this.Graphs.ECLGraph.map((eclGraph) => {\n return this._graphCache.get(eclGraph, () => {\n return new ECLGraph(this, eclGraph, this.CTimers);\n });\n });\n }\n get ThorLogList(): WsWorkunits.WUInfo.ThorLogList { return this.get(\"ThorLogList\"); }\n get ResourceURLCount(): number { return this.get(\"ResourceURLCount\", 0); }\n get ResourceURLs(): WsWorkunits.WUInfo.ResourceURLs { return this.get(\"ResourceURLs\", { URL: [] }); }\n get CResourceURLs(): Resource[] {\n return this.ResourceURLs.URL.map((url) => {\n return new Resource(this, url);\n });\n }\n get TotalClusterTime(): string { return this.get(\"TotalClusterTime\", \"\"); }\n get DateTimeScheduled(): string { return this.get(\"DateTimeScheduled\"); }\n get IsPausing(): boolean { return this.get(\"IsPausing\"); }\n get ThorLCR(): boolean { return this.get(\"ThorLCR\"); }\n get ApplicationValues(): WsWorkunits.WUInfo.ApplicationValues { return this.get(\"ApplicationValues\", { ApplicationValue: [] }); }\n get HasArchiveQuery(): boolean { return this.get(\"HasArchiveQuery\"); }\n get StateEx(): string { return this.get(\"StateEx\"); }\n get PriorityClass(): number { return this.get(\"PriorityClass\"); }\n get PriorityLevel(): number { return this.get(\"PriorityLevel\"); }\n get Snapshot(): string { return this.get(\"Snapshot\"); }\n get ResultLimit(): number { return this.get(\"ResultLimit\"); }\n get EventSchedule(): number { return this.get(\"EventSchedule\"); }\n get HaveSubGraphTimings(): boolean { return this.get(\"HaveSubGraphTimings\"); }\n get Query(): WsWorkunits.WUInfo.Query { return this.get(\"Query\"); }\n get HelpersCount(): number { return this.get(\"HelpersCount\", 0); }\n get Helpers(): WsWorkunits.WUInfo.Helpers { return this.get(\"Helpers\", { ECLHelpFile: [] }); }\n get DebugValues(): WsWorkunits.WUInfo.DebugValues { return this.get(\"DebugValues\"); }\n get AllowedClusters(): WsWorkunits.WUInfo.AllowedClusters { return this.get(\"AllowedClusters\"); }\n get ErrorCount(): number { return this.get(\"ErrorCount\", 0); }\n get WarningCount(): number { return this.get(\"WarningCount\", 0); }\n get InfoCount(): number { return this.get(\"InfoCount\", 0); }\n get AlertCount(): number { return this.get(\"AlertCount\", 0); }\n get SourceFileCount(): number { return this.get(\"SourceFileCount\", 0); }\n get SourceFiles(): WsWorkunits.WUInfo.SourceFiles { return this.get(\"SourceFiles\", { ECLSourceFile: [] }); }\n get CSourceFiles(): SourceFile[] {\n return this.SourceFiles.ECLSourceFile.map(eclSourceFile => new SourceFile(this.connection, this.Wuid, eclSourceFile));\n }\n get VariableCount(): number { return this.get(\"VariableCount\", 0); }\n get Variables(): WsWorkunits.WUInfo.Variables { return this.get(\"Variables\", { ECLResult: [] }); }\n get TimerCount(): number { return this.get(\"TimerCount\", 0); }\n get HasDebugValue(): boolean { return this.get(\"HasDebugValue\"); }\n get ApplicationValueCount(): number { return this.get(\"ApplicationValueCount\", 0); }\n get XmlParams(): string { return this.get(\"XmlParams\"); }\n get AccessFlag(): number { return this.get(\"AccessFlag\"); }\n get ClusterFlag(): number { return this.get(\"ClusterFlag\"); }\n get ResultViewCount(): number { return this.get(\"ResultViewCount\", 0); }\n get DebugValueCount(): number { return this.get(\"DebugValueCount\", 0); }\n get WorkflowCount(): number { return this.get(\"WorkflowCount\", 0); }\n get Archived(): boolean { return this.get(\"Archived\"); }\n get RoxieCluster(): string { return this.get(\"RoxieCluster\"); }\n get DebugState(): DebugState { return this.get(\"DebugState\", {} as DebugState)!; }\n get Queue(): string { return this.get(\"Queue\"); }\n get Active(): boolean { return this.get(\"Active\"); }\n get Action(): number { return this.get(\"Action\"); }\n get Scope(): string { return this.get(\"Scope\"); }\n get AbortBy(): string { return this.get(\"AbortBy\"); }\n get AbortTime(): string { return this.get(\"AbortTime\"); }\n get Workflows(): WsWorkunits.WUInfo.Workflows { return this.get(\"Workflows\"); }\n get TimingData(): WsWorkunits.WUInfo.TimingData { return this.get(\"TimingData\"); }\n get HelpersDesc(): string { return this.get(\"HelpersDesc\"); }\n get GraphsDesc(): string { return this.get(\"GraphsDesc\"); }\n get SourceFilesDesc(): string { return this.get(\"GraphsDesc\"); }\n get ResultsDesc(): string { return this.get(\"GraphsDesc\"); }\n get VariablesDesc(): string { return this.get(\"GraphsDesc\"); }\n get TimersDesc(): string { return this.get(\"GraphsDesc\"); }\n get DebugValuesDesc(): string { return this.get(\"GraphsDesc\"); }\n get ApplicationValuesDesc(): string { return this.get(\"GraphsDesc\"); }\n get WorkflowsDesc(): string { return this.get(\"GraphsDesc\"); }\n\n // Factories ---\n static create(optsConnection: IOptions | IConnection): Promise<Workunit> {\n const retVal: Workunit = new Workunit(optsConnection);\n return retVal.connection.WUCreate().then((response) => {\n _workunits.set(retVal);\n retVal.set(response.Workunit);\n return retVal;\n });\n }\n\n static attach(optsConnection: IOptions | IConnection, wuid: string, state?: IWorkunitState): Workunit {\n const retVal: Workunit = _workunits.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid }, () => {\n return new Workunit(optsConnection, wuid);\n });\n if (state) {\n retVal.set(state);\n }\n return retVal;\n }\n\n static existsLocal(baseUrl: string, wuid: string): boolean {\n return _workunits.has({ BaseUrl: baseUrl, Wuid: wuid });\n }\n\n static submit(server: IOptions | IConnection, target: string, ecl: string): Promise<Workunit> {\n return Workunit.create(server).then((wu) => {\n return wu.update({ QueryText: ecl });\n }).then((wu) => {\n return wu.submit(target);\n });\n }\n\n static query(server: IOptions | IConnection, opts: WsWorkunits.WUQuery.Request): Promise<Workunit[]> {\n const wsWorkunits = new WsWorkunits.WorkunitsService(server);\n return wsWorkunits.WUQuery(opts).then((response) => {\n return response.Workunits.ECLWorkunit.map(function (wu) {\n return Workunit.attach(server, wu.Wuid, wu);\n });\n });\n }\n\n // --- --- ---\n protected constructor(optsConnection: IOptions | IConnection, wuid?: string) {\n super();\n this.connection = new WsWorkunits.WorkunitsService(optsConnection);\n this.topologyConnection = new WsTopology.TopologyService(optsConnection);\n this.clearState(wuid);\n }\n\n clearState(wuid?: string) {\n this.clear({\n Wuid: wuid,\n StateID: WUStateID.Unknown\n });\n }\n\n update(request: Partial<WsWorkunits.WUUpdate.Request>): Promise<Workunit> {\n return this.connection.WUUpdate({\n ...request,\n ...{\n Wuid: this.Wuid,\n StateOrig: this.State,\n JobnameOrig: this.Jobname,\n DescriptionOrig: this.Description,\n ProtectedOrig: this.Protected,\n ClusterOrig: this.Cluster\n }\n }).then((response) => {\n this.set(response.Workunit);\n return this;\n });\n }\n\n submit(_cluster?: string, action: WsWorkunits.WUUpdate.Action = WsWorkunits.WUUpdate.Action.Run, resultLimit?: number): Promise<Workunit> {\n let clusterPromise;\n if (_cluster !== void 0) {\n clusterPromise = Promise.resolve(_cluster);\n } else {\n clusterPromise = this.topologyConnection.DefaultTpLogicalClusterQuery().then((response) => {\n return response.Name;\n });\n }\n\n this._debugMode = false;\n if (action === WsWorkunits.WUUpdate.Action.Debug) {\n action = WsWorkunits.WUUpdate.Action.Run;\n this._debugMode = true;\n }\n\n return clusterPromise.then((cluster) => {\n return this.connection.WUUpdate({\n Wuid: this.Wuid,\n Action: action,\n ResultLimit: resultLimit,\n DebugValues: {\n DebugValue: [\n {\n Name: \"Debug\",\n Value: this._debugMode ? \"1\" : \"\"\n }\n ]\n }\n }).then((response) => {\n this.set(response.Workunit);\n this._submitAction = action;\n return this.connection.WUSubmit({ Wuid: this.Wuid, Cluster: cluster });\n });\n }).then(() => {\n return this;\n });\n }\n\n isComplete(): boolean {\n switch (this.StateID) {\n case WUStateID.Compiled:\n return this.ActionEx === \"compile\" || this._submitAction === WsWorkunits.WUUpdate.Action.Compile;\n case WUStateID.Completed:\n case WUStateID.Failed:\n case WUStateID.Aborted:\n case WUStateID.NotFound:\n return true;\n default:\n }\n return false;\n }\n\n isFailed() {\n switch (this.StateID) {\n case WUStateID.Aborted:\n case WUStateID.Failed:\n return true;\n default:\n }\n return false;\n }\n\n isDeleted() {\n switch (this.StateID) {\n case WUStateID.NotFound:\n return true;\n default:\n }\n return false;\n }\n\n isDebugging() {\n switch (this.StateID) {\n case WUStateID.DebugPaused:\n case WUStateID.DebugRunning:\n return true;\n default:\n }\n return this._debugMode;\n }\n\n isRunning(): boolean {\n switch (this.StateID) {\n case WUStateID.Compiled:\n case WUStateID.Running:\n case WUStateID.Aborting:\n case WUStateID.Blocked:\n case WUStateID.DebugPaused:\n case WUStateID.DebugRunning:\n return true;\n default:\n }\n return false;\n }\n\n setToFailed() {\n return this.WUAction(\"SetToFailed\");\n }\n\n pause() {\n return this.WUAction(\"Pause\");\n }\n\n pauseNow() {\n return this.WUAction(\"PauseNow\");\n }\n\n resume() {\n return this.WUAction(\"Resume\");\n }\n\n abort() {\n return this.WUAction(\"Abort\");\n }\n\n delete() {\n return this.WUAction(\"Delete\");\n }\n\n restore() {\n return this.WUAction(\"Restore\");\n }\n\n deschedule() {\n return this.WUAction(\"Deschedule\");\n }\n\n reschedule() {\n return this.WUAction(\"Reschedule\");\n }\n\n resubmit(): Promise<Workunit> {\n return this.WUResubmit({\n CloneWorkunit: false,\n ResetWorkflow: false\n }).then(() => {\n this.clearState(this.Wuid);\n return this.refresh().then(() => {\n this._monitor();\n return this;\n });\n });\n }\n\n clone(): Promise<Workunit> {\n return this.WUResubmit({\n CloneWorkunit: true,\n ResetWorkflow: false\n }).then((response) => {\n return Workunit.attach(this.connection.connection(), response.WUs.WU[0].WUID)\n .refresh()\n ;\n });\n }\n\n async refreshState(): Promise<this> {\n await this.WUQuery();\n return this;\n }\n\n async refreshInfo(): Promise<this> {\n await this.WUInfo();\n return this;\n }\n\n async refreshDebug(): Promise<this> {\n await this.debugStatus();\n return this;\n }\n\n async refresh(full: boolean = false): Promise<this> {\n if (full) {\n await Promise.all([this.refreshInfo(), this.refreshDebug()]);\n } else {\n await this.refreshState();\n }\n return this;\n }\n\n eclExceptions(): WsWorkunits.WUInfo.ECLException[] {\n return this.Exceptions.ECLException;\n }\n\n fetchArchive(): Promise<string> {\n return this.connection.WUFile({\n Wuid: this.Wuid,\n Type: \"ArchiveQuery\"\n });\n }\n\n fetchECLExceptions(): Promise<WsWorkunits.WUInfo.ECLException[]> {\n return this.WUInfo({ IncludeExceptions: true }).then(() => {\n return this.eclExceptions();\n });\n }\n\n fetchResults(): Promise<Result[]> {\n return this.WUInfo({ IncludeResults: true }).then(() => {\n return this.CResults;\n });\n }\n\n fetchGraphs(): Promise<ECLGraph[]> {\n return this.WUInfo({ IncludeGraphs: true }).then(() => {\n return this.CGraphs;\n });\n }\n\n fetchDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta.Request> = {}): Promise<WsWorkunits.WUDetailsMeta.Response> {\n return this.WUDetailsMeta(request);\n }\n\n fetchDetailsRaw(request: Partial<WsWorkunits.WUDetails.Request> = {}): Promise<WsWorkunits.WUDetails.Scope[]> {\n return this.WUDetails(request).then(response => response.Scopes.Scope);\n }\n\n fetchDetailsNormalized(request: Partial<WsWorkunits.WUDetails.Request> = {}): Promise<{ meta: WsWorkunits.WUDetailsMeta.Response, columns: { [id: string]: any }, data: object[] }> {\n return Promise.all([this.fetchDetailsMeta(), this.fetchDetailsRaw(request)]).then(promises => {\n const meta = promises[0];\n const scopes = promises[1];\n const columns: { [id: string]: any } = {\n id: {\n Measure: \"label\"\n },\n name: {\n Measure: \"label\"\n },\n type: {\n Measure: \"label\"\n }\n };\n const data: object[] = [];\n for (const scope of scopes) {\n const props = {};\n if (scope && scope.Id && scope.Properties && scope.Properties.Property) {\n for (const key in scope.Properties.Property) {\n const scopeProperty = scope.Properties.Property[key];\n if (scopeProperty.Measure === \"ns\") {\n scopeProperty.Measure = \"s\";\n }\n columns[scopeProperty.Name] = { ...scopeProperty };\n delete columns[scopeProperty.Name].RawValue;\n delete columns[scopeProperty.Name].Formatted;\n switch (scopeProperty.Measure) {\n case \"bool\":\n props[scopeProperty.Name] = !!+scopeProperty.RawValue;\n break;\n case \"sz\":\n props[scopeProperty.Name] = +scopeProperty.RawValue;\n break;\n case \"s\":\n props[scopeProperty.Name] = +scopeProperty.RawValue / 1000000000;\n break;\n case \"ns\":\n props[scopeProperty.Name] = +scopeProperty.RawValue;\n break;\n case \"ts\":\n props[scopeProperty.Name] = new Date(+scopeProperty.RawValue / 1000).toISOString();\n break;\n case \"cnt\":\n props[scopeProperty.Name] = +scopeProperty.RawValue;\n break;\n case \"cpu\":\n case \"skw\":\n case \"node\":\n case \"ppm\":\n case \"ip\":\n case \"cy\":\n case \"en\":\n case \"txt\":\n case \"id\":\n case \"fname\":\n default:\n props[scopeProperty.Name] = scopeProperty.RawValue;\n }\n }\n data.push({\n id: scope.Id,\n name: scope.ScopeName,\n type: scope.ScopeType,\n ...props\n });\n }\n }\n return {\n meta,\n columns,\n data\n };\n });\n }\n\n fetchDetails(request: Partial<WsWorkunits.WUDetails.Request> = {}): Promise<Scope[]> {\n return this.WUDetails(request).then((response) => {\n return response.Scopes.Scope.map((rawScope) => {\n return new Scope(this, rawScope);\n });\n });\n }\n\n fetchDetailsHierarchy(request: Partial<WsWorkunits.WUDetails.Request> = {}): Promise<Scope[]> {\n return this.WUDetails(request).then((response) => {\n const retVal: Scope[] = [];\n\n // Recreate Scope Hierarchy and dedup ---\n const scopeMap: { [key: string]: Scope } = {};\n response.Scopes.Scope.forEach((rawScope) => {\n if (scopeMap[rawScope.ScopeName]) {\n scopeMap[rawScope.ScopeName].update(rawScope);\n return null;\n } else {\n const scope = new Scope(this, rawScope);\n scopeMap[scope.ScopeName] = scope;\n return scope;\n }\n });\n for (const key in scopeMap) {\n if (scopeMap.hasOwnProperty(key)) {\n const scope = scopeMap[key];\n const parentScopeID = scope.parentScope();\n if (parentScopeID && scopeMap[parentScopeID]) {\n scopeMap[parentScopeID].children().push(scope);\n } else {\n retVal.push(scope);\n }\n }\n }\n\n return retVal;\n });\n }\n\n fetchGraphDetails(graphIDs: string[] = [], rootTypes: string[]): Promise<BaseScope[]> {\n return this.fetchDetails({\n ScopeFilter: {\n MaxDepth: 999999,\n Ids: graphIDs,\n ScopeTypes: rootTypes\n },\n NestedFilter: {\n Depth: 999999,\n ScopeTypes: [\"graph\", \"subgraph\", \"activity\", \"edge\"]\n },\n PropertiesToReturn: {\n AllStatistics: true,\n AllAttributes: true,\n AllHints: true,\n AllProperties: true,\n AllScopes: true\n },\n ScopeOptions: {\n IncludeId: true,\n IncludeScope: true,\n IncludeScopeType: true\n },\n PropertyOptions: {\n IncludeName: true,\n IncludeRawValue: true,\n IncludeFormatted: true,\n IncludeMeasure: true,\n IncludeCreator: false,\n IncludeCreatorType: false\n }\n });\n }\n\n fetchScopeGraphs(graphIDs: string[] = []): Promise<ScopeGraph> {\n return this.fetchGraphDetails(graphIDs, [\"graph\"]).then((scopes) => {\n return createGraph(scopes);\n });\n }\n\n fetchTimeElapsed(): Promise<ITimeElapsed[]> {\n return this.fetchDetails({\n ScopeFilter: {\n PropertyFilters: {\n PropertyFilter: [{ Name: \"TimeElapsed\" }]\n }\n }\n }).then((scopes) => {\n const scopeInfo: { [key: string]: ITimeElapsed } = {};\n scopes.forEach((scope) => {\n scopeInfo[scope.ScopeName] = scopeInfo[scope.ScopeName] || {\n scope: scope.ScopeName,\n start: null,\n elapsed: null,\n finish: null\n };\n scope.CAttributes.forEach((attr) => {\n if (attr.Name === \"TimeElapsed\") {\n scopeInfo[scope.ScopeName].elapsed = +attr.RawValue;\n } else if (attr.Measure === \"ts\" && attr.Name.indexOf(\"Started\") >= 0) {\n scopeInfo[scope.ScopeName].start = attr.Formatted;\n }\n });\n });\n // Workaround duplicate scope responses\n const retVal: ITimeElapsed[] = [];\n for (const key in scopeInfo) {\n const scope = scopeInfo[key];\n if (scope.start && scope.elapsed) {\n const endTime = parser(scope.start);\n endTime!.setMilliseconds(endTime!.getMilliseconds() + scope.elapsed / 1000000);\n scope.finish = formatter(endTime!);\n retVal.push(scope);\n }\n }\n retVal.sort((l, r) => {\n if (l.start < r.start) return -1;\n if (l.start > r.start) return 1;\n return 0;\n });\n return retVal;\n });\n }\n\n // Monitoring ---\n protected _monitor(): void {\n if (this.isComplete()) {\n this._monitorTickCount = 0;\n return;\n }\n super._monitor();\n }\n\n protected _monitorTimeoutDuraction(): number {\n const retVal = super._monitorTimeoutDuraction();\n if (this._monitorTickCount <= 1) { // Once\n return 1000;\n } else if (this._monitorTickCount <= 3) { // Twice\n return 3000;\n } else if (this._monitorTickCount <= 5) { // Twice\n return 5000;\n } else if (this._monitorTickCount <= 7) { // Twice\n return 10000;\n }\n return retVal;\n }\n\n // Events ---\n on(eventID: WorkunitEvents, propIDorCallback: StateCallback | keyof UWorkunitState, callback?: StatePropCallback): this {\n if (this.isCallback(propIDorCallback)) {\n switch (eventID) {\n case \"completed\":\n super.on(\"propChanged\", \"StateID\", (changeInfo: IEvent) => {\n if (this.isComplete()) {\n propIDorCallback([changeInfo]);\n }\n });\n break;\n case \"changed\":\n super.on(eventID, propIDorCallback);\n break;\n default:\n }\n } else {\n switch (eventID) {\n case \"changed\":\n super.on(eventID, propIDorCallback, callback!);\n break;\n default:\n }\n }\n this._monitor();\n return this;\n }\n\n watchUntilComplete(callback?: StateCallback): Promise<this> {\n return new Promise((resolve, _) => {\n const watchHandle = this.watch((changes) => {\n if (callback) {\n callback(changes);\n }\n if (this.isComplete()) {\n watchHandle.release();\n resolve(this);\n }\n });\n });\n }\n\n watchUntilRunning(callback?: StateCallback): Promise<this> {\n return new Promise((resolve, _) => {\n const watchHandle = this.watch((changes) => {\n if (callback) {\n callback(changes);\n }\n if (this.isComplete() || this.isRunning()) {\n watchHandle.release();\n resolve(this);\n }\n });\n });\n }\n\n // WsWorkunits passthroughs ---\n protected WUQuery(_request: Partial<WsWorkunits.WUQuery.Request> = {}): Promise<WsWorkunits.WUQuery.Response> {\n return this.connection.WUQuery({ ..._request, Wuid: this.Wuid }).then((response) => {\n this.set(response.Workunits.ECLWorkunit[0]);\n return response;\n }).catch((e: ESPExceptions) => {\n // deleted ---\n const wuMissing = e.Exception.some((exception) => {\n if (exception.Code === 20081) {\n this.clearState(this.Wuid);\n this.set(\"StateID\", WUStateID.NotFound);\n return true;\n }\n return false;\n });\n if (!wuMissing) {\n logger.warning(\"Unexpected exception: \");\n throw e;\n }\n return {} as WsWorkunits.WUQuery.Response;\n });\n }\n\n protected WUCreate() {\n return this.connection.WUCreate().then((response) => {\n this.set(response.Workunit);\n _workunits.set(this);\n return response;\n });\n }\n\n protected WUInfo(_request: Partial<WsWorkunits.WUInfo.Request> = {}): Promise<WsWorkunits.WUInfo.Response> {\n const includeResults = _request.IncludeResults || _request.IncludeResultsViewNames;\n return this.connection.WUInfo({\n ..._request, Wuid: this.Wuid,\n IncludeResults: includeResults,\n IncludeResultsViewNames: includeResults,\n SuppressResultSchemas: false\n }).then((response) => {\n this.set(response.Workunit);\n if (includeResults) {\n this.set({\n ResultViews: response.ResultViews\n } as IWorkunitState);\n }\n return response;\n }).catch((e: ESPExceptions) => {\n // deleted ---\n const wuMissing = e.Exception.some((exception) => {\n if (exception.Code === 20080) {\n this.clearState(this.Wuid);\n this.set(\"StateID\", WUStateID.NotFound);\n return true;\n }\n return false;\n });\n if (!wuMissing) {\n logger.warning(\"Unexpected exception: \");\n throw e;\n }\n return {} as WsWorkunits.WUInfo.Response;\n });\n }\n\n protected WUResubmit(request: Partial<WsWorkunits.WUResubmit.Request>): Promise<WsWorkunits.WUResubmit.Response> {\n return this.connection.WUResubmit(deepMixinT<WsWorkunits.WUResubmit.Request>({}, request, {\n Wuids: [this.Wuid]\n }));\n }\n\n protected WUDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta.Request>): Promise<WsWorkunits.WUDetailsMeta.Response> {\n return this.connection.WUDetailsMeta(request);\n }\n\n protected WUDetails(request: Partial<WsWorkunits.WUDetails.Request>): Promise<WsWorkunits.WUDetails.Response> {\n return this.connection.WUDetails(deepMixinT<WsWorkunits.WUDetails.Request>({\n ScopeFilter: {\n MaxDepth: 9999\n },\n ScopeOptions: {\n IncludeMatchedScopesInResults: true,\n IncludeScope: true,\n IncludeId: false,\n IncludeScopeType: false\n },\n PropertyOptions: {\n IncludeName: true,\n IncludeRawValue: false,\n IncludeFormatted: true,\n IncludeMeasure: true,\n IncludeCreator: false,\n IncludeCreatorType: false\n }\n }, request, { WUID: this.Wuid })).then((response) => {\n return deepMixinT<WsWorkunits.WUDetails.Response>({\n Scopes: {\n Scope: []\n }\n }, response);\n });\n }\n\n protected WUAction(actionType: WsWorkunits.WUAction.Type): Promise<WsWorkunits.WUAction.Response> {\n return this.connection.WUAction({\n Wuids: [this.Wuid],\n WUActionType: actionType\n }).then((response) => {\n return this.refresh().then(() => {\n this._monitor();\n return response;\n });\n });\n }\n\n publish(name?: string) {\n return this.connection.WUPublishWorkunit({\n Wuid: this.Wuid,\n Cluster: this.Cluster,\n JobName: name || this.Jobname,\n AllowForeignFiles: true,\n Activate: true,\n Wait: 5000\n });\n }\n\n protected WUCDebug(command: string, opts: any = {}): Promise<XMLNode | null> {\n let optsStr = \"\";\n for (const key in opts) {\n if (opts.hasOwnProperty(key)) {\n optsStr += ` ${key}='${opts[key]}'`;\n }\n }\n return this.connection.WUCDebug({\n Wuid: this.Wuid,\n Command: `<debug:${command} uid='${this.Wuid}'${optsStr}/>`\n }).then((response) => {\n return response;\n });\n }\n\n debug(command: string, opts?: object): Promise<XMLNode> {\n if (!this.isDebugging()) {\n return Promise.resolve(new XMLNode(command));\n }\n return this.WUCDebug(command, opts).then((response: XMLNode) => {\n const retVal: XMLNode[] = response.children(command);\n if (retVal.length) {\n return retVal[0];\n }\n return new XMLNode(command);\n }).catch((_) => {\n logger.error(_);\n return Promise.resolve(new XMLNode(command));\n });\n }\n\n debugStatus(): Promise<XMLNode> {\n if (!this.isDebugging()) {\n return Promise.resolve<any>({\n DebugState: { state: \"unknown\" }\n });\n }\n return this.debug(\"status\").then((response) => {\n const debugState = { ...this.DebugState, ...response.$ };\n this.set({\n DebugState: debugState\n });\n return response;\n });\n }\n\n debugContinue(mode = \"\"): Promise<XMLNode> {\n return this.debug(\"continue\", {\n mode\n });\n }\n\n debugStep(mode: string): Promise<XMLNode> {\n return this.debug(\"step\", {\n mode\n });\n }\n\n debugPause(): Promise<XMLNode> {\n return this.debug(\"interrupt\");\n }\n\n debugQuit(): Promise<XMLNode> {\n return this.debug(\"quit\");\n }\n\n debugDeleteAllBreakpoints(): Promise<XMLNode> {\n return this.debug(\"delete\", {\n idx: 0\n });\n }\n\n protected debugBreakpointResponseParser(rootNode: StringAnyMap) {\n return rootNode.children().map((childNode: XMLNode) => {\n if (childNode.name === \"break\") {\n return childNode.$;\n }\n });\n }\n\n debugBreakpointAdd(id: string, mode: string, action: string): Promise<XMLNode> {\n return this.debug(\"breakpoint\", {\n id,\n mode,\n action\n }).then((rootNode) => {\n return this.debugBreakpointResponseParser(rootNode);\n });\n }\n\n debugBreakpointList(): Promise<any[]> {\n return this.debug(\"list\").then((rootNode) => {\n return this.debugBreakpointResponseParser(rootNode);\n });\n }\n\n debugGraph(): Promise<XGMMLGraph> {\n if (this._debugAllGraph && this.DebugState[\"_prevGraphSequenceNum\"] === this.DebugState[\"graphSequenceNum\"]) {\n return Promise.resolve(this._debugAllGraph);\n }\n return this.debug(\"graph\", { name: \"all\" }).then((response) => {\n this.DebugState[\"_prevGraphSequenceNum\"] = this.DebugState[\"graphSequenceNum\"];\n this._debugAllGraph = createXGMMLGraph(this.Wuid, response);\n return this._debugAllGraph;\n });\n }\n\n debugBreakpointValid(path: string): Promise<IECLDefintion[]> {\n return this.debugGraph().then((graph) => {\n return breakpointLocations(graph, path);\n });\n }\n\n debugPrint(edgeID: string, startRow: number = 0, numRows: number = 10): Promise<StringAnyMap[]> {\n return this.debug(\"print\", {\n edgeID,\n startRow,\n numRows\n }).then((response: XMLNode) => {\n return response.children().map((rowNode) => {\n const retVal: StringAnyMap = {};\n rowNode.children().forEach((cellNode) => {\n retVal[cellNode.name] = cellNode.content;\n });\n return retVal;\n });\n });\n }\n}\n\nexport interface IECLDefintion {\n id: string;\n file: string;\n line: number;\n column: number;\n}\n\nconst ATTR_DEFINITION = \"definition\";\n\nfunction hasECLDefinition(vertex: XGMMLVertex): boolean {\n return vertex._![ATTR_DEFINITION] !== undefined;\n}\n\nfunction getECLDefinition(vertex: XGMMLVertex): IECLDefintion {\n const match = /([a-z]:\\\\(?:[-\\w\\.\\d]+\\\\)*(?:[-\\w\\.\\d]+)?|(?:\\/[\\w\\.\\-]+)+)\\((\\d*),(\\d*)\\)/.exec(vertex._![ATTR_DEFINITION]);\n if (match) {\n const [, _file, _row, _col] = match;\n _file.replace(\"/./\", \"/\");\n return {\n id: vertex._![\"id\"],\n file: _file,\n line: +_row,\n column: +_col\n };\n }\n throw new Error(`Bad definition: ${vertex._![ATTR_DEFINITION]}`);\n}\n\nfunction breakpointLocations(graph: XGMMLGraph, path?: string): IECLDefintion[] {\n const retVal: IECLDefintion[] = [];\n for (const vertex of graph.vertices) {\n if (hasECLDefinition(vertex)) {\n const definition = getECLDefinition(vertex);\n if (definition && !path || path === definition.file) {\n retVal.push(definition);\n }\n }\n }\n return retVal.sort((l, r) => {\n return l.line - r.line;\n });\n}\n","import { debounce, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { SMCActivity, SMCService } from \"../services/wsSMC\";\nimport { Workunit } from \"./workunit\";\n\nlet _activity: Activity;\n\nexport interface ActivityEx {\n}\n\nexport type UActivityState = SMCActivity.Response & ActivityEx;\nexport type IActivityState = SMCActivity.Response | ActivityEx;\nexport class Activity extends StateObject<UActivityState, IActivityState> implements UActivityState {\n protected connection: SMCService;\n\n get properties(): UActivityState { return this.get(); }\n get Exceptions(): SMCActivity.Exceptions { return this.get(\"Exceptions\"); }\n get Build(): string { return this.get(\"Build\"); }\n get ThorClusterList(): SMCActivity.ThorClusterList { return this.get(\"ThorClusterList\"); }\n get RoxieClusterList(): SMCActivity.RoxieClusterList { return this.get(\"RoxieClusterList\"); }\n get HThorClusterList(): SMCActivity.HThorClusterList { return this.get(\"HThorClusterList\"); }\n get DFUJobs(): SMCActivity.DFUJobs { return this.get(\"DFUJobs\"); }\n get Running(): SMCActivity.Running { return this.get(\"Running\", { ActiveWorkunit: [] }); }\n get BannerContent(): string { return this.get(\"BannerContent\"); }\n get BannerColor(): string { return this.get(\"BannerColor\"); }\n get BannerSize(): string { return this.get(\"BannerSize\"); }\n get BannerScroll(): string { return this.get(\"BannerScroll\"); }\n get ChatURL(): string { return this.get(\"ChatURL\"); }\n get ShowBanner(): number { return this.get(\"ShowBanner\"); }\n get ShowChatURL(): number { return this.get(\"ShowChatURL\"); }\n get SortBy(): string { return this.get(\"SortBy\"); }\n get Descending(): boolean { return this.get(\"Descending\"); }\n get SuperUser(): boolean { return this.get(\"SuperUser\"); }\n get AccessRight(): string { return this.get(\"AccessRight\"); }\n get ServerJobQueues(): SMCActivity.ServerJobQueues { return this.get(\"ServerJobQueues\"); }\n\n static attach(optsConnection: IOptions | IConnection | SMCService, state?: IActivityState): Activity {\n if (!_activity) {\n _activity = new Activity(optsConnection);\n }\n if (state) {\n _activity.set({\n ...state\n });\n }\n return _activity;\n }\n\n protected constructor(optsConnection: IOptions | IConnection | SMCService) {\n super();\n if (optsConnection instanceof SMCService) {\n this.connection = optsConnection;\n } else {\n this.connection = new SMCService(optsConnection);\n }\n this.clear({\n });\n }\n\n runningWorkunits(clusterName: string = \"\"): Workunit[] {\n return this.Running.ActiveWorkunit.filter(awu => clusterName === \"\" || awu.ClusterName === clusterName).map(awu => Workunit.attach(this.connection.connectionOptions(), awu.Wuid, awu));\n }\n\n lazyRefresh = debounce(async (): Promise<this> => {\n const response = await this.connection.Activity({});\n this.set(response);\n return this;\n });\n\n async refresh(): Promise<this> {\n return this.lazyRefresh();\n }\n}\n","import { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { DFUService, WsDfu } from \"../services/wsDFU\";\n\nexport class LogicalFileCache extends Cache<{ BaseUrl: string, Cluster: string, Name: string }, LogicalFile> {\n constructor() {\n super((obj) => {\n return `${obj.BaseUrl}-${obj.Cluster}-${obj.Name}`;\n });\n }\n}\nconst _store = new LogicalFileCache();\n\nexport interface FileDetailEx extends WsDfu.FileDetail {\n Cluster: string;\n}\n\nexport class LogicalFile extends StateObject<FileDetailEx, FileDetailEx> implements FileDetailEx {\n protected connection: DFUService;\n get BaseUrl() { return this.connection.baseUrl; }\n\n get Cluster(): string { return this.get(\"Cluster\"); }\n get Name(): string { return this.get(\"Name\"); }\n\n get Filename(): string { return this.get(\"Filename\"); }\n get Prefix(): string { return this.get(\"Prefix\"); }\n get NodeGroup(): string { return this.get(\"NodeGroup\"); }\n get NumParts(): number { return this.get(\"NumParts\"); }\n get Description(): string { return this.get(\"Description\"); }\n get Dir(): string { return this.get(\"Dir\"); }\n get PathMask(): string { return this.get(\"PathMask\"); }\n get Filesize(): string { return this.get(\"Filesize\"); }\n get FileSizeInt64(): number { return this.get(\"FileSizeInt64\"); }\n get RecordSize(): string { return this.get(\"RecordSize\"); }\n get RecordCount(): string { return this.get(\"RecordCount\"); }\n get RecordSizeInt64(): number { return this.get(\"RecordSizeInt64\"); }\n get RecordCountInt64(): number { return this.get(\"RecordCountInt64\"); }\n get Wuid(): string { return this.get(\"Wuid\"); }\n get Owner(): string { return this.get(\"Owner\"); }\n get JobName(): string { return this.get(\"JobName\"); }\n get Persistent(): string { return this.get(\"Persistent\"); }\n get Format(): string { return this.get(\"Format\"); }\n get MaxRecordSize(): string { return this.get(\"MaxRecordSize\"); }\n get CsvSeparate(): string { return this.get(\"CsvSeparate\"); }\n get CsvQuote(): string { return this.get(\"CsvQuote\"); }\n get CsvTerminate(): string { return this.get(\"CsvTerminate\"); }\n get CsvEscape(): string { return this.get(\"CsvEscape\"); }\n get Modified(): string { return this.get(\"Modified\"); }\n get Ecl(): string { return this.get(\"Ecl\"); }\n get Stat(): WsDfu.Stat { return this.get(\"Stat\"); }\n get DFUFilePartsOnClusters(): WsDfu.DFUFilePartsOnClusters { return this.get(\"DFUFilePartsOnClusters\"); }\n get isSuperfile(): boolean { return this.get(\"isSuperfile\"); }\n get ShowFileContent(): boolean { return this.get(\"ShowFileContent\"); }\n get subfiles(): WsDfu.Subfiles { return this.get(\"subfiles\"); }\n get Superfiles(): WsDfu.Superfiles { return this.get(\"Superfiles\"); }\n get ProtectList(): WsDfu.ProtectList { return this.get(\"ProtectList\"); }\n get FromRoxieCluster(): boolean { return this.get(\"FromRoxieCluster\"); }\n get Graphs(): WsDfu.Graphs { return this.get(\"Graphs\"); }\n get UserPermission(): string { return this.get(\"UserPermission\"); }\n get ContentType(): string { return this.get(\"ContentType\"); }\n get CompressedFileSize(): number { return this.get(\"CompressedFileSize\"); }\n get PercentCompressed(): string { return this.get(\"PercentCompressed\"); }\n get IsCompressed(): boolean { return this.get(\"IsCompressed\"); }\n get BrowseData(): boolean { return this.get(\"BrowseData\"); }\n get jsonInfo(): string { return this.get(\"jsonInfo\"); }\n get binInfo(): string { return this.get(\"binInfo\"); }\n get PackageID(): string { return this.get(\"PackageID\"); }\n get Partition(): WsDfu.Partition { return this.get(\"Partition\"); }\n get Blooms(): WsDfu.Blooms { return this.get(\"Blooms\"); }\n get ExpireDays(): number { return this.get(\"ExpireDays\"); }\n get KeyType(): string { return this.get(\"KeyType\"); }\n\n get properties(): FileDetailEx { return this.get(); }\n\n static attach(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string): LogicalFile {\n const retVal: LogicalFile = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster, Name }, () => {\n return new LogicalFile(optsConnection, Cluster, Name);\n });\n return retVal;\n }\n\n protected constructor(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string) {\n super();\n if (optsConnection instanceof DFUService) {\n this.connection = optsConnection;\n } else {\n this.connection = new DFUService(optsConnection);\n }\n\n this.clear({\n Cluster,\n Name\n });\n }\n\n fetchInfo(): Promise<WsDfu.FileDetail> {\n return this.connection.DFUInfo({ Cluster: this.Cluster, Name: this.Name }).then(response => {\n this.set({\n Cluster: this.Cluster,\n ...response.FileDetail\n });\n return response.FileDetail;\n });\n }\n}\n","import { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { GetTargetClusterInfo, MachineService } from \"../services/wsMachine\";\n\nexport class MachineCache extends Cache<{ Address: string }, Machine> {\n constructor() {\n super((obj) => {\n return obj.Address;\n });\n }\n}\nconst _machines = new MachineCache();\n\nexport interface MachineInfoEx extends GetTargetClusterInfo.MachineInfoEx {\n}\n\nexport class Machine extends StateObject<MachineInfoEx, MachineInfoEx> implements MachineInfoEx {\n protected connection: MachineService;\n\n get Address(): string { return this.get(\"Address\"); }\n get ConfigAddress(): string { return this.get(\"ConfigAddress\"); }\n get Name(): string { return this.get(\"Name\"); }\n get ProcessType(): string { return this.get(\"ProcessType\"); }\n get DisplayType(): string { return this.get(\"DisplayType\"); }\n get Description(): string { return this.get(\"Description\"); }\n get AgentVersion(): string { return this.get(\"AgentVersion\"); }\n get Contact(): string { return this.get(\"Contact\"); }\n get Location(): string { return this.get(\"Location\"); }\n get UpTime(): string { return this.get(\"UpTime\"); }\n get ComponentName(): string { return this.get(\"ComponentName\"); }\n get ComponentPath(): string { return this.get(\"ComponentPath\"); }\n get RoxieState(): string { return this.get(\"RoxieState\"); }\n get RoxieStateDetails(): string { return this.get(\"RoxieStateDetails\"); }\n get OS(): number { return this.get(\"OS\"); }\n get ProcessNumber(): number { return this.get(\"ProcessNumber\"); }\n get Processors(): GetTargetClusterInfo.Processors { return this.get(\"Processors\"); }\n get Storage(): GetTargetClusterInfo.Storage { return this.get(\"Storage\"); }\n get Running(): GetTargetClusterInfo.Running { return this.get(\"Running\"); }\n get PhysicalMemory(): GetTargetClusterInfo.PhysicalMemory { return this.get(\"PhysicalMemory\"); }\n get VirtualMemory(): GetTargetClusterInfo.VirtualMemory { return this.get(\"VirtualMemory\"); }\n get ComponentInfo(): GetTargetClusterInfo.ComponentInfo { return this.get(\"ComponentInfo\"); }\n\n static attach(optsConnection: IOptions | IConnection | MachineService, address: string, state?: GetTargetClusterInfo.MachineInfoEx): Machine {\n const retVal: Machine = _machines.get({ Address: address }, () => {\n return new Machine(optsConnection);\n });\n if (state) {\n retVal.set(state);\n }\n return retVal;\n }\n\n private constructor(optsConnection: IOptions | IConnection | MachineService) {\n super();\n if (optsConnection instanceof MachineService) {\n this.connection = optsConnection;\n } else {\n this.connection = new MachineService(optsConnection);\n }\n }\n}\n","import { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { EclService, IWsEclRequest, IWsEclResponse, IWsEclResult } from \"../services/wsEcl\";\nimport { WorkunitsService, WUQueryDetails } from \"../services/wsWorkunits\";\n\nexport interface QueryEx extends WUQueryDetails.Response {\n BaseUrl: string;\n}\n\nclass QueryCache extends Cache<QueryEx, Query> {\n constructor() {\n super((obj) => {\n return Cache.hash([obj.QueryId, obj.QuerySet]);\n });\n }\n}\nconst _queries = new QueryCache();\n\nexport class Query extends StateObject<QueryEx, QueryEx> implements QueryEx {\n protected connection: EclService;\n get BaseUrl() { return this.connection.baseUrl; }\n // protected _topology: Topology;\n protected _wsWorkunits: WorkunitsService;\n // protected _wu: Workunit;\n protected _requestSchema: IWsEclRequest;\n protected _responseSchema: IWsEclResponse;\n\n get properties(): WUQueryDetails.Response { return this.get(); }\n get Exceptions(): WUQueryDetails.Exceptions { return this.get(\"Exceptions\"); }\n get QueryId(): string { return this.get(\"QueryId\"); }\n get QuerySet(): string { return this.get(\"QuerySet\"); }\n get QueryName(): string { return this.get(\"QueryName\"); }\n get Wuid(): string { return this.get(\"Wuid\"); }\n get Dll(): string { return this.get(\"Dll\"); }\n get Suspended(): boolean { return this.get(\"Suspended\"); }\n get Activated(): boolean { return this.get(\"Activated\"); }\n get SuspendedBy(): string { return this.get(\"SuspendedBy\"); }\n get Clusters(): WUQueryDetails.Clusters { return this.get(\"Clusters\"); }\n get PublishedBy(): string { return this.get(\"PublishedBy\"); }\n get Comment() { return this.get(\"Comment\"); }\n get LogicalFiles(): WUQueryDetails.LogicalFiles { return this.get(\"LogicalFiles\"); }\n get SuperFiles(): WUQueryDetails.SuperFiles { return this.get(\"SuperFiles\"); }\n get IsLibrary(): boolean { return this.get(\"IsLibrary\"); }\n get Priority(): string { return this.get(\"Priority\"); }\n get WUSnapShot(): string { return this.get(\"WUSnapShot\"); }\n get CompileTime(): string { return this.get(\"CompileTime\"); }\n get LibrariesUsed(): WUQueryDetails.LibrariesUsed { return this.get(\"LibrariesUsed\"); }\n get CountGraphs(): number { return this.get(\"CountGraphs\"); }\n get ResourceURLCount(): number { return this.get(\"ResourceURLCount\"); }\n get WsEclAddresses(): WUQueryDetails.WsEclAddresses { return this.get(\"WsEclAddresses\"); }\n get WUGraphs(): WUQueryDetails.WUGraphs { return this.get(\"WUGraphs\"); }\n get WUTimers(): WUQueryDetails.WUTimers { return this.get(\"WUTimers\"); }\n\n private constructor(optsConnection: IOptions | IConnection | EclService, querySet: string, queryID: string, queryDetails?: WUQueryDetails.Response) {\n super();\n if (optsConnection instanceof EclService) {\n this.connection = optsConnection;\n // this._topology = new Topology(this.connection.opts());\n } else {\n this.connection = new EclService(optsConnection);\n // this._topology = new Topology(optsConnection);\n }\n this.set({\n QuerySet: querySet,\n QueryId: queryID,\n ...queryDetails\n } as QueryEx);\n }\n\n static attach(optsConnection: IOptions | IConnection, querySet: string, queryId: string): Query {\n const retVal: Query = _queries.get({ BaseUrl: optsConnection.baseUrl, QuerySet: querySet, QueryId: queryId } as QueryEx, () => {\n return new Query(optsConnection, querySet, queryId);\n });\n return retVal;\n }\n\n private async fetchRequestSchema(): Promise<void> {\n this._requestSchema = await this.connection.requestJson(this.QuerySet, this.QueryId);\n }\n\n private async fetchResponseSchema(): Promise<void> {\n this._responseSchema = await this.connection.responseJson(this.QuerySet, this.QueryId);\n }\n\n private async fetchSchema(): Promise<void> {\n await Promise.all([this.fetchRequestSchema(), this.fetchResponseSchema()]);\n }\n\n submit(request: object): Promise<Array<{ [key: string]: object[] }>> {\n return this.connection.submit(this.QuerySet, this.QueryId, request).then(results => {\n for (const key in results) {\n results[key] = results[key].Row;\n }\n return results;\n });\n }\n\n async refresh(): Promise<this> {\n return this.fetchSchema().then(schema => this);\n }\n\n requestFields(): IWsEclRequest {\n if (!this._requestSchema) return [];\n return this._requestSchema;\n }\n\n responseFields(): IWsEclResponse {\n if (!this._responseSchema) return {};\n return this._responseSchema;\n }\n\n resultNames(): string[] {\n const retVal: string[] = [];\n for (const key in this.responseFields()) {\n retVal.push(key);\n }\n return retVal;\n }\n\n resultFields(resultName: string): IWsEclResult {\n if (!this._responseSchema[resultName]) return [];\n return this._responseSchema[resultName];\n }\n\n /*\n protected WUQueryDetails(): Promise<WUQueryDetails.Response> {\n const request: WUQueryDetails.Request = {} as WUQueryDetails.Request;\n request.QueryId = this.QueryId;\n request.QuerySet = this.QuerySet;\n request.IncludeSuperFiles = true;\n request.IncludeStateOnClusters = true;\n return this.connection.WUQueryDetails(request).then((response) => {\n this.set(response);\n return response;\n });\n }\n */\n}\n","import { Cache, Dispatch, IObserverHandle, Message } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { StoreService } from \"../services/wsStore\";\n\nexport class StoreCache extends Cache<{ BaseUrl: string, Name: string, UserSpecific: boolean, Namespace: string }, Store> {\n constructor() {\n super((obj) => {\n return `${obj.BaseUrl}-${obj.Name}:${obj.UserSpecific}-${obj.Namespace}`;\n });\n }\n}\nconst _store = new StoreCache();\n\nexport class ValueChangedMessage extends Message {\n\n constructor(readonly key: string, public value: any, public oldValue?: any) {\n super();\n }\n\n get canConflate(): boolean { return true; }\n conflate(other: ValueChangedMessage): boolean {\n if (this.key === other.key) {\n this.value = other.value;\n return true;\n }\n return false;\n }\n\n void(): boolean {\n return this.value === this.oldValue;\n }\n}\n\nexport class Store {\n protected connection: StoreService;\n get BaseUrl() { return this.connection.baseUrl; }\n readonly Name: string;\n readonly UserSpecific: boolean;\n readonly Namespace: string;\n\n protected _dispatch = new Dispatch();\n\n static attach(optsConnection: IOptions | IConnection | StoreService, Name: string = \"HPCCApps\", Namespace: string, UserSpecific: boolean = true): Store {\n const retVal: Store = _store.get({ BaseUrl: optsConnection.baseUrl, Name, UserSpecific, Namespace }, () => {\n return new Store(optsConnection, Name, Namespace, UserSpecific);\n });\n return retVal;\n }\n\n protected constructor(optsConnection: IOptions | IConnection | StoreService, Name: string, Namespace: string, UserSpecific: boolean) {\n if (optsConnection instanceof StoreService) {\n this.connection = optsConnection;\n } else {\n this.connection = new StoreService(optsConnection);\n }\n this.Name = Name;\n this.UserSpecific = UserSpecific;\n this.Namespace = Namespace;\n }\n\n private _knownValues: { [key: string]: any } = {};\n\n protected create() {\n this.connection.CreateStore({ Name: this.Name, UserSpecific: this.UserSpecific, Type: \"\", Description: \"\" });\n }\n\n set(key: string, value: string, broadcast = true): Promise<void> {\n return this.connection.Set({\n StoreName: this.Name,\n UserSpecific: this.UserSpecific,\n Namespace: this.Namespace,\n Key: key,\n Value: value\n }).then(response => {\n const oldValue = this._knownValues[key];\n this._knownValues[key] = value;\n if (broadcast) {\n this._dispatch.post(new ValueChangedMessage(key, value, oldValue));\n }\n }).catch(e => {\n console.error(`Store.set(\"${key}\", \"${value}\") failed:`, e);\n });\n }\n\n get(key: string, broadcast = true): Promise<string | undefined> {\n return this.connection.Fetch({\n StoreName: this.Name,\n UserSpecific: this.UserSpecific,\n Namespace: this.Namespace,\n Key: key\n }).then(response => {\n const oldValue = this._knownValues[key];\n this._knownValues[key] = response.Value;\n if (broadcast) {\n this._dispatch.post(new ValueChangedMessage(key, response.Value, oldValue));\n }\n return response.Value;\n }).catch(e => {\n console.error(`Store.get(${key}) failed:`, e);\n return undefined;\n });\n }\n\n getAll(broadcast = true): Promise<{ [key: string]: string }> {\n return this.connection.FetchAll({\n StoreName: this.Name,\n UserSpecific: this.UserSpecific,\n Namespace: this.Namespace\n }).then(response => {\n const retVal: { [key: string]: string } = {};\n const deletedValues = this._knownValues;\n this._knownValues = {};\n response.Pairs.Pair.forEach(pair => {\n const oldValue = this._knownValues[pair.Key];\n this._knownValues[pair.Key] = pair.Value;\n delete deletedValues[pair.Key];\n retVal[pair.Key] = pair.Value;\n if (broadcast) {\n this._dispatch.post(new ValueChangedMessage(pair.Key, pair.Value, oldValue));\n }\n });\n if (broadcast) {\n for (const key in deletedValues) {\n this._dispatch.post(new ValueChangedMessage(key, undefined, deletedValues[key]));\n }\n }\n return retVal;\n }).catch(e => {\n console.error(\"Store.getAll failed:\", e);\n return {};\n });\n }\n\n delete(key: string, broadcast = true): Promise<void> {\n return this.connection.Delete({\n StoreName: this.Name,\n UserSpecific: this.UserSpecific,\n Namespace: this.Namespace,\n Key: key\n }).then(response => {\n const oldValue = this._knownValues[key];\n delete this._knownValues[key];\n if (broadcast) {\n this._dispatch.post(new ValueChangedMessage(key, undefined, oldValue));\n }\n }).catch(e => {\n console.error(`Store.delete(${key}) failed:`, e);\n });\n }\n\n monitor(callback: (messages: ValueChangedMessage[]) => void): IObserverHandle {\n return this._dispatch.attach(callback);\n }\n}\n","import { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { GetTargetClusterInfo, GetTargetClusterUsageEx, MachineService } from \"../services/wsMachine\";\nimport { TopologyService, TpListTargetClusters, TpTargetClusterQuery } from \"../services/wsTopology\";\nimport { Machine } from \"./machine\";\n\nexport class TargetClusterCache extends Cache<{ BaseUrl: string, Name: string }, TargetCluster> {\n constructor() {\n super((obj) => {\n return `${obj.BaseUrl}-${obj.Name}`;\n });\n }\n}\nconst _targetCluster = new TargetClusterCache();\n\nexport interface TpTargetClusterEx {\n MachineInfoEx: GetTargetClusterInfo.MachineInfoEx[];\n}\n\nexport type UTargetClusterState = TpTargetClusterQuery.TpTargetCluster & TpListTargetClusters.TpClusterNameType & TpTargetClusterEx;\nexport type ITargetClusterState = TpTargetClusterQuery.TpTargetCluster | TpListTargetClusters.TpClusterNameType | TpTargetClusterEx;\nexport class TargetCluster extends StateObject<UTargetClusterState, ITargetClusterState> implements UTargetClusterState {\n protected connection: TopologyService;\n protected machineConnection: MachineService;\n get BaseUrl() { return this.connection.baseUrl; }\n\n get Name(): string { return this.get(\"Name\"); }\n get Prefix(): string { return this.get(\"Prefix\"); }\n get Type(): string { return this.get(\"Type\"); }\n get IsDefault(): boolean { return this.get(\"IsDefault\"); }\n get TpClusters(): TpTargetClusterQuery.TpClusters { return this.get(\"TpClusters\"); }\n get TpEclCCServers(): TpTargetClusterQuery.TpEclCCServers { return this.get(\"TpEclCCServers\"); }\n get TpEclServers(): TpTargetClusterQuery.TpEclServers { return this.get(\"TpEclServers\"); }\n get TpEclAgents(): TpTargetClusterQuery.TpEclAgents { return this.get(\"TpEclAgents\"); }\n get TpEclSchedulers(): TpTargetClusterQuery.TpEclSchedulers { return this.get(\"TpEclSchedulers\"); }\n get MachineInfoEx(): GetTargetClusterInfo.MachineInfoEx[] { return this.get(\"MachineInfoEx\", []); }\n get CMachineInfoEx(): Machine[] {\n return this.MachineInfoEx.map(machineInfoEx => Machine.attach(this.machineConnection, machineInfoEx.Address, machineInfoEx));\n }\n\n static attach(optsConnection: IOptions | IConnection | TopologyService, name: string, state?: ITargetClusterState): TargetCluster {\n const retVal: TargetCluster = _targetCluster.get({ BaseUrl: optsConnection.baseUrl, Name: name }, () => {\n return new TargetCluster(optsConnection, name);\n });\n if (state) {\n retVal.set({\n ...state\n });\n }\n return retVal;\n }\n\n protected constructor(optsConnection: IOptions | IConnection | TopologyService, name: string) {\n super();\n if (optsConnection instanceof TopologyService) {\n this.connection = optsConnection;\n this.machineConnection = new MachineService(optsConnection.connectionOptions());\n } else {\n this.connection = new TopologyService(optsConnection);\n this.machineConnection = new MachineService(optsConnection);\n }\n this.clear({\n Name: name\n });\n }\n\n fetchMachines(request: GetTargetClusterInfo.Request = {}): Promise<Machine[]> {\n return this.machineConnection.GetTargetClusterInfo({\n TargetClusters: {\n Item: [`${this.Type}:${this.Name}`]\n },\n ...request\n }).then(response => {\n const retVal: GetTargetClusterInfo.MachineInfoEx[] = [];\n for (const machineInfo of response.TargetClusterInfoList.TargetClusterInfo) {\n for (const machineInfoEx of machineInfo.Processes.MachineInfoEx) {\n retVal.push(machineInfoEx);\n }\n }\n this.set(\"MachineInfoEx\", retVal);\n return this.CMachineInfoEx;\n });\n }\n\n machineStats(): { maxDisk: number; meanDisk: number } {\n let maxDisk = 0;\n let totalFree = 0;\n let total = 0;\n for (const machine of this.CMachineInfoEx) {\n for (const storageInfo of machine.Storage.StorageInfo) {\n totalFree += storageInfo.Available;\n total += storageInfo.Total;\n const usage = 1 - storageInfo.Available / storageInfo.Total;\n if (usage > maxDisk) {\n maxDisk = usage;\n }\n }\n }\n return {\n maxDisk,\n meanDisk: 1 - (total ? totalFree / total : 1)\n };\n }\n\n fetchUsage(): Promise<GetTargetClusterUsageEx.TargetClusterUsage[]> {\n return this.machineConnection.GetTargetClusterUsageEx([this.Name]);\n }\n}\n\nexport function targetClusters(optsConnection: IOptions | IConnection | TopologyService): Promise<TargetCluster[]> {\n let connection: TopologyService;\n if (optsConnection instanceof TopologyService) {\n connection = optsConnection;\n } else {\n connection = new TopologyService(optsConnection);\n }\n return connection.TpListTargetClusters({}).then(response => {\n return response.TargetClusters.TpClusterNameType.map(item => TargetCluster.attach(optsConnection, item.Name, item));\n });\n}\n\nconst _defaultTargetCluster: { [baseUrl: string]: Promise<TargetCluster> } = {};\nexport function defaultTargetCluster(optsConnection: IOptions | IConnection | TopologyService): Promise<TargetCluster> {\n if (!_defaultTargetCluster[optsConnection.baseUrl]) {\n let connection: TopologyService;\n if (optsConnection instanceof TopologyService) {\n connection = optsConnection;\n } else {\n connection = new TopologyService(optsConnection);\n }\n _defaultTargetCluster[optsConnection.baseUrl] = connection.TpListTargetClusters({}).then(response => {\n let firstItem: TpListTargetClusters.TpClusterNameType;\n let defaultItem: TpListTargetClusters.TpClusterNameType;\n let hthorItem: TpListTargetClusters.TpClusterNameType;\n response.TargetClusters.TpClusterNameType.forEach(item => {\n if (!firstItem) {\n firstItem = item;\n }\n if (!defaultItem && item.IsDefault === true) {\n defaultItem = item;\n }\n if (!hthorItem && item.Type === \"hthor\") {\n hthorItem = item;\n }\n });\n const defItem = defaultItem || hthorItem || firstItem;\n return TargetCluster.attach(optsConnection, defItem.Name, defItem);\n });\n }\n return _defaultTargetCluster[optsConnection.baseUrl];\n}\n","import { exists, StateCallback, StateEvents, StateObject, StatePropCallback } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection\";\nimport { TopologyService, TpTargetClusterQuery } from \"../services/wsTopology\";\nimport { TargetCluster } from \"./targetCluster\";\n\nexport interface TopologyStateEx {\n TargetClusters: TpTargetClusterQuery.TpTargetCluster[];\n}\nexport class Topology extends StateObject<TopologyStateEx, TopologyStateEx> implements TopologyStateEx {\n protected connection: TopologyService;\n\n // Accessors ---\n get properties(): TopologyStateEx { return this.get(); }\n get TargetClusters(): TpTargetClusterQuery.TpTargetCluster[] { return this.get(\"TargetClusters\"); }\n get CTargetClusters(): TargetCluster[] {\n return this.TargetClusters.map(tc => TargetCluster.attach(this.connection, tc.Name, tc));\n }\n\n constructor(optsConnection: IOptions | IConnection | TopologyService) {\n super();\n if (optsConnection instanceof TopologyService) {\n this.connection = optsConnection;\n } else {\n this.connection = new TopologyService(optsConnection);\n }\n }\n\n GetESPServiceBaseURL(type: string = \"\"): Promise<string> {\n return this.connection.TpServiceQuery({}).then(response => {\n const rootProtocol = this.connection.protocol();\n const ip = this.connection.ip();\n let port = rootProtocol === \"https:\" ? \"18002\" : \"8002\";\n if (exists(\"ServiceList.TpEspServers.TpEspServer\", response)) {\n for (const item of response.ServiceList.TpEspServers.TpEspServer) {\n if (exists(\"TpBindings.TpBinding\", item)) {\n for (const binding of item.TpBindings.TpBinding) {\n if (binding.Service === type && binding.Protocol + \":\" === rootProtocol) {\n port = binding.Port;\n }\n }\n }\n }\n }\n return `${rootProtocol}//${ip}:${port}/`;\n });\n }\n\n fetchTargetClusters(): Promise<TargetCluster[]> {\n return this.connection.TpTargetClusterQuery({ Type: \"ROOT\" }).then(response => {\n this.set({\n TargetClusters: response.TpTargetClusters.TpTargetCluster\n });\n return this.CTargetClusters;\n });\n }\n\n async refresh(): Promise<this> {\n await this.fetchTargetClusters();\n return this;\n }\n\n // Monitoring ---\n\n // Events ---\n on(eventID: StateEvents, propIDorCallback: StateCallback | keyof TopologyStateEx, callback?: StatePropCallback): this {\n if (this.isCallback(propIDorCallback)) {\n switch (eventID) {\n case \"changed\":\n super.on(eventID, propIDorCallback);\n break;\n default:\n }\n } else {\n switch (eventID) {\n case \"changed\":\n super.on(eventID, propIDorCallback, callback!);\n break;\n default:\n }\n }\n this._monitor();\n return this;\n }\n}\n","import * as fs from \"fs\";\nimport * as path from \"path\";\n\nimport { Dictionary, DictionaryNoCase, find, SAXStackParser, scopedLogger, XMLNode } from \"@hpcc-js/util\";\nimport { ClientTools, locateClientTools } from \"./eclcc\";\n\nconst logger = scopedLogger(\"clienttools/eclmeta\");\n\nexport interface IFilePath {\n scope: ECLScope;\n}\n\nconst _inspect = false;\nfunction inspect(obj: any, _id: string, known: any) {\n if (_inspect) {\n for (const key in obj) {\n const id = `${_id}.${key}`;\n if (key !== \"$\" && known[key] === undefined && known[key.toLowerCase() + \"s\"] === undefined) {\n logger.debug(id);\n }\n }\n if (obj.$) {\n inspect(obj.$, _id + \".$\", known);\n }\n }\n}\n\nexport class Attr {\n __attrs: { [id: string]: string };\n name: string;\n\n constructor(xmlAttr: XMLNode) {\n this.__attrs = xmlAttr.$;\n this.name = xmlAttr.$.name;\n }\n}\n\nexport class Field {\n __attrs: { [id: string]: string };\n definition: Definition;\n get scope(): ECLScope {\n return this.definition;\n }\n name: string;\n type: string;\n\n constructor(definition: Definition, xmlField: XMLNode) {\n this.__attrs = xmlField.$;\n this.definition = definition;\n this.name = xmlField.$.name;\n this.type = xmlField.$.type;\n }\n}\n\nexport interface ECLDefinitionLocation {\n filePath: string;\n line: number;\n charPos: number;\n definition?: Definition;\n source?: Source;\n}\n\nexport interface ISuggestion {\n name: string;\n type: string;\n}\n\nexport class ECLScope implements IFilePath {\n get scope(): ECLScope {\n return this;\n }\n name: string;\n type: string;\n sourcePath: string;\n line: number;\n start: number;\n body: number;\n end: number;\n definitions: Definition[];\n\n constructor(name: string, type: string, sourcePath: string, xmlDefinitions: XMLNode[], line: number = 1, start: number = 0, body: number = 0, end: number = Number.MAX_VALUE) {\n this.name = name;\n this.type = type;\n this.sourcePath = path.normalize(sourcePath);\n this.line = +line - 1;\n this.start = +start;\n this.body = +body;\n this.end = +end;\n this.definitions = this.parseDefinitions(xmlDefinitions);\n }\n\n private parseDefinitions(definitions: XMLNode[] = []): Definition[] {\n return definitions.map(definition => {\n const retVal = new Definition(this.sourcePath, definition);\n inspect(definition, \"definition\", retVal);\n return retVal;\n });\n }\n\n contains(charOffset: number) {\n return charOffset >= this.start && charOffset <= this.end;\n }\n\n scopeStackAt(charOffset: number): ECLScope[] {\n let retVal: ECLScope[] = [];\n if (this.contains(charOffset)) {\n retVal.push(this);\n this.definitions.forEach(def => {\n retVal = def.scopeStackAt(charOffset).concat(retVal);\n });\n }\n return retVal;\n }\n\n private _resolve(defs: Definition[] = [], qualifiedID: string): Definition | undefined {\n const qualifiedIDParts = qualifiedID.split(\".\");\n const base = qualifiedIDParts.shift();\n const retVal = find(defs, def => {\n if (typeof def.name === \"string\" && typeof base === \"string\" && def.name.toLowerCase() === base.toLowerCase()) {\n return true;\n }\n return false;\n });\n if (retVal && retVal.definitions.length && qualifiedIDParts.length) {\n return this._resolve(retVal.definitions, qualifiedIDParts.join(\".\"));\n }\n return retVal;\n }\n\n resolve(qualifiedID: string): Definition | undefined {\n return this._resolve(this.definitions, qualifiedID);\n }\n\n suggestions(): ISuggestion[] {\n return this.definitions.map(def => {\n return {\n name: def.name,\n type: this.type\n };\n });\n }\n}\n\nexport class Definition extends ECLScope {\n __attrs: { [id: string]: string };\n exported: boolean;\n shared: boolean;\n fullname: string;\n inherittype: string;\n attrs: Attr[];\n fields: Field[];\n\n constructor(sourcePath: string, xmlDefinition: XMLNode) {\n super(xmlDefinition.$.name, xmlDefinition.$.type, sourcePath, xmlDefinition.children(\"Definition\"), xmlDefinition.$.line, xmlDefinition.$.start, xmlDefinition.$.body, xmlDefinition.$.end);\n this.__attrs = xmlDefinition.$;\n this.exported = !!xmlDefinition.$.exported;\n this.shared = !!xmlDefinition.$.shared;\n this.fullname = xmlDefinition.$.fullname;\n this.inherittype = xmlDefinition.$.inherittype;\n this.attrs = this.parseAttrs(xmlDefinition.children(\"Attr\"));\n this.fields = this.parseFields(xmlDefinition.children(\"Field\"));\n }\n\n private parseAttrs(attrs: XMLNode[] = []): Attr[] {\n return attrs.map(attr => {\n const retVal = new Attr(attr);\n inspect(attr, \"attr\", retVal);\n return retVal;\n });\n }\n\n private parseFields(fields: XMLNode[] = []): Field[] {\n return fields.map(field => {\n const retVal = new Field(this, field);\n inspect(field, \"field\", retVal);\n return retVal;\n });\n }\n\n suggestions() {\n return super.suggestions().concat(this.fields.map(field => {\n return {\n name: field.name,\n type: field.type\n };\n }));\n }\n}\n\nexport class Import {\n __attrs: { [id: string]: string };\n name: string;\n ref: string;\n start: number;\n end: number;\n line: number;\n\n constructor(xmlImport: XMLNode) {\n this.__attrs = xmlImport.$;\n this.name = xmlImport.$.name;\n this.ref = xmlImport.$.ref;\n this.start = xmlImport.$.start;\n this.end = xmlImport.$.end;\n this.line = xmlImport.$.line;\n }\n}\n\nexport class Source extends ECLScope {\n imports: Import[];\n __attrs: { [id: string]: string };\n\n constructor(xmlSource: XMLNode) {\n super(xmlSource.$.name, \"source\", xmlSource.$.sourcePath, xmlSource.children(\"Definition\"));\n this.__attrs = xmlSource.$;\n const nameParts = xmlSource.$.name.split(\".\");\n nameParts.pop();\n const fakeNode = new XMLNode(\"\");\n fakeNode.appendAttribute(\"name\", \"$\");\n fakeNode.appendAttribute(\"ref\", nameParts.join(\".\"));\n this.imports = [\n new Import(fakeNode),\n ...this.parseImports(xmlSource.children(\"Import\"))\n ];\n }\n\n private parseImports(imports: XMLNode[] = []): Import[] {\n return imports.map(imp => {\n const retVal = new Import(imp);\n inspect(imp, \"import\", retVal);\n return retVal;\n });\n }\n\n resolve(qualifiedID: string, charOffset?: number): Definition | undefined {\n let retVal;\n\n // Check Inner Scopes ---\n if (!retVal && charOffset !== undefined) {\n const scopes = this.scopeStackAt(charOffset);\n scopes.some(scope => {\n retVal = scope.resolve(qualifiedID);\n return !!retVal;\n });\n }\n\n // Check Definitions ---\n if (!retVal) {\n retVal = super.resolve(qualifiedID);\n }\n return retVal;\n }\n}\n\nconst isHiddenDirectory = source => path.basename(source).indexOf(\".\") === 0;\nconst isDirectory = source => fs.lstatSync(source).isDirectory() && !isHiddenDirectory(source);\nconst isEcl = source => [\".ecl\", \".ecllib\"].indexOf(path.extname(source).toLowerCase()) >= 0;\nconst modAttrs = source => fs.readdirSync(source).map(name => path.join(source, name)).filter(path => isDirectory(path) || isEcl(path));\n\nexport class File extends ECLScope {\n\n constructor(name: string, sourcePath: string) {\n super(name, \"file\", sourcePath, []);\n }\n\n suggestions(): ISuggestion[] {\n return [];\n }\n}\n\nexport class Folder extends ECLScope {\n\n constructor(name: string, sourcePath: string) {\n super(name, \"folder\", sourcePath, []);\n }\n\n suggestions(): ISuggestion[] {\n return modAttrs(this.sourcePath).map(folder => {\n return {\n name: path.basename(folder, \".ecl\"),\n type: \"folder\"\n };\n });\n }\n}\n\nexport class Workspace {\n _workspacePath: string;\n _eclccPath?: string;\n _clientTools: ClientTools;\n _sourceByID: DictionaryNoCase<Source> = new DictionaryNoCase<Source>();\n _sourceByPath: Dictionary<Source> = new Dictionary<Source>();\n private _test: DictionaryNoCase<IFilePath> = new DictionaryNoCase<IFilePath>();\n\n constructor(workspacePath: string, eclccPath?: string) {\n this._workspacePath = workspacePath;\n this._eclccPath = eclccPath;\n }\n\n refresh() {\n this.primeWorkspace();\n this.primeClientTools();\n }\n\n primeClientTools(): Promise<this> {\n return locateClientTools(this._eclccPath, \"\", this._workspacePath).then(clientTools => {\n this._clientTools = clientTools;\n return clientTools.paths();\n }).then(paths => {\n for (const knownFolder of [\"ECLCC_ECLLIBRARY_PATH\", \"ECLCC_PLUGIN_PATH\"]) {\n if (paths[knownFolder] && fs.existsSync(paths[knownFolder])) {\n this.walkChildFolders(paths[knownFolder], paths[knownFolder]);\n }\n }\n return this;\n });\n }\n\n primeWorkspace() {\n if (fs.existsSync(this._workspacePath)) {\n this.visitFolder(this._workspacePath, this._workspacePath);\n }\n }\n\n walkChildFolders(folderPath: string, refPath: string, force: boolean = false) {\n for (const child of modAttrs(folderPath)) {\n if (!isDirectory(child)) {\n this.visitFile(child, refPath, force);\n } else {\n this.visitFolder(child, refPath, force);\n }\n }\n }\n\n visitFile(filePath: string, refPath: string, force: boolean = false) {\n const filePathInfo = path.parse(filePath);\n const pathNoExt = path.join(filePathInfo.dir, filePathInfo.name);\n const name = path.relative(refPath, pathNoExt).split(path.sep).join(\".\");\n if (force || !this._test.has(name)) {\n this._test.set(name, new File(\"\", filePath));\n }\n }\n\n visitFolder(folderPath: string, refPath: string, force: boolean = false) {\n const name = path.relative(refPath, folderPath).split(path.sep).join(\".\");\n if (force || !this._test.has(name)) {\n this._test.set(name, new Folder(name, folderPath));\n this.walkChildFolders(folderPath, refPath, force);\n }\n }\n\n buildStack(parentStack: string[], name: string, removeDupID: boolean): { stack: string[], qid: string } {\n const nameStack = name.split(\".\");\n if (removeDupID && parentStack[parentStack.length - 1] === nameStack[0]) {\n nameStack.shift();\n }\n const stack = [...parentStack, ...nameStack];\n const qid: string = stack.join(\".\");\n return {\n stack,\n qid\n };\n }\n\n walkECLScope(parentStack: string[], scope: ECLScope) {\n const info = this.buildStack(parentStack, scope.name, true);\n this._test.set(info.qid, scope);\n for (const def of scope.definitions) {\n this.walkDefinition(info.stack, def);\n }\n }\n\n walkField(parentStack: string[], field: Field) {\n const info = this.buildStack(parentStack, field.name, false);\n this._test.set(info.qid, field);\n }\n\n walkDefinition(parentStack: string[], definition: Definition) {\n const info = this.buildStack(parentStack, definition.name, true);\n this.walkECLScope(parentStack, definition);\n for (const field of definition.fields) {\n this.walkField(info.stack, field);\n }\n }\n\n walkSource(source: Source) {\n // const dirName = path.dirname(source.sourcePath);\n // const relName = path.relative(this._workspacePath, dirName).split(path.sep).join(\".\");\n // const folder = new Folder(relName, dirName);\n // this._test.set(folder.name, folder);\n this.walkECLScope([], source);\n }\n\n parseSources(sources: XMLNode[] = []): void {\n for (const _source of sources) {\n if (_source.$.name) { // Plugins have no name...\n const source = new Source(_source);\n inspect(_source, \"source\", source);\n this._sourceByID.set(source.name, source);\n this._sourceByPath.set(source.sourcePath, source);\n\n // If external source like \"std.system.ThorLib\" then need to backup to \"std\" and add its folder\n if (source.name) {\n const sourceNameParts = source.name.split(\".\");\n let depth = sourceNameParts.length;\n if (depth > 1) {\n let sourcePath = source.sourcePath;\n while (depth > 1) {\n sourcePath = path.dirname(sourcePath);\n --depth;\n }\n this.visitFolder(sourcePath, path.dirname(sourcePath));\n }\n }\n this.walkSource(source);\n }\n }\n }\n\n parseMetaXML(metaXML: string): string[] {\n const metaParser = new MetaParser();\n metaParser.parse(metaXML);\n this.parseSources(metaParser.sources);\n return metaParser.sources.map(source => path.normalize(source.$.sourcePath));\n }\n\n resolveQualifiedID(filePath: string, qualifiedID: string, charOffset?: number): ECLScope | undefined {\n let retVal: ECLScope | undefined;\n if (!retVal && this._test.has(qualifiedID)) {\n retVal = this._test.get(qualifiedID).scope;\n }\n if (!retVal && this._sourceByPath.has(filePath)) {\n const eclSource = this._sourceByPath.get(filePath);\n\n // Resolve Imports ---\n const qualifiedIDParts = qualifiedID.split(\".\");\n for (const imp of eclSource.imports) {\n if (imp.name.toLowerCase() === qualifiedIDParts[0].toLowerCase()) {\n if (imp.ref) {\n qualifiedIDParts[0] = imp.ref;\n } else {\n qualifiedIDParts.shift();\n }\n break;\n }\n }\n let realQID = qualifiedIDParts.join(\".\");\n if (!retVal && this._test.has(realQID)) {\n retVal = this._test.get(realQID).scope;\n }\n if (!retVal) {\n realQID = [...eclSource.name.split(\".\"), ...qualifiedIDParts].join(\".\");\n if (this._test.has(realQID)) {\n retVal = this._test.get(realQID).scope;\n }\n }\n }\n return retVal;\n }\n\n resolvePartialID(filePath: string, partialID: string, charOffset: number): ECLScope | undefined {\n partialID = partialID.toLowerCase();\n const partialIDParts = partialID.split(\".\");\n partialIDParts.pop();\n const partialIDQualifier = partialIDParts.length === 1 ? partialIDParts[0] : partialIDParts.join(\".\");\n return this.resolveQualifiedID(filePath, partialIDQualifier, charOffset);\n }\n}\n\nconst workspaceCache = new Dictionary<Workspace>();\nexport function attachWorkspace(_workspacePath: string, eclccPath?: string): Workspace {\n const workspacePath = path.normalize(_workspacePath);\n if (!workspaceCache.has(workspacePath)) {\n const workspace = new Workspace(workspacePath, eclccPath);\n workspaceCache.set(workspacePath, workspace);\n workspace.refresh();\n }\n return workspaceCache.get(workspacePath);\n}\n\nfunction isQualifiedIDChar(lineText: string, charPos: number, reverse: boolean) {\n if (charPos < 0) return false;\n const testChar = lineText.charAt(charPos);\n return (reverse ? /[a-zA-Z\\d_\\.$]/ : /[a-zA-Z\\d_]/).test(testChar);\n}\n\nexport function qualifiedIDBoundary(lineText: string, charPos: number, reverse: boolean) {\n while (isQualifiedIDChar(lineText, charPos, reverse)) {\n charPos += reverse ? -1 : 1;\n }\n return charPos + (reverse ? 1 : -1);\n}\n\nclass MetaParser extends SAXStackParser {\n sources: XMLNode[] = [];\n\n endXMLNode(e: XMLNode) {\n switch (e.name) {\n case \"Source\":\n this.sources.push(e);\n break;\n default:\n break;\n }\n super.endXMLNode(e);\n }\n}\n","import * as cp from \"child_process\";\nimport * as fs from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport * as tmp from \"tmp\";\n\nimport { exists, scopedLogger, xml2json, XMLNode } from \"@hpcc-js/util\";\nimport { attachWorkspace, Workspace } from \"./eclMeta\";\n\nconst logger = scopedLogger(\"clienttools/eclcc\");\nconst exeExt = os.type() === \"Windows_NT\" ? \".exe\" : \"\";\n\nexport class Version {\n readonly prefix: string = \"\";\n readonly major: number = 0;\n readonly minor: number = 0;\n readonly patch: number = 0;\n readonly postfix: string = \"\";\n\n constructor(build: string) {\n const parts = build.split(\" \");\n if (parts.length) {\n const match = /(?:(\\w+)_)?(\\d+)\\.(\\d+)\\.(\\d+)(?:-(.*))?/.exec(parts[parts.length - 1]);\n if (match) {\n this.prefix = match[1] || \"\";\n this.major = +match[2] || 0;\n this.minor = +match[3] || 0;\n this.patch = +match[4] || 0;\n this.postfix = match[5] || \"\";\n }\n }\n }\n\n parse(build: string) {\n }\n\n exists(): boolean {\n return this.major !== 0 || this.minor !== 0 || this.patch !== 0 || this.postfix !== \"\";\n }\n\n compare(other: Version): number {\n if (this.major > other.major) return 1;\n if (this.major < other.major) return -1;\n if (this.minor > other.minor) return 1;\n if (this.minor < other.minor) return -1;\n if (this.patch > other.patch) return 1;\n if (this.patch < other.patch) return -1;\n if (this.postfix === \"\" && other.postfix !== \"\") return 1;\n return this.postfix.localeCompare(other.postfix);\n }\n\n toString(): string {\n return `${this.prefix}_${this.major}.${this.minor}.${this.patch}-${this.postfix}`;\n }\n}\n\ninterface IExecFile {\n stderr: string;\n stdout: string;\n}\n\nexport interface IECLErrorWarning {\n filePath: string;\n line: number;\n col: number;\n msg: string;\n severity: string;\n}\n\nconst ERROR = \"error\";\nconst WARN = \"warning\";\n\nexport class Errors {\n protected _checked: string[];\n protected errWarn: IECLErrorWarning[] = [];\n protected errOther: string[] = [];\n\n constructor(checked: string[]) {\n this._checked = checked;\n }\n\n checked(): string[] {\n return this._checked;\n }\n\n all(): IECLErrorWarning[] {\n return this.errWarn;\n }\n\n errors(): IECLErrorWarning[] {\n return this.errWarn.filter(e => e.severity === ERROR);\n }\n\n hasError(): boolean {\n return this.errors().length > 0;\n }\n\n warnings(): IECLErrorWarning[] {\n return this.errWarn.filter(e => e.severity === WARN);\n }\n\n hasWarning(): boolean {\n return this.warnings().length > 0;\n }\n\n info(): IECLErrorWarning[] {\n return this.errWarn.filter(e => [ERROR, WARN].indexOf(e.severity) < 0);\n }\n\n hasOther(): boolean {\n return this.info().length > 0;\n }\n\n unknown(): string[] {\n return this.errOther;\n }\n\n hasUnknown(): boolean {\n return this.unknown().length > 0;\n }\n}\n\nexport class EclccErrors extends Errors {\n\n constructor(stdErr: string, checked: string[]) {\n super(checked);\n if (stdErr && stdErr.length) {\n for (const errLine of stdErr.split(os.EOL)) {\n let match = /([a-zA-Z]:\\\\(?:[- \\w\\.\\d]+\\\\)*(?:[- \\w\\.\\d]+)?|(?:\\/[\\w\\.\\-]+)+)\\((\\d*),(\\d*)\\) ?: ?(error|warning|info) C(\\d*) ?: ?(.*)/.exec(errLine);\n if (match) {\n const [, filePath, row, _col, severity, code, _msg] = match;\n const line: number = +row;\n const col: number = +_col;\n const msg = code + \": \" + _msg;\n this.errWarn.push({ filePath, line, col, msg, severity });\n continue;\n }\n match = /(error|warning|info): (.*)/i.exec(errLine);\n if (match) {\n const [, severity, msg] = match;\n this.errWarn.push({ filePath: \"\", line: 0, col: 0, msg, severity });\n continue;\n }\n match = /\\d error(s?), \\d warning(s?)/.exec(errLine);\n if (match) {\n continue;\n }\n logger.warning(`parseECLErrors: Unable to parse \"${errLine}\"`);\n this.errOther.push(errLine);\n }\n }\n this._checked = checked;\n }\n}\n\nexport class EnvchkErrors extends Errors {\n\n private _lines: string[];\n\n constructor(filePath: string, stdErr: string, checked: string[]) {\n super(checked);\n let content: string = fs.readFileSync(filePath, \"utf8\");\n content = content.replace(\"\\r\\n\", \"\\n\");\n this._lines = content.split(\"\\n\");\n if (stdErr && stdErr.length) {\n for (const errLine of stdErr.split(os.EOL)) {\n const match = /(Warning|Error) : Path\\=(\\S*?)(\\[\\S*\\])? Message\\=(.*)/.exec(errLine);\n if (match) {\n const [, severity, _path, _attr, _msg] = match;\n const msg = `${_path} ${_attr ? _attr : \"\"}: ${_msg}`;\n const [line, col] = this.locate(_path);\n this.errWarn.push({ filePath, line, col, msg, severity });\n continue;\n }\n if (match) {\n continue;\n }\n logger.warning(`parseECLErrors: Unable to parse \"${errLine}\"`);\n this.errOther.push(errLine);\n }\n }\n this._checked = checked;\n }\n\n locate(path: string): [number, number] {\n const pathParts = path.split(\"/\");\n if (pathParts.length && pathParts[0] === \"\") {\n pathParts.shift();\n }\n if (pathParts.length > 0) {\n let lineIdx = 0;\n for (const line of this._lines) {\n const testStr = \"<\" + pathParts[0];\n if (line.indexOf(testStr + \" \") >= 0 || line.indexOf(testStr + \">\") >= 0) {\n console.log(lineIdx, testStr);\n pathParts.shift();\n if (pathParts.length === 0) {\n return [lineIdx + 1, line.indexOf(testStr) + 1];\n }\n }\n ++lineIdx;\n }\n }\n return [0, 0];\n }\n}\n\nexport function walkXmlJson(node: any, callback: (key: string, childNode: any, stack: any[]) => void, stack?: any[]) {\n stack = stack || [];\n stack.push(node);\n for (const key in node) {\n if (node.hasOwnProperty(key)) {\n const childNode = node[key];\n callback(key, childNode, stack);\n if (childNode instanceof Array) {\n childNode.forEach(child => {\n walkXmlJson(child, callback, stack);\n });\n } else if (typeof childNode === \"object\") {\n walkXmlJson(childNode, callback, stack);\n }\n }\n }\n stack.pop();\n}\n\nexport class LocalWorkunit {\n jsonWU: any;\n\n constructor(jsonWU: any) {\n this.jsonWU = jsonWU;\n }\n\n bpGetValidLocations(filePath: any) {\n const retVal: any[] = [];\n if (exists(\"W_LOCAL.Graphs\", this.jsonWU)) {\n let id = \"\";\n walkXmlJson(this.jsonWU.W_LOCAL.Graphs, (key: string, item: any, _stack: any[]) => {\n if (key === \"$\" && item.id) {\n id = item.id;\n }\n if (key === \"$\" && item.name === \"definition\") {\n const match = /([a-z,A-Z]:\\\\(?:[-\\w\\.\\d]+\\\\)*(?:[-\\w\\.\\d]+)?|(?:\\/[\\w\\.\\-]+)+)\\((\\d*),(\\d*)\\)/.exec(item.value);\n if (match) {\n const [, file, row, _col] = match;\n const line: number = +row;\n const col: number = +_col;\n if (filePath === file) {\n retVal.push({ file, line, col, id });\n }\n }\n }\n // console.log(`${key}: ` + JSON.stringify(item));\n });\n }\n return retVal;\n }\n}\n\nexport interface IArchive {\n content: string;\n err: EclccErrors;\n}\n\nexport class ClientTools {\n readonly eclccPath: string;\n readonly envchkPath: string;\n readonly binPath: string;\n protected cwd: string;\n protected includeFolders: string[];\n protected _legacyMode: boolean;\n protected _args: string[];\n protected _version: Version;\n\n constructor(eclccPath: string, cwd?: string, includeFolders: string[] = [], legacyMode: boolean = false, args: string[] = [], version?: Version) {\n this.eclccPath = eclccPath;\n this.binPath = path.dirname(this.eclccPath);\n this.envchkPath = path.join(this.binPath, \"envchk\" + exeExt);\n this.cwd = path.normalize(cwd || this.binPath);\n this.includeFolders = includeFolders;\n this._legacyMode = legacyMode;\n this._args = args;\n this._version = version!;\n }\n\n clone(cwd?: string, includeFolders?: string[], legacyMode: boolean = false, args: string[] = []) {\n return new ClientTools(this.eclccPath, cwd, includeFolders, legacyMode, args, this._version);\n }\n\n exists(filePath: string) {\n try {\n fs.accessSync(filePath);\n return true;\n } catch (e) { }\n return false;\n }\n\n args(additionalItems: string[] = []): string[] {\n const retVal: string[] = [...this._args];\n if (this._legacyMode) {\n retVal.push(\"-legacy\");\n }\n return retVal.concat(this.includeFolders.map(includePath => {\n return \"-I\" + path.normalize(includePath);\n })).concat(additionalItems);\n }\n\n version(): Promise<Version> {\n if (this._version) {\n return Promise.resolve(this._version);\n }\n return this.execFile(this.eclccPath, this.binPath, this.args([\"--version\"]), \"eclcc\", `Cannot find ${this.eclccPath}`).then((response: IExecFile): Version => {\n this._version = new Version(response.stdout);\n return this._version;\n });\n }\n\n versionSync(): Version {\n return this._version;\n }\n\n _paths = {};\n paths() {\n return this.execFile(this.eclccPath, this.cwd, this.args([\"-showpaths\"]), \"eclcc\", `Cannot find ${this.eclccPath}`).then((response: IExecFile) => {\n if (response && response.stdout && response.stdout.length) {\n const paths = response.stdout.split(/\\r?\\n/);\n for (const path of paths) {\n const parts = path.split(\"=\");\n if (parts.length === 2) {\n this._paths[parts[0]] = parts[1];\n }\n }\n }\n return this._paths;\n });\n }\n\n private loadXMLDoc(filePath: any, removeOnRead?: boolean): Promise<XMLNode> {\n return new Promise((resolve, _reject) => {\n const fileData = fs.readFileSync(filePath, \"ascii\");\n const retVal = xml2json(fileData as any);\n if (removeOnRead) {\n fs.unlink(filePath, (err) => { });\n }\n resolve(retVal);\n });\n }\n\n createWU(filename: string): Promise<LocalWorkunit> {\n const tmpName = tmp.tmpNameSync({ prefix: \"eclcc-wu-tmp\", postfix: \"\" });\n const args = [\"-o\" + tmpName, \"-wu\"].concat([filename]);\n return this.execFile(this.eclccPath, this.cwd, this.args(args), \"eclcc\", `Cannot find ${this.eclccPath}`).then((_response: IExecFile) => {\n const xmlPath = path.normalize(tmpName + \".xml\");\n const contentPromise = this.exists(xmlPath) ? this.loadXMLDoc(xmlPath, true) : Promise.resolve({});\n return contentPromise.then((content) => {\n return new LocalWorkunit(content);\n });\n });\n }\n\n createArchive(filename: string): Promise<IArchive> {\n const args = [\"-E\"].concat([filename]);\n return this.execFile(this.eclccPath, this.cwd, this.args(args), \"eclcc\", `Cannot find ${this.eclccPath}`).then((response: IExecFile): IArchive => {\n return {\n content: response.stdout,\n err: new EclccErrors(response.stderr, [])\n };\n });\n }\n\n attachWorkspace(): Workspace {\n return attachWorkspace(this.cwd);\n }\n\n fetchMeta(filePath: string): Promise<Workspace> {\n return Promise.all([\n attachWorkspace(this.cwd),\n this.execFile(this.eclccPath, this.cwd, this.args([\"-M\", filePath]), \"eclcc\", `Cannot find ${this.eclccPath}`)\n ]).then(([metaWorkspace, execFileResponse]: [Workspace, IExecFile]) => {\n if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {\n metaWorkspace.parseMetaXML(execFileResponse.stdout);\n }\n return metaWorkspace;\n });\n }\n\n syntaxCheck(filePath: string, args: string[] = [\"-syntax\"]): Promise<Errors> {\n return Promise.all([\n attachWorkspace(this.cwd),\n this.execFile(this.eclccPath, this.cwd, this.args([...args, \"-M\", filePath]), \"eclcc\", `Cannot find ${this.eclccPath}`)\n ]).then(([metaWorkspace, execFileResponse]: [Workspace, IExecFile]) => {\n let checked: string[] = [];\n if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {\n checked = metaWorkspace.parseMetaXML(execFileResponse.stdout);\n }\n return new EclccErrors(execFileResponse ? execFileResponse.stderr : \"\", checked);\n });\n }\n\n envCheck(filePath: string, args: string[] = []): Promise<Errors> {\n return Promise.all([\n attachWorkspace(this.cwd),\n this.execFile(this.envchkPath, this.cwd, this.args([...args, filePath]), \"envchk\", `Cannot find ${this.envchkPath}`)\n ]).then(([metaWorkspace, execFileResponse]: [Workspace, IExecFile]) => {\n return new EnvchkErrors(filePath, execFileResponse ? execFileResponse.stderr : \"\", []);\n });\n }\n\n private execFile(cmd: string, cwd: string, args: string[], _toolName: string, _notFoundError?: string) {\n return new Promise((resolve, _reject) => {\n logger.debug(`${cmd} ${args.join(\" \")}`);\n const child = cp.spawn(cmd, args, { cwd });\n let stdOut = \"\";\n let stdErr = \"\";\n child.stdout.on(\"data\", (data) => {\n stdOut += data.toString();\n });\n child.stderr.on(\"data\", (data) => {\n stdErr += data.toString();\n });\n child.on(\"close\", (_code, _signal) => {\n resolve({\n stdout: stdOut.trim(),\n stderr: stdErr.trim()\n });\n });\n });\n }\n}\n\nfunction locateClientToolsInFolder(rootFolder: string, clientTools: ClientTools[]) {\n if (rootFolder) {\n const hpccSystemsFolder = path.join(rootFolder, \"HPCCSystems\");\n if (fs.existsSync(hpccSystemsFolder) && fs.statSync(hpccSystemsFolder).isDirectory()) {\n if (os.type() !== \"Windows_NT\") {\n const eclccPath = path.join(hpccSystemsFolder, \"bin\", \"eclcc\");\n if (fs.existsSync(eclccPath)) {\n clientTools.push(new ClientTools(eclccPath));\n }\n }\n fs.readdirSync(hpccSystemsFolder).forEach((versionFolder) => {\n const eclccPath = path.join(hpccSystemsFolder, versionFolder, \"clienttools\", \"bin\", \"eclcc\" + exeExt);\n if (fs.existsSync(eclccPath)) {\n const name = path.basename(versionFolder);\n const version = new Version(name);\n if (version.exists()) {\n clientTools.push(new ClientTools(eclccPath));\n }\n }\n });\n }\n }\n}\n\nlet allClientToolsCache: Promise<ClientTools[]>;\nexport function locateAllClientTools() {\n if (allClientToolsCache) return allClientToolsCache;\n const clientTools: ClientTools[] = [];\n switch (os.type()) {\n case \"Windows_NT\":\n const rootFolder86 = process.env[\"ProgramFiles(x86)\"] || \"\";\n if (rootFolder86) {\n locateClientToolsInFolder(rootFolder86, clientTools);\n }\n const rootFolder = process.env[\"ProgramFiles\"] || \"\";\n if (rootFolder) {\n locateClientToolsInFolder(rootFolder, clientTools);\n }\n if (!rootFolder86 && !rootFolder) {\n locateClientToolsInFolder(\"c:\\\\Program Files (x86)\", clientTools);\n }\n break;\n case \"Linux\":\n case \"Darwin\":\n locateClientToolsInFolder(\"/opt\", clientTools);\n break;\n default:\n break;\n }\n\n allClientToolsCache = Promise.all(clientTools.map(ct => ct.version())).then(() => {\n clientTools.sort((l: ClientTools, r: ClientTools) => {\n return r.versionSync().compare(l.versionSync());\n });\n return clientTools;\n });\n return allClientToolsCache;\n}\n\nlet eclccPathMsg = \"\";\nfunction logEclccPath(eclccPath: string) {\n const msg = `Using eclccPath setting: ${eclccPath}`;\n if (eclccPathMsg !== msg) {\n logger.info(msg);\n eclccPathMsg = msg;\n }\n}\n\nexport function locateClientTools(overridePath: string = \"\", build: string = \"\", cwd: string = \".\", includeFolders: string[] = [], legacyMode: boolean = false): Promise<ClientTools> {\n if (overridePath && fs.existsSync(overridePath)) {\n logEclccPath(overridePath);\n return Promise.resolve(new ClientTools(overridePath, cwd, includeFolders, legacyMode));\n }\n return locateAllClientTools().then((allClientToolsCache2) => {\n if (!allClientToolsCache2.length) {\n throw new Error(\"Unable to locate ECL Client Tools.\");\n }\n const buildVersion = new Version(build);\n let latest: ClientTools | undefined;\n let bestMajor: ClientTools | undefined;\n for (const ct of allClientToolsCache2) {\n const ctVersion = ct.versionSync();\n if (!latest) latest = ct;\n if (!bestMajor && buildVersion.major === ctVersion.major) bestMajor = ct;\n if (buildVersion.major === ctVersion.major && buildVersion.minor === ctVersion.minor) return ct.clone(cwd, includeFolders, legacyMode);\n }\n const best: ClientTools = bestMajor || latest!;\n logEclccPath(best.eclccPath);\n return best.clone(cwd, includeFolders, legacyMode);\n });\n}\n","// DOM Parser polyfill ---\nimport { root } from \"@hpcc-js/util\";\nimport { DOMParser } from \"xmldom\";\nroot.DOMParser = DOMParser;\n\n// fetch polyfill ---\nimport fetch from \"node-fetch\";\nif (typeof root.fetch === \"undefined\") {\n root.fetch = fetch;\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const https = require(\"https\");\n root.fetch.__agent = new https.Agent({\n rejectUnauthorized: false\n });\n}\n\n// btoa polyfill ---\nimport { Buffer } from \"safe-buffer\";\nif (typeof root.btoa === \"undefined\") {\n root.btoa = function (str: string) {\n return Buffer.from(str || \"\", \"utf8\").toString(\"base64\");\n };\n}\n\nexport * from \"./index-common\";\n\n// Client Tools ---\nexport * from \"./clienttools/eclcc\";\nexport * from \"./clienttools/eclMeta\";\n"],"names":["interval","day","timeMonday","timeDay","timeYear","timeSunday","timeThursday","logger","WUStateID","WsWorkunits.WUStateID","WsWorkunits.WorkunitsService","WsTopology.TopologyService","WsWorkunits.WUUpdate","_store","path.normalize","path.basename","fs.lstatSync","path.extname","fs.readdirSync","path.join","fs.existsSync","path.parse","path.relative","path.sep","path.dirname","os.type","os.EOL","fs.readFileSync","walkXmlJson","fs.accessSync","fs.unlink","tmp.tmpNameSync","cp.spawn","fs.statSync","fetch"],"mappings":"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"}
\No newline at end of file