@hpcc-js/comms 3.12.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.umd.cjs +1 -1
- package/dist/browser/index.umd.cjs.map +1 -1
- package/dist/node/index.cjs +10 -10
- package/dist/node/index.cjs.map +4 -4
- package/dist/node/index.js +9 -9
- package/dist/node/index.js.map +4 -4
- package/package.json +5 -5
- package/src/connection.ts +2 -2
- package/src/index.common.ts +0 -1
- package/src/index.node.ts +1 -8
- package/src/services/wsSMC.ts +56 -0
- package/types/services/wsSMC.d.ts +13 -0
package/dist/node/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../node_modules/d3-array/dist/d3-array.js", "../../../../node_modules/d3-
|
|
4
|
-
"sourcesContent": ["// https://d3js.org/d3-array/ v1.2.4 Copyright 2018 Mike Bostock\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\ntypeof define === 'function' && define.amd ? define(['exports'], factory) :\n(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction bisector(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\nvar ascendingBisect = bisector(ascending);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n\nfunction pairs(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n}\n\nfunction pair(a, b) {\n return [a, b];\n}\n\nfunction cross(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n\nfunction descending(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n\nfunction number(x) {\n return x === null ? NaN : +x;\n}\n\nfunction variance(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n}\n\nfunction deviation(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n\nfunction extent(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\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 min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) 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 min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n\nvar array = Array.prototype;\n\nvar slice = array.slice;\nvar map = array.map;\n\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nfunction identity(x) {\n return x;\n}\n\nfunction range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n\nvar e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction ticks(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nfunction tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\nfunction sturges(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n\nfunction histogram() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisectRight(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n\nfunction quantile(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nfunction freedmanDiaconis(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n\nfunction scott(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n\nfunction max(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\nfunction mean(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\nfunction median(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n}\n\nfunction merge(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n\nfunction min(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = 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 min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n\nfunction permute(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n\nfunction scan(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n}\n\nfunction shuffle(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n\nfunction sum(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n\nfunction transpose(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n\nfunction zip() {\n return transpose(arguments);\n}\n\nexports.bisect = bisectRight;\nexports.bisectRight = bisectRight;\nexports.bisectLeft = bisectLeft;\nexports.ascending = ascending;\nexports.bisector = bisector;\nexports.cross = cross;\nexports.descending = descending;\nexports.deviation = deviation;\nexports.extent = extent;\nexports.histogram = histogram;\nexports.thresholdFreedmanDiaconis = freedmanDiaconis;\nexports.thresholdScott = scott;\nexports.thresholdSturges = sturges;\nexports.max = max;\nexports.mean = mean;\nexports.median = median;\nexports.merge = merge;\nexports.min = min;\nexports.pairs = pairs;\nexports.permute = permute;\nexports.quantile = quantile;\nexports.range = range;\nexports.scan = scan;\nexports.shuffle = shuffle;\nexports.sum = sum;\nexports.ticks = ticks;\nexports.tickIncrement = tickIncrement;\nexports.tickStep = tickStep;\nexports.transpose = transpose;\nexports.variance = variance;\nexports.zip = zip;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n", "// https://d3js.org/d3-format/ v1.4.5 Copyright 2020 Mike Bostock\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\ntypeof define === 'function' && define.amd ? define(['exports'], factory) :\n(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));\n}(this, (function (exports) { 'use strict';\n\nfunction formatDecimal(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nfunction formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, \u00B1Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n\nfunction exponent(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n\nfunction formatGroup(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n\nfunction formatNumerals(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nfunction formatTrim(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n\nvar prefixExponent;\n\nfunction formatPrefixAuto(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n\nfunction formatRounded(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n\nvar formatTypes = {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n\nfunction identity(x) {\n return x;\n}\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"\u00B5\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nfunction formatLocale(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer \u201Cvalue\u201D part that can be\n // grouped, and fractional or exponential \u201Csuffix\u201D part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n\nvar locale;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nfunction defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.format = locale.format;\n exports.formatPrefix = locale.formatPrefix;\n return locale;\n}\n\nfunction precisionFixed(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n\nfunction precisionPrefix(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n\nfunction precisionRound(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n\nexports.FormatSpecifier = FormatSpecifier;\nexports.formatDefaultLocale = defaultLocale;\nexports.formatLocale = formatLocale;\nexports.formatSpecifier = formatSpecifier;\nexports.precisionFixed = precisionFixed;\nexports.precisionPrefix = precisionPrefix;\nexports.precisionRound = precisionRound;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n", "// https://d3js.org/d3-time/ v1.1.0 Copyright 2019 Mike Bostock\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\ntypeof define === 'function' && define.amd ? define(['exports'], factory) :\n(global = global || self, factory(global.d3 = global.d3 || {}));\n}(this, function (exports) { 'use strict';\n\nvar t0 = new Date,\n t1 = new Date;\n\nfunction newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n\nvar millisecond = newInterval(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 newInterval(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};\nvar milliseconds = millisecond.range;\n\nvar durationSecond = 1e3;\nvar durationMinute = 6e4;\nvar durationHour = 36e5;\nvar durationDay = 864e5;\nvar durationWeek = 6048e5;\n\nvar second = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds());\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});\nvar seconds = second.range;\n\nvar minute = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\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});\nvar minutes = minute.range;\n\nvar hour = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\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});\nvar hours = hour.range;\n\nvar day = newInterval(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});\nvar days = day.range;\n\nfunction weekday(i) {\n return newInterval(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\nvar sunday = weekday(0);\nvar monday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nvar sundays = sunday.range;\nvar mondays = monday.range;\nvar tuesdays = tuesday.range;\nvar wednesdays = wednesday.range;\nvar thursdays = thursday.range;\nvar fridays = friday.range;\nvar saturdays = saturday.range;\n\nvar month = newInterval(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});\nvar months = month.range;\n\nvar year = newInterval(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 : newInterval(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};\nvar years = year.range;\n\nvar utcMinute = newInterval(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});\nvar utcMinutes = utcMinute.range;\n\nvar utcHour = newInterval(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});\nvar utcHours = utcHour.range;\n\nvar utcDay = newInterval(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});\nvar utcDays = utcDay.range;\n\nfunction utcWeekday(i) {\n return newInterval(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\nvar utcSunday = utcWeekday(0);\nvar utcMonday = utcWeekday(1);\nvar utcTuesday = utcWeekday(2);\nvar utcWednesday = utcWeekday(3);\nvar utcThursday = utcWeekday(4);\nvar utcFriday = utcWeekday(5);\nvar utcSaturday = utcWeekday(6);\n\nvar utcSundays = utcSunday.range;\nvar utcMondays = utcMonday.range;\nvar utcTuesdays = utcTuesday.range;\nvar utcWednesdays = utcWednesday.range;\nvar utcThursdays = utcThursday.range;\nvar utcFridays = utcFriday.range;\nvar utcSaturdays = utcSaturday.range;\n\nvar utcMonth = newInterval(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});\nvar utcMonths = utcMonth.range;\n\nvar utcYear = newInterval(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 : newInterval(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};\nvar utcYears = utcYear.range;\n\nexports.timeDay = day;\nexports.timeDays = days;\nexports.timeFriday = friday;\nexports.timeFridays = fridays;\nexports.timeHour = hour;\nexports.timeHours = hours;\nexports.timeInterval = newInterval;\nexports.timeMillisecond = millisecond;\nexports.timeMilliseconds = milliseconds;\nexports.timeMinute = minute;\nexports.timeMinutes = minutes;\nexports.timeMonday = monday;\nexports.timeMondays = mondays;\nexports.timeMonth = month;\nexports.timeMonths = months;\nexports.timeSaturday = saturday;\nexports.timeSaturdays = saturdays;\nexports.timeSecond = second;\nexports.timeSeconds = seconds;\nexports.timeSunday = sunday;\nexports.timeSundays = sundays;\nexports.timeThursday = thursday;\nexports.timeThursdays = thursdays;\nexports.timeTuesday = tuesday;\nexports.timeTuesdays = tuesdays;\nexports.timeWednesday = wednesday;\nexports.timeWednesdays = wednesdays;\nexports.timeWeek = sunday;\nexports.timeWeeks = sundays;\nexports.timeYear = year;\nexports.timeYears = years;\nexports.utcDay = utcDay;\nexports.utcDays = utcDays;\nexports.utcFriday = utcFriday;\nexports.utcFridays = utcFridays;\nexports.utcHour = utcHour;\nexports.utcHours = utcHours;\nexports.utcMillisecond = millisecond;\nexports.utcMilliseconds = milliseconds;\nexports.utcMinute = utcMinute;\nexports.utcMinutes = utcMinutes;\nexports.utcMonday = utcMonday;\nexports.utcMondays = utcMondays;\nexports.utcMonth = utcMonth;\nexports.utcMonths = utcMonths;\nexports.utcSaturday = utcSaturday;\nexports.utcSaturdays = utcSaturdays;\nexports.utcSecond = second;\nexports.utcSeconds = seconds;\nexports.utcSunday = utcSunday;\nexports.utcSundays = utcSundays;\nexports.utcThursday = utcThursday;\nexports.utcThursdays = utcThursdays;\nexports.utcTuesday = utcTuesday;\nexports.utcTuesdays = utcTuesdays;\nexports.utcWednesday = utcWednesday;\nexports.utcWednesdays = utcWednesdays;\nexports.utcWeek = utcSunday;\nexports.utcWeeks = utcSundays;\nexports.utcYear = utcYear;\nexports.utcYears = utcYears;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n}));\n", "// https://d3js.org/d3-time-format/ v2.3.0 Copyright 2020 Mike Bostock\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-time')) :\ntypeof define === 'function' && define.amd ? define(['exports', 'd3-time'], factory) :\n(global = global || self, factory(global.d3 = global.d3 || {}, global.d3));\n}(this, function (exports, d3Time) { 'use strict';\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? d3Time.utcMonday.ceil(week) : d3Time.utcMonday(week);\n week = d3Time.utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? d3Time.timeMonday.ceil(week) : d3Time.timeMonday(week);\n week = d3Time.timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + d3Time.timeDay.count(d3Time.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(d3Time.timeSunday.count(d3Time.timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(d3Time.timeThursday.count(d3Time.timeYear(d), d) + (d3Time.timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(d3Time.timeMonday.count(d3Time.timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + d3Time.utcDay.count(d3Time.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(d3Time.utcSunday.count(d3Time.utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(d3Time.utcThursday.count(d3Time.utcYear(d), d) + (d3Time.utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(d3Time.utcMonday.count(d3Time.utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n\nvar locale;\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\nfunction defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.timeFormat = locale.format;\n exports.timeParse = locale.parse;\n exports.utcFormat = locale.utcFormat;\n exports.utcParse = locale.utcParse;\n return locale;\n}\n\nvar 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 : exports.utcFormat(isoSpecifier);\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 : exports.utcParse(isoSpecifier);\n\nexports.isoFormat = formatIso;\nexports.isoParse = parseIso;\nexports.timeFormatDefaultLocale = defaultLocale;\nexports.timeFormatLocale = formatLocale;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n}));\n", "// DOM Parser polyfill ---\nimport { root } from \"@hpcc-js/util\";\nimport { DOMParser } from \"@xmldom/xmldom\";\nroot.DOMParser = DOMParser;\n\n// fetch polyfill ---\nimport fetch, { Headers, Request, Response, } from \"node-fetch\";\n\nimport * as https from \"node:https\";\nimport { Agent, setGlobalDispatcher } from \"undici\";\n\nif (typeof root.fetch === \"undefined\") {\n // NodeJS < v18 ---\n root.fetch = fetch;\n root.Headers = Headers;\n root.Request = Request;\n root.Response = Response;\n root.fetch.__rejectUnauthorizedAgent = new https.Agent({\n rejectUnauthorized: false\n });\n} else {\n // NodeJS >= v18 ---\n root.fetch.__defaultAgent = new Agent();\n root.fetch.__rejectUnauthorizedAgent = new Agent({\n connect: {\n rejectUnauthorized: false\n }\n });\n root.fetch.__setGlobalDispatcher = setGlobalDispatcher;\n}\n\n// AbortController polyfill ---\nimport AbortController from \"abort-controller\";\nif (typeof root.AbortController === \"undefined\") {\n root.AbortController = AbortController;\n}\n\nimport { trustwave } from \"./pem/trustwave.ts\";\n\nlet globalCA = \"\";\nif (https.globalAgent.options.ca !== undefined) {\n if (Array.isArray(https.globalAgent.options.ca) && https.globalAgent.options.ca.length) {\n if (typeof https.globalAgent.options.ca[0] === \"string\") {\n globalCA = https.globalAgent.options.ca.join(\"\\n\");\n } else if (https.globalAgent.options.ca[0] instanceof Buffer) {\n globalCA = https.globalAgent.options.ca.map(row => row.toString()).join(\"\\n\");\n }\n } else if (typeof https.globalAgent.options.ca === \"string\") {\n globalCA = https.globalAgent.options.ca;\n } else if (https.globalAgent.options.ca instanceof Buffer) {\n globalCA = https.globalAgent.options.ca.toString();\n }\n globalCA += \"\\n\";\n}\n\nroot.fetch.__trustwaveAgent = new https.Agent({\n ca: globalCA + trustwave\n});\n\n// btoa polyfill ---\nimport { Buffer } from \"node: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.ts\";\n\n// Client Tools ---\nexport * from \"./clienttools/eclcc.ts\";\nexport * from \"./clienttools/eclMeta.ts\";\n", "export const trustwave = `\nTrustwave Secure Global Extended Validation CA, Level 1\nSecureTrust Corporation\n00F6F61CE4A3635BB0CA8AACEEFCB2D0F0\n-----BEGIN CERTIFICATE-----\nMIIE+DCCA+CgAwIBAgIRAPb2HOSjY1uwyoqs7vyy0PAwDQYJKoZIhvcNAQELBQAw\nSjELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRkwFwYDVQQDExBTZWN1cmUgR2xvYmFsIENBMB4XDTE1MDgxMjIwMTcyOVoXDTI1\nMDgwOTIwMTcyOVowgbgxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQ\nMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMUAwPgYDVQQDEzdUcnVzdHdhdmUgU2VjdXJlIEdsb2JhbCBFeHRlbmRlZCBW\nYWxpZGF0aW9uIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdh\ndmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx6D45slgLGq8\n2G/NPFnuFscv7UM1eRoQyx3h0DdSTfoRvHkkNv4Gf6OudZDOXqwV86v/SjcNEP87\nnjMOEqQ7dKQPtiYzEkK0MOrjbRySFC5dvCTI9T8tnBgFpYA9YXwbpUqXxEi0Ayoq\nhA7UQhS7Q+YGrVwZaJ6LiWrQw+x8ACPLqEvPmMZhrxagKwrsKbylMsAQ1ljk8X74\nJ76TSxi/AZpxos7tHD0XbO8elXFZexfsgPLDRpMs6jREVeQj1jVCWLtg9twiXzcI\naUCchBsTSc92WGkKwBnH70dlL2N8kT/BNe3tAsXuBpZRILANY59jLrLnHEJNfado\nt6ZpougolQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4E\nFgQUx33qXRmrVNT6P+ZKc956sjwdbC4wDgYDVR0PAQH/BAQDAgGGMD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TR0NBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NHQ0EuY3J0MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr\nBgEFBQcDATAfBgNVHSMEGDAWgBSvRATCQX5Ig9tOOQLs7IR65s7JpDANBgkqhkiG\n9w0BAQsFAAOCAQEAkn/4wKQRLo41fDRkZtfF+3o8JtUmfQXf2zoo9Ll29hhCiz8k\nBOpIek9MrFd/cdNgUw1nckIi+J3udyFrbO5p64JBvtc0K4kAOPFSKpHssFcnRLPx\nFXgGxXq6ohD4Py+xaEApslYFfMy89N6DKs/v/10/+/xD831RFEUMUoQxBimsmmNf\n+cLoMwF5bpoSz9JcWqCmSlK0Nla1dPphaoA/MObLN2iQPpeM3yF5dTUm1tPxe39W\nOlr6nLU1xO+yRDrlGLXrVDP1l1/qGVuwi+xufIAcdFycLLBjSSNX7LOIK3tbva7A\nWctLUs+qhIlUrbPyFERm7YOY4SttWdozeYFNfg==\n-----END CERTIFICATE-----\n\nSecureTrust Domain Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E80B1BAF9870A7C4B6CBE401A32D68\n-----BEGIN CERTIFICATE-----\nMIIEfzCCA2egAwIBAgITBvHsAOgLG6+YcKfEtsvkAaMtaDANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfDEyMDAGA1UEAxMpU2VjdXJlVHJ1c3QgRG9tYWluIFZhbGlk\nYXRpb24gQ0EsIExldmVsIDExFDASBgNVBAoTC1NlY3VyZVRydXN0MRAwDgYDVQQH\nEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjRHBw8iIivBBrfE6HqexQK0oMt2Y/\nx8jO3fN96KEazZwEoGidwloRBk2Q7VfVvZ0ZDk+qwJZGLZJLS1ntGaZLH4/Iel+r\nPnp36IVF7J5MNDB+K81a/y9svEMfDu0p3FdlBUyhHvizZ/zFNP3tolmQfZ7T0mGL\n7lutlNAzFYoVTUlVeF5cSC8Yca906TEKyizYXuXcY8Diee+t+fQRHmSI5Hk5kyXD\nYFWcf2tXEfdkuFlDjJ7HPdFyfJzrNjD+cbqt8R5rZKnK1GNVP1dXm0cIYS+BMlMa\nCC1yF18oygbnOZLw5fDv9bxs4MOgF8E/Iypw0hLQHVkuD8wAvxVgPsqvAgMBAAGj\nggEsMIIBKDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNV\nHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQUYt6tehfefLfDfCMXo7Em5UbXOvQw\nHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYDVR0gBDowODA2BgRV\nHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2VjdXJldHJ1c3QuY29t\nL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9T\nVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGGGmh0dHA6Ly9vY3Nw\nLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQAHXPYhl+++o//di2Qm\naWGmC1ijxbGbKA4jOSDRvQfxlWOVkqPF11Dpxz+V8Rxw7QFFVoJ5mHpfoXtQOijV\ntsCFknxTKgzQeArNkZrkXBNpYOJAcuc5v0eX0OllBWgVdIvZRl2TM5L/u1WFrlPr\nqwWdEYTkinQwgAHXVV/7WZi6c4StcqNnlw93mlvN6Vspzaf/mWtcYp+aqT9vrqHt\nyNR1k8Ri5eIRPIU0B8woiXTj3bifLg6/O217SY5cWwQKCMFsa6nGWoRVCJ0JJXa0\nZ+m3mPQD2OcW5YMrynhL2VWohyfZAjB8l/NZaeRT7M+vki56fxbx3Bk2lqy8Z1Zz\nWd5m\n-----END CERTIFICATE-----\n\nSecureTrust Extended Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E31E46D341B2B2633CE480D915F81D\n-----BEGIN CERTIFICATE-----\nMIIEizCCA3OgAwIBAgITBvHsAOMeRtNBsrJjPOSA2RX4HTANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfjE0MDIGA1UEAxMrU2VjdXJlVHJ1c3QgRXh0ZW5kZWQgVmFs\naWRhdGlvbiBDQSwgTGV2ZWwgMTEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxEDAOBgNV\nBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS6vRtFpCJBJ7zJODH07Y3k54Qn\nVIBhnQmmWoqFqzCVMX97GAyAfzjcQrhl/TNiJiRCrVQWPI4n0R8eUd91Ab1Qzfsr\nnp+0NRbagVDa6+nF0KcNxbSZ6/iZQ7Ac3HyhCvJS2rH2CVYlzqdsrxDXcZk69jOO\ndPV8+w+7eNIn34BKpB/ZF7iXApDoAKG81kg1VtpGOxJhxTsKLuJmURT4pQjtZqF+\nF6rN64j5T2DOK0gOA4G7BLoTdOQuXkPS38LXKgZ43lKqEenjmiOaMF/XuLYzaHrW\nGYgCM2wJsykgdB9hCsTTEwsHRZzt2q9mLBDvYYWVhql1/kR4K/RN4JdESEECAwEA\nAaOCATYwggEyMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0G\nA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAdBgNVHQ4EFgQUA6uAxlUKKpWh\n4Nf+GubAynjMsJYwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYD\nVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2Vj\ndXJldHJ1c3QuY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9TVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQB1\nfzAmGGmtbJyIvOfjq2McCpUoYkXAq6JTN51+nb9NDAihhDoTKMde+801bC1/l54h\nxPPm4HImM6GK6LFckDew/FGwbdRbEznUOJ7uVL5ploNBIjte23kTBUZa9fx3+aXK\nhUTAipSyPtNjnOwVVBVXzrMynfMhdsyRRe7gLXNFYCXIxtks3IkIpuYnc86NAuV9\nnBLFlZzgmbAsW+tMc5QsNvQJ9pQ539K8cqZaM+HFCScreDERxmNtHHbMw+hCa2yL\nOj4ntekgWLO8KQbE0lPUNLIM17QK8aktJavj+GezBztKMmJJwhVYQy9nxS388ApX\nxcZsEgIzOCeH0SOWg4FA\n-----END CERTIFICATE-----\n\nSecureTrust Organization Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E58E9ADD372C871D25843FDAB852D9\n-----BEGIN CERTIFICATE-----\nMIIEkDCCA3igAwIBAgITBvHsAOWOmt03LIcdJYQ/2rhS2TANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowgYIxODA2BgNVBAMTL1NlY3VyZVRydXN0IE9yZ2FuaXphdGlv\nbiBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMRQwEgYDVQQKEwtTZWN1cmVUcnVzdDEQ\nMA4GA1UEBxMHQ2hpY2FnbzERMA8GA1UECBMISWxsaW5vaXMxCzAJBgNVBAYTAlVT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4QVBCdYToXFIfzd1SQfi\nTEgg1bwHXM2cE2VsyxwWK8NEFH8zMYdKy2hYOAjbfpm0xE6q4TQzS8KL2vAtCNyY\nVrwX7d3IvKR25H5s1LUDeQXSl1JBBZCtgJf2caJcwaYa6n2pZ0EKt3wBB+QteSFn\n57ENB37T13y7Nn8gCt9ZZaPYqRWxHcPaIWO3CVzQZ3tXjCLqzJMCV2KqhK85DZk3\nwo33Zb6cyYDkerDbWyric+10dJ/wdgE49dkfyZxVxEGpHg1SCSJdHjGb4z85Zx/u\neBpxBS6g3dfrkDjjT3MUxyNS4EaRTZp7o/2EqVCYDWJDM1HcOZL64kyWyi0d9jqA\n7wIDAQABo4IBNjCCATIwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC\nAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBR/QuNI\nbljpLrlhyGp3tPcDuM1qWjAfBgNVHSMEGDAWgBRCMrYW+gT9/l1LesP990xAHVpD\nrzBBBgNVHSAEOjA4MDYGBFUdIAAwLjAsBggrBgEFBQcCARYgaHR0cHM6Ly9jZXJ0\ncy5zZWN1cmV0cnVzdC5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2Ny\nbC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMDYGCCsGAQUFBwEBBCowKDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wDQYJKoZIhvcNAQELBQAD\nggEBAIwGM/ejz4Hbjf7Vc11gS8jzf+BwtZq9N4t1Nibj4rIDsW2G2jDE0S7fCN2m\nMhq76xkfnwfXhBbXDEKz6rj/M0G2u1kHw4Y8ZtKSzYEyRtgpeBFm4qU6voCSREpD\nFJXsL+Go2/YLRSE6xkWVSocklxppx4hi5o/RVdMMQept6ooOSFzBpH5XZYUoblKi\n99Yj0FUe8egIa9qSts42TObTpH1YVRMDnH3k2MNX3rcgPf9v/QO9Cf8W6RQ2+X3R\nCaYMPdL5OIKh4RGYjxXe3LpgiTKBWik/ZWTFL5sZSjetrJFl50NONzTc8E+BJtrx\nVCHAI2OcWyloxrYd4zMipw0YjDw=\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00DDEDF6F64298490E694C36EFA422C88F\n-----BEGIN CERTIFICATE-----\nMIIE7jCCA9agAwIBAgIRAN3t9vZCmEkOaUw276QiyI8wDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMDExOTIyMzJaFw0yNDA5\nMjgxOTIyMzJaMIGvMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE3MDUGA1UEAxMuVHJ1c3R3YXZlIERvbWFpbiBWYWxpZGF0aW9uIFNIQTI1NiBD\nQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNvbTCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNr4Z91k7AKM+Pz5XXWTIuVeMts\nPU2W/pI4WdEHG9Zab1EOWPLbthB6fzUJLLLBBk1wy2OM9yG1HywB/CwfGHcoKS8Z\n/efGV+ZKTzEpIestriUWx7wUnzxKzGML48Xv7sNuY1Crru5Hgce1Ax5uOfP7OB6t\norbMunvKQC10WcSrqFg6LapZ0UhgGmQzdjYguOBF6WZJR3QLghQaNrSUZuA6neXR\ncUsBgmzrxiEVHyzt+lmnYFMFvKVwGOyIZ2RU2LAFthS6UDDrSLGsJysxc1MK1Sti\n/VP8e8wj9rJdmiWNfA+lz6hDAPzRbv+WVJNoHEGbIx8rai+rVMiLy2HIbPsCAwEA\nAaOCAWkwggFlMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPQc4jqvtqTk\n2emd/u8cd6VjPe+IMA4GA1UdDwEB/wQEAwIBhjBIBgNVHSAEQTA/MD0GDysGAQQB\nge0YAwMDAwQFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TVENBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IB\nAQAjoDrTysopn7t+onDZ6rZSQW8rYlWZQpSiNHrq9xAAcMExrhcN0bQC9OQ+VRci\noMDascvwum7hVkyh2w2Ad7lC3Ir9gIuA8HycjqQJ4t1eSF3geYyf8lp259ztZ/TO\nxSAwJ9W0Szc8fslOA0SWlyA3lnRVcYVu54Idc1dPXXBxwlQ1NUCYgcsXZs+6QjLL\nYhYL85DhuitQSddoYemGpfVJnaYH9tBiWmwtzwc4qsVqTsKEJ/1zYAy2GrEAv8sB\nFKSfMNMopBmmDA8/aCIW/tH6KTD2DC15QQwL6yAUbSa5mhzFSA9O8zmF881YwBVG\nn+z3isMPClgpNw/eWSbaSLZ+\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n390A3F7EECA8FB4347DCAF701861662B\n-----BEGIN CERTIFICATE-----\nMIIE/zCCA+egAwIBAgIQOQo/fuyo+0NH3K9wGGFmKzANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzMloXDTI0MDky\nOTE0MzUzMlowga8xCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTcwNQYDVQQDEy5UcnVzdHdhdmUgRG9tYWluIFZhbGlkYXRpb24gU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs2vhn3WTsAoz4/PlddZMi5V4y2w9\nTZb+kjhZ0Qcb1lpvUQ5Y8tu2EHp/NQksssEGTXDLY4z3IbUfLAH8LB8YdygpLxn9\n58ZX5kpPMSkh6y2uJRbHvBSfPErMYwvjxe/uw25jUKuu7keBx7UDHm458/s4Hq2i\ntsy6e8pALXRZxKuoWDotqlnRSGAaZDN2NiC44EXpZklHdAuCFBo2tJRm4Dqd5dFx\nSwGCbOvGIRUfLO36WadgUwW8pXAY7IhnZFTYsAW2FLpQMOtIsawnKzFzUwrVK2L9\nU/x7zCP2sl2aJY18D6XPqEMA/NFu/5ZUk2gcQZsjHytqL6tUyIvLYchs+wIDAQAB\no4IBezCCAXcwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU9BziOq+2pOTZ\n6Z3+7xx3pWM974gwDgYDVR0PAQH/BAQDAgGGMDIGA1UdHwQrMCkwJ6AloCOGIWh0\ndHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9TVENBLmNybDA9BgNVHSAENjA0MDIGBFUd\nIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3YXZlLmNvbS9DQTBs\nBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnRydXN0d2F2\nZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1\nZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIy\nthb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRydXN0d2F2ZS5jb20w\nDQYJKoZIhvcNAQELBQADggEBAFcdG0/3P/CkeGb76tz/mn1viDZiftD05i9Jw70k\nH9ulRwdCHgzhSZVN5zHvG919oHA9WHbxH04J+iAnVl1+FjoDNN+A+2icy2WXqH9w\ngaNUGyUwLdo0JCfgUeGbrCF6WUYCj47pS7zAY02CdGlstZZsqouXK3RnOMKOD3Dq\nf5kiSh56KvhW/F0OZY7PAbdV79LVAiSTiAFdoe/jMjmj8fqXOiCIjllqH/O9/DAm\nRwQStFpauwR+nBbFhq4sYwlZQvJ0NvIxN5JOTECTkMM+X21kf8mrwRdxBfw0YEPa\nUTeZhFr48Fwvnt4jpo7gqpJzt7jjsbWPd1FHtey2Q8zmSHY=\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00C1BD27B383958D0D8BCA5E4F08D009D9\n-----BEGIN CERTIFICATE-----\nMIIFGDCCBACgAwIBAgIRAMG9J7ODlY0Ni8peTwjQCdkwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMTMxODE3MzlaFw0yNDEw\nMTAxODE3MzlaMIGxMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE5MDcGA1UEAxMwVHJ1c3R3YXZlIEV4dGVuZGVkIFZhbGlkYXRpb24gU0hBMjU2\nIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAre9mHLqiv689FWIk7PaeQLuW\nos8ldRX4rNLHeD7/X7JrTfaXuIQaLfrUODtyRaZs0LtJsEHgpr7dUonDIH69PjBP\nrHg+hBLu7ob4udEx3J03NQSdnR/fqPY0ZMH2NP7e9TFSKKctZ/SmzA8jGclVmdiT\nGg1bTx6xgWuPWq9OprIQSgkP5NRe1GeTQ7U/E1zxLqaw6PeQWjESHPGeilyw0jr6\nqVyHM5ack9ps60sN3CKNGushyaQe3w2bYxRJ9RRH/sILCAmmTbjc/cXrGQMGdaYt\naiGnXbc45r39cqfbynZ71hPPNEtFbOdqk3C7I8vrhIHiKaAtFkTMRSWmHHk4HwID\nAQABo4IBkTCCAY0wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU5eQkWRUy\nJ8kgs0ICbLDvMt6bIFowDgYDVR0PAQH/BAQDAgGGMGYGA1UdIARfMF0wDAYKKwYB\nBAGB7RgDADAOBgxghkgBhv1kAQECBAEwPQYPKwYBBAGB7RgDAwMDBAMDMCowKAYI\nKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCsw\nKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMGwGCCsG\nAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3YXZlLmNv\nbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMv\nU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQY\nMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IBAQCly1p1\nrvcOlRS+ODBLb2kYHd4q+cXDl65X+IQ7hOlXg9dpa7CzSAGNNpzhyYMbE48mB/RE\nBXxbZkMzEhWPFj+4jdGNsmX0zjEWatJWsnNVxpA7hDR0iZssezu86oDQ/sbVoaXj\n0a5jB2cZsnMS5287CNDk5i+ImruhbMAYV9sadliXoDy3y01Sv+FLMx39C5UhYhWU\ngvoT9igbSCoc/DPOukEDqsnKMmDqTf3JzuFI1CbJcR6M8R1hAda4mZrxIdGcbT8R\nXp8JQ8Vuv/+plPMcAiZ2Bzed0hPVr5A1Mz8K8w9OyORGlRwjWS65jsr26bjMCcfj\npvuAANrc0Alu4nJC\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n35962F305C5A0BEC400D4E9877528C65\n-----BEGIN CERTIFICATE-----\nMIIFCzCCA/OgAwIBAgIQNZYvMFxaC+xADU6Yd1KMZTANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzNFoXDTI0MDky\nOTE0MzUzNFowgbExCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTkwNwYDVQQDEzBUcnVzdHdhdmUgRXh0ZW5kZWQgVmFsaWRhdGlvbiBTSEEyNTYg\nQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNhQHRydXN0d2F2ZS5jb20wggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt72YcuqK/rz0VYiTs9p5Au5ai\nzyV1Ffis0sd4Pv9fsmtN9pe4hBot+tQ4O3JFpmzQu0mwQeCmvt1SicMgfr0+ME+s\neD6EEu7uhvi50THcnTc1BJ2dH9+o9jRkwfY0/t71MVIopy1n9KbMDyMZyVWZ2JMa\nDVtPHrGBa49ar06mshBKCQ/k1F7UZ5NDtT8TXPEuprDo95BaMRIc8Z6KXLDSOvqp\nXIczlpyT2mzrSw3cIo0a6yHJpB7fDZtjFEn1FEf+wgsICaZNuNz9xesZAwZ1pi1q\nIaddtzjmvf1yp9vKdnvWE880S0Vs52qTcLsjy+uEgeIpoC0WRMxFJaYceTgfAgMB\nAAGjggGFMIIBgTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTl5CRZFTIn\nySCzQgJssO8y3psgWjAOBgNVHQ8BAf8EBAMCAYYwMgYDVR0fBCswKTAnoCWgI4Yh\naHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMD0GA1UdIAQ2MDQwMgYE\nVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NB\nMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lz\nc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRy\ndXN0d2F2ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAGUMIDkrvlMJ0wHLuP3lkneC\nwGU6mZ3g17jyU2RJwhRinYctraryG7Jh20DQ9/ppTHoxTIADw2JDsC5ByplabteQ\nnLghrl17K1b6PO+rzWA/NFKVwo6u8Gh7Lz0iUuit7ZBD4eKcRedxRZcPQlnD9KTR\nIs94SRpootsuCv/Y5b+1FMPV1KrYtbco9yEVlaNEWLpmiEsqvLjxiWEmt71rzz+0\nS59OtA/ihnbGP9Xrnhe7wf1ybCNOO5gZQMKr/OszfLZ7oVKACGOPLlcSZRRW98gA\nszE+1ZvlHkdjamfTSs4yMvUorYn9NhXnjAWl28NuD9m3FPiE2O50ezEDnHTiaOQ=\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n4B2C6646F434775B67DF34A04DD504E6\n-----BEGIN CERTIFICATE-----\nMIIE/TCCA+WgAwIBAgIQSyxmRvQ0d1tn3zSgTdUE5jANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE0MTAwMTE5MjIzNloXDTI0MDky\nODE5MjIzNlowgbUxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMT0wOwYDVQQDEzRUcnVzdHdhdmUgT3JnYW5pemF0aW9uIFZhbGlkYXRpb24gU0hB\nMjU2IENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29t\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA49OohlJHBJ/juiQTmibO\nS28pHvCCp1bPOc6elQ62DCYE/A14JXUtI8yaUc9nFjh6dNzR7KjFPEq/qDplQl7f\n1Tvh5ifBNNP2wQ6e820TWlPO4HhR/5g4+3iFmJ1N7kFrxDp1/P8e3+9lcJsXckXC\ntfFkQ9slogJqnaCsipgdrH4gQhicFAL5YqHw2AKfctZLSPpxhI3xISMV/lIQwZPW\nI2221v9ALckokh5pW6dTK8x8yNUUye1zt5msWzqunfBjVYVUj5/LXu46hS99Mfxu\n80ARJRyHsXIuHbMzwVXGqKVPZfKAdHBl5e3ElCjNwNy+Hgi09vS7PoAUhjCf/wbO\nnQIDAQABo4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUys4d\nGAN3HhzzfFiymnCoCIAW9K4wDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYP\nKwYBBAGB7RgDAwMDBAQDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0\nd2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdh\ndmUuY29tL1NUQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50\ncnVzdHdhdmUuY29tL2lzc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUH\nAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0G\nCSqGSIb3DQEBCwUAA4IBAQBN/Qb6x5VSQHIt/FqvXAkjfCI7jwXGzRoxThavUqv0\npJr1azXKv2L2ye9Sl4OCqiDHZ8ZJZ/Z19Ae1yvGTpG++0O5dWTHZ8qy/JSj17Mg1\nvWiefVpJKtkYflzhC9B9/eB3QuKVTRKDqm1ZC9kbm3MWOwtnEOw4WURWS1X2v4Hv\n2AJaXe11ZRqjx7/c6U50tYp3eVpRDCw7bOIXRffLG0oibhjHiEu8dgq7KkTSrx9m\nQFS6T2x9GLiJKhj2mEfPuGr73TfBPyKsRBymOpG67LThKVnwoUfH3pghA6VkZp5Z\n1Vm6AcDm+eelf5XPvZtNve4evLVPYueA3TmGyxXh1m2d\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n0092B8744F71CED0E26C72A3D8D5D925B2\n-----BEGIN CERTIFICATE-----\nMIIFEDCCA/igAwIBAgIRAJK4dE9xztDibHKj2NXZJbIwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNjA5MDExNDM1MzVaFw0yNDA5\nMjkxNDM1MzVaMIG1MQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE9MDsGA1UEAxM0VHJ1c3R3YXZlIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIFNI\nQTI1NiBDQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNv\nbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPTqIZSRwSf47okE5om\nzktvKR7wgqdWzznOnpUOtgwmBPwNeCV1LSPMmlHPZxY4enTc0eyoxTxKv6g6ZUJe\n39U74eYnwTTT9sEOnvNtE1pTzuB4Uf+YOPt4hZidTe5Ba8Q6dfz/Ht/vZXCbF3JF\nwrXxZEPbJaICap2grIqYHax+IEIYnBQC+WKh8NgCn3LWS0j6cYSN8SEjFf5SEMGT\n1iNtttb/QC3JKJIeaVunUyvMfMjVFMntc7eZrFs6rp3wY1WFVI+fy17uOoUvfTH8\nbvNAESUch7FyLh2zM8FVxqilT2XygHRwZeXtxJQozcDcvh4ItPb0uz6AFIYwn/8G\nzp0CAwEAAaOCAYUwggGBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMrO\nHRgDdx4c83xYsppwqAiAFvSuMA4GA1UdDwEB/wQEAwIBhjAyBgNVHR8EKzApMCeg\nJaAjhiFodHRwOi8vY3JsLnRydXN0d2F2ZS5jb20vU1RDQS5jcmwwPQYDVR0gBDYw\nNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwbAYIKwYBBQUHAQEEYDBeMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC50\ncnVzdHdhdmUuY29tMDUGCCsGAQUFBzAChilodHRwOi8vc3NsLnRydXN0d2F2ZS5j\nb20vaXNzdWVycy9TVENBLmNydDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wGwYDVR0RBBQwEoEQ\nY2FAdHJ1c3R3YXZlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAC0OvN7/UJBcRDXch\nA4b2qJo7mBD05+XR96N7vucMaanz26CnUxs1o8DcBckpqyEXCxdOanIr+/UJNbBL\nXLJCzNLJEJcgV9TjbVu33eQR23yMuXD+cZsqLMF+L5IIM47W8dlwKJvMy0xs7Jb1\nS3NOIhcoVu+XPzRsgKv8Yi2B6l278RfzegiCx4vYJv0pBjFzizEiFH9bWTYIOlIJ\nJSM57hoICgjCTS8BoEgndwWIyc/nEmlYaUwmCo9QynY+UmW1WPWmVITEJPMdMK6A\nZqvvaWmuHJ6/vURaz+Hoc5D3z0yJDDCkv52bXV04ZoF6cbcWry7JvNA+djvay/4B\nRR4SZQ==\n-----END CERTIFICATE-----\n\nSecureTrust TWG Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C25181828DAC4F5F7DE4AFC87AD132\n-----BEGIN CERTIFICATE-----\nMIIG2zCCBMOgAwIBAgITBy8w6cJRgYKNrE9ffeSvyHrRMjANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMjAxMDA4MDY0OTQwWhcNMzAxMDA4MDY0ODQwWjBWMQswCQYDVQQGEwJVUzEUMBIG\nA1UEChMLU2VjdXJlVHJ1c3QxMTAvBgNVBAMTKFNlY3VyZVRydXN0IFRXRyBTZWN1\ncmUgRW1haWwgQ0EsIExldmVsIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCcD5Wc7H480gOv3ae6SELBls0oNOvpw1ZFjK55nLw+W6PhgqTGNEHlO/Ga\nWt13yS1iO1/WzRaUc2XsFRGcjv3QIfDZb+6UzhL1LL9ZE8zcs0B6fepn4smQg1yK\ngtAWGoD70Z9kEBtypkG23sO5xIiRACJWgRWVZ/891pQBBz+ElCxUnIyDGghHlWCD\nzn5dLoBIVic69Pfpi384uNoNfHV/WATUQEEnwY+5yMMUALAWrRD6Jeh5R4m9qKxG\nUlrO9ObDebK9mFEJvrCPtkTIWT1He4ZD58Lt0NIkaItQ7KsKF9wgwH7BTsRGwQXb\nP6/0LvfO8UDRKNE/4C39u9dwUw/Zpu2iNXTadVWBtaSDsrPFVb5rBu+pvn4l4Hw5\njtySyHAOWn4mhuxDXMuKBtaoTi/qF94d7N0CbqPdN9WSN79Cy2O0BexTGHSJVndX\nEbKyn96b5STPshKVpG9DmUekfnDtnHR9dmH74a05X/A8k/XeSJWXphM6NvyZap2A\nWiIkrS7MsfwnCdZlX+9WGY2qHxnm4Y6JdNah0qxozBbQHkqHsSN4k8O7zr2lfZhC\nuarm0Q1t6tjsmp7PUh26u6PCe0m+MctIrD6ZckUzZeuPduRb55K2p8MxjQSVNH1S\nJ2aaHp77qOYV+rvHXIL7le4OR5lDWyzYtXLc8u17/kLbUtgnmQIDAQABo4IBbTCC\nAWkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwQwHQYDVR0OBBYEFKpD9MNsQCriSoEcg6nez7XhG7bOMB8GA1Ud\nIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMEEGA1UdIAQ6MDgwNgYEVR0gADAu\nMCwGCCsGAQUFBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA1\nBgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dD\nQS5jcmwwdAYIKwYBBQUHAQEEaDBmMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC5z\nZWN1cmV0cnVzdC5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8vY2VydHMuc2VjdXJl\ndHJ1c3QuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBb\ntCXryLFewOafyNENB3NzgAQVVztwaWSyvF5FYSqav95JKcoHZzy3wG7aKlTPtGnq\n1QzJst03qPmZJ3j63obz2AvfEEzLEMlsPmOTy3B9oIrNzd2QhpGW1oF6pIgGB/VP\n5zh7U2ibUC+zRLmihwt+j2+7NBbuLbPozgxDTWh2f9O4rJb5bv98Q8RdbGrypBb9\nhOhDvmNCCfjSe+Q8myqsvawEG5p7s8gsIK/V3xbyqDihXjsGc7xeEWNftlU91jBL\nKPRbrLmXhhWnHJjYs4y5IHu735HA3aAT4TqURS9dGHOMVDRumkFpLqR2W7ptpDki\nOtIFZjO5smU29OD4AlcNUXqQuKEFasyTtkRlORnWhU37c36HB8dc57xWQKOf8pMq\n7lK+ublO9G4mO1Aqr9mioTN4oMONFJG4W5dWwG9baNg682ZACkvPaw45MqSztL3A\nKb4s2cDTWu/D34hV3oafkTwu8B7B2mFZnWRJ9q4akPmZF45uw4RZx2ALaYGGGs67\n+r5qS300As9ONg8hxfVkFQSHOc00IiBkgi3OpoCofEKTgDwZwHVqOJyyPjk6H9Sh\nZANmUOT2mGDLwl86Ar5bTu8ipzlsyDYQMFjho7WaVs8I5OXyVdONXDYLIOtpITGT\n1fRcXFzxYHhrNuFwrdj2zBVyvVD4O6xV97/9nv2Eng==\n-----END CERTIFICATE-----\n\nTrustwave Global Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AD30465CF22697F246B101EC92953B\n-----BEGIN CERTIFICATE-----\nMIIHCDCCBPCgAwIBAgITBs6C2a0wRlzyJpfyRrEB7JKVOzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBjjE3MDUGA1UEAxMuVHJ1c3R3\nYXZlIEdsb2JhbCBEb21haW4gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UE\nChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGljYWdvMREw\nDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQChh5brvvk/kFUZwhlUhqdsUmsMCBjzYqBBLnTyNrKPr4nd\nS9s2h2JvA+9TY7NnJc/Mq1eN5V6zqvbn/LN3c8W06f76xrVvFEKs5SzCefUS/V3Z\nC18dgwXXFrP+RgfK2kqfTHGIPrWoRSnUiLn3iUNEBtJ06oXjAqAMnAyL5AzD+eHm\nZzRK/yCw/gMPnVp2S7Dstka607fS4fW9Sl33mOMNwJRxEjQWHHR25PAb4muP6wjN\nvmoLMgiDMKseHSFVtC7SpmO89PsrUV6MahKJrZcAfquAyoO1zR2c2eGaCI/m8oSx\n3B7KiMZJ3NZims/siMp/5szemsutf36WJ31nmr7PqLJGJdVpoxbLckWIhZnNYSFm\n/pTutpNONqpyYC2gGSXdw5LuxU61913SbAPpk8DZiHi3WslHBo26ghXG++sgJUGj\nhtKZhiYlp8uD21WTP6/60wngpXyCtt9cpHxW1lXmqcxwe2J4/2S3xjHz1dC6BKxb\nr61HCPVrbTD90CZUpMI8JPdsVbz5eegv+SIyybHxZe4S0D9Kv5pgWfqdXf0BAiJC\nTbGwYmFr4uisKhkfMThyOgWEH+CRBzQqdZREQ5lTIlVyzi3jGPuu9Q6brAS9U9Ue\nQhUwX8TtY8Igfo8HlhjugDpy6WvDYQ9i+tG3AC6v8sJLdOOU83Lr+2C1LEF5ZwID\nAQABo4IBYTCCAV0wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYw\nEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFIaZQQzOP7aMcEnlkwfwhgcd\nLXqVMB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMD0GA1UdIAQ2MDQw\nMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29t\nL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9U\nV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzABhhpodHRwOi8vb2Nz\ncC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAmn0jp\n+lNp188KxjKQZtpJ3mixLmuqGdH6SVpRs40BYQg/68xOPH3C6AJ17tqE6IwZMW9s\nlgiO4B7khR3ESA6Sct3zmkA8woR/KJVzzegjscHhtQUifQ+Eb9Gi0ORNnetGV+5g\n5vlrFZMptBRGUxXMo2xa+Z/NTyimpMopfXj7qCW/nQWQbzvkQGchK9IokyqV2wra\ntX68/P3zleG+LLwzoJd5AhHYSXWrIRJpClZHN+LQKkbI3MYW7+upo/1e9HEmFKxu\n5SFV3nuQm5wSOsz/ZtIL1AS8IoZYxcSe1Q/yuV9GjnxtL1jkPbzsBx4eBGxUrcIe\nsBat6SI8G58uHTpIPpqUxRYsg8w0FdjK3kNBB5QWDeXiDxzqIRzA0iE1kHeTXRZ3\n7qgGXUcce7ciW5KqeRApjQbD5BSZG2EKkQ7aaOhvxK0LiuxHZnjPW4/fdEcaCuku\nMT5qMDiF2U85V9BvanEy/xkYn4I2UeK4EdSXe7q6j+CIJz9WnoLQDbIS04GqIWe0\nVRQUlx3idUWYSJU/SG8KrEHhlJLmgSjshCwtT6qo4vHwT5WcWDLIbjMqgL1iQ6JS\n4gxXuOGia3d0I4/wec5x23EWwx9V8BtDJ8N7NDeRNmZ8RXOHSYJsVQYIQuFUEXE1\nv3WMSIxuyQMyR5FYSCG9xnKRFzNmiPngDil5IA==\n-----END CERTIFICATE-----\n\nTrustwave Global Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D99FB3B180C281020314A2D1C7640017\n-----BEGIN CERTIFICATE-----\nMIIHFDCCBPygAwIBAgITBs6C2Z+zsYDCgQIDFKLRx2QAFzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBkDE5MDcGA1UEAxMwVHJ1c3R3\nYXZlIEdsb2JhbCBFeHRlbmRlZCBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMSEwHwYD\nVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xEDAOBgNVBAcTB0NoaWNhZ28x\nETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBAMRO7orfWjfmz6Y6qoAmDp2lqCJcdvbRQ8w18rl1JE3j\nf/1CScZLrnLg4RDm8JiRcvFuvoMXn/XNUWy5ICG57tjG2nO7jvBuXfvbdkGA+foN\n3yJKMTX/PmmGlN4qpzFtsB0kLrP14/0TRGeJB7qDfAFH0ReFk0ftQobLBGBOpEca\n+bv+LhcTe40/uNUSK2yQ9GpIw200mcsD3B9c29Im4tSZFuA2o1vnEeizYW5M4sPX\nHu7p5ZCxjJrXVNqWUPM38rShhMUNL5uaVYWoi7TG5JXbg0Lmt2nq1k5nnig9Yp/W\nlAFooWXjKQzHf/z+XZ57bqPe7SzLW5pzpZdSmY2VRybAwEmzMjCXgHiP2ru3TpAD\n+giakPDoz3ZmbKjwYKZ5PmnOmXx0Z2GloO37MjamjPor/+fZohfyma7VAQE8znJt\nI9MVoRN3G3gW/tuT3jXfzYdFBlfGoO7OYyLN1LK5YBKH2qXrCHD8rG2DauBt7U+w\nfOvwfkp8FcdTnfQ92Xe65U3Xdu0eCgQJbChxZtWhhLnbY6xhmwAWyJ1my+Im72Kx\nGP/XcA8SH2sz6/k0782BjRckDuFpVVpTNYl9wqe/tuOrZhWPapOsRlfsDTuhgGu5\n2inM9sU3CAzmFE85zoRQFZQSof3kFN2rUZF20bmTak99cBNLli6/ja3+KntpZ08d\nAgMBAAGjggFrMIIBZzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB\nhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFHM4IMZH\nbabGL3tQ4EDe3sedR958MB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6H\nMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50\ncnVzdHdhdmUuY29tL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9UV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzAB\nhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDov\nL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEB\nCwUAA4ICAQBwnSHECaf+hfGrm3Cg+aRr57ytoOSzI1DjlTNcM7k4uSt6kJRPHJ4c\nldIujMaETV52RgE6ykaMGkuIwQOIsLI6SXwjU1f5gXFUbDTS3KTWc/jwQeyLmdOe\nhvc+wBSFv8d10Sx/Qiti8mqsTqr0+N94Cx01+SkiWxWWoSZOAPkz8DMQGlD4yndK\nceTMGtQ03cLnD/36Mv6tz/Ds9l/OExrJGGxHD0tmYwYwBZpPHm7BBY2ZzycVxLcg\n+uuggcX1pg5MhJ1rDyod+7X+ilvTgH7ftHCmxvR7viMLwSUuytZ05zb2teRQgU+8\niWnPEHO/ADm5VD1Zb5Rx0579/YEENBJtGUPPJzo+JEpiZIOIlwZ69ETWWNCLZr0V\nvoi+SDl65cr+dgR9JreJ2I4W9FzS45ruxYEC8LGKEmV46sAk1YLbnIBmhehAKy9t\nP8RVz3QXYJ6rLOAuXF7R2eVV0SqfivW9bVzvBZTUTFsbdSMBAAF1BJjdRqYR63DI\ncQASY7CRoUiak1NTgPkzeV8VcNJmUt8c2eKJIifqBAjquH6+6UXs9Ol0aMPn6v0y\nB+TSuxhX2sSrpna9QcOh/QyoR5Hvcd81rZSbMc7yasKoUMXviotV1SfEqs3RU5Ts\nwnU4NHPn5ITRiuh5VMuvB/VnjnPC953u5uqAGtZ8BkC7X9cu5E0rMQ==\n-----END CERTIFICATE-----\n\nTrustwave Global Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A69703AEFE5D37D18858C74026B004\n-----BEGIN CERTIFICATE-----\nMIIHGDCCBQCgAwIBAgITBs6C2aaXA67+XTfRiFjHQCawBDANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBlDE9MDsGA1UEAxM0VHJ1c3R3\nYXZlIEdsb2JhbCBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEh\nMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGlj\nYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3\nDQEBAQUAA4ICDwAwggIKAoICAQC8BzZtA3eWejFOGHc2DLgex6P471dLWIIHSlrF\nY4a2BCtzAd/VlpQ3gslWnTgthOmK2/hCc+WSaOLPVZzZf3lGnxbb0+Y87Kx+nS1m\nIfJ/4OR6o8XLMLoCTAI1jsWxggiB4NBMqsW2xXQ5VAvBb66KEQYbshNlRpTbtBFq\nEed4YIvCdjbnCUOy1zubgVHUVyCFHzN4XPjEQCtT5vZM576Lt10Je9COnqG0CtPU\nQNP2tjnSmOOYdWcVRZ0UqXUl2fMBfmSDHd8902foigjpP04AYYbq6AetqEgqdvQP\nxz5pVbZqzy8UrE/s/raJLFyTuIAYVt18M0whSgWzGgUWkq2xRqbfn7b1hd56dwRb\nR7pKc51FyTbeocnKlYLC+Dlzp7iKQ3Pb7WHRwLhaJB7u4CzwqhUxHc0xplMYsq92\nMbZ6WN5L5mI7hxY8gLMOR7vNX9CKz9XcYRS01iCDe5Y/9muW8bzGyNXLX1YaHAy4\n+6ncksb3Y3RUKj3f0+T4nbiRISmGazravJKSssBLP3kPa9h5aX+Vd00eL+Q7sXrh\nFO7xz+oWtOL5rfVszyc87JQvjw1sDHA710nViqzUE1bJZNe61EXdCb/RV+Wsu+rO\ncAMSr5x2j/wW875sh+U3EJmTzdEBUBxHnBD2mDTyonT7wL47TRXTEO1IaS4mVbnv\no0jWvQIDAQABo4IBazCCAWcwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E\nBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBS3\n/VNzOCaKcKuTyoupCOrH07fj/TAfBgNVHSMEGDAWgBSZ4BlnDWLbdrPaPbhb6P1C\n0jEOhzA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9z\nc2wudHJ1c3R3YXZlLmNvbS9DQTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js\nLnRydXN0d2F2ZS5jb20vVFdHQ0EuY3JsMG4GCCsGAQUFBwEBBGIwYDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wNgYIKwYBBQUHMAKGKmh0\ndHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR0NBLmNydDANBgkqhkiG\n9w0BAQsFAAOCAgEAFXwfmELpEGKUguzVTMix79XbUnkfLa7IXcqBOrwOWEF1V8F1\nxGY6jLlUTtoEXRYZwCpqOK/i4m4nmWCYE45O7URR8nqeFffceTi62t4Yvh6LkC9g\nUnj3aChLiO/Zdxilq6vfsXO0mKafrGtZXwjyskS250Pj9DsANs57QqvYN4hqbplJ\nzc95p09OUvEhPiyRyx6FyY28U+3X6+mSNMJWd4Nhr+3HtvmItLIXP2JCLxuYtu/K\n6nKcpFCFFKeF8K3PWpjsAb0hfXL4vc3WfyCYsQnvJeisyAh7yEuge2iDwl1/xXIo\nEOAyyYAxvy5UnzcAa0Z2lwjptve+jZ4gQ+A1ioYUavR3pSfBNzuJW30nZCWFadKc\nNXOPoAPkK8JLxgRBH3JboeBCXG6xgy/pXrTjyhW7/SS+Z+7eKkp9jgdTVQ12yUtc\nCiYWUuM4l240D/z+s03WOEcLTluESwFkJhzs3D9i5crTL72uSkDDmlh8HXoPAyYO\nl3Mn9cGWhd8M8IeQRXmb6O7gvvQZDoSXDVDbjBKcW1lFpi0wBxIBzLaOi4CX4OhI\nJHJ/H3duOMaltuzXLSLkc26jwHzMeq8seQRSXraXJi1t5oBKlmEWFEgq6xlH7mLW\n3TOqS19cuiSWl/CsnlLGaW8MH5YHmk+MJxQE1BcLBs6ciapvHlhLEd9EUpU=\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-256 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C4627001DECFEBF6BF5D3B1066D7E3\n-----BEGIN CERTIFICATE-----\nMIIDbTCCAxKgAwIBAgITBy8w6cRicAHez+v2v107EGbX4zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTI1NiBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAT4KazLm94aiykBGkNQVkBrjmK77RlP627D2n3EwK3s\n49ljRkN6wiTWXHx3jPD5BBE/7mWhGWnphzGu1Deb6yzco4IBdTCCAXEwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUH\nAwQwHQYDVR0OBBYEFHMQ2nwjQr8tFHfBImxM7ct8lbBYMB8GA1UdIwQYMBaAFKNB\nBqyQbdFK63WlShCZs7Ghi0r3MEEGA1UdIAQ6MDgwNgYEVR0gADAuMCwGCCsGAQUF\nBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA5BgNVHR8EMjAw\nMC6gLKAqhihodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dQMjU2Q0EuY3Js\nMHgGCCsGAQUFBwEBBGwwajAoBggrBgEFBQcwAYYcaHR0cDovL29jc3Auc2VjdXJl\ndHJ1c3QuY29tLzA+BggrBgEFBQcwAoYyaHR0cDovL2NlcnRzLnNlY3VyZXRydXN0\nLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAN8G\nPwKUpMgV3LZjq7fuKS96f15BrwBjmTlKhOwgX83BAiEA9WpWhzRRoKeJGAqqXrMk\nZ8RE9xRtOFBqYdv9H5CeTVk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AF531423847B85FB677932AAF80508\n-----BEGIN CERTIFICATE-----\nMIIDmDCCAz+gAwIBAgITBs6C2a9TFCOEe4X7Z3kyqvgFCDAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\nWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATWpfTIQFPkZIoXXMDN9utRU+AbLGcg\nBmLA06x2qqdcpCMlYFoJhuRWzYCiqz1mKrAvNlQYkgoHfemk92sf8iaro4IBaTCC\nAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwEwHQYDVR0OBBYEFA/DUGGZflb1xtmcOeiDWJAHuhq0MB8GA1Ud\nIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2MDQwMgYEVR0gADAq\nMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1Ud\nHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMjU2Q0Eu\nY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1\nc3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNv\nbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDRwAwRAIgICvA5ttD\n0oeUcd37iYvoQ7iMIpZINp4e1j5NrlI3UnYCIEZhimm9+1dUWAfx9ZkGmIu0HiHR\nzEZifAHbPM3SJbRu\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A20A3797CD878EB3DAA41D08680AF7\n-----BEGIN CERTIFICATE-----\nMIIDpjCCA0ugAwIBAgITBs6C2aIKN5fNh46z2qQdCGgK9zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKXHfFxFDVI6uYWZlWciFFKtYzuJ\n+IBhot3PQGikE3sjU8d9dARkZCkInqmDyP/+XiLzgrYPMy7NS8lZcRsE5p2jggFz\nMIIBbzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUE\nFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFAwlVqqzYgakv+7gGxtX\nzC8s9g1QMB8GA1UdIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9UV0dQMjU2Q0EuY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wu\ndHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwID\nSQAwRgIhALahroq1NScrFeCvG5uMgMKH/bo190D+Mkh2ZIojrUOfAiEAosFXFE73\n0WLRPjX2uOkLhXuA4cQEb1R1oeGDH4MNVOo=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A8B57C104843994DACD79E28633E5F\n-----BEGIN CERTIFICATE-----\nMIIDqDCCA0+gAwIBAgITBs6C2ai1fBBIQ5lNrNeeKGM+XzAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmHWo0mogvX1J61xysTqsn\n6qV06wxUH68/QJ2aDIka6beTrDoTZv3mIkyPxFTPy+9idjgSAERlBsDirgO2/NiY\no4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwHQYD\nVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBSv+Ju8XTSl3tA+\nFCldDY4lrbClhTAfBgNVHSMEGDAWgBSjQQaskG3RSut1pUoQmbOxoYtK9zA9BgNV\nHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9DQTA3BgNVHR8EMDAuMCygKqAohiZodHRwOi8vY3JsLnRydXN0d2F2\nZS5jb20vVFdHUDI1NkNBLmNybDByBggrBgEFBQcBAQRmMGQwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8v\nc3NsLnRydXN0d2F2ZS5jb20vaXNzdWVycy9UV0dQMjU2Q0EuY3J0MAoGCCqGSM49\nBAMCA0cAMEQCIGa3JyBYlXxRN5GIIulLaDxnANNRnY4j1Et166CCC5h+AiAVUlzJ\nIJTfUDBU7jnSTKSw/F+bLIPvaC6frMZv0h+RTA==\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-384 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C58D91DEF98A7F9EB2666CFE7BE1EE\n-----BEGIN CERTIFICATE-----\nMIIDqjCCAy+gAwIBAgITBy8w6cWNkd75in+esmZs/nvh7jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTM4NCBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwdjAQBgcqhkjO\nPQIBBgUrgQQAIgNiAAR4nTJ6MvtPBb7+L3tklhdDw0tr5FNY5Q1hsp6NR5OzZVeG\nx/X3VrCvkOsae1OEZHNqWCnnI1s/ix9qn/2+q0pPpXrT6wkN/HOQzpQaJWzCF7yX\nIfIB0o+x1Pr17UOX2qGjggF1MIIBcTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud\nDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDBDAdBgNVHQ4EFgQUJd3xyUp6\n6EP6L9hCmkRrWAcU2mwwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ymB07I552+gpAw\nQQYDVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMu\nc2VjdXJldHJ1c3QuY29tL0NBMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu\nc2VjdXJldHJ1c3QuY29tL1RXR1AzODRDQS5jcmwweAYIKwYBBQUHAQEEbDBqMCgG\nCCsGAQUFBzABhhxodHRwOi8vb2NzcC5zZWN1cmV0cnVzdC5jb20vMD4GCCsGAQUF\nBzAChjJodHRwOi8vY2VydHMuc2VjdXJldHJ1c3QuY29tL2lzc3VlcnMvVFdHUDM4\nNENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA8X5zwZHtdHjLIn60rwG3Z3NAa6cU\n6gOFxyF+ksTCXvWCUP0oFUqsRPMKMYE2mtdQAjEA2diuEHTPUgCQ0ynhLjged8BO\nFyzL3UlFieGGp90v58gUpfjoFq0BReAw7MPYo/Qa\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9B07A17CC5376157813389A2930A44A\n-----BEGIN CERTIFICATE-----\nMIID1TCCA1ygAwIBAgITBs6C2bB6F8xTdhV4EziaKTCkSjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAASxlBEflNumTKsypgdOscM2x6ZRpQGSyB4B\nhJScRQI81UhZvzYSwxPWcxNZwFQoV457HfqR51pviJnHltRS8MJhJ9Q9Rf1sSmy4\nW6SPsM9qnBjwfBRxghByIsEIaTW/PKyjggFpMIIBZTASBgNVHRMBAf8ECDAGAQH/\nAgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4E\nFgQUp6etGGS1u/oGGEfIwJ68Zf9pAWAwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ym\nB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBz\nOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDov\nL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYIKwYBBQUHAQEEZjBk\nMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA6BggrBgEF\nBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHUDM4NENB\nLmNydDAKBggqhkjOPQQDAwNnADBkAjA6fS1jRjt+DvnWSI58v4lX+8DCXbdEhDaB\nbBOS/rXwS/ntsFXqTf0B90GPv3AWlFMCMBbz6nXMwX0jKRkaFZOZx9tvwUapdq7M\n6jYpT/NnAzH68x1t3/7ysZ8lPuKIqAwdKQ==\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A331594530006781829387E40DBCB6\n-----BEGIN CERTIFICATE-----\nMIID4zCCA2igAwIBAgITBs6C2aMxWUUwAGeBgpOH5A28tjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzB2MBAGByqGSM49AgEGBSuBBAAiA2IABKcVGieqBjW3BuVza9VhkBlpGLHLZqQg\nI0GXaTpt5CogNWz6BmlZ1yAPjRnDUVfVwl57ATRtV7u+5TPFzKZ+RheFVc0iA8vl\nQ2JINGRz8XLDaivvuygQtFKSzCWn4e66cKOCAXMwggFvMBIGA1UdEwEB/wQIMAYB\nAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF\nBQcDATAdBgNVHQ4EFgQUMFfit09gayJACkNfT/oNzXO8JCcwHwYDVR0jBBgwFoAU\nVamEidLBMr0Yy2ymB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYB\nBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAs\noCqgKIYmaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYI\nKwYBBQUHAQEEZjBkMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUu\nY29tLzA6BggrBgEFBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3Vl\ncnMvVFdHUDM4NENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA6pScrGT+SruK7iON\n7iDJZfhQsjfQIhaq9sHiEXd89B8ibWOb57no/K265dPxeuALAjEA27NTMZM344eT\nX3df9B22dY5ZshsUMIiRcMo1K4B/GBO8SIA0jParkHS5g4WO5K7O\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A9D8E29837EF90BEAF59DC6551BED6\n-----BEGIN CERTIFICATE-----\nMIID5jCCA2ygAwIBAgITBs6C2anY4pg375C+r1ncZVG+1jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATvG09PrsO8UQZhH5Zw54rwgcUw\nKjC9D2V3myjD5WOa8uxdTL8PzdwPk4TCcSf6UUG1Tt74j/I+vBOi2tgMcDt68Zld\nvTj+jZT1BBYTQtYh6/dOUjmiapQU5XqoFMRNubGjggFzMIIBbzASBgNVHRMBAf8E\nCDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYI\nKwYBBQUHAwEwHQYDVR0OBBYEFDoXwH5iO1eguEDKzDRHzZZ+/AmIMB8GA1UdIwQY\nMBaAFFWphInSwTK9GMtspgdOyOedvoKQMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgG\nCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1UdHwQw\nMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMzg0Q0EuY3Js\nMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9p\nc3N1ZXJzL1RXR1AzODRDQS5jcnQwCgYIKoZIzj0EAwMDaAAwZQIwMyHlVCVMacxP\nO0fC+uc4M7Eq1F9woaWBmLSSNC6EWe3nShMqsR9HrNWrOHBHucNWAjEArwrzEM8g\nJkR4iZxbyYNIn2sNEkNZt2pxqJn4G2cDDDFfOarykKVzP1aJ9OMdYUvs\n-----END CERTIFICATE-----\n\nTrustwave S/MIME SHA256 CA, Level 1\nXRamp Security Services Inc\n3A83B71EE02C3CCA1CE1A2643E9B66EA\n-----BEGIN CERTIFICATE-----\nMIIFHTCCBAWgAwIBAgIQOoO3HuAsPMoc4aJkPptm6jANBgkqhkiG9w0BAQsFADCB\ngjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk\nMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY\nUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQxMDAxMTky\nMjM4WhcNMjQwOTI4MTkyMjM4WjCBpDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCEls\nbGlub2lzMRAwDgYDVQQHEwdDaGljYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9s\nZGluZ3MsIEluYy4xLDAqBgNVBAMTI1RydXN0d2F2ZSBTL01JTUUgU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4c5I5giD0wEh+RuoLIJkD7a6mBlm\n+YzTtXSefGejVVYtpjclkUl4C4hEfQMCUcrBnU3ORHVprXi/Q82dKNFPac8FI9bj\n8mtq0cjdSDfXJKfdf52wPXnTjASwKyhJt+CoJik+Fz72KAkjxi+OUSpWdQBeAQra\ndbtu4UGFTgPcuU/cwpF8J0g4CGk/saVKkkJNpq5wqpfQRYl025FyKbzmRjqhB/Ta\npoHlbHMQ7aeoZ+qtDC+eWnE3AqTUHx14Z5fegjLQRmPWqqdeZafthouglbEuHt4A\neyzefTDNwyXjUiRD/n0kaNNW+lcsLpw7ouw1OU8mwQ0C7LoPJljpXRjvOwIDAQAB\no4IBaTCCAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUDDOjV6rjq9ZL\ncBs2nqPtYVDmr3QwDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYPKwYBBAGB\n7RgDAwMFBAMDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29t\nL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29j\nc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwQwHwYD\nVR0jBBgwFoAUxk+iPQZjhAmczmLkBKyNXLXpthswDQYJKoZIhvcNAQELBQADggEB\nAIdGLHufUegzFKVBQVWs3YAIFqCcJvdak14TMRImxJsnQWLz+jIW0olC0JATY6Ng\nxAbjIJA4wtW/tA+rgE6WcA5y3bLN3bRMQVDSu6X26hkVjvwo4/VYykOp3e9Cqlfe\ngJAsrqBQKXkUpEbYEmmorXxj6/74e//xwXTz0XS0BS9cXhONlTQffyJnMeLaunzQ\nS1x/MvALfPCHCZCTOfLDmwylKtHHu+V2Ks0HV+ZrzCBRR5W3MhGTU7PpNEMQwyGF\n+MG5eZTd0jyxOSOjaXQm7iDh0tG/iKZZegn5AhNdaHE74QEHTjK+teLQlo60QGBk\necyzakgVYZ/Ezalz8nQwhCA=\n-----END CERTIFICATE-----\n\nTrustwave XRamp Global Extended Validation CA, Level 1\nXRamp Security Services Inc\n00D3D519C2B2EB5C7040F64CBC957BBD2C\n-----BEGIN CERTIFICATE-----\nMIIFMDCCBBigAwIBAgIRANPVGcKy61xwQPZMvJV7vSwwDQYJKoZIhvcNAQELBQAw\ngYIxCzAJBgNVBAYTAlVTMR4wHAYDVQQLExV3d3cueHJhbXBzZWN1cml0eS5jb20x\nJDAiBgNVBAoTG1hSYW1wIFNlY3VyaXR5IFNlcnZpY2VzIEluYzEtMCsGA1UEAxMk\nWFJhbXAgR2xvYmFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MDgxMjIw\nMTczMVoXDTI1MDgwOTIwMTczMVowgbcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJ\nbGxpbm9pczEQMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhv\nbGRpbmdzLCBJbmMuMT8wPQYDVQQDEzZUcnVzdHdhdmUgWFJhbXAgR2xvYmFsIEV4\ndGVuZGVkIFZhbGlkYXRpb24gQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNh\nQHRydXN0d2F2ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9\nAAbj9SknrNJT9pDatGvlR386KRi0SkqIOGr+C5W91+8E8PqydEHwjrnrWt/MTLGO\n+2kfEO3TEJlWxQQqbHy8SdhjCANefLzOT1cfTfjroWBIS9yiHpBIQytAaz/td95Y\n+JKrRBVCnIR/wB5qMMQ982RWwqggD763XLma0c1AIndsZL+dXp1zET4KBreoxn3q\nRYzMIsZIL2mAJoiCOTYuOGrOMVuaQn0HSu3K7bU+CpkdLQ/j+ikcQiI10IL9oOcO\nU9Gnt/hRyUX66Gk91RIpYXhla2tIYrg7ezrAnFoZIZCb891JjFtbSEOvAAK9F5d6\nfkkjPx0432o/v1c5GRFPAgMBAAGjggFoMIIBZDASBgNVHRMBAf8ECDAGAQH/AgEA\nMB0GA1UdDgQWBBTFzrk7QkXAzQnlaOhIOoNdbI6rGDAOBgNVHQ8BAf8EBAMCAYYw\nPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRy\ndXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVz\ndHdhdmUuY29tL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZ\naHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3Nz\nbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwHQYDVR0lBBYwFAYIKwYB\nBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFMZPoj0GY4QJnM5i5ASsjVy16bYb\nMA0GCSqGSIb3DQEBCwUAA4IBAQCA2N/WVTGYRGNTuvF2qKWPrQUx0/6pKmGqELl6\nNXs1bwRXCci98SkeNjiaa2dHEwcGR43/M1Y0nekXP8QCEFVqGOwaY0pnTb8wL+CI\n/HTp1zfmoCYNvtzt1fIq/+9ynLYEjX8rsrf51HIEjJJK8K3k/Ub3cFT+yJKNN2YN\nJS0IvJYlbpqS6VbcInwLcW7WvJmXUuL7t0Vtt0d2q1h5UdnJQP+skiOmN/B0zPut\nbRC4v5pNGJJmwbk58UlOSeviH2qzDGutamOJ6dFNWqQFoZorAT7fUsr3WDA4HKtx\neraYdCIRJX7weW9xpdMNsVO7Wy/Ma7Fz9fzKnOH5mnInBOof\n-----END CERTIFICATE-----\n\nSecure Global CA\nSecureTrust Corporation\n075622A4E8D48A894DF413C8F0F8EAA5\n-----BEGIN CERTIFICATE-----\nMIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx\nMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg\nQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ\niQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa\n/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ\njnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI\nHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7\nsFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w\ngZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw\nKaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG\nAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L\nURYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO\nH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm\nI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY\niNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc\nf8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW\n-----END CERTIFICATE-----\n\nSecureTrust CA\nSecureTrust Corporation\n0CF08E5C0816A5AD427FF0EB271859D0\n-----BEGIN CERTIFICATE-----\nMIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz\nMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv\ncnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz\nZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO\n0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao\nwW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj\n7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS\n8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT\nBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg\nJYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC\nNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3\n6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/\n3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm\nD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS\nCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR\n3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=\n-----END CERTIFICATE-----\n\nTrustwave Global Certification Authority\nTrustwave Holdings, Inc.\n05F70E86DA49F346352EBAB2\n-----BEGIN CERTIFICATE-----\nMIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw\nCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x\nITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1\nc3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx\nOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI\nSWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI\nb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn\nswuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu\n7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8\n1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW\n80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP\nJqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l\nRtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw\nhI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10\ncoos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc\nBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n\ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud\nEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud\nDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W\n0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe\nuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q\nlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB\naCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE\nsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT\nMaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe\nqu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh\nVicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8\nh6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9\nEEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK\nyeC2nOnOcXHebD8WpHk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P256 Certification Authority\nTrustwave Holdings, Inc.\n0D6A5F083F285C3E5195DF5D\n-----BEGIN CERTIFICATE-----\nMIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG\nSM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN\nFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w\nDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw\nCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh\nDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P384 Certification Authority\nTrustwave Holdings, Inc.\n08BD85976C9927A48068473B\n-----BEGIN CERTIFICATE-----\nMIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ\nj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF\n1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\nA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3\nAZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC\nMGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu\nSw==\n-----END CERTIFICATE-----\n`;", "export const PKG_NAME = \"__PACKAGE_NAME__\";\nexport const PKG_VERSION = \"__PACKAGE_VERSION__\";\nexport const BUILD_VERSION = \"__BUILD_VERSION__\";\n", "import { join } from \"@hpcc-js/util\";\nimport { createConnection, IConnection, IOptions, ResponseType } from \"./connection.ts\";\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 } else {\n this.message = \"\";\n }\n }\n}\n\nexport function isExceptions(err: any): err is Exceptions {\n return err instanceof ESPExceptions || (err.isESPExceptions && Array.isArray(err.Exception));\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, abortSignal?: AbortSignal, espResponseField?: string): Promise<any> {\n const request = { ..._request, ...{ ver_: this._version } };\n if (largeUpload) {\n request[\"upload_\"] = true;\n }\n if (abortSignal) {\n request[\"abortSignal_\"] = abortSignal;\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[espResponseField || (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 });\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 opts() {\n return this._connection.opts();\n }\n\n connection(): ESPConnection {\n return this._connection.clone();\n }\n}\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 (fetch[\"__setGlobalDispatcher\"]) {\n fetch[\"__setGlobalDispatcher\"](fetch[\"__defaultAgent\"]);\n }\n\n if (opts.baseUrl.indexOf(\"https:\") === 0) {\n // NodeJS / node-fetch only ---\n if (opts.rejectUnauthorized === false && fetch[\"__rejectUnauthorizedAgent\"]) {\n if (fetch[\"__setGlobalDispatcher\"]) {\n fetch[\"__setGlobalDispatcher\"](fetch[\"__rejectUnauthorizedAgent\"]);\n } else {\n requestInit[\"agent\"] = fetch[\"__rejectUnauthorizedAgent\"];\n }\n } else if (fetch[\"__trustwaveAgent\"]) {\n requestInit[\"agent\"] = fetch[\"__trustwaveAgent\"];\n }\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 if (request.upload_) {\n delete request.upload_;\n action += \"?upload_\";\n }\n let abortSignal;\n if (request.abortSignal_) {\n abortSignal = request.abortSignal_;\n delete request.abortSignal_;\n }\n return doFetch(opts, action, {\n method: \"post\",\n body: serializeRequest(request, opts.encodeRequest),\n signal: abortSignal\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 let abortSignal;\n if (request.abortSignal_) {\n abortSignal = request.abortSignal_;\n delete request.abortSignal_;\n }\n return doFetch(opts, `${action}?${serializeRequest(request, opts.encodeRequest)}`, {\n method: \"get\",\n signal: abortSignal\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 { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace FileSpray {\n\n export type int = number;\n export type double = number;\n export type base64Binary = string;\n export type long = number;\n export type dateTime = string;\n\n export enum DFUWUActions {\n Delete = \"Delete\",\n Protect = \"Protect\",\n Unprotect = \"Unprotect\",\n Restore = \"Restore\",\n SetToFailed = \"SetToFailed\",\n Archive = \"Archive\"\n }\n\n export interface AbortDFUWorkunit {\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 AbortDFUWorkunitResponse {\n Exceptions: Exceptions;\n }\n\n export interface Copy {\n sourceLogicalName: string;\n destGroup: string;\n destGroupRoxie: string;\n destLogicalName: string;\n sourceDali: string;\n srcusername: string;\n srcpassword: string;\n overwrite: boolean;\n ensure: boolean;\n replicate: boolean;\n ReplicateOffset: int;\n maxConnections: int;\n throttle: int;\n transferBufferSize: int;\n nosplit: boolean;\n norecover: boolean;\n compress: boolean;\n Wrap: boolean;\n Multicopy: boolean;\n SourceDiffKeyName: string;\n DestDiffKeyName: string;\n superCopy: boolean;\n push: boolean;\n pull: boolean;\n ifnewer: boolean;\n noCommon: boolean;\n encrypt: string;\n decrypt: string;\n preserveCompression: boolean;\n DFUServerQueue: string;\n ExpireDays: int;\n KeyCompression: string;\n }\n\n export interface CopyResponse {\n Exceptions: Exceptions;\n result: string;\n }\n\n export interface CreateDFUPublisherWorkunit {\n DFUServerQueue: string;\n }\n\n export interface result {\n ID: string;\n DFUServerName: string;\n ClusterName: string;\n JobName: string;\n Queue: string;\n User: string;\n isProtected: boolean;\n Command: int;\n CommandMessage: string;\n PercentDone: int;\n SecsLeft: int;\n ProgressMessage: string;\n SummaryMessage: string;\n State: int;\n SourceLogicalName: string;\n SourceIP: string;\n SourceFilePath: string;\n SourceDali: string;\n SourceRecordSize: int;\n SourceFormat: int;\n RowTag: string;\n SourceNumParts: int;\n SourceDirectory: string;\n DestLogicalName: string;\n DestGroupName: string;\n DestDirectory: string;\n DestIP: string;\n DestFilePath: string;\n DestFormat: int;\n DestNumParts: int;\n DestRecordSize: int;\n Replicate: boolean;\n Overwrite: boolean;\n Compress: boolean;\n SourceCsvSeparate: string;\n SourceCsvQuote: string;\n SourceCsvTerminate: string;\n SourceCsvEscape: string;\n TimeStarted: string;\n TimeStopped: string;\n StateMessage: string;\n MonitorEventName: string;\n MonitorSub: boolean;\n MonitorShotLimit: int;\n SourceDiffKeyName: string;\n DestDiffKeyName: string;\n Archived: boolean;\n encrypt: string;\n decrypt: string;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n preserveCompression: boolean;\n expireDays: int;\n PreserveFileParts: boolean;\n FileAccessCost: double;\n KbPerSecAve: int;\n KbPerSec: int;\n }\n\n export interface CreateDFUPublisherWorkunitResponse {\n Exceptions: Exceptions;\n result: result;\n }\n\n export interface CreateDFUWorkunit {\n DFUServerQueue: string;\n }\n\n export interface CreateDFUWorkunitResponse {\n Exceptions: Exceptions;\n result: result;\n }\n\n export interface DFUWUFileRequest {\n Wuid?: string;\n Type?: string;\n PlainText?: string;\n }\n\n export interface DFUWUFileResponse {\n Exceptions: Exceptions;\n file: string;\n }\n\n export interface DFUWUSearchRequest {\n\n }\n\n export interface ClusterNames {\n ClusterName: string[];\n }\n\n export interface DFUWUSearchResponse {\n Exceptions: Exceptions;\n ClusterNames: ClusterNames;\n }\n\n export interface wuids {\n Item: string[];\n }\n\n export interface DFUWorkunitsActionRequest {\n wuids?: wuids;\n Type?: DFUWUActions;\n }\n\n export interface DFUActionResult {\n ID: string;\n Action: string;\n Result: string;\n }\n\n export interface DFUActionResults {\n DFUActionResult: DFUActionResult[];\n }\n\n export interface DFUWorkunitsActionResponse {\n Exceptions: Exceptions;\n FirstColumn: string;\n DFUActionResults: DFUActionResults;\n }\n\n export interface DeleteDFUWorkunit {\n wuid: string;\n }\n\n export interface DeleteDFUWorkunitResponse {\n Exceptions: Exceptions;\n result: boolean;\n }\n\n export interface DeleteDFUWorkunits {\n wuids: wuids;\n }\n\n export interface DeleteDFUWorkunitsResponse {\n Exceptions: Exceptions;\n }\n\n export interface Names {\n Item: string[];\n }\n\n export interface DeleteDropZoneFilesRequest {\n DropZoneName?: string;\n NetAddress?: string;\n Path?: string;\n OS?: string;\n Names?: Names;\n }\n\n export interface Despray {\n destGroup: string;\n sourceLogicalName: string;\n destIP: string;\n destPath: string;\n destPlane: string;\n dstxml: base64Binary;\n overwrite: boolean;\n maxConnections: int;\n throttle: int;\n transferBufferSize: int;\n splitprefix: string;\n norecover: boolean;\n wrap: boolean;\n multiCopy: boolean;\n SingleConnection: boolean;\n DFUServerQueue: string;\n compress: boolean;\n encrypt: string;\n decrypt: string;\n }\n\n export interface DesprayResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface DfuMonitorRequest {\n EventName?: string;\n LogicalName?: string;\n Ip?: string;\n Filename?: string;\n Sub?: boolean;\n ShotLimit?: int;\n }\n\n export interface DfuMonitorResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface DropZoneFileSearchRequest {\n DropZoneName?: string;\n Server?: string;\n ECLWatchVisibleOnly?: boolean;\n NameFilter?: string;\n }\n\n export interface PhysicalFileStruct {\n name: string;\n Server: string;\n isDir: boolean;\n filesize: long;\n modifiedtime: string;\n Path: string;\n Files: Files;\n }\n\n export interface Files {\n PhysicalFileStruct: PhysicalFileStruct[];\n }\n\n export interface DropZoneFileSearchResponse {\n Exceptions: Exceptions;\n Files: Files;\n Warning: string;\n }\n\n export interface DropZoneFilesRequest {\n DropZoneName?: string;\n NetAddress?: string;\n Path?: string;\n OS?: string;\n Subfolder?: string;\n ECLWatchVisibleOnly?: boolean;\n DirectoryOnly?: boolean;\n }\n\n export interface DropZone {\n Name: string;\n NetAddress: string;\n Path: string;\n Computer: string;\n Linux: string;\n }\n\n export interface DropZones {\n DropZone: DropZone[];\n }\n\n export interface DropZoneFilesResponse {\n Exceptions: Exceptions;\n DropZoneName: string;\n NetAddress: string;\n Path: string;\n OS: int;\n ECLWatchVisibleOnly: boolean;\n DropZones: DropZones;\n Files: Files;\n }\n\n export interface EchoDateTime {\n dt: dateTime;\n }\n\n export interface EchoDateTimeResponse {\n result: dateTime;\n }\n\n export interface FileListRequest {\n DropZoneName?: string;\n Netaddr?: string;\n Path?: string;\n Mask?: string;\n OS?: string;\n DirectoryOnly?: boolean;\n }\n\n export interface files {\n PhysicalFileStruct: PhysicalFileStruct[];\n }\n\n export interface FileListResponse {\n Exceptions: Exceptions;\n Netaddr: string;\n Path: string;\n Mask: string;\n OS: int;\n DirectoryOnly: boolean;\n AcceptLanguage: string;\n files: files;\n }\n\n export interface GetDFUExceptions {\n wuid: string;\n }\n\n export interface DFUException {\n Code: int;\n Message: string;\n }\n\n export interface result2 {\n DFUException: DFUException[];\n }\n\n export interface GetDFUExceptionsResponse {\n Exceptions: Exceptions;\n result: result2;\n }\n\n export interface ProgressRequest {\n wuid?: string;\n }\n\n export interface ProgressResponse {\n Exceptions: Exceptions;\n wuid: string;\n PercentDone: int;\n SecsLeft: int;\n KbPerSecAve: int;\n KbPerSec: int;\n SlavesDone: int;\n TimeTaken: string;\n ProgressMessage: string;\n SummaryMessage: string;\n State: string;\n }\n\n export interface GetDFUServerQueuesRequest {\n DFUServerName?: string;\n }\n\n export interface GetDFUServerQueuesResponse {\n Exceptions: Exceptions;\n Names: Names;\n }\n\n export interface GetDFUWorkunit {\n wuid: string;\n }\n\n export interface GetDFUWorkunitResponse {\n Exceptions: Exceptions;\n result: result;\n AutoRefresh: int;\n }\n\n export interface GetDFUWorkunits {\n Wuid: string;\n Owner: string;\n Cluster: string;\n StateReq: string;\n Type: string;\n Jobname: string;\n PageSize: long;\n CurrentPage: int;\n PageStartFrom: long;\n Sortby: string;\n Descending: boolean;\n CacheHint: long;\n ParentWuid: string;\n PublisherWuid: string;\n includeProgressMessages: boolean;\n includeTimings: boolean;\n includeTransferRate: boolean;\n }\n\n export interface DFUWorkunit {\n ID: string;\n DFUServerName: string;\n ClusterName: string;\n JobName: string;\n Queue: string;\n User: string;\n isProtected: boolean;\n Command: int;\n CommandMessage: string;\n PercentDone: int;\n SecsLeft: int;\n ProgressMessage: string;\n SummaryMessage: string;\n State: int;\n SourceLogicalName: string;\n SourceIP: string;\n SourceFilePath: string;\n SourceDali: string;\n SourceRecordSize: int;\n SourceFormat: int;\n RowTag: string;\n SourceNumParts: int;\n SourceDirectory: string;\n DestLogicalName: string;\n DestGroupName: string;\n DestDirectory: string;\n DestIP: string;\n DestFilePath: string;\n DestFormat: int;\n DestNumParts: int;\n DestRecordSize: int;\n Replicate: boolean;\n Overwrite: boolean;\n Compress: boolean;\n SourceCsvSeparate: string;\n SourceCsvQuote: string;\n SourceCsvTerminate: string;\n SourceCsvEscape: string;\n TimeStarted: string;\n TimeStopped: string;\n StateMessage: string;\n MonitorEventName: string;\n MonitorSub: boolean;\n MonitorShotLimit: int;\n SourceDiffKeyName: string;\n DestDiffKeyName: string;\n Archived: boolean;\n encrypt: string;\n decrypt: string;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n preserveCompression: boolean;\n expireDays: int;\n PreserveFileParts: boolean;\n FileAccessCost: double;\n KbPerSecAve: int;\n KbPerSec: int;\n }\n\n export interface results {\n DFUWorkunit: DFUWorkunit[];\n }\n\n export interface GetDFUWorkunitsResponse {\n Exceptions: Exceptions;\n results: results;\n Type: string;\n Owner: string;\n Cluster: string;\n StateReq: string;\n PageSize: long;\n PrevPage: long;\n NextPage: long;\n LastPage: long;\n NumWUs: long;\n PageStartFrom: long;\n PageEndAt: long;\n First: boolean;\n Sortby: string;\n Descending: boolean;\n BasicQuery: string;\n Filters: string;\n CacheHint: long;\n }\n\n export interface GetRemoteTargetsRequest {\n\n }\n\n export interface TargetNames {\n Item: string[];\n }\n\n export interface GetRemoteTargetsResponse {\n Exceptions: Exceptions;\n TargetNames: TargetNames;\n AllowForeign: boolean;\n }\n\n export interface GetSprayTargetsRequest {\n\n }\n\n export interface GroupNode {\n Name: string;\n ClusterType: string;\n ReplicateOutputs: boolean;\n }\n\n export interface GroupNodes {\n GroupNode: GroupNode[];\n }\n\n export interface GetSprayTargetsResponse {\n Exceptions: Exceptions;\n GroupNodes: GroupNodes;\n }\n\n export interface OpenSaveRequest {\n Location?: string;\n Path?: string;\n Name?: string;\n Type?: string;\n DateTime?: string;\n BinaryFile?: boolean;\n }\n\n export interface OpenSaveResponse {\n Exceptions: Exceptions;\n Location: string;\n Path: string;\n Name: string;\n Type: string;\n DateTime: string;\n Viewable: boolean;\n }\n\n export interface FileSprayPingRequest {\n\n }\n\n export interface FileSprayPingResponse {\n\n }\n\n export interface Rename {\n srcname: string;\n dstname: string;\n overwrite: boolean;\n DFUServerQueue: string;\n }\n\n export interface RenameResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface Replicate {\n sourceLogicalName: string;\n replicateOffset: int;\n cluster: string;\n repeatLast: boolean;\n onlyRepeated: boolean;\n DFUServerQueue: string;\n }\n\n export interface ReplicateResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface ShowResultRequest {\n Result?: string;\n }\n\n export interface ShowResultResponse {\n Exceptions: Exceptions;\n Result: string;\n }\n\n export interface SprayFixed {\n sourceIP: string;\n sourcePlane: string;\n sourcePath: string;\n srcxml: base64Binary;\n sourceFormat: string;\n sourceRecordSize: int;\n destGroup: string;\n destLogicalName: string;\n destNumParts: int;\n overwrite: boolean;\n replicate: boolean;\n ReplicateOffset: int;\n maxConnections: int;\n throttle: int;\n transferBufferSize: int;\n prefix: string;\n nosplit: boolean;\n norecover: boolean;\n compress: boolean;\n push: boolean;\n pull: boolean;\n noCommon: boolean;\n encrypt: string;\n decrypt: string;\n wrap: boolean;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n expireDays: int;\n DFUServerQueue: string;\n }\n\n export interface SprayFixedResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface SprayVariable {\n sourceIP: string;\n sourcePlane: string;\n sourcePath: string;\n srcxml: base64Binary;\n sourceMaxRecordSize: int;\n sourceFormat: int;\n NoSourceCsvSeparator: boolean;\n sourceCsvSeparate: string;\n sourceCsvTerminate: string;\n sourceCsvQuote: string;\n sourceCsvEscape: string;\n sourceRowTag: string;\n destGroup: string;\n destLogicalName: string;\n destNumParts: int;\n overwrite: boolean;\n replicate: boolean;\n ReplicateOffset: int;\n maxConnections: int;\n throttle: int;\n transferBufferSize: int;\n prefix: string;\n nosplit: boolean;\n norecover: boolean;\n compress: boolean;\n push: boolean;\n pull: boolean;\n noCommon: boolean;\n encrypt: string;\n decrypt: string;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n sourceRowPath: string;\n isJSON: boolean;\n expireDays: int;\n DFUServerQueue: string;\n srcUsername: string;\n srcPassword: string;\n }\n\n export interface SprayResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface SubmitDFUWorkunit {\n wuid: string;\n }\n\n export interface SubmitDFUWorkunitResponse {\n Exceptions: Exceptions;\n }\n\n export interface wu {\n ID: string;\n DFUServerName: string;\n ClusterName: string;\n JobName: string;\n Queue: string;\n User: string;\n isProtected: boolean;\n Command: int;\n CommandMessage: string;\n PercentDone: int;\n SecsLeft: int;\n ProgressMessage: string;\n SummaryMessage: string;\n State: int;\n SourceLogicalName: string;\n SourceIP: string;\n SourceFilePath: string;\n SourceDali: string;\n SourceRecordSize: int;\n SourceFormat: int;\n RowTag: string;\n SourceNumParts: int;\n SourceDirectory: string;\n DestLogicalName: string;\n DestGroupName: string;\n DestDirectory: string;\n DestIP: string;\n DestFilePath: string;\n DestFormat: int;\n DestNumParts: int;\n DestRecordSize: int;\n Replicate: boolean;\n Overwrite: boolean;\n Compress: boolean;\n SourceCsvSeparate: string;\n SourceCsvQuote: string;\n SourceCsvTerminate: string;\n SourceCsvEscape: string;\n TimeStarted: string;\n TimeStopped: string;\n StateMessage: string;\n MonitorEventName: string;\n MonitorSub: boolean;\n MonitorShotLimit: int;\n SourceDiffKeyName: string;\n DestDiffKeyName: string;\n Archived: boolean;\n encrypt: string;\n decrypt: string;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n preserveCompression: boolean;\n expireDays: int;\n PreserveFileParts: boolean;\n FileAccessCost: double;\n KbPerSecAve: int;\n KbPerSec: int;\n }\n\n export interface UpdateDFUWorkunit {\n wu: wu;\n ClusterOrig: string;\n JobNameOrig: string;\n isProtectedOrig: boolean;\n StateOrig: int;\n }\n\n export interface UpdateDFUWorkunitResponse {\n Exceptions: Exceptions;\n }\n\n}\n\nexport class FileSprayServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"FileSpray\", \"1.27\");\n }\n\n AbortDFUWorkunit(request: Partial<FileSpray.AbortDFUWorkunit>): Promise<FileSpray.AbortDFUWorkunitResponse> {\n return this._connection.send(\"AbortDFUWorkunit\", request, \"json\", false, undefined, \"AbortDFUWorkunitResponse\");\n }\n\n Copy(request: Partial<FileSpray.Copy>): Promise<FileSpray.CopyResponse> {\n return this._connection.send(\"Copy\", request, \"json\", false, undefined, \"CopyResponse\");\n }\n\n CreateDFUPublisherWorkunit(request: Partial<FileSpray.CreateDFUPublisherWorkunit>): Promise<FileSpray.CreateDFUPublisherWorkunitResponse> {\n return this._connection.send(\"CreateDFUPublisherWorkunit\", request, \"json\", false, undefined, \"CreateDFUPublisherWorkunitResponse\");\n }\n\n CreateDFUWorkunit(request: Partial<FileSpray.CreateDFUWorkunit>): Promise<FileSpray.CreateDFUWorkunitResponse> {\n return this._connection.send(\"CreateDFUWorkunit\", request, \"json\", false, undefined, \"CreateDFUWorkunitResponse\");\n }\n\n DFUWUFile(request: Partial<FileSpray.DFUWUFileRequest>): Promise<FileSpray.DFUWUFileResponse> {\n return this._connection.send(\"DFUWUFile\", request, \"json\", false, undefined, \"DFUWUFileResponse\");\n }\n\n DFUWUSearch(request: Partial<FileSpray.DFUWUSearchRequest>): Promise<FileSpray.DFUWUSearchResponse> {\n return this._connection.send(\"DFUWUSearch\", request, \"json\", false, undefined, \"DFUWUSearchResponse\");\n }\n\n DFUWorkunitsAction(request: Partial<FileSpray.DFUWorkunitsActionRequest>): Promise<FileSpray.DFUWorkunitsActionResponse> {\n return this._connection.send(\"DFUWorkunitsAction\", request, \"json\", false, undefined, \"DFUWorkunitsActionResponse\");\n }\n\n DeleteDFUWorkunit(request: Partial<FileSpray.DeleteDFUWorkunit>): Promise<FileSpray.DeleteDFUWorkunitResponse> {\n return this._connection.send(\"DeleteDFUWorkunit\", request, \"json\", false, undefined, \"DeleteDFUWorkunitResponse\");\n }\n\n DeleteDFUWorkunits(request: Partial<FileSpray.DeleteDFUWorkunits>): Promise<FileSpray.DeleteDFUWorkunitsResponse> {\n return this._connection.send(\"DeleteDFUWorkunits\", request, \"json\", false, undefined, \"DeleteDFUWorkunitsResponse\");\n }\n\n DeleteDropZoneFiles(request: Partial<FileSpray.DeleteDropZoneFilesRequest>): Promise<FileSpray.DFUWorkunitsActionResponse> {\n return this._connection.send(\"DeleteDropZoneFiles\", request, \"json\", false, undefined, \"DFUWorkunitsActionResponse\");\n }\n\n Despray(request: Partial<FileSpray.Despray>): Promise<FileSpray.DesprayResponse> {\n return this._connection.send(\"Despray\", request, \"json\", false, undefined, \"DesprayResponse\");\n }\n\n DfuMonitor(request: Partial<FileSpray.DfuMonitorRequest>): Promise<FileSpray.DfuMonitorResponse> {\n return this._connection.send(\"DfuMonitor\", request, \"json\", false, undefined, \"DfuMonitorResponse\");\n }\n\n DropZoneFileSearch(request: Partial<FileSpray.DropZoneFileSearchRequest>): Promise<FileSpray.DropZoneFileSearchResponse> {\n return this._connection.send(\"DropZoneFileSearch\", request, \"json\", false, undefined, \"DropZoneFileSearchResponse\");\n }\n\n DropZoneFiles(request: Partial<FileSpray.DropZoneFilesRequest>): Promise<FileSpray.DropZoneFilesResponse> {\n return this._connection.send(\"DropZoneFiles\", request, \"json\", false, undefined, \"DropZoneFilesResponse\");\n }\n\n EchoDateTime(request: Partial<FileSpray.EchoDateTime>): Promise<FileSpray.EchoDateTimeResponse> {\n return this._connection.send(\"EchoDateTime\", request, \"json\", false, undefined, \"EchoDateTimeResponse\");\n }\n\n FileList(request: Partial<FileSpray.FileListRequest>): Promise<FileSpray.FileListResponse> {\n return this._connection.send(\"FileList\", request, \"json\", false, undefined, \"FileListResponse\");\n }\n\n GetDFUExceptions(request: Partial<FileSpray.GetDFUExceptions>): Promise<FileSpray.GetDFUExceptionsResponse> {\n return this._connection.send(\"GetDFUExceptions\", request, \"json\", false, undefined, \"GetDFUExceptionsResponse\");\n }\n\n GetDFUProgress(request: Partial<FileSpray.ProgressRequest>): Promise<FileSpray.ProgressResponse> {\n return this._connection.send(\"GetDFUProgress\", request, \"json\", false, undefined, \"ProgressResponse\");\n }\n\n GetDFUServerQueues(request: Partial<FileSpray.GetDFUServerQueuesRequest>): Promise<FileSpray.GetDFUServerQueuesResponse> {\n return this._connection.send(\"GetDFUServerQueues\", request, \"json\", false, undefined, \"GetDFUServerQueuesResponse\");\n }\n\n GetDFUWorkunit(request: Partial<FileSpray.GetDFUWorkunit>): Promise<FileSpray.GetDFUWorkunitResponse> {\n return this._connection.send(\"GetDFUWorkunit\", request, \"json\", false, undefined, \"GetDFUWorkunitResponse\");\n }\n\n GetDFUWorkunits(request: Partial<FileSpray.GetDFUWorkunits>): Promise<FileSpray.GetDFUWorkunitsResponse> {\n return this._connection.send(\"GetDFUWorkunits\", request, \"json\", false, undefined, \"GetDFUWorkunitsResponse\");\n }\n\n GetRemoteTargets(request: Partial<FileSpray.GetRemoteTargetsRequest>): Promise<FileSpray.GetRemoteTargetsResponse> {\n return this._connection.send(\"GetRemoteTargets\", request, \"json\", false, undefined, \"GetRemoteTargetsResponse\");\n }\n\n GetSprayTargets(request: Partial<FileSpray.GetSprayTargetsRequest>): Promise<FileSpray.GetSprayTargetsResponse> {\n return this._connection.send(\"GetSprayTargets\", request, \"json\", false, undefined, \"GetSprayTargetsResponse\");\n }\n\n OpenSave(request: Partial<FileSpray.OpenSaveRequest>): Promise<FileSpray.OpenSaveResponse> {\n return this._connection.send(\"OpenSave\", request, \"json\", false, undefined, \"OpenSaveResponse\");\n }\n\n Ping(request: Partial<FileSpray.FileSprayPingRequest>): Promise<FileSpray.FileSprayPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"FileSprayPingResponse\");\n }\n\n Rename(request: Partial<FileSpray.Rename>): Promise<FileSpray.RenameResponse> {\n return this._connection.send(\"Rename\", request, \"json\", false, undefined, \"RenameResponse\");\n }\n\n Replicate(request: Partial<FileSpray.Replicate>): Promise<FileSpray.ReplicateResponse> {\n return this._connection.send(\"Replicate\", request, \"json\", false, undefined, \"ReplicateResponse\");\n }\n\n ShowResult(request: Partial<FileSpray.ShowResultRequest>): Promise<FileSpray.ShowResultResponse> {\n return this._connection.send(\"ShowResult\", request, \"json\", false, undefined, \"ShowResultResponse\");\n }\n\n SprayFixed(request: Partial<FileSpray.SprayFixed>): Promise<FileSpray.SprayFixedResponse> {\n return this._connection.send(\"SprayFixed\", request, \"json\", false, undefined, \"SprayFixedResponse\");\n }\n\n SprayVariable(request: Partial<FileSpray.SprayVariable>): Promise<FileSpray.SprayResponse> {\n return this._connection.send(\"SprayVariable\", request, \"json\", false, undefined, \"SprayResponse\");\n }\n\n SubmitDFUWorkunit(request: Partial<FileSpray.SubmitDFUWorkunit>): Promise<FileSpray.SubmitDFUWorkunitResponse> {\n return this._connection.send(\"SubmitDFUWorkunit\", request, \"json\", false, undefined, \"SubmitDFUWorkunitResponse\");\n }\n\n UpdateDFUWorkunit(request: Partial<FileSpray.UpdateDFUWorkunit>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\n return this._connection.send(\"UpdateDFUWorkunit\", request, \"json\", false, undefined, \"UpdateDFUWorkunitResponse\");\n }\n\n}\n", "import { FileSprayServiceBase, FileSpray } from \"./wsdl/FileSpray/v1.27/FileSpray.ts\";\n\nexport {\n FileSpray\n};\n\ntype UpdateDFUWorkunitMinusWU = Omit<FileSpray.UpdateDFUWorkunit, \"wu\">;\ntype UpdateDFUWorkunitWU = FileSpray.UpdateDFUWorkunit[\"wu\"];\n\nexport enum FileSprayStates {\n unknown = 0,\n scheduled,\n queued,\n started,\n aborted,\n failed,\n finished,\n monitoring,\n aborting,\n notfound = 999\n}\n\nexport interface UpdateDFUWorkunitEx extends UpdateDFUWorkunitMinusWU {\n wu?: Partial<UpdateDFUWorkunitWU>\n}\n\nexport class FileSprayService extends FileSprayServiceBase {\n\n DFUWUFileEx(request: FileSpray.DFUWUFileRequest): Promise<string> {\n return this._connection.send(\"DFUWUFile\", request, \"text\");\n }\n\n SprayFixedEx(request: Partial<FileSpray.SprayFixed>): Promise<FileSpray.SprayFixedResponse> {\n return this._connection.send(\"SprayFixed\", request);\n }\n\n SprayVariableEx(request: Partial<FileSpray.SprayVariable>): Promise<FileSpray.SprayResponse> {\n return this._connection.send(\"SprayVariable\", request, \"json\", false, null, \"SprayResponse\");\n }\n\n DesprayEx(request: Partial<FileSpray.Despray>): Promise<FileSpray.DesprayResponse> {\n return this._connection.send(\"Despray\", request);\n }\n\n UpdateDFUWorkunitEx(request: Partial<UpdateDFUWorkunitEx>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\n return this._connection.send(\"UpdateDFUWorkunit\", request, \"json\", false, undefined, \"UpdateDFUWorkunitResponse\");\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsAccess {\n\n export type int = number;\n export type unsignedInt = number;\n export type long = number;\n export type base64Binary = string;\n\n export enum ViewMemberType {\n User = \"User\",\n Group = \"Group\"\n }\n\n export enum UserSortBy {\n username = \"username\",\n fullname = \"fullname\",\n passwordexpiration = \"passwordexpiration\",\n employeeID = \"employeeID\",\n employeeNumber = \"employeeNumber\"\n }\n\n export enum GroupSortBy {\n Name = \"Name\",\n ManagedBy = \"ManagedBy\"\n }\n\n export enum AccountTypeReq {\n Any = \"Any\",\n User = \"User\",\n Group = \"Group\"\n }\n\n export enum ResourcePermissionSortBy {\n Name = \"Name\",\n Type = \"Type\"\n }\n\n export enum ResourceSortBy {\n Name = \"Name\"\n }\n\n export interface AccountPermissionsRequest {\n AccountName?: string;\n IsGroup?: boolean;\n IncludeGroup?: boolean;\n }\n\n export interface BasednNames {\n Item: string[];\n }\n\n export interface Permission {\n BasednName: string;\n rname: string;\n prefix: string;\n ResourceName: string;\n PermissionName: string;\n allow_access: boolean;\n allow_read: boolean;\n allow_write: boolean;\n allow_full: boolean;\n deny_access: boolean;\n deny_read: boolean;\n deny_write: boolean;\n deny_full: boolean;\n }\n\n export interface Permissions {\n Permission: Permission[];\n }\n\n export interface GroupPermission {\n GroupName: string;\n BasednNames: BasednNames;\n Permissions: Permissions;\n }\n\n export interface GroupPermissions {\n GroupPermission: GroupPermission[];\n }\n\n export interface AccountPermissionsResponse {\n AccountName: string;\n IsGroup: boolean;\n IncludeGroup: boolean;\n BasednNames: BasednNames;\n Permissions: Permissions;\n GroupPermissions: GroupPermissions;\n }\n\n export interface AccountPermissionsV2Request {\n ResourceName?: string;\n AccountName?: string;\n IsGroup?: boolean;\n IncludeGroup?: boolean;\n }\n\n export interface AccountPermissionsV2Response {\n BasednNames: BasednNames;\n Permissions: Permissions;\n GroupPermissions: GroupPermissions;\n }\n\n export interface AddUserRequest {\n username?: string;\n firstname?: string;\n lastname?: string;\n password1?: string;\n password2?: string;\n employeeID?: string;\n employeeNumber?: string;\n }\n\n export interface AddUserResponse {\n retcode: int;\n retmsg: string;\n }\n\n export interface AddViewRequest {\n viewname?: string;\n description?: string;\n }\n\n export interface AddViewResponse {\n viewname: string;\n description: string;\n }\n\n export interface AddViewColumnRequest {\n viewname?: string;\n filename?: string;\n columnname?: string;\n }\n\n export interface AddViewColumnResponse {\n viewname: string;\n filename: string;\n columnname: string;\n }\n\n export interface AddViewMemberRequest {\n viewname?: string;\n membername?: string;\n membertype?: ViewMemberType;\n }\n\n export interface AddViewMemberResponse {\n viewname: string;\n membername: string;\n membertype: ViewMemberType;\n }\n\n export interface ClearPermissionsCacheRequest {\n\n }\n\n export interface ClearPermissionsCacheResponse {\n retcode: int;\n }\n\n export interface DeleteViewRequest {\n viewname?: string;\n }\n\n export interface DeleteViewResponse {\n viewname: string;\n }\n\n export interface DeleteViewColumnRequest {\n viewname?: string;\n filename?: string;\n columnname?: string;\n }\n\n export interface DeleteViewColumnResponse {\n viewname: string;\n filename: string;\n columnname: string;\n }\n\n export interface DeleteViewMemberRequest {\n viewname?: string;\n membername?: string;\n membertype?: ViewMemberType;\n }\n\n export interface DeleteViewMemberResponse {\n viewname: string;\n membername: string;\n membertype: ViewMemberType;\n }\n\n export interface DisableScopeScansRequest {\n\n }\n\n export interface scopeScansStatus {\n isEnabled: boolean;\n retcode: int;\n retmsg: string;\n }\n\n export interface DisableScopeScansResponse {\n scopeScansStatus: scopeScansStatus;\n }\n\n export interface EnableScopeScansRequest {\n\n }\n\n export interface EnableScopeScansResponse {\n scopeScansStatus: scopeScansStatus;\n }\n\n export interface FilePermissionRequest {\n FileName?: string;\n UserName?: string;\n GroupName?: string;\n }\n\n export interface User {\n username: string;\n fullname: string;\n passwordexpiration: string;\n employeeID: string;\n employeeNumber: string;\n }\n\n export interface Users {\n User: User[];\n }\n\n export interface Group {\n name: string;\n deletable: boolean;\n groupOwner: string;\n groupDesc: string;\n }\n\n export interface Groups {\n Group: Group[];\n }\n\n export interface FilePermissionResponse {\n NoSecMngr: boolean;\n FileName: string;\n UserName: string;\n GroupName: string;\n toomany: boolean;\n Users: Users;\n Groups: Groups;\n UserPermission: string;\n }\n\n export interface groupnames {\n Item: string[];\n }\n\n export interface GroupActionRequest {\n groupnames?: groupnames;\n ActionType?: string;\n DeletePermission?: boolean;\n }\n\n export interface GroupActionResponse {\n Groupnames: string;\n Permissions: Permissions;\n retcode: int;\n retmsg: string;\n }\n\n export interface GroupAddRequest {\n groupname?: string;\n groupOwner?: string;\n groupDesc?: string;\n }\n\n export interface GroupAddResponse {\n groupname: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface GroupEditRequest {\n groupname?: string;\n }\n\n export interface GroupEditResponse {\n groupname: string;\n Users: Users;\n }\n\n export interface usernames {\n Item: string[];\n }\n\n export interface GroupMemberEditRequest {\n groupname?: string;\n action?: string;\n usernames?: usernames;\n }\n\n export interface GroupMemberEditResponse {\n groupname: string;\n action: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface GroupMemberEditInputRequest {\n searchinput?: string;\n groupname?: string;\n }\n\n export interface GroupMemberEditInputResponse {\n groupname: string;\n toomany: boolean;\n Users: Users;\n }\n\n export interface GroupMemberQueryRequest {\n GroupName?: string;\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: UserSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface GroupMemberQueryResponse {\n NoSecMngr: boolean;\n Users: Users;\n TotalUsers: long;\n CacheHint: long;\n }\n\n export interface GroupQueryRequest {\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: GroupSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface GroupQueryResponse {\n NoSecMngr: boolean;\n Groups: Groups;\n TotalGroups: long;\n CacheHint: long;\n }\n\n export interface GroupRequest {\n\n }\n\n export interface GroupResponse {\n NoSecMngr: boolean;\n Groups: Groups;\n }\n\n export interface PermissionActionRequest {\n rname?: string;\n prefix?: string;\n action?: string;\n account_name?: string;\n account_type?: int;\n allow_access?: boolean;\n allow_read?: boolean;\n allow_write?: boolean;\n allow_full?: boolean;\n deny_access?: boolean;\n deny_read?: boolean;\n deny_write?: boolean;\n deny_full?: boolean;\n user?: string;\n group?: string;\n BasednName?: string;\n ResourceName?: string;\n }\n\n export interface PermissionActionResponse {\n AccountName: string;\n IsGroup: boolean;\n retcode: int;\n retmsg: string;\n }\n\n export interface BasednsRequest {\n\n }\n\n export interface Basedn {\n name: string;\n basedn: string;\n rtype: string;\n rtitle: string;\n templatename: string;\n }\n\n export interface Basedns {\n Basedn: Basedn[];\n }\n\n export interface BasednsResponse {\n NoSecMngr: boolean;\n Basedns: Basedns;\n }\n\n export interface names {\n Item: string[];\n }\n\n export interface PermissionsResetRequest {\n BasednName?: string;\n prefix?: string;\n names?: names;\n allow_access?: boolean;\n allow_read?: boolean;\n allow_write?: boolean;\n allow_full?: boolean;\n deny_access?: boolean;\n deny_read?: boolean;\n deny_write?: boolean;\n deny_full?: boolean;\n userarray?: string;\n grouparray?: string;\n }\n\n export interface PermissionsResetResponse {\n retcode: int;\n retmsg: string;\n }\n\n export interface ws_accessPingRequest {\n\n }\n\n export interface ws_accessPingResponse {\n\n }\n\n export interface QueryScopeScansEnabledRequest {\n\n }\n\n export interface QueryScopeScansEnabledResponse {\n scopeScansStatus: scopeScansStatus;\n }\n\n export interface QueryUserViewColumnsRequest {\n username?: string;\n }\n\n export interface ViewColumn {\n viewname: string;\n filename: string;\n columnname: string;\n }\n\n export interface viewcolumns {\n ViewColumn: ViewColumn[];\n }\n\n export interface QueryUserViewColumnsResponse {\n username: string;\n viewcolumns: viewcolumns;\n }\n\n export interface QueryViewColumnsRequest {\n viewname?: string;\n }\n\n export interface QueryViewColumnsResponse {\n viewname: string;\n viewcolumns: viewcolumns;\n }\n\n export interface QueryViewMembersRequest {\n viewname?: string;\n }\n\n export interface ViewMember {\n viewname: string;\n name: string;\n membertype: ViewMemberType;\n }\n\n export interface viewmembers {\n ViewMember: ViewMember[];\n }\n\n export interface QueryViewMembersResponse {\n viewname: string;\n viewmembers: viewmembers;\n }\n\n export interface QueryViewsRequest {\n\n }\n\n export interface View {\n viewname: string;\n description: string;\n }\n\n export interface views {\n View: View[];\n }\n\n export interface QueryViewsResponse {\n views: views;\n }\n\n export interface ResourceAddRequest {\n BasednName?: string;\n name?: string;\n description?: string;\n prefix?: string;\n }\n\n export interface ResourceAddResponse {\n retcode: int;\n retmsg: string;\n }\n\n export interface ResourceDeleteRequest {\n BasednName?: string;\n prefix?: string;\n names?: names;\n DoUpdate?: int;\n }\n\n export interface ResourceDeleteResponse {\n retcode: int;\n retmsg: string;\n }\n\n export interface ResourcePermissionQueryRequest {\n BasednName?: string;\n prefix?: string;\n Name?: string;\n AccountType?: AccountTypeReq;\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: ResourcePermissionSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface Permission2 {\n account_name: string;\n escaped_account_name: string;\n account_type: int;\n allow_access: boolean;\n allow_read: boolean;\n allow_write: boolean;\n allow_full: boolean;\n deny_access: boolean;\n deny_read: boolean;\n deny_write: boolean;\n deny_full: boolean;\n }\n\n export interface Permissions2 {\n Permission: Permission2[];\n }\n\n export interface ResourcePermissionQueryResponse {\n NoSecMngr: boolean;\n Permissions: Permissions2;\n TotalResourcePermissions: long;\n CacheHint: long;\n }\n\n export interface ResourcePermissionsRequest {\n name?: string;\n BasednName?: string;\n prefix?: string;\n }\n\n export interface ResourcePermissionsResponse {\n Permissions: Permissions2;\n }\n\n export interface ResourceQueryRequest {\n BasednName?: string;\n prefix?: string;\n Name?: string;\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: ResourceSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface Resource {\n name: string;\n description: string;\n isSpecial: boolean;\n }\n\n export interface Resources {\n Resource: Resource[];\n }\n\n export interface ResourceQueryResponse {\n NoSecMngr: boolean;\n Resources: Resources;\n TotalResources: long;\n CacheHint: long;\n }\n\n export interface ResourcesRequest {\n templatename?: string;\n BasednName?: string;\n prefix?: string;\n searchinput?: string;\n }\n\n export interface ResourcesResponse {\n Resources: Resources;\n default_basedn: string;\n default_name: string;\n toomany: boolean;\n scopeScansStatus: scopeScansStatus;\n }\n\n export interface UserAccountExportRequest {\n usernames?: usernames;\n groupnames?: groupnames;\n }\n\n export interface UserAccountExportResponse {\n Result: base64Binary;\n }\n\n export interface UserActionRequest {\n action?: string;\n ActionType?: string;\n usernames?: usernames;\n }\n\n export interface UserActionResponse {\n action: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserEditRequest {\n username?: string;\n }\n\n export interface UserEditResponse {\n username: string;\n isLDAPAdmin: boolean;\n Groups: Groups;\n }\n\n export interface UserGroupEditRequest {\n username?: string;\n action?: string;\n groupnames?: groupnames;\n }\n\n export interface UserGroupEditResponse {\n username: string;\n action: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserGroupEditInputRequest {\n username?: string;\n }\n\n export interface UserGroupEditInputResponse {\n username: string;\n Groups: Groups;\n }\n\n export interface UserInfoEditRequest {\n username?: string;\n firstname?: string;\n lastname?: string;\n employeeID?: string;\n employeeNumber?: string;\n }\n\n export interface UserInfoEditResponse {\n username: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserInfoEditInputRequest {\n username?: string;\n }\n\n export interface UserInfoEditInputResponse {\n username: string;\n firstname: string;\n lastname: string;\n employeeID: string;\n PasswordExpiration: string;\n employeeNumber: string;\n }\n\n export interface UserPosixRequest {\n username?: string;\n posixenabled?: boolean;\n gidnumber?: string;\n uidnumber?: string;\n homedirectory?: string;\n loginshell?: string;\n }\n\n export interface UserPosixResponse {\n username: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserPosixInputRequest {\n username?: string;\n }\n\n export interface UserPosixInputResponse {\n username: string;\n posixenabled: boolean;\n gidnumber: string;\n uidnumber: string;\n homedirectory: string;\n loginshell: string;\n }\n\n export interface UserQueryRequest {\n Name?: string;\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: UserSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface UserQueryResponse {\n NoSecMngr: boolean;\n Users: Users;\n TotalUsers: long;\n CacheHint: long;\n }\n\n export interface UserResetPassRequest {\n username?: string;\n newPassword?: string;\n newPasswordRetype?: string;\n }\n\n export interface UserResetPassResponse {\n username: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserResetPassInputRequest {\n username?: string;\n }\n\n export interface UserResetPassInputResponse {\n username: string;\n }\n\n export interface UserSudoersRequest {\n username?: string;\n action?: string;\n sudoHost?: string;\n sudoCommand?: string;\n sudoOption?: string;\n }\n\n export interface UserSudoersResponse {\n username: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserSudoersInputRequest {\n username?: string;\n }\n\n export interface UserSudoersInputResponse {\n username: string;\n insudoers: boolean;\n sudoHost: string;\n sudoCommand: string;\n sudoOption: string;\n }\n\n export interface UserRequest {\n searchinput?: string;\n }\n\n export interface UserResponse {\n NoSecMngr: boolean;\n toomany: boolean;\n posixok: boolean;\n Users: Users;\n }\n\n}\n\nexport class AccessServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_access\", \"1.17\");\n }\n\n AccountPermissions(request: Partial<WsAccess.AccountPermissionsRequest>): Promise<WsAccess.AccountPermissionsResponse> {\n return this._connection.send(\"AccountPermissions\", request, \"json\", false, undefined, \"AccountPermissionsResponse\");\n }\n\n AccountPermissionsV2(request: Partial<WsAccess.AccountPermissionsV2Request>): Promise<WsAccess.AccountPermissionsV2Response> {\n return this._connection.send(\"AccountPermissionsV2\", request, \"json\", false, undefined, \"AccountPermissionsV2Response\");\n }\n\n AddUser(request: Partial<WsAccess.AddUserRequest>): Promise<WsAccess.AddUserResponse> {\n return this._connection.send(\"AddUser\", request, \"json\", false, undefined, \"AddUserResponse\");\n }\n\n AddView(request: Partial<WsAccess.AddViewRequest>): Promise<WsAccess.AddViewResponse> {\n return this._connection.send(\"AddView\", request, \"json\", false, undefined, \"AddViewResponse\");\n }\n\n AddViewColumn(request: Partial<WsAccess.AddViewColumnRequest>): Promise<WsAccess.AddViewColumnResponse> {\n return this._connection.send(\"AddViewColumn\", request, \"json\", false, undefined, \"AddViewColumnResponse\");\n }\n\n AddViewMember(request: Partial<WsAccess.AddViewMemberRequest>): Promise<WsAccess.AddViewMemberResponse> {\n return this._connection.send(\"AddViewMember\", request, \"json\", false, undefined, \"AddViewMemberResponse\");\n }\n\n ClearPermissionsCache(request: Partial<WsAccess.ClearPermissionsCacheRequest>): Promise<WsAccess.ClearPermissionsCacheResponse> {\n return this._connection.send(\"ClearPermissionsCache\", request, \"json\", false, undefined, \"ClearPermissionsCacheResponse\");\n }\n\n DeleteView(request: Partial<WsAccess.DeleteViewRequest>): Promise<WsAccess.DeleteViewResponse> {\n return this._connection.send(\"DeleteView\", request, \"json\", false, undefined, \"DeleteViewResponse\");\n }\n\n DeleteViewColumn(request: Partial<WsAccess.DeleteViewColumnRequest>): Promise<WsAccess.DeleteViewColumnResponse> {\n return this._connection.send(\"DeleteViewColumn\", request, \"json\", false, undefined, \"DeleteViewColumnResponse\");\n }\n\n DeleteViewMember(request: Partial<WsAccess.DeleteViewMemberRequest>): Promise<WsAccess.DeleteViewMemberResponse> {\n return this._connection.send(\"DeleteViewMember\", request, \"json\", false, undefined, \"DeleteViewMemberResponse\");\n }\n\n DisableScopeScans(request: Partial<WsAccess.DisableScopeScansRequest>): Promise<WsAccess.DisableScopeScansResponse> {\n return this._connection.send(\"DisableScopeScans\", request, \"json\", false, undefined, \"DisableScopeScansResponse\");\n }\n\n EnableScopeScans(request: Partial<WsAccess.EnableScopeScansRequest>): Promise<WsAccess.EnableScopeScansResponse> {\n return this._connection.send(\"EnableScopeScans\", request, \"json\", false, undefined, \"EnableScopeScansResponse\");\n }\n\n FilePermission(request: Partial<WsAccess.FilePermissionRequest>): Promise<WsAccess.FilePermissionResponse> {\n return this._connection.send(\"FilePermission\", request, \"json\", false, undefined, \"FilePermissionResponse\");\n }\n\n GroupAction(request: Partial<WsAccess.GroupActionRequest>): Promise<WsAccess.GroupActionResponse> {\n return this._connection.send(\"GroupAction\", request, \"json\", false, undefined, \"GroupActionResponse\");\n }\n\n GroupAdd(request: Partial<WsAccess.GroupAddRequest>): Promise<WsAccess.GroupAddResponse> {\n return this._connection.send(\"GroupAdd\", request, \"json\", false, undefined, \"GroupAddResponse\");\n }\n\n GroupEdit(request: Partial<WsAccess.GroupEditRequest>): Promise<WsAccess.GroupEditResponse> {\n return this._connection.send(\"GroupEdit\", request, \"json\", false, undefined, \"GroupEditResponse\");\n }\n\n GroupMemberEdit(request: Partial<WsAccess.GroupMemberEditRequest>): Promise<WsAccess.GroupMemberEditResponse> {\n return this._connection.send(\"GroupMemberEdit\", request, \"json\", false, undefined, \"GroupMemberEditResponse\");\n }\n\n GroupMemberEditInput(request: Partial<WsAccess.GroupMemberEditInputRequest>): Promise<WsAccess.GroupMemberEditInputResponse> {\n return this._connection.send(\"GroupMemberEditInput\", request, \"json\", false, undefined, \"GroupMemberEditInputResponse\");\n }\n\n GroupMemberQuery(request: Partial<WsAccess.GroupMemberQueryRequest>): Promise<WsAccess.GroupMemberQueryResponse> {\n return this._connection.send(\"GroupMemberQuery\", request, \"json\", false, undefined, \"GroupMemberQueryResponse\");\n }\n\n GroupQuery(request: Partial<WsAccess.GroupQueryRequest>): Promise<WsAccess.GroupQueryResponse> {\n return this._connection.send(\"GroupQuery\", request, \"json\", false, undefined, \"GroupQueryResponse\");\n }\n\n Groups(request: Partial<WsAccess.GroupRequest>): Promise<WsAccess.GroupResponse> {\n return this._connection.send(\"Groups\", request, \"json\", false, undefined, \"GroupResponse\");\n }\n\n PermissionAction(request: Partial<WsAccess.PermissionActionRequest>): Promise<WsAccess.PermissionActionResponse> {\n return this._connection.send(\"PermissionAction\", request, \"json\", false, undefined, \"PermissionActionResponse\");\n }\n\n Permissions(request: Partial<WsAccess.BasednsRequest>): Promise<WsAccess.BasednsResponse> {\n return this._connection.send(\"Permissions\", request, \"json\", false, undefined, \"BasednsResponse\");\n }\n\n PermissionsReset(request: Partial<WsAccess.PermissionsResetRequest>): Promise<WsAccess.PermissionsResetResponse> {\n return this._connection.send(\"PermissionsReset\", request, \"json\", false, undefined, \"PermissionsResetResponse\");\n }\n\n Ping(request: Partial<WsAccess.ws_accessPingRequest>): Promise<WsAccess.ws_accessPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_accessPingResponse\");\n }\n\n QueryScopeScansEnabled(request: Partial<WsAccess.QueryScopeScansEnabledRequest>): Promise<WsAccess.QueryScopeScansEnabledResponse> {\n return this._connection.send(\"QueryScopeScansEnabled\", request, \"json\", false, undefined, \"QueryScopeScansEnabledResponse\");\n }\n\n QueryUserViewColumns(request: Partial<WsAccess.QueryUserViewColumnsRequest>): Promise<WsAccess.QueryUserViewColumnsResponse> {\n return this._connection.send(\"QueryUserViewColumns\", request, \"json\", false, undefined, \"QueryUserViewColumnsResponse\");\n }\n\n QueryViewColumns(request: Partial<WsAccess.QueryViewColumnsRequest>): Promise<WsAccess.QueryViewColumnsResponse> {\n return this._connection.send(\"QueryViewColumns\", request, \"json\", false, undefined, \"QueryViewColumnsResponse\");\n }\n\n QueryViewMembers(request: Partial<WsAccess.QueryViewMembersRequest>): Promise<WsAccess.QueryViewMembersResponse> {\n return this._connection.send(\"QueryViewMembers\", request, \"json\", false, undefined, \"QueryViewMembersResponse\");\n }\n\n QueryViews(request: Partial<WsAccess.QueryViewsRequest>): Promise<WsAccess.QueryViewsResponse> {\n return this._connection.send(\"QueryViews\", request, \"json\", false, undefined, \"QueryViewsResponse\");\n }\n\n ResourceAdd(request: Partial<WsAccess.ResourceAddRequest>): Promise<WsAccess.ResourceAddResponse> {\n return this._connection.send(\"ResourceAdd\", request, \"json\", false, undefined, \"ResourceAddResponse\");\n }\n\n ResourceDelete(request: Partial<WsAccess.ResourceDeleteRequest>): Promise<WsAccess.ResourceDeleteResponse> {\n return this._connection.send(\"ResourceDelete\", request, \"json\", false, undefined, \"ResourceDeleteResponse\");\n }\n\n ResourcePermissionQuery(request: Partial<WsAccess.ResourcePermissionQueryRequest>): Promise<WsAccess.ResourcePermissionQueryResponse> {\n return this._connection.send(\"ResourcePermissionQuery\", request, \"json\", false, undefined, \"ResourcePermissionQueryResponse\");\n }\n\n ResourcePermissions(request: Partial<WsAccess.ResourcePermissionsRequest>): Promise<WsAccess.ResourcePermissionsResponse> {\n return this._connection.send(\"ResourcePermissions\", request, \"json\", false, undefined, \"ResourcePermissionsResponse\");\n }\n\n ResourceQuery(request: Partial<WsAccess.ResourceQueryRequest>): Promise<WsAccess.ResourceQueryResponse> {\n return this._connection.send(\"ResourceQuery\", request, \"json\", false, undefined, \"ResourceQueryResponse\");\n }\n\n Resources(request: Partial<WsAccess.ResourcesRequest>): Promise<WsAccess.ResourcesResponse> {\n return this._connection.send(\"Resources\", request, \"json\", false, undefined, \"ResourcesResponse\");\n }\n\n UserAccountExport(request: Partial<WsAccess.UserAccountExportRequest>): Promise<WsAccess.UserAccountExportResponse> {\n return this._connection.send(\"UserAccountExport\", request, \"json\", false, undefined, \"UserAccountExportResponse\");\n }\n\n UserAction(request: Partial<WsAccess.UserActionRequest>): Promise<WsAccess.UserActionResponse> {\n return this._connection.send(\"UserAction\", request, \"json\", false, undefined, \"UserActionResponse\");\n }\n\n UserEdit(request: Partial<WsAccess.UserEditRequest>): Promise<WsAccess.UserEditResponse> {\n return this._connection.send(\"UserEdit\", request, \"json\", false, undefined, \"UserEditResponse\");\n }\n\n UserGroupEdit(request: Partial<WsAccess.UserGroupEditRequest>): Promise<WsAccess.UserGroupEditResponse> {\n return this._connection.send(\"UserGroupEdit\", request, \"json\", false, undefined, \"UserGroupEditResponse\");\n }\n\n UserGroupEditInput(request: Partial<WsAccess.UserGroupEditInputRequest>): Promise<WsAccess.UserGroupEditInputResponse> {\n return this._connection.send(\"UserGroupEditInput\", request, \"json\", false, undefined, \"UserGroupEditInputResponse\");\n }\n\n UserInfoEdit(request: Partial<WsAccess.UserInfoEditRequest>): Promise<WsAccess.UserInfoEditResponse> {\n return this._connection.send(\"UserInfoEdit\", request, \"json\", false, undefined, \"UserInfoEditResponse\");\n }\n\n UserInfoEditInput(request: Partial<WsAccess.UserInfoEditInputRequest>): Promise<WsAccess.UserInfoEditInputResponse> {\n return this._connection.send(\"UserInfoEditInput\", request, \"json\", false, undefined, \"UserInfoEditInputResponse\");\n }\n\n UserPosix(request: Partial<WsAccess.UserPosixRequest>): Promise<WsAccess.UserPosixResponse> {\n return this._connection.send(\"UserPosix\", request, \"json\", false, undefined, \"UserPosixResponse\");\n }\n\n UserPosixInput(request: Partial<WsAccess.UserPosixInputRequest>): Promise<WsAccess.UserPosixInputResponse> {\n return this._connection.send(\"UserPosixInput\", request, \"json\", false, undefined, \"UserPosixInputResponse\");\n }\n\n UserQuery(request: Partial<WsAccess.UserQueryRequest>): Promise<WsAccess.UserQueryResponse> {\n return this._connection.send(\"UserQuery\", request, \"json\", false, undefined, \"UserQueryResponse\");\n }\n\n UserResetPass(request: Partial<WsAccess.UserResetPassRequest>): Promise<WsAccess.UserResetPassResponse> {\n return this._connection.send(\"UserResetPass\", request, \"json\", false, undefined, \"UserResetPassResponse\");\n }\n\n UserResetPassInput(request: Partial<WsAccess.UserResetPassInputRequest>): Promise<WsAccess.UserResetPassInputResponse> {\n return this._connection.send(\"UserResetPassInput\", request, \"json\", false, undefined, \"UserResetPassInputResponse\");\n }\n\n UserSudoers(request: Partial<WsAccess.UserSudoersRequest>): Promise<WsAccess.UserSudoersResponse> {\n return this._connection.send(\"UserSudoers\", request, \"json\", false, undefined, \"UserSudoersResponse\");\n }\n\n UserSudoersInput(request: Partial<WsAccess.UserSudoersInputRequest>): Promise<WsAccess.UserSudoersInputResponse> {\n return this._connection.send(\"UserSudoersInput\", request, \"json\", false, undefined, \"UserSudoersInputResponse\");\n }\n\n Users(request: Partial<WsAccess.UserRequest>): Promise<WsAccess.UserResponse> {\n return this._connection.send(\"Users\", request, \"json\", false, undefined, \"UserResponse\");\n }\n\n}\n", "import { AccessServiceBase, WsAccess } from \"./wsdl/ws_access/v1.17/ws_access.ts\";\n\nexport {\n WsAccess\n};\n\nexport class AccessService extends AccessServiceBase {\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsAccount {\n\n export type int = number;\n\n export interface MyAccountRequest {\n\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 Groups {\n Group: string[];\n }\n\n export interface MyAccountResponse {\n Exceptions: Exceptions;\n username: string;\n firstName: string;\n lastName: string;\n passwordExpiration: string;\n passwordDaysRemaining: int;\n passwordExpirationWarningDays: int;\n employeeID: string;\n distinguishedName: string;\n accountType: string;\n passwordNeverExpires: boolean;\n passwordIsExpired: boolean;\n CanUpdatePassword: boolean;\n accountStatus: int;\n Groups: Groups;\n }\n\n export interface ws_accountPingRequest {\n\n }\n\n export interface ws_accountPingResponse {\n\n }\n\n export interface UpdateUserRequest {\n username?: string;\n oldpass?: string;\n newpass1?: string;\n newpass2?: string;\n }\n\n export interface UpdateUserResponse {\n Exceptions: Exceptions;\n retcode: int;\n message: string;\n }\n\n export interface UpdateUserInputRequest {\n\n }\n\n export interface UpdateUserInputResponse {\n Exceptions: Exceptions;\n username: string;\n }\n\n export interface VerifyUserRequest {\n application?: string;\n version?: string;\n }\n\n export interface VerifyUserResponse {\n Exceptions: Exceptions;\n retcode: int;\n }\n\n}\n\nexport class AccountServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_account\", \"1.07\");\n }\n\n MyAccount(request: Partial<WsAccount.MyAccountRequest>): Promise<WsAccount.MyAccountResponse> {\n return this._connection.send(\"MyAccount\", request, \"json\", false, undefined, \"MyAccountResponse\");\n }\n\n Ping(request: Partial<WsAccount.ws_accountPingRequest>): Promise<WsAccount.ws_accountPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_accountPingResponse\");\n }\n\n UpdateUser(request: Partial<WsAccount.UpdateUserRequest>): Promise<WsAccount.UpdateUserResponse> {\n return this._connection.send(\"UpdateUser\", request, \"json\", false, undefined, \"UpdateUserResponse\");\n }\n\n UpdateUserInput(request: Partial<WsAccount.UpdateUserInputRequest>): Promise<WsAccount.UpdateUserInputResponse> {\n return this._connection.send(\"UpdateUserInput\", request, \"json\", false, undefined, \"UpdateUserInputResponse\");\n }\n\n VerifyUser(request: Partial<WsAccount.VerifyUserRequest>): Promise<WsAccount.VerifyUserResponse> {\n return this._connection.send(\"VerifyUser\", request, \"json\", false, undefined, \"VerifyUserResponse\");\n }\n\n}\n", "import { AccountServiceBase, WsAccount } from \"./wsdl/ws_account/v1.07/ws_account.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\n\nexport {\n type WsAccount\n};\n\nexport class AccountService extends AccountServiceBase {\n\n VerifyUser(request: WsAccount.VerifyUserRequest): Promise<WsAccount.VerifyUserResponse> {\n return this._connection.send(\"VerifyUser\", request)\n .catch((e: ESPExceptions) => {\n // old client version warning ---\n if (e.isESPExceptions && e.Exception.some(exception => exception.Code === 20043)) {\n return {\n retcode: 20043,\n Exceptions: {\n Source: \"wsAccount\",\n Exception: e.Exception\n }\n };\n }\n throw e;\n });\n }\n\n}\n", "import { scopedLogger } from \"@hpcc-js/util\";\nimport type { V1Pod } from \"@kubernetes/client-node\";\nimport type { WsCloud as WsCloudV1 } from \"./wsdl/WsCloud/v1/WsCloud.ts\";\nimport { CloudServiceBase, WsCloud } from \"./wsdl/WsCloud/v1.02/WsCloud.ts\";\n\nconst logger = scopedLogger(\"@hpcc-js/comms/services/wsCloud.ts\");\n\nexport {\n type WsCloud\n};\n\nfunction isGetPODsResponse_v1_02(response: any): response is WsCloud.GetPODsResponse {\n return response?.Pods !== undefined;\n}\n\nfunction mapPorts(pod: V1Pod): WsCloud.Port[] {\n return pod.spec?.containers?.reduce((prev, curr) => {\n curr.ports?.forEach(p => {\n prev.push({\n ContainerPort: p.containerPort,\n Name: p.name,\n Protocol: p.protocol\n });\n });\n return prev;\n }, [] as WsCloud.Port[]) ?? [];\n}\n\nfunction mapPods(pods: V1Pod[]): WsCloud.Pod[] {\n return pods\n .filter(pod => {\n const labels = pod?.metadata?.labels ?? {};\n return labels.hasOwnProperty(\"app.kubernetes.io/part-of\") && labels[\"app.kubernetes.io/part-of\"] === \"HPCC-Platform\";\n })\n .map((pod: V1Pod): WsCloud.Pod => {\n const started = new Date(pod.metadata?.creationTimestamp);\n return {\n Name: pod.metadata.name,\n Status: pod.status?.phase,\n CreationTimestamp: started.toISOString(),\n ContainerName: pod.status?.containerStatuses?.reduce((prev, curr) => {\n if (curr.name) {\n prev.push(curr.name);\n } return prev;\n }, [] as string[]).join(\", \") ?? \"\",\n ContainerCount: pod.spec?.containers?.length ?? 0,\n ContainerReadyCount: pod.status?.containerStatuses?.reduce((prev, curr) => prev + (curr.ready ? 1 : 0), 0),\n ContainerRestartCount: pod.status?.containerStatuses?.reduce((prev, curr) => prev + curr.restartCount, 0),\n Ports: {\n Port: mapPorts(pod)\n },\n };\n })\n ;\n}\n\nexport class CloudService extends CloudServiceBase {\n\n getPODs(): Promise<WsCloud.Pod[]> {\n return super.GetPODs({}).then((response: WsCloud.GetPODsResponse | WsCloudV1.GetPODsResponse) => {\n if (isGetPODsResponse_v1_02(response)) {\n return response.Pods?.Pod ?? [];\n }\n try {\n const obj = typeof response.Result === \"string\" ? JSON.parse(response.Result) : response.Result;\n return mapPods(obj?.items ?? []);\n } catch (error) {\n logger.error(`Error parsing V1Pods json '${(error instanceof Error ? error.message : String(error))}'`);\n return [];\n }\n });\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsCloud {\n\n export type int = number;\n\n export interface GetPODsRequest {\n\n }\n\n export interface Port {\n ContainerPort: int;\n Name: string;\n Protocol: string;\n }\n\n export interface Ports {\n Port: Port[];\n }\n\n export interface Pod {\n Name: string;\n Status: string;\n CreationTimestamp: string;\n ContainerName: string;\n ContainerCount: int;\n ContainerReadyCount: int;\n ContainerRestartCount: int;\n Ports: Ports;\n }\n\n export interface Pods {\n Pod: Pod[];\n }\n\n export interface GetPODsResponse {\n Pods: Pods;\n }\n\n export interface GetServicesRequest {\n\n }\n\n export interface GetServicesResponse {\n Result: string;\n }\n\n export interface WsCloudPingRequest {\n\n }\n\n export interface WsCloudPingResponse {\n\n }\n\n}\n\nexport class CloudServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsCloud\", \"1.02\");\n }\n\n GetPODs(request: Partial<WsCloud.GetPODsRequest>): Promise<WsCloud.GetPODsResponse> {\n return this._connection.send(\"GetPODs\", request, \"json\", false, undefined, \"GetPODsResponse\");\n }\n\n GetServices(request: Partial<WsCloud.GetServicesRequest>): Promise<WsCloud.GetServicesResponse> {\n return this._connection.send(\"GetServices\", request, \"json\", false, undefined, \"GetServicesResponse\");\n }\n\n Ping(request: Partial<WsCloud.WsCloudPingRequest>): Promise<WsCloud.WsCloudPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsCloudPingResponse\");\n }\n\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsCodesign {\n\n export type int = number;\n\n export enum SigningMethodType {\n gpg = \"gpg\"\n }\n\n export interface ListUserIDsRequest {\n\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 UserIDs {\n Item: string[];\n }\n\n export interface ListUserIDsResponse {\n Exceptions: Exceptions;\n UserIDs: UserIDs;\n }\n\n export interface ws_codesignPingRequest {\n\n }\n\n export interface ws_codesignPingResponse {\n\n }\n\n export interface SignRequest {\n SigningMethod?: SigningMethodType;\n UserID?: string;\n KeyPass?: string;\n Text?: string;\n }\n\n export interface SignResponse {\n Exceptions: Exceptions;\n RetCode: int;\n ErrMsg: string;\n SignedText: string;\n }\n\n export interface VerifyRequest {\n Text?: string;\n }\n\n export interface VerifyResponse {\n Exceptions: Exceptions;\n RetCode: int;\n ErrMsg: string;\n IsVerified: boolean;\n SignedBy: string;\n }\n\n}\n\nexport class CodesignServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_codesign\", \"1.1\");\n }\n\n ListUserIDs(request: Partial<WsCodesign.ListUserIDsRequest>): Promise<WsCodesign.ListUserIDsResponse> {\n return this._connection.send(\"ListUserIDs\", request, \"json\", false, undefined, \"ListUserIDsResponse\");\n }\n\n Ping(request: Partial<WsCodesign.ws_codesignPingRequest>): Promise<WsCodesign.ws_codesignPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_codesignPingResponse\");\n }\n\n Sign(request: Partial<WsCodesign.SignRequest>): Promise<WsCodesign.SignResponse> {\n return this._connection.send(\"Sign\", request, \"json\", false, undefined, \"SignResponse\");\n }\n\n Verify(request: Partial<WsCodesign.VerifyRequest>): Promise<WsCodesign.VerifyResponse> {\n return this._connection.send(\"Verify\", request, \"json\", false, undefined, \"VerifyResponse\");\n }\n\n}\n", "import { CodesignServiceBase, WsCodesign } from \"./wsdl/ws_codesign/v1.1/ws_codesign.ts\";\n\nexport { WsCodesign };\n\nexport class CodesignService extends CodesignServiceBase {\n\n ListUserIDsEx(request: Partial<WsCodesign.ListUserIDsRequest>): Promise<string[]> {\n return super.ListUserIDs(request).then((response: WsCodesign.ListUserIDsResponse) => {\n return response.UserIDs.Item;\n }).catch(e => {\n return [];\n });\n }\n\n Sign(request: Partial<WsCodesign.SignRequest>): Promise<WsCodesign.SignResponse> {\n return super.Sign({ SigningMethod: WsCodesign.SigningMethodType.gpg, ...request });\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsDali {\r\n\r\n export type unsignedInt = number;\r\n\r\n export interface AddRequest {\r\n Path?: string;\r\n Value?: string;\r\n }\r\n\r\n export interface Exception {\r\n Code: string;\r\n Audience: string;\r\n Source: string;\r\n Message: string;\r\n }\r\n\r\n export interface Exceptions {\r\n Source: string;\r\n Exception: Exception[];\r\n }\r\n\r\n export interface ResultResponse {\r\n Exceptions: Exceptions;\r\n Result: string;\r\n }\r\n\r\n export interface ClearTraceTransactionsRequest {\r\n\r\n }\r\n\r\n export interface CountRequest {\r\n Path?: string;\r\n }\r\n\r\n export interface CountResponse {\r\n Exceptions: Exceptions;\r\n Result: unsignedInt;\r\n }\r\n\r\n export interface DFSCheckRequest {\r\n\r\n }\r\n\r\n export interface DFSExistsRequest {\r\n FileName?: string;\r\n }\r\n\r\n export interface BooleanResponse {\r\n Exceptions: Exceptions;\r\n Result: boolean;\r\n }\r\n\r\n export interface DFSLSRequest {\r\n Name?: string;\r\n PathAndNameOnly?: boolean;\r\n IncludeSubFileInfo?: boolean;\r\n Recursively?: boolean;\r\n }\r\n\r\n export interface DeleteRequest {\r\n Path?: string;\r\n }\r\n\r\n export interface DisconnectClientConnectionRequest {\r\n Endpoint?: string;\r\n }\r\n\r\n export interface GetClientsRequest {\r\n\r\n }\r\n\r\n export interface GetConnectionsRequest {\r\n\r\n }\r\n\r\n export interface GetDFSCSVRequest {\r\n LogicalNameMask?: string;\r\n }\r\n\r\n export interface GetDFSMapRequest {\r\n FileName?: string;\r\n }\r\n\r\n export interface GetDFSParentsRequest {\r\n FileName?: string;\r\n }\r\n\r\n export interface GetLogicalFileRequest {\r\n FileName?: string;\r\n }\r\n\r\n export interface GetLogicalFilePartRequest {\r\n FileName?: string;\r\n PartNumber?: unsignedInt;\r\n }\r\n\r\n export interface GetProtectedListRequest {\r\n FileName?: string;\r\n CallerId?: string;\r\n }\r\n\r\n export interface GetSDSStatsRequest {\r\n\r\n }\r\n\r\n export interface GetSDSSubscribersRequest {\r\n\r\n }\r\n\r\n export interface GetValueRequest {\r\n Path?: string;\r\n }\r\n\r\n export interface ImportRequest {\r\n XML?: string;\r\n Path?: string;\r\n Add?: boolean;\r\n }\r\n\r\n export interface ListSDSLocksRequest {\r\n\r\n }\r\n\r\n export interface WSDaliPingRequest {\r\n\r\n }\r\n\r\n export interface WSDaliPingResponse {\r\n\r\n }\r\n\r\n export interface SaveSDSStoreRequest {\r\n\r\n }\r\n\r\n export interface SetLogicalFilePartAttrRequest {\r\n FileName?: string;\r\n PartNumber?: unsignedInt;\r\n Attr?: string;\r\n Value?: string;\r\n }\r\n\r\n export interface SetProtectedRequest {\r\n FileName?: string;\r\n CallerId?: string;\r\n }\r\n\r\n export interface SetTraceSlowTransactionsRequest {\r\n SlowThresholdMS?: unsignedInt;\r\n }\r\n\r\n export interface SetTraceTransactionsRequest {\r\n\r\n }\r\n\r\n export interface SetUnprotectedRequest {\r\n FileName?: string;\r\n CallerId?: string;\r\n }\r\n\r\n export interface SetValueRequest {\r\n Path?: string;\r\n Value?: string;\r\n }\r\n\r\n export interface UnlockSDSLockRequest {\r\n ConnectionID?: string;\r\n Close?: boolean;\r\n }\r\n\r\n}\r\n\r\nexport class DaliServiceBase extends Service {\r\n\r\n constructor(optsConnection: IOptions | IConnection) {\r\n super(optsConnection, \"WSDali\", \"1.07\");\r\n }\r\n\r\n Add(request: Partial<WsDali.AddRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"Add\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n ClearTraceTransactions(request: Partial<WsDali.ClearTraceTransactionsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"ClearTraceTransactions\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Count(request: Partial<WsDali.CountRequest>): Promise<WsDali.CountResponse> {\r\n return this._connection.send(\"Count\", request, \"json\", false, undefined, \"CountResponse\");\r\n }\r\n\r\n DFSCheck(request: Partial<WsDali.DFSCheckRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"DFSCheck\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n DFSExists(request: Partial<WsDali.DFSExistsRequest>): Promise<WsDali.BooleanResponse> {\r\n return this._connection.send(\"DFSExists\", request, \"json\", false, undefined, \"BooleanResponse\");\r\n }\r\n\r\n DFSLS(request: Partial<WsDali.DFSLSRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"DFSLS\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Delete(request: Partial<WsDali.DeleteRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"Delete\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n DisconnectClientConnection(request: Partial<WsDali.DisconnectClientConnectionRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"DisconnectClientConnection\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetClients(request: Partial<WsDali.GetClientsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetClients\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetConnections(request: Partial<WsDali.GetConnectionsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetConnections\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetDFSCSV(request: Partial<WsDali.GetDFSCSVRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetDFSCSV\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetDFSMap(request: Partial<WsDali.GetDFSMapRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetDFSMap\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetDFSParents(request: Partial<WsDali.GetDFSParentsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetDFSParents\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetLogicalFile(request: Partial<WsDali.GetLogicalFileRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetLogicalFile\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetLogicalFilePart(request: Partial<WsDali.GetLogicalFilePartRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetLogicalFilePart\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetProtectedList(request: Partial<WsDali.GetProtectedListRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetProtectedList\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetSDSStats(request: Partial<WsDali.GetSDSStatsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetSDSStats\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetSDSSubscribers(request: Partial<WsDali.GetSDSSubscribersRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetSDSSubscribers\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetValue(request: Partial<WsDali.GetValueRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetValue\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Import(request: Partial<WsDali.ImportRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"Import\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n ListSDSLocks(request: Partial<WsDali.ListSDSLocksRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"ListSDSLocks\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Ping(request: Partial<WsDali.WSDaliPingRequest>): Promise<WsDali.WSDaliPingResponse> {\r\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WSDaliPingResponse\");\r\n }\r\n\r\n SaveSDSStore(request: Partial<WsDali.SaveSDSStoreRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SaveSDSStore\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetLogicalFilePartAttr(request: Partial<WsDali.SetLogicalFilePartAttrRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetLogicalFilePartAttr\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetProtected(request: Partial<WsDali.SetProtectedRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetProtected\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetTraceSlowTransactions(request: Partial<WsDali.SetTraceSlowTransactionsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetTraceSlowTransactions\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetTraceTransactions(request: Partial<WsDali.SetTraceTransactionsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetTraceTransactions\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetUnprotected(request: Partial<WsDali.SetUnprotectedRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetUnprotected\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetValue(request: Partial<WsDali.SetValueRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetValue\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n UnlockSDSLock(request: Partial<WsDali.UnlockSDSLockRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"UnlockSDSLock\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n}\r\n", "import { DaliServiceBase, WsDali } from \"./wsdl/WsDali/v1.07/WsDali.ts\";\n\nexport {\n type WsDali\n};\n\nexport class DaliService extends DaliServiceBase {\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsDfu {\n\n export type base64Binary = string;\n export type long = number;\n export type int = number;\n export type double = number;\n\n export enum DFUArrayActions {\n Delete = \"Delete\",\n AddToSuperfile = \"Add To Superfile\",\n ChangeProtection = \"Change Protection\",\n ChangeRestriction = \"Change Restriction\"\n }\n\n export enum DFUChangeProtection {\n NoChange = 0,\n Protect = 1,\n Unprotect = 2,\n UnprotectAll = 3\n }\n\n export enum DFUChangeRestriction {\n NoChange = 0,\n Restrict = 1,\n Unrestricted = 2\n }\n\n export enum DFUDefFileFormat {\n xml = \"xml\",\n def = \"def\"\n }\n\n export enum FileAccessRole {\n Token = \"Token\",\n Engine = \"Engine\",\n External = \"External\"\n }\n\n export enum SecAccessType {\n None = \"None\",\n Access = \"Access\",\n Read = \"Read\",\n Write = \"Write\",\n Full = \"Full\"\n }\n\n export enum DFUFileType {\n Flat = \"Flat\",\n Index = \"Index\",\n Xml = \"Xml\",\n Csv = \"Csv\",\n Json = \"Json\",\n IndexLocal = \"IndexLocal\",\n IndexPartitioned = \"IndexPartitioned\",\n Unset = \"Unset\"\n }\n\n export interface AddRequest {\n dstname?: string;\n xmlmap?: base64Binary;\n dstcluster?: 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 AddRemoteRequest {\n dstname?: string;\n srcname?: string;\n srcdali?: string;\n srcusername?: string;\n srcpassword?: string;\n }\n\n export interface AddRemoteResponse {\n Exceptions: Exceptions;\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 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 LogicalFiles {\n Item: string[];\n }\n\n export interface DFUArrayActionRequest {\n Type?: DFUArrayActions;\n NoDelete?: boolean;\n BackToPage?: string;\n LogicalFiles?: LogicalFiles;\n removeFromSuperfiles?: boolean;\n removeRecursively?: boolean;\n Protect?: DFUChangeProtection;\n Restrict?: DFUChangeRestriction;\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 DFUBrowseDataRequest {\n LogicalName?: string;\n FilterBy?: string;\n ShowColumns?: string;\n SchemaOnly?: boolean;\n StartForGoback?: long;\n CountForGoback?: int;\n ChooseFile?: int;\n Cluster?: string;\n ClusterType?: string;\n ParentName?: string;\n Start?: long;\n Count?: int;\n DisableUppercaseTranslation?: boolean;\n }\n\n export interface DFUDataColumn {\n ColumnID: int;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: int;\n MaxSize: int;\n ColumnEclType: string;\n ColumnRawSize: int;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns;\n }\n\n export interface DataColumns {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface ColumnHidden {\n ColumnID: int;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: int;\n MaxSize: int;\n ColumnEclType: string;\n ColumnRawSize: int;\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: int;\n StartForGoback: long;\n CountForGoback: int;\n ChooseFile: int;\n SchemaOnly: boolean;\n Cluster: string;\n ClusterType: string;\n ParentName: string;\n Start: long;\n Count: long;\n PageSize: long;\n Total: long;\n Result: string;\n MsgToDisplay: string;\n DisableUppercaseTranslation: boolean;\n }\n\n export interface DFUDefFileRequest {\n Name?: string;\n Format?: DFUDefFileFormat;\n }\n\n export interface DFUDefFileResponse {\n Exceptions: Exceptions;\n defFile: base64Binary;\n }\n\n export interface RequestBase {\n Name: string;\n Cluster: string;\n JobId: string;\n ExpirySeconds: int;\n AccessRole: FileAccessRole;\n AccessType: SecAccessType;\n ReturnJsonTypeInfo: boolean;\n ReturnBinTypeInfo: boolean;\n }\n\n export interface DFUFileAccessRequest {\n RequestBase?: RequestBase;\n }\n\n export interface DFUPartLocation {\n LocationIndex: int;\n Host: string;\n }\n\n export interface FileLocations {\n DFUPartLocation: DFUPartLocation[];\n }\n\n export interface DFUFileCopy {\n CopyIndex: int;\n LocationIndex: int;\n Path: string;\n }\n\n export interface Copies {\n DFUFileCopy: DFUFileCopy[];\n }\n\n export interface DFUFilePart {\n PartIndex: int;\n Copies: Copies;\n TopLevelKey: boolean;\n }\n\n export interface FileParts {\n DFUFilePart: DFUFilePart[];\n }\n\n export interface AccessInfo {\n MetaInfoBlob: string;\n ExpiryTime: string;\n NumParts: int;\n FileLocations: FileLocations;\n FileParts: FileParts;\n RecordTypeInfoJson: string;\n fileAccessPort: int;\n fileAccessSSL: boolean;\n }\n\n export interface DFUFileAccessResponse {\n Exceptions: Exceptions;\n AccessInfo: AccessInfo;\n Type: DFUFileType;\n }\n\n export interface DFUFileAccessV2Request {\n Name?: string;\n Cluster?: string;\n RequestId?: string;\n ExpirySeconds?: int;\n ReturnTextResponse?: boolean;\n SessionId?: long;\n LockTimeoutMs?: int;\n }\n\n export interface PartLocations {\n Item: string[];\n }\n\n export interface DFUFileCreateRequest {\n ECLRecordDefinition?: string;\n PartLocations?: PartLocations;\n RequestBase?: RequestBase;\n }\n\n export interface DFUFileCreateResponse {\n Exceptions: Exceptions;\n FileId: string;\n Warning: string;\n AccessInfo: AccessInfo;\n }\n\n export interface DFUFileCreateV2Request {\n Name?: string;\n Cluster?: string;\n Type?: DFUFileType;\n ECLRecordDefinition?: string;\n RequestId?: string;\n ExpirySeconds?: int;\n ReturnTextResponse?: boolean;\n Compressed?: boolean;\n SessionId?: long;\n LockTimeoutMs?: int;\n }\n\n export interface DFUFilePublishRequest {\n FileId?: string;\n Overwrite?: boolean;\n FileDescriptorBlob?: base64Binary;\n SessionId?: long;\n LockTimeoutMs?: int;\n ECLRecordDefinition?: string;\n RecordCount?: long;\n FileSize?: long;\n }\n\n export interface DFUFilePublishResponse {\n Exceptions: Exceptions;\n }\n\n export interface DFUFileViewRequest {\n Scope?: string;\n IncludeSuperOwner?: boolean;\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: long;\n IntRecordCount: long;\n FromRoxieCluster: boolean;\n BrowseData: boolean;\n IsCompressed: boolean;\n ContentType: string;\n CompressedFileSize: long;\n SuperOwners: string;\n Persistent: boolean;\n IsProtected: boolean;\n KeyType: string;\n NumOfSubfiles: int;\n Accessed: string;\n AtRestCost: double;\n AccessCost: double;\n MinSkew: long;\n MaxSkew: long;\n MinSkewPart: long;\n MaxSkewPart: long;\n }\n\n export interface DFULogicalFiles {\n DFULogicalFile: DFULogicalFile[];\n }\n\n export interface DFUFileViewResponse {\n Exceptions: Exceptions;\n Scope: string;\n NumFiles: int;\n DFULogicalFiles: DFULogicalFiles;\n }\n\n export interface DFUGetDataColumnsRequest {\n OpenLogicalName?: string;\n LogicalName?: string;\n FilterBy?: string;\n ShowColumns?: string;\n ChooseFile?: int;\n Cluster?: string;\n ClusterType?: string;\n StartIndex?: long;\n EndIndex?: long;\n }\n\n export interface DFUDataKeyedColumns1 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns2 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns3 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns4 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns5 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns6 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns7 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns8 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns9 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns10 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns11 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns12 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns13 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns14 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns15 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns16 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns17 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns18 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns19 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns20 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns1 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns2 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns3 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns4 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns5 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns6 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns7 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns8 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns9 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns10 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns11 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns12 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns13 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns14 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns15 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns16 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns17 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns18 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns19 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns20 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUGetDataColumnsResponse {\n Exceptions: Exceptions;\n LogicalName: string;\n StartIndex: long;\n EndIndex: long;\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: long;\n ShowColumns: string;\n ChooseFile: int;\n Cluster: string;\n ClusterType: string;\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 DFUGetFileMetaDataResponse {\n Exceptions: Exceptions;\n TotalColumnCount: int;\n KeyedColumnCount: int;\n DataColumns: DataColumns;\n XmlSchema: string;\n XmlXPathSchema: string;\n TotalResultRows: long;\n }\n\n export interface DFUMetaInquiryRequest {\n\n }\n\n export interface DFUMetaFieldInfo {\n Name: string;\n Type: string;\n }\n\n export interface Fields {\n DFUMetaFieldInfo: DFUMetaFieldInfo[];\n }\n\n export interface DFUMetaInquiryResponse {\n Exceptions: Exceptions;\n Fields: Fields;\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?: DFUChangeProtection;\n Restrict?: DFUChangeRestriction;\n ForceIndexInfo?: boolean;\n }\n\n export interface Stat {\n MinSkew: string;\n MaxSkew: string;\n MinSkewInt64: long;\n MaxSkewInt64: long;\n MinSkewPart: long;\n MaxSkewPart: long;\n }\n\n export interface DFUPart {\n Id: int;\n Copy: int;\n Ip: string;\n Partsize: string;\n PartSizeInt64: long;\n CompressedSize: long;\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 Superfiles {\n DFULogicalFile: DFULogicalFile[];\n }\n\n export interface DFUFileProtect {\n Owner: string;\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: long;\n FieldNames: FieldNames;\n }\n\n export interface DFUFileBloom {\n FieldMask: long;\n FieldNames: FieldNames;\n Limit: long;\n Probability: string;\n }\n\n export interface Blooms {\n DFUFileBloom: DFUFileBloom[];\n }\n\n export interface ExtendedIndexInfo {\n IsLeafCountEstimated: boolean;\n NumLeafNodes: long;\n NumBlobNodes: long;\n NumBranchNodes: long;\n SizeDiskLeaves: long;\n SizeDiskBlobs: long;\n SizeDiskBranches: long;\n SizeOriginalData: long;\n SizeOriginalBranches: long;\n SizeMemoryLeaves: long;\n SizeMemoryBranches: long;\n BranchCompressionPercent: double;\n DataCompressionPercent: double;\n }\n\n export interface FileDetail {\n Name: string;\n Filename: string;\n Prefix: string;\n NodeGroup: string;\n NumParts: int;\n Description: string;\n Dir: string;\n PathMask: string;\n Filesize: string;\n FileSizeInt64: long;\n RecordSize: string;\n RecordCount: string;\n RecordSizeInt64: long;\n RecordCountInt64: long;\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: long;\n PercentCompressed: string;\n IsCompressed: boolean;\n IsRestricted: boolean;\n BrowseData: boolean;\n jsonInfo: string;\n binInfo: base64Binary;\n PackageID: string;\n Partition: Partition;\n Blooms: Blooms;\n ExpireDays: int;\n KeyType: string;\n AtRestCost: double;\n AccessCost: double;\n ExpirationDate: string;\n ExtendedIndexInfo: ExtendedIndexInfo;\n CompressionType: string;\n }\n\n export interface DFUInfoResponse {\n Exceptions: Exceptions;\n FileDetail: FileDetail;\n }\n\n export interface DFUQueryRequest {\n Prefix?: string;\n NodeGroup?: string;\n ContentType?: string;\n InvertContent?: boolean;\n LogicalName?: string;\n Owner?: string;\n StartDate?: string;\n EndDate?: string;\n FileType?: string;\n FileSizeFrom?: long;\n FileSizeTo?: long;\n FirstN?: int;\n PageSize?: int;\n PageStartFrom?: int;\n Sortby?: string;\n Fields?: string;\n Descending?: boolean;\n OneLevelDirFileReturn?: boolean;\n CacheHint?: long;\n MaxNumberOfFiles?: int;\n IncludeSuperOwner?: boolean;\n StartAccessedTime?: string;\n EndAccessedTime?: string;\n MaxSkewFrom?: long;\n MaxSkewTo?: long;\n MinSkewFrom?: long;\n MinSkewTo?: long;\n }\n\n export interface DFUQueryResponse {\n Exceptions: Exceptions;\n DFULogicalFiles: DFULogicalFiles;\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: long;\n FileSizeTo: long;\n FirstN: int;\n PageSize: int;\n PageStartFrom: long;\n LastPageFrom: long;\n PageEndAt: long;\n PrevPageFrom: long;\n NextPageFrom: long;\n NumFiles: long;\n Sortby: string;\n Descending: boolean;\n BasicQuery: string;\n ParametersForPaging: string;\n Filters: string;\n CacheHint: long;\n IsSubsetOfFiles: boolean;\n Warning: string;\n }\n\n export interface DFURecordTypeInfoRequest {\n Name?: string;\n IncludeJsonTypeInfo?: boolean;\n IncludeBinTypeInfo?: boolean;\n }\n\n export interface DFURecordTypeInfoResponse {\n jsonInfo: string;\n binInfo: base64Binary;\n }\n\n export interface DFUSearchRequest {\n ShowExample?: 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 DFUSearchDataRequest {\n Cluster?: string;\n ClusterType?: string;\n OpenLogicalName?: string;\n FilterBy?: string;\n ShowColumns?: string;\n ChooseFile?: int;\n StartIndex?: long;\n EndIndex?: long;\n LogicalName?: string;\n ParentName?: string;\n StartForGoback?: long;\n CountForGoback?: int;\n Start?: long;\n Count?: int;\n File?: string;\n Key?: string;\n SchemaOnly?: boolean;\n RoxieSelections?: boolean;\n DisableUppercaseTranslation?: boolean;\n SelectedKey?: string;\n }\n\n export interface DFUSearchDataResponse {\n Exceptions: Exceptions;\n OpenLogicalName: string;\n LogicalName: string;\n ParentName: string;\n StartIndex: long;\n EndIndex: long;\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: long;\n ShowColumns: string;\n ChooseFile: int;\n Name: string;\n FilterBy: string;\n FilterForGoBack: string;\n ColumnsHidden: ColumnsHidden;\n ColumnCount: int;\n StartForGoback: long;\n CountForGoback: int;\n Start: long;\n Count: long;\n PageSize: long;\n Total: long;\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 DFUSpaceRequest {\n CountBy?: string;\n ScopeUnder?: string;\n OwnerUnder?: string;\n Interval?: string;\n StartDate?: string;\n EndDate?: 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: long;\n NumOfFilesUnknownInt64: long;\n TotalSizeInt64: long;\n LargestSizeInt64: long;\n SmallestSizeInt64: long;\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 EclRecordTypeInfoRequest {\n Ecl?: string;\n IncludeJsonTypeInfo?: boolean;\n IncludeBinTypeInfo?: boolean;\n }\n\n export interface EclRecordTypeInfoResponse {\n jsonInfo: string;\n binInfo: base64Binary;\n }\n\n export interface EraseHistoryRequest {\n Name?: 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 ListHistoryRequest {\n Name?: string;\n }\n\n export interface ListHistoryResponse {\n Exceptions: Exceptions;\n History: History;\n }\n\n export interface WsDfuPingRequest {\n\n }\n\n export interface WsDfuPingResponse {\n\n }\n\n export interface SavexmlRequest {\n name?: string;\n }\n\n export interface SavexmlResponse {\n Exceptions: Exceptions;\n xmlmap: base64Binary;\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 SuperfileActionResponse {\n Exceptions: Exceptions;\n superfile: string;\n retcode: int;\n }\n\n export interface SuperfileListRequest {\n superfile?: string;\n }\n\n export interface SuperfileListResponse {\n Exceptions: Exceptions;\n superfile: string;\n subfiles: subfiles;\n }\n\n}\n\nexport class DfuServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsDfu\", \"1.67\");\n }\n\n Add(request: Partial<WsDfu.AddRequest>): Promise<WsDfu.AddResponse> {\n return this._connection.send(\"Add\", request, \"json\", false, undefined, \"AddResponse\");\n }\n\n AddRemote(request: Partial<WsDfu.AddRemoteRequest>): Promise<WsDfu.AddRemoteResponse> {\n return this._connection.send(\"AddRemote\", request, \"json\", false, undefined, \"AddRemoteResponse\");\n }\n\n AddtoSuperfile(request: Partial<WsDfu.AddtoSuperfileRequest>): Promise<WsDfu.AddtoSuperfileResponse> {\n return this._connection.send(\"AddtoSuperfile\", request, \"json\", false, undefined, \"AddtoSuperfileResponse\");\n }\n\n DFUArrayAction(request: Partial<WsDfu.DFUArrayActionRequest>): Promise<WsDfu.DFUArrayActionResponse> {\n return this._connection.send(\"DFUArrayAction\", request, \"json\", false, undefined, \"DFUArrayActionResponse\");\n }\n\n DFUBrowseData(request: Partial<WsDfu.DFUBrowseDataRequest>): Promise<WsDfu.DFUBrowseDataResponse> {\n return this._connection.send(\"DFUBrowseData\", request, \"json\", false, undefined, \"DFUBrowseDataResponse\");\n }\n\n DFUDefFile(request: Partial<WsDfu.DFUDefFileRequest>): Promise<WsDfu.DFUDefFileResponse> {\n return this._connection.send(\"DFUDefFile\", request, \"json\", false, undefined, \"DFUDefFileResponse\");\n }\n\n DFUFileAccess(request: Partial<WsDfu.DFUFileAccessRequest>): Promise<WsDfu.DFUFileAccessResponse> {\n return this._connection.send(\"DFUFileAccess\", request, \"json\", false, undefined, \"DFUFileAccessResponse\");\n }\n\n DFUFileAccessV2(request: Partial<WsDfu.DFUFileAccessV2Request>): Promise<WsDfu.DFUFileAccessResponse> {\n return this._connection.send(\"DFUFileAccessV2\", request, \"json\", false, undefined, \"DFUFileAccessResponse\");\n }\n\n DFUFileCreate(request: Partial<WsDfu.DFUFileCreateRequest>): Promise<WsDfu.DFUFileCreateResponse> {\n return this._connection.send(\"DFUFileCreate\", request, \"json\", false, undefined, \"DFUFileCreateResponse\");\n }\n\n DFUFileCreateV2(request: Partial<WsDfu.DFUFileCreateV2Request>): Promise<WsDfu.DFUFileCreateResponse> {\n return this._connection.send(\"DFUFileCreateV2\", request, \"json\", false, undefined, \"DFUFileCreateResponse\");\n }\n\n DFUFilePublish(request: Partial<WsDfu.DFUFilePublishRequest>): Promise<WsDfu.DFUFilePublishResponse> {\n return this._connection.send(\"DFUFilePublish\", request, \"json\", false, undefined, \"DFUFilePublishResponse\");\n }\n\n DFUFileView(request: Partial<WsDfu.DFUFileViewRequest>): Promise<WsDfu.DFUFileViewResponse> {\n return this._connection.send(\"DFUFileView\", request, \"json\", false, undefined, \"DFUFileViewResponse\");\n }\n\n DFUGetDataColumns(request: Partial<WsDfu.DFUGetDataColumnsRequest>): Promise<WsDfu.DFUGetDataColumnsResponse> {\n return this._connection.send(\"DFUGetDataColumns\", request, \"json\", false, undefined, \"DFUGetDataColumnsResponse\");\n }\n\n DFUGetFileMetaData(request: Partial<WsDfu.DFUGetFileMetaDataRequest>): Promise<WsDfu.DFUGetFileMetaDataResponse> {\n return this._connection.send(\"DFUGetFileMetaData\", request, \"json\", false, undefined, \"DFUGetFileMetaDataResponse\");\n }\n\n DFUGetMetaInquiry(request: Partial<WsDfu.DFUMetaInquiryRequest>): Promise<WsDfu.DFUMetaInquiryResponse> {\n return this._connection.send(\"DFUGetMetaInquiry\", request, \"json\", false, undefined, \"DFUMetaInquiryResponse\");\n }\n\n DFUInfo(request: Partial<WsDfu.DFUInfoRequest>): Promise<WsDfu.DFUInfoResponse> {\n return this._connection.send(\"DFUInfo\", request, \"json\", false, undefined, \"DFUInfoResponse\");\n }\n\n DFUQuery(request: Partial<WsDfu.DFUQueryRequest>): Promise<WsDfu.DFUQueryResponse> {\n return this._connection.send(\"DFUQuery\", request, \"json\", false, undefined, \"DFUQueryResponse\");\n }\n\n DFURecordTypeInfo(request: Partial<WsDfu.DFURecordTypeInfoRequest>): Promise<WsDfu.DFURecordTypeInfoResponse> {\n return this._connection.send(\"DFURecordTypeInfo\", request, \"json\", false, undefined, \"DFURecordTypeInfoResponse\");\n }\n\n DFUSearch(request: Partial<WsDfu.DFUSearchRequest>): Promise<WsDfu.DFUSearchResponse> {\n return this._connection.send(\"DFUSearch\", request, \"json\", false, undefined, \"DFUSearchResponse\");\n }\n\n DFUSearchData(request: Partial<WsDfu.DFUSearchDataRequest>): Promise<WsDfu.DFUSearchDataResponse> {\n return this._connection.send(\"DFUSearchData\", request, \"json\", false, undefined, \"DFUSearchDataResponse\");\n }\n\n DFUSpace(request: Partial<WsDfu.DFUSpaceRequest>): Promise<WsDfu.DFUSpaceResponse> {\n return this._connection.send(\"DFUSpace\", request, \"json\", false, undefined, \"DFUSpaceResponse\");\n }\n\n EclRecordTypeInfo(request: Partial<WsDfu.EclRecordTypeInfoRequest>): Promise<WsDfu.EclRecordTypeInfoResponse> {\n return this._connection.send(\"EclRecordTypeInfo\", request, \"json\", false, undefined, \"EclRecordTypeInfoResponse\");\n }\n\n EraseHistory(request: Partial<WsDfu.EraseHistoryRequest>): Promise<WsDfu.EraseHistoryResponse> {\n return this._connection.send(\"EraseHistory\", request, \"json\", false, undefined, \"EraseHistoryResponse\");\n }\n\n ListHistory(request: Partial<WsDfu.ListHistoryRequest>): Promise<WsDfu.ListHistoryResponse> {\n return this._connection.send(\"ListHistory\", request, \"json\", false, undefined, \"ListHistoryResponse\");\n }\n\n Ping(request: Partial<WsDfu.WsDfuPingRequest>): Promise<WsDfu.WsDfuPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsDfuPingResponse\");\n }\n\n Savexml(request: Partial<WsDfu.SavexmlRequest>): Promise<WsDfu.SavexmlResponse> {\n return this._connection.send(\"Savexml\", request, \"json\", false, undefined, \"SavexmlResponse\");\n }\n\n SuperfileAction(request: Partial<WsDfu.SuperfileActionRequest>): Promise<WsDfu.SuperfileActionResponse> {\n return this._connection.send(\"SuperfileAction\", request, \"json\", false, undefined, \"SuperfileActionResponse\");\n }\n\n SuperfileList(request: Partial<WsDfu.SuperfileListRequest>): Promise<WsDfu.SuperfileListResponse> {\n return this._connection.send(\"SuperfileList\", request, \"json\", false, undefined, \"SuperfileListResponse\");\n }\n\n}\n", "import { DfuServiceBase, WsDfu } from \"./wsdl/WsDfu/v1.67/WsDfu.ts\";\n\nexport { WsDfu };\n\nexport const DFUArrayActions = WsDfu.DFUArrayActions;\nexport const DFUDefFileFormat = WsDfu.DFUDefFileFormat;\nexport const DFUChangeProtection = WsDfu.DFUChangeProtection;\nexport const DFUChangeRestriction = WsDfu.DFUChangeRestriction;\n\nexport type base64Binary = WsDfu.base64Binary;\n\nexport class DFUService extends DfuServiceBase {\n\n DFUFile(request: WsDfu.DFUDefFileRequest): Promise<string> {\n return this._connection.send(\"DFUDefFile\", request, \"text\");\n }\n\n async recursiveFetchLogicalFiles(superFiles: { NodeGroup: string, Name: string }[]): Promise<string[]> {\n const childSuperFiles: WsDfu.DFULogicalFile[] = [];\n const logicalFiles: string[] = [];\n await Promise.all(superFiles.map(superFile => {\n return this.DFUInfo({ Cluster: superFile.NodeGroup, Name: superFile.Name, IncludeJsonTypeInfo: false, IncludeBinTypeInfo: false, ForceIndexInfo: false })\n .then(response => {\n for (const child of response?.FileDetail?.Superfiles?.DFULogicalFile ?? []) {\n childSuperFiles.push(child);\n }\n for (const child of response?.FileDetail?.subfiles?.Item ?? []) {\n logicalFiles.push(child);\n }\n });\n }));\n return logicalFiles.concat(childSuperFiles.length ? await this.recursiveFetchLogicalFiles(childSuperFiles) : []);\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsDFUXRef {\n\n export type unsignedInt = number;\n export type long = number;\n\n export interface XRefFiles {\n Item: string[];\n }\n\n export interface DFUXRefArrayActionRequest {\n Type?: string;\n Cluster?: string;\n Action?: string;\n XRefFiles?: XRefFiles;\n RemoveFromSuperfiles?: boolean;\n }\n\n export interface DFUXRefArrayActionResponse {\n DFUXRefArrayActionResult: string;\n }\n\n export interface DFUXRefBuildRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefBuildResponse {\n DFUXRefActionResult: string;\n }\n\n export interface DFUXRefBuildCancelRequest {\n\n }\n\n export interface DFUXRefBuildCancelResponse {\n DFUXRefBuildCancelResult: string;\n }\n\n export interface DFUXRefCleanDirectoriesRequest {\n Cluster?: 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 DFUXRefCleanDirectoriesResponse {\n Exceptions: Exceptions;\n }\n\n export interface DFUXRefDirectoriesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefDirectoriesQueryResponse {\n DFUXRefDirectoriesQueryResult: string;\n }\n\n export interface DFUXRefFoundFilesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefFoundFilesQueryResponse {\n DFUXRefFoundFilesQueryResult: string;\n }\n\n export interface DFUXRefListRequest {\n\n }\n\n export interface DFUXRefListResponse {\n DFUXRefListResult: string;\n }\n\n export interface DFUXRefLostFilesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefLostFilesQueryResponse {\n DFUXRefLostFilesQueryResult: string;\n }\n\n export interface DFUXRefMessagesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefMessagesQueryResponse {\n DFUXRefMessagesQueryResult: string;\n }\n\n export interface DFUXRefOrphanFilesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefOrphanFilesQueryResponse {\n DFUXRefOrphanFilesQueryResult: string;\n }\n\n export interface ProcessClusterList {\n Item: string[];\n }\n\n export interface CheckPlanes {\n Item: string[];\n }\n\n export interface DFUXRefUnusedFilesRequest {\n ProcessCluster?: string;\n CheckPackageMaps?: boolean;\n GetFileDetails?: boolean;\n ProcessClusterList?: ProcessClusterList;\n CheckPlanes?: CheckPlanes;\n }\n\n export interface UnusedFiles {\n File: string[];\n }\n\n export interface DFULogicalFile {\n Prefix: string;\n ClusterName: 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 isZipfile: boolean;\n isDirectory: boolean;\n Replicate: boolean;\n IntSize: long;\n IntRecordCount: long;\n FromRoxieCluster: boolean;\n BrowseData: boolean;\n }\n\n export interface UnusedFilesWithDetails {\n DFULogicalFile: DFULogicalFile[];\n }\n\n export interface DFUXRefUnusedFilesResponse {\n Exceptions: Exceptions;\n UnusedFileCount: unsignedInt;\n UnusedFiles: UnusedFiles;\n UnusedFilesWithDetails: UnusedFilesWithDetails;\n }\n\n export interface WsDFUXRefPingRequest {\n\n }\n\n export interface WsDFUXRefPingResponse {\n\n }\n\n}\n\nexport class DFUXRefServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsDFUXRef\", \"1.04\");\n }\n\n DFUXRefArrayAction(request: Partial<WsDFUXRef.DFUXRefArrayActionRequest>): Promise<WsDFUXRef.DFUXRefArrayActionResponse> {\n return this._connection.send(\"DFUXRefArrayAction\", request, \"json\", false, undefined, \"DFUXRefArrayActionResponse\");\n }\n\n DFUXRefBuild(request: Partial<WsDFUXRef.DFUXRefBuildRequest>): Promise<WsDFUXRef.DFUXRefBuildResponse> {\n return this._connection.send(\"DFUXRefBuild\", request, \"json\", false, undefined, \"DFUXRefBuildResponse\");\n }\n\n DFUXRefBuildCancel(request: Partial<WsDFUXRef.DFUXRefBuildCancelRequest>): Promise<WsDFUXRef.DFUXRefBuildCancelResponse> {\n return this._connection.send(\"DFUXRefBuildCancel\", request, \"json\", false, undefined, \"DFUXRefBuildCancelResponse\");\n }\n\n DFUXRefCleanDirectories(request: Partial<WsDFUXRef.DFUXRefCleanDirectoriesRequest>): Promise<WsDFUXRef.DFUXRefCleanDirectoriesResponse> {\n return this._connection.send(\"DFUXRefCleanDirectories\", request, \"json\", false, undefined, \"DFUXRefCleanDirectoriesResponse\");\n }\n\n DFUXRefDirectories(request: Partial<WsDFUXRef.DFUXRefDirectoriesQueryRequest>): Promise<WsDFUXRef.DFUXRefDirectoriesQueryResponse> {\n return this._connection.send(\"DFUXRefDirectories\", request, \"json\", false, undefined, \"DFUXRefDirectoriesQueryResponse\");\n }\n\n DFUXRefFoundFiles(request: Partial<WsDFUXRef.DFUXRefFoundFilesQueryRequest>): Promise<WsDFUXRef.DFUXRefFoundFilesQueryResponse> {\n return this._connection.send(\"DFUXRefFoundFiles\", request, \"json\", false, undefined, \"DFUXRefFoundFilesQueryResponse\");\n }\n\n DFUXRefList(request: Partial<WsDFUXRef.DFUXRefListRequest>): Promise<WsDFUXRef.DFUXRefListResponse> {\n return this._connection.send(\"DFUXRefList\", request, \"json\", false, undefined, \"DFUXRefListResponse\");\n }\n\n DFUXRefLostFiles(request: Partial<WsDFUXRef.DFUXRefLostFilesQueryRequest>): Promise<WsDFUXRef.DFUXRefLostFilesQueryResponse> {\n return this._connection.send(\"DFUXRefLostFiles\", request, \"json\", false, undefined, \"DFUXRefLostFilesQueryResponse\");\n }\n\n DFUXRefMessages(request: Partial<WsDFUXRef.DFUXRefMessagesQueryRequest>): Promise<WsDFUXRef.DFUXRefMessagesQueryResponse> {\n return this._connection.send(\"DFUXRefMessages\", request, \"json\", false, undefined, \"DFUXRefMessagesQueryResponse\");\n }\n\n DFUXRefOrphanFiles(request: Partial<WsDFUXRef.DFUXRefOrphanFilesQueryRequest>): Promise<WsDFUXRef.DFUXRefOrphanFilesQueryResponse> {\n return this._connection.send(\"DFUXRefOrphanFiles\", request, \"json\", false, undefined, \"DFUXRefOrphanFilesQueryResponse\");\n }\n\n DFUXRefUnusedFiles(request: Partial<WsDFUXRef.DFUXRefUnusedFilesRequest>): Promise<WsDFUXRef.DFUXRefUnusedFilesResponse> {\n return this._connection.send(\"DFUXRefUnusedFiles\", request, \"json\", false, undefined, \"DFUXRefUnusedFilesResponse\");\n }\n\n Ping(request: Partial<WsDFUXRef.WsDFUXRefPingRequest>): Promise<WsDFUXRef.WsDFUXRefPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsDFUXRefPingResponse\");\n }\n\n}\n", "import { DFUXRefServiceBase, type WsDFUXRef } from \"./wsdl/WsDFUXRef/v1.04/WsDFUXRef.ts\";\n\nexport {\n type WsDFUXRef\n};\n\nexport namespace WsDFUXRefEx {\n\n export interface Request {\n DFUXRefArrayActionRequest: WsDFUXRef.DFUXRefArrayActionRequest;\n DFUXRefBuildRequest: WsDFUXRef.DFUXRefBuildRequest;\n DFUXRefBuildCancelRequest: WsDFUXRef.DFUXRefBuildCancelRequest;\n DFUXRefCleanDirectoriesRequest: WsDFUXRef.DFUXRefCleanDirectoriesRequest;\n DFUXRefDirectoriesQueryRequest: WsDFUXRef.DFUXRefDirectoriesQueryRequest;\n DFUXRefFoundFilesQueryRequest: WsDFUXRef.DFUXRefFoundFilesQueryRequest;\n DFUXRefListRequest: WsDFUXRef.DFUXRefListRequest;\n DFUXRefLostFilesQueryRequest: WsDFUXRef.DFUXRefLostFilesQueryRequest;\n DFUXRefMessagesQueryRequest: WsDFUXRef.DFUXRefMessagesQueryRequest;\n DFUXRefOrphanFilesQueryRequest: WsDFUXRef.DFUXRefOrphanFilesQueryRequest;\n DFUXRefUnusedFilesRequest: WsDFUXRef.DFUXRefUnusedFilesRequest;\n WsDFUXRefPingRequest: WsDFUXRef.WsDFUXRefPingRequest;\n }\n\n export interface Directory {\n Num: string;\n Name: string;\n MaxSize: string;\n MaxIP: string;\n MinSize: string;\n MinIP: string;\n Size: string;\n PositiveSkew: string;\n }\n\n interface DFUXRefDirectoriesQueryResult {\n Directory: Directory[];\n Cluster: string;\n }\n\n export interface DFUXRefDirectoriesQueryResponseEx {\n DFUXRefDirectoriesQueryResult: DFUXRefDirectoriesQueryResult;\n }\n\n export interface Part {\n Num: string;\n Node: string;\n }\n\n export interface DFUXRefFile {\n Size: string;\n Partmask: string;\n Modified: Date;\n Numparts: string;\n Part: Part[];\n }\n\n export interface DFUXRefFoundFilesQueryResult {\n File: DFUXRefFile[];\n Cluster: string;\n }\n\n export interface XRefNode {\n Name: string;\n Modified: string;\n Status: string;\n }\n\n export interface DFUXRefListResult {\n XRefNode: XRefNode[];\n }\n\n export interface DFUXRefListResponseEx {\n DFUXRefListResult: DFUXRefListResult;\n }\n\n export interface File2 {\n Partslost: string;\n Name: string;\n Partmask: string;\n Modified: Date;\n Numparts: string;\n Part: Part[];\n Cluster: string;\n Size: string;\n Primarylost: string;\n Replicatedlost: string;\n }\n\n export interface DFUXRefLostFilesQueryResult {\n File: File2[];\n Cluster: string;\n }\n\n export interface Warning {\n Text: string;\n File: string;\n }\n\n export interface DFUXRefMessagesQueryResult {\n Warning: Warning[];\n Cluster: string;\n }\n\n export interface DFUXRefOrphanFilesQueryResult {\n File: DFUXRefFile[];\n Cluster: string;\n }\n\n}\n\nexport class DFUXRefService extends DFUXRefServiceBase {\n\n DFUXRefDirectoriesEx(request: Partial<WsDFUXRef.DFUXRefDirectoriesQueryRequest>): Promise<WsDFUXRefEx.DFUXRefDirectoriesQueryResponseEx> {\n return this._connection.send(\"DFUXRefDirectories\", request, \"json\", false, undefined, \"DFUXRefDirectoriesQueryResponse\");\n }\n\n DFUXRefListEx(request: Partial<WsDFUXRef.DFUXRefListRequest>): Promise<WsDFUXRefEx.DFUXRefListResponseEx> {\n return this._connection.send(\"DFUXRefList\", request, \"json\", false, undefined, \"DFUXRefListResponse\");\n }\n\n}\n", "import type { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { ESPExceptions, Service } from \"../espConnection.ts\";\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", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsElk {\n\n export interface GetConfigDetailsRequest {\n\n }\n\n export interface GetConfigDetailsResponse {\n IntegrateKibana: boolean;\n KibanaAddress: string;\n KibanaPort: string;\n KibanaEntryPointURI: string;\n ReportElasticSearchHealth: boolean;\n ElasticSearchAddresses: string;\n ElasticSearchPort: string;\n ReportLogStashHealth: boolean;\n LogStashAddress: string;\n LogStashPort: string;\n }\n\n export interface ws_elkPingRequest {\n\n }\n\n export interface ws_elkPingResponse {\n\n }\n\n}\n\nexport class ElkServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_elk\", \"1\");\n }\n\n GetConfigDetails(request: Partial<WsElk.GetConfigDetailsRequest>): Promise<WsElk.GetConfigDetailsResponse> {\n return this._connection.send(\"GetConfigDetails\", request, \"json\", false, undefined, \"GetConfigDetailsResponse\");\n }\n\n Ping(request: Partial<WsElk.ws_elkPingRequest>): Promise<WsElk.ws_elkPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_elkPingResponse\");\n }\n\n}\n", "import { ElkServiceBase, WsElk } from \"./wsdl/ws_elk/v1/ws_elk.ts\";\n\nexport {\n type WsElk\n};\n\nexport class ElkService extends ElkServiceBase {\n}\n", "import { scopedLogger } from \"@hpcc-js/util\";\nimport { LogaccessServiceBase, WsLogaccess } from \"./wsdl/ws_logaccess/v1.08/ws_logaccess.ts\";\n\nconst logger = scopedLogger(\"@hpcc-js/comms/services/wsLogaccess.ts\");\n\nexport {\n WsLogaccess\n};\n\nexport interface GetLogsExRequest {\n audience?: string;\n class?: string[];\n workunits?: string;\n message?: string;\n processid?: string;\n logid?: string;\n threadid?: string;\n timestamp?: string;\n components?: string;\n instance?: string;\n StartDate?: Date;\n EndDate?: Date;\n LogLineStartFrom: number,\n LogLineLimit: number\n}\n\nexport const enum LogType {\n Disaster = \"DIS\",\n Error = \"ERR\",\n Warning = \"WRN\",\n Information = \"INF\",\n Progress = \"PRO\",\n Metric = \"MET\"\n}\n\nexport const enum TargetAudience {\n Operator = \"OPR\",\n User = \"USR\",\n Programmer = \"PRO\",\n Audit = \"ADT\"\n}\n\n//properties here are \"LogType\" values in Ws_logaccess.GetLogAccessInfo\nexport interface LogLine {\n audience?: string;\n class?: string;\n workunits?: string;\n message?: string;\n processid?: number;\n logid?: string;\n threadid?: number;\n timestamp?: string;\n components?: string;\n instance?: string;\n}\n\nexport interface GetLogsExResponse {\n lines: LogLine[],\n total: number,\n}\n\nexport class LogaccessService extends LogaccessServiceBase {\n\n protected _logAccessInfo: Promise<WsLogaccess.GetLogAccessInfoResponse>;\n\n GetLogAccessInfo(request: WsLogaccess.GetLogAccessInfoRequest = {}): Promise<WsLogaccess.GetLogAccessInfoResponse> {\n if (!this._logAccessInfo) {\n this._logAccessInfo = super.GetLogAccessInfo(request);\n }\n return this._logAccessInfo;\n }\n\n GetLogs(request: WsLogaccess.GetLogsRequest): Promise<WsLogaccess.GetLogsResponse> {\n return super.GetLogs(request);\n }\n\n async GetLogsEx(request: GetLogsExRequest): Promise<GetLogsExResponse> {\n const logInfo = await this.GetLogAccessInfo();\n const columnMap = {};\n logInfo.Columns.Column.forEach(column => columnMap[column.LogType] = column.Name);\n\n const convertLogLine = (line: any) => {\n const retVal: LogLine = {};\n for (const key in columnMap) {\n if (line?.fields) {\n retVal[key] = Object.assign({}, ...line.fields)[columnMap[key]] ?? \"\";\n } else {\n retVal[key] = \"\";\n }\n }\n return retVal;\n };\n\n const getLogsRequest: WsLogaccess.GetLogsRequest = {\n Filter: {\n leftBinaryFilter: {\n BinaryLogFilter: [{\n leftFilter: {\n LogCategory: WsLogaccess.LogAccessType.All,\n },\n } as WsLogaccess.BinaryLogFilter]\n }\n },\n Range: {\n StartDate: new Date(0).toISOString(),\n },\n LogLineStartFrom: request.LogLineStartFrom ?? 0,\n LogLineLimit: request.LogLineLimit ?? 100,\n SelectColumnMode: WsLogaccess.LogSelectColumnMode.DEFAULT,\n Format: \"JSON\",\n SortBy: {\n SortCondition: [{\n BySortType: WsLogaccess.SortColumType.ByDate,\n ColumnName: \"\",\n Direction: 0\n }]\n }\n };\n\n const filters: WsLogaccess.leftFilter[] = [];\n for (const key in request) {\n let searchField;\n if (key in columnMap) {\n if (Object.values(WsLogaccess.LogColumnType).includes(key as WsLogaccess.LogColumnType)) {\n searchField = key;\n } else {\n searchField = columnMap[key];\n }\n }\n let logCategory;\n if (searchField) {\n switch (searchField) {\n case WsLogaccess.LogColumnType.workunits:\n case \"hpcc.log.jobid\":\n logCategory = WsLogaccess.LogAccessType.ByJobID;\n break;\n case WsLogaccess.LogColumnType.audience:\n case \"hpcc.log.audience\":\n logCategory = WsLogaccess.LogAccessType.ByTargetAudience;\n break;\n case WsLogaccess.LogColumnType.class:\n case \"hpcc.log.class\":\n logCategory = WsLogaccess.LogAccessType.ByLogType;\n break;\n case WsLogaccess.LogColumnType.components:\n case \"kubernetes.container.name\":\n logCategory = WsLogaccess.LogAccessType.ByComponent;\n break;\n default:\n logCategory = WsLogaccess.LogAccessType.ByFieldName;\n searchField = columnMap[key];\n }\n if (Array.isArray(request[key])) {\n request[key].forEach(value => {\n if (logCategory === WsLogaccess.LogAccessType.ByComponent) {\n value += \"*\";\n }\n filters.push({\n LogCategory: logCategory,\n SearchField: searchField,\n SearchByValue: value\n });\n });\n } else {\n let value = request[key];\n if (logCategory === WsLogaccess.LogAccessType.ByComponent) {\n // append wildcard to end of search value to include ephemeral\n // containers that aren't listed in ECL Watch's filters\n value += \"*\";\n }\n filters.push({\n LogCategory: logCategory,\n SearchField: searchField,\n SearchByValue: value\n });\n }\n }\n }\n\n if (filters.length > 2) {\n let binaryLogFilter = getLogsRequest.Filter.leftBinaryFilter.BinaryLogFilter[0];\n filters.forEach((filter, i) => {\n let operator = WsLogaccess.LogAccessFilterOperator.AND;\n if (i > 0) {\n if (filters[i - 1].SearchField === filter.SearchField) {\n operator = WsLogaccess.LogAccessFilterOperator.OR;\n }\n if (i === filters.length - 1) {\n binaryLogFilter.Operator = operator;\n binaryLogFilter.rightFilter = filter as WsLogaccess.rightFilter;\n } else {\n binaryLogFilter.Operator = operator;\n binaryLogFilter.rightBinaryFilter = {\n BinaryLogFilter: [{\n leftFilter: filter\n } as WsLogaccess.BinaryLogFilter]\n };\n binaryLogFilter = binaryLogFilter.rightBinaryFilter.BinaryLogFilter[0];\n }\n } else {\n binaryLogFilter.leftFilter = filter as WsLogaccess.leftFilter;\n }\n });\n } else {\n delete getLogsRequest.Filter.leftBinaryFilter;\n getLogsRequest.Filter.leftFilter = {\n LogCategory: WsLogaccess.LogAccessType.All\n } as WsLogaccess.leftFilter;\n if (filters[0]?.SearchField) {\n getLogsRequest.Filter.leftFilter = {\n LogCategory: filters[0]?.LogCategory,\n SearchField: filters[0]?.SearchField,\n SearchByValue: filters[0]?.SearchByValue\n };\n }\n if (filters[1]?.SearchField) {\n getLogsRequest.Filter.Operator = WsLogaccess.LogAccessFilterOperator.AND;\n if (filters[0].SearchField === filters[1].SearchField) {\n getLogsRequest.Filter.Operator = WsLogaccess.LogAccessFilterOperator.OR;\n }\n getLogsRequest.Filter.rightFilter = {\n LogCategory: filters[1]?.LogCategory,\n SearchField: filters[1]?.SearchField,\n SearchByValue: filters[1]?.SearchByValue\n };\n }\n }\n\n if (request.StartDate) {\n getLogsRequest.Range.StartDate = request.StartDate.toISOString();\n }\n if (request.EndDate) {\n getLogsRequest.Range.EndDate = request.EndDate.toISOString();\n }\n\n return this.GetLogs(getLogsRequest).then(response => {\n try {\n const logLines = JSON.parse(response.LogLines);\n let lines = [];\n switch (logInfo.RemoteLogManagerType) {\n case \"azureloganalyticscurl\":\n case \"elasticstack\":\n case \"grafanacurl\":\n lines = logLines.lines?.map(convertLogLine) ?? [];\n break;\n default:\n logger.warning(`Unknown RemoteLogManagerType: ${logInfo.RemoteLogManagerType}`);\n lines = [];\n }\n return {\n lines: lines,\n total: response.TotalLogLinesAvailable ?? 10000\n };\n } catch (e: any) {\n logger.error(e.message ?? e);\n }\n return {\n lines: [],\n total: 0\n };\n });\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsLogaccess {\n\n export type dateTime = string;\n export type unsignedInt = number;\n export type long = number;\n\n export enum LogColumnType {\n global = \"global\",\n workunits = \"workunits\",\n components = \"components\",\n audience = \"audience\",\n class = \"class\",\n instance = \"instance\",\n node = \"node\",\n message = \"message\",\n logid = \"logid\",\n processid = \"processid\",\n threadid = \"threadid\",\n timestamp = \"timestamp\",\n pod = \"pod\",\n traceid = \"traceid\",\n spanid = \"spanid\"\n }\n\n export enum LogColumnValueType {\n string = \"string\",\n numeric = \"numeric\",\n datetime = \"datetime\",\n enum = \"enum\",\n epoch = \"epoch\"\n }\n\n export enum LogAccessType {\n All = 0,\n ByJobID = 1,\n ByComponent = 2,\n ByLogType = 3,\n ByTargetAudience = 4,\n BySourceInstance = 5,\n BySourceNode = 6,\n ByFieldName = 7,\n ByPod = 8,\n ByTraceID = 9,\n BySpanID = 10\n }\n\n export enum LogAccessStatusCode {\n Success = 0,\n Warning = 1,\n Fail = 2\n }\n\n export enum LogAccessFilterOperator {\n NONE = 0,\n AND = 1,\n OR = 2\n }\n\n export enum LogSelectColumnMode {\n MIN = 0,\n DEFAULT = 1,\n ALL = 2,\n CUSTOM = 3\n }\n\n export enum SortColumType {\n ByDate = 0,\n ByJobID = 1,\n ByComponent = 2,\n ByLogType = 3,\n ByTargetAudience = 4,\n BySourceInstance = 5,\n BySourceNode = 6,\n ByFieldName = 7,\n ByPod = 8,\n ByTraceID = 9,\n BySpanID = 10\n }\n\n export enum SortDirection {\n ASC = 0,\n DSC = 1\n }\n\n export interface GetHealthReportRequest {\n IncludeConfiguration?: boolean;\n IncludeDebugReport?: boolean;\n IncludeSampleQuery?: 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 MessageArray {\n Item: string[];\n }\n\n export interface Status {\n Code: LogAccessStatusCode;\n MessageArray: MessageArray;\n }\n\n export interface DebugReport {\n SampleQueryReport: string;\n PluginDebugReport: string;\n ServerDebugReport: string;\n }\n\n export interface GetHealthReportResponse {\n Exceptions: Exceptions;\n Status: Status;\n DebugReport: DebugReport;\n Configuration: string;\n }\n\n export interface GetLogAccessInfoRequest {\n\n }\n\n export interface EnumeratedValues {\n Item: string[];\n }\n\n export interface Column {\n Name: string;\n LogType: LogColumnType;\n EnumeratedValues: EnumeratedValues;\n ColumnMode: LogSelectColumnMode;\n ColumnType: LogColumnValueType;\n }\n\n export interface Columns {\n Column: Column[];\n }\n\n export interface GetLogAccessInfoResponse {\n Exceptions: Exceptions;\n Columns: Columns;\n RemoteLogManagerType: string;\n RemoteLogManagerConnectionString: string;\n SupportsResultPaging: boolean;\n }\n\n export interface leftFilter {\n LogCategory: LogAccessType;\n SearchByValue: string;\n SearchField: string;\n }\n\n export interface rightFilter {\n LogCategory: LogAccessType;\n SearchByValue: string;\n SearchField: string;\n }\n\n export interface rightBinaryFilter {\n BinaryLogFilter: BinaryLogFilter[];\n }\n\n export interface BinaryLogFilter {\n leftFilter: leftFilter;\n leftBinaryFilter: leftBinaryFilter;\n Operator: LogAccessFilterOperator;\n rightFilter: {\n LogCategory: LogAccessType;\n SearchByValue: string;\n SearchField: string;\n };\n rightBinaryFilter: {\n BinaryLogFilter: BinaryLogFilter[];\n };\n }\n\n export interface leftBinaryFilter {\n BinaryLogFilter: BinaryLogFilter[];\n }\n\n export interface Filter {\n leftFilter?: leftFilter;\n leftBinaryFilter?: leftBinaryFilter;\n Operator?: LogAccessFilterOperator;\n rightFilter?: rightFilter;\n rightBinaryFilter?: rightBinaryFilter;\n }\n\n export interface Range {\n StartDate?: dateTime;\n EndDate?: dateTime;\n }\n\n export interface Columns2 {\n Item: string[];\n }\n\n export interface SortCondition {\n BySortType: SortColumType;\n ColumnName: string;\n Direction: SortDirection;\n }\n\n export interface SortBy {\n SortCondition: SortCondition[];\n }\n\n export interface GetLogsRequest {\n Filter?: Filter;\n Range?: Range;\n LogLineLimit?: unsignedInt;\n LogLineStartFrom?: long;\n SelectColumnMode?: LogSelectColumnMode;\n Columns?: Columns2;\n Format?: string;\n SortBy?: SortBy;\n }\n\n export interface GetLogsResponse {\n Exceptions: Exceptions;\n LogLines: string;\n LogLineCount: unsignedInt;\n TotalLogLinesAvailable: unsignedInt;\n }\n\n export interface ws_logaccessPingRequest {\n\n }\n\n export interface ws_logaccessPingResponse {\n\n }\n\n}\n\nexport class LogaccessServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_logaccess\", \"1.08\");\n }\n\n GetHealthReport(request: Partial<WsLogaccess.GetHealthReportRequest>): Promise<WsLogaccess.GetHealthReportResponse> {\n return this._connection.send(\"GetHealthReport\", request, \"json\", false, undefined, \"GetHealthReportResponse\");\n }\n\n GetLogAccessInfo(request: Partial<WsLogaccess.GetLogAccessInfoRequest>): Promise<WsLogaccess.GetLogAccessInfoResponse> {\n return this._connection.send(\"GetLogAccessInfo\", request, \"json\", false, undefined, \"GetLogAccessInfoResponse\");\n }\n\n GetLogs(request: Partial<WsLogaccess.GetLogsRequest>): Promise<WsLogaccess.GetLogsResponse> {\n return this._connection.send(\"GetLogs\", request, \"json\", false, undefined, \"GetLogsResponse\");\n }\n\n Ping(request: Partial<WsLogaccess.ws_logaccessPingRequest>): Promise<WsLogaccess.ws_logaccessPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_logaccessPingResponse\");\n }\n\n}\n", "import { exists } from \"@hpcc-js/util\";\nimport { max as d3Max, mean as d3Mean } from \"d3-array\";\n\nimport { MachineServiceBase, WsMachine } from \"./wsdl/ws_machine/v1.19/ws_machine.ts\";\n\nexport {\n type WsMachine\n};\n\nexport namespace WsMachineEx {\n\n export interface DiskUsage extends WsMachine.DiskUsage {\n Total: number;\n PercentUsed: number;\n }\n\n export interface MachineUsage extends Omit<WsMachine.MachineUsage, \"DiskUsages\"> {\n DiskUsages: DiskUsage[];\n mean: number;\n max: number;\n }\n\n export interface ComponentUsage extends Omit<WsMachine.ComponentUsage, \"MachineUsages\"> {\n MachineUsages: MachineUsage[];\n MachineUsagesDescription: string;\n mean: number;\n max: number;\n }\n\n export interface TargetClusterUsage extends Omit<WsMachine.TargetClusterUsage, \"ComponentUsages\"> {\n ComponentUsages: ComponentUsage[];\n ComponentUsagesDescription: string;\n mean: number;\n max: number;\n }\n\n}\n\nexport class MachineService extends MachineServiceBase {\n\n GetTargetClusterUsageEx(targetClusters?: string[], bypassCachedResult: boolean = false): Promise<WsMachineEx.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 }).then(response => {\n return response.filter(tcu => !!tcu.ComponentUsages).map(tcu => {\n const ComponentUsages: WsMachineEx.ComponentUsage[] = tcu.ComponentUsages.ComponentUsage.map(cu => {\n const MachineUsages: WsMachineEx.MachineUsage[] = (cu.MachineUsages && cu.MachineUsages.MachineUsage ? cu.MachineUsages.MachineUsage : []).map(mu => {\n const DiskUsages: WsMachineEx.DiskUsage[] = mu.DiskUsages && mu.DiskUsages.DiskUsage ? mu.DiskUsages.DiskUsage.map(du => {\n return {\n ...du,\n InUse: du.InUse * 1024,\n Total: (du.InUse + du.Available) * 1024,\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.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsMachine {\n\n export type int = number;\n export type long = number;\n export type unsignedInt = number;\n\n export enum ThresholdType {\n THRESHOLD_PERCENTAGE = 0,\n THRESHOLD_MB = 1\n }\n\n export enum TpMachineType {\n ALLNODES = \"ALLNODES\",\n THORMACHINES = \"THORMACHINES\",\n HOLEMACHINES = \"HOLEMACHINES\",\n ROXIEMACHINES = \"ROXIEMACHINES\",\n MACHINES = \"MACHINES\",\n AVAILABLEMACHINES = \"AVAILABLEMACHINES\",\n DROPZONE = \"DROPZONE\",\n STANDBYNNODE = \"STANDBYNNODE\",\n THORSPARENODES = \"THORSPARENODES\",\n HOLESTANDBYNODES = \"HOLESTANDBYNODES\"\n }\n\n export interface GetComponentStatusRequest {\n\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 StatusReport {\n StatusID: int;\n Status: string;\n StatusDetails: string;\n Reporter: string;\n TimeReported: long;\n TimeReportedStr: string;\n TimeCached: string;\n URL: string;\n }\n\n export interface StatusReports {\n StatusReport: StatusReport[];\n }\n\n export interface ComponentStatus {\n ComponentTypeID: int;\n ComponentType: string;\n EndPoint: string;\n StatusID: int;\n Status: string;\n TimeReported: long;\n TimeReportedStr: string;\n Reporter: string;\n StatusReports: StatusReports;\n }\n\n export interface ComponentStatusList {\n ComponentStatus: ComponentStatus[];\n }\n\n export interface GetComponentStatusResponse {\n Exceptions: Exceptions;\n StatusCode: int;\n Status: string;\n ComponentType: string;\n EndPoint: string;\n ComponentStatusID: int;\n ComponentStatus: string;\n TimeReported: long;\n TimeReportedStr: string;\n Reporter: string;\n StatusReport: StatusReport;\n ComponentStatusList: ComponentStatusList;\n }\n\n export interface Component {\n Type: string;\n Name: string;\n }\n\n export interface Components {\n Component: Component[];\n }\n\n export interface GetComponentUsageRequest {\n Components?: Components;\n BypassCachedResult?: boolean;\n }\n\n export interface DiskUsage {\n Name: string;\n Path: string;\n Description: string;\n InUse: long;\n Available: long;\n PercentAvailable: int;\n Exception: string;\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 Exception: 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 Exception: string;\n MachineUsages: MachineUsages;\n }\n\n export interface ComponentUsages {\n ComponentUsage: ComponentUsage[];\n }\n\n export interface GetComponentUsageResponse {\n Exceptions: Exceptions;\n ComponentUsages: ComponentUsages;\n UsageTime: string;\n }\n\n export interface Addresses {\n Item: string[];\n }\n\n export interface GetMachineInfoRequest {\n Addresses?: Addresses;\n SortBy?: string;\n ClusterType?: TpMachineType;\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?: int;\n DiskThreshold?: int;\n CpuThreshold?: int;\n AutoRefresh?: int;\n MemThresholdType?: ThresholdType;\n DiskThresholdType?: ThresholdType;\n UserName?: string;\n Password?: string;\n SecurityString?: string;\n }\n\n export interface RequestInfo {\n Addresses: Addresses;\n SortBy: string;\n ClusterType: TpMachineType;\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: int;\n DiskThreshold: int;\n CpuThreshold: int;\n AutoRefresh: int;\n MemThresholdType: ThresholdType;\n DiskThresholdType: ThresholdType;\n SecurityString: string;\n UserName: string;\n Password: string;\n EnableSNMP: boolean;\n }\n\n export interface Columns {\n Item: string[];\n }\n\n export interface ProcessorInfo {\n Type: string;\n Load: int;\n }\n\n export interface Processors {\n ProcessorInfo: ProcessorInfo[];\n }\n\n export interface StorageInfo {\n Description: string;\n Type: string;\n Available: long;\n PercentAvail: int;\n Total: long;\n Failures: int;\n }\n\n export interface Storage {\n StorageInfo: StorageInfo[];\n }\n\n export interface SWRunInfo {\n Name: string;\n Instances: int;\n State: int;\n }\n\n export interface Running {\n SWRunInfo: SWRunInfo[];\n }\n\n export interface PhysicalMemory {\n Description: string;\n Type: string;\n Available: long;\n PercentAvail: int;\n Total: long;\n Failures: int;\n }\n\n export interface VirtualMemory {\n Description: string;\n Type: string;\n Available: long;\n PercentAvail: int;\n Total: long;\n Failures: int;\n }\n\n export interface ComponentInfo {\n Condition: int;\n State: int;\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: int;\n ProcessNumber: int;\n Channels: unsignedInt;\n Processors: Processors;\n Storage: Storage;\n Running: Running;\n PhysicalMemory: PhysicalMemory;\n VirtualMemory: VirtualMemory;\n ComponentInfo: ComponentInfo;\n Exception: string;\n }\n\n export interface Machines {\n MachineInfoEx: MachineInfoEx[];\n }\n\n export interface GetMachineInfoResponse {\n Exceptions: Exceptions;\n RequestInfo: RequestInfo;\n Columns: Columns;\n Machines: Machines;\n TimeStamp: string;\n UserName: string;\n Password: string;\n AcceptLanguage: string;\n }\n\n export interface GetMachineInfoRequestEx {\n Addresses: Addresses;\n ClusterType: TpMachineType;\n }\n\n export interface GetMachineInfoResponseEx {\n Exceptions: Exceptions;\n AcceptLanguage: string;\n Machines: Machines;\n }\n\n export interface ShowColumns {\n Item: string[];\n }\n\n export interface MetricsRequest {\n SecurityString?: string;\n Addresses?: Addresses;\n ShowColumns?: ShowColumns;\n AutoRefresh?: int;\n SelectAllChecked?: boolean;\n Cluster?: string;\n AutoUpdate?: boolean;\n }\n\n export interface MetricsResponse {\n Exceptions: Exceptions;\n FieldInformation: string;\n Metrics: string;\n AutoRefresh: int;\n Cluster: string;\n SelectAllChecked: boolean;\n AutoUpdate: boolean;\n AcceptLanguage: string;\n }\n\n export interface NodeGroups {\n Item: string[];\n }\n\n export interface GetNodeGroupUsageRequest {\n NodeGroups?: NodeGroups;\n BypassCachedResult?: boolean;\n }\n\n export interface NodeGroupUsage {\n Name: string;\n Description: string;\n Exception: string;\n ComponentUsages: ComponentUsages;\n }\n\n export interface NodeGroupUsages {\n NodeGroupUsage: NodeGroupUsage[];\n }\n\n export interface GetNodeGroupUsageResponse {\n Exceptions: Exceptions;\n NodeGroupUsages: NodeGroupUsages;\n UsageTime: string;\n }\n\n export interface TargetClusters {\n Item: string[];\n }\n\n export interface GetTargetClusterInfoRequest {\n TargetClusters?: TargetClusters;\n AddProcessesToFilter?: string;\n ApplyProcessFilter?: boolean;\n GetProcessorInfo?: boolean;\n GetStorageInfo?: boolean;\n LocalFileSystemsOnly?: boolean;\n GetSoftwareInfo?: boolean;\n MemThreshold?: int;\n DiskThreshold?: int;\n CpuThreshold?: int;\n AutoRefresh?: int;\n MemThresholdType?: ThresholdType;\n DiskThresholdType?: ThresholdType;\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 GetTargetClusterInfoResponse {\n Exceptions: Exceptions;\n Columns: Columns;\n RequestInfo: RequestInfo;\n TargetClusterInfoList: TargetClusterInfoList;\n TimeStamp: string;\n AcceptLanguage: string;\n }\n\n export interface GetTargetClusterUsageRequest {\n TargetClusters?: TargetClusters;\n BypassCachedResult?: boolean;\n }\n\n export interface TargetClusterUsage {\n Name: string;\n Description: string;\n Exception: string;\n ComponentUsages: ComponentUsages;\n }\n\n export interface TargetClusterUsages {\n TargetClusterUsage: TargetClusterUsage[];\n }\n\n export interface GetTargetClusterUsageResponse {\n Exceptions: Exceptions;\n TargetClusterUsages: TargetClusterUsages;\n UsageTime: string;\n }\n\n export interface ws_machinePingRequest {\n\n }\n\n export interface ws_machinePingResponse {\n\n }\n\n export interface UpdateComponentStatusRequest {\n Reporter?: string;\n ComponentStatusList?: ComponentStatusList;\n }\n\n export interface UpdateComponentStatusResponse {\n Exceptions: Exceptions;\n StatusCode: int;\n Status: string;\n }\n\n}\n\nexport class MachineServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_machine\", \"1.19\");\n }\n\n GetComponentStatus(request: Partial<WsMachine.GetComponentStatusRequest>): Promise<WsMachine.GetComponentStatusResponse> {\n return this._connection.send(\"GetComponentStatus\", request, \"json\", false, undefined, \"GetComponentStatusResponse\");\n }\n\n GetComponentUsage(request: Partial<WsMachine.GetComponentUsageRequest>): Promise<WsMachine.GetComponentUsageResponse> {\n return this._connection.send(\"GetComponentUsage\", request, \"json\", false, undefined, \"GetComponentUsageResponse\");\n }\n\n GetMachineInfo(request: Partial<WsMachine.GetMachineInfoRequest>): Promise<WsMachine.GetMachineInfoResponse> {\n return this._connection.send(\"GetMachineInfo\", request, \"json\", false, undefined, \"GetMachineInfoResponse\");\n }\n\n GetMachineInfoEx(request: Partial<WsMachine.GetMachineInfoRequestEx>): Promise<WsMachine.GetMachineInfoResponseEx> {\n return this._connection.send(\"GetMachineInfoEx\", request, \"json\", false, undefined, \"GetMachineInfoResponseEx\");\n }\n\n GetMetrics(request: Partial<WsMachine.MetricsRequest>): Promise<WsMachine.MetricsResponse> {\n return this._connection.send(\"GetMetrics\", request, \"json\", false, undefined, \"MetricsResponse\");\n }\n\n GetNodeGroupUsage(request: Partial<WsMachine.GetNodeGroupUsageRequest>): Promise<WsMachine.GetNodeGroupUsageResponse> {\n return this._connection.send(\"GetNodeGroupUsage\", request, \"json\", false, undefined, \"GetNodeGroupUsageResponse\");\n }\n\n GetTargetClusterInfo(request: Partial<WsMachine.GetTargetClusterInfoRequest>): Promise<WsMachine.GetTargetClusterInfoResponse> {\n return this._connection.send(\"GetTargetClusterInfo\", request, \"json\", false, undefined, \"GetTargetClusterInfoResponse\");\n }\n\n GetTargetClusterUsage(request: Partial<WsMachine.GetTargetClusterUsageRequest>): Promise<WsMachine.GetTargetClusterUsageResponse> {\n return this._connection.send(\"GetTargetClusterUsage\", request, \"json\", false, undefined, \"GetTargetClusterUsageResponse\");\n }\n\n Ping(request: Partial<WsMachine.ws_machinePingRequest>): Promise<WsMachine.ws_machinePingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_machinePingResponse\");\n }\n\n UpdateComponentStatus(request: Partial<WsMachine.UpdateComponentStatusRequest>): Promise<WsMachine.UpdateComponentStatusResponse> {\n return this._connection.send(\"UpdateComponentStatus\", request, \"json\", false, undefined, \"UpdateComponentStatusResponse\");\n }\n\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsPackageProcess {\n\n export type int = number;\n export type nonNegativeInteger = number;\n\n export interface ActivatePackageRequest {\n Target?: string;\n PackageMap?: string;\n Process?: string;\n GlobalScope?: 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 status {\n Code: int;\n Description: string;\n }\n\n export interface ActivatePackageResponse {\n Exceptions: Exceptions;\n status: status;\n }\n\n export interface AddPackageRequest {\n Info?: string;\n Activate?: boolean;\n OverWrite?: boolean;\n Target?: string;\n PackageMap?: string;\n Process?: string;\n DaliIp?: string;\n GlobalScope?: boolean;\n SourceProcess?: string;\n AllowForeignFiles?: boolean;\n PreloadAllPackages?: boolean;\n ReplacePackageMap?: boolean;\n UpdateSuperFiles?: boolean;\n UpdateCloneFrom?: boolean;\n AppendCluster?: boolean;\n DfuCopyFiles?: boolean;\n DfuQueue?: string;\n DfuWait?: nonNegativeInteger;\n DfuOverwrite?: boolean;\n OnlyCopyFiles?: boolean;\n StopIfFilesCopied?: boolean;\n DfuPublisherWuid?: string;\n RemoteStorage?: string;\n KeyCompression?: string;\n }\n\n export interface FilesNotFound {\n File: string[];\n }\n\n export interface AddPackageResponse {\n Exceptions: Exceptions;\n status: status;\n FilesNotFound: FilesNotFound;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface AddPartToPackageMapRequest {\n Target?: string;\n Process?: string;\n PackageMap?: string;\n GlobalScope?: boolean;\n PartName?: string;\n Content?: string;\n DeletePrevious?: boolean;\n DaliIp?: string;\n SourceProcess?: string;\n AllowForeignFiles?: boolean;\n PreloadAllPackages?: boolean;\n UpdateSuperFiles?: boolean;\n UpdateCloneFrom?: boolean;\n AppendCluster?: boolean;\n DfuCopyFiles?: boolean;\n DfuQueue?: string;\n DfuWait?: nonNegativeInteger;\n DfuOverwrite?: boolean;\n OnlyCopyFiles?: boolean;\n StopIfFilesCopied?: boolean;\n DfuPublisherWuid?: string;\n RemoteStorage?: string;\n KeyCompression?: string;\n }\n\n export interface AddPartToPackageMapResponse {\n Exceptions: Exceptions;\n status: status;\n FilesNotFound: FilesNotFound;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface CopyPackageMapRequest {\n SourcePath?: string;\n RemoteUserName?: string;\n RemotePassword?: string;\n Target?: string;\n Process?: string;\n PMID?: string;\n Activate?: boolean;\n DaliIp?: string;\n GlobalScope?: boolean;\n SourceProcess?: string;\n PreloadAllPackages?: boolean;\n ReplacePackageMap?: boolean;\n UpdateSuperFiles?: boolean;\n UpdateCloneFrom?: boolean;\n AppendCluster?: boolean;\n DfuCopyFiles?: boolean;\n DfuQueue?: string;\n DfuWait?: nonNegativeInteger;\n DfuOverwrite?: boolean;\n OnlyCopyFiles?: boolean;\n StopIfFilesCopied?: boolean;\n DfuPublisherWuid?: string;\n RemoteStorage?: string;\n KeyCompression?: string;\n }\n\n export interface CopyPackageMapResponse {\n Exceptions: Exceptions;\n status: status;\n FilesNotFound: FilesNotFound;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface DeActivatePackageRequest {\n Target?: string;\n PackageMap?: string;\n Process?: string;\n GlobalScope?: boolean;\n }\n\n export interface DeActivatePackageResponse {\n Exceptions: Exceptions;\n status: status;\n }\n\n export interface PackageMap {\n Id: string;\n Target: string;\n Process: string;\n }\n\n export interface PackageMaps {\n PackageMap: PackageMap[];\n }\n\n export interface DeletePackageRequest {\n Target?: string;\n PackageMap?: string;\n Process?: string;\n GlobalScope?: boolean;\n PackageMaps?: PackageMaps;\n }\n\n export interface DeletePackageResponse {\n Exceptions: Exceptions;\n status: status;\n }\n\n export interface EchoRequest {\n Request?: string;\n }\n\n export interface EchoResponse {\n Response: string;\n }\n\n export interface GetPackageRequest {\n Target?: string;\n Process?: string;\n }\n\n export interface GetPackageResponse {\n Exceptions: Exceptions;\n status: status;\n Info: string;\n }\n\n export interface GetPackageMapByIdRequest {\n PackageMapId?: string;\n }\n\n export interface GetPackageMapByIdResponse {\n Exceptions: Exceptions;\n status: status;\n Info: string;\n }\n\n export interface GetPackageMapSelectOptionsRequest {\n IncludeTargets?: boolean;\n IncludeProcesses?: boolean;\n IncludeProcessFilters?: boolean;\n }\n\n export interface Processes {\n Item: string[];\n }\n\n export interface TargetData {\n Name: string;\n Type: string;\n Processes: Processes;\n }\n\n export interface Targets {\n TargetData: TargetData[];\n }\n\n export interface ProcessFilters {\n Item: string[];\n }\n\n export interface GetPackageMapSelectOptionsResponse {\n Exceptions: Exceptions;\n status: status;\n Targets: Targets;\n ProcessFilters: ProcessFilters;\n }\n\n export interface GetPartFromPackageMapRequest {\n Target?: string;\n PackageMap?: string;\n GlobalScope?: boolean;\n PartName?: string;\n }\n\n export interface GetPartFromPackageMapResponse {\n Exceptions: Exceptions;\n status: status;\n Content: string;\n }\n\n export interface GetQueryFileMappingRequest {\n Target?: string;\n PMID?: string;\n QueryName?: string;\n GlobalScope?: boolean;\n }\n\n export interface UnmappedFiles {\n File: string[];\n }\n\n export interface SubFiles {\n File: string[];\n }\n\n export interface SuperFile {\n Name: string;\n SubFiles: SubFiles;\n }\n\n export interface SuperFiles {\n SuperFile: SuperFile[];\n }\n\n export interface GetQueryFileMappingResponse {\n Exceptions: Exceptions;\n UnmappedFiles: UnmappedFiles;\n SuperFiles: SuperFiles;\n }\n\n export interface ListPackageRequest {\n Target?: string;\n Process?: string;\n }\n\n export interface PackageListData {\n Id: string;\n Queries: string;\n }\n\n export interface PkgListData {\n PackageListData: PackageListData[];\n }\n\n export interface PackageListMapData {\n Id: string;\n Target: string;\n Process: string;\n PkgListData: PkgListData;\n Active: boolean;\n Description: string;\n }\n\n export interface PkgListMapData {\n PackageListMapData: PackageListMapData[];\n }\n\n export interface ListPackageResponse {\n Exceptions: Exceptions;\n status: status;\n PkgListMapData: PkgListMapData;\n }\n\n export interface ListPackagesRequest {\n Target?: string;\n Process?: string;\n ProcessFilter?: string;\n }\n\n export interface PackageMapList {\n PackageListMapData: PackageListMapData[];\n }\n\n export interface ListPackagesResponse {\n Exceptions: Exceptions;\n status: status;\n PackageMapList: PackageMapList;\n }\n\n export interface WsPackageProcessPingRequest {\n\n }\n\n export interface WsPackageProcessPingResponse {\n\n }\n\n export interface RemovePartFromPackageMapRequest {\n Target?: string;\n PackageMap?: string;\n GlobalScope?: boolean;\n PartName?: string;\n }\n\n export interface RemovePartFromPackageMapResponse {\n Exceptions: Exceptions;\n status: status;\n }\n\n export interface QueriesToVerify {\n Item: string[];\n }\n\n export interface QueriesToIgnore {\n Item: string[];\n }\n\n export interface ValidatePackageRequest {\n Info?: string;\n Target?: string;\n Process?: string;\n Active?: boolean;\n PMID?: string;\n QueryIdToVerify?: string;\n QueriesToVerify?: QueriesToVerify;\n QueriesToIgnore?: QueriesToIgnore;\n CheckDFS?: boolean;\n GlobalScope?: boolean;\n IgnoreWarnings?: boolean;\n IgnoreOptionalFiles?: boolean;\n }\n\n export interface Warnings {\n Item: string[];\n }\n\n export interface Errors {\n Item: string[];\n }\n\n export interface Unmatched {\n Item: string[];\n }\n\n export interface packages {\n Unmatched: Unmatched;\n }\n\n export interface queries {\n Unmatched: Unmatched;\n }\n\n export interface NotInDFS {\n File: string[];\n }\n\n export interface files {\n Unmatched: Unmatched;\n NotInDFS: NotInDFS;\n }\n\n export interface Result {\n Target: string;\n PMID: string;\n Warnings: Warnings;\n Errors: Errors;\n packages: packages;\n queries: queries;\n files: files;\n }\n\n export interface Results {\n Result: Result[];\n }\n\n export interface ValidatePackageResponse {\n Exceptions: Exceptions;\n Results: Results;\n }\n\n}\n\nexport class PackageProcessServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsPackageProcess\", \"1.07\");\n }\n\n ActivatePackage(request: Partial<WsPackageProcess.ActivatePackageRequest>): Promise<WsPackageProcess.ActivatePackageResponse> {\n return this._connection.send(\"ActivatePackage\", request, \"json\", false, undefined, \"ActivatePackageResponse\");\n }\n\n AddPackage(request: Partial<WsPackageProcess.AddPackageRequest>): Promise<WsPackageProcess.AddPackageResponse> {\n return this._connection.send(\"AddPackage\", request, \"json\", false, undefined, \"AddPackageResponse\");\n }\n\n AddPartToPackageMap(request: Partial<WsPackageProcess.AddPartToPackageMapRequest>): Promise<WsPackageProcess.AddPartToPackageMapResponse> {\n return this._connection.send(\"AddPartToPackageMap\", request, \"json\", false, undefined, \"AddPartToPackageMapResponse\");\n }\n\n CopyPackageMap(request: Partial<WsPackageProcess.CopyPackageMapRequest>): Promise<WsPackageProcess.CopyPackageMapResponse> {\n return this._connection.send(\"CopyPackageMap\", request, \"json\", false, undefined, \"CopyPackageMapResponse\");\n }\n\n DeActivatePackage(request: Partial<WsPackageProcess.DeActivatePackageRequest>): Promise<WsPackageProcess.DeActivatePackageResponse> {\n return this._connection.send(\"DeActivatePackage\", request, \"json\", false, undefined, \"DeActivatePackageResponse\");\n }\n\n DeletePackage(request: Partial<WsPackageProcess.DeletePackageRequest>): Promise<WsPackageProcess.DeletePackageResponse> {\n return this._connection.send(\"DeletePackage\", request, \"json\", false, undefined, \"DeletePackageResponse\");\n }\n\n Echo(request: Partial<WsPackageProcess.EchoRequest>): Promise<WsPackageProcess.EchoResponse> {\n return this._connection.send(\"Echo\", request, \"json\", false, undefined, \"EchoResponse\");\n }\n\n GetPackage(request: Partial<WsPackageProcess.GetPackageRequest>): Promise<WsPackageProcess.GetPackageResponse> {\n return this._connection.send(\"GetPackage\", request, \"json\", false, undefined, \"GetPackageResponse\");\n }\n\n GetPackageMapById(request: Partial<WsPackageProcess.GetPackageMapByIdRequest>): Promise<WsPackageProcess.GetPackageMapByIdResponse> {\n return this._connection.send(\"GetPackageMapById\", request, \"json\", false, undefined, \"GetPackageMapByIdResponse\");\n }\n\n GetPackageMapSelectOptions(request: Partial<WsPackageProcess.GetPackageMapSelectOptionsRequest>): Promise<WsPackageProcess.GetPackageMapSelectOptionsResponse> {\n return this._connection.send(\"GetPackageMapSelectOptions\", request, \"json\", false, undefined, \"GetPackageMapSelectOptionsResponse\");\n }\n\n GetPartFromPackageMap(request: Partial<WsPackageProcess.GetPartFromPackageMapRequest>): Promise<WsPackageProcess.GetPartFromPackageMapResponse> {\n return this._connection.send(\"GetPartFromPackageMap\", request, \"json\", false, undefined, \"GetPartFromPackageMapResponse\");\n }\n\n GetQueryFileMapping(request: Partial<WsPackageProcess.GetQueryFileMappingRequest>): Promise<WsPackageProcess.GetQueryFileMappingResponse> {\n return this._connection.send(\"GetQueryFileMapping\", request, \"json\", false, undefined, \"GetQueryFileMappingResponse\");\n }\n\n ListPackage(request: Partial<WsPackageProcess.ListPackageRequest>): Promise<WsPackageProcess.ListPackageResponse> {\n return this._connection.send(\"ListPackage\", request, \"json\", false, undefined, \"ListPackageResponse\");\n }\n\n ListPackages(request: Partial<WsPackageProcess.ListPackagesRequest>): Promise<WsPackageProcess.ListPackagesResponse> {\n return this._connection.send(\"ListPackages\", request, \"json\", false, undefined, \"ListPackagesResponse\");\n }\n\n Ping(request: Partial<WsPackageProcess.WsPackageProcessPingRequest>): Promise<WsPackageProcess.WsPackageProcessPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsPackageProcessPingResponse\");\n }\n\n RemovePartFromPackageMap(request: Partial<WsPackageProcess.RemovePartFromPackageMapRequest>): Promise<WsPackageProcess.RemovePartFromPackageMapResponse> {\n return this._connection.send(\"RemovePartFromPackageMap\", request, \"json\", false, undefined, \"RemovePartFromPackageMapResponse\");\n }\n\n ValidatePackage(request: Partial<WsPackageProcess.ValidatePackageRequest>): Promise<WsPackageProcess.ValidatePackageResponse> {\n return this._connection.send(\"ValidatePackage\", request, \"json\", false, undefined, \"ValidatePackageResponse\");\n }\n\n}\n", "import { PackageProcessServiceBase, WsPackageProcess } from \"./wsdl/WsPackageProcess/v1.07/WsPackageProcess.ts\";\n\nexport {\n type WsPackageProcess\n};\n\nexport class PackageProcessService extends PackageProcessServiceBase {\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\ntype unsignedInt = number;\n\nexport namespace WsResources {\n\n export interface WsResourcesPingRequest {\n\n }\n\n export interface WsResourcesPingResponse {\n\n }\n\n export interface ServiceQueryRequest {\n Type?: string;\n Name?: 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 Service {\n Name: string;\n Type: string;\n Port: unsignedInt;\n TLSSecure: boolean;\n }\n\n export interface Services {\n Service: Service[];\n }\n\n export interface ServiceQueryResponse {\n Exceptions: {\n Source: string;\n Exception: Exception[];\n };\n Services: {\n Service: Service[];\n };\n }\n\n export interface WebLinksQueryRequest {\n\n }\n\n export interface NamedValue {\n Name: string;\n Value: string;\n }\n\n export interface Annotations {\n NamedValue: NamedValue[];\n }\n\n export interface DiscoveredWebLink {\n ServiceName: string;\n NameSpace: string;\n Annotations: {\n NamedValue: NamedValue[];\n };\n }\n\n export interface DiscoveredWebLinks {\n DiscoveredWebLink: DiscoveredWebLink[];\n }\n\n export interface ConfiguredWebLink {\n Name: string;\n Description: string;\n URL: string;\n }\n\n export interface ConfiguredWebLinks {\n ConfiguredWebLink: ConfiguredWebLink[];\n }\n\n export interface WebLinksQueryResponse {\n Exceptions: Exceptions;\n DiscoveredWebLinks: {\n DiscoveredWebLink: DiscoveredWebLink[];\n };\n ConfiguredWebLinks: {\n ConfiguredWebLink: ConfiguredWebLink[];\n };\n }\n\n}\n\nexport class ResourcesServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsResources\", \"1.01\");\n }\n\n Ping(request: WsResources.WsResourcesPingRequest): Promise<WsResources.WsResourcesPingResponse> {\n return this._connection.send(\"Ping\", request);\n }\n\n ServiceQuery(request: WsResources.ServiceQueryRequest): Promise<WsResources.ServiceQueryResponse> {\n return this._connection.send(\"ServiceQuery\", request);\n }\n\n WebLinksQuery(request: WsResources.WebLinksQueryRequest): Promise<WsResources.WebLinksQueryResponse> {\n return this._connection.send(\"WebLinksQuery\", request);\n }\n\n}\n", "import { ResourcesServiceBase, WsResources } from \"./wsdl/WsResources/v1.01/WsResources.ts\";\n\nexport {\n type WsResources\n};\n\nexport class ResourcesService extends ResourcesServiceBase {\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsSasha {\r\n\r\n export type unsignedInt = number;\r\n\r\n export enum WUTypes {\r\n ECL = \"ECL\",\r\n DFU = \"DFU\"\r\n }\r\n\r\n export interface ArchiveWURequest {\r\n Wuid?: string;\r\n WUType?: WUTypes;\r\n DeleteOnSuccess?: boolean;\r\n }\r\n\r\n export interface Exception {\r\n Code: string;\r\n Audience: string;\r\n Source: string;\r\n Message: string;\r\n }\r\n\r\n export interface Exceptions {\r\n Source: string;\r\n Exception: Exception[];\r\n }\r\n\r\n export interface ResultResponse {\r\n Exceptions: Exceptions;\r\n Result: string;\r\n }\r\n\r\n export interface GetVersionRequest {\r\n\r\n }\r\n\r\n export interface ListWURequest {\r\n WUType?: WUTypes;\r\n Wuid?: string;\r\n Cluster?: string;\r\n Owner?: string;\r\n JobName?: string;\r\n State?: string;\r\n FromDate?: string;\r\n ToDate?: string;\r\n Archived?: boolean;\r\n Online?: boolean;\r\n IncludeDT?: boolean;\r\n BeforeWU?: string;\r\n AfterWU?: string;\r\n MaxNumberWUs?: unsignedInt;\r\n Descending?: boolean;\r\n OutputFields?: string;\r\n }\r\n\r\n export interface WSSashaPingRequest {\r\n\r\n }\r\n\r\n export interface WSSashaPingResponse {\r\n\r\n }\r\n\r\n export interface RestoreWURequest {\r\n Wuid?: string;\r\n WUType?: WUTypes;\r\n }\r\n\r\n}\r\n\r\nexport class SashaServiceBase extends Service {\r\n\r\n constructor(optsConnection: IOptions | IConnection) {\r\n super(optsConnection, \"WSSasha\", \"1.01\");\r\n }\r\n\r\n ArchiveWU(request: Partial<WsSasha.ArchiveWURequest>): Promise<WsSasha.ResultResponse> {\r\n return this._connection.send(\"ArchiveWU\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetVersion(request: Partial<WsSasha.GetVersionRequest>): Promise<WsSasha.ResultResponse> {\r\n return this._connection.send(\"GetVersion\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n ListWU(request: Partial<WsSasha.ListWURequest>): Promise<WsSasha.ResultResponse> {\r\n return this._connection.send(\"ListWU\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Ping(request: Partial<WsSasha.WSSashaPingRequest>): Promise<WsSasha.WSSashaPingResponse> {\r\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WSSashaPingResponse\");\r\n }\r\n\r\n RestoreWU(request: Partial<WsSasha.RestoreWURequest>): Promise<WsSasha.ResultResponse> {\r\n return this._connection.send(\"RestoreWU\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n}\r\n", "import { SashaServiceBase, WsSasha } from \"./wsdl/WsSasha/v1.01/WsSasha.ts\";\n\nexport {\n WsSasha\n};\n\nexport class SashaService extends SashaServiceBase {\n}", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsSMC {\n\n export type int = number;\n export type dateTime = string;\n export type unsignedInt = number;\n export type long = number;\n\n export enum LockModes {\n ALL = \"ALL\",\n READ = \"READ\",\n WRITE = \"WRITE\",\n HOLD = \"HOLD\",\n SUB = \"SUB\"\n }\n\n export enum RoxieControlCmdType {\n Attach = \"Attach\",\n Detach = \"Detach\",\n State = \"State\",\n Reload = \"Reload\",\n ReloadRetry = \"ReloadRetry\",\n MemLock = \"MemLock\",\n MemUnlock = \"MemUnlock\",\n GetMemLocked = \"GetMemLocked\"\n }\n\n export interface Activity {\n ChatURL: string;\n BannerContent: string;\n BannerColor: string;\n BannerSize: string;\n BannerScroll: string;\n BannerAction: int;\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: int;\n ClusterSize: int;\n ClusterStatus: int;\n }\n\n export interface ThorClusterList {\n TargetCluster: TargetCluster[];\n }\n\n export interface RoxieClusterList {\n TargetCluster: TargetCluster[];\n }\n\n export interface HThorClusterList {\n TargetCluster: TargetCluster[];\n }\n\n export interface DFUJob {\n TimeStarted: string;\n Done: int;\n Total: int;\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: int;\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: int;\n IsPausing: boolean;\n Warning: string;\n ClusterName: string;\n ClusterType: string;\n ClusterQueueName: string;\n TargetClusterName: string;\n NoAccess: boolean;\n }\n\n export interface Running {\n ActiveWorkunit: ActiveWorkunit[];\n }\n\n export interface Queues {\n ServerJobQueue: ServerJobQueue[];\n }\n\n export interface ServerJobQueue {\n QueueName: string;\n Queues: Queues;\n ServerName: string;\n ServerType: string;\n QueueStatus: string;\n StatusDetails: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface ServerJobQueues {\n ServerJobQueue: ServerJobQueue[];\n }\n\n export interface ActivityResponse {\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: int;\n ShowChatURL: int;\n SortBy: string;\n Descending: boolean;\n SuperUser: boolean;\n AccessRight: string;\n ServerJobQueues: ServerJobQueues;\n ActivityTime: string;\n DaliDetached: boolean;\n }\n\n export interface BrowseResources {\n\n }\n\n export interface HPCCResource {\n Name: string;\n Description: string;\n FileName: string;\n Version: string;\n }\n\n export interface HPCCResources {\n HPCCResource: HPCCResource[];\n }\n\n export interface HPCCResourceRepository {\n Name: string;\n Path: string;\n HPCCResources: HPCCResources;\n }\n\n export interface HPCCResourceRepositories {\n HPCCResourceRepository: HPCCResourceRepository[];\n }\n\n export interface BrowseResourcesResponse {\n Exceptions: Exceptions;\n PortalURL: string;\n ESPInstance: string;\n OS: int;\n UseResource: boolean;\n HPCCResourceRepositories: HPCCResourceRepositories;\n }\n\n export interface ClearQueue {\n Cluster: string;\n QueueName: string;\n Comment: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface TargetClusterInfo {\n ClusterName: string;\n QueueName: string;\n QueueStatus: string;\n StatusDetails: string;\n Warning: string;\n ClusterType: int;\n ClusterSize: int;\n ClusterStatus: int;\n }\n\n export interface ServerInfo {\n QueueName: string;\n Queues: Queues;\n ServerName: string;\n ServerType: string;\n QueueStatus: string;\n StatusDetails: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface Workunits {\n ActiveWorkunit: ActiveWorkunit[];\n }\n\n export interface StatusServerInfo {\n TargetClusterInfo: TargetClusterInfo;\n ServerInfo: ServerInfo;\n Workunits: Workunits;\n }\n\n export interface SMCQueueResponse {\n Exceptions: Exceptions;\n StatusServerInfo: StatusServerInfo;\n }\n\n export interface GetBuildInfo {\n\n }\n\n export interface NamedValue {\n Name: string;\n Value: string;\n }\n\n export interface BuildInfo {\n NamedValue: NamedValue[];\n }\n\n export interface GetBuildInfoResponse {\n Exceptions: Exceptions;\n BuildInfo: BuildInfo;\n }\n\n export interface Dimension {\n Name: string;\n Value: string;\n }\n\n export interface Dimensions {\n Dimension: Dimension[];\n }\n\n export interface DateTimeRange {\n Start: dateTime;\n End: dateTime;\n }\n\n export interface GetGlobalMetrics {\n Category: string;\n Dimensions: Dimensions;\n DateTimeRange: DateTimeRange;\n }\n\n export interface Dimensions2 {\n Dimension: Dimension[];\n }\n\n export interface Stat {\n Name: string;\n Value: string;\n }\n\n export interface Stats {\n Stat: Stat[];\n }\n\n export interface GlobalMetric {\n Category: string;\n Dimensions: Dimensions2;\n DateTimeRange: DateTimeRange;\n Stats: Stats;\n }\n\n export interface GlobalMetrics {\n GlobalMetric: GlobalMetric[];\n }\n\n export interface GetGlobalMetricsResponse {\n Exceptions: Exceptions;\n GlobalMetrics: GlobalMetrics;\n }\n\n export interface GetStatusServerInfo {\n ServerName: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface GetStatusServerInfoResponse {\n Exceptions: Exceptions;\n StatusServerInfo: StatusServerInfo;\n }\n\n export interface GetThorQueueAvailability {\n\n }\n\n export interface ThorCluster {\n ClusterName: string;\n QueueName: string;\n QueueStatus: string;\n QueueAvailable: int;\n JobsRunning: int;\n JobsInQueue: int;\n QueueStatus2: int;\n ThorLCR: string;\n ClusterSize: int;\n }\n\n export interface ThorClusters {\n ThorCluster: ThorCluster[];\n }\n\n export interface GetThorQueueAvailabilityResponse {\n Exceptions: Exceptions;\n ThorClusters: ThorClusters;\n }\n\n export interface Index {\n\n }\n\n export interface SMCIndexResponse {\n Exceptions: Exceptions;\n }\n\n export interface LockQuery {\n EPIP: string;\n XPath: string;\n DurationMSLow: unsignedInt;\n DurationMSHigh: unsignedInt;\n TimeLockedLow: string;\n TimeLockedHigh: string;\n Mode: LockModes;\n AllFileLocks: boolean;\n }\n\n export interface ModeNames {\n Item: string[];\n }\n\n export interface Lock {\n EPIP: string;\n XPath: string;\n LogicalFile: string;\n SessionID: long;\n DurationMS: unsignedInt;\n TimeLocked: string;\n Modes: string;\n ModeNames: ModeNames;\n }\n\n export interface Locks {\n Lock: Lock[];\n }\n\n export interface LockQueryResponse {\n Exceptions: Exceptions;\n Locks: Locks;\n NumLocks: int;\n }\n\n export interface MoveJobBack {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface SMCJobResponse {\n Exceptions: Exceptions;\n }\n\n export interface MoveJobDown {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface MoveJobFront {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface MoveJobUp {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface NotInCommunityEdition {\n EEPortal: string;\n }\n\n export interface NotInCommunityEditionResponse {\n Exceptions: Exceptions;\n }\n\n export interface PauseQueue {\n Cluster: string;\n QueueName: string;\n Comment: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface Ping {\n\n }\n\n export interface WsSMCPingResponse {\n\n }\n\n export interface RemoveJob {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface ResumeQueue {\n Cluster: string;\n QueueName: string;\n Comment: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface RoxieControlCmd {\n ProcessCluster: string;\n TargetCluster: string;\n Command: RoxieControlCmdType;\n Wait: int;\n }\n\n export interface Endpoint {\n Address: string;\n Attached: boolean;\n StateHash: string;\n Status: string;\n MemLocked: boolean;\n }\n\n export interface Endpoints {\n Endpoint: Endpoint[];\n }\n\n export interface RoxieControlCmdResponse {\n Exceptions: Exceptions;\n Endpoints: Endpoints;\n }\n\n export interface QueryIds {\n Item: string[];\n }\n\n export interface RoxieXrefCmd {\n RoxieCluster: string;\n QueryIds: QueryIds;\n CheckAllNodes: boolean;\n Wait: int;\n }\n\n export interface RoxieXrefCmdResponse {\n Exceptions: Exceptions;\n Result: string;\n }\n\n export interface SetBanner {\n ChatURL: string;\n BannerContent: string;\n BannerColor: string;\n BannerSize: string;\n BannerScroll: string;\n BannerAction: int;\n EnableChatURL: boolean;\n FromSubmitBtn: boolean;\n }\n\n export interface SetBannerResponse {\n Exceptions: Exceptions;\n }\n\n export interface SMCJob {\n Wuid: string;\n QueueName: string;\n }\n\n export interface SMCJobs {\n SMCJob: SMCJob[];\n }\n\n export interface SetJobPriority {\n QueueName: string;\n Wuid: string;\n Priority: string;\n SMCJobs: SMCJobs;\n }\n\n export interface SMCPriorityResponse {\n Exceptions: Exceptions;\n }\n\n export interface StopQueue {\n Cluster: string;\n QueueName: string;\n Comment: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n}\n\nexport class SMCServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsSMC\", \"1.28\");\n }\n\n Activity(request: Partial<WsSMC.Activity>): Promise<WsSMC.ActivityResponse> {\n return this._connection.send(\"Activity\", request, \"json\", false, undefined, \"ActivityResponse\");\n }\n\n BrowseResources(request: Partial<WsSMC.BrowseResources>): Promise<WsSMC.BrowseResourcesResponse> {\n return this._connection.send(\"BrowseResources\", request, \"json\", false, undefined, \"BrowseResourcesResponse\");\n }\n\n ClearQueue(request: Partial<WsSMC.ClearQueue>): Promise<WsSMC.SMCQueueResponse> {\n return this._connection.send(\"ClearQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n }\n\n GetBuildInfo(request: Partial<WsSMC.GetBuildInfo>): Promise<WsSMC.GetBuildInfoResponse> {\n return this._connection.send(\"GetBuildInfo\", request, \"json\", false, undefined, \"GetBuildInfoResponse\");\n }\n\n GetGlobalMetrics(request: Partial<WsSMC.GetGlobalMetrics>): Promise<WsSMC.GetGlobalMetricsResponse> {\n return this._connection.send(\"GetGlobalMetrics\", request, \"json\", false, undefined, \"GetGlobalMetricsResponse\");\n }\n\n GetStatusServerInfo(request: Partial<WsSMC.GetStatusServerInfo>): Promise<WsSMC.GetStatusServerInfoResponse> {\n return this._connection.send(\"GetStatusServerInfo\", request, \"json\", false, undefined, \"GetStatusServerInfoResponse\");\n }\n\n GetThorQueueAvailability(request: Partial<WsSMC.GetThorQueueAvailability>): Promise<WsSMC.GetThorQueueAvailabilityResponse> {\n return this._connection.send(\"GetThorQueueAvailability\", request, \"json\", false, undefined, \"GetThorQueueAvailabilityResponse\");\n }\n\n Index(request: Partial<WsSMC.Index>): Promise<WsSMC.SMCIndexResponse> {\n return this._connection.send(\"Index\", request, \"json\", false, undefined, \"SMCIndexResponse\");\n }\n\n LockQuery(request: Partial<WsSMC.LockQuery>): Promise<WsSMC.LockQueryResponse> {\n return this._connection.send(\"LockQuery\", request, \"json\", false, undefined, \"LockQueryResponse\");\n }\n\n MoveJobBack(request: Partial<WsSMC.MoveJobBack>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"MoveJobBack\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n MoveJobDown(request: Partial<WsSMC.MoveJobDown>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"MoveJobDown\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n MoveJobFront(request: Partial<WsSMC.MoveJobFront>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"MoveJobFront\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n MoveJobUp(request: Partial<WsSMC.MoveJobUp>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"MoveJobUp\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n NotInCommunityEdition(request: Partial<WsSMC.NotInCommunityEdition>): Promise<WsSMC.NotInCommunityEditionResponse> {\n return this._connection.send(\"NotInCommunityEdition\", request, \"json\", false, undefined, \"NotInCommunityEditionResponse\");\n }\n\n PauseQueue(request: Partial<WsSMC.PauseQueue>): Promise<WsSMC.SMCQueueResponse> {\n return this._connection.send(\"PauseQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n }\n\n Ping(request: Partial<WsSMC.Ping>): Promise<WsSMC.WsSMCPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsSMCPingResponse\");\n }\n\n RemoveJob(request: Partial<WsSMC.RemoveJob>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"RemoveJob\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n ResumeQueue(request: Partial<WsSMC.ResumeQueue>): Promise<WsSMC.SMCQueueResponse> {\n return this._connection.send(\"ResumeQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n }\n\n RoxieControlCmd(request: Partial<WsSMC.RoxieControlCmd>): Promise<WsSMC.RoxieControlCmdResponse> {\n return this._connection.send(\"RoxieControlCmd\", request, \"json\", false, undefined, \"RoxieControlCmdResponse\");\n }\n\n RoxieXrefCmd(request: Partial<WsSMC.RoxieXrefCmd>): Promise<WsSMC.RoxieXrefCmdResponse> {\n return this._connection.send(\"RoxieXrefCmd\", request, \"json\", false, undefined, \"RoxieXrefCmdResponse\");\n }\n\n SetBanner(request: Partial<WsSMC.SetBanner>): Promise<WsSMC.SetBannerResponse> {\n return this._connection.send(\"SetBanner\", request, \"json\", false, undefined, \"SetBannerResponse\");\n }\n\n SetJobPriority(request: Partial<WsSMC.SetJobPriority>): Promise<WsSMC.SMCPriorityResponse> {\n return this._connection.send(\"SetJobPriority\", request, \"json\", false, undefined, \"SMCPriorityResponse\");\n }\n\n StopQueue(request: Partial<WsSMC.StopQueue>): Promise<WsSMC.SMCQueueResponse> {\n return this._connection.send(\"StopQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n }\n\n}\n", "import { SMCServiceBase, WsSMC } from \"./wsdl/WsSMC/v1.28/WsSMC.ts\";\nimport { IOptions } from \"../connection.ts\";\n\nexport {\n WsSMC\n};\n\nexport class SMCService extends SMCServiceBase {\n\n connectionOptions(): IOptions {\n return this._connection.opts();\n }\n\n Activity(request: WsSMC.Activity): Promise<WsSMC.ActivityResponse> {\n return super.Activity(request).then(response => {\n return {\n Running: {\n ActiveWorkunit: []\n },\n ...response\n };\n });\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace Wsstore {\n\n export type int = number;\n\n export interface CreateStoreRequest {\n Name?: string;\n Type?: string;\n Description?: string;\n MaxValueSize?: int;\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 Success: 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 DeleteResponse {\n Exceptions: Exceptions;\n Success: boolean;\n }\n\n export interface DeleteNamespaceRequest {\n StoreName?: string;\n Namespace?: string;\n UserSpecific?: boolean;\n TargetUser?: string;\n }\n\n export interface DeleteNamespaceResponse {\n Exceptions: Exceptions;\n Success: boolean;\n }\n\n export interface FetchRequest {\n StoreName?: string;\n Namespace?: string;\n Key?: string;\n UserSpecific?: boolean;\n }\n\n export interface FetchResponse {\n Exceptions: Exceptions;\n Value: string;\n }\n\n export interface FetchAllRequest {\n StoreName?: string;\n Namespace?: string;\n UserSpecific?: boolean;\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 FetchKeyMDRequest {\n StoreName?: string;\n Namespace?: string;\n Key?: string;\n UserSpecific?: boolean;\n }\n\n export interface FetchKeyMDResponse {\n Exceptions: Exceptions;\n StoreName: string;\n Namespace: string;\n Key: string;\n Pairs: Pairs;\n }\n\n export interface ListKeysRequest {\n StoreName?: string;\n Namespace?: string;\n UserSpecific?: boolean;\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 ListNamespacesRequest {\n StoreName?: string;\n UserSpecific?: boolean;\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 ListStoresRequest {\n NameFilter?: string;\n TypeFilter?: string;\n OwnerFilter?: string;\n }\n\n export interface Store {\n Name: string;\n Type: string;\n Description: string;\n Owner: string;\n CreateTime: string;\n MaxValSize: string;\n IsDefault: boolean;\n }\n\n export interface Stores {\n Store: Store[];\n }\n\n export interface ListStoresResponse {\n Exceptions: Exceptions;\n Stores: Stores;\n }\n\n export interface wsstorePingRequest {\n\n }\n\n export interface wsstorePingResponse {\n\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 SetResponse {\n Exceptions: Exceptions;\n Success: boolean;\n }\n\n}\n\nexport class storeServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"wsstore\", \"1.02\");\n }\n\n CreateStore(request: Partial<Wsstore.CreateStoreRequest>): Promise<Wsstore.CreateStoreResponse> {\n return this._connection.send(\"CreateStore\", request, \"json\", false, undefined, \"CreateStoreResponse\");\n }\n\n Delete(request: Partial<Wsstore.DeleteRequest>): Promise<Wsstore.DeleteResponse> {\n return this._connection.send(\"Delete\", request, \"json\", false, undefined, \"DeleteResponse\");\n }\n\n DeleteNamespace(request: Partial<Wsstore.DeleteNamespaceRequest>): Promise<Wsstore.DeleteNamespaceResponse> {\n return this._connection.send(\"DeleteNamespace\", request, \"json\", false, undefined, \"DeleteNamespaceResponse\");\n }\n\n Fetch(request: Partial<Wsstore.FetchRequest>): Promise<Wsstore.FetchResponse> {\n return this._connection.send(\"Fetch\", request, \"json\", false, undefined, \"FetchResponse\");\n }\n\n FetchAll(request: Partial<Wsstore.FetchAllRequest>): Promise<Wsstore.FetchAllResponse> {\n return this._connection.send(\"FetchAll\", request, \"json\", false, undefined, \"FetchAllResponse\");\n }\n\n FetchKeyMetadata(request: Partial<Wsstore.FetchKeyMDRequest>): Promise<Wsstore.FetchKeyMDResponse> {\n return this._connection.send(\"FetchKeyMetadata\", request, \"json\", false, undefined, \"FetchKeyMDResponse\");\n }\n\n ListKeys(request: Partial<Wsstore.ListKeysRequest>): Promise<Wsstore.ListKeysResponse> {\n return this._connection.send(\"ListKeys\", request, \"json\", false, undefined, \"ListKeysResponse\");\n }\n\n ListNamespaces(request: Partial<Wsstore.ListNamespacesRequest>): Promise<Wsstore.ListNamespacesResponse> {\n return this._connection.send(\"ListNamespaces\", request, \"json\", false, undefined, \"ListNamespacesResponse\");\n }\n\n ListStores(request: Partial<Wsstore.ListStoresRequest>): Promise<Wsstore.ListStoresResponse> {\n return this._connection.send(\"ListStores\", request, \"json\", false, undefined, \"ListStoresResponse\");\n }\n\n Ping(request: Partial<Wsstore.wsstorePingRequest>): Promise<Wsstore.wsstorePingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"wsstorePingResponse\");\n }\n\n Set(request: Partial<Wsstore.SetRequest>): Promise<Wsstore.SetResponse> {\n return this._connection.send(\"Set\", request, \"json\", false, undefined, \"SetResponse\");\n }\n\n}\n", "import { storeServiceBase as StoreServiceBase, Wsstore as WsStore } from \"./wsdl/wsstore/v1.02/wsstore.ts\";\n\nexport { type WsStore };\n\nexport class StoreService extends StoreServiceBase {\n\n Delete(request: Partial<WsStore.DeleteRequest>): Promise<WsStore.DeleteResponse> {\n return super.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 Fetch(request: Partial<WsStore.FetchRequest>): Promise<WsStore.FetchResponse> {\n return super.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", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsTopology {\n\n export type int = number;\n export type base64Binary = string;\n export type unsignedInt = number;\n export type long = number;\n\n export enum TpConfigResponseFormat {\n XML = \"XML\",\n YAML = \"YAML\"\n }\n\n export enum RoxieQueueFilter {\n All = \"All\",\n QueriesOnly = \"QueriesOnly\",\n WorkunitsOnly = \"WorkunitsOnly\"\n }\n\n export enum TpMachineType {\n ALLNODES = \"ALLNODES\",\n THORMACHINES = \"THORMACHINES\",\n HOLEMACHINES = \"HOLEMACHINES\",\n ROXIEMACHINES = \"ROXIEMACHINES\",\n MACHINES = \"MACHINES\",\n AVAILABLEMACHINES = \"AVAILABLEMACHINES\",\n DROPZONE = \"DROPZONE\",\n STANDBYNNODE = \"STANDBYNNODE\",\n THORSPARENODES = \"THORSPARENODES\",\n HOLESTANDBYNODES = \"HOLESTANDBYNODES\"\n }\n\n export interface WsTopologyPingRequest {\n\n }\n\n export interface WsTopologyPingResponse {\n\n }\n\n export interface SystemLogRequest {\n Name?: string;\n Type?: string;\n Zip?: int;\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 SystemLogResponse {\n Exceptions: Exceptions;\n thefile: base64Binary;\n }\n\n export interface TpClusterInfoRequest {\n Name?: string;\n }\n\n export interface TpQueue {\n Name: string;\n WorkUnit: string;\n }\n\n export interface TpQueues {\n TpQueue: TpQueue[];\n }\n\n export interface TpClusterInfoResponse {\n Exceptions: Exceptions;\n Name: string;\n WorkUnit: string;\n TpQueues: TpQueues;\n }\n\n export interface TpClusterQueryRequest {\n Type?: string;\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: int;\n Path: string;\n Port: int;\n ProcessNumber: int;\n Channels: unsignedInt;\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: int;\n HasThorSpareProcess: boolean;\n TpMachines: TpMachines;\n }\n\n export interface TpClusters {\n TpCluster: TpCluster[];\n }\n\n export interface TpClusterQueryResponse {\n Exceptions: Exceptions;\n EnableSNMP: boolean;\n AcceptLanguage: string;\n TpClusters: TpClusters;\n }\n\n export interface ComponentNames {\n Item: string[];\n }\n\n export interface TpComponentConfigurationRequest {\n ComponentNames?: ComponentNames;\n }\n\n export interface Result {\n ComponentName: string;\n Configuration: string;\n }\n\n export interface Results {\n Result: Result[];\n }\n\n export interface TpComponentConfigurationResponse {\n Exceptions: Exceptions;\n ConfigFormat: TpConfigResponseFormat;\n Results: Results;\n }\n\n export interface TpConfiguredComponentsRequest {\n\n }\n\n export interface ConfiguredComponents {\n Item: string[];\n }\n\n export interface TpConfiguredComponentsResponse {\n Exceptions: Exceptions;\n ConfiguredComponents: ConfiguredComponents;\n }\n\n export interface TpDropZoneQueryRequest {\n Name?: string;\n ECLWatchVisibleOnly?: boolean;\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: TpMachines;\n }\n\n export interface TpDropZones {\n TpDropZone: TpDropZone[];\n }\n\n export interface TpDropZoneQueryResponse {\n Exceptions: Exceptions;\n TpDropZones: TpDropZones;\n }\n\n export interface TpGetComponentFileRequest {\n CompType?: string;\n CompName?: string;\n NetAddress?: string;\n Directory?: string;\n FileType?: string;\n OsType?: int;\n PlainText?: string;\n }\n\n export interface TpGetComponentFileResponse {\n Exceptions: Exceptions;\n FileContents: base64Binary;\n }\n\n export interface TpGetServicePluginsRequest {\n\n }\n\n export interface Plugin {\n ShortName: string;\n LongName: string;\n FolderName: string;\n WidgetName: string;\n }\n\n export interface Plugins {\n Plugin: Plugin[];\n }\n\n export interface TpGetServicePluginsResponse {\n Exceptions: Exceptions;\n Plugins: Plugins;\n }\n\n export interface TpGroupQueryRequest {\n Kind?: string;\n }\n\n export interface TpGroup {\n Name: string;\n Kind: string;\n ReplicateOutputs: boolean;\n }\n\n export interface TpGroups {\n TpGroup: TpGroup[];\n }\n\n export interface TpGroupQueryResponse {\n Exceptions: Exceptions;\n TpGroups: TpGroups;\n }\n\n export interface TpListLogFilesRequest {\n NetworkAddress?: string;\n Path?: string;\n }\n\n export interface LogFileStruct {\n Name: string;\n Path: string;\n Host: string;\n IsDir: boolean;\n FileSize: long;\n Modifiedtime: string;\n }\n\n export interface Files {\n LogFileStruct: LogFileStruct[];\n }\n\n export interface TpListLogFilesResponse {\n Exceptions: Exceptions;\n Files: Files;\n }\n\n export interface TpListTargetClustersRequest {\n\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 TpListTargetClustersResponse {\n Exceptions: Exceptions;\n TargetClusters: TargetClusters;\n }\n\n export interface TpLogFileRequest {\n Name?: string;\n Type?: string;\n LastHours?: int;\n StartDate?: string;\n EndDate?: string;\n FirstRows?: int;\n LastRows?: int;\n FilterType?: int;\n Reversely?: boolean;\n Zip?: boolean;\n PageNumber?: int;\n LoadData?: boolean;\n IncludeLogFieldNames?: boolean;\n }\n\n export interface LogFieldNames {\n Item: string[];\n }\n\n export interface TpLogFileResponse {\n Exceptions: Exceptions;\n Name: string;\n Type: string;\n StartDate: string;\n EndDate: string;\n LastHours: int;\n FirstRows: int;\n LastRows: int;\n Reversely: boolean;\n Zip: boolean;\n FilterType: int;\n LogData: string;\n HasDate: boolean;\n FileSize: long;\n PageFrom: long;\n PageTo: long;\n PageNumber: int;\n PrevPage: int;\n NextPage: int;\n TotalPages: int;\n AcceptLanguage: string;\n LogFieldNames: LogFieldNames;\n }\n\n export interface TpLogicalClusterQueryRequest {\n EclServerQueue?: string;\n RoxieQueueFilter?: RoxieQueueFilter;\n }\n\n export interface TpLogicalCluster {\n Name: string;\n Queue: string;\n LanguageVersion: string;\n Process: string;\n Type: string;\n QueriesOnly: boolean;\n }\n\n export interface TpLogicalClusters {\n TpLogicalCluster: TpLogicalCluster[];\n }\n\n export interface TpLogicalClusterQueryResponse {\n Exceptions: Exceptions;\n TpLogicalClusters: TpLogicalClusters;\n }\n\n export interface TpMachineInfoRequest {\n Name?: string;\n NetAddress?: string;\n }\n\n export interface MachineInfo {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: int;\n Path: string;\n Port: int;\n ProcessNumber: int;\n Channels: unsignedInt;\n }\n\n export interface TpMachineInfoResponse {\n Exceptions: Exceptions;\n MachineInfo: MachineInfo;\n }\n\n export interface TpMachineQueryRequest {\n Type?: TpMachineType;\n Cluster?: string;\n OldIP?: string;\n Path?: string;\n Directory?: string;\n LogDirectory?: string;\n }\n\n export interface TpMachineQueryResponse {\n Exceptions: Exceptions;\n EnablePreflightInfo: boolean;\n HasThorSpareProcess: boolean;\n Type: TpMachineType;\n Cluster: string;\n OldIP: string;\n LogDirectory: string;\n Path: string;\n MemThreshold: int;\n DiskThreshold: int;\n CpuThreshold: int;\n MemThresholdType: string;\n DiskThresholdType: string;\n PreflightProcessFilter: string;\n EnableSNMP: boolean;\n AcceptLanguage: string;\n TpMachines: TpMachines;\n }\n\n export interface TpServiceQueryRequest {\n Type?: string;\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 AuditLogDirectory: string;\n TpMachines: TpMachines;\n }\n\n export interface TpDalis {\n TpDali: TpDali[];\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: TpMachines;\n }\n\n export interface TpDfuServers {\n TpDfuServer: TpDfuServer[];\n }\n\n export interface TpDkcSlave {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpDkcSlaves {\n TpDkcSlave: TpDkcSlave[];\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: TpMachines;\n }\n\n export interface TpEclAgents {\n TpEclAgent: TpEclAgent[];\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: TpMachines;\n }\n\n export interface TpEclServers {\n TpEclServer: TpEclServer[];\n }\n\n export interface TpEclCCServers {\n TpEclServer: TpEclServer[];\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: TpMachines;\n }\n\n export interface TpEclSchedulers {\n TpEclScheduler: TpEclScheduler[];\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: TpMachines;\n TpBindings: TpBindings;\n }\n\n export interface TpEspServers {\n TpEspServer: TpEspServer[];\n }\n\n export interface TpFTSlave {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpFTSlaves {\n TpFTSlave: TpFTSlave[];\n }\n\n export interface TpGenesisServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpGenesisServers {\n TpGenesisServer: TpGenesisServer[];\n }\n\n export interface TpLdapServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpLdapServers {\n TpLdapServer: TpLdapServer[];\n }\n\n export interface TpMySqlServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpMySqlServers {\n TpMySqlServer: TpMySqlServer[];\n }\n\n export interface TpSashaServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n LogDirectory: string;\n TpMachines: TpMachines;\n }\n\n export interface TpSashaServers {\n TpSashaServer: TpSashaServer[];\n }\n\n export interface TpSparkThor {\n Name: string;\n Build: string;\n ThorClusterName: string;\n ThorPath: string;\n SparkExecutorCores: unsignedInt;\n SparkExecutorMemory: long;\n SparkMasterPort: unsignedInt;\n SparkMasterWebUIPort: unsignedInt;\n SparkWorkerCores: unsignedInt;\n SparkWorkerMemory: long;\n SparkWorkerPort: unsignedInt;\n LogDirectory: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpSparkThors {\n TpSparkThor: TpSparkThor[];\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 TpSparkThors: TpSparkThors;\n }\n\n export interface TpServiceQueryResponse {\n Exceptions: Exceptions;\n MemThreshold: int;\n DiskThreshold: int;\n CpuThreshold: int;\n EncapsulatedSystem: boolean;\n EnableSNMP: boolean;\n PreflightProcessFilter: string;\n AcceptLanguage: string;\n MemThresholdType: string;\n DiskThresholdType: string;\n ServiceList: ServiceList;\n }\n\n export interface TpSetMachineStatusRequest {\n MachinePath?: string;\n StatusValue?: string;\n }\n\n export interface TpSetMachineStatusResponse {\n Exceptions: Exceptions;\n TpSetMachineStatusResult: boolean;\n }\n\n export interface TpSwapNodeRequest {\n Cluster?: string;\n OldIP?: string;\n NewIP?: string;\n }\n\n export interface TpSwapNodeResponse {\n Exceptions: Exceptions;\n TpSwapNodeResult: boolean;\n }\n\n export interface TpTargetClusterQueryRequest {\n Type?: string;\n Name?: string;\n ShowDetails?: boolean;\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 TpTargetClusterQueryResponse {\n Exceptions: Exceptions;\n ShowDetails: boolean;\n MemThreshold: int;\n DiskThreshold: int;\n CpuThreshold: int;\n MemThresholdType: string;\n DiskThresholdType: string;\n PreflightProcessFilter: string;\n AcceptLanguage: string;\n TpTargetClusters: TpTargetClusters;\n }\n\n export interface TpThorStatusRequest {\n Name?: string;\n }\n\n export interface TpThorStatusResponse {\n Exceptions: Exceptions;\n Name: string;\n Queue: string;\n Group: string;\n ThorMasterIPAddress: string;\n Port: int;\n StartTime: string;\n LogFile: string;\n Wuid: string;\n Graph: string;\n SubGraph: int;\n SubGraphDuration: int;\n AutoRefresh: int;\n }\n\n export interface TpXMLFileRequest {\n Name?: string;\n }\n\n export interface TpXMLFileResponse {\n Exceptions: Exceptions;\n thefile: base64Binary;\n }\n\n}\n\nexport class TopologyServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsTopology\", \"1.33\");\n }\n\n Ping(request: Partial<WsTopology.WsTopologyPingRequest>): Promise<WsTopology.WsTopologyPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsTopologyPingResponse\");\n }\n\n SystemLog(request: Partial<WsTopology.SystemLogRequest>): Promise<WsTopology.SystemLogResponse> {\n return this._connection.send(\"SystemLog\", request, \"json\", false, undefined, \"SystemLogResponse\");\n }\n\n TpClusterInfo(request: Partial<WsTopology.TpClusterInfoRequest>): Promise<WsTopology.TpClusterInfoResponse> {\n return this._connection.send(\"TpClusterInfo\", request, \"json\", false, undefined, \"TpClusterInfoResponse\");\n }\n\n TpClusterQuery(request: Partial<WsTopology.TpClusterQueryRequest>): Promise<WsTopology.TpClusterQueryResponse> {\n return this._connection.send(\"TpClusterQuery\", request, \"json\", false, undefined, \"TpClusterQueryResponse\");\n }\n\n TpComponentConfiguration(request: Partial<WsTopology.TpComponentConfigurationRequest>): Promise<WsTopology.TpComponentConfigurationResponse> {\n return this._connection.send(\"TpComponentConfiguration\", request, \"json\", false, undefined, \"TpComponentConfigurationResponse\");\n }\n\n TpConfiguredComponents(request: Partial<WsTopology.TpConfiguredComponentsRequest>): Promise<WsTopology.TpConfiguredComponentsResponse> {\n return this._connection.send(\"TpConfiguredComponents\", request, \"json\", false, undefined, \"TpConfiguredComponentsResponse\");\n }\n\n TpDropZoneQuery(request: Partial<WsTopology.TpDropZoneQueryRequest>): Promise<WsTopology.TpDropZoneQueryResponse> {\n return this._connection.send(\"TpDropZoneQuery\", request, \"json\", false, undefined, \"TpDropZoneQueryResponse\");\n }\n\n TpGetComponentFile(request: Partial<WsTopology.TpGetComponentFileRequest>): Promise<WsTopology.TpGetComponentFileResponse> {\n return this._connection.send(\"TpGetComponentFile\", request, \"json\", false, undefined, \"TpGetComponentFileResponse\");\n }\n\n TpGetServicePlugins(request: Partial<WsTopology.TpGetServicePluginsRequest>): Promise<WsTopology.TpGetServicePluginsResponse> {\n return this._connection.send(\"TpGetServicePlugins\", request, \"json\", false, undefined, \"TpGetServicePluginsResponse\");\n }\n\n TpGroupQuery(request: Partial<WsTopology.TpGroupQueryRequest>): Promise<WsTopology.TpGroupQueryResponse> {\n return this._connection.send(\"TpGroupQuery\", request, \"json\", false, undefined, \"TpGroupQueryResponse\");\n }\n\n TpListLogFiles(request: Partial<WsTopology.TpListLogFilesRequest>): Promise<WsTopology.TpListLogFilesResponse> {\n return this._connection.send(\"TpListLogFiles\", request, \"json\", false, undefined, \"TpListLogFilesResponse\");\n }\n\n TpListTargetClusters(request: Partial<WsTopology.TpListTargetClustersRequest>): Promise<WsTopology.TpListTargetClustersResponse> {\n return this._connection.send(\"TpListTargetClusters\", request, \"json\", false, undefined, \"TpListTargetClustersResponse\");\n }\n\n TpLogFile(request: Partial<WsTopology.TpLogFileRequest>): Promise<WsTopology.TpLogFileResponse> {\n return this._connection.send(\"TpLogFile\", request, \"json\", false, undefined, \"TpLogFileResponse\");\n }\n\n TpLogFileDisplay(request: Partial<WsTopology.TpLogFileRequest>): Promise<WsTopology.TpLogFileResponse> {\n return this._connection.send(\"TpLogFileDisplay\", request, \"json\", false, undefined, \"TpLogFileResponse\");\n }\n\n TpLogicalClusterQuery(request: Partial<WsTopology.TpLogicalClusterQueryRequest>): Promise<WsTopology.TpLogicalClusterQueryResponse> {\n return this._connection.send(\"TpLogicalClusterQuery\", request, \"json\", false, undefined, \"TpLogicalClusterQueryResponse\");\n }\n\n TpMachineInfo(request: Partial<WsTopology.TpMachineInfoRequest>): Promise<WsTopology.TpMachineInfoResponse> {\n return this._connection.send(\"TpMachineInfo\", request, \"json\", false, undefined, \"TpMachineInfoResponse\");\n }\n\n TpMachineQuery(request: Partial<WsTopology.TpMachineQueryRequest>): Promise<WsTopology.TpMachineQueryResponse> {\n return this._connection.send(\"TpMachineQuery\", request, \"json\", false, undefined, \"TpMachineQueryResponse\");\n }\n\n TpServiceQuery(request: Partial<WsTopology.TpServiceQueryRequest>): Promise<WsTopology.TpServiceQueryResponse> {\n return this._connection.send(\"TpServiceQuery\", request, \"json\", false, undefined, \"TpServiceQueryResponse\");\n }\n\n TpSetMachineStatus(request: Partial<WsTopology.TpSetMachineStatusRequest>): Promise<WsTopology.TpSetMachineStatusResponse> {\n return this._connection.send(\"TpSetMachineStatus\", request, \"json\", false, undefined, \"TpSetMachineStatusResponse\");\n }\n\n TpSwapNode(request: Partial<WsTopology.TpSwapNodeRequest>): Promise<WsTopology.TpSwapNodeResponse> {\n return this._connection.send(\"TpSwapNode\", request, \"json\", false, undefined, \"TpSwapNodeResponse\");\n }\n\n TpTargetClusterQuery(request: Partial<WsTopology.TpTargetClusterQueryRequest>): Promise<WsTopology.TpTargetClusterQueryResponse> {\n return this._connection.send(\"TpTargetClusterQuery\", request, \"json\", false, undefined, \"TpTargetClusterQueryResponse\");\n }\n\n TpThorStatus(request: Partial<WsTopology.TpThorStatusRequest>): Promise<WsTopology.TpThorStatusResponse> {\n return this._connection.send(\"TpThorStatus\", request, \"json\", false, undefined, \"TpThorStatusResponse\");\n }\n\n TpXMLFile(request: Partial<WsTopology.TpXMLFileRequest>): Promise<WsTopology.TpXMLFileResponse> {\n return this._connection.send(\"TpXMLFile\", request, \"json\", false, undefined, \"TpXMLFileResponse\");\n }\n\n}\n", "import { IOptions } from \"../connection.ts\";\nimport { TopologyServiceBase, WsTopology } from \"./wsdl/WsTopology/v1.33/WsTopology.ts\";\n\nexport {\n WsTopology\n};\n\nexport class TopologyService extends TopologyServiceBase {\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 DefaultTpLogicalClusterQuery(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.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", "import { deepMixin, xml2json, XMLNode } from \"@hpcc-js/util\";\nimport { WsWorkunits, WorkunitsServiceBase } from \"./wsdl/WsWorkunits/v2.02/WsWorkunits.ts\";\nimport { IConnection, IOptions } from \"../connection.ts\";\n\nexport {\n WsWorkunits\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 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}\nexport function isECLResult(_: any): _ is WsWorkunits.ECLResult {\n return typeof (_ as WsWorkunits.ECLResult).Name === \"string\";\n}\n\nexport function isWUQueryECLWorkunit(_: WsWorkunits.ECLWorkunit | WsWorkunits.Workunit): _ is WsWorkunits.ECLWorkunit {\n return (_ as WsWorkunits.ECLWorkunit).TotalClusterTime !== undefined;\n}\n\nexport function isWUInfoWorkunit(_: WsWorkunits.ECLWorkunit | WsWorkunits.Workunit): _ is WsWorkunits.Workunit {\n return (_ as WsWorkunits.Workunit).StateEx !== undefined;\n}\nexport class WorkunitsService extends WorkunitsServiceBase {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection);\n }\n\n Ping(): Promise<WsWorkunits.WsWorkunitsPingResponse> {\n return this._connection.send(\"Ping\", {}, \"json\", false, undefined, \"WsWorkunitsPingResponse\").then(() => {\n return { result: true };\n });\n }\n\n WUQuery(request: Partial<WsWorkunits.WUQuery> = {}, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryResponse> {\n return this._connection.send(\"WUQuery\", request, \"json\", false, abortSignal).then((response) => {\n return deepMixin({ Workunits: { ECLWorkunit: [] } }, response);\n });\n }\n\n WUInfo(_request: Partial<WsWorkunits.WUInfo>): Promise<WsWorkunits.WUInfoResponse> {\n const request: Partial<WsWorkunits.WUInfo> = {\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 IncludeECL: false,\n IncludeHelpers: false,\n IncludeAllowedClusters: false,\n IncludeTotalClusterTime: false,\n IncludeServiceNames: false,\n SuppressResultSchemas: true,\n ..._request\n };\n return super.WUInfo(request);\n }\n\n WUCreate(): Promise<WsWorkunits.WUCreateResponse> {\n return super.WUCreate({});\n }\n\n WUUpdate(request: Partial<WsWorkunits.WUUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\n return this._connection.send(\"WUUpdate\", request, \"json\", true);\n }\n\n WUResubmit(request: WsWorkunits.WUResubmit): Promise<WsWorkunits.WUResubmitResponse> {\n this._connection.toESPStringArray(request, \"Wuids\");\n return super.WUResubmit(request);\n }\n\n WUAction(request: Partial<WsWorkunits.WUAction>): Promise<WsWorkunits.WUActionResponse> {\n (request as any).ActionType = request.WUActionType; // v5.x compatibility\n return super.WUAction(request);\n }\n\n WUResult(request: Partial<WsWorkunits.WUResult>, abortSignal?: AbortSignal): Promise<WsWorkunits.WUResultResponse> {\n return this._connection.send(\"WUResult\", request, \"json\", false, abortSignal);\n }\n\n WUFileEx(request: Partial<WsWorkunits.WUFile>): Promise<string> {\n return this._connection.send(\"WUFile\", request, \"text\");\n }\n\n private _WUDetailsMetaPromise: Promise<WsWorkunits.WUDetailsMetaResponse>;\n WUDetailsMeta(request: WsWorkunits.WUDetailsMeta): Promise<WsWorkunits.WUDetailsMetaResponse> {\n if (!this._WUDetailsMetaPromise) {\n this._WUDetailsMetaPromise = super.WUDetailsMeta(request);\n }\n return this._WUDetailsMetaPromise;\n }\n\n WUCDebugEx(request: WsWorkunits.WUCDebug): Promise<XMLNode | null> {\n return this._connection.send(\"WUCDebug\", request, undefined, undefined, undefined, \"WUDebug\").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\nexport class WorkunitsServiceEx extends WorkunitsServiceBase {\n WUPublishWorkunitEx(request: Partial<WsWorkunits.WUPublishWorkunit>): Promise<WsWorkunits.WUPublishWorkunitResponse> {\n return this._connection.send(\"WUPublishWorkunit\", request);\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsWorkunits {\n\n export type int = number;\n export type double = number;\n export type long = number;\n export type nonNegativeInteger = number;\n export type uint64 = number;\n export type unsignedInt = number;\n export type base64Binary = string;\n export type dateTime = string;\n export type integer = number;\n\n export enum ECLWUActions {\n Abort = \"Abort\",\n Delete = \"Delete\",\n Deschedule = \"Deschedule\",\n Reschedule = \"Reschedule\",\n Pause = \"Pause\",\n PauseNow = \"PauseNow\",\n Protect = \"Protect\",\n Unprotect = \"Unprotect\",\n Restore = \"Restore\",\n Resume = \"Resume\",\n SetToFailed = \"SetToFailed\",\n Archive = \"Archive\"\n }\n\n export enum LogSelectColumnMode {\n MIN = 0,\n DEFAULT = 1,\n ALL = 2,\n CUSTOM = 3\n }\n\n export enum SortDirection {\n ASC = 0,\n DSC = 1\n }\n\n export enum LogEventClass {\n ALL = \"ALL\",\n DIS = \"DIS\",\n ERR = \"ERR\",\n WRN = \"WRN\",\n INF = \"INF\",\n PRO = \"PRO\",\n MET = \"MET\",\n EVT = \"EVT\"\n }\n\n export enum WUDetailsAttrValueType {\n Single = \"Single\",\n List = \"List\",\n Multi = \"Multi\"\n }\n\n export enum EclDefinitionActions {\n SyntaxCheck = \"SyntaxCheck\",\n Deploy = \"Deploy\",\n Publish = \"Publish\"\n }\n\n export enum ErrorMessageFormat {\n xml = \"xml\",\n json = \"json\",\n text = \"text\"\n }\n\n export enum LogAccessLogFormat {\n XML = 0,\n JSON = 1,\n CSV = 2\n }\n\n export enum WUExceptionSeverity {\n info = \"info\",\n warning = \"warning\",\n error = \"error\",\n alert = \"alert\"\n }\n\n export enum WUQueryFilterSuspendedType {\n Allqueries = \"All queries\",\n Notsuspended = \"Not suspended\",\n Suspended = \"Suspended\",\n Suspendedbyuser = \"Suspended by user\",\n Suspendedbyfirstnode = \"Suspended by first node\",\n Suspendedbyanynode = \"Suspended by any node\"\n }\n\n export enum WUQuerySetFilterType {\n All = \"All\",\n Id = \"Id\",\n Name = \"Name\",\n Alias = \"Alias\",\n Status = \"Status\"\n }\n\n export enum WUProtectFilter {\n All = \"All\",\n Protected = \"Protected\",\n NotProtected = \"NotProtected\"\n }\n\n export enum QuerySetAliasActionTypes {\n Deactivate = \"Deactivate\"\n }\n\n export enum QuerysetImportActivation {\n None = \"None\",\n ActivateImportedActive = \"ActivateImportedActive\"\n }\n\n export enum QuerySetQueryActionTypes {\n Suspend = \"Suspend\",\n Unsuspend = \"Unsuspend\",\n ToggleSuspend = \"ToggleSuspend\",\n Activate = \"Activate\",\n Delete = \"Delete\",\n DeleteQueriesAndWUs = \"DeleteQueriesAndWUs\",\n RemoveAllAliases = \"RemoveAllAliases\",\n ResetQueryStats = \"ResetQueryStats\"\n }\n\n export enum WUQueryActivationMode {\n DoNotActivateQuery = 0,\n ActivateQuery = 1,\n ActivateQuerySuspendPrevious = 2,\n ActivateQueryDeletePrevious = 3\n }\n\n export interface GVCAjaxGraph {\n Name: string;\n GraphName: string;\n SubGraphId: int;\n SubGraphOnly: boolean;\n }\n\n export interface GVCAjaxGraphResponse {\n Name: string;\n GraphName: string;\n GraphType: string;\n SubGraphId: int;\n SubGraphOnly: boolean;\n }\n\n export interface Ping {\n\n }\n\n export interface WsWorkunitsPingResponse {\n\n }\n\n export interface Wuids {\n Item: string[];\n }\n\n export interface WUAbort {\n Wuids: Wuids;\n BlockTillFinishTimer: int;\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 WUAbortResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults;\n }\n\n export interface WUAction {\n Wuids: Wuids;\n WUActionType: ECLWUActions;\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: string;\n PageSize: string;\n Sortby: string;\n Descending: boolean;\n EventServer: string;\n EventName: string;\n PageFrom: string;\n BlockTillFinishTimer: int;\n }\n\n export interface WUActionResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults;\n }\n\n export interface WUAddLocalFileToWorkunit {\n Wuid: string;\n Name: string;\n Val: string;\n DefVal: string;\n Type: int;\n Length: int;\n }\n\n export interface WUAddLocalFileToWorkunitResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Name: string;\n Result: string;\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 export interface WUAnalyseHotspot {\n Wuid: string;\n RootScope: string;\n OptOnlyActive: boolean;\n OnlyCriticalPath: boolean;\n IncludeProperties: boolean;\n IncludeStatistics: boolean;\n ThresholdPercent: double;\n PropertyOptions: PropertyOptions;\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 Note {\n Source: string;\n Message: string;\n ErrorCode: nonNegativeInteger;\n Severity: string;\n Cost: nonNegativeInteger;\n Id: uint64;\n }\n\n export interface Notes {\n Note: Note[];\n }\n\n export interface Activity {\n ScopeName: string;\n Id: string;\n ScopeType: string;\n Properties: Properties;\n Notes: Notes;\n SinkActivity: string;\n }\n\n export interface Activities {\n Activity: Activity[];\n }\n\n export interface Dependency {\n ScopeName: string;\n Id: string;\n ScopeType: string;\n Properties: Properties;\n Notes: Notes;\n SinkActivity: string;\n }\n\n export interface Dependencies {\n Dependency: Dependency[];\n }\n\n export interface WUAnalyseHotspotResponse {\n Exceptions: Exceptions;\n RootScope: string;\n RootTime: long;\n Activities: Activities;\n Dependencies: Dependencies;\n }\n\n export interface WUCDebug {\n Wuid: string;\n Command: string;\n }\n\n export interface WUDebugResponse {\n Exceptions: Exceptions;\n Result: string;\n }\n\n export interface WUCheckFeatures {\n IncludeFullVersion: boolean;\n }\n\n export interface Deployment {\n UseCompression: boolean;\n }\n\n export interface WUCheckFeaturesResponse {\n Exceptions: Exceptions;\n BuildVersionMajor: int;\n BuildVersionMinor: int;\n BuildVersionPoint: int;\n maxRequestEntityLength: unsignedInt;\n Deployment: Deployment;\n BuildVersion: string;\n BuildMaturity: string;\n BuildTagTimestamp: string;\n }\n\n export interface WUClusterJobQueueLOG {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n }\n\n export interface WUClusterJobQueueLOGResponse {\n Exceptions: Exceptions;\n thefile: base64Binary;\n }\n\n export interface WUClusterJobQueueXLS {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n ShowType: string;\n }\n\n export interface WUClusterJobQueueXLSResponse {\n Exceptions: Exceptions;\n Result: base64Binary;\n }\n\n export interface WUClusterJobSummaryXLS {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n ShowAll: boolean;\n BusinessStartTime: string;\n BusinessEndTime: string;\n }\n\n export interface WUClusterJobSummaryXLSResponse {\n Exceptions: Exceptions;\n Result: base64Binary;\n }\n\n export interface WUClusterJobXLS {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n ShowAll: boolean;\n BusinessStartTime: string;\n BusinessEndTime: string;\n }\n\n export interface WUClusterJobXLSResponse {\n Exceptions: Exceptions;\n Result: base64Binary;\n }\n\n export interface WUCompileECL {\n ECL: string;\n ModuleName: string;\n AttributeName: string;\n Queue: string;\n Cluster: string;\n Snapshot: string;\n IncludeDependencies: boolean;\n IncludeComplexity: boolean;\n TimeToWait: int;\n }\n\n export interface ECLException {\n Severity: string;\n Source: string;\n Code: int;\n Message: string;\n Column: int;\n LineNo: int;\n FileName: string;\n Activity: int;\n Scope: string;\n Priority: int;\n Cost: double;\n }\n\n export interface Errors {\n ECLException: ECLException[];\n }\n\n export interface ECLAttribute {\n ModuleName: string;\n AttributeName: string;\n IsLocked: boolean;\n IsCheckedOut: boolean;\n IsSandbox: boolean;\n IsOrphaned: boolean;\n }\n\n export interface Dependencies2 {\n ECLAttribute: ECLAttribute[];\n }\n\n export interface WUCompileECLResponse {\n Exceptions: Exceptions;\n Complexity: string;\n Errors: Errors;\n Dependencies: Dependencies2;\n }\n\n export interface WUCopyLogicalFiles {\n Wuid: string;\n Cluster: string;\n CopyLocal: boolean;\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 NotOnCluster {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\n }\n\n export interface Foreign {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\n }\n\n export interface NotFound {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\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 WUCopyLogicalFilesResponse {\n Exceptions: Exceptions;\n Wuid: string;\n ClusterFiles: ClusterFiles;\n }\n\n export interface WUCopyQuerySet {\n Source: string;\n Target: string;\n ActiveOnly: boolean;\n CloneActiveState: boolean;\n AllowForeignFiles: boolean;\n DfsServer: string;\n CopyFiles: boolean;\n OverwriteDfs: boolean;\n SourceProcess: string;\n UpdateSuperFiles: boolean;\n UpdateCloneFrom: boolean;\n AppendCluster: boolean;\n IncludeFileErrors: boolean;\n SourceSSL: boolean;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface CopiedQueries {\n QueryId: string[];\n }\n\n export interface ExistingQueries {\n QueryId: string[];\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 WUCopyQuerySetResponse {\n Exceptions: Exceptions;\n CopiedQueries: CopiedQueries;\n ExistingQueries: ExistingQueries;\n FileErrors: FileErrors;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUCreate {\n\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: long;\n PID: unsignedInt;\n minActivityId: unsignedInt;\n maxActivityId: unsignedInt;\n IsAvailable: boolean;\n }\n\n export interface Helpers {\n ECLHelpFile: ECLHelpFile[];\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: long;\n WhenStarted: string;\n WhenFinished: string;\n }\n\n export interface Graphs {\n ECLGraph: ECLGraph[];\n }\n\n export interface ECLSourceFiles {\n ECLSourceFile: ECLSourceFile[];\n }\n\n export interface ECLSourceFile {\n FileCluster: string;\n Name: string;\n IsSuperFile: boolean;\n Subs: int;\n Count: int;\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: int;\n isConditional: boolean;\n }\n\n export interface ECLSchemas {\n ECLSchemaItem: ECLSchemaItem[];\n }\n\n export interface ECLResult {\n Name: string;\n Sequence: int;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: long;\n ECLSchemas: ECLSchemas;\n XmlSchema: string;\n }\n\n export interface Results {\n ECLResult: ECLResult[];\n }\n\n export interface Variables {\n ECLResult: ECLResult[];\n }\n\n export interface ECLTimer {\n Name: string;\n Value: string;\n count: int;\n GraphName: string;\n SubGraphId: int;\n Timestamp: long;\n When: string;\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: int;\n CountRemaining: int;\n }\n\n export interface Workflows {\n ECLWorkflow: ECLWorkflow[];\n }\n\n export interface ECLTimingData {\n Name: string;\n GraphNum: int;\n SubGraphNum: int;\n GID: int;\n Min: int;\n MS: int;\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: int;\n }\n\n export interface ThorLogList {\n ThorLogInfo: ThorLogInfo[];\n }\n\n export interface ResourceURLs {\n URL: string[];\n }\n\n export interface ServiceNames {\n Item: string[];\n }\n\n export interface ECLWUProcess {\n Name: string;\n Type: string;\n PodName: string;\n InstanceNumber: int;\n Log: string;\n PID: string;\n Pattern: string;\n Max: int;\n }\n\n export interface ECLWUProcessList {\n ECLWUProcess: ECLWUProcess[];\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: int;\n State: string;\n StateEx: string;\n Description: string;\n Protected: boolean;\n Active: boolean;\n Action: int;\n ActionEx: string;\n DateTimeScheduled: dateTime;\n PriorityClass: int;\n PriorityLevel: int;\n Scope: string;\n Snapshot: string;\n ResultLimit: int;\n Archived: boolean;\n IsPausing: boolean;\n ThorLCR: boolean;\n EventSchedule: int;\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: int;\n WarningCount: int;\n InfoCount: int;\n AlertCount: int;\n GraphCount: int;\n SourceFileCount: int;\n ResultCount: int;\n VariableCount: int;\n TimerCount: int;\n HasDebugValue: boolean;\n ApplicationValueCount: int;\n XmlParams: string;\n AccessFlag: int;\n ClusterFlag: int;\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: int;\n ResourceURLCount: int;\n DebugValueCount: int;\n WorkflowCount: int;\n HelpersCount: int;\n ServiceNames: ServiceNames;\n ExecuteCost: double;\n FileAccessCost: double;\n CompileCost: double;\n NoAccess: boolean;\n ECLWUProcessList: ECLWUProcessList;\n }\n\n export interface WUCreateResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\n }\n\n export interface WUCreateAndUpdate {\n Wuid: string;\n State: int;\n StateOrig: int;\n Jobname: string;\n JobnameOrig: string;\n QueryText: string;\n Action: int;\n Description: string;\n DescriptionOrig: string;\n AddDrilldownFields: boolean;\n ResultLimit: int;\n Protected: boolean;\n ProtectedOrig: boolean;\n PriorityClass: int;\n PriorityLevel: int;\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 WUUpdateResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\n }\n\n export interface AbsoluteTimeRange {\n StartDate: dateTime;\n EndDate: dateTime;\n }\n\n export interface CustomColumns {\n Item: string[];\n }\n\n export interface ComponentsFilter {\n Item: string[];\n }\n\n export interface LogFilter {\n WildcardFilter: string;\n AbsoluteTimeRange: AbsoluteTimeRange;\n RelativeTimeRangeBuffer: unsignedInt;\n LineLimit: unsignedInt;\n LineStartFrom: long;\n SelectColumnMode: LogSelectColumnMode;\n CustomColumns: CustomColumns;\n ComponentsFilter: ComponentsFilter;\n Format: string;\n sortByTimeDirection: SortDirection;\n LogEventType: LogEventClass;\n }\n\n export interface WUCreateZAPInfo {\n Wuid: string;\n ESPApplication: string;\n ThorProcesses: string;\n BuildVersion: string;\n ProblemDescription: string;\n WhatChanged: string;\n WhereSlow: string;\n ZAPFileName: string;\n IncludeThorSlaveLog: string;\n ZAPPassword: string;\n SendEmail: boolean;\n AttachZAPReportToEmail: boolean;\n EmailFrom: string;\n EmailSubject: string;\n EmailBody: string;\n LogFilter: LogFilter;\n IncludeRelatedLogs: boolean;\n IncludePerComponentLogs: boolean;\n }\n\n export interface WUCreateZAPInfoResponse {\n Exceptions: Exceptions;\n thefile: base64Binary;\n ZAPFileName: string;\n }\n\n export interface WUDelete {\n Wuids: Wuids;\n BlockTillFinishTimer: int;\n }\n\n export interface WUDeleteResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults;\n }\n\n export interface NamedValue {\n Name: string;\n Value: string;\n }\n\n export interface DebugValues2 {\n NamedValue: NamedValue[];\n }\n\n export interface WUDeployWorkunit {\n Cluster: string;\n Name: string;\n Wait: int;\n ObjType: string;\n FileName: string;\n Object: base64Binary;\n ResultLimit: int;\n QueryMainDefinition: string;\n Snapshot: string;\n DebugValues: DebugValues2;\n Protect: boolean;\n }\n\n export interface WUDeployWorkunitResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\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: integer;\n Scopes: string[];\n Ids: string[];\n ScopeTypes: string[];\n PropertyFilters: PropertyFilters;\n }\n\n export interface NestedFilter {\n Depth: unsignedInt;\n ScopeTypes: string[];\n }\n\n export interface Extra {\n scopeType: string;\n Properties: string[];\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 AllNotes: boolean;\n MinVersion: uint64;\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 WUDetails {\n WUID: string;\n ScopeFilter: ScopeFilter;\n NestedFilter: NestedFilter;\n PropertiesToReturn: PropertiesToReturn;\n Filter: string;\n ScopeOptions: ScopeOptions;\n PropertyOptions: PropertyOptions;\n }\n\n export interface Scope {\n ScopeName: string;\n Id: string;\n ScopeType: string;\n Properties: Properties;\n Notes: Notes;\n SinkActivity: string;\n }\n\n export interface Scopes {\n Scope: Scope[];\n }\n\n export interface WUDetailsResponse {\n Exceptions: Exceptions;\n MaxVersion: uint64;\n WUID: string;\n Scopes: Scopes;\n }\n\n export interface WUDetailsMeta {\n\n }\n\n export interface Property2 {\n Name: string;\n ValueType: WUDetailsAttrValueType;\n Description: string;\n }\n\n export interface Properties2 {\n Property: Property2[];\n }\n\n export interface ScopeTypes {\n ScopeType: string[];\n }\n\n export interface Measures {\n Measure: string[];\n }\n\n export interface Activity2 {\n Kind: unsignedInt;\n Name: string;\n IsSink: boolean;\n IsSource: boolean;\n }\n\n export interface Activities2 {\n Activity: Activity2[];\n }\n\n export interface WUDetailsMetaResponse {\n Exceptions: Exceptions;\n Properties: Properties2;\n ScopeTypes: ScopeTypes;\n Measures: Measures;\n Activities: Activities2;\n }\n\n export interface EclDefinitions {\n Item: string[];\n }\n\n export interface WUEclDefinitionAction {\n EclDefinitions: EclDefinitions;\n ActionType: EclDefinitionActions;\n Target: string;\n RemoteDali: string;\n SourceProcess: string;\n Priority: string;\n Comment: string;\n MemoryLimit: string;\n DeletePrevious: boolean;\n SuspendPrevious: boolean;\n NoActivate: boolean;\n NoReload: boolean;\n DontCopyFiles: boolean;\n AllowForeign: boolean;\n UpdateDfs: boolean;\n UpdateSuperfiles: boolean;\n UpdateCloneFrom: boolean;\n DontAppendCluster: boolean;\n MsToWait: int;\n TimeLimit: int;\n WarnTimeLimit: int;\n DfuCopyFiles: boolean;\n DfuOverwrite: boolean;\n DfuQueue: string;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n }\n\n export interface WUEclDefinitionActionResult {\n EclDefinition: string;\n Action: string;\n WUID: string;\n QueryID: string;\n Result: string;\n }\n\n export interface ActionResults2 {\n WUEclDefinitionActionResult: WUEclDefinitionActionResult[];\n }\n\n export interface WUEclDefinitionActionResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults2;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUExport {\n Cluster: string;\n Owner: string;\n State: string;\n StartDate: string;\n EndDate: string;\n Jobname: string;\n }\n\n export interface WUExportResponse {\n Exceptions: Exceptions;\n ExportData: base64Binary;\n }\n\n export interface LogColumns {\n Item: string[];\n }\n\n export interface WUFile {\n Name: string;\n Wuid: string;\n Type: string;\n Option: int;\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: int;\n SizeLimit: long;\n ErrorMessageFormat: ErrorMessageFormat;\n PlainText: string;\n MaxLogRecords: unsignedInt;\n LogSelectColumnMode: LogSelectColumnMode;\n LogFormat: LogAccessLogFormat;\n LogSearchTimeBuffSecs: unsignedInt;\n LogColumns: LogColumns;\n }\n\n export interface WULogFileResponse {\n Exceptions: Exceptions;\n Wuid: string;\n QuerySet: string;\n QueryName: string;\n QueryId: string;\n FileName: string;\n DaliServer: string;\n thefile: base64Binary;\n }\n\n export interface WUFullResult {\n Wuid: string;\n NoRootTag: boolean;\n ExceptionSeverity: WUExceptionSeverity;\n }\n\n export interface WUFullResultResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Results: string;\n }\n\n export interface WUGVCGraphInfo {\n Wuid: string;\n Name: string;\n GID: string;\n BatchWU: int;\n SubgraphId: int;\n }\n\n export interface WUGVCGraphInfoResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Name: string;\n GID: string;\n Running: boolean;\n TheGraph: string;\n BatchWU: int;\n }\n\n export interface WUGetArchiveFile {\n WUID: string;\n ModuleName: string;\n FileName: string;\n Path: string;\n }\n\n export interface WUGetArchiveFileResponse {\n Exceptions: Exceptions;\n File: string;\n Message: string;\n }\n\n export interface WUGetDependancyTrees {\n Cluster: string;\n Queue: string;\n Snapshot: string;\n Items: string;\n TimeoutMilliSec: string;\n }\n\n export interface WUGetDependancyTreesResponse {\n Exceptions: Exceptions;\n Errors: Errors;\n DependancyTrees: base64Binary;\n }\n\n export interface WUGetGraph {\n Wuid: string;\n GraphName: string;\n SubGraphId: string;\n }\n\n export interface ECLGraphEx {\n Name: string;\n Label: string;\n Type: string;\n Graph: string;\n Running: boolean;\n RunningId: long;\n Complete: boolean;\n Failed: boolean;\n }\n\n export interface Graphs2 {\n ECLGraphEx: ECLGraphEx[];\n }\n\n export interface WUGetGraphResponse {\n Exceptions: Exceptions;\n Graphs: Graphs2;\n }\n\n export interface WUGetGraphNameAndTypes {\n Wuid: string;\n Type: string;\n }\n\n export interface GraphNameAndType {\n Name: string;\n Type: string;\n }\n\n export interface GraphNameAndTypes {\n GraphNameAndType: GraphNameAndType[];\n }\n\n export interface WUGetGraphNameAndTypesResponse {\n Exceptions: Exceptions;\n GraphNameAndTypes: GraphNameAndTypes;\n }\n\n export interface WUGetNumFileToCopy {\n ClusterName: string;\n TargetName: string;\n PageSize: long;\n PageStartFrom: long;\n Sortby: string;\n Descending: boolean;\n CacheHint: long;\n }\n\n export interface Endpoint {\n URL: string;\n Status: string;\n NumQueryFileToCopy: int;\n }\n\n export interface Endpoints {\n Endpoint: Endpoint[];\n }\n\n export interface WUGetNumFileToCopyResponse {\n Exceptions: Exceptions;\n Endpoints: Endpoints;\n CacheHint: long;\n Total: long;\n }\n\n export interface WUGetPlugins {\n\n }\n\n export interface Plugins {\n WUEclPluginsInFolder: WUEclPluginsInFolder[];\n }\n\n export interface WUEclPluginsInFolder {\n Path: string;\n Plugins: Plugins;\n }\n\n export interface WUGetPluginsResponse {\n Exceptions: Exceptions;\n Plugins: Plugins;\n }\n\n export interface WUGetStats {\n WUID: string;\n CreatorType: string;\n Creator: string;\n ScopeType: string;\n Scope: string;\n Kind: string;\n Measure: string;\n MinScopeDepth: unsignedInt;\n MaxScopeDepth: unsignedInt;\n IncludeGraphs: boolean;\n CreateDescriptions: boolean;\n MinValue: long;\n MaxValue: long;\n Filter: string;\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: long;\n Count: long;\n Max: long;\n Wuid: string;\n }\n\n export interface Statistics {\n WUStatisticItem: WUStatisticItem[];\n }\n\n export interface WUGetStatsResponse {\n Exceptions: Exceptions;\n WUID: string;\n Statistics: Statistics;\n }\n\n export interface WUGetThorJobList {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n MaxJobsToReturn: unsignedInt;\n }\n\n export interface ECLJob {\n Wuid: string;\n Graph: string;\n State: string;\n StartedDate: string;\n FinishedDate: string;\n Cluster: string;\n GraphNum: string;\n SubGraphNum: string;\n NumOfRuns: string;\n Duration: int;\n }\n\n export interface JobList {\n ECLJob: ECLJob[];\n }\n\n export interface InProgressJobList {\n ECLJob: ECLJob[];\n }\n\n export interface WUGetThorJobListResponse {\n Exceptions: Exceptions;\n JobList: JobList;\n InProgressJobList: InProgressJobList;\n Warning: string;\n }\n\n export interface WUGetThorJobQueue {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n MaxJobQueueItemsToReturn: unsignedInt;\n }\n\n export interface ThorQueue {\n DT: string;\n RunningWUs: string;\n QueuedWUs: string;\n WaitingThors: string;\n ConnectedThors: string;\n IdledThors: string;\n RunningWU1: string;\n RunningWU2: string;\n }\n\n export interface QueueList {\n ThorQueue: ThorQueue[];\n }\n\n export interface WUGetThorJobQueueResponse {\n Exceptions: Exceptions;\n LongestQueue: int;\n MaxThorConnected: int;\n QueueList: QueueList;\n Warning: string;\n }\n\n export interface WUGetZAPInfo {\n WUID: string;\n }\n\n export interface WUGetZAPInfoResponse {\n Exceptions: Exceptions;\n WUID: string;\n ESPApplication: string;\n ThorProcesses: string;\n BuildVersion: string;\n Archive: string;\n EmailTo: string;\n EmailFrom: string;\n Message: string;\n IsContainerized: boolean;\n }\n\n export interface WUGraphInfo {\n Wuid: string;\n Name: string;\n GID: string;\n BatchWU: int;\n }\n\n export interface WUGraphInfoResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Name: string;\n GID: string;\n BatchWU: int;\n Running: boolean;\n }\n\n export interface WUGraphTiming {\n Wuid: string;\n }\n\n export interface WUGraphTimingResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\n }\n\n export interface WUInfo {\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 IncludeECL: boolean;\n IncludeHelpers: boolean;\n IncludeAllowedClusters: boolean;\n IncludeTotalClusterTime: boolean;\n IncludeServiceNames: boolean;\n IncludeProcesses: boolean;\n SuppressResultSchemas: boolean;\n ThorSlaveIP: string;\n }\n\n export interface ResultViews {\n View: string[];\n }\n\n export interface WUInfoResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\n AutoRefresh: int;\n CanCompile: boolean;\n ThorSlaveIP: string;\n ResultViews: ResultViews;\n SecMethod: string;\n }\n\n export interface WUInfoDetails {\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 IncludeECL: boolean;\n IncludeHelpers: boolean;\n IncludeAllowedClusters: boolean;\n IncludeTotalClusterTime: boolean;\n IncludeServiceNames: boolean;\n IncludeProcesses: boolean;\n SuppressResultSchemas: boolean;\n ThorSlaveIP: string;\n }\n\n export interface WUJobList {\n Cluster: string;\n Process: string;\n StartDate: string;\n EndDate: string;\n ShowAll: boolean;\n BusinessStartHour: int;\n BusinessEndHour: int;\n }\n\n export interface Jobs {\n ECLJob: ECLJob[];\n }\n\n export interface WUJobListResponse {\n Exceptions: Exceptions;\n StartDate: string;\n EndDate: string;\n Jobs: Jobs;\n }\n\n export interface WULightWeightQuery {\n Wuid: string;\n Type: string;\n Cluster: string;\n Owner: string;\n JobName: string;\n StartDate: string;\n EndDate: string;\n BeforeWU: string;\n AfterWU: string;\n State: string;\n ApplicationValues: ApplicationValues;\n PageStartFrom: long;\n PageSize: unsignedInt;\n SortBy: string;\n Descending: boolean;\n CacheHint: long;\n }\n\n export interface ECLWorkunitLW {\n Wuid: string;\n Owner: string;\n JobName: string;\n WuScope: string;\n ClusterName: string;\n State: int;\n StateDesc: string;\n Action: int;\n ActionDesc: string;\n Priority: int;\n PriorityDesc: string;\n PriorityLevel: int;\n IsProtected: boolean;\n DateTimeScheduled: dateTime;\n TotalClusterTime: unsignedInt;\n ApplicationValues: ApplicationValues;\n NoAccess: boolean;\n }\n\n export interface Workunits {\n ECLWorkunitLW: ECLWorkunitLW[];\n }\n\n export interface WULightWeightQueryResponse {\n Exceptions: Exceptions;\n NumWUs: int;\n CacheHint: long;\n Workunits: Workunits;\n }\n\n export interface WUListArchiveFiles {\n WUID: string;\n }\n\n export interface ArchiveModules {\n ArchiveModule: ArchiveModule[];\n }\n\n export interface File2 {\n Name: string;\n Key: string;\n SourcePath: string;\n Path: string;\n }\n\n export interface Files {\n File: File2[];\n }\n\n export interface ArchiveModule {\n Name: string;\n FullName: string;\n Flags: unsignedInt;\n Key: string;\n Plugin: string;\n SourcePath: string;\n Version: string;\n Path: string;\n ArchiveModules: ArchiveModules;\n Files: Files;\n }\n\n export interface WUListArchiveFilesResponse {\n Exceptions: Exceptions;\n ArchiveModules: ArchiveModules;\n Files: Files;\n Message: string;\n }\n\n export interface WUListLocalFileRequired {\n Wuid: string;\n }\n\n export interface LogicalFileUpload {\n Type: int;\n Source: string;\n Destination: string;\n EventTag: string;\n }\n\n export interface LocalFileUploads {\n LogicalFileUpload: LogicalFileUpload[];\n }\n\n export interface WUListLocalFileRequiredResponse {\n Exceptions: Exceptions;\n LocalFileUploads: LocalFileUploads;\n }\n\n export interface WUListQueries {\n QuerySetName: string;\n ClusterName: string;\n LibraryName: string;\n MemoryLimitLow: long;\n MemoryLimitHigh: long;\n TimeLimitLow: nonNegativeInteger;\n TimeLimitHigh: nonNegativeInteger;\n WarnTimeLimitLow: nonNegativeInteger;\n WarnTimeLimitHigh: nonNegativeInteger;\n PriorityLow: nonNegativeInteger;\n PriorityHigh: nonNegativeInteger;\n Activated: boolean;\n SuspendedFilter: WUQueryFilterSuspendedType;\n WUID: string;\n QueryID: string;\n QueryName: string;\n PublishedBy: string;\n PageSize: nonNegativeInteger;\n PageStartFrom: nonNegativeInteger;\n Sortby: string;\n Descending: boolean;\n CacheHint: long;\n FileName: string;\n CheckAllNodes: boolean;\n }\n\n export interface ClusterQueryState {\n Cluster: string;\n State: string;\n Errors: string;\n MixedNodeStates: boolean;\n }\n\n export interface Clusters2 {\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: Clusters2;\n memoryLimit: string;\n timeLimit: nonNegativeInteger;\n warnTimeLimit: nonNegativeInteger;\n priority: string;\n Comment: string;\n QuerySetId: string;\n IsLibrary: boolean;\n Activated: boolean;\n PublishedBy: string;\n snapshot: string;\n PriorityID: int;\n }\n\n export interface QuerysetQueries {\n QuerySetQuery: QuerySetQuery[];\n }\n\n export interface WUListQueriesResponse {\n Exceptions: Exceptions;\n NumberOfQueries: int;\n CacheHint: long;\n QuerysetQueries: QuerysetQueries;\n }\n\n export interface WUListQueriesUsingFile {\n Target: string;\n Process: string;\n FileName: string;\n }\n\n export interface QueryUsingFile {\n Id: string;\n Package: string;\n }\n\n export interface Queries {\n QueryUsingFile: QueryUsingFile[];\n }\n\n export interface TargetQueriesUsingFile {\n Target: string;\n PackageMap: string;\n Queries: Queries;\n }\n\n export interface Targets {\n TargetQueriesUsingFile: TargetQueriesUsingFile[];\n }\n\n export interface WUListQueriesUsingFileResponse {\n Exceptions: Exceptions;\n Process: string;\n FileName: string;\n Targets: Targets;\n }\n\n export interface WUMultiQuerysetDetails {\n ClusterName: string;\n QuerySetName: string;\n Filter: string;\n FilterType: WUQuerySetFilterType;\n CheckAllNodes: boolean;\n }\n\n export interface Queries2 {\n QuerySetQuery: QuerySetQuery[];\n }\n\n export interface QuerySetAlias {\n Id: string;\n Name: string;\n }\n\n export interface Aliases {\n QuerySetAlias: QuerySetAlias[];\n }\n\n export interface WUQuerySetDetail {\n QuerySetName: string;\n Queries: Queries2;\n Aliases: Aliases;\n }\n\n export interface Querysets {\n WUQuerySetDetail: WUQuerySetDetail[];\n }\n\n export interface WUMultiQuerySetDetailsResponse {\n Exceptions: Exceptions;\n ClusterName: string;\n Querysets: Querysets;\n }\n\n export interface WUProcessGraph {\n Wuid: string;\n Name: string;\n }\n\n export interface WUProcessGraphResponse {\n Exceptions: Exceptions;\n theGraph: string;\n }\n\n export interface WUProtect {\n Wuids: Wuids;\n Protect: boolean;\n }\n\n export interface WUProtectResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults;\n }\n\n export interface WUPublishWorkunit {\n Wuid: string;\n Cluster: string;\n QueryName: string;\n WorkUnitJobName: string;\n JobName: string;\n Activate: int;\n NotifyCluster: boolean;\n Wait: int;\n NoReload: boolean;\n UpdateWorkUnitName: boolean;\n memoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\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 IncludeFileErrors: boolean;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface WUPublishWorkunitResponse {\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 DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUPushEvent {\n EventName: string;\n EventText: string;\n }\n\n export interface WUPushEventResponse {\n Exceptions: Exceptions;\n }\n\n export interface WUQuery {\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: ApplicationValues;\n BeforeWU: string;\n AfterWU: string;\n TotalClusterTimeThresholdMilliSec: unsignedInt;\n Count: int;\n PageSize: long;\n PageStartFrom: long;\n PageEndAt: long;\n Protected: WUProtectFilter;\n MinimumExecuteCost: double;\n MinimumFileAccessCost: double;\n MinimumCompileCost: double;\n Sortby: string;\n Descending: boolean;\n CacheHint: long;\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: int;\n State: string;\n StateEx: string;\n Description: string;\n Protected: boolean;\n Active: boolean;\n Action: int;\n ActionEx: string;\n DateTimeScheduled: dateTime;\n PriorityClass: int;\n PriorityLevel: int;\n Scope: string;\n Snapshot: string;\n ResultLimit: int;\n Archived: boolean;\n IsPausing: boolean;\n ThorLCR: boolean;\n EventSchedule: int;\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: int;\n WarningCount: int;\n InfoCount: int;\n AlertCount: int;\n GraphCount: int;\n SourceFileCount: int;\n ResultCount: int;\n VariableCount: int;\n TimerCount: int;\n HasDebugValue: boolean;\n ApplicationValueCount: int;\n XmlParams: string;\n AccessFlag: int;\n ClusterFlag: int;\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: int;\n ResourceURLCount: int;\n DebugValueCount: int;\n WorkflowCount: int;\n HelpersCount: int;\n ServiceNames: ServiceNames;\n ExecuteCost: double;\n FileAccessCost: double;\n CompileCost: double;\n NoAccess: boolean;\n ECLWUProcessList: ECLWUProcessList;\n }\n\n export interface Workunits2 {\n ECLWorkunit: ECLWorkunit[];\n }\n\n export interface WUQueryResponse {\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: int;\n PageSize: long;\n PrevPage: long;\n NextPage: long;\n LastPage: long;\n NumWUs: int;\n First: boolean;\n PageStartFrom: long;\n PageEndAt: long;\n Sortby: string;\n Descending: boolean;\n BasicQuery: string;\n Filters: string;\n CacheHint: long;\n Workunits: Workunits2;\n }\n\n export interface WUQueryConfig {\n Target: string;\n QueryId: string;\n Wait: int;\n NoReload: boolean;\n memoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\n Priority: string;\n Comment: string;\n }\n\n export interface Result {\n QueryId: string;\n }\n\n export interface Results2 {\n Result: Result[];\n }\n\n export interface WUQueryConfigResponse {\n Exceptions: Exceptions;\n ReloadFailed: boolean;\n Results: Results2;\n }\n\n export interface WUQueryDetails {\n QueryId: string;\n QuerySet: string;\n IncludeStateOnClusters: boolean;\n IncludeSuperFiles: boolean;\n IncludeWsEclAddresses: boolean;\n CheckAllNodes: boolean;\n IncludeWUDetails: boolean;\n IncludeWUQueryFiles: boolean;\n }\n\n export interface LogicalFiles {\n Item: string[];\n }\n\n export interface SubFiles {\n File: string[];\n }\n\n export interface SuperFiles {\n SuperFile: SuperFile[];\n }\n\n export interface SuperFile {\n Name: string;\n SubFiles: SubFiles;\n SuperFiles: SuperFiles;\n }\n\n export interface LibrariesUsed {\n Item: string[];\n }\n\n export interface WsEclAddresses {\n Address: string[];\n }\n\n export interface WUGraphs {\n ECLGraph: ECLGraph[];\n }\n\n export interface WUTimers {\n ECLTimer: ECLTimer[];\n }\n\n export interface WUQueryDetailsResponse {\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: Clusters2;\n PublishedBy: string;\n Comment: string;\n LogicalFiles: LogicalFiles;\n SuperFiles: SuperFiles;\n IsLibrary: boolean;\n Priority: string;\n PriorityID: int;\n WUSnapShot: string;\n CompileTime: string;\n LibrariesUsed: LibrariesUsed;\n CountGraphs: int;\n ResourceURLCount: int;\n WsEclAddresses: WsEclAddresses;\n WUGraphs: WUGraphs;\n WUTimers: WUTimers;\n }\n\n export interface WUQueryDetailsLightWeight {\n QueryId: string;\n QuerySet: string;\n IncludeWUDetails: boolean;\n IncludeWUQueryFiles: boolean;\n IncludeSuperFiles: boolean;\n IncludeWsEclAddresses: boolean;\n IncludeStateOnClusters: boolean;\n CheckAllNodes: boolean;\n }\n\n export interface WUQueryFiles {\n Target: string;\n QueryId: string;\n }\n\n export interface File3 {\n FileName: string;\n FileSize: long;\n NumberOfParts: unsignedInt;\n }\n\n export interface Files2 {\n File: File3[];\n }\n\n export interface Query2 {\n QueryId: string;\n Files: Files2;\n SuperFiles: SuperFiles;\n }\n\n export interface Queries3 {\n Query: Query2[];\n }\n\n export interface WUQueryFilesResponse {\n Exceptions: Exceptions;\n Files: Files2;\n SuperFiles: SuperFiles;\n Queries: Queries3;\n }\n\n export interface WUQueryGetGraph {\n Target: string;\n QueryId: string;\n GraphName: string;\n SubGraphId: string;\n }\n\n export interface WUQueryGetGraphResponse {\n Exceptions: Exceptions;\n Graphs: Graphs2;\n }\n\n export interface WUQueryGetSummaryStats {\n Target: string;\n QueryId: string;\n FromTime: string;\n ToTime: string;\n IncludeRawStats: boolean;\n }\n\n export interface QuerySummaryStats {\n Endpoint: string;\n Status: string;\n StartTime: string;\n EndTime: string;\n CountTotal: int;\n CountFailed: int;\n AverageSlavesReplyLen: int;\n AverageBytesOut: long;\n SizeAvgPeakMemory: long;\n TimeAvgTotalExecuteMinutes: long;\n TimeMinTotalExecuteMinutes: long;\n TimeMaxTotalExecuteMinutes: long;\n Percentile97: long;\n Percentile97Estimate: boolean;\n }\n\n export interface StatsList {\n QuerySummaryStats: QuerySummaryStats[];\n }\n\n export interface AggregateQueryStatsList {\n QuerySummaryStats: QuerySummaryStats[];\n }\n\n export interface QueryStatsRecord {\n StartTime: string;\n ElapsedTimeMs: long;\n MemoryUsed: long;\n BytesOut: long;\n SlavesReplyLen: int;\n Failed: boolean;\n }\n\n export interface QueryStatsRecordList {\n QueryStatsRecord: QueryStatsRecord[];\n }\n\n export interface QueryStats {\n ID: string;\n AggregateQueryStatsList: AggregateQueryStatsList;\n QueryStatsRecordList: QueryStatsRecordList;\n }\n\n export interface QueryStatsList {\n EndpointQueryStats: EndpointQueryStats[];\n }\n\n export interface EndpointQueryStats {\n Endpoint: string;\n Status: string;\n QueryStatsList: QueryStatsList;\n }\n\n export interface WUQueryGetSummaryStatsResponse {\n Exceptions: Exceptions;\n StatsList: StatsList;\n QueryStatsList: QueryStatsList;\n }\n\n export interface Alias {\n Name: string;\n }\n\n export interface Aliases2 {\n Alias: Alias[];\n }\n\n export interface WUQuerysetAliasAction {\n Action: QuerySetAliasActionTypes;\n QuerySetName: string;\n Aliases: Aliases2;\n }\n\n export interface Result2 {\n Name: string;\n Success: boolean;\n Code: int;\n Message: string;\n }\n\n export interface Results3 {\n Result: Result2[];\n }\n\n export interface WUQuerySetAliasActionResponse {\n Exceptions: Exceptions;\n Action: QuerySetAliasActionTypes;\n QuerySetName: string;\n Results: Results3;\n }\n\n export interface WUQuerysetCopyQuery {\n Source: string;\n Target: string;\n Cluster: string;\n DaliServer: string;\n Activate: int;\n Overwrite: boolean;\n DontCopyFiles: boolean;\n Wait: int;\n NoReload: boolean;\n memoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\n priority: string;\n Comment: string;\n SourceProcess: string;\n DestName: string;\n AllowForeignFiles: boolean;\n UpdateSuperFiles: boolean;\n UpdateCloneFrom: boolean;\n AppendCluster: boolean;\n IncludeFileErrors: boolean;\n SourceSSL: boolean;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface WUQuerySetCopyQueryResponse {\n Exceptions: Exceptions;\n QueryId: string;\n FileErrors: FileErrors;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUQuerysetDetails {\n QuerySetName: string;\n Filter: string;\n ClusterName: string;\n FilterType: WUQuerySetFilterType;\n CheckAllNodes: boolean;\n }\n\n export interface QuerysetAliases {\n QuerySetAlias: QuerySetAlias[];\n }\n\n export interface ClusterNames {\n Item: string[];\n }\n\n export interface WUQuerySetDetailsResponse {\n Exceptions: Exceptions;\n QuerySetName: string;\n QuerysetQueries: QuerysetQueries;\n QuerysetAliases: QuerysetAliases;\n ClusterName: string;\n Filter: string;\n FilterType: WUQuerySetFilterType;\n ClusterNames: ClusterNames;\n }\n\n export interface WUQuerysetExport {\n Target: string;\n Compress: boolean;\n ActiveOnly: boolean;\n Protect: boolean;\n }\n\n export interface WUQuerysetExportResponse {\n Exceptions: Exceptions;\n Target: string;\n Compressed: boolean;\n Data: base64Binary;\n }\n\n export interface WUQuerysetImport {\n Target: string;\n QueryMask: string;\n Replace: boolean;\n ActiveOnly: boolean;\n Activation: QuerysetImportActivation;\n Compressed: boolean;\n Data: base64Binary;\n AllowForeignFiles: boolean;\n DfsServer: string;\n CopyFiles: boolean;\n OverwriteDfs: boolean;\n SourceProcess: string;\n UpdateSuperFiles: boolean;\n UpdateCloneFrom: boolean;\n AppendCluster: boolean;\n IncludeFileErrors: boolean;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface ImportedQueries {\n QueryId: string[];\n }\n\n export interface MissingWuids {\n QueryId: string[];\n }\n\n export interface WUQuerysetImportResponse {\n Exceptions: Exceptions;\n Target: string;\n ClearedExisting: boolean;\n Success: boolean;\n ImportedQueries: ImportedQueries;\n ExistingQueries: ExistingQueries;\n MissingWuids: MissingWuids;\n FileErrors: FileErrors;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface ClientState {\n Suspended: string;\n }\n\n export interface Query3 {\n QueryId: string;\n Activated: boolean;\n SuspendedByUser: boolean;\n ClientState: ClientState;\n }\n\n export interface Queries4 {\n Query: Query3[];\n }\n\n export interface WUQuerysetQueryAction {\n Action: QuerySetQueryActionTypes;\n QuerySetName: string;\n Queries: Queries4;\n }\n\n export interface Result3 {\n QueryId: string;\n WUID: string;\n Suspended: boolean;\n Success: boolean;\n Code: int;\n Message: string;\n }\n\n export interface Results4 {\n Result: Result3[];\n }\n\n export interface WUQuerySetQueryActionResponse {\n Exceptions: Exceptions;\n Action: QuerySetQueryActionTypes;\n QuerySetName: string;\n Results: Results4;\n }\n\n export interface WUQuerysets {\n test: boolean;\n }\n\n export interface QuerySet {\n QuerySetName: string;\n }\n\n export interface Querysets2 {\n QuerySet: QuerySet[];\n }\n\n export interface WUQuerysetsResponse {\n Exceptions: Exceptions;\n Querysets: Querysets2;\n }\n\n export interface WURecreateQuery {\n Target: string;\n QueryId: string;\n DebugValues: DebugValues2;\n DestTarget: string;\n Republish: boolean;\n Activate: WUQueryActivationMode;\n NoReload: boolean;\n MemoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\n Priority: string;\n Comment: string;\n RemoteDali: string;\n DontCopyFiles: boolean;\n SourceProcess: string;\n AllowForeignFiles: boolean;\n UpdateDfs: boolean;\n UpdateSuperFiles: boolean;\n UpdateCloneFrom: boolean;\n AppendCluster: boolean;\n IncludeFileErrors: boolean;\n Wait: int;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface WURecreateQueryResponse {\n Exceptions: Exceptions;\n Wuid: string;\n QuerySet: string;\n QueryName: string;\n QueryId: string;\n MemoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\n Priority: string;\n Comment: string;\n ReloadFailed: boolean;\n Suspended: boolean;\n ErrorMessage: string;\n FileErrors: FileErrors;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUResubmit {\n Wuids: Wuids;\n BlockTillFinishTimer: int;\n ResetWorkflow: boolean;\n CloneWorkunit: boolean;\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 WUResubmitResponse {\n Exceptions: Exceptions;\n WUs: WUs;\n }\n\n export interface FilterBy {\n NamedValue: NamedValue[];\n }\n\n export interface WUResult {\n Wuid: string;\n Sequence: int;\n ResultName: string;\n LogicalName: string;\n Cluster: string;\n SuppressXmlSchema: boolean;\n BypassCachedResult: boolean;\n FilterBy: FilterBy;\n Start: long;\n Count: int;\n }\n\n export interface WUResultResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Sequence: int;\n LogicalName: string;\n Cluster: string;\n Name: string;\n Start: long;\n Requested: int;\n Count: int;\n Total: long;\n Result: string;\n }\n\n export interface WUResultBin {\n LogicalName: string;\n Wuid: string;\n ResultName: string;\n Sequence: int;\n Format: string;\n Cluster: string;\n FilterBy: FilterBy;\n Start: long;\n Count: int;\n }\n\n export interface WUResultBinResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Sequence: int;\n Name: string;\n Start: long;\n Count: int;\n Requested: int;\n Total: long;\n Result: base64Binary;\n Format: string;\n }\n\n export interface WUResultSummary {\n Wuid: string;\n Sequence: int;\n }\n\n export interface Result4 {\n Name: string;\n Sequence: int;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: long;\n ECLSchemas: ECLSchemas;\n XmlSchema: string;\n }\n\n export interface WUResultSummaryResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Sequence: int;\n Format: int;\n Result: Result4;\n }\n\n export interface WUResultView {\n Wuid: string;\n ViewName: string;\n Sequence: int;\n ResultName: string;\n }\n\n export interface WUResultViewResponse {\n Exceptions: Exceptions;\n Wuid: string;\n ViewName: string;\n Result: string;\n }\n\n export interface Variables2 {\n NamedValue: NamedValue[];\n }\n\n export interface WURun {\n QuerySet: string;\n Query: string;\n Wuid: string;\n CloneWorkunit: boolean;\n Cluster: string;\n Wait: int;\n Input: string;\n NoRootTag: boolean;\n DebugValues: DebugValues2;\n Variables: Variables2;\n ApplicationValues: ApplicationValues;\n ExceptionSeverity: WUExceptionSeverity;\n }\n\n export interface WURunResponse {\n Exceptions: Exceptions;\n Wuid: string;\n State: string;\n Results: string;\n }\n\n export interface WUSchedule {\n Wuid: string;\n Cluster: string;\n Queue: string;\n Snapshot: string;\n When: dateTime;\n MaxRunTime: int;\n }\n\n export interface WUScheduleResponse {\n Exceptions: Exceptions;\n }\n\n export interface WUShowScheduled {\n Cluster: string;\n EventName: string;\n PushEventName: string;\n PushEventText: string;\n State: string;\n JobName: string;\n Owner: string;\n EventText: string;\n }\n\n export interface ServerInfo {\n Name: string;\n NetAddress: string;\n }\n\n export interface Clusters3 {\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: int;\n State: string;\n Owner: string;\n }\n\n export interface Workunits3 {\n ScheduledWU: ScheduledWU[];\n }\n\n export interface WUShowScheduledResponse {\n Exceptions: Exceptions;\n ClusterSelected: int;\n EventName: string;\n PushEventName: string;\n PushEventText: string;\n Query: string;\n Clusters: Clusters3;\n Workunits: Workunits3;\n }\n\n export interface WUSubmit {\n Wuid: string;\n Cluster: string;\n Queue: string;\n Snapshot: string;\n MaxRunTime: int;\n MaxCost: int;\n BlockTillFinishTimer: int;\n SyntaxCheck: boolean;\n NotifyCluster: boolean;\n }\n\n export interface WUSubmitResponse {\n Exceptions: Exceptions;\n }\n\n export interface WUSyntaxCheckECL {\n ECL: string;\n ModuleName: string;\n AttributeName: string;\n Queue: string;\n Cluster: string;\n Snapshot: string;\n TimeToWait: int;\n PersistWorkunit: boolean;\n DebugValues: DebugValues;\n }\n\n export interface WUSyntaxCheckResponse {\n Exceptions: Exceptions;\n Errors: Errors;\n Message: string;\n }\n\n export interface WUUpdate {\n Wuid: string;\n State: int;\n StateOrig: int;\n Jobname: string;\n JobnameOrig: string;\n QueryText: string;\n Action: int;\n Description: string;\n DescriptionOrig: string;\n AddDrilldownFields: boolean;\n ResultLimit: int;\n Protected: boolean;\n ProtectedOrig: boolean;\n PriorityClass: int;\n PriorityLevel: int;\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 WUUpdateQueryEntry {\n QuerySet: string;\n QueryId: string;\n Comment: string;\n }\n\n export interface WUUpdateQueryEntryResponse {\n Exceptions: Exceptions;\n }\n\n export interface WUWaitCompiled {\n Wuid: string;\n Wait: int;\n ReturnOnWait: boolean;\n }\n\n export interface WUWaitResponse {\n Exceptions: Exceptions;\n StateID: int;\n }\n\n export interface WUWaitComplete {\n Wuid: string;\n Wait: int;\n ReturnOnWait: boolean;\n }\n\n}\n\nexport class WorkunitsServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsWorkunits\", \"2.02\");\n }\n\n GVCAjaxGraph(request: Partial<WsWorkunits.GVCAjaxGraph>): Promise<WsWorkunits.GVCAjaxGraphResponse> {\n return this._connection.send(\"GVCAjaxGraph\", request, \"json\", false, undefined, \"GVCAjaxGraphResponse\");\n }\n\n Ping(request: Partial<WsWorkunits.Ping>): Promise<WsWorkunits.WsWorkunitsPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsWorkunitsPingResponse\");\n }\n\n WUAbort(request: Partial<WsWorkunits.WUAbort>): Promise<WsWorkunits.WUAbortResponse> {\n return this._connection.send(\"WUAbort\", request, \"json\", false, undefined, \"WUAbortResponse\");\n }\n\n WUAction(request: Partial<WsWorkunits.WUAction>): Promise<WsWorkunits.WUActionResponse> {\n return this._connection.send(\"WUAction\", request, \"json\", false, undefined, \"WUActionResponse\");\n }\n\n WUAddLocalFileToWorkunit(request: Partial<WsWorkunits.WUAddLocalFileToWorkunit>): Promise<WsWorkunits.WUAddLocalFileToWorkunitResponse> {\n return this._connection.send(\"WUAddLocalFileToWorkunit\", request, \"json\", false, undefined, \"WUAddLocalFileToWorkunitResponse\");\n }\n\n WUAnalyseHotspot(request: Partial<WsWorkunits.WUAnalyseHotspot>): Promise<WsWorkunits.WUAnalyseHotspotResponse> {\n return this._connection.send(\"WUAnalyseHotspot\", request, \"json\", false, undefined, \"WUAnalyseHotspotResponse\");\n }\n\n WUCDebug(request: Partial<WsWorkunits.WUCDebug>): Promise<WsWorkunits.WUDebugResponse> {\n return this._connection.send(\"WUCDebug\", request, \"json\", false, undefined, \"WUDebugResponse\");\n }\n\n WUCheckFeatures(request: Partial<WsWorkunits.WUCheckFeatures>): Promise<WsWorkunits.WUCheckFeaturesResponse> {\n return this._connection.send(\"WUCheckFeatures\", request, \"json\", false, undefined, \"WUCheckFeaturesResponse\");\n }\n\n WUClusterJobQueueLOG(request: Partial<WsWorkunits.WUClusterJobQueueLOG>): Promise<WsWorkunits.WUClusterJobQueueLOGResponse> {\n return this._connection.send(\"WUClusterJobQueueLOG\", request, \"json\", false, undefined, \"WUClusterJobQueueLOGResponse\");\n }\n\n WUClusterJobQueueXLS(request: Partial<WsWorkunits.WUClusterJobQueueXLS>): Promise<WsWorkunits.WUClusterJobQueueXLSResponse> {\n return this._connection.send(\"WUClusterJobQueueXLS\", request, \"json\", false, undefined, \"WUClusterJobQueueXLSResponse\");\n }\n\n WUClusterJobSummaryXLS(request: Partial<WsWorkunits.WUClusterJobSummaryXLS>): Promise<WsWorkunits.WUClusterJobSummaryXLSResponse> {\n return this._connection.send(\"WUClusterJobSummaryXLS\", request, \"json\", false, undefined, \"WUClusterJobSummaryXLSResponse\");\n }\n\n WUClusterJobXLS(request: Partial<WsWorkunits.WUClusterJobXLS>): Promise<WsWorkunits.WUClusterJobXLSResponse> {\n return this._connection.send(\"WUClusterJobXLS\", request, \"json\", false, undefined, \"WUClusterJobXLSResponse\");\n }\n\n WUCompileECL(request: Partial<WsWorkunits.WUCompileECL>): Promise<WsWorkunits.WUCompileECLResponse> {\n return this._connection.send(\"WUCompileECL\", request, \"json\", false, undefined, \"WUCompileECLResponse\");\n }\n\n WUCopyLogicalFiles(request: Partial<WsWorkunits.WUCopyLogicalFiles>): Promise<WsWorkunits.WUCopyLogicalFilesResponse> {\n return this._connection.send(\"WUCopyLogicalFiles\", request, \"json\", false, undefined, \"WUCopyLogicalFilesResponse\");\n }\n\n WUCopyQuerySet(request: Partial<WsWorkunits.WUCopyQuerySet>): Promise<WsWorkunits.WUCopyQuerySetResponse> {\n return this._connection.send(\"WUCopyQuerySet\", request, \"json\", false, undefined, \"WUCopyQuerySetResponse\");\n }\n\n WUCreate(request: Partial<WsWorkunits.WUCreate>): Promise<WsWorkunits.WUCreateResponse> {\n return this._connection.send(\"WUCreate\", request, \"json\", false, undefined, \"WUCreateResponse\");\n }\n\n WUCreateAndUpdate(request: Partial<WsWorkunits.WUCreateAndUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\n return this._connection.send(\"WUCreateAndUpdate\", request, \"json\", false, undefined, \"WUUpdateResponse\");\n }\n\n WUCreateZAPInfo(request: Partial<WsWorkunits.WUCreateZAPInfo>): Promise<WsWorkunits.WUCreateZAPInfoResponse> {\n return this._connection.send(\"WUCreateZAPInfo\", request, \"json\", false, undefined, \"WUCreateZAPInfoResponse\");\n }\n\n WUDelete(request: Partial<WsWorkunits.WUDelete>): Promise<WsWorkunits.WUDeleteResponse> {\n return this._connection.send(\"WUDelete\", request, \"json\", false, undefined, \"WUDeleteResponse\");\n }\n\n WUDeployWorkunit(request: Partial<WsWorkunits.WUDeployWorkunit>): Promise<WsWorkunits.WUDeployWorkunitResponse> {\n return this._connection.send(\"WUDeployWorkunit\", request, \"json\", false, undefined, \"WUDeployWorkunitResponse\");\n }\n\n WUDetails(request: Partial<WsWorkunits.WUDetails>): Promise<WsWorkunits.WUDetailsResponse> {\n return this._connection.send(\"WUDetails\", request, \"json\", false, undefined, \"WUDetailsResponse\");\n }\n\n WUDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta>): Promise<WsWorkunits.WUDetailsMetaResponse> {\n return this._connection.send(\"WUDetailsMeta\", request, \"json\", false, undefined, \"WUDetailsMetaResponse\");\n }\n\n WUEclDefinitionAction(request: Partial<WsWorkunits.WUEclDefinitionAction>): Promise<WsWorkunits.WUEclDefinitionActionResponse> {\n return this._connection.send(\"WUEclDefinitionAction\", request, \"json\", false, undefined, \"WUEclDefinitionActionResponse\");\n }\n\n WUExport(request: Partial<WsWorkunits.WUExport>): Promise<WsWorkunits.WUExportResponse> {\n return this._connection.send(\"WUExport\", request, \"json\", false, undefined, \"WUExportResponse\");\n }\n\n WUFile(request: Partial<WsWorkunits.WUFile>): Promise<WsWorkunits.WULogFileResponse> {\n return this._connection.send(\"WUFile\", request, \"json\", false, undefined, \"WULogFileResponse\");\n }\n\n WUFullResult(request: Partial<WsWorkunits.WUFullResult>): Promise<WsWorkunits.WUFullResultResponse> {\n return this._connection.send(\"WUFullResult\", request, \"json\", false, undefined, \"WUFullResultResponse\");\n }\n\n WUGVCGraphInfo(request: Partial<WsWorkunits.WUGVCGraphInfo>): Promise<WsWorkunits.WUGVCGraphInfoResponse> {\n return this._connection.send(\"WUGVCGraphInfo\", request, \"json\", false, undefined, \"WUGVCGraphInfoResponse\");\n }\n\n WUGetArchiveFile(request: Partial<WsWorkunits.WUGetArchiveFile>): Promise<WsWorkunits.WUGetArchiveFileResponse> {\n return this._connection.send(\"WUGetArchiveFile\", request, \"json\", false, undefined, \"WUGetArchiveFileResponse\");\n }\n\n WUGetDependancyTrees(request: Partial<WsWorkunits.WUGetDependancyTrees>): Promise<WsWorkunits.WUGetDependancyTreesResponse> {\n return this._connection.send(\"WUGetDependancyTrees\", request, \"json\", false, undefined, \"WUGetDependancyTreesResponse\");\n }\n\n WUGetGraph(request: Partial<WsWorkunits.WUGetGraph>): Promise<WsWorkunits.WUGetGraphResponse> {\n return this._connection.send(\"WUGetGraph\", request, \"json\", false, undefined, \"WUGetGraphResponse\");\n }\n\n WUGetGraphNameAndTypes(request: Partial<WsWorkunits.WUGetGraphNameAndTypes>): Promise<WsWorkunits.WUGetGraphNameAndTypesResponse> {\n return this._connection.send(\"WUGetGraphNameAndTypes\", request, \"json\", false, undefined, \"WUGetGraphNameAndTypesResponse\");\n }\n\n WUGetNumFileToCopy(request: Partial<WsWorkunits.WUGetNumFileToCopy>): Promise<WsWorkunits.WUGetNumFileToCopyResponse> {\n return this._connection.send(\"WUGetNumFileToCopy\", request, \"json\", false, undefined, \"WUGetNumFileToCopyResponse\");\n }\n\n WUGetPlugins(request: Partial<WsWorkunits.WUGetPlugins>): Promise<WsWorkunits.WUGetPluginsResponse> {\n return this._connection.send(\"WUGetPlugins\", request, \"json\", false, undefined, \"WUGetPluginsResponse\");\n }\n\n WUGetStats(request: Partial<WsWorkunits.WUGetStats>): Promise<WsWorkunits.WUGetStatsResponse> {\n return this._connection.send(\"WUGetStats\", request, \"json\", false, undefined, \"WUGetStatsResponse\");\n }\n\n WUGetThorJobList(request: Partial<WsWorkunits.WUGetThorJobList>): Promise<WsWorkunits.WUGetThorJobListResponse> {\n return this._connection.send(\"WUGetThorJobList\", request, \"json\", false, undefined, \"WUGetThorJobListResponse\");\n }\n\n WUGetThorJobQueue(request: Partial<WsWorkunits.WUGetThorJobQueue>): Promise<WsWorkunits.WUGetThorJobQueueResponse> {\n return this._connection.send(\"WUGetThorJobQueue\", request, \"json\", false, undefined, \"WUGetThorJobQueueResponse\");\n }\n\n WUGetZAPInfo(request: Partial<WsWorkunits.WUGetZAPInfo>): Promise<WsWorkunits.WUGetZAPInfoResponse> {\n return this._connection.send(\"WUGetZAPInfo\", request, \"json\", false, undefined, \"WUGetZAPInfoResponse\");\n }\n\n WUGraphInfo(request: Partial<WsWorkunits.WUGraphInfo>): Promise<WsWorkunits.WUGraphInfoResponse> {\n return this._connection.send(\"WUGraphInfo\", request, \"json\", false, undefined, \"WUGraphInfoResponse\");\n }\n\n WUGraphTiming(request: Partial<WsWorkunits.WUGraphTiming>): Promise<WsWorkunits.WUGraphTimingResponse> {\n return this._connection.send(\"WUGraphTiming\", request, \"json\", false, undefined, \"WUGraphTimingResponse\");\n }\n\n WUInfo(request: Partial<WsWorkunits.WUInfo>): Promise<WsWorkunits.WUInfoResponse> {\n return this._connection.send(\"WUInfo\", request, \"json\", false, undefined, \"WUInfoResponse\");\n }\n\n WUInfoDetails(request: Partial<WsWorkunits.WUInfoDetails>): Promise<WsWorkunits.WUInfoResponse> {\n return this._connection.send(\"WUInfoDetails\", request, \"json\", false, undefined, \"WUInfoResponse\");\n }\n\n WUJobList(request: Partial<WsWorkunits.WUJobList>): Promise<WsWorkunits.WUJobListResponse> {\n return this._connection.send(\"WUJobList\", request, \"json\", false, undefined, \"WUJobListResponse\");\n }\n\n WULightWeightQuery(request: Partial<WsWorkunits.WULightWeightQuery>): Promise<WsWorkunits.WULightWeightQueryResponse> {\n return this._connection.send(\"WULightWeightQuery\", request, \"json\", false, undefined, \"WULightWeightQueryResponse\");\n }\n\n WUListArchiveFiles(request: Partial<WsWorkunits.WUListArchiveFiles>): Promise<WsWorkunits.WUListArchiveFilesResponse> {\n return this._connection.send(\"WUListArchiveFiles\", request, \"json\", false, undefined, \"WUListArchiveFilesResponse\");\n }\n\n WUListLocalFileRequired(request: Partial<WsWorkunits.WUListLocalFileRequired>): Promise<WsWorkunits.WUListLocalFileRequiredResponse> {\n return this._connection.send(\"WUListLocalFileRequired\", request, \"json\", false, undefined, \"WUListLocalFileRequiredResponse\");\n }\n\n WUListQueries(request: Partial<WsWorkunits.WUListQueries>): Promise<WsWorkunits.WUListQueriesResponse> {\n return this._connection.send(\"WUListQueries\", request, \"json\", false, undefined, \"WUListQueriesResponse\");\n }\n\n WUListQueriesUsingFile(request: Partial<WsWorkunits.WUListQueriesUsingFile>): Promise<WsWorkunits.WUListQueriesUsingFileResponse> {\n return this._connection.send(\"WUListQueriesUsingFile\", request, \"json\", false, undefined, \"WUListQueriesUsingFileResponse\");\n }\n\n WUMultiQuerysetDetails(request: Partial<WsWorkunits.WUMultiQuerysetDetails>): Promise<WsWorkunits.WUMultiQuerySetDetailsResponse> {\n return this._connection.send(\"WUMultiQuerysetDetails\", request, \"json\", false, undefined, \"WUMultiQuerySetDetailsResponse\");\n }\n\n WUProcessGraph(request: Partial<WsWorkunits.WUProcessGraph>): Promise<WsWorkunits.WUProcessGraphResponse> {\n return this._connection.send(\"WUProcessGraph\", request, \"json\", false, undefined, \"WUProcessGraphResponse\");\n }\n\n WUProtect(request: Partial<WsWorkunits.WUProtect>): Promise<WsWorkunits.WUProtectResponse> {\n return this._connection.send(\"WUProtect\", request, \"json\", false, undefined, \"WUProtectResponse\");\n }\n\n WUPublishWorkunit(request: Partial<WsWorkunits.WUPublishWorkunit>): Promise<WsWorkunits.WUPublishWorkunitResponse> {\n return this._connection.send(\"WUPublishWorkunit\", request, \"json\", false, undefined, \"WUPublishWorkunitResponse\");\n }\n\n WUPushEvent(request: Partial<WsWorkunits.WUPushEvent>): Promise<WsWorkunits.WUPushEventResponse> {\n return this._connection.send(\"WUPushEvent\", request, \"json\", false, undefined, \"WUPushEventResponse\");\n }\n\n WUQuery(request: Partial<WsWorkunits.WUQuery>): Promise<WsWorkunits.WUQueryResponse> {\n return this._connection.send(\"WUQuery\", request, \"json\", false, undefined, \"WUQueryResponse\");\n }\n\n WUQueryConfig(request: Partial<WsWorkunits.WUQueryConfig>): Promise<WsWorkunits.WUQueryConfigResponse> {\n return this._connection.send(\"WUQueryConfig\", request, \"json\", false, undefined, \"WUQueryConfigResponse\");\n }\n\n WUQueryDetails(request: Partial<WsWorkunits.WUQueryDetails>): Promise<WsWorkunits.WUQueryDetailsResponse> {\n return this._connection.send(\"WUQueryDetails\", request, \"json\", false, undefined, \"WUQueryDetailsResponse\");\n }\n\n WUQueryDetailsLightWeight(request: Partial<WsWorkunits.WUQueryDetailsLightWeight>): Promise<WsWorkunits.WUQueryDetailsResponse> {\n return this._connection.send(\"WUQueryDetailsLightWeight\", request, \"json\", false, undefined, \"WUQueryDetailsResponse\");\n }\n\n WUQueryFiles(request: Partial<WsWorkunits.WUQueryFiles>): Promise<WsWorkunits.WUQueryFilesResponse> {\n return this._connection.send(\"WUQueryFiles\", request, \"json\", false, undefined, \"WUQueryFilesResponse\");\n }\n\n WUQueryGetGraph(request: Partial<WsWorkunits.WUQueryGetGraph>): Promise<WsWorkunits.WUQueryGetGraphResponse> {\n return this._connection.send(\"WUQueryGetGraph\", request, \"json\", false, undefined, \"WUQueryGetGraphResponse\");\n }\n\n WUQueryGetSummaryStats(request: Partial<WsWorkunits.WUQueryGetSummaryStats>): Promise<WsWorkunits.WUQueryGetSummaryStatsResponse> {\n return this._connection.send(\"WUQueryGetSummaryStats\", request, \"json\", false, undefined, \"WUQueryGetSummaryStatsResponse\");\n }\n\n WUQuerysetAliasAction(request: Partial<WsWorkunits.WUQuerysetAliasAction>): Promise<WsWorkunits.WUQuerySetAliasActionResponse> {\n return this._connection.send(\"WUQuerysetAliasAction\", request, \"json\", false, undefined, \"WUQuerySetAliasActionResponse\");\n }\n\n WUQuerysetCopyQuery(request: Partial<WsWorkunits.WUQuerysetCopyQuery>): Promise<WsWorkunits.WUQuerySetCopyQueryResponse> {\n return this._connection.send(\"WUQuerysetCopyQuery\", request, \"json\", false, undefined, \"WUQuerySetCopyQueryResponse\");\n }\n\n WUQuerysetDetails(request: Partial<WsWorkunits.WUQuerysetDetails>): Promise<WsWorkunits.WUQuerySetDetailsResponse> {\n return this._connection.send(\"WUQuerysetDetails\", request, \"json\", false, undefined, \"WUQuerySetDetailsResponse\");\n }\n\n WUQuerysetExport(request: Partial<WsWorkunits.WUQuerysetExport>): Promise<WsWorkunits.WUQuerysetExportResponse> {\n return this._connection.send(\"WUQuerysetExport\", request, \"json\", false, undefined, \"WUQuerysetExportResponse\");\n }\n\n WUQuerysetImport(request: Partial<WsWorkunits.WUQuerysetImport>): Promise<WsWorkunits.WUQuerysetImportResponse> {\n return this._connection.send(\"WUQuerysetImport\", request, \"json\", false, undefined, \"WUQuerysetImportResponse\");\n }\n\n WUQuerysetQueryAction(request: Partial<WsWorkunits.WUQuerysetQueryAction>): Promise<WsWorkunits.WUQuerySetQueryActionResponse> {\n return this._connection.send(\"WUQuerysetQueryAction\", request, \"json\", false, undefined, \"WUQuerySetQueryActionResponse\");\n }\n\n WUQuerysets(request: Partial<WsWorkunits.WUQuerysets>): Promise<WsWorkunits.WUQuerysetsResponse> {\n return this._connection.send(\"WUQuerysets\", request, \"json\", false, undefined, \"WUQuerysetsResponse\");\n }\n\n WURecreateQuery(request: Partial<WsWorkunits.WURecreateQuery>): Promise<WsWorkunits.WURecreateQueryResponse> {\n return this._connection.send(\"WURecreateQuery\", request, \"json\", false, undefined, \"WURecreateQueryResponse\");\n }\n\n WUResubmit(request: Partial<WsWorkunits.WUResubmit>): Promise<WsWorkunits.WUResubmitResponse> {\n return this._connection.send(\"WUResubmit\", request, \"json\", false, undefined, \"WUResubmitResponse\");\n }\n\n WUResult(request: Partial<WsWorkunits.WUResult>): Promise<WsWorkunits.WUResultResponse> {\n return this._connection.send(\"WUResult\", request, \"json\", false, undefined, \"WUResultResponse\");\n }\n\n WUResultBin(request: Partial<WsWorkunits.WUResultBin>): Promise<WsWorkunits.WUResultBinResponse> {\n return this._connection.send(\"WUResultBin\", request, \"json\", false, undefined, \"WUResultBinResponse\");\n }\n\n WUResultSummary(request: Partial<WsWorkunits.WUResultSummary>): Promise<WsWorkunits.WUResultSummaryResponse> {\n return this._connection.send(\"WUResultSummary\", request, \"json\", false, undefined, \"WUResultSummaryResponse\");\n }\n\n WUResultView(request: Partial<WsWorkunits.WUResultView>): Promise<WsWorkunits.WUResultViewResponse> {\n return this._connection.send(\"WUResultView\", request, \"json\", false, undefined, \"WUResultViewResponse\");\n }\n\n WURun(request: Partial<WsWorkunits.WURun>): Promise<WsWorkunits.WURunResponse> {\n return this._connection.send(\"WURun\", request, \"json\", false, undefined, \"WURunResponse\");\n }\n\n WUSchedule(request: Partial<WsWorkunits.WUSchedule>): Promise<WsWorkunits.WUScheduleResponse> {\n return this._connection.send(\"WUSchedule\", request, \"json\", false, undefined, \"WUScheduleResponse\");\n }\n\n WUShowScheduled(request: Partial<WsWorkunits.WUShowScheduled>): Promise<WsWorkunits.WUShowScheduledResponse> {\n return this._connection.send(\"WUShowScheduled\", request, \"json\", false, undefined, \"WUShowScheduledResponse\");\n }\n\n WUSubmit(request: Partial<WsWorkunits.WUSubmit>): Promise<WsWorkunits.WUSubmitResponse> {\n return this._connection.send(\"WUSubmit\", request, \"json\", false, undefined, \"WUSubmitResponse\");\n }\n\n WUSyntaxCheckECL(request: Partial<WsWorkunits.WUSyntaxCheckECL>): Promise<WsWorkunits.WUSyntaxCheckResponse> {\n return this._connection.send(\"WUSyntaxCheckECL\", request, \"json\", false, undefined, \"WUSyntaxCheckResponse\");\n }\n\n WUUpdate(request: Partial<WsWorkunits.WUUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\n return this._connection.send(\"WUUpdate\", request, \"json\", false, undefined, \"WUUpdateResponse\");\n }\n\n WUUpdateQueryEntry(request: Partial<WsWorkunits.WUUpdateQueryEntry>): Promise<WsWorkunits.WUUpdateQueryEntryResponse> {\n return this._connection.send(\"WUUpdateQueryEntry\", request, \"json\", false, undefined, \"WUUpdateQueryEntryResponse\");\n }\n\n WUWaitCompiled(request: Partial<WsWorkunits.WUWaitCompiled>): Promise<WsWorkunits.WUWaitResponse> {\n return this._connection.send(\"WUWaitCompiled\", request, \"json\", false, undefined, \"WUWaitResponse\");\n }\n\n WUWaitComplete(request: Partial<WsWorkunits.WUWaitComplete>): Promise<WsWorkunits.WUWaitResponse> {\n return this._connection.send(\"WUWaitComplete\", request, \"json\", false, undefined, \"WUWaitResponse\");\n }\n\n}\n", "import { debounce, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsSMC, SMCService } from \"../services/wsSMC.ts\";\nimport { Workunit } from \"./workunit.ts\";\n\nlet _activity: Activity;\n\nexport interface ActivityEx {\n}\n\nexport type UActivityState = WsSMC.ActivityResponse & ActivityEx;\nexport type IActivityState = WsSMC.ActivityResponse | 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(): WsSMC.Exceptions { return this.get(\"Exceptions\"); }\n get Build(): string { return this.get(\"Build\"); }\n get ThorClusterList(): WsSMC.ThorClusterList { return this.get(\"ThorClusterList\"); }\n get RoxieClusterList(): WsSMC.RoxieClusterList { return this.get(\"RoxieClusterList\"); }\n get HThorClusterList(): WsSMC.HThorClusterList { return this.get(\"HThorClusterList\"); }\n get DFUJobs(): WsSMC.DFUJobs { return this.get(\"DFUJobs\"); }\n get Running(): WsSMC.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(): WsSMC.ServerJobQueues { return this.get(\"ServerJobQueues\"); }\n get ActivityTime(): string { return this.get(\"ActivityTime\"); }\n get DaliDetached(): boolean { return this.get(\"DaliDetached\"); }\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(state);\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 setBanner(request: Partial<WsSMC.SetBanner>): Promise<Activity> {\n return this.connection.SetBanner({\n ...request\n } as WsSMC.SetBanner).then((response) => {\n this.set(response);\n return this;\n });\n }\n\n lazyRefresh = debounce(async (): Promise<this> => {\n const response = await this.connection.Activity({} as WsSMC.Activity);\n this.set(response);\n return this;\n });\n\n async refresh(): Promise<this> {\n return this.lazyRefresh();\n }\n}\n", "import { Cache, deepMixinT, IEvent, RecursivePartial, scopedLogger, StateCallback, StateEvents, StateObject, StatePropCallback, StringAnyMap, XMLNode } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { utcFormat, utcParse } from \"d3-time-format\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\nimport { WsSMC } from \"../services/wsSMC.ts\";\nimport * as WsTopology from \"../services/wsTopology.ts\";\nimport { WsWorkunits, WUStateID, WorkunitsService, WorkunitsServiceEx, WUUpdate } from \"../services/wsWorkunits.ts\";\nimport { createGraph, createXGMMLGraph, ECLGraph, GraphCache, ScopeGraph, XGMMLGraph, XGMMLVertex } from \"./graph.ts\";\nimport { Resource } from \"./resource.ts\";\nimport { Result, ResultCache } from \"./result.ts\";\nimport { BaseScope, Scope } from \"./scope.ts\";\nimport { SourceFile } from \"./sourceFile.ts\";\nimport { Timer } from \"./timer.ts\";\n\nconst formatter = utcFormat(\"%Y-%m-%dT%H:%M:%S.%LZ\");\nconst parser = utcParse(\"%Y-%m-%dT%H:%M:%S.%LZ\");\nconst d3FormatNum = d3Format(\",\");\nfunction formatNum(num: number | string): string {\n if (num && !isNaN(+num)) {\n return d3FormatNum(+num);\n }\n return num as string;\n}\n\nfunction safeDelete(obj: { [id: string]: any; }, key: string, prop: string) {\n if (obj[key] === undefined || obj[key][prop] === undefined) return;\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") return;\n delete obj[key][prop];\n}\n\nconst DEFINITION_LIST = \"DefinitionList\";\nconst definitionRegex = /([a-zA-Z]:)?(.*[\\\\\\/])(.*)(\\((\\d+),(\\d+)\\))/;\n\nexport const PropertyType = [\"Avg\", \"Min\", \"Max\", \"Delta\", \"StdDev\"];\nexport const RelatedProperty = [\"SkewMin\", \"SkewMax\", \"NodeMin\", \"NodeMax\"];\n\nexport interface IPropertyValue {\n Key: string;\n Value?: string;\n\n // Extended properties ---\n Avg?: string;\n Min?: string;\n Max?: string;\n Delta?: string;\n StdDev?: string;\n StdDevs?: number;\n\n // Related properties ---\n SkewMin?: string;\n SkewMax?: string;\n NodeMin?: string;\n NodeMax?: string;\n}\n\nexport interface IScope {\n __parentName?: string;\n __children?: IScope[];\n __formattedProps: { [key: string]: any };\n __groupedProps: { [key: string]: IPropertyValue };\n __StdDevs: number,\n __StdDevsSource: string,\n id: string;\n name: string;\n type: string;\n Kind: string;\n Label: string;\n [key: string]: any;\n}\n\nexport interface ISplitMetric {\n measure: string;\n ext: string;\n label: string;\n}\n\nconst metricKeyRegex = /[A-Z][a-z]*/g;\nfunction _splitMetric(fullLabel: string): ISplitMetric {\n\n // Related properties ---\n for (const relProp of RelatedProperty) {\n const index = fullLabel.indexOf(relProp);\n if (index === 0) {\n const measure = \"\";\n const label = fullLabel.slice(index + relProp.length);\n return { measure, ext: relProp, label };\n }\n }\n\n // Primary properties ---\n const labelParts = fullLabel.match(metricKeyRegex);\n if (labelParts?.length) {\n const measure = labelParts.shift();\n let label = labelParts.join(\"\");\n for (const ext of PropertyType) {\n const index = label.indexOf(ext);\n if (index === 0) {\n label = label.slice(index + ext.length);\n return { measure, ext, label };\n }\n }\n // Not an aggregate property ---\n return { measure, ext: \"\", label };\n }\n\n // No match found ---\n return { measure: \"\", ext: \"\", label: fullLabel };\n}\n\nconst splitLabelCache: { [key: string]: ISplitMetric } = {};\nexport function splitMetric(key: string): ISplitMetric {\n let retVal = splitLabelCache[key];\n if (!retVal) {\n retVal = _splitMetric(key);\n splitLabelCache[key] = retVal;\n }\n return retVal;\n}\n\nfunction formatValue(item: IScope, key: string): string | undefined {\n return item.__formattedProps?.[key] ?? item[key];\n}\n\ntype DedupProperties = { [key: string]: boolean };\n\nfunction safeParseFloat(val: string | undefined): number | undefined {\n if (val === undefined) return undefined;\n const retVal = parseFloat(val);\n return isNaN(retVal) ? undefined : retVal;\n}\n\nfunction formatValues(item: IScope, key: string, dedup: DedupProperties): IPropertyValue | null {\n const keyParts = splitMetric(key);\n if (!dedup[keyParts.measure]) {\n dedup[keyParts.label] = true;\n const avg = safeParseFloat(item[`${keyParts.measure}Avg${keyParts.label}`]);\n const min = safeParseFloat(item[`${keyParts.measure}Min${keyParts.label}`]);\n const max = safeParseFloat(item[`${keyParts.measure}Max${keyParts.label}`]);\n const stdDev = safeParseFloat(item[`${keyParts.measure}StdDev${keyParts.label}`]);\n const StdDevs = Math.max((avg - min) / stdDev, (max - avg) / stdDev);\n\n return {\n Key: `${keyParts.measure}${keyParts.label}`,\n Value: formatValue(item, `${keyParts.measure}${keyParts.label}`),\n\n // Extended properties ---\n Avg: formatValue(item, `${keyParts.measure}Avg${keyParts.label}`),\n Min: formatValue(item, `${keyParts.measure}Min${keyParts.label}`),\n Max: formatValue(item, `${keyParts.measure}Max${keyParts.label}`),\n Delta: formatValue(item, `${keyParts.measure}Delta${keyParts.label}`),\n StdDev: formatValue(item, `${keyParts.measure}StdDev${keyParts.label}`),\n StdDevs: isNaN(StdDevs) ? undefined : StdDevs,\n\n // Related properties ---\n SkewMin: formatValue(item, `SkewMin${keyParts.label}`),\n SkewMax: formatValue(item, `SkewMax${keyParts.label}`),\n NodeMin: formatValue(item, `NodeMin${keyParts.label}`),\n NodeMax: formatValue(item, `NodeMax${keyParts.label}`)\n };\n }\n return null;\n}\n\nconst logger = scopedLogger(\"workunit.ts\");\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: WsWorkunits.ResultViews;\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.ECLWorkunit & WsWorkunits.Workunit & WsSMC.ActiveWorkunit & IWorkunit & IDebugWorkunit;\nexport type IWorkunitState = WsWorkunits.ECLWorkunit | WsWorkunits.Workunit | WsSMC.ActiveWorkunit | IWorkunit | IDebugWorkunit;\nexport class Workunit extends StateObject<UWorkunitState, IWorkunitState> implements WsWorkunits.Workunit {\n connection: 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: WUUpdate.Action;\n\n // Accessors ---\n get properties(): WsWorkunits.ECLWorkunit & WsWorkunits.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(): WUStateID { return this.get(\"StateID\", WUStateID.Unknown); }\n get State(): string { return this.get(\"State\") || WUStateID[this.StateID]; }\n get Protected(): boolean { return this.get(\"Protected\", false); }\n get Exceptions(): WsWorkunits.Exceptions2 { return this.get(\"Exceptions\", { ECLException: [] }); }\n get ResultViews(): WsWorkunits.ResultViews { return this.get(\"ResultViews\", { View: [] }); }\n\n private _resultCache = new ResultCache();\n get ResultCount(): number { return this.get(\"ResultCount\", 0); }\n get Results(): WsWorkunits.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 Result.attach(this.connection, this.Wuid, eclResult, this.ResultViews.View);\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.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.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.ThorLogList { return this.get(\"ThorLogList\"); }\n get ResourceURLCount(): number { return this.get(\"ResourceURLCount\", 0); }\n get ResourceURLs(): WsWorkunits.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.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 Query(): WsWorkunits.Query { return this.get(\"Query\"); }\n get HelpersCount(): number { return this.get(\"HelpersCount\", 0); }\n get Helpers(): WsWorkunits.Helpers { return this.get(\"Helpers\", { ECLHelpFile: [] }); }\n get DebugValues(): WsWorkunits.DebugValues { return this.get(\"DebugValues\"); }\n get AllowedClusters(): WsWorkunits.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.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.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.Workflows { return this.get(\"Workflows\"); }\n get TimingData(): WsWorkunits.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(\"SourceFilesDesc\"); }\n get ResultsDesc(): string { return this.get(\"ResultsDesc\"); }\n get VariablesDesc(): string { return this.get(\"VariablesDesc\"); }\n get TimersDesc(): string { return this.get(\"TimersDesc\"); }\n get DebugValuesDesc(): string { return this.get(\"DebugValuesDesc\"); }\n get ApplicationValuesDesc(): string { return this.get(\"ApplicationValuesDesc\"); }\n get WorkflowsDesc(): string { return this.get(\"WorkflowsDesc\"); }\n get ServiceNames(): WsWorkunits.ServiceNames { return this.get(\"ServiceNames\"); }\n get CompileCost(): number { return this.get(\"CompileCost\"); }\n get ExecuteCost(): number { return this.get(\"ExecuteCost\"); }\n get FileAccessCost(): number { return this.get(\"FileAccessCost\"); }\n get NoAccess(): boolean { return this.get(\"NoAccess\"); }\n get ECLWUProcessList(): WsWorkunits.ECLWUProcessList { return this.get(\"ECLWUProcessList\"); }\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, compileOnly = false): Promise<Workunit> {\n return Workunit.create(server).then((wu) => {\n return wu.update({ QueryText: ecl });\n }).then((wu) => {\n return compileOnly ? wu.submit(target, WUUpdate.Action.Compile) : wu.submit(target);\n });\n }\n\n static compile(server: IOptions | IConnection, target: string, ecl: string): Promise<Workunit> {\n return Workunit.submit(server, target, ecl, true);\n }\n\n static query(server: IOptions | IConnection, opts: Partial<WsWorkunits.WUQuery>): Promise<Workunit[]> {\n const wsWorkunits = new 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 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>): Promise<Workunit> {\n return this.connection.WUUpdate({\n ...request,\n ...{\n Wuid: this.Wuid,\n StateOrig: this.StateID,\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: WUUpdate.Action = 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 === WUUpdate.Action.Debug) {\n action = 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 === 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(WsWorkunits.ECLWUActions.SetToFailed);\n }\n\n pause() {\n return this.WUAction(WsWorkunits.ECLWUActions.Pause);\n }\n\n pauseNow() {\n return this.WUAction(WsWorkunits.ECLWUActions.PauseNow);\n }\n\n resume() {\n return this.WUAction(WsWorkunits.ECLWUActions.Resume);\n }\n\n abort() {\n return this.WUAction(WsWorkunits.ECLWUActions.Abort);\n }\n\n protect() {\n return this.WUAction(WsWorkunits.ECLWUActions.Protect);\n }\n\n unprotect() {\n return this.WUAction(WsWorkunits.ECLWUActions.Unprotect);\n }\n\n delete() {\n return this.WUAction(WsWorkunits.ECLWUActions.Delete);\n }\n\n restore() {\n return this.WUAction(WsWorkunits.ECLWUActions.Restore);\n }\n\n deschedule() {\n return this.WUAction(WsWorkunits.ECLWUActions.Deschedule);\n }\n\n reschedule() {\n return this.WUAction(WsWorkunits.ECLWUActions.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.opts(), response.WUs.WU[0].WUID)\n .refresh()\n ;\n });\n }\n\n async refreshState(): Promise<this> {\n await this.WUQuery();\n // Ensure \"isComplete\" is correct for WUs that are only \"Compiled\".\n if (this.StateID === WUStateID.Compiled && !this.ActionEx && !this._submitAction) {\n await this.refreshInfo();\n }\n return this;\n }\n\n async refreshInfo(request?: Partial<WsWorkunits.WUInfo>): Promise<this> {\n await this.WUInfo(request);\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, request?: Partial<WsWorkunits.WUInfo>): Promise<this> {\n if (full) {\n await Promise.all([this.refreshInfo(request), this.refreshDebug()]);\n } else {\n await this.refreshState();\n }\n return this;\n }\n\n eclExceptions(): WsWorkunits.ECLException[] {\n return this.Exceptions.ECLException;\n }\n\n fetchArchive(): Promise<string> {\n return this.connection.WUFileEx({\n Wuid: this.Wuid,\n Type: \"ArchiveQuery\"\n });\n }\n\n fetchECLExceptions(): Promise<WsWorkunits.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 fetchQuery(): Promise<WsWorkunits.Query> {\n return this.WUInfo({ IncludeECL: true, TruncateEclTo64k: false }).then(() => {\n return this.Query;\n });\n }\n\n fetchHelpers(): Promise<WsWorkunits.ECLHelpFile[]> {\n return this.WUInfo({ IncludeHelpers: true }).then(() => {\n return this.Helpers?.ECLHelpFile || [];\n });\n }\n\n fetchAllowedClusters(): Promise<string[]> {\n return this.WUInfo({ IncludeAllowedClusters: true }).then(() => {\n return this.AllowedClusters?.AllowedCluster || [];\n });\n }\n\n fetchTotalClusterTime(): Promise<string> {\n return this.WUInfo({ IncludeTotalClusterTime: true }).then(() => {\n return this.TotalClusterTime;\n });\n }\n\n fetchServiceNames(): Promise<string[]> {\n return this.WUInfo({ IncludeServiceNames: true }).then(() => {\n return this.ServiceNames?.Item;\n });\n }\n\n fetchDetailsMeta(request: RecursivePartial<WsWorkunits.WUDetailsMeta> = {}): Promise<WsWorkunits.WUDetailsMetaResponse> {\n return this.WUDetailsMeta(request);\n }\n\n fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<WsWorkunits.Scope[]> {\n return this.WUDetails(request).then(response => response.Scopes.Scope);\n }\n\n normalizeDetails(meta: WsWorkunits.WUDetailsMetaResponse, scopes: WsWorkunits.Scope[]): { meta: WsWorkunits.WUDetailsMetaResponse, columns: { [id: string]: any }, data: IScope[] } {\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 activityMap = new Map<number, string>();\n for (const activity of meta.Activities?.Activity ?? []) {\n activityMap.set(activity.Kind, activity.Name);\n }\n const data: IScope[] = new Array(scopes.length);\n for (let i = 0; i < scopes.length; i++) {\n const scope = scopes[i];\n const props: { [key: string]: any } = {};\n const formattedProps: { [key: string]: any } = {};\n if (scope.Id && scope.Properties?.Property) {\n for (const scopeProperty of scope.Properties.Property) {\n const measure = scopeProperty.Measure;\n const name = scopeProperty.Name;\n const rawValue = scopeProperty.RawValue;\n if (measure === \"ns\") {\n scopeProperty.Measure = \"s\";\n }\n if (name === \"Kind\") {\n const rawValueInt = parseInt(rawValue, 10);\n scopeProperty.Formatted = activityMap.get(rawValueInt) ?? rawValue;\n }\n columns[name] = {\n Name: scopeProperty.Name,\n Measure: scopeProperty.Measure,\n Creator: scopeProperty.Creator,\n CreatorType: scopeProperty.CreatorType\n };\n switch (scopeProperty.Measure) {\n case \"bool\":\n props[name] = !!+rawValue;\n break;\n case \"sz\":\n props[name] = +rawValue;\n break;\n case \"s\":\n props[name] = +rawValue / 1000000000;\n break;\n case \"ns\":\n props[name] = +rawValue;\n break;\n case \"ts\":\n props[name] = new Date(+rawValue / 1000).toISOString();\n break;\n case \"cnt\":\n props[name] = +rawValue;\n break;\n case \"cost\":\n props[name] = +rawValue / 1000000;\n break;\n case \"node\":\n props[name] = +rawValue;\n break;\n case \"skw\":\n props[name] = +rawValue;\n break;\n case \"cpu\":\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[name] = rawValue;\n }\n formattedProps[name] = formatNum(scopeProperty.Formatted ?? props[name]);\n }\n }\n const normalizedScope: IScope = {\n id: scope.Id,\n name: scope.ScopeName,\n type: scope.ScopeType,\n Kind: scope[\"Kind\"],\n Label: scope[\"Label\"],\n __formattedProps: formattedProps,\n __groupedProps: {},\n __groupedRawProps: {},\n __StdDevs: 0,\n __StdDevsSource: \"\",\n ...props\n };\n const definitionList = normalizedScope[DEFINITION_LIST];\n if (definitionList) {\n try {\n const parsedList = JSON.parse(definitionList.split(\"\\\\\").join(\"\\\\\\\\\"));\n const processedDefinitions: Array<{ filePath: string, line: number, col: number }> = [];\n\n for (let k = 0; k < parsedList.length; k++) {\n const matches = parsedList[k].match(definitionRegex);\n if (matches) {\n processedDefinitions.push({\n filePath: (matches[1] ?? \"\") + matches[2] + matches[3],\n line: parseInt(matches[5], 10),\n col: parseInt(matches[6], 10)\n });\n }\n }\n normalizedScope[DEFINITION_LIST] = processedDefinitions;\n } catch (e) {\n logger.error(`Unexpected \"DefinitionList\": ${definitionList}`);\n }\n }\n\n const dedup: DedupProperties = {};\n let maxStdDevs = 0;\n let maxStdDevsSource = \"\";\n for (const key in normalizedScope) {\n if (!key.startsWith(\"__\")) {\n const row = formatValues(normalizedScope, key, dedup);\n if (row) {\n normalizedScope.__groupedProps[row.Key] = row;\n if (!isNaN(row.StdDevs) && row.StdDevs > maxStdDevs) {\n maxStdDevs = row.StdDevs;\n maxStdDevsSource = row.Key;\n }\n }\n }\n }\n normalizedScope.__StdDevs = maxStdDevs;\n normalizedScope.__StdDevsSource = maxStdDevsSource;\n\n data[i] = normalizedScope;\n }\n return {\n meta,\n columns,\n data\n };\n }\n\n fetchDetailsNormalized(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<{ meta: WsWorkunits.WUDetailsMetaResponse, columns: { [id: string]: any }, data: IScope[] }> {\n return Promise.all([this.fetchDetailsMeta(), this.fetchDetailsRaw(request)]).then(promises => {\n return this.normalizeDetails(promises[0], promises[1]);\n });\n }\n\n fetchInfo(request: Partial<WsWorkunits.WUInfo> = {}): Promise<WsWorkunits.WUInfoResponse> {\n return this.WUInfo(request);\n }\n\n fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails> = {}): 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> = {}): 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\", \"function\"]\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 _monitorTimeoutDuration(): number {\n const retVal = super._monitorTimeoutDuration();\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> = {}): Promise<WsWorkunits.WUQueryResponse> {\n return this.connection.WUQuery({ ..._request, Wuid: this.Wuid }).then((response) => {\n if (response.Workunits.ECLWorkunit.length === 0) {\n // deleted ---\n this.clearState(this.Wuid);\n this.set(\"StateID\", WUStateID.NotFound);\n } else {\n this.set(response.Workunits.ECLWorkunit[0]);\n }\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 ESP exception: ${e.message}`);\n throw e;\n }\n return {} as WsWorkunits.WUQueryResponse;\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> = {}): Promise<WsWorkunits.WUInfoResponse> {\n const includeResults = _request.IncludeResults || _request.IncludeResultsViewNames;\n return this.connection.WUInfo({\n ..._request,\n 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 ESP exception: ${e.message}`);\n throw e;\n }\n return {} as WsWorkunits.WUInfoResponse;\n });\n }\n\n protected WUResubmit(request: Partial<WsWorkunits.WUResubmit>): Promise<WsWorkunits.WUResubmitResponse> {\n return this.connection.WUResubmit(deepMixinT<WsWorkunits.WUResubmit>({}, request, {\n Wuids: { Item: [this.Wuid] }\n }));\n }\n\n protected WUDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta>): Promise<WsWorkunits.WUDetailsMetaResponse> {\n return this.connection.WUDetailsMeta(request);\n }\n\n protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>): Promise<WsWorkunits.WUDetailsResponse> {\n return this.connection.WUDetails(deepMixinT<WsWorkunits.WUDetails>({\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.WUDetailsResponse>({\n Scopes: {\n Scope: []\n }\n }, response);\n });\n }\n\n protected WUAction(actionType: WsWorkunits.ECLWUActions): Promise<WsWorkunits.WUActionResponse> {\n return this.connection.WUAction({\n Wuids: { Item: [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: WsWorkunits.WUQueryActivationMode.ActivateQuery,\n Wait: 5000\n });\n }\n\n publishEx(request: Partial<WsWorkunits.WUPublishWorkunit>) {\n const service = new WorkunitsServiceEx({ baseUrl: \"\" });\n const publishRequest = {\n Wuid: this.Wuid,\n Cluster: this.Cluster,\n JobName: this.Jobname,\n AllowForeignFiles: true,\n Activate: 1,\n Wait: 5000,\n ...request\n };\n return service.WUPublishWorkunitEx(publishRequest);\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.WUCDebugEx({\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(/\\/\\.\\//g, \"/\");\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 { Cache, Edge, Graph, StateObject, StringAnyMap, Subgraph, Vertex, XMLNode } from \"@hpcc-js/util\";\nimport { WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { BaseScope } from \"./scope.ts\";\nimport { Timer } from \"./timer.ts\";\nimport { Workunit } from \"./workunit.ts\";\n\nexport interface ECLGraphEx extends WsWorkunits.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: WsWorkunits.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<WsWorkunits.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 const vertices: { [scopeName: string]: ScopeVertex } = {};\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.warn(`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.warn(`Missing A:Parent (${scope.Id}): ${scope.parentScope()}`);\n } else {\n vertices[scope.ScopeName] = scopeParent2.createVertex(scope);\n }\n break;\n case \"edge\":\n edges[scope.ScopeName] = scope;\n break;\n case \"function\":\n const scopeParent3 = vertices[scope.parentScope()];\n if (!scopeParent3) {\n console.warn(`Missing F:Parent (${scope.Id}): ${scope.parentScope()}`);\n } else {\n scopeParent3._.children().push(scope);\n }\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.warn(`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.warn(`Invalid Edge: ${id}`);\n }\n }\n }\n return graph!;\n}\n", "import { StateObject } from \"@hpcc-js/util\";\nimport { Workunit } from \"./workunit.ts\";\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 { Cache, exists, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsDfu } from \"../services/wsDFU.ts\";\nimport { isECLResult, WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { parseXSD, XSDSchema, XSDXMLNode } from \"./xsdParser.ts\";\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 type ResultFilter = { [key: string]: string | number };\n\nexport interface ECLResultEx extends WsWorkunits.ECLResult {\n Wuid: string;\n ResultName?: string;\n ResultSequence?: number;\n LogicalFileName?: string;\n NodeGroup?: string;\n ResultViews: string[];\n}\n\nexport interface WUResultResponseEx {\n\n Exceptions: WsWorkunits.Exceptions;\n Wuid: string;\n Sequence: WsWorkunits.int;\n LogicalName: string;\n Cluster: string;\n Name: string;\n Start: WsWorkunits.long;\n Requested: WsWorkunits.int;\n Count: WsWorkunits.int;\n Total: WsWorkunits.long;\n Result: { [key: string]: any[] } & {\n XmlSchema?: {\n xml: string;\n };\n };\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 protected _bypassCache: boolean = false;\n get BaseUrl() { return this.connection.baseUrl; }\n protected xsdSchema: XSDSchema;\n\n get properties(): WsWorkunits.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(): WsWorkunits.ECLSchemas { return this.get(\"ECLSchemas\"); }\n get NodeGroup(): string { return this.get(\"NodeGroup\"); }\n get ResultViews(): string[] { return this.get(\"ResultViews\"); }\n get XmlSchema(): string { return this.get(\"XmlSchema\"); }\n\n static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name: string);\n static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, sequence: number);\n static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WsWorkunits.ECLResult, resultViews: string[]);\n static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name_sequence_eclResult?: string | number | WsWorkunits.ECLResult, resultViews?: string[]): Result {\n let retVal: Result;\n if (Array.isArray(resultViews)) {\n retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: (name_sequence_eclResult as WsWorkunits.ECLResult).Name }, () => {\n return new Result(optsConnection, wuid, name_sequence_eclResult as WsWorkunits.ECLResult, resultViews);\n });\n retVal.set(name_sequence_eclResult as any);\n } else if (typeof resultViews === \"undefined\") {\n if (typeof name_sequence_eclResult === \"number\") {\n retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: \"Sequence_\" + name_sequence_eclResult }, () => {\n return new Result(optsConnection, wuid, name_sequence_eclResult);\n });\n } else if (typeof name_sequence_eclResult === \"string\") {\n retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: name_sequence_eclResult }, () => {\n return new Result(optsConnection, wuid, name_sequence_eclResult);\n });\n }\n }\n return retVal;\n }\n\n static attachLogicalFile(optsConnection: IOptions | IConnection | WorkunitsService, nodeGroup: string, logicalFile: string) {\n return _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: nodeGroup, ResultName: logicalFile }, () => {\n return new Result(optsConnection, nodeGroup, logicalFile, true);\n });\n }\n\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name: string);\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, sequence: number);\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WsWorkunits.ECLResult, resultViews: string[]);\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, nodeGroup: string, logicalFile: string, isLogicalFiles: boolean);\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid_NodeGroup: string, name_sequence_eclResult_logicalFile?: string | number | WsWorkunits.ECLResult, resultViews_isLogicalFile?: any[] | boolean) {\n super();\n if (optsConnection instanceof WorkunitsService) {\n this.connection = optsConnection;\n } else {\n this.connection = new WorkunitsService(optsConnection);\n }\n\n if (typeof resultViews_isLogicalFile === \"boolean\" && resultViews_isLogicalFile === true) {\n this.set({\n NodeGroup: wuid_NodeGroup,\n LogicalFileName: name_sequence_eclResult_logicalFile\n } as ECLResultEx);\n } else if (isECLResult(name_sequence_eclResult_logicalFile) && Array.isArray(resultViews_isLogicalFile)) {\n this.set({\n ...name_sequence_eclResult_logicalFile,\n Wuid: wuid_NodeGroup,\n ResultName: name_sequence_eclResult_logicalFile.Name,\n ResultViews: resultViews_isLogicalFile\n } as ECLResultEx);\n } else if (typeof resultViews_isLogicalFile === \"undefined\") {\n if (typeof name_sequence_eclResult_logicalFile === \"number\") {\n this.set({\n Wuid: wuid_NodeGroup,\n ResultSequence: name_sequence_eclResult_logicalFile\n } as ECLResultEx);\n } else if (typeof name_sequence_eclResult_logicalFile === \"string\") {\n this.set({\n Wuid: wuid_NodeGroup,\n ResultName: name_sequence_eclResult_logicalFile\n } as ECLResultEx);\n } else {\n console.warn(\"Unknown Result.attach (1)\");\n }\n } else {\n console.warn(\"Unknown Result.attach (2)\");\n }\n }\n\n isComplete() {\n return this.Total !== -1;\n }\n\n bypassCache(bypass?: boolean): boolean | this {\n if (bypass === undefined) return this._bypassCache;\n this._bypassCache = bypass;\n return this;\n }\n\n private _fetchXMLSchemaPromise: Promise<XSDSchema | null>;\n fetchXMLSchema(refresh = false): Promise<XSDSchema | null> {\n if (!this._fetchXMLSchemaPromise || refresh) {\n this._fetchXMLSchemaPromise = this.WUResult().then(response => {\n if (response.Result?.XmlSchema?.xml) {\n this.xsdSchema = parseXSD(response.Result.XmlSchema.xml);\n return this.xsdSchema;\n }\n return null;\n });\n }\n return this._fetchXMLSchemaPromise;\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: ResultFilter = {}, abortSignal?: AbortSignal, bypassCache?: boolean): Promise<any[]> {\n const shouldBypassCache = bypassCache ?? this._bypassCache;\n return this.WUResult(from, count, !includeSchema, filter, abortSignal, shouldBypassCache).then((response) => {\n const result: any = 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 } = {}, abortSignal?: AbortSignal, bypassCache: boolean = false): Promise<WUResultResponseEx> {\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: Partial<WsWorkunits.WUResult> = { FilterBy } as any;\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 request.BypassCachedResult = bypassCache;\n return this.connection.WUResult(request, abortSignal).then((response: unknown) => {\n return response as WUResultResponseEx;\n });\n }\n}\n\nexport class ResultCache extends Cache<WsWorkunits.ECLResult, Result> {\n constructor() {\n super((obj) => {\n return Cache.hash([obj.Sequence, obj.Name, obj.Value, obj.FileName]);\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 isSet = false;\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 const setOfType = this.setOfType();\n if (setOfType) {\n this.type = setOfType;\n this.isSet = true;\n this._children = [];\n }\n }\n\n children(): XSDXMLNode[] {\n return this._children;\n }\n\n private isAll(node: XSDXMLNode) {\n return node.name === \"All\" && node.type === undefined;\n }\n\n private setOfType(): string {\n const children = this.children();\n if (this.type === undefined && children.length === 2) {\n if (this.isAll(children[0])) {\n return children[1].type;\n } else if (this.isAll(children[1])) {\n return children[0].type;\n }\n }\n return undefined;\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 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 { StateObject, StringAnyMap } from \"@hpcc-js/util\";\nimport { WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { Workunit } from \"./workunit.ts\";\n\nexport interface AttributeEx extends WsWorkunits.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: WsWorkunits.Property) {\n super();\n this.scope = scope;\n this.set(attribute);\n }\n}\n\nexport interface ScopeEx extends WsWorkunits.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(): WsWorkunits.Properties { return this.get(\"Properties\", { Property: [] }); }\n get Notes(): WsWorkunits.Notes { return this.get(\"Notes\", { Note: [] }); }\n get SinkActivity(): string { return this.get(\"SinkActivity\"); }\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: WsWorkunits.Scope) {\n super();\n this.update(scope);\n }\n\n update(scope: WsWorkunits.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: WsWorkunits.Scope) {\n super(scope);\n this.wu = wu;\n }\n}\n", "import { StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\n\nexport interface ECLSourceFileEx extends WsWorkunits.ECLSourceFile {\n Wuid: string;\n}\n\nexport class SourceFile extends StateObject<ECLSourceFileEx, ECLSourceFileEx> implements ECLSourceFileEx {\n protected connection: WorkunitsService;\n\n get properties(): WsWorkunits.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(): WsWorkunits.ECLSourceFiles { return this.get(\"ECLSourceFiles\"); }\n\n constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclSourceFile: WsWorkunits.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.ts\";\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\n\nexport interface ECLTimerEx extends WsWorkunits.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(): WsWorkunits.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 get Timestamp(): number { return this.get(\"Timestamp\"); }\n get When(): string { return this.get(\"When\"); }\n\n constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclTimer: WsWorkunits.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, scopedLogger, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { DFUService, WsDfu } from \"../services/wsDFU.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\n\nconst logger = scopedLogger(\"logicalFile.ts\");\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 DFUPartEx extends WsDfu.DFUPart {\n // From WsDfu.DFUFilePartsOnCluster ---\n Cluster: string;\n BaseDir: string;\n ReplicateDir: string;\n Replicate: boolean;\n CanReplicate: boolean;\n}\n\nexport interface FileDetailEx extends WsDfu.FileDetail {\n Cluster: string;\n StateID?: number;\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(): WsDfu.base64Binary { 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 get IsRestricted(): boolean { return this.get(\"IsRestricted\"); }\n get AtRestCost(): number { return this.get(\"AtRestCost\"); }\n get AccessCost(): number { return this.get(\"AccessCost\"); }\n get StateID(): number { return this.get(\"StateID\"); }\n get ExpirationDate(): string { return this.get(\"ExpirationDate\"); }\n get ExtendedIndexInfo(): WsDfu.ExtendedIndexInfo { return this.get(\"ExtendedIndexInfo\"); }\n get CompressionType(): string { return this.get(\"CompressionType\"); }\n\n get properties(): FileDetailEx { return this.get(); }\n\n static attach(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string, state?: FileDetailEx): LogicalFile {\n const retVal: LogicalFile = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster, Name }, () => {\n return new LogicalFile(optsConnection, Cluster, Name);\n });\n if (state) {\n retVal.set(state);\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 filePartsOnCluster() {\n return [...(this.DFUFilePartsOnClusters?.DFUFilePartsOnCluster || [])];\n }\n\n fileParts() {\n const retVal: DFUPartEx[] = [];\n for (const poc of this.DFUFilePartsOnClusters?.DFUFilePartsOnCluster || []) {\n for (const part of poc?.DFUFileParts?.DFUPart || []) {\n const row = { ...poc, ...part };\n delete row.DFUFileParts;\n retVal.push(row);\n }\n }\n return retVal;\n }\n\n update(request: Partial<WsDfu.DFUInfoRequest>): Promise<WsDfu.DFUInfoResponse> {\n return this.connection.DFUInfo({\n ...request,\n ...{\n Cluster: this.Cluster,\n Name: this.Name\n }\n }).then((response) => {\n this.set({\n Cluster: this.Cluster,\n ...response.FileDetail\n });\n return response;\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 ProtectList: response?.FileDetail?.ProtectList ?? { DFUFileProtect: [] }\n });\n return response.FileDetail;\n }).catch((e: ESPExceptions) => {\n // deleted ---\n const fileMissing = e.Exception.some((exception) => {\n if (exception.Code === 20038) {\n this.set(\"Name\", this.Name + \" (Deleted)\");\n this.set(\"StateID\", 999);\n return true;\n }\n return false;\n });\n if (!fileMissing) {\n logger.warning(`Unexpected ESP exception: ${e.message}`);\n throw e;\n }\n return {} as FileDetailEx;\n });\n }\n\n fetchDefFile(format: WsDfu.DFUDefFileFormat): Promise<string> {\n return this.connection.DFUFile({ Name: this.Name, Format: format });\n }\n\n fetchAllLogicalFiles(): Promise<string[]> {\n return this.connection.recursiveFetchLogicalFiles([this]);\n }\n\n fetchListHistory(): Promise<WsDfu.Origin[]> {\n return this.connection.ListHistory({ Name: this.Name }).then(response => {\n return response?.History?.Origin || [];\n });\n }\n\n eraseHistory(): Promise<WsDfu.Origin[]> {\n return this.connection.EraseHistory({ Name: this.Name }).then(response => {\n return response?.History?.Origin || [];\n });\n }\n}\n", "import { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsMachine, MachineService } from \"../services/wsMachine.ts\";\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 WsMachine.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 Channels(): number { return this.get(\"Channels\"); }\n get Processors(): WsMachine.Processors { return this.get(\"Processors\"); }\n get Storage(): WsMachine.Storage { return this.get(\"Storage\"); }\n get Running(): WsMachine.Running { return this.get(\"Running\"); }\n get PhysicalMemory(): WsMachine.PhysicalMemory { return this.get(\"PhysicalMemory\"); }\n get VirtualMemory(): WsMachine.VirtualMemory { return this.get(\"VirtualMemory\"); }\n get ComponentInfo(): WsMachine.ComponentInfo { return this.get(\"ComponentInfo\"); }\n get Exception(): string { return this.get(\"Exception\"); }\n\n static attach(optsConnection: IOptions | IConnection | MachineService, address: string, state?: WsMachine.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, scopedLogger, RecursivePartial } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { EclService, IWsEclRequest, IWsEclResponse, IWsEclResult } from \"../services/wsEcl.ts\";\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { Topology } from \"./topology.ts\";\nimport { Workunit, IScope } from \"./workunit.ts\";\nimport { QueryGraph } from \"./queryGraph.ts\";\n\nexport { QueryGraph };\n\nconst logger = scopedLogger(\"@hpcc-js/comms/ecl/query.ts\");\n\nconst siFormatter = d3Format(\"~s\");\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && !isNaN(n - 0);\n}\nexport interface QueryEx extends WsWorkunits.WUQueryDetailsResponse {\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 wsWorkunitsService: WorkunitsService;\n get BaseUrl() { return this.wsWorkunitsService.baseUrl; }\n protected topology: Topology;\n protected _requestSchema: IWsEclRequest;\n protected _responseSchema: IWsEclResponse;\n\n get properties(): WsWorkunits.WUQueryDetailsResponse { return this.get(); }\n get Exceptions(): WsWorkunits.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(): WsWorkunits.Clusters2 { return this.get(\"Clusters\"); }\n get PublishedBy(): string { return this.get(\"PublishedBy\"); }\n get Comment() { return this.get(\"Comment\"); }\n get LogicalFiles(): WsWorkunits.LogicalFiles { return this.get(\"LogicalFiles\"); }\n get SuperFiles(): WsWorkunits.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(): WsWorkunits.LibrariesUsed { return this.get(\"LibrariesUsed\"); }\n get CountGraphs(): number { return this.get(\"CountGraphs\"); }\n get ResourceURLCount(): number { return this.get(\"ResourceURLCount\"); }\n get WsEclAddresses(): WsWorkunits.WsEclAddresses { return this.get(\"WsEclAddresses\"); }\n get WUGraphs(): WsWorkunits.WUGraphs { return this.get(\"WUGraphs\"); }\n get WUTimers(): WsWorkunits.WUTimers { return this.get(\"WUTimers\"); }\n get PriorityID(): number { return this.get(\"PriorityID\"); }\n\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, querySet: string, queryID: string, queryDetails?: WsWorkunits.WUQueryDetailsResponse) {\n super();\n if (optsConnection instanceof WorkunitsService) {\n this.wsWorkunitsService = optsConnection;\n } else {\n this.wsWorkunitsService = new WorkunitsService(optsConnection);\n }\n this.topology = Topology.attach(this.wsWorkunitsService.opts());\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, state?: QueryEx): 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 if (state) {\n retVal.set(state);\n }\n return retVal;\n }\n\n private _eclService: Promise<EclService>;\n protected async wsEclService(): Promise<EclService | undefined> {\n if (!this._eclService) {\n this._eclService = this.topology.fetchServices({}).then(services => {\n for (const espServer of services?.TpEspServers?.TpEspServer ?? []) {\n for (const binding of espServer?.TpBindings?.TpBinding ?? []) {\n if (binding?.Service === \"ws_ecl\") {\n const baseUrl = `${binding.Protocol}://${globalThis.location.hostname}:${binding.Port}`;\n return new EclService({ baseUrl });\n }\n }\n }\n return undefined;\n });\n }\n return this._eclService;\n }\n\n private async fetchDetails(): Promise<void> {\n const queryDetails = await this.wsWorkunitsService.WUQueryDetails({\n QuerySet: this.QuerySet,\n QueryId: this.QueryId,\n IncludeStateOnClusters: true,\n IncludeSuperFiles: true,\n IncludeWsEclAddresses: true,\n CheckAllNodes: false\n });\n this.set({ ...queryDetails } as QueryEx);\n }\n\n private async fetchRequestSchema(): Promise<void> {\n const wsEclService = await this.wsEclService();\n try {\n this._requestSchema = await wsEclService?.requestJson(this.QuerySet, this.QueryId) ?? [];\n } catch (e: any) {\n // See: https://track.hpccsystems.com/browse/HPCC-29827\n logger.debug(e.message ?? e);\n this._requestSchema = [];\n }\n }\n\n private async fetchResponseSchema(): Promise<void> {\n const wsEclService = await this.wsEclService();\n try {\n this._responseSchema = await wsEclService?.responseJson(this.QuerySet, this.QueryId) ?? {};\n } catch (e: any) {\n // See: https://track.hpccsystems.com/browse/HPCC-29827\n logger.debug(e.message ?? e);\n this._responseSchema = {};\n }\n }\n\n private async fetchSchema(): Promise<void> {\n await Promise.all([this.fetchRequestSchema(), this.fetchResponseSchema()]);\n }\n\n fetchSummaryStats() {\n return this.wsWorkunitsService.WUQueryGetSummaryStats({ Target: this.QuerySet, QueryId: this.QueryId });\n }\n\n fetchGraph(GraphName: string = \"\", SubGraphId: string = \"\"): Promise<QueryGraph> {\n return this.wsWorkunitsService.WUQueryGetGraph({ Target: this.QuerySet, QueryId: this.QueryId, GraphName, SubGraphId }).then(response => {\n const graph = new QueryGraph();\n let first = true;\n for (const graphItem of response?.Graphs?.ECLGraphEx || []) {\n if (first) {\n graph.load(graphItem.Graph);\n first = false;\n } else {\n graph.merge(graphItem.Graph);\n }\n }\n return graph;\n });\n }\n\n fetchDetailsNormalized(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<{ meta: WsWorkunits.WUDetailsMetaResponse | undefined, columns: { [id: string]: any } | undefined, data: IScope[] | undefined }> {\n const wu = Workunit.attach(this.wsWorkunitsService, this.Wuid);\n if (wu) {\n return Promise.all([this.fetchGraph(), wu.fetchDetailsMeta(), wu.fetchDetailsRaw(request)]).then(promises => {\n const graph = promises[0];\n const meta = promises[1];\n const metrics: WsWorkunits.Scope[] = promises[2];\n const data = metrics.map(metric => {\n const firstChar = metric.Id[0];\n if (firstChar === \"a\" || firstChar === \"e\") {\n const item = graph.idx[metric.Id.substring(1)];\n if (!item) {\n logger.debug(`Missing graph data for metric ID: ${metric.Id}`);\n return metric;\n }\n const existingProperties = new Set(metric.Properties.Property.map(prop => prop.Name));\n const newProperties: WsWorkunits.Property[] = [];\n for (const key in item) {\n const firstCharOfKey = key.charAt(0);\n if (firstCharOfKey !== \"_\" &&\n firstCharOfKey === firstCharOfKey.toUpperCase() &&\n !existingProperties.has(key)) {\n const value = item[key];\n const valueType = typeof value;\n if (valueType === \"string\" || valueType === \"number\" || valueType === \"boolean\") {\n const isNum = isNumber(value);\n let rawValue = isNum ? parseFloat(value as string) : value;\n let formatted = value;\n if (key.indexOf(\"Time\") >= 0) {\n rawValue = (rawValue as number) / 1000000000;\n formatted = siFormatter(rawValue) + \"s\";\n }\n newProperties.push({\n Name: key,\n RawValue: rawValue as any,\n Formatted: formatted\n } as WsWorkunits.Property);\n }\n }\n }\n if (newProperties.length > 0) {\n metric.Properties.Property.push(...newProperties);\n }\n }\n return metric;\n });\n return wu.normalizeDetails(meta, data);\n });\n }\n return Promise.resolve({ meta: undefined, columns: undefined, data: undefined });\n }\n\n async submit(request: object): Promise<Array<{ [key: string]: object[] }>> {\n const wsEclService = await this.wsEclService();\n try {\n return wsEclService?.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 } catch (e: any) {\n // See: https://track.hpccsystems.com/browse/HPCC-29827\n logger.debug(e.message ?? e);\n return [];\n }\n }\n\n async refresh(): Promise<this> {\n await Promise.all([\n this.fetchDetails(),\n this.fetchSchema()\n ]);\n return 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", "import { Cache, exists, StateCallback, StateEvents, StateObject, StatePropCallback } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { TopologyService, WsTopology } from \"../services/wsTopology.ts\";\nimport { TargetCluster } from \"./targetCluster.ts\";\n\nexport class TopologyCache extends Cache<{ BaseUrl: string }, Topology> {\n constructor() {\n super((obj) => {\n return obj.BaseUrl;\n });\n }\n}\nconst _topology = new TopologyCache();\n\nexport interface TopologyStateEx {\n TargetClusters?: WsTopology.TpTargetCluster[];\n LogicalClusters?: WsTopology.TpLogicalCluster[];\n Services?: WsTopology.ServiceList;\n}\nexport class Topology extends StateObject<TopologyStateEx, TopologyStateEx> implements TopologyStateEx {\n protected connection: TopologyService;\n get BaseUrl() { return this.connection.baseUrl; }\n\n // Accessors ---\n get properties(): TopologyStateEx { return this.get(); }\n get TargetClusters(): WsTopology.TpTargetCluster[] { return this.get(\"TargetClusters\"); }\n get CTargetClusters(): TargetCluster[] {\n return this.TargetClusters.map(tc => TargetCluster.attach(this.connection, tc.Name, tc));\n }\n get LogicalClusters(): WsTopology.TpLogicalCluster[] { return this.get(\"LogicalClusters\"); }\n get Services(): WsTopology.ServiceList { return this.get(\"Services\"); }\n\n static attach(optsConnection: IOptions | IConnection | TopologyService, state?: TopologyStateEx): Topology {\n const retVal: Topology = _topology.get({ BaseUrl: optsConnection.baseUrl }, () => {\n return new Topology(optsConnection);\n });\n if (state) {\n retVal.set(state);\n }\n return retVal;\n }\n\n protected 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 fetchLogicalClusters(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.TpLogicalCluster[]> {\n return this.connection.TpLogicalClusterQuery(request).then(response => {\n this.set({\n LogicalClusters: response.TpLogicalClusters.TpLogicalCluster\n });\n return this.LogicalClusters;\n });\n }\n\n fetchServices(request: WsTopology.TpServiceQueryRequest = {}): Promise<WsTopology.ServiceList> {\n return this.connection.TpServiceQuery(request).then(response => {\n this.set({\n Services: response.ServiceList\n });\n return this.Services;\n });\n }\n\n protected _prevRefresh;\n refresh(force: boolean = false): Promise<this> {\n if (!this._prevRefresh || force) {\n this._prevRefresh = Promise.all([this.fetchTargetClusters(), this.fetchLogicalClusters(), this.fetchServices()]).then(() => {\n return this;\n });\n }\n return this._prevRefresh;\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 { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsMachine, WsMachineEx, MachineService } from \"../services/wsMachine.ts\";\nimport { TopologyService, WsTopology } from \"../services/wsTopology.ts\";\nimport { Machine } from \"./machine.ts\";\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: WsMachine.MachineInfoEx[];\n}\n\nexport type UTargetClusterState = WsTopology.TpTargetCluster & WsTopology.TpClusterNameType & TpTargetClusterEx;\nexport type ITargetClusterState = WsTopology.TpTargetCluster | WsTopology.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(): WsTopology.TpClusters { return this.get(\"TpClusters\"); }\n get TpEclCCServers(): WsTopology.TpEclCCServers { return this.get(\"TpEclCCServers\"); }\n get TpEclServers(): WsTopology.TpEclServers { return this.get(\"TpEclServers\"); }\n get TpEclAgents(): WsTopology.TpEclAgents { return this.get(\"TpEclAgents\"); }\n get TpEclSchedulers(): WsTopology.TpEclSchedulers { return this.get(\"TpEclSchedulers\"); }\n get MachineInfoEx(): WsMachine.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(state);\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: WsMachine.GetTargetClusterInfoRequest = {}): Promise<Machine[]> {\n return this.machineConnection.GetTargetClusterInfo({\n TargetClusters: {\n Item: [`${this.Type}:${this.Name}`]\n },\n ...request\n }).then(response => {\n const retVal: WsMachine.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<WsMachineEx.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: WsTopology.TpClusterNameType;\n let defaultItem: WsTopology.TpClusterNameType;\n let hthorItem: WsTopology.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", "// Ported from: https://github.com/hpcc-systems/HPCC-Platform/blob/f0ed9dbeca49c39fb55aa28fec295c89407ac663/esp/src/src/ESPGraph.ts\n\nexport function safeAssign(obj: { [id: string]: any }, key: string, value: string) {\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") return;\n obj[key] = value;\n}\n\nfunction xmlEncode(str: string): string {\n str = \"\" + str;\n return str.replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\\n/g, \" \")\n .replace(/\\r/g, \" \")\n ;\n}\n\nfunction espTime2Seconds(duration?: string): number {\n if (!duration) {\n return 0;\n } else if (!isNaN(+duration)) {\n return parseFloat(duration);\n }\n const re = /(?:(?:(\\d+).days.)?(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+\\.\\d+|\\d+)s))|(?:(\\d+\\.\\d+|\\d+)ms|(\\d+\\.\\d+|\\d+)us|(\\d+\\.\\d+|\\d+)ns)/;\n const match = re.exec(duration);\n if (!match) return 0;\n const days = +match[1] || 0;\n const hours = +match[2] || 0;\n const mins = +match[3] || 0;\n const secs = +match[4] || 0;\n const ms = +match[5] || 0;\n const us = +match[6] || 0;\n const ns = +match[7] || 0;\n return (days * 24 * 60 * 60) + (hours * 60 * 60) + (mins * 60) + secs + ms / 1000 + us / 1000000 + ns / 1000000000;\n}\n\nfunction unitTest(size: string, unit: string) {\n const nsIndex = size.indexOf(unit);\n if (nsIndex !== -1) {\n return parseFloat(size.substring(0, nsIndex));\n }\n return -1;\n}\n\nfunction espSize2Bytes(size: string): number {\n if (!size) {\n return 0;\n } else if (!isNaN(+size)) {\n return parseFloat(size);\n }\n let retVal = unitTest(size, \"Kb\");\n if (retVal >= 0) {\n return retVal * 1024;\n }\n retVal = unitTest(size, \"Mb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 2);\n }\n retVal = unitTest(size, \"Gb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 3);\n }\n retVal = unitTest(size, \"Tb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 4);\n }\n retVal = unitTest(size, \"Pb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 5);\n }\n retVal = unitTest(size, \"Eb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 6);\n }\n retVal = unitTest(size, \"Zb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 7);\n }\n retVal = unitTest(size, \"b\");\n if (retVal >= 0) {\n return retVal;\n }\n return 0;\n}\n\nfunction espSkew2Number(skew: string): number {\n if (!skew) {\n return 0;\n }\n return parseFloat(skew);\n}\n\nenum GRAPH_TYPE {\n UNKNOWN = 0,\n GRAPH = 1,\n SUBGRAPH = 2,\n VERTEX = 3,\n EDGE = 4,\n LAST = 5\n}\n\nenum GRAPH_TYPE_STRING {\n UNKNOWN = \"Unknown\",\n GRAPH = \"Graph\",\n SUBGRAPH = \"Cluster\",\n VERTEX = \"Vertex\",\n EDGE = \"Edge\",\n LAST = \"Last\"\n}\n\nclass LocalisedXGMMLWriter {\n\n graph: QueryGraph;\n m_xgmml: string;\n m_visibleSubgraphs: { [id: string]: Subgraph };\n m_visibleVertices: { [id: string]: Vertex };\n m_semiVisibleVertices: { [id: string]: Vertex };\n m_visibleEdges: { [id: string]: Edge };\n noSpills: boolean;\n\n constructor(graph: QueryGraph) {\n this.graph = graph;\n\n this.m_xgmml = \"\";\n this.m_visibleSubgraphs = {};\n this.m_visibleVertices = {};\n this.m_semiVisibleVertices = {};\n this.m_visibleEdges = {};\n }\n\n calcVisibility(items: GraphItem[], localisationDepth: number, localisationDistance: number, noSpills: boolean): void {\n this.noSpills = noSpills;\n items.forEach((item) => {\n if (this.graph.isVertex(item)) {\n this.calcInVertexVisibility(item, localisationDistance);\n this.calcOutVertexVisibility(item, localisationDistance);\n } else if (this.graph.isEdge(item)) {\n this.calcInVertexVisibility(item.getSource(), localisationDistance - 1);\n this.calcOutVertexVisibility(item.getTarget(), localisationDistance - 1);\n } else if (this.graph.isSubgraph(item)) {\n this.m_visibleSubgraphs[item.__hpcc_id] = item;\n this.calcSubgraphVisibility(item, localisationDepth - 1);\n }\n });\n this.calcVisibility2();\n }\n\n calcInVertexVisibility(vertex: Vertex, localisationDistance: number) {\n if (this.noSpills && vertex.isSpill()) {\n localisationDistance++;\n }\n this.m_visibleVertices[vertex.__hpcc_id] = vertex;\n if (localisationDistance > 0) {\n vertex.getInEdges().forEach(edge => {\n this.calcInVertexVisibility(edge.getSource(), localisationDistance - 1);\n });\n }\n }\n\n calcOutVertexVisibility(vertex: Vertex, localisationDistance: number): void {\n if (this.noSpills && vertex.isSpill()) {\n localisationDistance++;\n }\n this.m_visibleVertices[vertex.__hpcc_id] = vertex;\n if (localisationDistance > 0) {\n vertex.getOutEdges().forEach(edge => {\n this.calcOutVertexVisibility(edge.getTarget(), localisationDistance - 1);\n });\n }\n }\n\n calcSubgraphVisibility(subgraph: Subgraph, localisationDepth: number): void {\n if (localisationDepth < 0) {\n return;\n }\n\n if (localisationDepth > 0) {\n subgraph.__hpcc_subgraphs.forEach((subgraph, idx) => {\n this.calcSubgraphVisibility(subgraph, localisationDepth - 1);\n });\n }\n\n subgraph.__hpcc_subgraphs.forEach((subgraph, idx) => {\n this.m_visibleSubgraphs[subgraph.__hpcc_id] = subgraph;\n });\n subgraph.__hpcc_vertices.forEach((vertex, idx) => {\n this.m_visibleVertices[vertex.__hpcc_id] = vertex;\n });\n\n // Calculate edges that pass through the subgraph ---\n const dedupEdges = {};\n this.graph.edges.forEach((edge: Edge, idx: any) => {\n if (edge.getSource().__hpcc_parent !== edge.getTarget().__hpcc_parent && subgraph === this.getCommonAncestor(edge)) {\n // Only include one unique edge between subgraphs ---\n if (!dedupEdges[edge.getSource().__hpcc_parent.__hpcc_id + \"::\" + edge.getTarget().__hpcc_parent.__hpcc_id]) {\n dedupEdges[edge.getSource().__hpcc_parent.__hpcc_id + \"::\" + edge.getTarget().__hpcc_parent.__hpcc_id] = true;\n this.m_visibleEdges[edge.__hpcc_id] = edge;\n }\n }\n });\n }\n\n buildVertexString(vertex: Vertex, isPoint: boolean): string {\n let attrStr = \"\";\n let propsStr = \"\";\n const props = vertex.getProperties();\n for (const key in props) {\n if (isPoint && key.indexOf(\"_kind\") >= 0) {\n propsStr += \"<att name=\\\"_kind\\\" value=\\\"point\\\"/>\";\n } else if (key === \"id\" || key === \"label\") {\n attrStr += \" \" + key + \"=\\\"\" + xmlEncode(props[key]) + \"\\\"\";\n } else {\n propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\n }\n }\n return \"<node\" + attrStr + \">\" + propsStr + \"</node>\";\n }\n\n buildEdgeString(edge: Edge): string {\n let attrStr: string = \"\";\n let propsStr: string = \"\";\n const props = edge.getProperties();\n for (const key in props) {\n if (key.toLowerCase() === \"id\" ||\n key.toLowerCase() === \"label\" ||\n key.toLowerCase() === \"source\" ||\n key.toLowerCase() === \"target\") {\n attrStr += \" \" + key + \"=\\\"\" + xmlEncode(props[key]) + \"\\\"\";\n } else {\n propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\n }\n }\n return \"<edge\" + attrStr + \">\" + propsStr + \"</edge>\";\n }\n\n getAncestors(v: Vertex, ancestors: Subgraph[]): void {\n let parent = v.__hpcc_parent;\n while (parent) {\n ancestors.push(parent);\n parent = parent.__hpcc_parent;\n }\n }\n\n getCommonAncestorV(v1: Vertex, v2: Vertex): Subgraph | null {\n const v1_ancestors = [];\n const v2_ancestors = [];\n this.getAncestors(v1, v1_ancestors);\n this.getAncestors(v2, v2_ancestors);\n let finger1 = v1_ancestors.length - 1;\n let finger2 = v2_ancestors.length - 1;\n let retVal = null;\n while (finger1 >= 0 && finger2 >= 0 && v1_ancestors[finger1] === v2_ancestors[finger2]) {\n retVal = v1_ancestors[finger1];\n --finger1;\n --finger2;\n }\n return retVal;\n }\n\n getCommonAncestor(e: Edge): Subgraph | null {\n return this.getCommonAncestorV(e.getSource(), e.getTarget());\n }\n\n calcAncestorVisibility(vertex: Vertex): void {\n const ancestors = [];\n this.getAncestors(vertex, ancestors);\n ancestors.forEach((item, idx) => {\n this.m_visibleSubgraphs[item.__hpcc_id] = item;\n });\n }\n\n calcVisibility2(): void {\n for (const key in this.m_visibleVertices) {\n const vertex = this.m_visibleVertices[key];\n vertex.getInEdges().forEach((edge: Edge, idx: any) => {\n this.m_visibleEdges[edge.__hpcc_id] = edge;\n });\n vertex.getOutEdges().forEach((edge: Edge, idx: any) => {\n this.m_visibleEdges[edge.__hpcc_id] = edge;\n });\n this.calcAncestorVisibility(vertex);\n }\n this.calcSemiVisibleVertices();\n }\n\n addSemiVisibleEdge(edge: Edge): void {\n if (edge && !this.m_visibleEdges[edge.__hpcc_id]) {\n this.m_visibleEdges[edge.__hpcc_id] = edge;\n }\n }\n\n addSemiVisibleVertex(vertex: Vertex): void {\n if (!this.m_visibleVertices[vertex.__hpcc_id]) {\n this.m_semiVisibleVertices[vertex.__hpcc_id] = vertex;\n this.calcAncestorVisibility(vertex);\n }\n }\n\n calcSemiVisibleVertices(): void {\n for (const key in this.m_visibleEdges) {\n const edge = this.m_visibleEdges[key];\n let source = edge.getSource();\n this.addSemiVisibleVertex(source);\n while (this.noSpills && source.isSpill()) {\n const inEdges = source.getInEdges();\n if (inEdges.length) {\n this.addSemiVisibleEdge(inEdges[0]);\n source = inEdges[0].getSource();\n this.addSemiVisibleVertex(source);\n } else {\n break;\n }\n }\n let target = edge.getTarget();\n this.addSemiVisibleVertex(target);\n while (this.noSpills && target.isSpill()) {\n const outEdges = target.getOutEdges();\n if (outEdges.length) {\n this.addSemiVisibleEdge(outEdges[0]);\n target = outEdges[0].getTarget();\n this.addSemiVisibleVertex(target);\n } else {\n break;\n }\n }\n }\n }\n\n writeXgmml(): void {\n this.subgraphVisited(this.graph.subgraphs[0], true);\n this.graph.edges.forEach((edge: any, idx: any) => {\n this.edgeVisited(edge);\n });\n }\n\n subgraphVisited(subgraph: Subgraph, root: boolean = false): boolean {\n if (this.m_visibleSubgraphs[subgraph.__hpcc_id]) {\n let propsStr = \"\";\n this.m_xgmml += root ? \"\" : \"<node id=\\\"\" + subgraph.__hpcc_id + \"\\\"><att><graph>\";\n const xgmmlLen = this.m_xgmml.length;\n subgraph.walkSubgraphs(this);\n subgraph.walkVertices(this);\n if (xgmmlLen === this.m_xgmml.length) {\n // Add at least one child otherwise subgraphs will render as a vertex ---\n const vertex = subgraph.__hpcc_vertices[0];\n if (vertex) {\n this.m_xgmml += this.buildVertexString(vertex, true);\n }\n }\n\n const props = subgraph.getProperties();\n for (const key in props) {\n propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\n }\n this.m_xgmml += root ? \"\" : \"</graph></att>\" + propsStr + \"</node>\";\n }\n return false;\n }\n\n vertexVisited(vertex: Vertex) {\n if (this.m_visibleVertices[vertex.__hpcc_id]) {\n this.m_xgmml += this.buildVertexString(vertex, false);\n } else if (this.m_semiVisibleVertices[vertex.__hpcc_id]) {\n this.m_xgmml += this.buildVertexString(vertex, true);\n }\n }\n\n edgeVisited(edge: Edge) {\n if (this.m_visibleEdges[edge.__hpcc_id]) {\n this.m_xgmml += this.buildEdgeString(edge);\n }\n }\n}\n\nabstract class GraphItem {\n\n abstract _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\";\n\n __hpcc_graph: QueryGraph;\n __hpcc_parent: Subgraph;\n __widget: any;\n\n __hpcc_id: string;\n _globalID: string;\n\n constructor(graph: QueryGraph, id: string) {\n this.__hpcc_graph = graph;\n this.__hpcc_id = id;\n this._globalID = id;\n }\n\n getProperties() {\n const retVal: { [id: string]: any } = {};\n for (const key in this) {\n if (key.indexOf(\"__\") !== 0 && this.hasOwnProperty(key)) {\n retVal[key] = this[key];\n }\n }\n return retVal;\n }\n}\n\nclass Subgraph extends GraphItem {\n _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\";\n\n __hpcc_subgraphs: any[];\n __hpcc_vertices: any[];\n __hpcc_edges: any[];\n id: string;\n\n constructor(graph: QueryGraph, id: string) {\n super(graph, id);\n this._globalType = id === \"0\" ? \"Graph\" : \"Cluster\";\n this.__hpcc_subgraphs = [];\n this.__hpcc_vertices = [];\n this.__hpcc_edges = [];\n this.id = id;\n }\n\n addSubgraph(subgraph) {\n subgraph.__hpcc_parent = this;\n if (!this.__hpcc_subgraphs.some(subgraph2 => subgraph === subgraph2)) {\n this.__hpcc_subgraphs.push(subgraph);\n }\n }\n\n addVertex(vertex) {\n vertex.__hpcc_parent = this;\n if (!this.__hpcc_vertices.some(vertex2 => vertex === vertex2)) {\n this.__hpcc_vertices.push(vertex);\n }\n }\n\n removeVertex(vertex: any) {\n this.__hpcc_vertices = this.__hpcc_vertices.filter(vertex2 => vertex !== vertex2);\n }\n\n addEdge(edge) {\n edge.__hpcc_parent = this;\n if (!this.__hpcc_edges.some(edge2 => edge === edge2)) {\n this.__hpcc_edges.push(edge);\n }\n }\n\n removeEdge(edge: any) {\n this.__hpcc_edges = this.__hpcc_edges.filter(edge2 => edge !== edge2);\n }\n\n remove() {\n this.__hpcc_subgraphs.forEach(subgraph => subgraph.__hpcc_parent = this.__hpcc_parent);\n this.__hpcc_vertices.forEach(vertex => vertex.__hpcc_parent = this.__hpcc_parent);\n this.__hpcc_edges.forEach(edge => edge.__hpcc_parent = this.__hpcc_parent);\n delete this.__hpcc_parent;\n this.__hpcc_graph.removeItem(this);\n }\n\n walkSubgraphs(visitor: { subgraphVisited: (arg0: Subgraph) => boolean; }) {\n this.__hpcc_subgraphs.forEach((subgraph, idx) => {\n if (visitor.subgraphVisited(subgraph)) {\n subgraph.walkSubgraphs(visitor);\n }\n });\n }\n\n walkVertices(visitor: { vertexVisited: (arg0: Vertex) => void; }) {\n this.__hpcc_vertices.forEach((vertex, idx) => {\n visitor.vertexVisited(vertex);\n });\n }\n}\n\nclass Vertex extends GraphItem {\n _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\" = \"Vertex\";\n _isSpill: boolean;\n\n constructor(graph: QueryGraph, id: string) {\n super(graph, id);\n }\n\n isSpill() {\n return this._isSpill;\n }\n\n remove() {\n const inVertices = this.getInVertices();\n if (inVertices.length <= 1) {\n console.warn(this.__hpcc_id + \": remove only supports single or zero inputs activities...\");\n }\n this.getInEdges().forEach((edge: Edge) => {\n edge.remove();\n });\n this.getOutEdges().forEach((edge: Edge) => {\n edge.setSource(inVertices[0]);\n });\n this.__hpcc_parent?.removeVertex(this);\n this.__hpcc_graph.removeItem(this);\n }\n\n getInVertices(): Vertex[] {\n return this.getInEdges().map((edge) => {\n return edge.getSource();\n });\n }\n\n getInEdges(): Edge[] {\n return this.__hpcc_graph.edges.filter((edge) => {\n return edge.getTarget() === this;\n });\n }\n\n getOutVertices(): Vertex[] {\n return this.getOutEdges().map((edge) => {\n return edge.getTarget();\n });\n }\n\n getOutEdges(): Edge[] {\n return this.__hpcc_graph.edges.filter((edge) => {\n return edge.getSource() === this;\n });\n }\n}\n\nclass Edge extends GraphItem {\n _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\" = \"Edge\";\n\n _sourceActivity: any;\n source: any;\n _targetActivity: any;\n target: any;\n\n constructor(graph: QueryGraph, id: string) {\n super(graph, id);\n this._globalType = \"Edge\";\n }\n\n remove() {\n this.__hpcc_graph.subgraphs.forEach((subgraph) => {\n subgraph.removeEdge(this);\n });\n this.__hpcc_graph.removeItem(this);\n }\n\n getSource(): Vertex {\n return this.__hpcc_graph.idx[this._sourceActivity || this.source] as Vertex;\n }\n\n setSource(source: Vertex) {\n if (this._sourceActivity) {\n this._sourceActivity = source.__hpcc_id;\n } else if (this.source) {\n this.source = source.__hpcc_id;\n }\n if (this.__widget) {\n this.__widget.setSource(this.getSource().__widget);\n }\n }\n\n getTarget(): Vertex {\n return this.__hpcc_graph.idx[this._targetActivity || this.target] as Vertex;\n }\n}\n\nexport class QueryGraph {\n idx: { [id: string]: Subgraph | Vertex | Edge } = {};\n subgraphs: Subgraph[] = [];\n vertices: Vertex[] = [];\n edges: Edge[] = [];\n\n xgmml: string = \"\";\n\n constructor() {\n this.clear();\n }\n\n clear() {\n this.xgmml = \"\";\n\n this.idx = {};\n this.subgraphs = [];\n this.vertices = [];\n this.edges = [];\n }\n\n load(xgmml: string) {\n this.clear();\n this.merge(xgmml);\n }\n\n merge(xgmml: string) {\n this.xgmml = xgmml;\n const parser = new DOMParser();\n const dom = parser.parseFromString(xgmml, \"text/xml\");\n this.walkDocument(dom.documentElement, \"0\");\n }\n\n isSubgraph(item: GraphItem): item is Subgraph {\n return item instanceof Subgraph;\n }\n\n isVertex(item: GraphItem): item is Vertex {\n return item instanceof Vertex;\n }\n\n isEdge(item: GraphItem): item is Edge {\n return item instanceof Edge;\n }\n\n getGlobalType(item: QueryGraph | Subgraph | Vertex | Edge): GRAPH_TYPE {\n if (item instanceof Vertex) {\n return GRAPH_TYPE.VERTEX;\n } else if (item instanceof Edge) {\n return GRAPH_TYPE.EDGE;\n } else if (item instanceof Subgraph) {\n return GRAPH_TYPE.SUBGRAPH;\n } else if (item instanceof QueryGraph) {\n return GRAPH_TYPE.GRAPH;\n }\n return GRAPH_TYPE.UNKNOWN;\n }\n\n getGlobalTypeString(item: QueryGraph | Subgraph | Vertex | Edge): GRAPH_TYPE_STRING {\n if (item instanceof Vertex) {\n return GRAPH_TYPE_STRING.VERTEX;\n } else if (item instanceof Edge) {\n return GRAPH_TYPE_STRING.EDGE;\n } else if (item instanceof Subgraph) {\n return GRAPH_TYPE_STRING.SUBGRAPH;\n } else if (item instanceof QueryGraph) {\n return GRAPH_TYPE_STRING.GRAPH;\n }\n return GRAPH_TYPE_STRING.UNKNOWN;\n }\n\n getItem(docNode: HTMLElement, id: string): Subgraph | Vertex | Edge {\n if (!this.idx[id]) {\n switch (docNode.tagName) {\n case \"graph\":\n const subgraph = new Subgraph(this, id);\n this.subgraphs.push(subgraph);\n this.idx[id] = subgraph;\n break;\n case \"node\":\n const vertex = new Vertex(this, id);\n this.vertices.push(vertex);\n this.idx[id] = vertex;\n break;\n case \"edge\":\n const edge = new Edge(this, id);\n this.edges.push(edge);\n this.idx[id] = edge;\n break;\n default:\n console.warn(\"Graph.getItem - Unknown Node Type!\");\n break;\n }\n }\n const retVal = this.idx[id];\n Array.from(docNode.attributes).forEach(attr => {\n safeAssign(retVal, attr.name, attr.value);\n });\n return retVal;\n }\n\n removeItem(item: Subgraph | Vertex | Edge) {\n delete this.idx[item.__hpcc_id];\n if (item instanceof Subgraph) {\n this.subgraphs = this.subgraphs.filter((subgraph: Subgraph) => {\n return item !== subgraph;\n });\n } else if (item instanceof Vertex) {\n this.vertices = this.vertices.filter(vertex => {\n return item !== vertex;\n });\n } else if (item instanceof Edge) {\n this.edges = this.edges.filter((edge: Edge) => {\n return item !== edge;\n });\n }\n }\n\n getChildByTagName(docNode: HTMLElement, tagName: string): HTMLElement | null {\n let retVal: HTMLElement | null = null;\n Array.from(docNode.childNodes as NodeListOf<HTMLElement>).some((childNode) => {\n if (childNode.tagName === tagName) {\n retVal = childNode;\n return true;\n }\n });\n return retVal;\n }\n\n walkDocument(docNode: HTMLElement, id: string): Subgraph | Vertex | Edge {\n const retVal: any = this.getItem(docNode, id);\n (docNode.childNodes as NodeListOf<HTMLElement>).forEach((childNode) => {\n switch (childNode.nodeType) {\n case 1: // \tELEMENT_NODE\n switch (childNode.tagName) {\n case \"graph\":\n break;\n case \"node\":\n let isSubgraph = false;\n const attNode = this.getChildByTagName(childNode, \"att\");\n if (attNode) {\n const graphNode = this.getChildByTagName(attNode, \"graph\");\n if (graphNode) {\n isSubgraph = true;\n const subgraph = this.walkDocument(graphNode, childNode.getAttribute(\"id\"));\n retVal.addSubgraph(subgraph);\n }\n }\n if (!isSubgraph) {\n const vertex = this.walkDocument(childNode, childNode.getAttribute(\"id\"));\n retVal.addVertex(vertex);\n }\n break;\n case \"att\":\n const name = childNode.getAttribute(\"name\");\n const uname = \"_\" + name;\n const value = childNode.getAttribute(\"value\");\n if (name.indexOf(\"Time\") === 0) {\n safeAssign(retVal, uname, value);\n safeAssign(retVal, name, \"\" + espTime2Seconds(value));\n } else if (name.indexOf(\"Size\") === 0) {\n safeAssign(retVal, uname, value);\n safeAssign(retVal, name, \"\" + espSize2Bytes(value));\n } else if (name.indexOf(\"Skew\") === 0) {\n safeAssign(retVal, uname, value);\n safeAssign(retVal, name, \"\" + espSkew2Number(value));\n } else {\n safeAssign(retVal, name, value);\n }\n break;\n case \"edge\":\n const edge: any = this.walkDocument(childNode, childNode.getAttribute(\"id\"));\n if (edge.NumRowsProcessed !== undefined) {\n edge._eclwatchCount = edge.NumRowsProcessed.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n } else if (edge.Count !== undefined) {\n edge._eclwatchCount = edge.Count.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n } else if (edge.count !== undefined) {\n edge._eclwatchCount = edge.count.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n }\n if (edge.inputProgress) {\n edge._eclwatchInputProgress = \"[\" + edge.inputProgress.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") + \"]\";\n }\n if (edge.SkewMaxRowsProcessed && edge.SkewMinRowsProcessed) {\n edge._eclwatchSkew = \"+\" + edge.SkewMaxRowsProcessed + \", \" + edge.SkewMinRowsProcessed;\n }\n if (edge._dependsOn) {\n } else if (edge._childGraph) {\n } else if (edge._sourceActivity || edge._targetActivity) {\n edge._isSpill = true;\n const source = edge.getSource();\n if (source) {\n source._isSpill = true;\n }\n const target = edge.getTarget();\n if (target) {\n target._isSpill = true;\n }\n }\n retVal.addEdge(edge);\n break;\n default:\n break;\n }\n break;\n case 2: // \tATTRIBUTE_NODE\n case 3: // \tTEXT_NODE\n case 4: // \tCDATA_SECTION_NODE\n case 5: // \tENTITY_REFERENCE_NODE\n case 6: // \tENTITY_NODE\n case 7: // \tPROCESSING_INSTRUCTION_NODE\n case 8: // \tCOMMENT_NODE\n case 9: // \tDOCUMENT_NODE\n case 10: // \tDOCUMENT_TYPE_NODE\n case 11: // \tDOCUMENT_FRAGMENT_NODE\n case 12: // \tNOTATION_NODE\n break;\n default:\n break;\n }\n });\n return retVal;\n }\n\n removeSubgraphs(): void {\n const subgraphs = [...this.subgraphs];\n subgraphs.forEach((subgraph) => {\n if (subgraph.__hpcc_parent instanceof Subgraph) {\n subgraph.remove();\n }\n });\n }\n\n removeSpillVertices(): void {\n const vertices = [...this.vertices];\n vertices.forEach((vertex) => {\n if (vertex.isSpill()) {\n vertex.remove();\n }\n });\n }\n\n getLocalisedXGMML(items: GraphItem[], localisationDepth: number, localisationDistance: number, noSpills: boolean): string {\n const xgmmlWriter = new LocalisedXGMMLWriter(this);\n xgmmlWriter.calcVisibility(items, localisationDepth, localisationDistance, noSpills);\n xgmmlWriter.writeXgmml();\n return \"<graph>\" + xgmmlWriter.m_xgmml + \"</graph>\";\n }\n}\n", "import { Cache, Dispatch, IObserverHandle, Message } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { StoreService } from \"../services/wsStore.ts\";\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<ValueChangedMessage>();\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, 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, IEvent, scopedLogger, StateCallback, StateEvents, StateObject, StatePropCallback } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\nimport { WsSMC } from \"../services/wsSMC.ts\";\nimport { FileSpray, FileSprayService, UpdateDFUWorkunitEx } from \"../services/fileSpray.ts\";\nimport * as WsTopology from \"../services/wsTopology.ts\";\n\nconst logger = scopedLogger(\"@hpcc-js/comms/dfuWorkunit.ts\");\n\nenum States {\n Unknown = 0,\n Scheduled,\n Queued,\n Started,\n Aborted,\n Failed,\n Finished,\n Monitoring,\n Aborting,\n NotFound = 999\n}\n\nexport class DFUWorkunitCache extends Cache<{ BaseUrl: string, ID: string }, DFUWorkunit> {\n constructor() {\n super((obj) => {\n return `${obj.BaseUrl}-${obj.ID}`;\n });\n }\n}\nconst _workunits = new DFUWorkunitCache();\n\nexport type DFUWorkunitEvents = \"finished\" | StateEvents;\nexport type UDFUWorkunitState = FileSpray.DFUWorkunit;\nexport type IDFUWorkunitState = FileSpray.DFUWorkunit | WsSMC.ActiveWorkunit;\nexport class DFUWorkunit extends StateObject<UDFUWorkunitState, IDFUWorkunitState> implements FileSpray.DFUWorkunit {\n connection: FileSprayService;\n topologyConnection: WsTopology.TopologyService;\n get BaseUrl() { return this.connection.baseUrl; }\n\n // Accessors ---\n get properties(): FileSpray.DFUWorkunit { return this.get(); }\n get ID(): string { return this.get(\"ID\"); }\n get DFUServerName(): string { return this.get(\"DFUServerName\"); }\n get ClusterName(): string { return this.get(\"ClusterName\"); }\n get JobName(): string { return this.get(\"JobName\"); }\n get Queue(): string { return this.get(\"Queue\"); }\n get User(): string { return this.get(\"User\"); }\n get isProtected(): boolean { return this.get(\"isProtected\"); }\n get Command(): number { return this.get(\"Command\"); }\n get CommandMessage(): string { return this.get(\"CommandMessage\"); }\n get PercentDone(): number { return this.get(\"PercentDone\"); }\n get SecsLeft(): number { return this.get(\"SecsLeft\"); }\n get ProgressMessage(): string { return this.get(\"ProgressMessage\"); }\n get SummaryMessage(): string { return this.get(\"SummaryMessage\"); }\n get State(): number { return this.get(\"State\", States.Unknown); }\n get SourceLogicalName(): string { return this.get(\"SourceLogicalName\"); }\n get SourceIP(): string { return this.get(\"SourceIP\"); }\n get SourceFilePath(): string { return this.get(\"SourceFilePath\"); }\n get SourceDali(): string { return this.get(\"SourceDali\"); }\n get SourceRecordSize(): number { return this.get(\"SourceRecordSize\"); }\n get SourceFormat(): number { return this.get(\"SourceFormat\"); }\n get RowTag(): string { return this.get(\"RowTag\"); }\n get SourceNumParts(): number { return this.get(\"SourceNumParts\"); }\n get SourceDirectory(): string { return this.get(\"SourceDirectory\"); }\n get DestLogicalName(): string { return this.get(\"DestLogicalName\"); }\n get DestGroupName(): string { return this.get(\"DestGroupName\"); }\n get DestDirectory(): string { return this.get(\"DestDirectory\"); }\n get DestIP(): string { return this.get(\"DestIP\"); }\n get DestFilePath(): string { return this.get(\"DestFilePath\"); }\n get DestFormat(): number { return this.get(\"DestFormat\"); }\n get DestNumParts(): number { return this.get(\"DestNumParts\"); }\n get DestRecordSize(): number { return this.get(\"DestRecordSize\"); }\n get Replicate(): boolean { return this.get(\"Replicate\"); }\n get Overwrite(): boolean { return this.get(\"Overwrite\"); }\n get Compress(): boolean { return this.get(\"Compress\"); }\n get SourceCsvSeparate(): string { return this.get(\"SourceCsvSeparate\"); }\n get SourceCsvQuote(): string { return this.get(\"SourceCsvQuote\"); }\n get SourceCsvTerminate(): string { return this.get(\"SourceCsvTerminate\"); }\n get SourceCsvEscape(): string { return this.get(\"SourceCsvEscape\"); }\n get TimeStarted(): string { return this.get(\"TimeStarted\"); }\n get TimeStopped(): string { return this.get(\"TimeStopped\"); }\n get StateMessage(): string { return this.get(\"StateMessage\"); }\n get MonitorEventName(): string { return this.get(\"MonitorEventName\"); }\n get MonitorSub(): boolean { return this.get(\"MonitorSub\"); }\n get MonitorShotLimit(): number { return this.get(\"MonitorShotLimit\"); }\n get SourceDiffKeyName(): string { return this.get(\"SourceDiffKeyName\"); }\n get DestDiffKeyName(): string { return this.get(\"DestDiffKeyName\"); }\n get Archived(): boolean { return this.get(\"Archived\"); }\n get encrypt(): string { return this.get(\"encrypt\"); }\n get decrypt(): string { return this.get(\"decrypt\"); }\n get failIfNoSourceFile(): boolean { return this.get(\"failIfNoSourceFile\"); }\n get recordStructurePresent(): boolean { return this.get(\"recordStructurePresent\"); }\n get quotedTerminator(): boolean { return this.get(\"quotedTerminator\"); }\n get preserveCompression(): boolean { return this.get(\"preserveCompression\"); }\n get expireDays(): number { return this.get(\"expireDays\"); }\n get PreserveFileParts(): boolean { return this.get(\"PreserveFileParts\"); }\n get FileAccessCost(): number { return this.get(\"FileAccessCost\"); }\n get KbPerSecAve(): number { return this.get(\"KbPerSecAve\"); }\n get KbPerSec(): number { return this.get(\"KbPerSec\"); }\n\n // Factories ---\n static create(optsConnection: IOptions | IConnection, dfuServerQueue: string): Promise<DFUWorkunit> {\n const retVal: DFUWorkunit = new DFUWorkunit(optsConnection);\n return retVal.connection.CreateDFUWorkunit({ DFUServerQueue: dfuServerQueue }).then((response) => {\n _workunits.set(retVal);\n retVal.set(response.result);\n return retVal;\n });\n }\n\n static attach(optsConnection: IOptions | IConnection, wuid: string, state?: IDFUWorkunitState): DFUWorkunit {\n const retVal: DFUWorkunit = _workunits.get({ BaseUrl: optsConnection.baseUrl, ID: wuid }, () => {\n return new DFUWorkunit(optsConnection, wuid);\n });\n if (state) {\n retVal.set(state);\n }\n return retVal;\n }\n\n static sprayFixed(server: IOptions | IConnection, request: Partial<FileSpray.SprayFixed>): Promise<DFUWorkunit> {\n const service = new FileSprayService(server);\n return service.SprayFixedEx({\n ...request\n }).then(response => {\n const wuid = response.wuid;\n return service.GetDFUWorkunit({ wuid }).then(response => {\n return DFUWorkunit.attach(server, wuid, response.result);\n });\n });\n }\n\n static sprayVariable(server: IOptions | IConnection, request: Partial<FileSpray.SprayVariable>): Promise<DFUWorkunit> {\n const service = new FileSprayService(server);\n return service.SprayVariableEx({\n ...request\n }).then(response => {\n const wuid = response.wuid;\n return service.GetDFUWorkunit({ wuid }).then(response => {\n return DFUWorkunit.attach(server, wuid, response.result);\n });\n });\n }\n\n static despray(server: IOptions | IConnection, request: Partial<FileSpray.Despray>): Promise<DFUWorkunit> {\n const service = new FileSprayService(server);\n return service.DesprayEx({\n ...request\n }).then(response => {\n const wuid = response.wuid;\n return service.GetDFUWorkunit({ wuid }).then(response => {\n return DFUWorkunit.attach(server, wuid, response.result);\n });\n });\n }\n\n update(request: Partial<UpdateDFUWorkunitEx>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\n return this.connection.UpdateDFUWorkunitEx({\n wu: {\n JobName: request?.wu?.JobName ?? this.JobName,\n isProtected: request?.wu?.isProtected ?? this.isProtected,\n ID: this.ID,\n State: this.State\n },\n ClusterOrig: this.ClusterName,\n JobNameOrig: this.JobName,\n isProtectedOrig: this.isProtected,\n StateOrig: this.State\n });\n }\n\n isComplete(): boolean {\n switch (this.State) {\n case States.Finished:\n case States.Failed:\n case States.Aborted:\n case States.NotFound:\n return true;\n default:\n }\n return false;\n }\n\n isFailed() {\n if (this.isComplete() && this.State !== States.Finished) {\n return true;\n }\n return false;\n }\n\n isDeleted() {\n switch (this.State) {\n case States.NotFound:\n return true;\n default:\n }\n return false;\n }\n\n isRunning(): boolean {\n return !this.isComplete();\n }\n\n abort(): Promise<FileSpray.AbortDFUWorkunitResponse> {\n return this.connection.AbortDFUWorkunit({ wuid: this.ID });\n }\n\n delete() {\n return this.DFUWUAction(FileSpray.DFUWUActions.Delete).then(response => {\n return this.refresh().then(() => {\n this._monitor();\n return response;\n });\n });\n }\n\n async refresh(full: boolean = false): Promise<this> {\n await this.GetDFUWorkunit();\n return this;\n }\n\n fetchXML(callback?: void): Promise<string> {\n return this.DFUWUFile();\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 _monitorTimeoutDuration(): number {\n const retVal = super._monitorTimeoutDuration();\n if (this._monitorTickCount <= 1) { // Once\n return 3000;\n } else if (this._monitorTickCount <= 5) { // Twice\n return 6000;\n } else if (this._monitorTickCount <= 7) { // Twice\n return 12000;\n }\n return retVal;\n }\n\n protected DFUWUFile(_request: Partial<FileSpray.DFUWUFileRequest> = {}): Promise<string> {\n return this.connection.DFUWUFileEx({\n ..._request, Wuid: this.ID\n }).then(response => {\n //TODO: additional processing?\n return response;\n }).catch((e: ESPExceptions) => {\n return \"\";\n });\n }\n\n protected DFUWUAction(actionType: FileSpray.DFUWUActions): Promise<FileSpray.DFUWorkunitsActionResponse> {\n return this.connection.DFUWorkunitsAction({\n wuids: { Item: [this.ID] },\n Type: actionType\n }).then((response) => {\n if (actionType === FileSpray.DFUWUActions.Delete) return response;\n return this.refresh().then(() => {\n this._monitor();\n return response;\n });\n });\n }\n\n // Events ---\n on(eventID: DFUWorkunitEvents, propIDorCallback: StateCallback | keyof UDFUWorkunitState, callback?: StatePropCallback): this {\n if (this.isCallback(propIDorCallback)) {\n switch (eventID) {\n case \"finished\":\n super.on(\"propChanged\", \"State\", (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 // --- --- ---\n protected constructor(optsConnection: IOptions | IConnection, wuid?: string) {\n super();\n this.connection = new FileSprayService(optsConnection);\n this.topologyConnection = new WsTopology.TopologyService(optsConnection);\n this.clearState(wuid);\n }\n\n clearState(wuid?: string) {\n this.clear({\n ID: wuid,\n State: States.Unknown\n });\n }\n\n // FileSpray passthroughs ---\n protected GetDFUWorkunit(_request: Partial<FileSpray.GetDFUWorkunit> = {}): Promise<FileSpray.GetDFUWorkunitResponse> {\n return this.connection.GetDFUWorkunit({ ..._request, wuid: this.ID }).then((response) => {\n this.set(response.result);\n return response;\n }).catch((e: ESPExceptions) => {\n // deleted ---\n const wuMissing = e.Exception.some((exception) => {\n if (exception.Code === 20080 || exception.Code === 20081) {\n this.clearState(this.ID);\n this.set(\"State\", States.NotFound);\n return true;\n }\n return false;\n });\n if (!wuMissing) {\n logger.warning(`Unexpected ESP exception: ${e.message}`);\n throw e;\n }\n return {} as FileSpray.GetDFUWorkunitResponse;\n });\n }\n}", "import * as cp from \"node:child_process\";\nimport * as crypto from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\nimport { exists, scopedLogger, xml2json, XMLNode } from \"@hpcc-js/util\";\nimport { attachWorkspace, Workspace } from \"./eclMeta.ts\";\n\nconst logger = scopedLogger(\"clienttools/eclcc\");\nconst exeExt = os.type() === \"Windows_NT\" ? \".exe\" : \"\";\n\nfunction tidyCRLF(inStr: string): string {\n return inStr.split(\"\\r\\n\").join(\"\\n\").split(\"\\r\").join(\"\\n\");\n}\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 code: number;\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/g, \"\\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 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 interface IBundle {\n name: string;\n description: string;\n url: string;\n props?: { [key: string]: string | number | boolean };\n}\n\nexport class ClientTools {\n readonly eclccPath: string;\n readonly envchkPath: string;\n readonly eclBundlePath: 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.eclBundlePath = path.join(this.binPath, \"ecl-bundle\" + 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 = path.join(os.tmpdir(), `eclcc-wu-tmp-${crypto.randomBytes(8).toString(\"hex\")}`);\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 try {\n if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {\n metaWorkspace.parseMetaXML(execFileResponse.stdout);\n }\n } catch (e: any) {\n logger.error(`fetchMeta: Error parsing XML - ${e?.message ?? \"unknown\"}`);\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 try {\n if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {\n checked = metaWorkspace.parseMetaXML(execFileResponse.stdout);\n }\n } catch (e: any) {\n logger.error(`syntaxCheck: Error parsing XML - ${e?.message ?? \"unknown\"}`);\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 bundleList(): Promise<IBundle[]> {\n const bundlesRegEx = /\\|(.*)\\|(.*)\\|(.*)\\|/g;\n return Promise.all([\n fetch(\"https://raw.githubusercontent.com/hpcc-systems/ecl-bundles/master/README.rst\")\n .then(response => response.text())\n .then(readme => {\n const retVal: IBundle[] = [];\n let m = bundlesRegEx.exec(readme);\n while (m) {\n retVal.push({\n name: m[1].trim(),\n description: m[2].trim(),\n url: m[3].trim()\n });\n m = bundlesRegEx.exec(readme);\n }\n return retVal;\n }),\n this.execFile(this.eclBundlePath, this.cwd, this.args([\"list\"]), \"ecl-bundle\", `Cannot find ${this.eclBundlePath}`)\n .then(installedText => {\n return tidyCRLF(installedText.stdout).split(\"\\n\");\n }).then(installedItems => {\n const allProps = {};\n return Promise.all(installedItems.filter(ii => !!ii).map(ii => {\n return this.execFile(this.eclBundlePath, this.cwd, this.args([\"info\", ii]), \"ecl-bundle\", `Cannot find ${this.eclBundlePath}`)\n .then(infoText => {\n return tidyCRLF(infoText.stdout).split(\"\\n\");\n }).then(info => {\n const props = {};\n info.forEach(line => {\n const parts = line.split(\":\");\n props[parts.shift().trim()] = parts.join(\":\").trim();\n });\n allProps[ii] = {\n name: ii,\n props\n };\n });\n })).then(() => allProps);\n })\n ]).then(([bundles, installed]) => {\n bundles.forEach(b => {\n if (installed[b.name]) {\n b.props = installed[b.name].props;\n delete installed[b.name];\n }\n });\n for (const key in installed) {\n bundles.push({\n name: key,\n url: \"\",\n description: \"\",\n props: installed[key].props\n });\n }\n return bundles;\n }).catch(e => {\n return [];\n });\n }\n\n bundleInstall(bundleUrl) {\n return Promise.all([\n attachWorkspace(this.cwd),\n this.execFile(this.eclBundlePath, this.cwd, this.args([\"install\", bundleUrl]), \"ecl-bundle\", `Cannot find ${this.eclBundlePath}`)\n ]).then(([metaWorkspace, execFileResponse]: [Workspace, IExecFile]) => {\n return execFileResponse;\n });\n }\n\n bundleUninstall(name) {\n return Promise.all([\n attachWorkspace(this.cwd),\n this.execFile(this.eclBundlePath, this.cwd, this.args([\"uninstall\", name]), \"ecl-bundle\", `Cannot find ${this.eclBundlePath}`)\n ]).then(([metaWorkspace, execFileResponse]: [Workspace, IExecFile]) => {\n return execFileResponse;\n });\n }\n\n private execFile(cmd: string, cwd: string, args: string[], _toolName: string, _notFoundError?: string): Promise<{ code: number, stdout: string, stderr: 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 code: _code,\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 clearAllClientToolsCache() {\n allClientToolsCache = undefined;\n}\n\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, args: string[] = []): Promise<ClientTools> {\n if (overridePath && fs.existsSync(overridePath)) {\n logEclccPath(overridePath);\n return Promise.resolve(new ClientTools(overridePath, cwd, includeFolders, legacyMode, args));\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 (ctVersion.exists()) {\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, args);\n }\n }\n const best: ClientTools = bestMajor || latest!;\n logEclccPath(best.eclccPath);\n return best.clone(cwd, includeFolders, legacyMode, args);\n });\n}\n", "import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\nimport { Dictionary, DictionaryNoCase, find, SAXStackParser, scopedLogger, XMLNode } from \"@hpcc-js/util\";\nimport { ClientTools, locateClientTools } from \"./eclcc.ts\";\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"],
|
|
5
|
-
"mappings": "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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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",
|
|
6
|
-
"names": ["require_d3_array", "__commonJSMin", "exports", "module", "global", "factory", "ascending", "a", "b", "bisector", "compare", "ascendingComparator", "lo", "hi", "mid", "f", "d", "ascendingBisect", "bisectRight", "bisectLeft", "pairs", "array", "pair", "i", "n", "p", "cross", "values0", "values1", "reduce", "n0", "n1", "values", "i0", "i1", "value0", "descending", "number", "x", "variance", "valueof", "m", "mean", "value", "delta", "sum", "deviation", "v", "extent", "min", "max", "slice", "map", "constant", "identity", "range", "start", "stop", "step", "e10", "e5", "e2", "ticks", "count", "reverse", "tickIncrement", "power", "error", "tickStep", "step0", "step1", "sturges", "histogram", "domain", "threshold", "data", "xz", "x0", "x1", "tz", "bins", "bin", "_", "quantile", "value1", "freedmanDiaconis", "scott", "median", "numbers", "merge", "arrays", "j", "merged", "permute", "indexes", "permutes", "scan", "xi", "xj", "shuffle", "t", "transpose", "matrix", "length", "row", "zip", "require_d3_format", "__commonJSMin", "exports", "module", "global", "factory", "formatDecimal", "x", "formatDecimalParts", "p", "i", "coefficient", "exponent", "formatGroup", "grouping", "thousands", "value", "width", "t", "j", "g", "length", "formatNumerals", "numerals", "re", "formatSpecifier", "specifier", "match", "FormatSpecifier", "formatTrim", "s", "out", "n", "i0", "i1", "prefixExponent", "formatPrefixAuto", "d", "formatRounded", "formatTypes", "identity", "map", "prefixes", "formatLocale", "locale", "group", "currencyPrefix", "currencySuffix", "decimal", "percent", "minus", "nan", "newFormat", "fill", "align", "sign", "symbol", "zero", "comma", "precision", "trim", "type", "prefix", "suffix", "formatType", "maybeSuffix", "format", "valuePrefix", "valueSuffix", "c", "valueNegative", "padding", "formatPrefix", "f", "e", "k", "defaultLocale", "definition", "precisionFixed", "step", "precisionPrefix", "precisionRound", "max", "require_d3_time", "__commonJSMin", "exports", "module", "global", "factory", "t0", "t1", "newInterval", "floori", "offseti", "count", "field", "interval", "date", "d0", "d1", "step", "start", "stop", "range", "previous", "test", "end", "d", "millisecond", "k", "milliseconds", "durationSecond", "durationMinute", "durationHour", "durationDay", "durationWeek", "second", "seconds", "minute", "minutes", "hour", "hours", "day", "days", "weekday", "i", "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sundays", "mondays", "tuesdays", "wednesdays", "thursdays", "fridays", "saturdays", "month", "months", "year", "years", "utcMinute", "utcMinutes", "utcHour", "utcHours", "utcDay", "utcDays", "utcWeekday", "utcSunday", "utcMonday", "utcTuesday", "utcWednesday", "utcThursday", "utcFriday", "utcSaturday", "utcSundays", "utcMondays", "utcTuesdays", "utcWednesdays", "utcThursdays", "utcFridays", "utcSaturdays", "utcMonth", "utcMonths", "utcYear", "utcYears", "require_d3_time_format", "__commonJSMin", "exports", "module", "global", "factory", "d3Time", "localDate", "d", "date", "utcDate", "newDate", "y", "formatLocale", "locale", "locale_dateTime", "locale_date", "locale_time", "locale_periods", "locale_weekdays", "locale_shortWeekdays", "locale_months", "locale_shortMonths", "periodRe", "formatRe", "periodLookup", "formatLookup", "weekdayRe", "weekdayLookup", "shortWeekdayRe", "shortWeekdayLookup", "monthRe", "monthLookup", "shortMonthRe", "shortMonthLookup", "formats", "formatShortWeekday", "formatWeekday", "formatShortMonth", "formatMonth", "formatDayOfMonth", "formatMicroseconds", "formatYearISO", "formatFullYearISO", "formatHour24", "formatHour12", "formatDayOfYear", "formatMilliseconds", "formatMonthNumber", "formatMinutes", "formatPeriod", "formatQuarter", "formatUnixTimestamp", "formatUnixTimestampSeconds", "formatSeconds", "formatWeekdayNumberMonday", "formatWeekNumberSunday", "formatWeekNumberISO", "formatWeekdayNumberSunday", "formatWeekNumberMonday", "formatYear", "formatFullYear", "formatZone", "formatLiteralPercent", "utcFormats", "formatUTCShortWeekday", "formatUTCWeekday", "formatUTCShortMonth", "formatUTCMonth", "formatUTCDayOfMonth", "formatUTCMicroseconds", "formatUTCYearISO", "formatUTCFullYearISO", "formatUTCHour24", "formatUTCHour12", "formatUTCDayOfYear", "formatUTCMilliseconds", "formatUTCMonthNumber", "formatUTCMinutes", "formatUTCPeriod", "formatUTCQuarter", "formatUTCSeconds", "formatUTCWeekdayNumberMonday", "formatUTCWeekNumberSunday", "formatUTCWeekNumberISO", "formatUTCWeekdayNumberSunday", "formatUTCWeekNumberMonday", "formatUTCYear", "formatUTCFullYear", "formatUTCZone", "parses", "parseShortWeekday", "parseWeekday", "parseShortMonth", "parseMonth", "parseLocaleDateTime", "parseDayOfMonth", "parseMicroseconds", "parseYear", "parseFullYear", "parseHour24", "parseDayOfYear", "parseMilliseconds", "parseMonthNumber", "parseMinutes", "parsePeriod", "parseQuarter", "parseUnixTimestamp", "parseUnixTimestampSeconds", "parseSeconds", "parseWeekdayNumberMonday", "parseWeekNumberSunday", "parseWeekNumberISO", "parseWeekdayNumberSunday", "parseWeekNumberMonday", "parseLocaleDate", "parseLocaleTime", "parseZone", "parseLiteralPercent", "newFormat", "specifier", "string", "i", "j", "n", "c", "pad", "format", "pads", "newParse", "Z", "parseSpecifier", "week", "day", "m", "parse", "f", "p", "numberRe", "percentRe", "requoteRe", "value", "fill", "width", "sign", "length", "requote", "s", "names", "map", "dISO", "z", "dow", "UTCdISO", "defaultLocale", "definition", "isoSpecifier", "formatIsoNative", "formatIso", "parseIsoNative", "parseIso", "root", "DOMParser", "fetch", "Headers", "Request", "Response", "https", "Agent", "setGlobalDispatcher", "AbortController", "trustwave", "Buffer", "PKG_NAME", "PKG_VERSION", "BUILD_VERSION", "join", "join", "promiseTimeout", "scopedLogger", "logger", "instanceOfIOptions", "object", "DefaultOptions", "instanceOfIConnection", "encode", "uriComponent", "encodeRequest", "serializeRequest", "obj", "prefix", "str", "key", "includeItemCount", "row", "i", "deserializeResponse", "body", "jsonp", "opts", "action", "request", "responseType", "header", "resolve", "reject", "respondedTimeout", "respondedTick", "callbackName", "response", "doCallback", "script", "url", "progress", "authHeader", "_omitMap", "doFetch", "requestInit", "headersInit", "handleResponse", "e", "responseBody", "post", "abortSignal", "get", "send", "retVal", "hookedSend", "hookSend", "newSend", "Connection", "_Connection", "_", "createConnection", "setTransportFactory", "newFunc", "isArray", "arg", "ESPExceptions", "action", "request", "exceptions", "isExceptions", "err", "isConnection", "optsConnection", "ESPConnection", "_ESPConnection", "service", "version", "createConnection", "_", "target", "arrayName", "i", "_request", "espResponseType", "largeUpload", "abortSignal", "espResponseField", "serviceAction", "responseType", "join", "response", "retVal", "Service", "FileSpray", "DFUWUActions", "FileSprayServiceBase", "Service", "optsConnection", "request", "FileSprayStates", "FileSprayService", "FileSprayServiceBase", "request", "WsAccess", "ViewMemberType", "UserSortBy", "GroupSortBy", "AccountTypeReq", "ResourcePermissionSortBy", "ResourceSortBy", "AccessServiceBase", "Service", "optsConnection", "request", "AccessService", "AccessServiceBase", "AccountServiceBase", "Service", "optsConnection", "request", "AccountService", "AccountServiceBase", "request", "e", "exception", "scopedLogger", "CloudServiceBase", "Service", "optsConnection", "request", "logger", "scopedLogger", "isGetPODsResponse_v1_02", "response", "mapPorts", "pod", "prev", "curr", "p", "mapPods", "pods", "labels", "started", "CloudService", "CloudServiceBase", "obj", "error", "logger", "WsCodesign", "SigningMethodType", "CodesignServiceBase", "Service", "optsConnection", "request", "CodesignService", "CodesignServiceBase", "request", "response", "e", "WsCodesign", "DaliServiceBase", "Service", "optsConnection", "request", "DaliService", "DaliServiceBase", "WsDfu", "DFUArrayActions", "DFUChangeProtection", "DFUChangeRestriction", "DFUDefFileFormat", "FileAccessRole", "SecAccessType", "DFUFileType", "DfuServiceBase", "Service", "optsConnection", "request", "DFUArrayActions", "WsDfu", "DFUDefFileFormat", "DFUChangeProtection", "DFUChangeRestriction", "DFUService", "DfuServiceBase", "request", "superFiles", "childSuperFiles", "logicalFiles", "superFile", "response", "child", "DFUXRefServiceBase", "Service", "optsConnection", "request", "DFUXRefService", "DFUXRefServiceBase", "request", "jsonToIField", "id", "item", "type", "jsonToIFieldArr", "fieldType", "jsonToIFieldObj", "json", "retVal", "key", "fields", "EclService", "Service", "optsConnection", "querySet", "queryId", "response", "requestSchema", "responseSchema", "resultsJson", "request", "action", "ESPExceptions", "ElkServiceBase", "Service", "optsConnection", "request", "ElkService", "ElkServiceBase", "scopedLogger", "WsLogaccess", "LogColumnType", "LogColumnValueType", "LogAccessType", "LogAccessStatusCode", "LogAccessFilterOperator", "LogSelectColumnMode", "SortColumType", "SortDirection", "LogaccessServiceBase", "Service", "optsConnection", "request", "logger", "scopedLogger", "LogType", "TargetAudience", "LogaccessService", "LogaccessServiceBase", "request", "logInfo", "columnMap", "column", "convertLogLine", "line", "retVal", "key", "getLogsRequest", "WsLogaccess", "filters", "searchField", "logCategory", "value", "binaryLogFilter", "filter", "i", "operator", "response", "logLines", "lines", "logger", "e", "import_d3_array", "exists", "WsMachine", "ThresholdType", "TpMachineType", "MachineServiceBase", "Service", "optsConnection", "request", "MachineService", "MachineServiceBase", "targetClusters", "bypassCachedResult", "response", "exists", "tcu", "ComponentUsages", "cu", "MachineUsages", "mu", "DiskUsages", "du", "d3Mean", "d3Max", "prev", "PackageProcessServiceBase", "Service", "optsConnection", "request", "PackageProcessService", "PackageProcessServiceBase", "ResourcesServiceBase", "Service", "optsConnection", "request", "ResourcesService", "ResourcesServiceBase", "WsSasha", "WUTypes", "SashaServiceBase", "Service", "optsConnection", "request", "SashaService", "SashaServiceBase", "WsSMC", "LockModes", "RoxieControlCmdType", "SMCServiceBase", "Service", "optsConnection", "request", "SMCService", "SMCServiceBase", "request", "response", "storeServiceBase", "Service", "optsConnection", "request", "StoreService", "storeServiceBase", "request", "e", "WsTopology", "TpConfigResponseFormat", "RoxieQueueFilter", "TpMachineType", "TopologyServiceBase", "Service", "optsConnection", "request", "TopologyService", "TopologyServiceBase", "request", "response", "firstHThor", "first", "item", "idx", "deepMixin", "xml2json", "WsWorkunits", "ECLWUActions", "LogSelectColumnMode", "SortDirection", "LogEventClass", "WUDetailsAttrValueType", "EclDefinitionActions", "ErrorMessageFormat", "LogAccessLogFormat", "WUExceptionSeverity", "WUQueryFilterSuspendedType", "WUQuerySetFilterType", "WUProtectFilter", "QuerySetAliasActionTypes", "QuerysetImportActivation", "QuerySetQueryActionTypes", "WUQueryActivationMode", "WorkunitsServiceBase", "Service", "optsConnection", "request", "WUStateID", "WUUpdate", "Action", "isECLResult", "_", "isWUQueryECLWorkunit", "isWUInfoWorkunit", "WorkunitsService", "WorkunitsServiceBase", "optsConnection", "request", "abortSignal", "response", "deepMixin", "_request", "children", "xml2json", "WorkunitsServiceEx", "debounce", "StateObject", "import_d3_format", "import_d3_time_format", "Cache", "deepMixinT", "scopedLogger", "StateObject", "XMLNode", "Cache", "Edge", "Graph", "StateObject", "Subgraph", "Vertex", "ECLGraph", "wu", "eclGraph", "eclTimers", "duration", "eclTimer", "subgraphID", "scopes", "createGraph", "GraphCache", "obj", "walkXmlJson", "node", "callback", "stack", "childNode", "flattenAtt", "nodes", "retVal", "XGMMLGraph", "XGMMLSubgraph", "XGMMLVertex", "XGMMLEdge", "createXGMMLGraph", "id", "graphs", "subgraphs", "vertices", "edges", "graph", "item", "tag", "attributes", "childNodes", "_stack", "top", "subgraph", "vertex", "edge", "ScopeGraph", "ScopeSubgraph", "ScopeVertex", "ScopeEdge", "scope", "scopeStack", "scopeParent1", "parent1", "scopeParent2", "scopeParent3", "parent3", "source", "target", "StateObject", "Resource", "wu", "url", "cleanedURL", "urlParts", "matchStr", "displayPath", "displayName", "Cache", "exists", "StateObject", "SAXStackParser", "Stack", "XSDNode", "XSDXMLNode", "child", "i", "row", "setOfType", "node", "children", "retVal", "numStr", "underbarPos", "length", "XSDSimpleType", "XSDSchema", "XSDParser", "xsdXMLNode", "xsdXMLNode2", "key", "parseXSD", "xml", "saxParser", "XSDParser2", "rootName", "parseXSD2", "GlobalResultCache", "Cache", "obj", "_results", "Result", "_Result", "StateObject", "optsConnection", "wuid", "name_sequence_eclResult", "resultViews", "retVal", "nodeGroup", "logicalFile", "wuid_NodeGroup", "name_sequence_eclResult_logicalFile", "resultViews_isLogicalFile", "WorkunitsService", "isECLResult", "bypass", "refresh", "response", "parseXSD", "from", "count", "includeSchema", "filter", "abortSignal", "bypassCache", "shouldBypassCache", "result", "exists", "start", "suppressXmlSchema", "FilterBy", "key", "request", "ResultCache", "StateObject", "Attribute", "scope", "attribute", "BaseScope", "retVal", "timeElapsed", "scopeAttr", "attr", "key", "scopeParts", "_", "visitor", "name", "parentScope", "label", "rows", "attrs", "Scope", "wu", "StateObject", "SourceFile", "StateObject", "optsConnection", "wuid", "eclSourceFile", "WorkunitsService", "espTime2Seconds", "StateObject", "Timer", "StateObject", "optsConnection", "wuid", "eclTimer", "WorkunitsService", "secs", "espTime2Seconds", "formatter", "parser", "d3FormatNum", "d3Format", "formatNum", "num", "DEFINITION_LIST", "definitionRegex", "PropertyType", "RelatedProperty", "metricKeyRegex", "_splitMetric", "fullLabel", "relProp", "index", "label", "labelParts", "measure", "ext", "splitLabelCache", "splitMetric", "key", "retVal", "formatValue", "item", "safeParseFloat", "val", "formatValues", "dedup", "keyParts", "avg", "min", "max", "stdDev", "StdDevs", "logger", "scopedLogger", "WorkunitCache", "Cache", "obj", "_workunits", "Workunit", "_Workunit", "StateObject", "WUStateID", "ResultCache", "eclResult", "Result", "result", "eclTimer", "Timer", "GraphCache", "eclGraph", "ECLGraph", "url", "Resource", "eclSourceFile", "SourceFile", "optsConnection", "response", "wuid", "state", "baseUrl", "server", "target", "ecl", "compileOnly", "wu", "WUUpdate", "opts", "WorkunitsService", "TopologyService", "request", "_cluster", "action", "resultLimit", "clusterPromise", "cluster", "WsWorkunits", "full", "meta", "scopes", "columns", "activityMap", "activity", "data", "i", "scope", "props", "formattedProps", "scopeProperty", "name", "rawValue", "rawValueInt", "formatNum", "normalizedScope", "definitionList", "parsedList", "processedDefinitions", "k", "matches", "maxStdDevs", "maxStdDevsSource", "row", "promises", "rawScope", "Scope", "scopeMap", "parentScopeID", "graphIDs", "rootTypes", "createGraph", "scopeInfo", "attr", "endTime", "parser", "formatter", "l", "r", "eventID", "propIDorCallback", "callback", "changeInfo", "resolve", "_", "watchHandle", "changes", "_request", "e", "exception", "includeResults", "deepMixinT", "actionType", "service", "WorkunitsServiceEx", "publishRequest", "command", "optsStr", "XMLNode", "debugState", "mode", "rootNode", "childNode", "id", "createXGMMLGraph", "path", "graph", "breakpointLocations", "edgeID", "startRow", "numRows", "rowNode", "cellNode", "ATTR_DEFINITION", "hasECLDefinition", "vertex", "getECLDefinition", "match", "_file", "_row", "_col", "definition", "_activity", "Activity", "_Activity", "StateObject", "optsConnection", "state", "SMCService", "clusterName", "awu", "Workunit", "request", "response", "debounce", "Cache", "scopedLogger", "StateObject", "logger", "scopedLogger", "LogicalFileCache", "Cache", "obj", "_store", "LogicalFile", "_LogicalFile", "StateObject", "optsConnection", "Cluster", "Name", "state", "retVal", "DFUService", "poc", "part", "row", "request", "response", "exception", "format", "Cache", "StateObject", "MachineCache", "Cache", "obj", "_machines", "Machine", "_Machine", "StateObject", "optsConnection", "address", "state", "retVal", "MachineService", "import_d3_format", "Cache", "StateObject", "scopedLogger", "Cache", "exists", "StateObject", "Cache", "StateObject", "TargetClusterCache", "Cache", "obj", "_targetCluster", "TargetCluster", "_TargetCluster", "StateObject", "machineInfoEx", "Machine", "optsConnection", "name", "state", "retVal", "TopologyService", "MachineService", "request", "response", "machineInfo", "maxDisk", "totalFree", "total", "machine", "storageInfo", "usage", "targetClusters", "connection", "item", "_defaultTargetCluster", "defaultTargetCluster", "firstItem", "defaultItem", "hthorItem", "defItem", "TopologyCache", "Cache", "obj", "_topology", "Topology", "_Topology", "StateObject", "tc", "TargetCluster", "optsConnection", "state", "retVal", "TopologyService", "type", "response", "rootProtocol", "ip", "port", "exists", "item", "binding", "request", "force", "eventID", "propIDorCallback", "callback", "safeAssign", "obj", "key", "value", "xmlEncode", "str", "espTime2Seconds", "duration", "match", "days", "hours", "mins", "secs", "ms", "us", "ns", "unitTest", "size", "unit", "nsIndex", "espSize2Bytes", "retVal", "espSkew2Number", "skew", "LocalisedXGMMLWriter", "graph", "items", "localisationDepth", "localisationDistance", "noSpills", "item", "vertex", "edge", "subgraph", "idx", "dedupEdges", "isPoint", "attrStr", "propsStr", "props", "key", "xmlEncode", "v", "ancestors", "parent", "v1", "v2", "v1_ancestors", "v2_ancestors", "finger1", "finger2", "retVal", "source", "inEdges", "target", "outEdges", "root", "xgmmlLen", "GraphItem", "id", "Subgraph", "subgraph2", "vertex2", "edge2", "visitor", "Vertex", "inVertices", "Edge", "QueryGraph", "_QueryGraph", "xgmml", "dom", "docNode", "attr", "safeAssign", "tagName", "childNode", "isSubgraph", "attNode", "graphNode", "name", "uname", "value", "espTime2Seconds", "espSize2Bytes", "espSkew2Number", "xgmmlWriter", "logger", "scopedLogger", "siFormatter", "d3Format", "isNumber", "QueryCache", "Cache", "obj", "_queries", "Query", "_Query", "StateObject", "optsConnection", "querySet", "queryID", "queryDetails", "WorkunitsService", "Topology", "queryId", "state", "retVal", "services", "espServer", "binding", "baseUrl", "EclService", "wsEclService", "e", "GraphName", "SubGraphId", "response", "graph", "QueryGraph", "first", "graphItem", "request", "wu", "Workunit", "promises", "meta", "data", "metric", "firstChar", "item", "existingProperties", "prop", "newProperties", "key", "firstCharOfKey", "value", "valueType", "rawValue", "formatted", "results", "resultName", "Cache", "Dispatch", "Message", "StoreCache", "Cache", "obj", "_store", "ValueChangedMessage", "Message", "key", "value", "oldValue", "other", "Store", "_Store", "Dispatch", "optsConnection", "Name", "Namespace", "UserSpecific", "StoreService", "broadcast", "response", "e", "retVal", "deletedValues", "pair", "callback", "Cache", "scopedLogger", "StateObject", "logger", "scopedLogger", "DFUWorkunitCache", "Cache", "obj", "_workunits", "DFUWorkunit", "_DFUWorkunit", "StateObject", "optsConnection", "dfuServerQueue", "retVal", "response", "wuid", "state", "server", "request", "service", "FileSprayService", "FileSpray", "full", "callback", "_request", "e", "actionType", "eventID", "propIDorCallback", "changeInfo", "resolve", "_", "watchHandle", "changes", "TopologyService", "exception", "logger", "cp", "crypto", "fs", "os", "path", "exists", "scopedLogger", "xml2json", "fs", "path", "Dictionary", "DictionaryNoCase", "find", "SAXStackParser", "scopedLogger", "XMLNode", "logger", "scopedLogger", "_inspect", "inspect", "obj", "_id", "known", "key", "id", "Attr", "xmlAttr", "Field", "definition", "xmlField", "ECLScope", "name", "type", "sourcePath", "xmlDefinitions", "line", "start", "body", "end", "definitions", "retVal", "Definition", "charOffset", "def", "defs", "qualifiedID", "qualifiedIDParts", "base", "find", "xmlDefinition", "attrs", "attr", "fields", "field", "Import", "xmlImport", "Source", "xmlSource", "nameParts", "fakeNode", "XMLNode", "imports", "imp", "scope", "isHiddenDirectory", "source", "isDirectory", "isEcl", "modAttrs", "path", "File", "Folder", "folder", "Workspace", "DictionaryNoCase", "Dictionary", "workspacePath", "eclccPath", "locateClientTools", "clientTools", "paths", "knownFolder", "folderPath", "refPath", "force", "child", "filePath", "filePathInfo", "pathNoExt", "parentStack", "removeDupID", "nameStack", "stack", "qid", "info", "sources", "_source", "depth", "metaXML", "metaParser", "MetaParser", "eclSource", "realQID", "partialID", "partialIDParts", "partialIDQualifier", "workspaceCache", "attachWorkspace", "_workspacePath", "workspace", "isQualifiedIDChar", "lineText", "charPos", "reverse", "testChar", "qualifiedIDBoundary", "SAXStackParser", "logger", "scopedLogger", "exeExt", "tidyCRLF", "inStr", "Version", "build", "parts", "match", "other", "ERROR", "WARN", "Errors", "checked", "EclccErrors", "stdErr", "errLine", "filePath", "row", "_col", "severity", "code", "_msg", "line", "col", "msg", "EnvchkErrors", "content", "_path", "_attr", "path", "pathParts", "lineIdx", "testStr", "walkXmlJson", "node", "callback", "stack", "key", "childNode", "child", "LocalWorkunit", "jsonWU", "retVal", "exists", "id", "item", "_stack", "file", "ClientTools", "_ClientTools", "eclccPath", "cwd", "includeFolders", "legacyMode", "args", "version", "additionalItems", "includePath", "response", "paths", "removeOnRead", "resolve", "_reject", "fileData", "xml2json", "err", "filename", "tmpName", "_response", "xmlPath", "attachWorkspace", "metaWorkspace", "execFileResponse", "e", "bundlesRegEx", "readme", "m", "installedText", "installedItems", "allProps", "ii", "infoText", "info", "props", "bundles", "installed", "b", "bundleUrl", "name", "cmd", "_toolName", "_notFoundError", "stdOut", "data", "_code", "_signal", "locateClientToolsInFolder", "rootFolder", "clientTools", "hpccSystemsFolder", "versionFolder", "allClientToolsCache", "clearAllClientToolsCache", "locateAllClientTools", "rootFolder86", "ct", "l", "r", "eclccPathMsg", "logEclccPath", "locateClientTools", "overridePath", "allClientToolsCache2", "buildVersion", "latest", "bestMajor", "ctVersion", "best", "root", "DOMParser", "fetch", "Headers", "Request", "Response", "Agent", "setGlobalDispatcher", "AbortController", "globalCA", "Buffer", "row", "trustwave", "str"]
|
|
3
|
+
"sources": ["../../../../node_modules/d3-array/dist/d3-array.js", "../../../../node_modules/d3-time/dist/d3-time.js", "../../../../node_modules/d3-time-format/dist/d3-time-format.js", "../../../../node_modules/d3-format/dist/d3-format.js", "../../src/index.node.ts", "../../src/pem/trustwave.ts", "../../src/__package__.ts", "../../src/espConnection.ts", "../../src/connection.ts", "../../src/services/wsdl/FileSpray/v1.27/FileSpray.ts", "../../src/services/fileSpray.ts", "../../src/services/wsdl/ws_access/v1.17/ws_access.ts", "../../src/services/wsAccess.ts", "../../src/services/wsdl/ws_account/v1.07/ws_account.ts", "../../src/services/wsAccount.ts", "../../src/services/wsCloud.ts", "../../src/services/wsdl/WsCloud/v1.02/WsCloud.ts", "../../src/services/wsdl/ws_codesign/v1.1/ws_codesign.ts", "../../src/services/wsCodesign.ts", "../../src/services/wsdl/WsDali/v1.07/WsDali.ts", "../../src/services/wsDali.ts", "../../src/services/wsdl/WsDfu/v1.67/WsDfu.ts", "../../src/services/wsDFU.ts", "../../src/services/wsdl/WsDFUXRef/v1.04/WsDFUXRef.ts", "../../src/services/wsDFUXRef.ts", "../../src/services/wsEcl.ts", "../../src/services/wsdl/ws_elk/v1/ws_elk.ts", "../../src/services/wsElk.ts", "../../src/services/wsLogaccess.ts", "../../src/services/wsdl/ws_logaccess/v1.08/ws_logaccess.ts", "../../src/services/wsMachine.ts", "../../src/services/wsdl/ws_machine/v1.19/ws_machine.ts", "../../src/services/wsdl/WsPackageProcess/v1.07/WsPackageProcess.ts", "../../src/services/wsPackageProcess.ts", "../../src/services/wsdl/WsResources/v1.01/WsResources.ts", "../../src/services/wsResources.ts", "../../src/services/wsdl/WsSasha/v1.01/WsSasha.ts", "../../src/services/wsSasha.ts", "../../src/services/wsSMC.ts", "../../src/services/wsdl/WsSMC/v1.28/WsSMC.ts", "../../src/services/wsdl/wsstore/v1.02/wsstore.ts", "../../src/services/wsStore.ts", "../../src/services/wsdl/WsTopology/v1.33/WsTopology.ts", "../../src/services/wsTopology.ts", "../../src/services/wsWorkunits.ts", "../../src/services/wsdl/WsWorkunits/v2.02/WsWorkunits.ts", "../../src/ecl/activity.ts", "../../src/ecl/workunit.ts", "../../src/ecl/graph.ts", "../../src/ecl/resource.ts", "../../src/ecl/result.ts", "../../src/ecl/xsdParser.ts", "../../src/ecl/scope.ts", "../../src/ecl/sourceFile.ts", "../../src/ecl/timer.ts", "../../src/ecl/logicalFile.ts", "../../src/ecl/machine.ts", "../../src/ecl/query.ts", "../../src/ecl/topology.ts", "../../src/ecl/targetCluster.ts", "../../src/ecl/queryGraph.ts", "../../src/ecl/store.ts", "../../src/ecl/dfuWorkunit.ts", "../../src/clienttools/eclcc.ts", "../../src/clienttools/eclMeta.ts"],
|
|
4
|
+
"sourcesContent": ["// https://d3js.org/d3-array/ v1.2.4 Copyright 2018 Mike Bostock\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\ntypeof define === 'function' && define.amd ? define(['exports'], factory) :\n(factory((global.d3 = global.d3 || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\nfunction bisector(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\nvar ascendingBisect = bisector(ascending);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\n\nfunction pairs(array, f) {\n if (f == null) f = pair;\n var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = f(p, p = array[++i]);\n return pairs;\n}\n\nfunction pair(a, b) {\n return [a, b];\n}\n\nfunction cross(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n\nfunction descending(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n\nfunction number(x) {\n return x === null ? NaN : +x;\n}\n\nfunction variance(values, valueof) {\n var n = values.length,\n m = 0,\n i = -1,\n mean = 0,\n value,\n delta,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean;\n mean += delta / ++m;\n sum += delta * (value - mean);\n }\n }\n }\n\n if (m > 1) return sum / (m - 1);\n}\n\nfunction deviation(array, f) {\n var v = variance(array, f);\n return v ? Math.sqrt(v) : v;\n}\n\nfunction extent(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\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 min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) 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 min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n\nvar array = Array.prototype;\n\nvar slice = array.slice;\nvar map = array.map;\n\nfunction constant(x) {\n return function() {\n return x;\n };\n}\n\nfunction identity(x) {\n return x;\n}\n\nfunction range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n\nvar e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction ticks(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nfunction tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n\nfunction sturges(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n\nfunction histogram() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisectRight(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n\nfunction quantile(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nfunction freedmanDiaconis(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n\nfunction scott(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n}\n\nfunction max(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\nfunction mean(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\nfunction median(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n numbers = [];\n\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n }\n\n else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n\n return quantile(numbers.sort(ascending), 0.5);\n}\n\nfunction merge(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n\nfunction min(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = 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 min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n\nfunction permute(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n}\n\nfunction scan(values, compare) {\n if (!(n = values.length)) return;\n var n,\n i = 0,\n j = 0,\n xi,\n xj = values[j];\n\n if (compare == null) compare = ascending;\n\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n\n if (compare(xj, xj) === 0) return j;\n}\n\nfunction shuffle(array, i0, i1) {\n var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n\nfunction sum(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n\nfunction transpose(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n\nfunction zip() {\n return transpose(arguments);\n}\n\nexports.bisect = bisectRight;\nexports.bisectRight = bisectRight;\nexports.bisectLeft = bisectLeft;\nexports.ascending = ascending;\nexports.bisector = bisector;\nexports.cross = cross;\nexports.descending = descending;\nexports.deviation = deviation;\nexports.extent = extent;\nexports.histogram = histogram;\nexports.thresholdFreedmanDiaconis = freedmanDiaconis;\nexports.thresholdScott = scott;\nexports.thresholdSturges = sturges;\nexports.max = max;\nexports.mean = mean;\nexports.median = median;\nexports.merge = merge;\nexports.min = min;\nexports.pairs = pairs;\nexports.permute = permute;\nexports.quantile = quantile;\nexports.range = range;\nexports.scan = scan;\nexports.shuffle = shuffle;\nexports.sum = sum;\nexports.ticks = ticks;\nexports.tickIncrement = tickIncrement;\nexports.tickStep = tickStep;\nexports.transpose = transpose;\nexports.variance = variance;\nexports.zip = zip;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n", "// https://d3js.org/d3-time/ v1.1.0 Copyright 2019 Mike Bostock\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\ntypeof define === 'function' && define.amd ? define(['exports'], factory) :\n(global = global || self, factory(global.d3 = global.d3 || {}));\n}(this, function (exports) { 'use strict';\n\nvar t0 = new Date,\n t1 = new Date;\n\nfunction newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n\nvar millisecond = newInterval(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 newInterval(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};\nvar milliseconds = millisecond.range;\n\nvar durationSecond = 1e3;\nvar durationMinute = 6e4;\nvar durationHour = 36e5;\nvar durationDay = 864e5;\nvar durationWeek = 6048e5;\n\nvar second = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds());\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});\nvar seconds = second.range;\n\nvar minute = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\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});\nvar minutes = minute.range;\n\nvar hour = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\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});\nvar hours = hour.range;\n\nvar day = newInterval(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});\nvar days = day.range;\n\nfunction weekday(i) {\n return newInterval(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\nvar sunday = weekday(0);\nvar monday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nvar sundays = sunday.range;\nvar mondays = monday.range;\nvar tuesdays = tuesday.range;\nvar wednesdays = wednesday.range;\nvar thursdays = thursday.range;\nvar fridays = friday.range;\nvar saturdays = saturday.range;\n\nvar month = newInterval(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});\nvar months = month.range;\n\nvar year = newInterval(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 : newInterval(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};\nvar years = year.range;\n\nvar utcMinute = newInterval(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});\nvar utcMinutes = utcMinute.range;\n\nvar utcHour = newInterval(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});\nvar utcHours = utcHour.range;\n\nvar utcDay = newInterval(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});\nvar utcDays = utcDay.range;\n\nfunction utcWeekday(i) {\n return newInterval(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\nvar utcSunday = utcWeekday(0);\nvar utcMonday = utcWeekday(1);\nvar utcTuesday = utcWeekday(2);\nvar utcWednesday = utcWeekday(3);\nvar utcThursday = utcWeekday(4);\nvar utcFriday = utcWeekday(5);\nvar utcSaturday = utcWeekday(6);\n\nvar utcSundays = utcSunday.range;\nvar utcMondays = utcMonday.range;\nvar utcTuesdays = utcTuesday.range;\nvar utcWednesdays = utcWednesday.range;\nvar utcThursdays = utcThursday.range;\nvar utcFridays = utcFriday.range;\nvar utcSaturdays = utcSaturday.range;\n\nvar utcMonth = newInterval(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});\nvar utcMonths = utcMonth.range;\n\nvar utcYear = newInterval(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 : newInterval(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};\nvar utcYears = utcYear.range;\n\nexports.timeDay = day;\nexports.timeDays = days;\nexports.timeFriday = friday;\nexports.timeFridays = fridays;\nexports.timeHour = hour;\nexports.timeHours = hours;\nexports.timeInterval = newInterval;\nexports.timeMillisecond = millisecond;\nexports.timeMilliseconds = milliseconds;\nexports.timeMinute = minute;\nexports.timeMinutes = minutes;\nexports.timeMonday = monday;\nexports.timeMondays = mondays;\nexports.timeMonth = month;\nexports.timeMonths = months;\nexports.timeSaturday = saturday;\nexports.timeSaturdays = saturdays;\nexports.timeSecond = second;\nexports.timeSeconds = seconds;\nexports.timeSunday = sunday;\nexports.timeSundays = sundays;\nexports.timeThursday = thursday;\nexports.timeThursdays = thursdays;\nexports.timeTuesday = tuesday;\nexports.timeTuesdays = tuesdays;\nexports.timeWednesday = wednesday;\nexports.timeWednesdays = wednesdays;\nexports.timeWeek = sunday;\nexports.timeWeeks = sundays;\nexports.timeYear = year;\nexports.timeYears = years;\nexports.utcDay = utcDay;\nexports.utcDays = utcDays;\nexports.utcFriday = utcFriday;\nexports.utcFridays = utcFridays;\nexports.utcHour = utcHour;\nexports.utcHours = utcHours;\nexports.utcMillisecond = millisecond;\nexports.utcMilliseconds = milliseconds;\nexports.utcMinute = utcMinute;\nexports.utcMinutes = utcMinutes;\nexports.utcMonday = utcMonday;\nexports.utcMondays = utcMondays;\nexports.utcMonth = utcMonth;\nexports.utcMonths = utcMonths;\nexports.utcSaturday = utcSaturday;\nexports.utcSaturdays = utcSaturdays;\nexports.utcSecond = second;\nexports.utcSeconds = seconds;\nexports.utcSunday = utcSunday;\nexports.utcSundays = utcSundays;\nexports.utcThursday = utcThursday;\nexports.utcThursdays = utcThursdays;\nexports.utcTuesday = utcTuesday;\nexports.utcTuesdays = utcTuesdays;\nexports.utcWednesday = utcWednesday;\nexports.utcWednesdays = utcWednesdays;\nexports.utcWeek = utcSunday;\nexports.utcWeeks = utcSundays;\nexports.utcYear = utcYear;\nexports.utcYears = utcYears;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n}));\n", "// https://d3js.org/d3-time-format/ v2.3.0 Copyright 2020 Mike Bostock\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-time')) :\ntypeof define === 'function' && define.amd ? define(['exports', 'd3-time'], factory) :\n(global = global || self, factory(global.d3 = global.d3 || {}, global.d3));\n}(this, function (exports, d3Time) { 'use strict';\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? d3Time.utcMonday.ceil(week) : d3Time.utcMonday(week);\n week = d3Time.utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? d3Time.timeMonday.ceil(week) : d3Time.timeMonday(week);\n week = d3Time.timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + d3Time.timeDay.count(d3Time.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(d3Time.timeSunday.count(d3Time.timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(d3Time.timeThursday.count(d3Time.timeYear(d), d) + (d3Time.timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(d3Time.timeMonday.count(d3Time.timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + d3Time.utcDay.count(d3Time.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(d3Time.utcSunday.count(d3Time.utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(d3Time.utcThursday.count(d3Time.utcYear(d), d) + (d3Time.utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(d3Time.utcMonday.count(d3Time.utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n\nvar locale;\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\nfunction defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.timeFormat = locale.format;\n exports.timeParse = locale.parse;\n exports.utcFormat = locale.utcFormat;\n exports.utcParse = locale.utcParse;\n return locale;\n}\n\nvar 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 : exports.utcFormat(isoSpecifier);\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 : exports.utcParse(isoSpecifier);\n\nexports.isoFormat = formatIso;\nexports.isoParse = parseIso;\nexports.timeFormatDefaultLocale = defaultLocale;\nexports.timeFormatLocale = formatLocale;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n}));\n", "// https://d3js.org/d3-format/ v1.4.5 Copyright 2020 Mike Bostock\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\ntypeof define === 'function' && define.amd ? define(['exports'], factory) :\n(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));\n}(this, (function (exports) { 'use strict';\n\nfunction formatDecimal(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nfunction formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, \u00B1Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n\nfunction exponent(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n\nfunction formatGroup(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n\nfunction formatNumerals(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nfunction formatTrim(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n\nvar prefixExponent;\n\nfunction formatPrefixAuto(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n\nfunction formatRounded(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n\nvar formatTypes = {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n\nfunction identity(x) {\n return x;\n}\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"\u00B5\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nfunction formatLocale(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer \u201Cvalue\u201D part that can be\n // grouped, and fractional or exponential \u201Csuffix\u201D part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n\nvar locale;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nfunction defaultLocale(definition) {\n locale = formatLocale(definition);\n exports.format = locale.format;\n exports.formatPrefix = locale.formatPrefix;\n return locale;\n}\n\nfunction precisionFixed(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n\nfunction precisionPrefix(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n\nfunction precisionRound(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n\nexports.FormatSpecifier = FormatSpecifier;\nexports.formatDefaultLocale = defaultLocale;\nexports.formatLocale = formatLocale;\nexports.formatSpecifier = formatSpecifier;\nexports.precisionFixed = precisionFixed;\nexports.precisionPrefix = precisionPrefix;\nexports.precisionRound = precisionRound;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n", "// DOM Parser polyfill ---\nimport { root } from \"@hpcc-js/util\";\nimport { DOMParser } from \"@xmldom/xmldom\";\nroot.DOMParser = DOMParser;\n\n// fetch polyfill ---\nimport fetch, { Headers, Request, Response, } from \"node-fetch\";\n\nimport * as https from \"node:https\";\nimport { Buffer } from \"node:buffer\";\nimport { Agent, setGlobalDispatcher } from \"undici\";\n\nif (typeof root.fetch === \"undefined\") {\n // NodeJS < v18 ---\n root.fetch = fetch;\n root.Headers = Headers;\n root.Request = Request;\n root.Response = Response;\n root.fetch.__rejectUnauthorizedAgent = new https.Agent({\n rejectUnauthorized: false\n });\n} else {\n // NodeJS >= v18 ---\n root.fetch.__defaultAgent = new Agent();\n root.fetch.__rejectUnauthorizedAgent = new Agent({\n connect: {\n rejectUnauthorized: false\n }\n });\n root.fetch.__setGlobalDispatcher = setGlobalDispatcher;\n}\n\n// AbortController polyfill ---\nimport AbortController from \"abort-controller\";\nif (typeof root.AbortController === \"undefined\") {\n root.AbortController = AbortController;\n}\n\nimport { trustwave } from \"./pem/trustwave.ts\";\n\nlet globalCA = \"\";\nif (https.globalAgent.options.ca !== undefined) {\n if (Array.isArray(https.globalAgent.options.ca) && https.globalAgent.options.ca.length) {\n if (typeof https.globalAgent.options.ca[0] === \"string\") {\n globalCA = https.globalAgent.options.ca.join(\"\\n\");\n } else if (https.globalAgent.options.ca[0] instanceof Buffer) {\n globalCA = https.globalAgent.options.ca.map(row => row.toString()).join(\"\\n\");\n }\n } else if (typeof https.globalAgent.options.ca === \"string\") {\n globalCA = https.globalAgent.options.ca;\n } else if (https.globalAgent.options.ca instanceof Buffer) {\n globalCA = https.globalAgent.options.ca.toString();\n }\n globalCA += \"\\n\";\n}\n\nroot.fetch.__trustwaveAgent = new https.Agent({\n ca: globalCA + trustwave\n});\n\nexport * from \"./index.common.ts\";\n\n// Client Tools ---\nexport * from \"./clienttools/eclcc.ts\";\nexport * from \"./clienttools/eclMeta.ts\";\n", "export const trustwave = `\nTrustwave Secure Global Extended Validation CA, Level 1\nSecureTrust Corporation\n00F6F61CE4A3635BB0CA8AACEEFCB2D0F0\n-----BEGIN CERTIFICATE-----\nMIIE+DCCA+CgAwIBAgIRAPb2HOSjY1uwyoqs7vyy0PAwDQYJKoZIhvcNAQELBQAw\nSjELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRkwFwYDVQQDExBTZWN1cmUgR2xvYmFsIENBMB4XDTE1MDgxMjIwMTcyOVoXDTI1\nMDgwOTIwMTcyOVowgbgxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQ\nMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMUAwPgYDVQQDEzdUcnVzdHdhdmUgU2VjdXJlIEdsb2JhbCBFeHRlbmRlZCBW\nYWxpZGF0aW9uIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdh\ndmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx6D45slgLGq8\n2G/NPFnuFscv7UM1eRoQyx3h0DdSTfoRvHkkNv4Gf6OudZDOXqwV86v/SjcNEP87\nnjMOEqQ7dKQPtiYzEkK0MOrjbRySFC5dvCTI9T8tnBgFpYA9YXwbpUqXxEi0Ayoq\nhA7UQhS7Q+YGrVwZaJ6LiWrQw+x8ACPLqEvPmMZhrxagKwrsKbylMsAQ1ljk8X74\nJ76TSxi/AZpxos7tHD0XbO8elXFZexfsgPLDRpMs6jREVeQj1jVCWLtg9twiXzcI\naUCchBsTSc92WGkKwBnH70dlL2N8kT/BNe3tAsXuBpZRILANY59jLrLnHEJNfado\nt6ZpougolQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4E\nFgQUx33qXRmrVNT6P+ZKc956sjwdbC4wDgYDVR0PAQH/BAQDAgGGMD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TR0NBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NHQ0EuY3J0MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr\nBgEFBQcDATAfBgNVHSMEGDAWgBSvRATCQX5Ig9tOOQLs7IR65s7JpDANBgkqhkiG\n9w0BAQsFAAOCAQEAkn/4wKQRLo41fDRkZtfF+3o8JtUmfQXf2zoo9Ll29hhCiz8k\nBOpIek9MrFd/cdNgUw1nckIi+J3udyFrbO5p64JBvtc0K4kAOPFSKpHssFcnRLPx\nFXgGxXq6ohD4Py+xaEApslYFfMy89N6DKs/v/10/+/xD831RFEUMUoQxBimsmmNf\n+cLoMwF5bpoSz9JcWqCmSlK0Nla1dPphaoA/MObLN2iQPpeM3yF5dTUm1tPxe39W\nOlr6nLU1xO+yRDrlGLXrVDP1l1/qGVuwi+xufIAcdFycLLBjSSNX7LOIK3tbva7A\nWctLUs+qhIlUrbPyFERm7YOY4SttWdozeYFNfg==\n-----END CERTIFICATE-----\n\nSecureTrust Domain Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E80B1BAF9870A7C4B6CBE401A32D68\n-----BEGIN CERTIFICATE-----\nMIIEfzCCA2egAwIBAgITBvHsAOgLG6+YcKfEtsvkAaMtaDANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfDEyMDAGA1UEAxMpU2VjdXJlVHJ1c3QgRG9tYWluIFZhbGlk\nYXRpb24gQ0EsIExldmVsIDExFDASBgNVBAoTC1NlY3VyZVRydXN0MRAwDgYDVQQH\nEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjRHBw8iIivBBrfE6HqexQK0oMt2Y/\nx8jO3fN96KEazZwEoGidwloRBk2Q7VfVvZ0ZDk+qwJZGLZJLS1ntGaZLH4/Iel+r\nPnp36IVF7J5MNDB+K81a/y9svEMfDu0p3FdlBUyhHvizZ/zFNP3tolmQfZ7T0mGL\n7lutlNAzFYoVTUlVeF5cSC8Yca906TEKyizYXuXcY8Diee+t+fQRHmSI5Hk5kyXD\nYFWcf2tXEfdkuFlDjJ7HPdFyfJzrNjD+cbqt8R5rZKnK1GNVP1dXm0cIYS+BMlMa\nCC1yF18oygbnOZLw5fDv9bxs4MOgF8E/Iypw0hLQHVkuD8wAvxVgPsqvAgMBAAGj\nggEsMIIBKDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNV\nHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQUYt6tehfefLfDfCMXo7Em5UbXOvQw\nHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYDVR0gBDowODA2BgRV\nHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2VjdXJldHJ1c3QuY29t\nL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9T\nVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGGGmh0dHA6Ly9vY3Nw\nLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQAHXPYhl+++o//di2Qm\naWGmC1ijxbGbKA4jOSDRvQfxlWOVkqPF11Dpxz+V8Rxw7QFFVoJ5mHpfoXtQOijV\ntsCFknxTKgzQeArNkZrkXBNpYOJAcuc5v0eX0OllBWgVdIvZRl2TM5L/u1WFrlPr\nqwWdEYTkinQwgAHXVV/7WZi6c4StcqNnlw93mlvN6Vspzaf/mWtcYp+aqT9vrqHt\nyNR1k8Ri5eIRPIU0B8woiXTj3bifLg6/O217SY5cWwQKCMFsa6nGWoRVCJ0JJXa0\nZ+m3mPQD2OcW5YMrynhL2VWohyfZAjB8l/NZaeRT7M+vki56fxbx3Bk2lqy8Z1Zz\nWd5m\n-----END CERTIFICATE-----\n\nSecureTrust Extended Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E31E46D341B2B2633CE480D915F81D\n-----BEGIN CERTIFICATE-----\nMIIEizCCA3OgAwIBAgITBvHsAOMeRtNBsrJjPOSA2RX4HTANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfjE0MDIGA1UEAxMrU2VjdXJlVHJ1c3QgRXh0ZW5kZWQgVmFs\naWRhdGlvbiBDQSwgTGV2ZWwgMTEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxEDAOBgNV\nBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS6vRtFpCJBJ7zJODH07Y3k54Qn\nVIBhnQmmWoqFqzCVMX97GAyAfzjcQrhl/TNiJiRCrVQWPI4n0R8eUd91Ab1Qzfsr\nnp+0NRbagVDa6+nF0KcNxbSZ6/iZQ7Ac3HyhCvJS2rH2CVYlzqdsrxDXcZk69jOO\ndPV8+w+7eNIn34BKpB/ZF7iXApDoAKG81kg1VtpGOxJhxTsKLuJmURT4pQjtZqF+\nF6rN64j5T2DOK0gOA4G7BLoTdOQuXkPS38LXKgZ43lKqEenjmiOaMF/XuLYzaHrW\nGYgCM2wJsykgdB9hCsTTEwsHRZzt2q9mLBDvYYWVhql1/kR4K/RN4JdESEECAwEA\nAaOCATYwggEyMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0G\nA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAdBgNVHQ4EFgQUA6uAxlUKKpWh\n4Nf+GubAynjMsJYwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYD\nVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2Vj\ndXJldHJ1c3QuY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9TVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQB1\nfzAmGGmtbJyIvOfjq2McCpUoYkXAq6JTN51+nb9NDAihhDoTKMde+801bC1/l54h\nxPPm4HImM6GK6LFckDew/FGwbdRbEznUOJ7uVL5ploNBIjte23kTBUZa9fx3+aXK\nhUTAipSyPtNjnOwVVBVXzrMynfMhdsyRRe7gLXNFYCXIxtks3IkIpuYnc86NAuV9\nnBLFlZzgmbAsW+tMc5QsNvQJ9pQ539K8cqZaM+HFCScreDERxmNtHHbMw+hCa2yL\nOj4ntekgWLO8KQbE0lPUNLIM17QK8aktJavj+GezBztKMmJJwhVYQy9nxS388ApX\nxcZsEgIzOCeH0SOWg4FA\n-----END CERTIFICATE-----\n\nSecureTrust Organization Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E58E9ADD372C871D25843FDAB852D9\n-----BEGIN CERTIFICATE-----\nMIIEkDCCA3igAwIBAgITBvHsAOWOmt03LIcdJYQ/2rhS2TANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowgYIxODA2BgNVBAMTL1NlY3VyZVRydXN0IE9yZ2FuaXphdGlv\nbiBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMRQwEgYDVQQKEwtTZWN1cmVUcnVzdDEQ\nMA4GA1UEBxMHQ2hpY2FnbzERMA8GA1UECBMISWxsaW5vaXMxCzAJBgNVBAYTAlVT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4QVBCdYToXFIfzd1SQfi\nTEgg1bwHXM2cE2VsyxwWK8NEFH8zMYdKy2hYOAjbfpm0xE6q4TQzS8KL2vAtCNyY\nVrwX7d3IvKR25H5s1LUDeQXSl1JBBZCtgJf2caJcwaYa6n2pZ0EKt3wBB+QteSFn\n57ENB37T13y7Nn8gCt9ZZaPYqRWxHcPaIWO3CVzQZ3tXjCLqzJMCV2KqhK85DZk3\nwo33Zb6cyYDkerDbWyric+10dJ/wdgE49dkfyZxVxEGpHg1SCSJdHjGb4z85Zx/u\neBpxBS6g3dfrkDjjT3MUxyNS4EaRTZp7o/2EqVCYDWJDM1HcOZL64kyWyi0d9jqA\n7wIDAQABo4IBNjCCATIwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC\nAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBR/QuNI\nbljpLrlhyGp3tPcDuM1qWjAfBgNVHSMEGDAWgBRCMrYW+gT9/l1LesP990xAHVpD\nrzBBBgNVHSAEOjA4MDYGBFUdIAAwLjAsBggrBgEFBQcCARYgaHR0cHM6Ly9jZXJ0\ncy5zZWN1cmV0cnVzdC5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2Ny\nbC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMDYGCCsGAQUFBwEBBCowKDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wDQYJKoZIhvcNAQELBQAD\nggEBAIwGM/ejz4Hbjf7Vc11gS8jzf+BwtZq9N4t1Nibj4rIDsW2G2jDE0S7fCN2m\nMhq76xkfnwfXhBbXDEKz6rj/M0G2u1kHw4Y8ZtKSzYEyRtgpeBFm4qU6voCSREpD\nFJXsL+Go2/YLRSE6xkWVSocklxppx4hi5o/RVdMMQept6ooOSFzBpH5XZYUoblKi\n99Yj0FUe8egIa9qSts42TObTpH1YVRMDnH3k2MNX3rcgPf9v/QO9Cf8W6RQ2+X3R\nCaYMPdL5OIKh4RGYjxXe3LpgiTKBWik/ZWTFL5sZSjetrJFl50NONzTc8E+BJtrx\nVCHAI2OcWyloxrYd4zMipw0YjDw=\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00DDEDF6F64298490E694C36EFA422C88F\n-----BEGIN CERTIFICATE-----\nMIIE7jCCA9agAwIBAgIRAN3t9vZCmEkOaUw276QiyI8wDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMDExOTIyMzJaFw0yNDA5\nMjgxOTIyMzJaMIGvMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE3MDUGA1UEAxMuVHJ1c3R3YXZlIERvbWFpbiBWYWxpZGF0aW9uIFNIQTI1NiBD\nQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNvbTCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNr4Z91k7AKM+Pz5XXWTIuVeMts\nPU2W/pI4WdEHG9Zab1EOWPLbthB6fzUJLLLBBk1wy2OM9yG1HywB/CwfGHcoKS8Z\n/efGV+ZKTzEpIestriUWx7wUnzxKzGML48Xv7sNuY1Crru5Hgce1Ax5uOfP7OB6t\norbMunvKQC10WcSrqFg6LapZ0UhgGmQzdjYguOBF6WZJR3QLghQaNrSUZuA6neXR\ncUsBgmzrxiEVHyzt+lmnYFMFvKVwGOyIZ2RU2LAFthS6UDDrSLGsJysxc1MK1Sti\n/VP8e8wj9rJdmiWNfA+lz6hDAPzRbv+WVJNoHEGbIx8rai+rVMiLy2HIbPsCAwEA\nAaOCAWkwggFlMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPQc4jqvtqTk\n2emd/u8cd6VjPe+IMA4GA1UdDwEB/wQEAwIBhjBIBgNVHSAEQTA/MD0GDysGAQQB\nge0YAwMDAwQFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TVENBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IB\nAQAjoDrTysopn7t+onDZ6rZSQW8rYlWZQpSiNHrq9xAAcMExrhcN0bQC9OQ+VRci\noMDascvwum7hVkyh2w2Ad7lC3Ir9gIuA8HycjqQJ4t1eSF3geYyf8lp259ztZ/TO\nxSAwJ9W0Szc8fslOA0SWlyA3lnRVcYVu54Idc1dPXXBxwlQ1NUCYgcsXZs+6QjLL\nYhYL85DhuitQSddoYemGpfVJnaYH9tBiWmwtzwc4qsVqTsKEJ/1zYAy2GrEAv8sB\nFKSfMNMopBmmDA8/aCIW/tH6KTD2DC15QQwL6yAUbSa5mhzFSA9O8zmF881YwBVG\nn+z3isMPClgpNw/eWSbaSLZ+\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n390A3F7EECA8FB4347DCAF701861662B\n-----BEGIN CERTIFICATE-----\nMIIE/zCCA+egAwIBAgIQOQo/fuyo+0NH3K9wGGFmKzANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzMloXDTI0MDky\nOTE0MzUzMlowga8xCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTcwNQYDVQQDEy5UcnVzdHdhdmUgRG9tYWluIFZhbGlkYXRpb24gU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs2vhn3WTsAoz4/PlddZMi5V4y2w9\nTZb+kjhZ0Qcb1lpvUQ5Y8tu2EHp/NQksssEGTXDLY4z3IbUfLAH8LB8YdygpLxn9\n58ZX5kpPMSkh6y2uJRbHvBSfPErMYwvjxe/uw25jUKuu7keBx7UDHm458/s4Hq2i\ntsy6e8pALXRZxKuoWDotqlnRSGAaZDN2NiC44EXpZklHdAuCFBo2tJRm4Dqd5dFx\nSwGCbOvGIRUfLO36WadgUwW8pXAY7IhnZFTYsAW2FLpQMOtIsawnKzFzUwrVK2L9\nU/x7zCP2sl2aJY18D6XPqEMA/NFu/5ZUk2gcQZsjHytqL6tUyIvLYchs+wIDAQAB\no4IBezCCAXcwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU9BziOq+2pOTZ\n6Z3+7xx3pWM974gwDgYDVR0PAQH/BAQDAgGGMDIGA1UdHwQrMCkwJ6AloCOGIWh0\ndHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9TVENBLmNybDA9BgNVHSAENjA0MDIGBFUd\nIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3YXZlLmNvbS9DQTBs\nBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnRydXN0d2F2\nZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1\nZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIy\nthb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRydXN0d2F2ZS5jb20w\nDQYJKoZIhvcNAQELBQADggEBAFcdG0/3P/CkeGb76tz/mn1viDZiftD05i9Jw70k\nH9ulRwdCHgzhSZVN5zHvG919oHA9WHbxH04J+iAnVl1+FjoDNN+A+2icy2WXqH9w\ngaNUGyUwLdo0JCfgUeGbrCF6WUYCj47pS7zAY02CdGlstZZsqouXK3RnOMKOD3Dq\nf5kiSh56KvhW/F0OZY7PAbdV79LVAiSTiAFdoe/jMjmj8fqXOiCIjllqH/O9/DAm\nRwQStFpauwR+nBbFhq4sYwlZQvJ0NvIxN5JOTECTkMM+X21kf8mrwRdxBfw0YEPa\nUTeZhFr48Fwvnt4jpo7gqpJzt7jjsbWPd1FHtey2Q8zmSHY=\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00C1BD27B383958D0D8BCA5E4F08D009D9\n-----BEGIN CERTIFICATE-----\nMIIFGDCCBACgAwIBAgIRAMG9J7ODlY0Ni8peTwjQCdkwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMTMxODE3MzlaFw0yNDEw\nMTAxODE3MzlaMIGxMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE5MDcGA1UEAxMwVHJ1c3R3YXZlIEV4dGVuZGVkIFZhbGlkYXRpb24gU0hBMjU2\nIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAre9mHLqiv689FWIk7PaeQLuW\nos8ldRX4rNLHeD7/X7JrTfaXuIQaLfrUODtyRaZs0LtJsEHgpr7dUonDIH69PjBP\nrHg+hBLu7ob4udEx3J03NQSdnR/fqPY0ZMH2NP7e9TFSKKctZ/SmzA8jGclVmdiT\nGg1bTx6xgWuPWq9OprIQSgkP5NRe1GeTQ7U/E1zxLqaw6PeQWjESHPGeilyw0jr6\nqVyHM5ack9ps60sN3CKNGushyaQe3w2bYxRJ9RRH/sILCAmmTbjc/cXrGQMGdaYt\naiGnXbc45r39cqfbynZ71hPPNEtFbOdqk3C7I8vrhIHiKaAtFkTMRSWmHHk4HwID\nAQABo4IBkTCCAY0wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU5eQkWRUy\nJ8kgs0ICbLDvMt6bIFowDgYDVR0PAQH/BAQDAgGGMGYGA1UdIARfMF0wDAYKKwYB\nBAGB7RgDADAOBgxghkgBhv1kAQECBAEwPQYPKwYBBAGB7RgDAwMDBAMDMCowKAYI\nKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCsw\nKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMGwGCCsG\nAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3YXZlLmNv\nbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMv\nU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQY\nMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IBAQCly1p1\nrvcOlRS+ODBLb2kYHd4q+cXDl65X+IQ7hOlXg9dpa7CzSAGNNpzhyYMbE48mB/RE\nBXxbZkMzEhWPFj+4jdGNsmX0zjEWatJWsnNVxpA7hDR0iZssezu86oDQ/sbVoaXj\n0a5jB2cZsnMS5287CNDk5i+ImruhbMAYV9sadliXoDy3y01Sv+FLMx39C5UhYhWU\ngvoT9igbSCoc/DPOukEDqsnKMmDqTf3JzuFI1CbJcR6M8R1hAda4mZrxIdGcbT8R\nXp8JQ8Vuv/+plPMcAiZ2Bzed0hPVr5A1Mz8K8w9OyORGlRwjWS65jsr26bjMCcfj\npvuAANrc0Alu4nJC\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n35962F305C5A0BEC400D4E9877528C65\n-----BEGIN CERTIFICATE-----\nMIIFCzCCA/OgAwIBAgIQNZYvMFxaC+xADU6Yd1KMZTANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzNFoXDTI0MDky\nOTE0MzUzNFowgbExCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTkwNwYDVQQDEzBUcnVzdHdhdmUgRXh0ZW5kZWQgVmFsaWRhdGlvbiBTSEEyNTYg\nQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNhQHRydXN0d2F2ZS5jb20wggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt72YcuqK/rz0VYiTs9p5Au5ai\nzyV1Ffis0sd4Pv9fsmtN9pe4hBot+tQ4O3JFpmzQu0mwQeCmvt1SicMgfr0+ME+s\neD6EEu7uhvi50THcnTc1BJ2dH9+o9jRkwfY0/t71MVIopy1n9KbMDyMZyVWZ2JMa\nDVtPHrGBa49ar06mshBKCQ/k1F7UZ5NDtT8TXPEuprDo95BaMRIc8Z6KXLDSOvqp\nXIczlpyT2mzrSw3cIo0a6yHJpB7fDZtjFEn1FEf+wgsICaZNuNz9xesZAwZ1pi1q\nIaddtzjmvf1yp9vKdnvWE880S0Vs52qTcLsjy+uEgeIpoC0WRMxFJaYceTgfAgMB\nAAGjggGFMIIBgTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTl5CRZFTIn\nySCzQgJssO8y3psgWjAOBgNVHQ8BAf8EBAMCAYYwMgYDVR0fBCswKTAnoCWgI4Yh\naHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMD0GA1UdIAQ2MDQwMgYE\nVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NB\nMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lz\nc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRy\ndXN0d2F2ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAGUMIDkrvlMJ0wHLuP3lkneC\nwGU6mZ3g17jyU2RJwhRinYctraryG7Jh20DQ9/ppTHoxTIADw2JDsC5ByplabteQ\nnLghrl17K1b6PO+rzWA/NFKVwo6u8Gh7Lz0iUuit7ZBD4eKcRedxRZcPQlnD9KTR\nIs94SRpootsuCv/Y5b+1FMPV1KrYtbco9yEVlaNEWLpmiEsqvLjxiWEmt71rzz+0\nS59OtA/ihnbGP9Xrnhe7wf1ybCNOO5gZQMKr/OszfLZ7oVKACGOPLlcSZRRW98gA\nszE+1ZvlHkdjamfTSs4yMvUorYn9NhXnjAWl28NuD9m3FPiE2O50ezEDnHTiaOQ=\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n4B2C6646F434775B67DF34A04DD504E6\n-----BEGIN CERTIFICATE-----\nMIIE/TCCA+WgAwIBAgIQSyxmRvQ0d1tn3zSgTdUE5jANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE0MTAwMTE5MjIzNloXDTI0MDky\nODE5MjIzNlowgbUxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMT0wOwYDVQQDEzRUcnVzdHdhdmUgT3JnYW5pemF0aW9uIFZhbGlkYXRpb24gU0hB\nMjU2IENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29t\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA49OohlJHBJ/juiQTmibO\nS28pHvCCp1bPOc6elQ62DCYE/A14JXUtI8yaUc9nFjh6dNzR7KjFPEq/qDplQl7f\n1Tvh5ifBNNP2wQ6e820TWlPO4HhR/5g4+3iFmJ1N7kFrxDp1/P8e3+9lcJsXckXC\ntfFkQ9slogJqnaCsipgdrH4gQhicFAL5YqHw2AKfctZLSPpxhI3xISMV/lIQwZPW\nI2221v9ALckokh5pW6dTK8x8yNUUye1zt5msWzqunfBjVYVUj5/LXu46hS99Mfxu\n80ARJRyHsXIuHbMzwVXGqKVPZfKAdHBl5e3ElCjNwNy+Hgi09vS7PoAUhjCf/wbO\nnQIDAQABo4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUys4d\nGAN3HhzzfFiymnCoCIAW9K4wDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYP\nKwYBBAGB7RgDAwMDBAQDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0\nd2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdh\ndmUuY29tL1NUQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50\ncnVzdHdhdmUuY29tL2lzc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUH\nAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0G\nCSqGSIb3DQEBCwUAA4IBAQBN/Qb6x5VSQHIt/FqvXAkjfCI7jwXGzRoxThavUqv0\npJr1azXKv2L2ye9Sl4OCqiDHZ8ZJZ/Z19Ae1yvGTpG++0O5dWTHZ8qy/JSj17Mg1\nvWiefVpJKtkYflzhC9B9/eB3QuKVTRKDqm1ZC9kbm3MWOwtnEOw4WURWS1X2v4Hv\n2AJaXe11ZRqjx7/c6U50tYp3eVpRDCw7bOIXRffLG0oibhjHiEu8dgq7KkTSrx9m\nQFS6T2x9GLiJKhj2mEfPuGr73TfBPyKsRBymOpG67LThKVnwoUfH3pghA6VkZp5Z\n1Vm6AcDm+eelf5XPvZtNve4evLVPYueA3TmGyxXh1m2d\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n0092B8744F71CED0E26C72A3D8D5D925B2\n-----BEGIN CERTIFICATE-----\nMIIFEDCCA/igAwIBAgIRAJK4dE9xztDibHKj2NXZJbIwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNjA5MDExNDM1MzVaFw0yNDA5\nMjkxNDM1MzVaMIG1MQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE9MDsGA1UEAxM0VHJ1c3R3YXZlIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIFNI\nQTI1NiBDQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNv\nbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPTqIZSRwSf47okE5om\nzktvKR7wgqdWzznOnpUOtgwmBPwNeCV1LSPMmlHPZxY4enTc0eyoxTxKv6g6ZUJe\n39U74eYnwTTT9sEOnvNtE1pTzuB4Uf+YOPt4hZidTe5Ba8Q6dfz/Ht/vZXCbF3JF\nwrXxZEPbJaICap2grIqYHax+IEIYnBQC+WKh8NgCn3LWS0j6cYSN8SEjFf5SEMGT\n1iNtttb/QC3JKJIeaVunUyvMfMjVFMntc7eZrFs6rp3wY1WFVI+fy17uOoUvfTH8\nbvNAESUch7FyLh2zM8FVxqilT2XygHRwZeXtxJQozcDcvh4ItPb0uz6AFIYwn/8G\nzp0CAwEAAaOCAYUwggGBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMrO\nHRgDdx4c83xYsppwqAiAFvSuMA4GA1UdDwEB/wQEAwIBhjAyBgNVHR8EKzApMCeg\nJaAjhiFodHRwOi8vY3JsLnRydXN0d2F2ZS5jb20vU1RDQS5jcmwwPQYDVR0gBDYw\nNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwbAYIKwYBBQUHAQEEYDBeMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC50\ncnVzdHdhdmUuY29tMDUGCCsGAQUFBzAChilodHRwOi8vc3NsLnRydXN0d2F2ZS5j\nb20vaXNzdWVycy9TVENBLmNydDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wGwYDVR0RBBQwEoEQ\nY2FAdHJ1c3R3YXZlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAC0OvN7/UJBcRDXch\nA4b2qJo7mBD05+XR96N7vucMaanz26CnUxs1o8DcBckpqyEXCxdOanIr+/UJNbBL\nXLJCzNLJEJcgV9TjbVu33eQR23yMuXD+cZsqLMF+L5IIM47W8dlwKJvMy0xs7Jb1\nS3NOIhcoVu+XPzRsgKv8Yi2B6l278RfzegiCx4vYJv0pBjFzizEiFH9bWTYIOlIJ\nJSM57hoICgjCTS8BoEgndwWIyc/nEmlYaUwmCo9QynY+UmW1WPWmVITEJPMdMK6A\nZqvvaWmuHJ6/vURaz+Hoc5D3z0yJDDCkv52bXV04ZoF6cbcWry7JvNA+djvay/4B\nRR4SZQ==\n-----END CERTIFICATE-----\n\nSecureTrust TWG Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C25181828DAC4F5F7DE4AFC87AD132\n-----BEGIN CERTIFICATE-----\nMIIG2zCCBMOgAwIBAgITBy8w6cJRgYKNrE9ffeSvyHrRMjANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMjAxMDA4MDY0OTQwWhcNMzAxMDA4MDY0ODQwWjBWMQswCQYDVQQGEwJVUzEUMBIG\nA1UEChMLU2VjdXJlVHJ1c3QxMTAvBgNVBAMTKFNlY3VyZVRydXN0IFRXRyBTZWN1\ncmUgRW1haWwgQ0EsIExldmVsIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCcD5Wc7H480gOv3ae6SELBls0oNOvpw1ZFjK55nLw+W6PhgqTGNEHlO/Ga\nWt13yS1iO1/WzRaUc2XsFRGcjv3QIfDZb+6UzhL1LL9ZE8zcs0B6fepn4smQg1yK\ngtAWGoD70Z9kEBtypkG23sO5xIiRACJWgRWVZ/891pQBBz+ElCxUnIyDGghHlWCD\nzn5dLoBIVic69Pfpi384uNoNfHV/WATUQEEnwY+5yMMUALAWrRD6Jeh5R4m9qKxG\nUlrO9ObDebK9mFEJvrCPtkTIWT1He4ZD58Lt0NIkaItQ7KsKF9wgwH7BTsRGwQXb\nP6/0LvfO8UDRKNE/4C39u9dwUw/Zpu2iNXTadVWBtaSDsrPFVb5rBu+pvn4l4Hw5\njtySyHAOWn4mhuxDXMuKBtaoTi/qF94d7N0CbqPdN9WSN79Cy2O0BexTGHSJVndX\nEbKyn96b5STPshKVpG9DmUekfnDtnHR9dmH74a05X/A8k/XeSJWXphM6NvyZap2A\nWiIkrS7MsfwnCdZlX+9WGY2qHxnm4Y6JdNah0qxozBbQHkqHsSN4k8O7zr2lfZhC\nuarm0Q1t6tjsmp7PUh26u6PCe0m+MctIrD6ZckUzZeuPduRb55K2p8MxjQSVNH1S\nJ2aaHp77qOYV+rvHXIL7le4OR5lDWyzYtXLc8u17/kLbUtgnmQIDAQABo4IBbTCC\nAWkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwQwHQYDVR0OBBYEFKpD9MNsQCriSoEcg6nez7XhG7bOMB8GA1Ud\nIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMEEGA1UdIAQ6MDgwNgYEVR0gADAu\nMCwGCCsGAQUFBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA1\nBgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dD\nQS5jcmwwdAYIKwYBBQUHAQEEaDBmMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC5z\nZWN1cmV0cnVzdC5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8vY2VydHMuc2VjdXJl\ndHJ1c3QuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBb\ntCXryLFewOafyNENB3NzgAQVVztwaWSyvF5FYSqav95JKcoHZzy3wG7aKlTPtGnq\n1QzJst03qPmZJ3j63obz2AvfEEzLEMlsPmOTy3B9oIrNzd2QhpGW1oF6pIgGB/VP\n5zh7U2ibUC+zRLmihwt+j2+7NBbuLbPozgxDTWh2f9O4rJb5bv98Q8RdbGrypBb9\nhOhDvmNCCfjSe+Q8myqsvawEG5p7s8gsIK/V3xbyqDihXjsGc7xeEWNftlU91jBL\nKPRbrLmXhhWnHJjYs4y5IHu735HA3aAT4TqURS9dGHOMVDRumkFpLqR2W7ptpDki\nOtIFZjO5smU29OD4AlcNUXqQuKEFasyTtkRlORnWhU37c36HB8dc57xWQKOf8pMq\n7lK+ublO9G4mO1Aqr9mioTN4oMONFJG4W5dWwG9baNg682ZACkvPaw45MqSztL3A\nKb4s2cDTWu/D34hV3oafkTwu8B7B2mFZnWRJ9q4akPmZF45uw4RZx2ALaYGGGs67\n+r5qS300As9ONg8hxfVkFQSHOc00IiBkgi3OpoCofEKTgDwZwHVqOJyyPjk6H9Sh\nZANmUOT2mGDLwl86Ar5bTu8ipzlsyDYQMFjho7WaVs8I5OXyVdONXDYLIOtpITGT\n1fRcXFzxYHhrNuFwrdj2zBVyvVD4O6xV97/9nv2Eng==\n-----END CERTIFICATE-----\n\nTrustwave Global Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AD30465CF22697F246B101EC92953B\n-----BEGIN CERTIFICATE-----\nMIIHCDCCBPCgAwIBAgITBs6C2a0wRlzyJpfyRrEB7JKVOzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBjjE3MDUGA1UEAxMuVHJ1c3R3\nYXZlIEdsb2JhbCBEb21haW4gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UE\nChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGljYWdvMREw\nDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQChh5brvvk/kFUZwhlUhqdsUmsMCBjzYqBBLnTyNrKPr4nd\nS9s2h2JvA+9TY7NnJc/Mq1eN5V6zqvbn/LN3c8W06f76xrVvFEKs5SzCefUS/V3Z\nC18dgwXXFrP+RgfK2kqfTHGIPrWoRSnUiLn3iUNEBtJ06oXjAqAMnAyL5AzD+eHm\nZzRK/yCw/gMPnVp2S7Dstka607fS4fW9Sl33mOMNwJRxEjQWHHR25PAb4muP6wjN\nvmoLMgiDMKseHSFVtC7SpmO89PsrUV6MahKJrZcAfquAyoO1zR2c2eGaCI/m8oSx\n3B7KiMZJ3NZims/siMp/5szemsutf36WJ31nmr7PqLJGJdVpoxbLckWIhZnNYSFm\n/pTutpNONqpyYC2gGSXdw5LuxU61913SbAPpk8DZiHi3WslHBo26ghXG++sgJUGj\nhtKZhiYlp8uD21WTP6/60wngpXyCtt9cpHxW1lXmqcxwe2J4/2S3xjHz1dC6BKxb\nr61HCPVrbTD90CZUpMI8JPdsVbz5eegv+SIyybHxZe4S0D9Kv5pgWfqdXf0BAiJC\nTbGwYmFr4uisKhkfMThyOgWEH+CRBzQqdZREQ5lTIlVyzi3jGPuu9Q6brAS9U9Ue\nQhUwX8TtY8Igfo8HlhjugDpy6WvDYQ9i+tG3AC6v8sJLdOOU83Lr+2C1LEF5ZwID\nAQABo4IBYTCCAV0wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYw\nEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFIaZQQzOP7aMcEnlkwfwhgcd\nLXqVMB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMD0GA1UdIAQ2MDQw\nMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29t\nL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9U\nV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzABhhpodHRwOi8vb2Nz\ncC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAmn0jp\n+lNp188KxjKQZtpJ3mixLmuqGdH6SVpRs40BYQg/68xOPH3C6AJ17tqE6IwZMW9s\nlgiO4B7khR3ESA6Sct3zmkA8woR/KJVzzegjscHhtQUifQ+Eb9Gi0ORNnetGV+5g\n5vlrFZMptBRGUxXMo2xa+Z/NTyimpMopfXj7qCW/nQWQbzvkQGchK9IokyqV2wra\ntX68/P3zleG+LLwzoJd5AhHYSXWrIRJpClZHN+LQKkbI3MYW7+upo/1e9HEmFKxu\n5SFV3nuQm5wSOsz/ZtIL1AS8IoZYxcSe1Q/yuV9GjnxtL1jkPbzsBx4eBGxUrcIe\nsBat6SI8G58uHTpIPpqUxRYsg8w0FdjK3kNBB5QWDeXiDxzqIRzA0iE1kHeTXRZ3\n7qgGXUcce7ciW5KqeRApjQbD5BSZG2EKkQ7aaOhvxK0LiuxHZnjPW4/fdEcaCuku\nMT5qMDiF2U85V9BvanEy/xkYn4I2UeK4EdSXe7q6j+CIJz9WnoLQDbIS04GqIWe0\nVRQUlx3idUWYSJU/SG8KrEHhlJLmgSjshCwtT6qo4vHwT5WcWDLIbjMqgL1iQ6JS\n4gxXuOGia3d0I4/wec5x23EWwx9V8BtDJ8N7NDeRNmZ8RXOHSYJsVQYIQuFUEXE1\nv3WMSIxuyQMyR5FYSCG9xnKRFzNmiPngDil5IA==\n-----END CERTIFICATE-----\n\nTrustwave Global Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D99FB3B180C281020314A2D1C7640017\n-----BEGIN CERTIFICATE-----\nMIIHFDCCBPygAwIBAgITBs6C2Z+zsYDCgQIDFKLRx2QAFzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBkDE5MDcGA1UEAxMwVHJ1c3R3\nYXZlIEdsb2JhbCBFeHRlbmRlZCBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMSEwHwYD\nVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xEDAOBgNVBAcTB0NoaWNhZ28x\nETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBAMRO7orfWjfmz6Y6qoAmDp2lqCJcdvbRQ8w18rl1JE3j\nf/1CScZLrnLg4RDm8JiRcvFuvoMXn/XNUWy5ICG57tjG2nO7jvBuXfvbdkGA+foN\n3yJKMTX/PmmGlN4qpzFtsB0kLrP14/0TRGeJB7qDfAFH0ReFk0ftQobLBGBOpEca\n+bv+LhcTe40/uNUSK2yQ9GpIw200mcsD3B9c29Im4tSZFuA2o1vnEeizYW5M4sPX\nHu7p5ZCxjJrXVNqWUPM38rShhMUNL5uaVYWoi7TG5JXbg0Lmt2nq1k5nnig9Yp/W\nlAFooWXjKQzHf/z+XZ57bqPe7SzLW5pzpZdSmY2VRybAwEmzMjCXgHiP2ru3TpAD\n+giakPDoz3ZmbKjwYKZ5PmnOmXx0Z2GloO37MjamjPor/+fZohfyma7VAQE8znJt\nI9MVoRN3G3gW/tuT3jXfzYdFBlfGoO7OYyLN1LK5YBKH2qXrCHD8rG2DauBt7U+w\nfOvwfkp8FcdTnfQ92Xe65U3Xdu0eCgQJbChxZtWhhLnbY6xhmwAWyJ1my+Im72Kx\nGP/XcA8SH2sz6/k0782BjRckDuFpVVpTNYl9wqe/tuOrZhWPapOsRlfsDTuhgGu5\n2inM9sU3CAzmFE85zoRQFZQSof3kFN2rUZF20bmTak99cBNLli6/ja3+KntpZ08d\nAgMBAAGjggFrMIIBZzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB\nhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFHM4IMZH\nbabGL3tQ4EDe3sedR958MB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6H\nMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50\ncnVzdHdhdmUuY29tL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9UV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzAB\nhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDov\nL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEB\nCwUAA4ICAQBwnSHECaf+hfGrm3Cg+aRr57ytoOSzI1DjlTNcM7k4uSt6kJRPHJ4c\nldIujMaETV52RgE6ykaMGkuIwQOIsLI6SXwjU1f5gXFUbDTS3KTWc/jwQeyLmdOe\nhvc+wBSFv8d10Sx/Qiti8mqsTqr0+N94Cx01+SkiWxWWoSZOAPkz8DMQGlD4yndK\nceTMGtQ03cLnD/36Mv6tz/Ds9l/OExrJGGxHD0tmYwYwBZpPHm7BBY2ZzycVxLcg\n+uuggcX1pg5MhJ1rDyod+7X+ilvTgH7ftHCmxvR7viMLwSUuytZ05zb2teRQgU+8\niWnPEHO/ADm5VD1Zb5Rx0579/YEENBJtGUPPJzo+JEpiZIOIlwZ69ETWWNCLZr0V\nvoi+SDl65cr+dgR9JreJ2I4W9FzS45ruxYEC8LGKEmV46sAk1YLbnIBmhehAKy9t\nP8RVz3QXYJ6rLOAuXF7R2eVV0SqfivW9bVzvBZTUTFsbdSMBAAF1BJjdRqYR63DI\ncQASY7CRoUiak1NTgPkzeV8VcNJmUt8c2eKJIifqBAjquH6+6UXs9Ol0aMPn6v0y\nB+TSuxhX2sSrpna9QcOh/QyoR5Hvcd81rZSbMc7yasKoUMXviotV1SfEqs3RU5Ts\nwnU4NHPn5ITRiuh5VMuvB/VnjnPC953u5uqAGtZ8BkC7X9cu5E0rMQ==\n-----END CERTIFICATE-----\n\nTrustwave Global Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A69703AEFE5D37D18858C74026B004\n-----BEGIN CERTIFICATE-----\nMIIHGDCCBQCgAwIBAgITBs6C2aaXA67+XTfRiFjHQCawBDANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBlDE9MDsGA1UEAxM0VHJ1c3R3\nYXZlIEdsb2JhbCBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEh\nMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGlj\nYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3\nDQEBAQUAA4ICDwAwggIKAoICAQC8BzZtA3eWejFOGHc2DLgex6P471dLWIIHSlrF\nY4a2BCtzAd/VlpQ3gslWnTgthOmK2/hCc+WSaOLPVZzZf3lGnxbb0+Y87Kx+nS1m\nIfJ/4OR6o8XLMLoCTAI1jsWxggiB4NBMqsW2xXQ5VAvBb66KEQYbshNlRpTbtBFq\nEed4YIvCdjbnCUOy1zubgVHUVyCFHzN4XPjEQCtT5vZM576Lt10Je9COnqG0CtPU\nQNP2tjnSmOOYdWcVRZ0UqXUl2fMBfmSDHd8902foigjpP04AYYbq6AetqEgqdvQP\nxz5pVbZqzy8UrE/s/raJLFyTuIAYVt18M0whSgWzGgUWkq2xRqbfn7b1hd56dwRb\nR7pKc51FyTbeocnKlYLC+Dlzp7iKQ3Pb7WHRwLhaJB7u4CzwqhUxHc0xplMYsq92\nMbZ6WN5L5mI7hxY8gLMOR7vNX9CKz9XcYRS01iCDe5Y/9muW8bzGyNXLX1YaHAy4\n+6ncksb3Y3RUKj3f0+T4nbiRISmGazravJKSssBLP3kPa9h5aX+Vd00eL+Q7sXrh\nFO7xz+oWtOL5rfVszyc87JQvjw1sDHA710nViqzUE1bJZNe61EXdCb/RV+Wsu+rO\ncAMSr5x2j/wW875sh+U3EJmTzdEBUBxHnBD2mDTyonT7wL47TRXTEO1IaS4mVbnv\no0jWvQIDAQABo4IBazCCAWcwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E\nBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBS3\n/VNzOCaKcKuTyoupCOrH07fj/TAfBgNVHSMEGDAWgBSZ4BlnDWLbdrPaPbhb6P1C\n0jEOhzA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9z\nc2wudHJ1c3R3YXZlLmNvbS9DQTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js\nLnRydXN0d2F2ZS5jb20vVFdHQ0EuY3JsMG4GCCsGAQUFBwEBBGIwYDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wNgYIKwYBBQUHMAKGKmh0\ndHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR0NBLmNydDANBgkqhkiG\n9w0BAQsFAAOCAgEAFXwfmELpEGKUguzVTMix79XbUnkfLa7IXcqBOrwOWEF1V8F1\nxGY6jLlUTtoEXRYZwCpqOK/i4m4nmWCYE45O7URR8nqeFffceTi62t4Yvh6LkC9g\nUnj3aChLiO/Zdxilq6vfsXO0mKafrGtZXwjyskS250Pj9DsANs57QqvYN4hqbplJ\nzc95p09OUvEhPiyRyx6FyY28U+3X6+mSNMJWd4Nhr+3HtvmItLIXP2JCLxuYtu/K\n6nKcpFCFFKeF8K3PWpjsAb0hfXL4vc3WfyCYsQnvJeisyAh7yEuge2iDwl1/xXIo\nEOAyyYAxvy5UnzcAa0Z2lwjptve+jZ4gQ+A1ioYUavR3pSfBNzuJW30nZCWFadKc\nNXOPoAPkK8JLxgRBH3JboeBCXG6xgy/pXrTjyhW7/SS+Z+7eKkp9jgdTVQ12yUtc\nCiYWUuM4l240D/z+s03WOEcLTluESwFkJhzs3D9i5crTL72uSkDDmlh8HXoPAyYO\nl3Mn9cGWhd8M8IeQRXmb6O7gvvQZDoSXDVDbjBKcW1lFpi0wBxIBzLaOi4CX4OhI\nJHJ/H3duOMaltuzXLSLkc26jwHzMeq8seQRSXraXJi1t5oBKlmEWFEgq6xlH7mLW\n3TOqS19cuiSWl/CsnlLGaW8MH5YHmk+MJxQE1BcLBs6ciapvHlhLEd9EUpU=\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-256 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C4627001DECFEBF6BF5D3B1066D7E3\n-----BEGIN CERTIFICATE-----\nMIIDbTCCAxKgAwIBAgITBy8w6cRicAHez+v2v107EGbX4zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTI1NiBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAT4KazLm94aiykBGkNQVkBrjmK77RlP627D2n3EwK3s\n49ljRkN6wiTWXHx3jPD5BBE/7mWhGWnphzGu1Deb6yzco4IBdTCCAXEwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUH\nAwQwHQYDVR0OBBYEFHMQ2nwjQr8tFHfBImxM7ct8lbBYMB8GA1UdIwQYMBaAFKNB\nBqyQbdFK63WlShCZs7Ghi0r3MEEGA1UdIAQ6MDgwNgYEVR0gADAuMCwGCCsGAQUF\nBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA5BgNVHR8EMjAw\nMC6gLKAqhihodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dQMjU2Q0EuY3Js\nMHgGCCsGAQUFBwEBBGwwajAoBggrBgEFBQcwAYYcaHR0cDovL29jc3Auc2VjdXJl\ndHJ1c3QuY29tLzA+BggrBgEFBQcwAoYyaHR0cDovL2NlcnRzLnNlY3VyZXRydXN0\nLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAN8G\nPwKUpMgV3LZjq7fuKS96f15BrwBjmTlKhOwgX83BAiEA9WpWhzRRoKeJGAqqXrMk\nZ8RE9xRtOFBqYdv9H5CeTVk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AF531423847B85FB677932AAF80508\n-----BEGIN CERTIFICATE-----\nMIIDmDCCAz+gAwIBAgITBs6C2a9TFCOEe4X7Z3kyqvgFCDAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\nWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATWpfTIQFPkZIoXXMDN9utRU+AbLGcg\nBmLA06x2qqdcpCMlYFoJhuRWzYCiqz1mKrAvNlQYkgoHfemk92sf8iaro4IBaTCC\nAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwEwHQYDVR0OBBYEFA/DUGGZflb1xtmcOeiDWJAHuhq0MB8GA1Ud\nIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2MDQwMgYEVR0gADAq\nMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1Ud\nHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMjU2Q0Eu\nY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1\nc3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNv\nbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDRwAwRAIgICvA5ttD\n0oeUcd37iYvoQ7iMIpZINp4e1j5NrlI3UnYCIEZhimm9+1dUWAfx9ZkGmIu0HiHR\nzEZifAHbPM3SJbRu\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A20A3797CD878EB3DAA41D08680AF7\n-----BEGIN CERTIFICATE-----\nMIIDpjCCA0ugAwIBAgITBs6C2aIKN5fNh46z2qQdCGgK9zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKXHfFxFDVI6uYWZlWciFFKtYzuJ\n+IBhot3PQGikE3sjU8d9dARkZCkInqmDyP/+XiLzgrYPMy7NS8lZcRsE5p2jggFz\nMIIBbzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUE\nFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFAwlVqqzYgakv+7gGxtX\nzC8s9g1QMB8GA1UdIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9UV0dQMjU2Q0EuY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wu\ndHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwID\nSQAwRgIhALahroq1NScrFeCvG5uMgMKH/bo190D+Mkh2ZIojrUOfAiEAosFXFE73\n0WLRPjX2uOkLhXuA4cQEb1R1oeGDH4MNVOo=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A8B57C104843994DACD79E28633E5F\n-----BEGIN CERTIFICATE-----\nMIIDqDCCA0+gAwIBAgITBs6C2ai1fBBIQ5lNrNeeKGM+XzAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmHWo0mogvX1J61xysTqsn\n6qV06wxUH68/QJ2aDIka6beTrDoTZv3mIkyPxFTPy+9idjgSAERlBsDirgO2/NiY\no4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwHQYD\nVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBSv+Ju8XTSl3tA+\nFCldDY4lrbClhTAfBgNVHSMEGDAWgBSjQQaskG3RSut1pUoQmbOxoYtK9zA9BgNV\nHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9DQTA3BgNVHR8EMDAuMCygKqAohiZodHRwOi8vY3JsLnRydXN0d2F2\nZS5jb20vVFdHUDI1NkNBLmNybDByBggrBgEFBQcBAQRmMGQwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8v\nc3NsLnRydXN0d2F2ZS5jb20vaXNzdWVycy9UV0dQMjU2Q0EuY3J0MAoGCCqGSM49\nBAMCA0cAMEQCIGa3JyBYlXxRN5GIIulLaDxnANNRnY4j1Et166CCC5h+AiAVUlzJ\nIJTfUDBU7jnSTKSw/F+bLIPvaC6frMZv0h+RTA==\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-384 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C58D91DEF98A7F9EB2666CFE7BE1EE\n-----BEGIN CERTIFICATE-----\nMIIDqjCCAy+gAwIBAgITBy8w6cWNkd75in+esmZs/nvh7jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTM4NCBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwdjAQBgcqhkjO\nPQIBBgUrgQQAIgNiAAR4nTJ6MvtPBb7+L3tklhdDw0tr5FNY5Q1hsp6NR5OzZVeG\nx/X3VrCvkOsae1OEZHNqWCnnI1s/ix9qn/2+q0pPpXrT6wkN/HOQzpQaJWzCF7yX\nIfIB0o+x1Pr17UOX2qGjggF1MIIBcTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud\nDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDBDAdBgNVHQ4EFgQUJd3xyUp6\n6EP6L9hCmkRrWAcU2mwwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ymB07I552+gpAw\nQQYDVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMu\nc2VjdXJldHJ1c3QuY29tL0NBMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu\nc2VjdXJldHJ1c3QuY29tL1RXR1AzODRDQS5jcmwweAYIKwYBBQUHAQEEbDBqMCgG\nCCsGAQUFBzABhhxodHRwOi8vb2NzcC5zZWN1cmV0cnVzdC5jb20vMD4GCCsGAQUF\nBzAChjJodHRwOi8vY2VydHMuc2VjdXJldHJ1c3QuY29tL2lzc3VlcnMvVFdHUDM4\nNENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA8X5zwZHtdHjLIn60rwG3Z3NAa6cU\n6gOFxyF+ksTCXvWCUP0oFUqsRPMKMYE2mtdQAjEA2diuEHTPUgCQ0ynhLjged8BO\nFyzL3UlFieGGp90v58gUpfjoFq0BReAw7MPYo/Qa\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9B07A17CC5376157813389A2930A44A\n-----BEGIN CERTIFICATE-----\nMIID1TCCA1ygAwIBAgITBs6C2bB6F8xTdhV4EziaKTCkSjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAASxlBEflNumTKsypgdOscM2x6ZRpQGSyB4B\nhJScRQI81UhZvzYSwxPWcxNZwFQoV457HfqR51pviJnHltRS8MJhJ9Q9Rf1sSmy4\nW6SPsM9qnBjwfBRxghByIsEIaTW/PKyjggFpMIIBZTASBgNVHRMBAf8ECDAGAQH/\nAgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4E\nFgQUp6etGGS1u/oGGEfIwJ68Zf9pAWAwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ym\nB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBz\nOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDov\nL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYIKwYBBQUHAQEEZjBk\nMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA6BggrBgEF\nBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHUDM4NENB\nLmNydDAKBggqhkjOPQQDAwNnADBkAjA6fS1jRjt+DvnWSI58v4lX+8DCXbdEhDaB\nbBOS/rXwS/ntsFXqTf0B90GPv3AWlFMCMBbz6nXMwX0jKRkaFZOZx9tvwUapdq7M\n6jYpT/NnAzH68x1t3/7ysZ8lPuKIqAwdKQ==\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A331594530006781829387E40DBCB6\n-----BEGIN CERTIFICATE-----\nMIID4zCCA2igAwIBAgITBs6C2aMxWUUwAGeBgpOH5A28tjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzB2MBAGByqGSM49AgEGBSuBBAAiA2IABKcVGieqBjW3BuVza9VhkBlpGLHLZqQg\nI0GXaTpt5CogNWz6BmlZ1yAPjRnDUVfVwl57ATRtV7u+5TPFzKZ+RheFVc0iA8vl\nQ2JINGRz8XLDaivvuygQtFKSzCWn4e66cKOCAXMwggFvMBIGA1UdEwEB/wQIMAYB\nAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF\nBQcDATAdBgNVHQ4EFgQUMFfit09gayJACkNfT/oNzXO8JCcwHwYDVR0jBBgwFoAU\nVamEidLBMr0Yy2ymB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYB\nBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAs\noCqgKIYmaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYI\nKwYBBQUHAQEEZjBkMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUu\nY29tLzA6BggrBgEFBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3Vl\ncnMvVFdHUDM4NENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA6pScrGT+SruK7iON\n7iDJZfhQsjfQIhaq9sHiEXd89B8ibWOb57no/K265dPxeuALAjEA27NTMZM344eT\nX3df9B22dY5ZshsUMIiRcMo1K4B/GBO8SIA0jParkHS5g4WO5K7O\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A9D8E29837EF90BEAF59DC6551BED6\n-----BEGIN CERTIFICATE-----\nMIID5jCCA2ygAwIBAgITBs6C2anY4pg375C+r1ncZVG+1jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATvG09PrsO8UQZhH5Zw54rwgcUw\nKjC9D2V3myjD5WOa8uxdTL8PzdwPk4TCcSf6UUG1Tt74j/I+vBOi2tgMcDt68Zld\nvTj+jZT1BBYTQtYh6/dOUjmiapQU5XqoFMRNubGjggFzMIIBbzASBgNVHRMBAf8E\nCDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYI\nKwYBBQUHAwEwHQYDVR0OBBYEFDoXwH5iO1eguEDKzDRHzZZ+/AmIMB8GA1UdIwQY\nMBaAFFWphInSwTK9GMtspgdOyOedvoKQMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgG\nCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1UdHwQw\nMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMzg0Q0EuY3Js\nMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9p\nc3N1ZXJzL1RXR1AzODRDQS5jcnQwCgYIKoZIzj0EAwMDaAAwZQIwMyHlVCVMacxP\nO0fC+uc4M7Eq1F9woaWBmLSSNC6EWe3nShMqsR9HrNWrOHBHucNWAjEArwrzEM8g\nJkR4iZxbyYNIn2sNEkNZt2pxqJn4G2cDDDFfOarykKVzP1aJ9OMdYUvs\n-----END CERTIFICATE-----\n\nTrustwave S/MIME SHA256 CA, Level 1\nXRamp Security Services Inc\n3A83B71EE02C3CCA1CE1A2643E9B66EA\n-----BEGIN CERTIFICATE-----\nMIIFHTCCBAWgAwIBAgIQOoO3HuAsPMoc4aJkPptm6jANBgkqhkiG9w0BAQsFADCB\ngjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk\nMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY\nUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQxMDAxMTky\nMjM4WhcNMjQwOTI4MTkyMjM4WjCBpDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCEls\nbGlub2lzMRAwDgYDVQQHEwdDaGljYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9s\nZGluZ3MsIEluYy4xLDAqBgNVBAMTI1RydXN0d2F2ZSBTL01JTUUgU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4c5I5giD0wEh+RuoLIJkD7a6mBlm\n+YzTtXSefGejVVYtpjclkUl4C4hEfQMCUcrBnU3ORHVprXi/Q82dKNFPac8FI9bj\n8mtq0cjdSDfXJKfdf52wPXnTjASwKyhJt+CoJik+Fz72KAkjxi+OUSpWdQBeAQra\ndbtu4UGFTgPcuU/cwpF8J0g4CGk/saVKkkJNpq5wqpfQRYl025FyKbzmRjqhB/Ta\npoHlbHMQ7aeoZ+qtDC+eWnE3AqTUHx14Z5fegjLQRmPWqqdeZafthouglbEuHt4A\neyzefTDNwyXjUiRD/n0kaNNW+lcsLpw7ouw1OU8mwQ0C7LoPJljpXRjvOwIDAQAB\no4IBaTCCAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUDDOjV6rjq9ZL\ncBs2nqPtYVDmr3QwDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYPKwYBBAGB\n7RgDAwMFBAMDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29t\nL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29j\nc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwQwHwYD\nVR0jBBgwFoAUxk+iPQZjhAmczmLkBKyNXLXpthswDQYJKoZIhvcNAQELBQADggEB\nAIdGLHufUegzFKVBQVWs3YAIFqCcJvdak14TMRImxJsnQWLz+jIW0olC0JATY6Ng\nxAbjIJA4wtW/tA+rgE6WcA5y3bLN3bRMQVDSu6X26hkVjvwo4/VYykOp3e9Cqlfe\ngJAsrqBQKXkUpEbYEmmorXxj6/74e//xwXTz0XS0BS9cXhONlTQffyJnMeLaunzQ\nS1x/MvALfPCHCZCTOfLDmwylKtHHu+V2Ks0HV+ZrzCBRR5W3MhGTU7PpNEMQwyGF\n+MG5eZTd0jyxOSOjaXQm7iDh0tG/iKZZegn5AhNdaHE74QEHTjK+teLQlo60QGBk\necyzakgVYZ/Ezalz8nQwhCA=\n-----END CERTIFICATE-----\n\nTrustwave XRamp Global Extended Validation CA, Level 1\nXRamp Security Services Inc\n00D3D519C2B2EB5C7040F64CBC957BBD2C\n-----BEGIN CERTIFICATE-----\nMIIFMDCCBBigAwIBAgIRANPVGcKy61xwQPZMvJV7vSwwDQYJKoZIhvcNAQELBQAw\ngYIxCzAJBgNVBAYTAlVTMR4wHAYDVQQLExV3d3cueHJhbXBzZWN1cml0eS5jb20x\nJDAiBgNVBAoTG1hSYW1wIFNlY3VyaXR5IFNlcnZpY2VzIEluYzEtMCsGA1UEAxMk\nWFJhbXAgR2xvYmFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MDgxMjIw\nMTczMVoXDTI1MDgwOTIwMTczMVowgbcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJ\nbGxpbm9pczEQMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhv\nbGRpbmdzLCBJbmMuMT8wPQYDVQQDEzZUcnVzdHdhdmUgWFJhbXAgR2xvYmFsIEV4\ndGVuZGVkIFZhbGlkYXRpb24gQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNh\nQHRydXN0d2F2ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9\nAAbj9SknrNJT9pDatGvlR386KRi0SkqIOGr+C5W91+8E8PqydEHwjrnrWt/MTLGO\n+2kfEO3TEJlWxQQqbHy8SdhjCANefLzOT1cfTfjroWBIS9yiHpBIQytAaz/td95Y\n+JKrRBVCnIR/wB5qMMQ982RWwqggD763XLma0c1AIndsZL+dXp1zET4KBreoxn3q\nRYzMIsZIL2mAJoiCOTYuOGrOMVuaQn0HSu3K7bU+CpkdLQ/j+ikcQiI10IL9oOcO\nU9Gnt/hRyUX66Gk91RIpYXhla2tIYrg7ezrAnFoZIZCb891JjFtbSEOvAAK9F5d6\nfkkjPx0432o/v1c5GRFPAgMBAAGjggFoMIIBZDASBgNVHRMBAf8ECDAGAQH/AgEA\nMB0GA1UdDgQWBBTFzrk7QkXAzQnlaOhIOoNdbI6rGDAOBgNVHQ8BAf8EBAMCAYYw\nPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRy\ndXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVz\ndHdhdmUuY29tL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZ\naHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3Nz\nbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwHQYDVR0lBBYwFAYIKwYB\nBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFMZPoj0GY4QJnM5i5ASsjVy16bYb\nMA0GCSqGSIb3DQEBCwUAA4IBAQCA2N/WVTGYRGNTuvF2qKWPrQUx0/6pKmGqELl6\nNXs1bwRXCci98SkeNjiaa2dHEwcGR43/M1Y0nekXP8QCEFVqGOwaY0pnTb8wL+CI\n/HTp1zfmoCYNvtzt1fIq/+9ynLYEjX8rsrf51HIEjJJK8K3k/Ub3cFT+yJKNN2YN\nJS0IvJYlbpqS6VbcInwLcW7WvJmXUuL7t0Vtt0d2q1h5UdnJQP+skiOmN/B0zPut\nbRC4v5pNGJJmwbk58UlOSeviH2qzDGutamOJ6dFNWqQFoZorAT7fUsr3WDA4HKtx\neraYdCIRJX7weW9xpdMNsVO7Wy/Ma7Fz9fzKnOH5mnInBOof\n-----END CERTIFICATE-----\n\nSecure Global CA\nSecureTrust Corporation\n075622A4E8D48A894DF413C8F0F8EAA5\n-----BEGIN CERTIFICATE-----\nMIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx\nMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg\nQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ\niQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa\n/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ\njnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI\nHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7\nsFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w\ngZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw\nKaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG\nAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L\nURYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO\nH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm\nI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY\niNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc\nf8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW\n-----END CERTIFICATE-----\n\nSecureTrust CA\nSecureTrust Corporation\n0CF08E5C0816A5AD427FF0EB271859D0\n-----BEGIN CERTIFICATE-----\nMIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz\nMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv\ncnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz\nZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO\n0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao\nwW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj\n7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS\n8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT\nBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg\nJYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC\nNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3\n6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/\n3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm\nD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS\nCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR\n3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=\n-----END CERTIFICATE-----\n\nTrustwave Global Certification Authority\nTrustwave Holdings, Inc.\n05F70E86DA49F346352EBAB2\n-----BEGIN CERTIFICATE-----\nMIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw\nCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x\nITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1\nc3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx\nOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI\nSWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI\nb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn\nswuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu\n7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8\n1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW\n80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP\nJqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l\nRtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw\nhI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10\ncoos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc\nBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n\ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud\nEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud\nDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W\n0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe\nuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q\nlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB\naCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE\nsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT\nMaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe\nqu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh\nVicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8\nh6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9\nEEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK\nyeC2nOnOcXHebD8WpHk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P256 Certification Authority\nTrustwave Holdings, Inc.\n0D6A5F083F285C3E5195DF5D\n-----BEGIN CERTIFICATE-----\nMIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG\nSM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN\nFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w\nDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw\nCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh\nDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P384 Certification Authority\nTrustwave Holdings, Inc.\n08BD85976C9927A48068473B\n-----BEGIN CERTIFICATE-----\nMIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ\nj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF\n1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\nA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3\nAZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC\nMGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu\nSw==\n-----END CERTIFICATE-----\n`;", "export const PKG_NAME = \"__PACKAGE_NAME__\";\nexport const PKG_VERSION = \"__PACKAGE_VERSION__\";\nexport const BUILD_VERSION = \"__BUILD_VERSION__\";\n", "import { join } from \"@hpcc-js/util\";\nimport { createConnection, IConnection, IOptions, ResponseType } from \"./connection.ts\";\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 } else {\n this.message = \"\";\n }\n }\n}\n\nexport function isExceptions(err: any): err is Exceptions {\n return err instanceof ESPExceptions || (err.isESPExceptions && Array.isArray(err.Exception));\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, abortSignal?: AbortSignal, espResponseField?: string): Promise<any> {\n const request = { ..._request, ...{ ver_: this._version } };\n if (largeUpload) {\n request[\"upload_\"] = true;\n }\n if (abortSignal) {\n request[\"abortSignal_\"] = abortSignal;\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[espResponseField || (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 });\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 opts() {\n return this._connection.opts();\n }\n\n connection(): ESPConnection {\n return this._connection.clone();\n }\n}\n", "import { join, promiseTimeout, scopedLogger, utf8ToBase64 } 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 ${utf8ToBase64(`${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 (fetch[\"__setGlobalDispatcher\"]) {\n fetch[\"__setGlobalDispatcher\"](fetch[\"__defaultAgent\"]);\n }\n\n if (opts.baseUrl.indexOf(\"https:\") === 0) {\n // NodeJS / node-fetch only ---\n if (opts.rejectUnauthorized === false && fetch[\"__rejectUnauthorizedAgent\"]) {\n if (fetch[\"__setGlobalDispatcher\"]) {\n fetch[\"__setGlobalDispatcher\"](fetch[\"__rejectUnauthorizedAgent\"]);\n } else {\n requestInit[\"agent\"] = fetch[\"__rejectUnauthorizedAgent\"];\n }\n } else if (fetch[\"__trustwaveAgent\"]) {\n requestInit[\"agent\"] = fetch[\"__trustwaveAgent\"];\n }\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 if (request.upload_) {\n delete request.upload_;\n action += \"?upload_\";\n }\n let abortSignal;\n if (request.abortSignal_) {\n abortSignal = request.abortSignal_;\n delete request.abortSignal_;\n }\n return doFetch(opts, action, {\n method: \"post\",\n body: serializeRequest(request, opts.encodeRequest),\n signal: abortSignal\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 let abortSignal;\n if (request.abortSignal_) {\n abortSignal = request.abortSignal_;\n delete request.abortSignal_;\n }\n return doFetch(opts, `${action}?${serializeRequest(request, opts.encodeRequest)}`, {\n method: \"get\",\n signal: abortSignal\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 { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace FileSpray {\n\n export type int = number;\n export type double = number;\n export type base64Binary = string;\n export type long = number;\n export type dateTime = string;\n\n export enum DFUWUActions {\n Delete = \"Delete\",\n Protect = \"Protect\",\n Unprotect = \"Unprotect\",\n Restore = \"Restore\",\n SetToFailed = \"SetToFailed\",\n Archive = \"Archive\"\n }\n\n export interface AbortDFUWorkunit {\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 AbortDFUWorkunitResponse {\n Exceptions: Exceptions;\n }\n\n export interface Copy {\n sourceLogicalName: string;\n destGroup: string;\n destGroupRoxie: string;\n destLogicalName: string;\n sourceDali: string;\n srcusername: string;\n srcpassword: string;\n overwrite: boolean;\n ensure: boolean;\n replicate: boolean;\n ReplicateOffset: int;\n maxConnections: int;\n throttle: int;\n transferBufferSize: int;\n nosplit: boolean;\n norecover: boolean;\n compress: boolean;\n Wrap: boolean;\n Multicopy: boolean;\n SourceDiffKeyName: string;\n DestDiffKeyName: string;\n superCopy: boolean;\n push: boolean;\n pull: boolean;\n ifnewer: boolean;\n noCommon: boolean;\n encrypt: string;\n decrypt: string;\n preserveCompression: boolean;\n DFUServerQueue: string;\n ExpireDays: int;\n KeyCompression: string;\n }\n\n export interface CopyResponse {\n Exceptions: Exceptions;\n result: string;\n }\n\n export interface CreateDFUPublisherWorkunit {\n DFUServerQueue: string;\n }\n\n export interface result {\n ID: string;\n DFUServerName: string;\n ClusterName: string;\n JobName: string;\n Queue: string;\n User: string;\n isProtected: boolean;\n Command: int;\n CommandMessage: string;\n PercentDone: int;\n SecsLeft: int;\n ProgressMessage: string;\n SummaryMessage: string;\n State: int;\n SourceLogicalName: string;\n SourceIP: string;\n SourceFilePath: string;\n SourceDali: string;\n SourceRecordSize: int;\n SourceFormat: int;\n RowTag: string;\n SourceNumParts: int;\n SourceDirectory: string;\n DestLogicalName: string;\n DestGroupName: string;\n DestDirectory: string;\n DestIP: string;\n DestFilePath: string;\n DestFormat: int;\n DestNumParts: int;\n DestRecordSize: int;\n Replicate: boolean;\n Overwrite: boolean;\n Compress: boolean;\n SourceCsvSeparate: string;\n SourceCsvQuote: string;\n SourceCsvTerminate: string;\n SourceCsvEscape: string;\n TimeStarted: string;\n TimeStopped: string;\n StateMessage: string;\n MonitorEventName: string;\n MonitorSub: boolean;\n MonitorShotLimit: int;\n SourceDiffKeyName: string;\n DestDiffKeyName: string;\n Archived: boolean;\n encrypt: string;\n decrypt: string;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n preserveCompression: boolean;\n expireDays: int;\n PreserveFileParts: boolean;\n FileAccessCost: double;\n KbPerSecAve: int;\n KbPerSec: int;\n }\n\n export interface CreateDFUPublisherWorkunitResponse {\n Exceptions: Exceptions;\n result: result;\n }\n\n export interface CreateDFUWorkunit {\n DFUServerQueue: string;\n }\n\n export interface CreateDFUWorkunitResponse {\n Exceptions: Exceptions;\n result: result;\n }\n\n export interface DFUWUFileRequest {\n Wuid?: string;\n Type?: string;\n PlainText?: string;\n }\n\n export interface DFUWUFileResponse {\n Exceptions: Exceptions;\n file: string;\n }\n\n export interface DFUWUSearchRequest {\n\n }\n\n export interface ClusterNames {\n ClusterName: string[];\n }\n\n export interface DFUWUSearchResponse {\n Exceptions: Exceptions;\n ClusterNames: ClusterNames;\n }\n\n export interface wuids {\n Item: string[];\n }\n\n export interface DFUWorkunitsActionRequest {\n wuids?: wuids;\n Type?: DFUWUActions;\n }\n\n export interface DFUActionResult {\n ID: string;\n Action: string;\n Result: string;\n }\n\n export interface DFUActionResults {\n DFUActionResult: DFUActionResult[];\n }\n\n export interface DFUWorkunitsActionResponse {\n Exceptions: Exceptions;\n FirstColumn: string;\n DFUActionResults: DFUActionResults;\n }\n\n export interface DeleteDFUWorkunit {\n wuid: string;\n }\n\n export interface DeleteDFUWorkunitResponse {\n Exceptions: Exceptions;\n result: boolean;\n }\n\n export interface DeleteDFUWorkunits {\n wuids: wuids;\n }\n\n export interface DeleteDFUWorkunitsResponse {\n Exceptions: Exceptions;\n }\n\n export interface Names {\n Item: string[];\n }\n\n export interface DeleteDropZoneFilesRequest {\n DropZoneName?: string;\n NetAddress?: string;\n Path?: string;\n OS?: string;\n Names?: Names;\n }\n\n export interface Despray {\n destGroup: string;\n sourceLogicalName: string;\n destIP: string;\n destPath: string;\n destPlane: string;\n dstxml: base64Binary;\n overwrite: boolean;\n maxConnections: int;\n throttle: int;\n transferBufferSize: int;\n splitprefix: string;\n norecover: boolean;\n wrap: boolean;\n multiCopy: boolean;\n SingleConnection: boolean;\n DFUServerQueue: string;\n compress: boolean;\n encrypt: string;\n decrypt: string;\n }\n\n export interface DesprayResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface DfuMonitorRequest {\n EventName?: string;\n LogicalName?: string;\n Ip?: string;\n Filename?: string;\n Sub?: boolean;\n ShotLimit?: int;\n }\n\n export interface DfuMonitorResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface DropZoneFileSearchRequest {\n DropZoneName?: string;\n Server?: string;\n ECLWatchVisibleOnly?: boolean;\n NameFilter?: string;\n }\n\n export interface PhysicalFileStruct {\n name: string;\n Server: string;\n isDir: boolean;\n filesize: long;\n modifiedtime: string;\n Path: string;\n Files: Files;\n }\n\n export interface Files {\n PhysicalFileStruct: PhysicalFileStruct[];\n }\n\n export interface DropZoneFileSearchResponse {\n Exceptions: Exceptions;\n Files: Files;\n Warning: string;\n }\n\n export interface DropZoneFilesRequest {\n DropZoneName?: string;\n NetAddress?: string;\n Path?: string;\n OS?: string;\n Subfolder?: string;\n ECLWatchVisibleOnly?: boolean;\n DirectoryOnly?: boolean;\n }\n\n export interface DropZone {\n Name: string;\n NetAddress: string;\n Path: string;\n Computer: string;\n Linux: string;\n }\n\n export interface DropZones {\n DropZone: DropZone[];\n }\n\n export interface DropZoneFilesResponse {\n Exceptions: Exceptions;\n DropZoneName: string;\n NetAddress: string;\n Path: string;\n OS: int;\n ECLWatchVisibleOnly: boolean;\n DropZones: DropZones;\n Files: Files;\n }\n\n export interface EchoDateTime {\n dt: dateTime;\n }\n\n export interface EchoDateTimeResponse {\n result: dateTime;\n }\n\n export interface FileListRequest {\n DropZoneName?: string;\n Netaddr?: string;\n Path?: string;\n Mask?: string;\n OS?: string;\n DirectoryOnly?: boolean;\n }\n\n export interface files {\n PhysicalFileStruct: PhysicalFileStruct[];\n }\n\n export interface FileListResponse {\n Exceptions: Exceptions;\n Netaddr: string;\n Path: string;\n Mask: string;\n OS: int;\n DirectoryOnly: boolean;\n AcceptLanguage: string;\n files: files;\n }\n\n export interface GetDFUExceptions {\n wuid: string;\n }\n\n export interface DFUException {\n Code: int;\n Message: string;\n }\n\n export interface result2 {\n DFUException: DFUException[];\n }\n\n export interface GetDFUExceptionsResponse {\n Exceptions: Exceptions;\n result: result2;\n }\n\n export interface ProgressRequest {\n wuid?: string;\n }\n\n export interface ProgressResponse {\n Exceptions: Exceptions;\n wuid: string;\n PercentDone: int;\n SecsLeft: int;\n KbPerSecAve: int;\n KbPerSec: int;\n SlavesDone: int;\n TimeTaken: string;\n ProgressMessage: string;\n SummaryMessage: string;\n State: string;\n }\n\n export interface GetDFUServerQueuesRequest {\n DFUServerName?: string;\n }\n\n export interface GetDFUServerQueuesResponse {\n Exceptions: Exceptions;\n Names: Names;\n }\n\n export interface GetDFUWorkunit {\n wuid: string;\n }\n\n export interface GetDFUWorkunitResponse {\n Exceptions: Exceptions;\n result: result;\n AutoRefresh: int;\n }\n\n export interface GetDFUWorkunits {\n Wuid: string;\n Owner: string;\n Cluster: string;\n StateReq: string;\n Type: string;\n Jobname: string;\n PageSize: long;\n CurrentPage: int;\n PageStartFrom: long;\n Sortby: string;\n Descending: boolean;\n CacheHint: long;\n ParentWuid: string;\n PublisherWuid: string;\n includeProgressMessages: boolean;\n includeTimings: boolean;\n includeTransferRate: boolean;\n }\n\n export interface DFUWorkunit {\n ID: string;\n DFUServerName: string;\n ClusterName: string;\n JobName: string;\n Queue: string;\n User: string;\n isProtected: boolean;\n Command: int;\n CommandMessage: string;\n PercentDone: int;\n SecsLeft: int;\n ProgressMessage: string;\n SummaryMessage: string;\n State: int;\n SourceLogicalName: string;\n SourceIP: string;\n SourceFilePath: string;\n SourceDali: string;\n SourceRecordSize: int;\n SourceFormat: int;\n RowTag: string;\n SourceNumParts: int;\n SourceDirectory: string;\n DestLogicalName: string;\n DestGroupName: string;\n DestDirectory: string;\n DestIP: string;\n DestFilePath: string;\n DestFormat: int;\n DestNumParts: int;\n DestRecordSize: int;\n Replicate: boolean;\n Overwrite: boolean;\n Compress: boolean;\n SourceCsvSeparate: string;\n SourceCsvQuote: string;\n SourceCsvTerminate: string;\n SourceCsvEscape: string;\n TimeStarted: string;\n TimeStopped: string;\n StateMessage: string;\n MonitorEventName: string;\n MonitorSub: boolean;\n MonitorShotLimit: int;\n SourceDiffKeyName: string;\n DestDiffKeyName: string;\n Archived: boolean;\n encrypt: string;\n decrypt: string;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n preserveCompression: boolean;\n expireDays: int;\n PreserveFileParts: boolean;\n FileAccessCost: double;\n KbPerSecAve: int;\n KbPerSec: int;\n }\n\n export interface results {\n DFUWorkunit: DFUWorkunit[];\n }\n\n export interface GetDFUWorkunitsResponse {\n Exceptions: Exceptions;\n results: results;\n Type: string;\n Owner: string;\n Cluster: string;\n StateReq: string;\n PageSize: long;\n PrevPage: long;\n NextPage: long;\n LastPage: long;\n NumWUs: long;\n PageStartFrom: long;\n PageEndAt: long;\n First: boolean;\n Sortby: string;\n Descending: boolean;\n BasicQuery: string;\n Filters: string;\n CacheHint: long;\n }\n\n export interface GetRemoteTargetsRequest {\n\n }\n\n export interface TargetNames {\n Item: string[];\n }\n\n export interface GetRemoteTargetsResponse {\n Exceptions: Exceptions;\n TargetNames: TargetNames;\n AllowForeign: boolean;\n }\n\n export interface GetSprayTargetsRequest {\n\n }\n\n export interface GroupNode {\n Name: string;\n ClusterType: string;\n ReplicateOutputs: boolean;\n }\n\n export interface GroupNodes {\n GroupNode: GroupNode[];\n }\n\n export interface GetSprayTargetsResponse {\n Exceptions: Exceptions;\n GroupNodes: GroupNodes;\n }\n\n export interface OpenSaveRequest {\n Location?: string;\n Path?: string;\n Name?: string;\n Type?: string;\n DateTime?: string;\n BinaryFile?: boolean;\n }\n\n export interface OpenSaveResponse {\n Exceptions: Exceptions;\n Location: string;\n Path: string;\n Name: string;\n Type: string;\n DateTime: string;\n Viewable: boolean;\n }\n\n export interface FileSprayPingRequest {\n\n }\n\n export interface FileSprayPingResponse {\n\n }\n\n export interface Rename {\n srcname: string;\n dstname: string;\n overwrite: boolean;\n DFUServerQueue: string;\n }\n\n export interface RenameResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface Replicate {\n sourceLogicalName: string;\n replicateOffset: int;\n cluster: string;\n repeatLast: boolean;\n onlyRepeated: boolean;\n DFUServerQueue: string;\n }\n\n export interface ReplicateResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface ShowResultRequest {\n Result?: string;\n }\n\n export interface ShowResultResponse {\n Exceptions: Exceptions;\n Result: string;\n }\n\n export interface SprayFixed {\n sourceIP: string;\n sourcePlane: string;\n sourcePath: string;\n srcxml: base64Binary;\n sourceFormat: string;\n sourceRecordSize: int;\n destGroup: string;\n destLogicalName: string;\n destNumParts: int;\n overwrite: boolean;\n replicate: boolean;\n ReplicateOffset: int;\n maxConnections: int;\n throttle: int;\n transferBufferSize: int;\n prefix: string;\n nosplit: boolean;\n norecover: boolean;\n compress: boolean;\n push: boolean;\n pull: boolean;\n noCommon: boolean;\n encrypt: string;\n decrypt: string;\n wrap: boolean;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n expireDays: int;\n DFUServerQueue: string;\n }\n\n export interface SprayFixedResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface SprayVariable {\n sourceIP: string;\n sourcePlane: string;\n sourcePath: string;\n srcxml: base64Binary;\n sourceMaxRecordSize: int;\n sourceFormat: int;\n NoSourceCsvSeparator: boolean;\n sourceCsvSeparate: string;\n sourceCsvTerminate: string;\n sourceCsvQuote: string;\n sourceCsvEscape: string;\n sourceRowTag: string;\n destGroup: string;\n destLogicalName: string;\n destNumParts: int;\n overwrite: boolean;\n replicate: boolean;\n ReplicateOffset: int;\n maxConnections: int;\n throttle: int;\n transferBufferSize: int;\n prefix: string;\n nosplit: boolean;\n norecover: boolean;\n compress: boolean;\n push: boolean;\n pull: boolean;\n noCommon: boolean;\n encrypt: string;\n decrypt: string;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n sourceRowPath: string;\n isJSON: boolean;\n expireDays: int;\n DFUServerQueue: string;\n srcUsername: string;\n srcPassword: string;\n }\n\n export interface SprayResponse {\n Exceptions: Exceptions;\n wuid: string;\n }\n\n export interface SubmitDFUWorkunit {\n wuid: string;\n }\n\n export interface SubmitDFUWorkunitResponse {\n Exceptions: Exceptions;\n }\n\n export interface wu {\n ID: string;\n DFUServerName: string;\n ClusterName: string;\n JobName: string;\n Queue: string;\n User: string;\n isProtected: boolean;\n Command: int;\n CommandMessage: string;\n PercentDone: int;\n SecsLeft: int;\n ProgressMessage: string;\n SummaryMessage: string;\n State: int;\n SourceLogicalName: string;\n SourceIP: string;\n SourceFilePath: string;\n SourceDali: string;\n SourceRecordSize: int;\n SourceFormat: int;\n RowTag: string;\n SourceNumParts: int;\n SourceDirectory: string;\n DestLogicalName: string;\n DestGroupName: string;\n DestDirectory: string;\n DestIP: string;\n DestFilePath: string;\n DestFormat: int;\n DestNumParts: int;\n DestRecordSize: int;\n Replicate: boolean;\n Overwrite: boolean;\n Compress: boolean;\n SourceCsvSeparate: string;\n SourceCsvQuote: string;\n SourceCsvTerminate: string;\n SourceCsvEscape: string;\n TimeStarted: string;\n TimeStopped: string;\n StateMessage: string;\n MonitorEventName: string;\n MonitorSub: boolean;\n MonitorShotLimit: int;\n SourceDiffKeyName: string;\n DestDiffKeyName: string;\n Archived: boolean;\n encrypt: string;\n decrypt: string;\n failIfNoSourceFile: boolean;\n recordStructurePresent: boolean;\n quotedTerminator: boolean;\n preserveCompression: boolean;\n expireDays: int;\n PreserveFileParts: boolean;\n FileAccessCost: double;\n KbPerSecAve: int;\n KbPerSec: int;\n }\n\n export interface UpdateDFUWorkunit {\n wu: wu;\n ClusterOrig: string;\n JobNameOrig: string;\n isProtectedOrig: boolean;\n StateOrig: int;\n }\n\n export interface UpdateDFUWorkunitResponse {\n Exceptions: Exceptions;\n }\n\n}\n\nexport class FileSprayServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"FileSpray\", \"1.27\");\n }\n\n AbortDFUWorkunit(request: Partial<FileSpray.AbortDFUWorkunit>): Promise<FileSpray.AbortDFUWorkunitResponse> {\n return this._connection.send(\"AbortDFUWorkunit\", request, \"json\", false, undefined, \"AbortDFUWorkunitResponse\");\n }\n\n Copy(request: Partial<FileSpray.Copy>): Promise<FileSpray.CopyResponse> {\n return this._connection.send(\"Copy\", request, \"json\", false, undefined, \"CopyResponse\");\n }\n\n CreateDFUPublisherWorkunit(request: Partial<FileSpray.CreateDFUPublisherWorkunit>): Promise<FileSpray.CreateDFUPublisherWorkunitResponse> {\n return this._connection.send(\"CreateDFUPublisherWorkunit\", request, \"json\", false, undefined, \"CreateDFUPublisherWorkunitResponse\");\n }\n\n CreateDFUWorkunit(request: Partial<FileSpray.CreateDFUWorkunit>): Promise<FileSpray.CreateDFUWorkunitResponse> {\n return this._connection.send(\"CreateDFUWorkunit\", request, \"json\", false, undefined, \"CreateDFUWorkunitResponse\");\n }\n\n DFUWUFile(request: Partial<FileSpray.DFUWUFileRequest>): Promise<FileSpray.DFUWUFileResponse> {\n return this._connection.send(\"DFUWUFile\", request, \"json\", false, undefined, \"DFUWUFileResponse\");\n }\n\n DFUWUSearch(request: Partial<FileSpray.DFUWUSearchRequest>): Promise<FileSpray.DFUWUSearchResponse> {\n return this._connection.send(\"DFUWUSearch\", request, \"json\", false, undefined, \"DFUWUSearchResponse\");\n }\n\n DFUWorkunitsAction(request: Partial<FileSpray.DFUWorkunitsActionRequest>): Promise<FileSpray.DFUWorkunitsActionResponse> {\n return this._connection.send(\"DFUWorkunitsAction\", request, \"json\", false, undefined, \"DFUWorkunitsActionResponse\");\n }\n\n DeleteDFUWorkunit(request: Partial<FileSpray.DeleteDFUWorkunit>): Promise<FileSpray.DeleteDFUWorkunitResponse> {\n return this._connection.send(\"DeleteDFUWorkunit\", request, \"json\", false, undefined, \"DeleteDFUWorkunitResponse\");\n }\n\n DeleteDFUWorkunits(request: Partial<FileSpray.DeleteDFUWorkunits>): Promise<FileSpray.DeleteDFUWorkunitsResponse> {\n return this._connection.send(\"DeleteDFUWorkunits\", request, \"json\", false, undefined, \"DeleteDFUWorkunitsResponse\");\n }\n\n DeleteDropZoneFiles(request: Partial<FileSpray.DeleteDropZoneFilesRequest>): Promise<FileSpray.DFUWorkunitsActionResponse> {\n return this._connection.send(\"DeleteDropZoneFiles\", request, \"json\", false, undefined, \"DFUWorkunitsActionResponse\");\n }\n\n Despray(request: Partial<FileSpray.Despray>): Promise<FileSpray.DesprayResponse> {\n return this._connection.send(\"Despray\", request, \"json\", false, undefined, \"DesprayResponse\");\n }\n\n DfuMonitor(request: Partial<FileSpray.DfuMonitorRequest>): Promise<FileSpray.DfuMonitorResponse> {\n return this._connection.send(\"DfuMonitor\", request, \"json\", false, undefined, \"DfuMonitorResponse\");\n }\n\n DropZoneFileSearch(request: Partial<FileSpray.DropZoneFileSearchRequest>): Promise<FileSpray.DropZoneFileSearchResponse> {\n return this._connection.send(\"DropZoneFileSearch\", request, \"json\", false, undefined, \"DropZoneFileSearchResponse\");\n }\n\n DropZoneFiles(request: Partial<FileSpray.DropZoneFilesRequest>): Promise<FileSpray.DropZoneFilesResponse> {\n return this._connection.send(\"DropZoneFiles\", request, \"json\", false, undefined, \"DropZoneFilesResponse\");\n }\n\n EchoDateTime(request: Partial<FileSpray.EchoDateTime>): Promise<FileSpray.EchoDateTimeResponse> {\n return this._connection.send(\"EchoDateTime\", request, \"json\", false, undefined, \"EchoDateTimeResponse\");\n }\n\n FileList(request: Partial<FileSpray.FileListRequest>): Promise<FileSpray.FileListResponse> {\n return this._connection.send(\"FileList\", request, \"json\", false, undefined, \"FileListResponse\");\n }\n\n GetDFUExceptions(request: Partial<FileSpray.GetDFUExceptions>): Promise<FileSpray.GetDFUExceptionsResponse> {\n return this._connection.send(\"GetDFUExceptions\", request, \"json\", false, undefined, \"GetDFUExceptionsResponse\");\n }\n\n GetDFUProgress(request: Partial<FileSpray.ProgressRequest>): Promise<FileSpray.ProgressResponse> {\n return this._connection.send(\"GetDFUProgress\", request, \"json\", false, undefined, \"ProgressResponse\");\n }\n\n GetDFUServerQueues(request: Partial<FileSpray.GetDFUServerQueuesRequest>): Promise<FileSpray.GetDFUServerQueuesResponse> {\n return this._connection.send(\"GetDFUServerQueues\", request, \"json\", false, undefined, \"GetDFUServerQueuesResponse\");\n }\n\n GetDFUWorkunit(request: Partial<FileSpray.GetDFUWorkunit>): Promise<FileSpray.GetDFUWorkunitResponse> {\n return this._connection.send(\"GetDFUWorkunit\", request, \"json\", false, undefined, \"GetDFUWorkunitResponse\");\n }\n\n GetDFUWorkunits(request: Partial<FileSpray.GetDFUWorkunits>): Promise<FileSpray.GetDFUWorkunitsResponse> {\n return this._connection.send(\"GetDFUWorkunits\", request, \"json\", false, undefined, \"GetDFUWorkunitsResponse\");\n }\n\n GetRemoteTargets(request: Partial<FileSpray.GetRemoteTargetsRequest>): Promise<FileSpray.GetRemoteTargetsResponse> {\n return this._connection.send(\"GetRemoteTargets\", request, \"json\", false, undefined, \"GetRemoteTargetsResponse\");\n }\n\n GetSprayTargets(request: Partial<FileSpray.GetSprayTargetsRequest>): Promise<FileSpray.GetSprayTargetsResponse> {\n return this._connection.send(\"GetSprayTargets\", request, \"json\", false, undefined, \"GetSprayTargetsResponse\");\n }\n\n OpenSave(request: Partial<FileSpray.OpenSaveRequest>): Promise<FileSpray.OpenSaveResponse> {\n return this._connection.send(\"OpenSave\", request, \"json\", false, undefined, \"OpenSaveResponse\");\n }\n\n Ping(request: Partial<FileSpray.FileSprayPingRequest>): Promise<FileSpray.FileSprayPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"FileSprayPingResponse\");\n }\n\n Rename(request: Partial<FileSpray.Rename>): Promise<FileSpray.RenameResponse> {\n return this._connection.send(\"Rename\", request, \"json\", false, undefined, \"RenameResponse\");\n }\n\n Replicate(request: Partial<FileSpray.Replicate>): Promise<FileSpray.ReplicateResponse> {\n return this._connection.send(\"Replicate\", request, \"json\", false, undefined, \"ReplicateResponse\");\n }\n\n ShowResult(request: Partial<FileSpray.ShowResultRequest>): Promise<FileSpray.ShowResultResponse> {\n return this._connection.send(\"ShowResult\", request, \"json\", false, undefined, \"ShowResultResponse\");\n }\n\n SprayFixed(request: Partial<FileSpray.SprayFixed>): Promise<FileSpray.SprayFixedResponse> {\n return this._connection.send(\"SprayFixed\", request, \"json\", false, undefined, \"SprayFixedResponse\");\n }\n\n SprayVariable(request: Partial<FileSpray.SprayVariable>): Promise<FileSpray.SprayResponse> {\n return this._connection.send(\"SprayVariable\", request, \"json\", false, undefined, \"SprayResponse\");\n }\n\n SubmitDFUWorkunit(request: Partial<FileSpray.SubmitDFUWorkunit>): Promise<FileSpray.SubmitDFUWorkunitResponse> {\n return this._connection.send(\"SubmitDFUWorkunit\", request, \"json\", false, undefined, \"SubmitDFUWorkunitResponse\");\n }\n\n UpdateDFUWorkunit(request: Partial<FileSpray.UpdateDFUWorkunit>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\n return this._connection.send(\"UpdateDFUWorkunit\", request, \"json\", false, undefined, \"UpdateDFUWorkunitResponse\");\n }\n\n}\n", "import { FileSprayServiceBase, FileSpray } from \"./wsdl/FileSpray/v1.27/FileSpray.ts\";\n\nexport {\n FileSpray\n};\n\ntype UpdateDFUWorkunitMinusWU = Omit<FileSpray.UpdateDFUWorkunit, \"wu\">;\ntype UpdateDFUWorkunitWU = FileSpray.UpdateDFUWorkunit[\"wu\"];\n\nexport enum FileSprayStates {\n unknown = 0,\n scheduled,\n queued,\n started,\n aborted,\n failed,\n finished,\n monitoring,\n aborting,\n notfound = 999\n}\n\nexport interface UpdateDFUWorkunitEx extends UpdateDFUWorkunitMinusWU {\n wu?: Partial<UpdateDFUWorkunitWU>\n}\n\nexport class FileSprayService extends FileSprayServiceBase {\n\n DFUWUFileEx(request: FileSpray.DFUWUFileRequest): Promise<string> {\n return this._connection.send(\"DFUWUFile\", request, \"text\");\n }\n\n SprayFixedEx(request: Partial<FileSpray.SprayFixed>): Promise<FileSpray.SprayFixedResponse> {\n return this._connection.send(\"SprayFixed\", request);\n }\n\n SprayVariableEx(request: Partial<FileSpray.SprayVariable>): Promise<FileSpray.SprayResponse> {\n return this._connection.send(\"SprayVariable\", request, \"json\", false, null, \"SprayResponse\");\n }\n\n DesprayEx(request: Partial<FileSpray.Despray>): Promise<FileSpray.DesprayResponse> {\n return this._connection.send(\"Despray\", request);\n }\n\n UpdateDFUWorkunitEx(request: Partial<UpdateDFUWorkunitEx>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\n return this._connection.send(\"UpdateDFUWorkunit\", request, \"json\", false, undefined, \"UpdateDFUWorkunitResponse\");\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsAccess {\n\n export type int = number;\n export type unsignedInt = number;\n export type long = number;\n export type base64Binary = string;\n\n export enum ViewMemberType {\n User = \"User\",\n Group = \"Group\"\n }\n\n export enum UserSortBy {\n username = \"username\",\n fullname = \"fullname\",\n passwordexpiration = \"passwordexpiration\",\n employeeID = \"employeeID\",\n employeeNumber = \"employeeNumber\"\n }\n\n export enum GroupSortBy {\n Name = \"Name\",\n ManagedBy = \"ManagedBy\"\n }\n\n export enum AccountTypeReq {\n Any = \"Any\",\n User = \"User\",\n Group = \"Group\"\n }\n\n export enum ResourcePermissionSortBy {\n Name = \"Name\",\n Type = \"Type\"\n }\n\n export enum ResourceSortBy {\n Name = \"Name\"\n }\n\n export interface AccountPermissionsRequest {\n AccountName?: string;\n IsGroup?: boolean;\n IncludeGroup?: boolean;\n }\n\n export interface BasednNames {\n Item: string[];\n }\n\n export interface Permission {\n BasednName: string;\n rname: string;\n prefix: string;\n ResourceName: string;\n PermissionName: string;\n allow_access: boolean;\n allow_read: boolean;\n allow_write: boolean;\n allow_full: boolean;\n deny_access: boolean;\n deny_read: boolean;\n deny_write: boolean;\n deny_full: boolean;\n }\n\n export interface Permissions {\n Permission: Permission[];\n }\n\n export interface GroupPermission {\n GroupName: string;\n BasednNames: BasednNames;\n Permissions: Permissions;\n }\n\n export interface GroupPermissions {\n GroupPermission: GroupPermission[];\n }\n\n export interface AccountPermissionsResponse {\n AccountName: string;\n IsGroup: boolean;\n IncludeGroup: boolean;\n BasednNames: BasednNames;\n Permissions: Permissions;\n GroupPermissions: GroupPermissions;\n }\n\n export interface AccountPermissionsV2Request {\n ResourceName?: string;\n AccountName?: string;\n IsGroup?: boolean;\n IncludeGroup?: boolean;\n }\n\n export interface AccountPermissionsV2Response {\n BasednNames: BasednNames;\n Permissions: Permissions;\n GroupPermissions: GroupPermissions;\n }\n\n export interface AddUserRequest {\n username?: string;\n firstname?: string;\n lastname?: string;\n password1?: string;\n password2?: string;\n employeeID?: string;\n employeeNumber?: string;\n }\n\n export interface AddUserResponse {\n retcode: int;\n retmsg: string;\n }\n\n export interface AddViewRequest {\n viewname?: string;\n description?: string;\n }\n\n export interface AddViewResponse {\n viewname: string;\n description: string;\n }\n\n export interface AddViewColumnRequest {\n viewname?: string;\n filename?: string;\n columnname?: string;\n }\n\n export interface AddViewColumnResponse {\n viewname: string;\n filename: string;\n columnname: string;\n }\n\n export interface AddViewMemberRequest {\n viewname?: string;\n membername?: string;\n membertype?: ViewMemberType;\n }\n\n export interface AddViewMemberResponse {\n viewname: string;\n membername: string;\n membertype: ViewMemberType;\n }\n\n export interface ClearPermissionsCacheRequest {\n\n }\n\n export interface ClearPermissionsCacheResponse {\n retcode: int;\n }\n\n export interface DeleteViewRequest {\n viewname?: string;\n }\n\n export interface DeleteViewResponse {\n viewname: string;\n }\n\n export interface DeleteViewColumnRequest {\n viewname?: string;\n filename?: string;\n columnname?: string;\n }\n\n export interface DeleteViewColumnResponse {\n viewname: string;\n filename: string;\n columnname: string;\n }\n\n export interface DeleteViewMemberRequest {\n viewname?: string;\n membername?: string;\n membertype?: ViewMemberType;\n }\n\n export interface DeleteViewMemberResponse {\n viewname: string;\n membername: string;\n membertype: ViewMemberType;\n }\n\n export interface DisableScopeScansRequest {\n\n }\n\n export interface scopeScansStatus {\n isEnabled: boolean;\n retcode: int;\n retmsg: string;\n }\n\n export interface DisableScopeScansResponse {\n scopeScansStatus: scopeScansStatus;\n }\n\n export interface EnableScopeScansRequest {\n\n }\n\n export interface EnableScopeScansResponse {\n scopeScansStatus: scopeScansStatus;\n }\n\n export interface FilePermissionRequest {\n FileName?: string;\n UserName?: string;\n GroupName?: string;\n }\n\n export interface User {\n username: string;\n fullname: string;\n passwordexpiration: string;\n employeeID: string;\n employeeNumber: string;\n }\n\n export interface Users {\n User: User[];\n }\n\n export interface Group {\n name: string;\n deletable: boolean;\n groupOwner: string;\n groupDesc: string;\n }\n\n export interface Groups {\n Group: Group[];\n }\n\n export interface FilePermissionResponse {\n NoSecMngr: boolean;\n FileName: string;\n UserName: string;\n GroupName: string;\n toomany: boolean;\n Users: Users;\n Groups: Groups;\n UserPermission: string;\n }\n\n export interface groupnames {\n Item: string[];\n }\n\n export interface GroupActionRequest {\n groupnames?: groupnames;\n ActionType?: string;\n DeletePermission?: boolean;\n }\n\n export interface GroupActionResponse {\n Groupnames: string;\n Permissions: Permissions;\n retcode: int;\n retmsg: string;\n }\n\n export interface GroupAddRequest {\n groupname?: string;\n groupOwner?: string;\n groupDesc?: string;\n }\n\n export interface GroupAddResponse {\n groupname: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface GroupEditRequest {\n groupname?: string;\n }\n\n export interface GroupEditResponse {\n groupname: string;\n Users: Users;\n }\n\n export interface usernames {\n Item: string[];\n }\n\n export interface GroupMemberEditRequest {\n groupname?: string;\n action?: string;\n usernames?: usernames;\n }\n\n export interface GroupMemberEditResponse {\n groupname: string;\n action: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface GroupMemberEditInputRequest {\n searchinput?: string;\n groupname?: string;\n }\n\n export interface GroupMemberEditInputResponse {\n groupname: string;\n toomany: boolean;\n Users: Users;\n }\n\n export interface GroupMemberQueryRequest {\n GroupName?: string;\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: UserSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface GroupMemberQueryResponse {\n NoSecMngr: boolean;\n Users: Users;\n TotalUsers: long;\n CacheHint: long;\n }\n\n export interface GroupQueryRequest {\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: GroupSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface GroupQueryResponse {\n NoSecMngr: boolean;\n Groups: Groups;\n TotalGroups: long;\n CacheHint: long;\n }\n\n export interface GroupRequest {\n\n }\n\n export interface GroupResponse {\n NoSecMngr: boolean;\n Groups: Groups;\n }\n\n export interface PermissionActionRequest {\n rname?: string;\n prefix?: string;\n action?: string;\n account_name?: string;\n account_type?: int;\n allow_access?: boolean;\n allow_read?: boolean;\n allow_write?: boolean;\n allow_full?: boolean;\n deny_access?: boolean;\n deny_read?: boolean;\n deny_write?: boolean;\n deny_full?: boolean;\n user?: string;\n group?: string;\n BasednName?: string;\n ResourceName?: string;\n }\n\n export interface PermissionActionResponse {\n AccountName: string;\n IsGroup: boolean;\n retcode: int;\n retmsg: string;\n }\n\n export interface BasednsRequest {\n\n }\n\n export interface Basedn {\n name: string;\n basedn: string;\n rtype: string;\n rtitle: string;\n templatename: string;\n }\n\n export interface Basedns {\n Basedn: Basedn[];\n }\n\n export interface BasednsResponse {\n NoSecMngr: boolean;\n Basedns: Basedns;\n }\n\n export interface names {\n Item: string[];\n }\n\n export interface PermissionsResetRequest {\n BasednName?: string;\n prefix?: string;\n names?: names;\n allow_access?: boolean;\n allow_read?: boolean;\n allow_write?: boolean;\n allow_full?: boolean;\n deny_access?: boolean;\n deny_read?: boolean;\n deny_write?: boolean;\n deny_full?: boolean;\n userarray?: string;\n grouparray?: string;\n }\n\n export interface PermissionsResetResponse {\n retcode: int;\n retmsg: string;\n }\n\n export interface ws_accessPingRequest {\n\n }\n\n export interface ws_accessPingResponse {\n\n }\n\n export interface QueryScopeScansEnabledRequest {\n\n }\n\n export interface QueryScopeScansEnabledResponse {\n scopeScansStatus: scopeScansStatus;\n }\n\n export interface QueryUserViewColumnsRequest {\n username?: string;\n }\n\n export interface ViewColumn {\n viewname: string;\n filename: string;\n columnname: string;\n }\n\n export interface viewcolumns {\n ViewColumn: ViewColumn[];\n }\n\n export interface QueryUserViewColumnsResponse {\n username: string;\n viewcolumns: viewcolumns;\n }\n\n export interface QueryViewColumnsRequest {\n viewname?: string;\n }\n\n export interface QueryViewColumnsResponse {\n viewname: string;\n viewcolumns: viewcolumns;\n }\n\n export interface QueryViewMembersRequest {\n viewname?: string;\n }\n\n export interface ViewMember {\n viewname: string;\n name: string;\n membertype: ViewMemberType;\n }\n\n export interface viewmembers {\n ViewMember: ViewMember[];\n }\n\n export interface QueryViewMembersResponse {\n viewname: string;\n viewmembers: viewmembers;\n }\n\n export interface QueryViewsRequest {\n\n }\n\n export interface View {\n viewname: string;\n description: string;\n }\n\n export interface views {\n View: View[];\n }\n\n export interface QueryViewsResponse {\n views: views;\n }\n\n export interface ResourceAddRequest {\n BasednName?: string;\n name?: string;\n description?: string;\n prefix?: string;\n }\n\n export interface ResourceAddResponse {\n retcode: int;\n retmsg: string;\n }\n\n export interface ResourceDeleteRequest {\n BasednName?: string;\n prefix?: string;\n names?: names;\n DoUpdate?: int;\n }\n\n export interface ResourceDeleteResponse {\n retcode: int;\n retmsg: string;\n }\n\n export interface ResourcePermissionQueryRequest {\n BasednName?: string;\n prefix?: string;\n Name?: string;\n AccountType?: AccountTypeReq;\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: ResourcePermissionSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface Permission2 {\n account_name: string;\n escaped_account_name: string;\n account_type: int;\n allow_access: boolean;\n allow_read: boolean;\n allow_write: boolean;\n allow_full: boolean;\n deny_access: boolean;\n deny_read: boolean;\n deny_write: boolean;\n deny_full: boolean;\n }\n\n export interface Permissions2 {\n Permission: Permission2[];\n }\n\n export interface ResourcePermissionQueryResponse {\n NoSecMngr: boolean;\n Permissions: Permissions2;\n TotalResourcePermissions: long;\n CacheHint: long;\n }\n\n export interface ResourcePermissionsRequest {\n name?: string;\n BasednName?: string;\n prefix?: string;\n }\n\n export interface ResourcePermissionsResponse {\n Permissions: Permissions2;\n }\n\n export interface ResourceQueryRequest {\n BasednName?: string;\n prefix?: string;\n Name?: string;\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: ResourceSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface Resource {\n name: string;\n description: string;\n isSpecial: boolean;\n }\n\n export interface Resources {\n Resource: Resource[];\n }\n\n export interface ResourceQueryResponse {\n NoSecMngr: boolean;\n Resources: Resources;\n TotalResources: long;\n CacheHint: long;\n }\n\n export interface ResourcesRequest {\n templatename?: string;\n BasednName?: string;\n prefix?: string;\n searchinput?: string;\n }\n\n export interface ResourcesResponse {\n Resources: Resources;\n default_basedn: string;\n default_name: string;\n toomany: boolean;\n scopeScansStatus: scopeScansStatus;\n }\n\n export interface UserAccountExportRequest {\n usernames?: usernames;\n groupnames?: groupnames;\n }\n\n export interface UserAccountExportResponse {\n Result: base64Binary;\n }\n\n export interface UserActionRequest {\n action?: string;\n ActionType?: string;\n usernames?: usernames;\n }\n\n export interface UserActionResponse {\n action: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserEditRequest {\n username?: string;\n }\n\n export interface UserEditResponse {\n username: string;\n isLDAPAdmin: boolean;\n Groups: Groups;\n }\n\n export interface UserGroupEditRequest {\n username?: string;\n action?: string;\n groupnames?: groupnames;\n }\n\n export interface UserGroupEditResponse {\n username: string;\n action: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserGroupEditInputRequest {\n username?: string;\n }\n\n export interface UserGroupEditInputResponse {\n username: string;\n Groups: Groups;\n }\n\n export interface UserInfoEditRequest {\n username?: string;\n firstname?: string;\n lastname?: string;\n employeeID?: string;\n employeeNumber?: string;\n }\n\n export interface UserInfoEditResponse {\n username: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserInfoEditInputRequest {\n username?: string;\n }\n\n export interface UserInfoEditInputResponse {\n username: string;\n firstname: string;\n lastname: string;\n employeeID: string;\n PasswordExpiration: string;\n employeeNumber: string;\n }\n\n export interface UserPosixRequest {\n username?: string;\n posixenabled?: boolean;\n gidnumber?: string;\n uidnumber?: string;\n homedirectory?: string;\n loginshell?: string;\n }\n\n export interface UserPosixResponse {\n username: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserPosixInputRequest {\n username?: string;\n }\n\n export interface UserPosixInputResponse {\n username: string;\n posixenabled: boolean;\n gidnumber: string;\n uidnumber: string;\n homedirectory: string;\n loginshell: string;\n }\n\n export interface UserQueryRequest {\n Name?: string;\n PageSize?: unsignedInt;\n PageStartFrom?: long;\n SortBy?: UserSortBy;\n Descending?: boolean;\n CacheHint?: long;\n }\n\n export interface UserQueryResponse {\n NoSecMngr: boolean;\n Users: Users;\n TotalUsers: long;\n CacheHint: long;\n }\n\n export interface UserResetPassRequest {\n username?: string;\n newPassword?: string;\n newPasswordRetype?: string;\n }\n\n export interface UserResetPassResponse {\n username: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserResetPassInputRequest {\n username?: string;\n }\n\n export interface UserResetPassInputResponse {\n username: string;\n }\n\n export interface UserSudoersRequest {\n username?: string;\n action?: string;\n sudoHost?: string;\n sudoCommand?: string;\n sudoOption?: string;\n }\n\n export interface UserSudoersResponse {\n username: string;\n retcode: int;\n retmsg: string;\n }\n\n export interface UserSudoersInputRequest {\n username?: string;\n }\n\n export interface UserSudoersInputResponse {\n username: string;\n insudoers: boolean;\n sudoHost: string;\n sudoCommand: string;\n sudoOption: string;\n }\n\n export interface UserRequest {\n searchinput?: string;\n }\n\n export interface UserResponse {\n NoSecMngr: boolean;\n toomany: boolean;\n posixok: boolean;\n Users: Users;\n }\n\n}\n\nexport class AccessServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_access\", \"1.17\");\n }\n\n AccountPermissions(request: Partial<WsAccess.AccountPermissionsRequest>): Promise<WsAccess.AccountPermissionsResponse> {\n return this._connection.send(\"AccountPermissions\", request, \"json\", false, undefined, \"AccountPermissionsResponse\");\n }\n\n AccountPermissionsV2(request: Partial<WsAccess.AccountPermissionsV2Request>): Promise<WsAccess.AccountPermissionsV2Response> {\n return this._connection.send(\"AccountPermissionsV2\", request, \"json\", false, undefined, \"AccountPermissionsV2Response\");\n }\n\n AddUser(request: Partial<WsAccess.AddUserRequest>): Promise<WsAccess.AddUserResponse> {\n return this._connection.send(\"AddUser\", request, \"json\", false, undefined, \"AddUserResponse\");\n }\n\n AddView(request: Partial<WsAccess.AddViewRequest>): Promise<WsAccess.AddViewResponse> {\n return this._connection.send(\"AddView\", request, \"json\", false, undefined, \"AddViewResponse\");\n }\n\n AddViewColumn(request: Partial<WsAccess.AddViewColumnRequest>): Promise<WsAccess.AddViewColumnResponse> {\n return this._connection.send(\"AddViewColumn\", request, \"json\", false, undefined, \"AddViewColumnResponse\");\n }\n\n AddViewMember(request: Partial<WsAccess.AddViewMemberRequest>): Promise<WsAccess.AddViewMemberResponse> {\n return this._connection.send(\"AddViewMember\", request, \"json\", false, undefined, \"AddViewMemberResponse\");\n }\n\n ClearPermissionsCache(request: Partial<WsAccess.ClearPermissionsCacheRequest>): Promise<WsAccess.ClearPermissionsCacheResponse> {\n return this._connection.send(\"ClearPermissionsCache\", request, \"json\", false, undefined, \"ClearPermissionsCacheResponse\");\n }\n\n DeleteView(request: Partial<WsAccess.DeleteViewRequest>): Promise<WsAccess.DeleteViewResponse> {\n return this._connection.send(\"DeleteView\", request, \"json\", false, undefined, \"DeleteViewResponse\");\n }\n\n DeleteViewColumn(request: Partial<WsAccess.DeleteViewColumnRequest>): Promise<WsAccess.DeleteViewColumnResponse> {\n return this._connection.send(\"DeleteViewColumn\", request, \"json\", false, undefined, \"DeleteViewColumnResponse\");\n }\n\n DeleteViewMember(request: Partial<WsAccess.DeleteViewMemberRequest>): Promise<WsAccess.DeleteViewMemberResponse> {\n return this._connection.send(\"DeleteViewMember\", request, \"json\", false, undefined, \"DeleteViewMemberResponse\");\n }\n\n DisableScopeScans(request: Partial<WsAccess.DisableScopeScansRequest>): Promise<WsAccess.DisableScopeScansResponse> {\n return this._connection.send(\"DisableScopeScans\", request, \"json\", false, undefined, \"DisableScopeScansResponse\");\n }\n\n EnableScopeScans(request: Partial<WsAccess.EnableScopeScansRequest>): Promise<WsAccess.EnableScopeScansResponse> {\n return this._connection.send(\"EnableScopeScans\", request, \"json\", false, undefined, \"EnableScopeScansResponse\");\n }\n\n FilePermission(request: Partial<WsAccess.FilePermissionRequest>): Promise<WsAccess.FilePermissionResponse> {\n return this._connection.send(\"FilePermission\", request, \"json\", false, undefined, \"FilePermissionResponse\");\n }\n\n GroupAction(request: Partial<WsAccess.GroupActionRequest>): Promise<WsAccess.GroupActionResponse> {\n return this._connection.send(\"GroupAction\", request, \"json\", false, undefined, \"GroupActionResponse\");\n }\n\n GroupAdd(request: Partial<WsAccess.GroupAddRequest>): Promise<WsAccess.GroupAddResponse> {\n return this._connection.send(\"GroupAdd\", request, \"json\", false, undefined, \"GroupAddResponse\");\n }\n\n GroupEdit(request: Partial<WsAccess.GroupEditRequest>): Promise<WsAccess.GroupEditResponse> {\n return this._connection.send(\"GroupEdit\", request, \"json\", false, undefined, \"GroupEditResponse\");\n }\n\n GroupMemberEdit(request: Partial<WsAccess.GroupMemberEditRequest>): Promise<WsAccess.GroupMemberEditResponse> {\n return this._connection.send(\"GroupMemberEdit\", request, \"json\", false, undefined, \"GroupMemberEditResponse\");\n }\n\n GroupMemberEditInput(request: Partial<WsAccess.GroupMemberEditInputRequest>): Promise<WsAccess.GroupMemberEditInputResponse> {\n return this._connection.send(\"GroupMemberEditInput\", request, \"json\", false, undefined, \"GroupMemberEditInputResponse\");\n }\n\n GroupMemberQuery(request: Partial<WsAccess.GroupMemberQueryRequest>): Promise<WsAccess.GroupMemberQueryResponse> {\n return this._connection.send(\"GroupMemberQuery\", request, \"json\", false, undefined, \"GroupMemberQueryResponse\");\n }\n\n GroupQuery(request: Partial<WsAccess.GroupQueryRequest>): Promise<WsAccess.GroupQueryResponse> {\n return this._connection.send(\"GroupQuery\", request, \"json\", false, undefined, \"GroupQueryResponse\");\n }\n\n Groups(request: Partial<WsAccess.GroupRequest>): Promise<WsAccess.GroupResponse> {\n return this._connection.send(\"Groups\", request, \"json\", false, undefined, \"GroupResponse\");\n }\n\n PermissionAction(request: Partial<WsAccess.PermissionActionRequest>): Promise<WsAccess.PermissionActionResponse> {\n return this._connection.send(\"PermissionAction\", request, \"json\", false, undefined, \"PermissionActionResponse\");\n }\n\n Permissions(request: Partial<WsAccess.BasednsRequest>): Promise<WsAccess.BasednsResponse> {\n return this._connection.send(\"Permissions\", request, \"json\", false, undefined, \"BasednsResponse\");\n }\n\n PermissionsReset(request: Partial<WsAccess.PermissionsResetRequest>): Promise<WsAccess.PermissionsResetResponse> {\n return this._connection.send(\"PermissionsReset\", request, \"json\", false, undefined, \"PermissionsResetResponse\");\n }\n\n Ping(request: Partial<WsAccess.ws_accessPingRequest>): Promise<WsAccess.ws_accessPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_accessPingResponse\");\n }\n\n QueryScopeScansEnabled(request: Partial<WsAccess.QueryScopeScansEnabledRequest>): Promise<WsAccess.QueryScopeScansEnabledResponse> {\n return this._connection.send(\"QueryScopeScansEnabled\", request, \"json\", false, undefined, \"QueryScopeScansEnabledResponse\");\n }\n\n QueryUserViewColumns(request: Partial<WsAccess.QueryUserViewColumnsRequest>): Promise<WsAccess.QueryUserViewColumnsResponse> {\n return this._connection.send(\"QueryUserViewColumns\", request, \"json\", false, undefined, \"QueryUserViewColumnsResponse\");\n }\n\n QueryViewColumns(request: Partial<WsAccess.QueryViewColumnsRequest>): Promise<WsAccess.QueryViewColumnsResponse> {\n return this._connection.send(\"QueryViewColumns\", request, \"json\", false, undefined, \"QueryViewColumnsResponse\");\n }\n\n QueryViewMembers(request: Partial<WsAccess.QueryViewMembersRequest>): Promise<WsAccess.QueryViewMembersResponse> {\n return this._connection.send(\"QueryViewMembers\", request, \"json\", false, undefined, \"QueryViewMembersResponse\");\n }\n\n QueryViews(request: Partial<WsAccess.QueryViewsRequest>): Promise<WsAccess.QueryViewsResponse> {\n return this._connection.send(\"QueryViews\", request, \"json\", false, undefined, \"QueryViewsResponse\");\n }\n\n ResourceAdd(request: Partial<WsAccess.ResourceAddRequest>): Promise<WsAccess.ResourceAddResponse> {\n return this._connection.send(\"ResourceAdd\", request, \"json\", false, undefined, \"ResourceAddResponse\");\n }\n\n ResourceDelete(request: Partial<WsAccess.ResourceDeleteRequest>): Promise<WsAccess.ResourceDeleteResponse> {\n return this._connection.send(\"ResourceDelete\", request, \"json\", false, undefined, \"ResourceDeleteResponse\");\n }\n\n ResourcePermissionQuery(request: Partial<WsAccess.ResourcePermissionQueryRequest>): Promise<WsAccess.ResourcePermissionQueryResponse> {\n return this._connection.send(\"ResourcePermissionQuery\", request, \"json\", false, undefined, \"ResourcePermissionQueryResponse\");\n }\n\n ResourcePermissions(request: Partial<WsAccess.ResourcePermissionsRequest>): Promise<WsAccess.ResourcePermissionsResponse> {\n return this._connection.send(\"ResourcePermissions\", request, \"json\", false, undefined, \"ResourcePermissionsResponse\");\n }\n\n ResourceQuery(request: Partial<WsAccess.ResourceQueryRequest>): Promise<WsAccess.ResourceQueryResponse> {\n return this._connection.send(\"ResourceQuery\", request, \"json\", false, undefined, \"ResourceQueryResponse\");\n }\n\n Resources(request: Partial<WsAccess.ResourcesRequest>): Promise<WsAccess.ResourcesResponse> {\n return this._connection.send(\"Resources\", request, \"json\", false, undefined, \"ResourcesResponse\");\n }\n\n UserAccountExport(request: Partial<WsAccess.UserAccountExportRequest>): Promise<WsAccess.UserAccountExportResponse> {\n return this._connection.send(\"UserAccountExport\", request, \"json\", false, undefined, \"UserAccountExportResponse\");\n }\n\n UserAction(request: Partial<WsAccess.UserActionRequest>): Promise<WsAccess.UserActionResponse> {\n return this._connection.send(\"UserAction\", request, \"json\", false, undefined, \"UserActionResponse\");\n }\n\n UserEdit(request: Partial<WsAccess.UserEditRequest>): Promise<WsAccess.UserEditResponse> {\n return this._connection.send(\"UserEdit\", request, \"json\", false, undefined, \"UserEditResponse\");\n }\n\n UserGroupEdit(request: Partial<WsAccess.UserGroupEditRequest>): Promise<WsAccess.UserGroupEditResponse> {\n return this._connection.send(\"UserGroupEdit\", request, \"json\", false, undefined, \"UserGroupEditResponse\");\n }\n\n UserGroupEditInput(request: Partial<WsAccess.UserGroupEditInputRequest>): Promise<WsAccess.UserGroupEditInputResponse> {\n return this._connection.send(\"UserGroupEditInput\", request, \"json\", false, undefined, \"UserGroupEditInputResponse\");\n }\n\n UserInfoEdit(request: Partial<WsAccess.UserInfoEditRequest>): Promise<WsAccess.UserInfoEditResponse> {\n return this._connection.send(\"UserInfoEdit\", request, \"json\", false, undefined, \"UserInfoEditResponse\");\n }\n\n UserInfoEditInput(request: Partial<WsAccess.UserInfoEditInputRequest>): Promise<WsAccess.UserInfoEditInputResponse> {\n return this._connection.send(\"UserInfoEditInput\", request, \"json\", false, undefined, \"UserInfoEditInputResponse\");\n }\n\n UserPosix(request: Partial<WsAccess.UserPosixRequest>): Promise<WsAccess.UserPosixResponse> {\n return this._connection.send(\"UserPosix\", request, \"json\", false, undefined, \"UserPosixResponse\");\n }\n\n UserPosixInput(request: Partial<WsAccess.UserPosixInputRequest>): Promise<WsAccess.UserPosixInputResponse> {\n return this._connection.send(\"UserPosixInput\", request, \"json\", false, undefined, \"UserPosixInputResponse\");\n }\n\n UserQuery(request: Partial<WsAccess.UserQueryRequest>): Promise<WsAccess.UserQueryResponse> {\n return this._connection.send(\"UserQuery\", request, \"json\", false, undefined, \"UserQueryResponse\");\n }\n\n UserResetPass(request: Partial<WsAccess.UserResetPassRequest>): Promise<WsAccess.UserResetPassResponse> {\n return this._connection.send(\"UserResetPass\", request, \"json\", false, undefined, \"UserResetPassResponse\");\n }\n\n UserResetPassInput(request: Partial<WsAccess.UserResetPassInputRequest>): Promise<WsAccess.UserResetPassInputResponse> {\n return this._connection.send(\"UserResetPassInput\", request, \"json\", false, undefined, \"UserResetPassInputResponse\");\n }\n\n UserSudoers(request: Partial<WsAccess.UserSudoersRequest>): Promise<WsAccess.UserSudoersResponse> {\n return this._connection.send(\"UserSudoers\", request, \"json\", false, undefined, \"UserSudoersResponse\");\n }\n\n UserSudoersInput(request: Partial<WsAccess.UserSudoersInputRequest>): Promise<WsAccess.UserSudoersInputResponse> {\n return this._connection.send(\"UserSudoersInput\", request, \"json\", false, undefined, \"UserSudoersInputResponse\");\n }\n\n Users(request: Partial<WsAccess.UserRequest>): Promise<WsAccess.UserResponse> {\n return this._connection.send(\"Users\", request, \"json\", false, undefined, \"UserResponse\");\n }\n\n}\n", "import { AccessServiceBase, WsAccess } from \"./wsdl/ws_access/v1.17/ws_access.ts\";\n\nexport {\n WsAccess\n};\n\nexport class AccessService extends AccessServiceBase {\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsAccount {\n\n export type int = number;\n\n export interface MyAccountRequest {\n\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 Groups {\n Group: string[];\n }\n\n export interface MyAccountResponse {\n Exceptions: Exceptions;\n username: string;\n firstName: string;\n lastName: string;\n passwordExpiration: string;\n passwordDaysRemaining: int;\n passwordExpirationWarningDays: int;\n employeeID: string;\n distinguishedName: string;\n accountType: string;\n passwordNeverExpires: boolean;\n passwordIsExpired: boolean;\n CanUpdatePassword: boolean;\n accountStatus: int;\n Groups: Groups;\n }\n\n export interface ws_accountPingRequest {\n\n }\n\n export interface ws_accountPingResponse {\n\n }\n\n export interface UpdateUserRequest {\n username?: string;\n oldpass?: string;\n newpass1?: string;\n newpass2?: string;\n }\n\n export interface UpdateUserResponse {\n Exceptions: Exceptions;\n retcode: int;\n message: string;\n }\n\n export interface UpdateUserInputRequest {\n\n }\n\n export interface UpdateUserInputResponse {\n Exceptions: Exceptions;\n username: string;\n }\n\n export interface VerifyUserRequest {\n application?: string;\n version?: string;\n }\n\n export interface VerifyUserResponse {\n Exceptions: Exceptions;\n retcode: int;\n }\n\n}\n\nexport class AccountServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_account\", \"1.07\");\n }\n\n MyAccount(request: Partial<WsAccount.MyAccountRequest>): Promise<WsAccount.MyAccountResponse> {\n return this._connection.send(\"MyAccount\", request, \"json\", false, undefined, \"MyAccountResponse\");\n }\n\n Ping(request: Partial<WsAccount.ws_accountPingRequest>): Promise<WsAccount.ws_accountPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_accountPingResponse\");\n }\n\n UpdateUser(request: Partial<WsAccount.UpdateUserRequest>): Promise<WsAccount.UpdateUserResponse> {\n return this._connection.send(\"UpdateUser\", request, \"json\", false, undefined, \"UpdateUserResponse\");\n }\n\n UpdateUserInput(request: Partial<WsAccount.UpdateUserInputRequest>): Promise<WsAccount.UpdateUserInputResponse> {\n return this._connection.send(\"UpdateUserInput\", request, \"json\", false, undefined, \"UpdateUserInputResponse\");\n }\n\n VerifyUser(request: Partial<WsAccount.VerifyUserRequest>): Promise<WsAccount.VerifyUserResponse> {\n return this._connection.send(\"VerifyUser\", request, \"json\", false, undefined, \"VerifyUserResponse\");\n }\n\n}\n", "import { AccountServiceBase, WsAccount } from \"./wsdl/ws_account/v1.07/ws_account.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\n\nexport {\n type WsAccount\n};\n\nexport class AccountService extends AccountServiceBase {\n\n VerifyUser(request: WsAccount.VerifyUserRequest): Promise<WsAccount.VerifyUserResponse> {\n return this._connection.send(\"VerifyUser\", request)\n .catch((e: ESPExceptions) => {\n // old client version warning ---\n if (e.isESPExceptions && e.Exception.some(exception => exception.Code === 20043)) {\n return {\n retcode: 20043,\n Exceptions: {\n Source: \"wsAccount\",\n Exception: e.Exception\n }\n };\n }\n throw e;\n });\n }\n\n}\n", "import { scopedLogger } from \"@hpcc-js/util\";\nimport type { V1Pod } from \"@kubernetes/client-node\";\nimport type { WsCloud as WsCloudV1 } from \"./wsdl/WsCloud/v1/WsCloud.ts\";\nimport { CloudServiceBase, WsCloud } from \"./wsdl/WsCloud/v1.02/WsCloud.ts\";\n\nconst logger = scopedLogger(\"@hpcc-js/comms/services/wsCloud.ts\");\n\nexport {\n type WsCloud\n};\n\nfunction isGetPODsResponse_v1_02(response: any): response is WsCloud.GetPODsResponse {\n return response?.Pods !== undefined;\n}\n\nfunction mapPorts(pod: V1Pod): WsCloud.Port[] {\n return pod.spec?.containers?.reduce((prev, curr) => {\n curr.ports?.forEach(p => {\n prev.push({\n ContainerPort: p.containerPort,\n Name: p.name,\n Protocol: p.protocol\n });\n });\n return prev;\n }, [] as WsCloud.Port[]) ?? [];\n}\n\nfunction mapPods(pods: V1Pod[]): WsCloud.Pod[] {\n return pods\n .filter(pod => {\n const labels = pod?.metadata?.labels ?? {};\n return labels.hasOwnProperty(\"app.kubernetes.io/part-of\") && labels[\"app.kubernetes.io/part-of\"] === \"HPCC-Platform\";\n })\n .map((pod: V1Pod): WsCloud.Pod => {\n const started = new Date(pod.metadata?.creationTimestamp);\n return {\n Name: pod.metadata.name,\n Status: pod.status?.phase,\n CreationTimestamp: started.toISOString(),\n ContainerName: pod.status?.containerStatuses?.reduce((prev, curr) => {\n if (curr.name) {\n prev.push(curr.name);\n } return prev;\n }, [] as string[]).join(\", \") ?? \"\",\n ContainerCount: pod.spec?.containers?.length ?? 0,\n ContainerReadyCount: pod.status?.containerStatuses?.reduce((prev, curr) => prev + (curr.ready ? 1 : 0), 0),\n ContainerRestartCount: pod.status?.containerStatuses?.reduce((prev, curr) => prev + curr.restartCount, 0),\n Ports: {\n Port: mapPorts(pod)\n },\n };\n })\n ;\n}\n\nexport class CloudService extends CloudServiceBase {\n\n getPODs(): Promise<WsCloud.Pod[]> {\n return super.GetPODs({}).then((response: WsCloud.GetPODsResponse | WsCloudV1.GetPODsResponse) => {\n if (isGetPODsResponse_v1_02(response)) {\n return response.Pods?.Pod ?? [];\n }\n try {\n const obj = typeof response.Result === \"string\" ? JSON.parse(response.Result) : response.Result;\n return mapPods(obj?.items ?? []);\n } catch (error) {\n logger.error(`Error parsing V1Pods json '${(error instanceof Error ? error.message : String(error))}'`);\n return [];\n }\n });\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsCloud {\n\n export type int = number;\n\n export interface GetPODsRequest {\n\n }\n\n export interface Port {\n ContainerPort: int;\n Name: string;\n Protocol: string;\n }\n\n export interface Ports {\n Port: Port[];\n }\n\n export interface Pod {\n Name: string;\n Status: string;\n CreationTimestamp: string;\n ContainerName: string;\n ContainerCount: int;\n ContainerReadyCount: int;\n ContainerRestartCount: int;\n Ports: Ports;\n }\n\n export interface Pods {\n Pod: Pod[];\n }\n\n export interface GetPODsResponse {\n Pods: Pods;\n }\n\n export interface GetServicesRequest {\n\n }\n\n export interface GetServicesResponse {\n Result: string;\n }\n\n export interface WsCloudPingRequest {\n\n }\n\n export interface WsCloudPingResponse {\n\n }\n\n}\n\nexport class CloudServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsCloud\", \"1.02\");\n }\n\n GetPODs(request: Partial<WsCloud.GetPODsRequest>): Promise<WsCloud.GetPODsResponse> {\n return this._connection.send(\"GetPODs\", request, \"json\", false, undefined, \"GetPODsResponse\");\n }\n\n GetServices(request: Partial<WsCloud.GetServicesRequest>): Promise<WsCloud.GetServicesResponse> {\n return this._connection.send(\"GetServices\", request, \"json\", false, undefined, \"GetServicesResponse\");\n }\n\n Ping(request: Partial<WsCloud.WsCloudPingRequest>): Promise<WsCloud.WsCloudPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsCloudPingResponse\");\n }\n\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsCodesign {\n\n export type int = number;\n\n export enum SigningMethodType {\n gpg = \"gpg\"\n }\n\n export interface ListUserIDsRequest {\n\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 UserIDs {\n Item: string[];\n }\n\n export interface ListUserIDsResponse {\n Exceptions: Exceptions;\n UserIDs: UserIDs;\n }\n\n export interface ws_codesignPingRequest {\n\n }\n\n export interface ws_codesignPingResponse {\n\n }\n\n export interface SignRequest {\n SigningMethod?: SigningMethodType;\n UserID?: string;\n KeyPass?: string;\n Text?: string;\n }\n\n export interface SignResponse {\n Exceptions: Exceptions;\n RetCode: int;\n ErrMsg: string;\n SignedText: string;\n }\n\n export interface VerifyRequest {\n Text?: string;\n }\n\n export interface VerifyResponse {\n Exceptions: Exceptions;\n RetCode: int;\n ErrMsg: string;\n IsVerified: boolean;\n SignedBy: string;\n }\n\n}\n\nexport class CodesignServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_codesign\", \"1.1\");\n }\n\n ListUserIDs(request: Partial<WsCodesign.ListUserIDsRequest>): Promise<WsCodesign.ListUserIDsResponse> {\n return this._connection.send(\"ListUserIDs\", request, \"json\", false, undefined, \"ListUserIDsResponse\");\n }\n\n Ping(request: Partial<WsCodesign.ws_codesignPingRequest>): Promise<WsCodesign.ws_codesignPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_codesignPingResponse\");\n }\n\n Sign(request: Partial<WsCodesign.SignRequest>): Promise<WsCodesign.SignResponse> {\n return this._connection.send(\"Sign\", request, \"json\", false, undefined, \"SignResponse\");\n }\n\n Verify(request: Partial<WsCodesign.VerifyRequest>): Promise<WsCodesign.VerifyResponse> {\n return this._connection.send(\"Verify\", request, \"json\", false, undefined, \"VerifyResponse\");\n }\n\n}\n", "import { CodesignServiceBase, WsCodesign } from \"./wsdl/ws_codesign/v1.1/ws_codesign.ts\";\n\nexport { WsCodesign };\n\nexport class CodesignService extends CodesignServiceBase {\n\n ListUserIDsEx(request: Partial<WsCodesign.ListUserIDsRequest>): Promise<string[]> {\n return super.ListUserIDs(request).then((response: WsCodesign.ListUserIDsResponse) => {\n return response.UserIDs.Item;\n }).catch(e => {\n return [];\n });\n }\n\n Sign(request: Partial<WsCodesign.SignRequest>): Promise<WsCodesign.SignResponse> {\n return super.Sign({ SigningMethod: WsCodesign.SigningMethodType.gpg, ...request });\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsDali {\r\n\r\n export type unsignedInt = number;\r\n\r\n export interface AddRequest {\r\n Path?: string;\r\n Value?: string;\r\n }\r\n\r\n export interface Exception {\r\n Code: string;\r\n Audience: string;\r\n Source: string;\r\n Message: string;\r\n }\r\n\r\n export interface Exceptions {\r\n Source: string;\r\n Exception: Exception[];\r\n }\r\n\r\n export interface ResultResponse {\r\n Exceptions: Exceptions;\r\n Result: string;\r\n }\r\n\r\n export interface ClearTraceTransactionsRequest {\r\n\r\n }\r\n\r\n export interface CountRequest {\r\n Path?: string;\r\n }\r\n\r\n export interface CountResponse {\r\n Exceptions: Exceptions;\r\n Result: unsignedInt;\r\n }\r\n\r\n export interface DFSCheckRequest {\r\n\r\n }\r\n\r\n export interface DFSExistsRequest {\r\n FileName?: string;\r\n }\r\n\r\n export interface BooleanResponse {\r\n Exceptions: Exceptions;\r\n Result: boolean;\r\n }\r\n\r\n export interface DFSLSRequest {\r\n Name?: string;\r\n PathAndNameOnly?: boolean;\r\n IncludeSubFileInfo?: boolean;\r\n Recursively?: boolean;\r\n }\r\n\r\n export interface DeleteRequest {\r\n Path?: string;\r\n }\r\n\r\n export interface DisconnectClientConnectionRequest {\r\n Endpoint?: string;\r\n }\r\n\r\n export interface GetClientsRequest {\r\n\r\n }\r\n\r\n export interface GetConnectionsRequest {\r\n\r\n }\r\n\r\n export interface GetDFSCSVRequest {\r\n LogicalNameMask?: string;\r\n }\r\n\r\n export interface GetDFSMapRequest {\r\n FileName?: string;\r\n }\r\n\r\n export interface GetDFSParentsRequest {\r\n FileName?: string;\r\n }\r\n\r\n export interface GetLogicalFileRequest {\r\n FileName?: string;\r\n }\r\n\r\n export interface GetLogicalFilePartRequest {\r\n FileName?: string;\r\n PartNumber?: unsignedInt;\r\n }\r\n\r\n export interface GetProtectedListRequest {\r\n FileName?: string;\r\n CallerId?: string;\r\n }\r\n\r\n export interface GetSDSStatsRequest {\r\n\r\n }\r\n\r\n export interface GetSDSSubscribersRequest {\r\n\r\n }\r\n\r\n export interface GetValueRequest {\r\n Path?: string;\r\n }\r\n\r\n export interface ImportRequest {\r\n XML?: string;\r\n Path?: string;\r\n Add?: boolean;\r\n }\r\n\r\n export interface ListSDSLocksRequest {\r\n\r\n }\r\n\r\n export interface WSDaliPingRequest {\r\n\r\n }\r\n\r\n export interface WSDaliPingResponse {\r\n\r\n }\r\n\r\n export interface SaveSDSStoreRequest {\r\n\r\n }\r\n\r\n export interface SetLogicalFilePartAttrRequest {\r\n FileName?: string;\r\n PartNumber?: unsignedInt;\r\n Attr?: string;\r\n Value?: string;\r\n }\r\n\r\n export interface SetProtectedRequest {\r\n FileName?: string;\r\n CallerId?: string;\r\n }\r\n\r\n export interface SetTraceSlowTransactionsRequest {\r\n SlowThresholdMS?: unsignedInt;\r\n }\r\n\r\n export interface SetTraceTransactionsRequest {\r\n\r\n }\r\n\r\n export interface SetUnprotectedRequest {\r\n FileName?: string;\r\n CallerId?: string;\r\n }\r\n\r\n export interface SetValueRequest {\r\n Path?: string;\r\n Value?: string;\r\n }\r\n\r\n export interface UnlockSDSLockRequest {\r\n ConnectionID?: string;\r\n Close?: boolean;\r\n }\r\n\r\n}\r\n\r\nexport class DaliServiceBase extends Service {\r\n\r\n constructor(optsConnection: IOptions | IConnection) {\r\n super(optsConnection, \"WSDali\", \"1.07\");\r\n }\r\n\r\n Add(request: Partial<WsDali.AddRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"Add\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n ClearTraceTransactions(request: Partial<WsDali.ClearTraceTransactionsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"ClearTraceTransactions\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Count(request: Partial<WsDali.CountRequest>): Promise<WsDali.CountResponse> {\r\n return this._connection.send(\"Count\", request, \"json\", false, undefined, \"CountResponse\");\r\n }\r\n\r\n DFSCheck(request: Partial<WsDali.DFSCheckRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"DFSCheck\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n DFSExists(request: Partial<WsDali.DFSExistsRequest>): Promise<WsDali.BooleanResponse> {\r\n return this._connection.send(\"DFSExists\", request, \"json\", false, undefined, \"BooleanResponse\");\r\n }\r\n\r\n DFSLS(request: Partial<WsDali.DFSLSRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"DFSLS\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Delete(request: Partial<WsDali.DeleteRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"Delete\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n DisconnectClientConnection(request: Partial<WsDali.DisconnectClientConnectionRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"DisconnectClientConnection\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetClients(request: Partial<WsDali.GetClientsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetClients\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetConnections(request: Partial<WsDali.GetConnectionsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetConnections\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetDFSCSV(request: Partial<WsDali.GetDFSCSVRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetDFSCSV\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetDFSMap(request: Partial<WsDali.GetDFSMapRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetDFSMap\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetDFSParents(request: Partial<WsDali.GetDFSParentsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetDFSParents\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetLogicalFile(request: Partial<WsDali.GetLogicalFileRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetLogicalFile\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetLogicalFilePart(request: Partial<WsDali.GetLogicalFilePartRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetLogicalFilePart\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetProtectedList(request: Partial<WsDali.GetProtectedListRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetProtectedList\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetSDSStats(request: Partial<WsDali.GetSDSStatsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetSDSStats\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetSDSSubscribers(request: Partial<WsDali.GetSDSSubscribersRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetSDSSubscribers\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetValue(request: Partial<WsDali.GetValueRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"GetValue\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Import(request: Partial<WsDali.ImportRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"Import\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n ListSDSLocks(request: Partial<WsDali.ListSDSLocksRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"ListSDSLocks\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Ping(request: Partial<WsDali.WSDaliPingRequest>): Promise<WsDali.WSDaliPingResponse> {\r\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WSDaliPingResponse\");\r\n }\r\n\r\n SaveSDSStore(request: Partial<WsDali.SaveSDSStoreRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SaveSDSStore\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetLogicalFilePartAttr(request: Partial<WsDali.SetLogicalFilePartAttrRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetLogicalFilePartAttr\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetProtected(request: Partial<WsDali.SetProtectedRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetProtected\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetTraceSlowTransactions(request: Partial<WsDali.SetTraceSlowTransactionsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetTraceSlowTransactions\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetTraceTransactions(request: Partial<WsDali.SetTraceTransactionsRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetTraceTransactions\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetUnprotected(request: Partial<WsDali.SetUnprotectedRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetUnprotected\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n SetValue(request: Partial<WsDali.SetValueRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"SetValue\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n UnlockSDSLock(request: Partial<WsDali.UnlockSDSLockRequest>): Promise<WsDali.ResultResponse> {\r\n return this._connection.send(\"UnlockSDSLock\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n}\r\n", "import { DaliServiceBase, WsDali } from \"./wsdl/WsDali/v1.07/WsDali.ts\";\n\nexport {\n type WsDali\n};\n\nexport class DaliService extends DaliServiceBase {\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsDfu {\n\n export type base64Binary = string;\n export type long = number;\n export type int = number;\n export type double = number;\n\n export enum DFUArrayActions {\n Delete = \"Delete\",\n AddToSuperfile = \"Add To Superfile\",\n ChangeProtection = \"Change Protection\",\n ChangeRestriction = \"Change Restriction\"\n }\n\n export enum DFUChangeProtection {\n NoChange = 0,\n Protect = 1,\n Unprotect = 2,\n UnprotectAll = 3\n }\n\n export enum DFUChangeRestriction {\n NoChange = 0,\n Restrict = 1,\n Unrestricted = 2\n }\n\n export enum DFUDefFileFormat {\n xml = \"xml\",\n def = \"def\"\n }\n\n export enum FileAccessRole {\n Token = \"Token\",\n Engine = \"Engine\",\n External = \"External\"\n }\n\n export enum SecAccessType {\n None = \"None\",\n Access = \"Access\",\n Read = \"Read\",\n Write = \"Write\",\n Full = \"Full\"\n }\n\n export enum DFUFileType {\n Flat = \"Flat\",\n Index = \"Index\",\n Xml = \"Xml\",\n Csv = \"Csv\",\n Json = \"Json\",\n IndexLocal = \"IndexLocal\",\n IndexPartitioned = \"IndexPartitioned\",\n Unset = \"Unset\"\n }\n\n export interface AddRequest {\n dstname?: string;\n xmlmap?: base64Binary;\n dstcluster?: 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 AddRemoteRequest {\n dstname?: string;\n srcname?: string;\n srcdali?: string;\n srcusername?: string;\n srcpassword?: string;\n }\n\n export interface AddRemoteResponse {\n Exceptions: Exceptions;\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 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 LogicalFiles {\n Item: string[];\n }\n\n export interface DFUArrayActionRequest {\n Type?: DFUArrayActions;\n NoDelete?: boolean;\n BackToPage?: string;\n LogicalFiles?: LogicalFiles;\n removeFromSuperfiles?: boolean;\n removeRecursively?: boolean;\n Protect?: DFUChangeProtection;\n Restrict?: DFUChangeRestriction;\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 DFUBrowseDataRequest {\n LogicalName?: string;\n FilterBy?: string;\n ShowColumns?: string;\n SchemaOnly?: boolean;\n StartForGoback?: long;\n CountForGoback?: int;\n ChooseFile?: int;\n Cluster?: string;\n ClusterType?: string;\n ParentName?: string;\n Start?: long;\n Count?: int;\n DisableUppercaseTranslation?: boolean;\n }\n\n export interface DFUDataColumn {\n ColumnID: int;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: int;\n MaxSize: int;\n ColumnEclType: string;\n ColumnRawSize: int;\n IsNaturalColumn: boolean;\n IsKeyedColumn: boolean;\n DataColumns: DataColumns;\n }\n\n export interface DataColumns {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface ColumnHidden {\n ColumnID: int;\n ColumnLabel: string;\n ColumnType: string;\n ColumnValue: string;\n ColumnSize: int;\n MaxSize: int;\n ColumnEclType: string;\n ColumnRawSize: int;\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: int;\n StartForGoback: long;\n CountForGoback: int;\n ChooseFile: int;\n SchemaOnly: boolean;\n Cluster: string;\n ClusterType: string;\n ParentName: string;\n Start: long;\n Count: long;\n PageSize: long;\n Total: long;\n Result: string;\n MsgToDisplay: string;\n DisableUppercaseTranslation: boolean;\n }\n\n export interface DFUDefFileRequest {\n Name?: string;\n Format?: DFUDefFileFormat;\n }\n\n export interface DFUDefFileResponse {\n Exceptions: Exceptions;\n defFile: base64Binary;\n }\n\n export interface RequestBase {\n Name: string;\n Cluster: string;\n JobId: string;\n ExpirySeconds: int;\n AccessRole: FileAccessRole;\n AccessType: SecAccessType;\n ReturnJsonTypeInfo: boolean;\n ReturnBinTypeInfo: boolean;\n }\n\n export interface DFUFileAccessRequest {\n RequestBase?: RequestBase;\n }\n\n export interface DFUPartLocation {\n LocationIndex: int;\n Host: string;\n }\n\n export interface FileLocations {\n DFUPartLocation: DFUPartLocation[];\n }\n\n export interface DFUFileCopy {\n CopyIndex: int;\n LocationIndex: int;\n Path: string;\n }\n\n export interface Copies {\n DFUFileCopy: DFUFileCopy[];\n }\n\n export interface DFUFilePart {\n PartIndex: int;\n Copies: Copies;\n TopLevelKey: boolean;\n }\n\n export interface FileParts {\n DFUFilePart: DFUFilePart[];\n }\n\n export interface AccessInfo {\n MetaInfoBlob: string;\n ExpiryTime: string;\n NumParts: int;\n FileLocations: FileLocations;\n FileParts: FileParts;\n RecordTypeInfoJson: string;\n fileAccessPort: int;\n fileAccessSSL: boolean;\n }\n\n export interface DFUFileAccessResponse {\n Exceptions: Exceptions;\n AccessInfo: AccessInfo;\n Type: DFUFileType;\n }\n\n export interface DFUFileAccessV2Request {\n Name?: string;\n Cluster?: string;\n RequestId?: string;\n ExpirySeconds?: int;\n ReturnTextResponse?: boolean;\n SessionId?: long;\n LockTimeoutMs?: int;\n }\n\n export interface PartLocations {\n Item: string[];\n }\n\n export interface DFUFileCreateRequest {\n ECLRecordDefinition?: string;\n PartLocations?: PartLocations;\n RequestBase?: RequestBase;\n }\n\n export interface DFUFileCreateResponse {\n Exceptions: Exceptions;\n FileId: string;\n Warning: string;\n AccessInfo: AccessInfo;\n }\n\n export interface DFUFileCreateV2Request {\n Name?: string;\n Cluster?: string;\n Type?: DFUFileType;\n ECLRecordDefinition?: string;\n RequestId?: string;\n ExpirySeconds?: int;\n ReturnTextResponse?: boolean;\n Compressed?: boolean;\n SessionId?: long;\n LockTimeoutMs?: int;\n }\n\n export interface DFUFilePublishRequest {\n FileId?: string;\n Overwrite?: boolean;\n FileDescriptorBlob?: base64Binary;\n SessionId?: long;\n LockTimeoutMs?: int;\n ECLRecordDefinition?: string;\n RecordCount?: long;\n FileSize?: long;\n }\n\n export interface DFUFilePublishResponse {\n Exceptions: Exceptions;\n }\n\n export interface DFUFileViewRequest {\n Scope?: string;\n IncludeSuperOwner?: boolean;\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: long;\n IntRecordCount: long;\n FromRoxieCluster: boolean;\n BrowseData: boolean;\n IsCompressed: boolean;\n ContentType: string;\n CompressedFileSize: long;\n SuperOwners: string;\n Persistent: boolean;\n IsProtected: boolean;\n KeyType: string;\n NumOfSubfiles: int;\n Accessed: string;\n AtRestCost: double;\n AccessCost: double;\n MinSkew: long;\n MaxSkew: long;\n MinSkewPart: long;\n MaxSkewPart: long;\n }\n\n export interface DFULogicalFiles {\n DFULogicalFile: DFULogicalFile[];\n }\n\n export interface DFUFileViewResponse {\n Exceptions: Exceptions;\n Scope: string;\n NumFiles: int;\n DFULogicalFiles: DFULogicalFiles;\n }\n\n export interface DFUGetDataColumnsRequest {\n OpenLogicalName?: string;\n LogicalName?: string;\n FilterBy?: string;\n ShowColumns?: string;\n ChooseFile?: int;\n Cluster?: string;\n ClusterType?: string;\n StartIndex?: long;\n EndIndex?: long;\n }\n\n export interface DFUDataKeyedColumns1 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns2 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns3 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns4 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns5 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns6 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns7 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns8 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns9 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns10 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns11 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns12 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns13 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns14 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns15 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns16 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns17 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns18 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns19 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataKeyedColumns20 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns1 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns2 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns3 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns4 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns5 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns6 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns7 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns8 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns9 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns10 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns11 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns12 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns13 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns14 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns15 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns16 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns17 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns18 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns19 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUDataNonKeyedColumns20 {\n DFUDataColumn: DFUDataColumn[];\n }\n\n export interface DFUGetDataColumnsResponse {\n Exceptions: Exceptions;\n LogicalName: string;\n StartIndex: long;\n EndIndex: long;\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: long;\n ShowColumns: string;\n ChooseFile: int;\n Cluster: string;\n ClusterType: string;\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 DFUGetFileMetaDataResponse {\n Exceptions: Exceptions;\n TotalColumnCount: int;\n KeyedColumnCount: int;\n DataColumns: DataColumns;\n XmlSchema: string;\n XmlXPathSchema: string;\n TotalResultRows: long;\n }\n\n export interface DFUMetaInquiryRequest {\n\n }\n\n export interface DFUMetaFieldInfo {\n Name: string;\n Type: string;\n }\n\n export interface Fields {\n DFUMetaFieldInfo: DFUMetaFieldInfo[];\n }\n\n export interface DFUMetaInquiryResponse {\n Exceptions: Exceptions;\n Fields: Fields;\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?: DFUChangeProtection;\n Restrict?: DFUChangeRestriction;\n ForceIndexInfo?: boolean;\n }\n\n export interface Stat {\n MinSkew: string;\n MaxSkew: string;\n MinSkewInt64: long;\n MaxSkewInt64: long;\n MinSkewPart: long;\n MaxSkewPart: long;\n }\n\n export interface DFUPart {\n Id: int;\n Copy: int;\n Ip: string;\n Partsize: string;\n PartSizeInt64: long;\n CompressedSize: long;\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 Superfiles {\n DFULogicalFile: DFULogicalFile[];\n }\n\n export interface DFUFileProtect {\n Owner: string;\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: long;\n FieldNames: FieldNames;\n }\n\n export interface DFUFileBloom {\n FieldMask: long;\n FieldNames: FieldNames;\n Limit: long;\n Probability: string;\n }\n\n export interface Blooms {\n DFUFileBloom: DFUFileBloom[];\n }\n\n export interface ExtendedIndexInfo {\n IsLeafCountEstimated: boolean;\n NumLeafNodes: long;\n NumBlobNodes: long;\n NumBranchNodes: long;\n SizeDiskLeaves: long;\n SizeDiskBlobs: long;\n SizeDiskBranches: long;\n SizeOriginalData: long;\n SizeOriginalBranches: long;\n SizeMemoryLeaves: long;\n SizeMemoryBranches: long;\n BranchCompressionPercent: double;\n DataCompressionPercent: double;\n }\n\n export interface FileDetail {\n Name: string;\n Filename: string;\n Prefix: string;\n NodeGroup: string;\n NumParts: int;\n Description: string;\n Dir: string;\n PathMask: string;\n Filesize: string;\n FileSizeInt64: long;\n RecordSize: string;\n RecordCount: string;\n RecordSizeInt64: long;\n RecordCountInt64: long;\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: long;\n PercentCompressed: string;\n IsCompressed: boolean;\n IsRestricted: boolean;\n BrowseData: boolean;\n jsonInfo: string;\n binInfo: base64Binary;\n PackageID: string;\n Partition: Partition;\n Blooms: Blooms;\n ExpireDays: int;\n KeyType: string;\n AtRestCost: double;\n AccessCost: double;\n ExpirationDate: string;\n ExtendedIndexInfo: ExtendedIndexInfo;\n CompressionType: string;\n }\n\n export interface DFUInfoResponse {\n Exceptions: Exceptions;\n FileDetail: FileDetail;\n }\n\n export interface DFUQueryRequest {\n Prefix?: string;\n NodeGroup?: string;\n ContentType?: string;\n InvertContent?: boolean;\n LogicalName?: string;\n Owner?: string;\n StartDate?: string;\n EndDate?: string;\n FileType?: string;\n FileSizeFrom?: long;\n FileSizeTo?: long;\n FirstN?: int;\n PageSize?: int;\n PageStartFrom?: int;\n Sortby?: string;\n Fields?: string;\n Descending?: boolean;\n OneLevelDirFileReturn?: boolean;\n CacheHint?: long;\n MaxNumberOfFiles?: int;\n IncludeSuperOwner?: boolean;\n StartAccessedTime?: string;\n EndAccessedTime?: string;\n MaxSkewFrom?: long;\n MaxSkewTo?: long;\n MinSkewFrom?: long;\n MinSkewTo?: long;\n }\n\n export interface DFUQueryResponse {\n Exceptions: Exceptions;\n DFULogicalFiles: DFULogicalFiles;\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: long;\n FileSizeTo: long;\n FirstN: int;\n PageSize: int;\n PageStartFrom: long;\n LastPageFrom: long;\n PageEndAt: long;\n PrevPageFrom: long;\n NextPageFrom: long;\n NumFiles: long;\n Sortby: string;\n Descending: boolean;\n BasicQuery: string;\n ParametersForPaging: string;\n Filters: string;\n CacheHint: long;\n IsSubsetOfFiles: boolean;\n Warning: string;\n }\n\n export interface DFURecordTypeInfoRequest {\n Name?: string;\n IncludeJsonTypeInfo?: boolean;\n IncludeBinTypeInfo?: boolean;\n }\n\n export interface DFURecordTypeInfoResponse {\n jsonInfo: string;\n binInfo: base64Binary;\n }\n\n export interface DFUSearchRequest {\n ShowExample?: 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 DFUSearchDataRequest {\n Cluster?: string;\n ClusterType?: string;\n OpenLogicalName?: string;\n FilterBy?: string;\n ShowColumns?: string;\n ChooseFile?: int;\n StartIndex?: long;\n EndIndex?: long;\n LogicalName?: string;\n ParentName?: string;\n StartForGoback?: long;\n CountForGoback?: int;\n Start?: long;\n Count?: int;\n File?: string;\n Key?: string;\n SchemaOnly?: boolean;\n RoxieSelections?: boolean;\n DisableUppercaseTranslation?: boolean;\n SelectedKey?: string;\n }\n\n export interface DFUSearchDataResponse {\n Exceptions: Exceptions;\n OpenLogicalName: string;\n LogicalName: string;\n ParentName: string;\n StartIndex: long;\n EndIndex: long;\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: long;\n ShowColumns: string;\n ChooseFile: int;\n Name: string;\n FilterBy: string;\n FilterForGoBack: string;\n ColumnsHidden: ColumnsHidden;\n ColumnCount: int;\n StartForGoback: long;\n CountForGoback: int;\n Start: long;\n Count: long;\n PageSize: long;\n Total: long;\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 DFUSpaceRequest {\n CountBy?: string;\n ScopeUnder?: string;\n OwnerUnder?: string;\n Interval?: string;\n StartDate?: string;\n EndDate?: 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: long;\n NumOfFilesUnknownInt64: long;\n TotalSizeInt64: long;\n LargestSizeInt64: long;\n SmallestSizeInt64: long;\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 EclRecordTypeInfoRequest {\n Ecl?: string;\n IncludeJsonTypeInfo?: boolean;\n IncludeBinTypeInfo?: boolean;\n }\n\n export interface EclRecordTypeInfoResponse {\n jsonInfo: string;\n binInfo: base64Binary;\n }\n\n export interface EraseHistoryRequest {\n Name?: 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 ListHistoryRequest {\n Name?: string;\n }\n\n export interface ListHistoryResponse {\n Exceptions: Exceptions;\n History: History;\n }\n\n export interface WsDfuPingRequest {\n\n }\n\n export interface WsDfuPingResponse {\n\n }\n\n export interface SavexmlRequest {\n name?: string;\n }\n\n export interface SavexmlResponse {\n Exceptions: Exceptions;\n xmlmap: base64Binary;\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 SuperfileActionResponse {\n Exceptions: Exceptions;\n superfile: string;\n retcode: int;\n }\n\n export interface SuperfileListRequest {\n superfile?: string;\n }\n\n export interface SuperfileListResponse {\n Exceptions: Exceptions;\n superfile: string;\n subfiles: subfiles;\n }\n\n}\n\nexport class DfuServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsDfu\", \"1.67\");\n }\n\n Add(request: Partial<WsDfu.AddRequest>): Promise<WsDfu.AddResponse> {\n return this._connection.send(\"Add\", request, \"json\", false, undefined, \"AddResponse\");\n }\n\n AddRemote(request: Partial<WsDfu.AddRemoteRequest>): Promise<WsDfu.AddRemoteResponse> {\n return this._connection.send(\"AddRemote\", request, \"json\", false, undefined, \"AddRemoteResponse\");\n }\n\n AddtoSuperfile(request: Partial<WsDfu.AddtoSuperfileRequest>): Promise<WsDfu.AddtoSuperfileResponse> {\n return this._connection.send(\"AddtoSuperfile\", request, \"json\", false, undefined, \"AddtoSuperfileResponse\");\n }\n\n DFUArrayAction(request: Partial<WsDfu.DFUArrayActionRequest>): Promise<WsDfu.DFUArrayActionResponse> {\n return this._connection.send(\"DFUArrayAction\", request, \"json\", false, undefined, \"DFUArrayActionResponse\");\n }\n\n DFUBrowseData(request: Partial<WsDfu.DFUBrowseDataRequest>): Promise<WsDfu.DFUBrowseDataResponse> {\n return this._connection.send(\"DFUBrowseData\", request, \"json\", false, undefined, \"DFUBrowseDataResponse\");\n }\n\n DFUDefFile(request: Partial<WsDfu.DFUDefFileRequest>): Promise<WsDfu.DFUDefFileResponse> {\n return this._connection.send(\"DFUDefFile\", request, \"json\", false, undefined, \"DFUDefFileResponse\");\n }\n\n DFUFileAccess(request: Partial<WsDfu.DFUFileAccessRequest>): Promise<WsDfu.DFUFileAccessResponse> {\n return this._connection.send(\"DFUFileAccess\", request, \"json\", false, undefined, \"DFUFileAccessResponse\");\n }\n\n DFUFileAccessV2(request: Partial<WsDfu.DFUFileAccessV2Request>): Promise<WsDfu.DFUFileAccessResponse> {\n return this._connection.send(\"DFUFileAccessV2\", request, \"json\", false, undefined, \"DFUFileAccessResponse\");\n }\n\n DFUFileCreate(request: Partial<WsDfu.DFUFileCreateRequest>): Promise<WsDfu.DFUFileCreateResponse> {\n return this._connection.send(\"DFUFileCreate\", request, \"json\", false, undefined, \"DFUFileCreateResponse\");\n }\n\n DFUFileCreateV2(request: Partial<WsDfu.DFUFileCreateV2Request>): Promise<WsDfu.DFUFileCreateResponse> {\n return this._connection.send(\"DFUFileCreateV2\", request, \"json\", false, undefined, \"DFUFileCreateResponse\");\n }\n\n DFUFilePublish(request: Partial<WsDfu.DFUFilePublishRequest>): Promise<WsDfu.DFUFilePublishResponse> {\n return this._connection.send(\"DFUFilePublish\", request, \"json\", false, undefined, \"DFUFilePublishResponse\");\n }\n\n DFUFileView(request: Partial<WsDfu.DFUFileViewRequest>): Promise<WsDfu.DFUFileViewResponse> {\n return this._connection.send(\"DFUFileView\", request, \"json\", false, undefined, \"DFUFileViewResponse\");\n }\n\n DFUGetDataColumns(request: Partial<WsDfu.DFUGetDataColumnsRequest>): Promise<WsDfu.DFUGetDataColumnsResponse> {\n return this._connection.send(\"DFUGetDataColumns\", request, \"json\", false, undefined, \"DFUGetDataColumnsResponse\");\n }\n\n DFUGetFileMetaData(request: Partial<WsDfu.DFUGetFileMetaDataRequest>): Promise<WsDfu.DFUGetFileMetaDataResponse> {\n return this._connection.send(\"DFUGetFileMetaData\", request, \"json\", false, undefined, \"DFUGetFileMetaDataResponse\");\n }\n\n DFUGetMetaInquiry(request: Partial<WsDfu.DFUMetaInquiryRequest>): Promise<WsDfu.DFUMetaInquiryResponse> {\n return this._connection.send(\"DFUGetMetaInquiry\", request, \"json\", false, undefined, \"DFUMetaInquiryResponse\");\n }\n\n DFUInfo(request: Partial<WsDfu.DFUInfoRequest>): Promise<WsDfu.DFUInfoResponse> {\n return this._connection.send(\"DFUInfo\", request, \"json\", false, undefined, \"DFUInfoResponse\");\n }\n\n DFUQuery(request: Partial<WsDfu.DFUQueryRequest>): Promise<WsDfu.DFUQueryResponse> {\n return this._connection.send(\"DFUQuery\", request, \"json\", false, undefined, \"DFUQueryResponse\");\n }\n\n DFURecordTypeInfo(request: Partial<WsDfu.DFURecordTypeInfoRequest>): Promise<WsDfu.DFURecordTypeInfoResponse> {\n return this._connection.send(\"DFURecordTypeInfo\", request, \"json\", false, undefined, \"DFURecordTypeInfoResponse\");\n }\n\n DFUSearch(request: Partial<WsDfu.DFUSearchRequest>): Promise<WsDfu.DFUSearchResponse> {\n return this._connection.send(\"DFUSearch\", request, \"json\", false, undefined, \"DFUSearchResponse\");\n }\n\n DFUSearchData(request: Partial<WsDfu.DFUSearchDataRequest>): Promise<WsDfu.DFUSearchDataResponse> {\n return this._connection.send(\"DFUSearchData\", request, \"json\", false, undefined, \"DFUSearchDataResponse\");\n }\n\n DFUSpace(request: Partial<WsDfu.DFUSpaceRequest>): Promise<WsDfu.DFUSpaceResponse> {\n return this._connection.send(\"DFUSpace\", request, \"json\", false, undefined, \"DFUSpaceResponse\");\n }\n\n EclRecordTypeInfo(request: Partial<WsDfu.EclRecordTypeInfoRequest>): Promise<WsDfu.EclRecordTypeInfoResponse> {\n return this._connection.send(\"EclRecordTypeInfo\", request, \"json\", false, undefined, \"EclRecordTypeInfoResponse\");\n }\n\n EraseHistory(request: Partial<WsDfu.EraseHistoryRequest>): Promise<WsDfu.EraseHistoryResponse> {\n return this._connection.send(\"EraseHistory\", request, \"json\", false, undefined, \"EraseHistoryResponse\");\n }\n\n ListHistory(request: Partial<WsDfu.ListHistoryRequest>): Promise<WsDfu.ListHistoryResponse> {\n return this._connection.send(\"ListHistory\", request, \"json\", false, undefined, \"ListHistoryResponse\");\n }\n\n Ping(request: Partial<WsDfu.WsDfuPingRequest>): Promise<WsDfu.WsDfuPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsDfuPingResponse\");\n }\n\n Savexml(request: Partial<WsDfu.SavexmlRequest>): Promise<WsDfu.SavexmlResponse> {\n return this._connection.send(\"Savexml\", request, \"json\", false, undefined, \"SavexmlResponse\");\n }\n\n SuperfileAction(request: Partial<WsDfu.SuperfileActionRequest>): Promise<WsDfu.SuperfileActionResponse> {\n return this._connection.send(\"SuperfileAction\", request, \"json\", false, undefined, \"SuperfileActionResponse\");\n }\n\n SuperfileList(request: Partial<WsDfu.SuperfileListRequest>): Promise<WsDfu.SuperfileListResponse> {\n return this._connection.send(\"SuperfileList\", request, \"json\", false, undefined, \"SuperfileListResponse\");\n }\n\n}\n", "import { DfuServiceBase, WsDfu } from \"./wsdl/WsDfu/v1.67/WsDfu.ts\";\n\nexport { WsDfu };\n\nexport const DFUArrayActions = WsDfu.DFUArrayActions;\nexport const DFUDefFileFormat = WsDfu.DFUDefFileFormat;\nexport const DFUChangeProtection = WsDfu.DFUChangeProtection;\nexport const DFUChangeRestriction = WsDfu.DFUChangeRestriction;\n\nexport type base64Binary = WsDfu.base64Binary;\n\nexport class DFUService extends DfuServiceBase {\n\n DFUFile(request: WsDfu.DFUDefFileRequest): Promise<string> {\n return this._connection.send(\"DFUDefFile\", request, \"text\");\n }\n\n async recursiveFetchLogicalFiles(superFiles: { NodeGroup: string, Name: string }[]): Promise<string[]> {\n const childSuperFiles: WsDfu.DFULogicalFile[] = [];\n const logicalFiles: string[] = [];\n await Promise.all(superFiles.map(superFile => {\n return this.DFUInfo({ Cluster: superFile.NodeGroup, Name: superFile.Name, IncludeJsonTypeInfo: false, IncludeBinTypeInfo: false, ForceIndexInfo: false })\n .then(response => {\n for (const child of response?.FileDetail?.Superfiles?.DFULogicalFile ?? []) {\n childSuperFiles.push(child);\n }\n for (const child of response?.FileDetail?.subfiles?.Item ?? []) {\n logicalFiles.push(child);\n }\n });\n }));\n return logicalFiles.concat(childSuperFiles.length ? await this.recursiveFetchLogicalFiles(childSuperFiles) : []);\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsDFUXRef {\n\n export type unsignedInt = number;\n export type long = number;\n\n export interface XRefFiles {\n Item: string[];\n }\n\n export interface DFUXRefArrayActionRequest {\n Type?: string;\n Cluster?: string;\n Action?: string;\n XRefFiles?: XRefFiles;\n RemoveFromSuperfiles?: boolean;\n }\n\n export interface DFUXRefArrayActionResponse {\n DFUXRefArrayActionResult: string;\n }\n\n export interface DFUXRefBuildRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefBuildResponse {\n DFUXRefActionResult: string;\n }\n\n export interface DFUXRefBuildCancelRequest {\n\n }\n\n export interface DFUXRefBuildCancelResponse {\n DFUXRefBuildCancelResult: string;\n }\n\n export interface DFUXRefCleanDirectoriesRequest {\n Cluster?: 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 DFUXRefCleanDirectoriesResponse {\n Exceptions: Exceptions;\n }\n\n export interface DFUXRefDirectoriesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefDirectoriesQueryResponse {\n DFUXRefDirectoriesQueryResult: string;\n }\n\n export interface DFUXRefFoundFilesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefFoundFilesQueryResponse {\n DFUXRefFoundFilesQueryResult: string;\n }\n\n export interface DFUXRefListRequest {\n\n }\n\n export interface DFUXRefListResponse {\n DFUXRefListResult: string;\n }\n\n export interface DFUXRefLostFilesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefLostFilesQueryResponse {\n DFUXRefLostFilesQueryResult: string;\n }\n\n export interface DFUXRefMessagesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefMessagesQueryResponse {\n DFUXRefMessagesQueryResult: string;\n }\n\n export interface DFUXRefOrphanFilesQueryRequest {\n Cluster?: string;\n }\n\n export interface DFUXRefOrphanFilesQueryResponse {\n DFUXRefOrphanFilesQueryResult: string;\n }\n\n export interface ProcessClusterList {\n Item: string[];\n }\n\n export interface CheckPlanes {\n Item: string[];\n }\n\n export interface DFUXRefUnusedFilesRequest {\n ProcessCluster?: string;\n CheckPackageMaps?: boolean;\n GetFileDetails?: boolean;\n ProcessClusterList?: ProcessClusterList;\n CheckPlanes?: CheckPlanes;\n }\n\n export interface UnusedFiles {\n File: string[];\n }\n\n export interface DFULogicalFile {\n Prefix: string;\n ClusterName: 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 isZipfile: boolean;\n isDirectory: boolean;\n Replicate: boolean;\n IntSize: long;\n IntRecordCount: long;\n FromRoxieCluster: boolean;\n BrowseData: boolean;\n }\n\n export interface UnusedFilesWithDetails {\n DFULogicalFile: DFULogicalFile[];\n }\n\n export interface DFUXRefUnusedFilesResponse {\n Exceptions: Exceptions;\n UnusedFileCount: unsignedInt;\n UnusedFiles: UnusedFiles;\n UnusedFilesWithDetails: UnusedFilesWithDetails;\n }\n\n export interface WsDFUXRefPingRequest {\n\n }\n\n export interface WsDFUXRefPingResponse {\n\n }\n\n}\n\nexport class DFUXRefServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsDFUXRef\", \"1.04\");\n }\n\n DFUXRefArrayAction(request: Partial<WsDFUXRef.DFUXRefArrayActionRequest>): Promise<WsDFUXRef.DFUXRefArrayActionResponse> {\n return this._connection.send(\"DFUXRefArrayAction\", request, \"json\", false, undefined, \"DFUXRefArrayActionResponse\");\n }\n\n DFUXRefBuild(request: Partial<WsDFUXRef.DFUXRefBuildRequest>): Promise<WsDFUXRef.DFUXRefBuildResponse> {\n return this._connection.send(\"DFUXRefBuild\", request, \"json\", false, undefined, \"DFUXRefBuildResponse\");\n }\n\n DFUXRefBuildCancel(request: Partial<WsDFUXRef.DFUXRefBuildCancelRequest>): Promise<WsDFUXRef.DFUXRefBuildCancelResponse> {\n return this._connection.send(\"DFUXRefBuildCancel\", request, \"json\", false, undefined, \"DFUXRefBuildCancelResponse\");\n }\n\n DFUXRefCleanDirectories(request: Partial<WsDFUXRef.DFUXRefCleanDirectoriesRequest>): Promise<WsDFUXRef.DFUXRefCleanDirectoriesResponse> {\n return this._connection.send(\"DFUXRefCleanDirectories\", request, \"json\", false, undefined, \"DFUXRefCleanDirectoriesResponse\");\n }\n\n DFUXRefDirectories(request: Partial<WsDFUXRef.DFUXRefDirectoriesQueryRequest>): Promise<WsDFUXRef.DFUXRefDirectoriesQueryResponse> {\n return this._connection.send(\"DFUXRefDirectories\", request, \"json\", false, undefined, \"DFUXRefDirectoriesQueryResponse\");\n }\n\n DFUXRefFoundFiles(request: Partial<WsDFUXRef.DFUXRefFoundFilesQueryRequest>): Promise<WsDFUXRef.DFUXRefFoundFilesQueryResponse> {\n return this._connection.send(\"DFUXRefFoundFiles\", request, \"json\", false, undefined, \"DFUXRefFoundFilesQueryResponse\");\n }\n\n DFUXRefList(request: Partial<WsDFUXRef.DFUXRefListRequest>): Promise<WsDFUXRef.DFUXRefListResponse> {\n return this._connection.send(\"DFUXRefList\", request, \"json\", false, undefined, \"DFUXRefListResponse\");\n }\n\n DFUXRefLostFiles(request: Partial<WsDFUXRef.DFUXRefLostFilesQueryRequest>): Promise<WsDFUXRef.DFUXRefLostFilesQueryResponse> {\n return this._connection.send(\"DFUXRefLostFiles\", request, \"json\", false, undefined, \"DFUXRefLostFilesQueryResponse\");\n }\n\n DFUXRefMessages(request: Partial<WsDFUXRef.DFUXRefMessagesQueryRequest>): Promise<WsDFUXRef.DFUXRefMessagesQueryResponse> {\n return this._connection.send(\"DFUXRefMessages\", request, \"json\", false, undefined, \"DFUXRefMessagesQueryResponse\");\n }\n\n DFUXRefOrphanFiles(request: Partial<WsDFUXRef.DFUXRefOrphanFilesQueryRequest>): Promise<WsDFUXRef.DFUXRefOrphanFilesQueryResponse> {\n return this._connection.send(\"DFUXRefOrphanFiles\", request, \"json\", false, undefined, \"DFUXRefOrphanFilesQueryResponse\");\n }\n\n DFUXRefUnusedFiles(request: Partial<WsDFUXRef.DFUXRefUnusedFilesRequest>): Promise<WsDFUXRef.DFUXRefUnusedFilesResponse> {\n return this._connection.send(\"DFUXRefUnusedFiles\", request, \"json\", false, undefined, \"DFUXRefUnusedFilesResponse\");\n }\n\n Ping(request: Partial<WsDFUXRef.WsDFUXRefPingRequest>): Promise<WsDFUXRef.WsDFUXRefPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsDFUXRefPingResponse\");\n }\n\n}\n", "import { DFUXRefServiceBase, type WsDFUXRef } from \"./wsdl/WsDFUXRef/v1.04/WsDFUXRef.ts\";\n\nexport {\n type WsDFUXRef\n};\n\nexport namespace WsDFUXRefEx {\n\n export interface Request {\n DFUXRefArrayActionRequest: WsDFUXRef.DFUXRefArrayActionRequest;\n DFUXRefBuildRequest: WsDFUXRef.DFUXRefBuildRequest;\n DFUXRefBuildCancelRequest: WsDFUXRef.DFUXRefBuildCancelRequest;\n DFUXRefCleanDirectoriesRequest: WsDFUXRef.DFUXRefCleanDirectoriesRequest;\n DFUXRefDirectoriesQueryRequest: WsDFUXRef.DFUXRefDirectoriesQueryRequest;\n DFUXRefFoundFilesQueryRequest: WsDFUXRef.DFUXRefFoundFilesQueryRequest;\n DFUXRefListRequest: WsDFUXRef.DFUXRefListRequest;\n DFUXRefLostFilesQueryRequest: WsDFUXRef.DFUXRefLostFilesQueryRequest;\n DFUXRefMessagesQueryRequest: WsDFUXRef.DFUXRefMessagesQueryRequest;\n DFUXRefOrphanFilesQueryRequest: WsDFUXRef.DFUXRefOrphanFilesQueryRequest;\n DFUXRefUnusedFilesRequest: WsDFUXRef.DFUXRefUnusedFilesRequest;\n WsDFUXRefPingRequest: WsDFUXRef.WsDFUXRefPingRequest;\n }\n\n export interface Directory {\n Num: string;\n Name: string;\n MaxSize: string;\n MaxIP: string;\n MinSize: string;\n MinIP: string;\n Size: string;\n PositiveSkew: string;\n }\n\n interface DFUXRefDirectoriesQueryResult {\n Directory: Directory[];\n Cluster: string;\n }\n\n export interface DFUXRefDirectoriesQueryResponseEx {\n DFUXRefDirectoriesQueryResult: DFUXRefDirectoriesQueryResult;\n }\n\n export interface Part {\n Num: string;\n Node: string;\n }\n\n export interface DFUXRefFile {\n Size: string;\n Partmask: string;\n Modified: Date;\n Numparts: string;\n Part: Part[];\n }\n\n export interface DFUXRefFoundFilesQueryResult {\n File: DFUXRefFile[];\n Cluster: string;\n }\n\n export interface XRefNode {\n Name: string;\n Modified: string;\n Status: string;\n }\n\n export interface DFUXRefListResult {\n XRefNode: XRefNode[];\n }\n\n export interface DFUXRefListResponseEx {\n DFUXRefListResult: DFUXRefListResult;\n }\n\n export interface File2 {\n Partslost: string;\n Name: string;\n Partmask: string;\n Modified: Date;\n Numparts: string;\n Part: Part[];\n Cluster: string;\n Size: string;\n Primarylost: string;\n Replicatedlost: string;\n }\n\n export interface DFUXRefLostFilesQueryResult {\n File: File2[];\n Cluster: string;\n }\n\n export interface Warning {\n Text: string;\n File: string;\n }\n\n export interface DFUXRefMessagesQueryResult {\n Warning: Warning[];\n Cluster: string;\n }\n\n export interface DFUXRefOrphanFilesQueryResult {\n File: DFUXRefFile[];\n Cluster: string;\n }\n\n}\n\nexport class DFUXRefService extends DFUXRefServiceBase {\n\n DFUXRefDirectoriesEx(request: Partial<WsDFUXRef.DFUXRefDirectoriesQueryRequest>): Promise<WsDFUXRefEx.DFUXRefDirectoriesQueryResponseEx> {\n return this._connection.send(\"DFUXRefDirectories\", request, \"json\", false, undefined, \"DFUXRefDirectoriesQueryResponse\");\n }\n\n DFUXRefListEx(request: Partial<WsDFUXRef.DFUXRefListRequest>): Promise<WsDFUXRefEx.DFUXRefListResponseEx> {\n return this._connection.send(\"DFUXRefList\", request, \"json\", false, undefined, \"DFUXRefListResponse\");\n }\n\n}\n", "import type { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { ESPExceptions, Service } from \"../espConnection.ts\";\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", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsElk {\n\n export interface GetConfigDetailsRequest {\n\n }\n\n export interface GetConfigDetailsResponse {\n IntegrateKibana: boolean;\n KibanaAddress: string;\n KibanaPort: string;\n KibanaEntryPointURI: string;\n ReportElasticSearchHealth: boolean;\n ElasticSearchAddresses: string;\n ElasticSearchPort: string;\n ReportLogStashHealth: boolean;\n LogStashAddress: string;\n LogStashPort: string;\n }\n\n export interface ws_elkPingRequest {\n\n }\n\n export interface ws_elkPingResponse {\n\n }\n\n}\n\nexport class ElkServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_elk\", \"1\");\n }\n\n GetConfigDetails(request: Partial<WsElk.GetConfigDetailsRequest>): Promise<WsElk.GetConfigDetailsResponse> {\n return this._connection.send(\"GetConfigDetails\", request, \"json\", false, undefined, \"GetConfigDetailsResponse\");\n }\n\n Ping(request: Partial<WsElk.ws_elkPingRequest>): Promise<WsElk.ws_elkPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_elkPingResponse\");\n }\n\n}\n", "import { ElkServiceBase, WsElk } from \"./wsdl/ws_elk/v1/ws_elk.ts\";\n\nexport {\n type WsElk\n};\n\nexport class ElkService extends ElkServiceBase {\n}\n", "import { scopedLogger } from \"@hpcc-js/util\";\nimport { LogaccessServiceBase, WsLogaccess } from \"./wsdl/ws_logaccess/v1.08/ws_logaccess.ts\";\n\nconst logger = scopedLogger(\"@hpcc-js/comms/services/wsLogaccess.ts\");\n\nexport {\n WsLogaccess\n};\n\nexport interface GetLogsExRequest {\n audience?: string;\n class?: string[];\n workunits?: string;\n message?: string;\n processid?: string;\n logid?: string;\n threadid?: string;\n timestamp?: string;\n components?: string;\n instance?: string;\n StartDate?: Date;\n EndDate?: Date;\n LogLineStartFrom: number,\n LogLineLimit: number\n}\n\nexport const enum LogType {\n Disaster = \"DIS\",\n Error = \"ERR\",\n Warning = \"WRN\",\n Information = \"INF\",\n Progress = \"PRO\",\n Metric = \"MET\"\n}\n\nexport const enum TargetAudience {\n Operator = \"OPR\",\n User = \"USR\",\n Programmer = \"PRO\",\n Audit = \"ADT\"\n}\n\n//properties here are \"LogType\" values in Ws_logaccess.GetLogAccessInfo\nexport interface LogLine {\n audience?: string;\n class?: string;\n workunits?: string;\n message?: string;\n processid?: number;\n logid?: string;\n threadid?: number;\n timestamp?: string;\n components?: string;\n instance?: string;\n}\n\nexport interface GetLogsExResponse {\n lines: LogLine[],\n total: number,\n}\n\nexport class LogaccessService extends LogaccessServiceBase {\n\n protected _logAccessInfo: Promise<WsLogaccess.GetLogAccessInfoResponse>;\n\n GetLogAccessInfo(request: WsLogaccess.GetLogAccessInfoRequest = {}): Promise<WsLogaccess.GetLogAccessInfoResponse> {\n if (!this._logAccessInfo) {\n this._logAccessInfo = super.GetLogAccessInfo(request);\n }\n return this._logAccessInfo;\n }\n\n GetLogs(request: WsLogaccess.GetLogsRequest): Promise<WsLogaccess.GetLogsResponse> {\n return super.GetLogs(request);\n }\n\n async GetLogsEx(request: GetLogsExRequest): Promise<GetLogsExResponse> {\n const logInfo = await this.GetLogAccessInfo();\n const columnMap = {};\n logInfo.Columns.Column.forEach(column => columnMap[column.LogType] = column.Name);\n\n const convertLogLine = (line: any) => {\n const retVal: LogLine = {};\n for (const key in columnMap) {\n if (line?.fields) {\n retVal[key] = Object.assign({}, ...line.fields)[columnMap[key]] ?? \"\";\n } else {\n retVal[key] = \"\";\n }\n }\n return retVal;\n };\n\n const getLogsRequest: WsLogaccess.GetLogsRequest = {\n Filter: {\n leftBinaryFilter: {\n BinaryLogFilter: [{\n leftFilter: {\n LogCategory: WsLogaccess.LogAccessType.All,\n },\n } as WsLogaccess.BinaryLogFilter]\n }\n },\n Range: {\n StartDate: new Date(0).toISOString(),\n },\n LogLineStartFrom: request.LogLineStartFrom ?? 0,\n LogLineLimit: request.LogLineLimit ?? 100,\n SelectColumnMode: WsLogaccess.LogSelectColumnMode.DEFAULT,\n Format: \"JSON\",\n SortBy: {\n SortCondition: [{\n BySortType: WsLogaccess.SortColumType.ByDate,\n ColumnName: \"\",\n Direction: 0\n }]\n }\n };\n\n const filters: WsLogaccess.leftFilter[] = [];\n for (const key in request) {\n let searchField;\n if (key in columnMap) {\n if (Object.values(WsLogaccess.LogColumnType).includes(key as WsLogaccess.LogColumnType)) {\n searchField = key;\n } else {\n searchField = columnMap[key];\n }\n }\n let logCategory;\n if (searchField) {\n switch (searchField) {\n case WsLogaccess.LogColumnType.workunits:\n case \"hpcc.log.jobid\":\n logCategory = WsLogaccess.LogAccessType.ByJobID;\n break;\n case WsLogaccess.LogColumnType.audience:\n case \"hpcc.log.audience\":\n logCategory = WsLogaccess.LogAccessType.ByTargetAudience;\n break;\n case WsLogaccess.LogColumnType.class:\n case \"hpcc.log.class\":\n logCategory = WsLogaccess.LogAccessType.ByLogType;\n break;\n case WsLogaccess.LogColumnType.components:\n case \"kubernetes.container.name\":\n logCategory = WsLogaccess.LogAccessType.ByComponent;\n break;\n default:\n logCategory = WsLogaccess.LogAccessType.ByFieldName;\n searchField = columnMap[key];\n }\n if (Array.isArray(request[key])) {\n request[key].forEach(value => {\n if (logCategory === WsLogaccess.LogAccessType.ByComponent) {\n value += \"*\";\n }\n filters.push({\n LogCategory: logCategory,\n SearchField: searchField,\n SearchByValue: value\n });\n });\n } else {\n let value = request[key];\n if (logCategory === WsLogaccess.LogAccessType.ByComponent) {\n // append wildcard to end of search value to include ephemeral\n // containers that aren't listed in ECL Watch's filters\n value += \"*\";\n }\n filters.push({\n LogCategory: logCategory,\n SearchField: searchField,\n SearchByValue: value\n });\n }\n }\n }\n\n if (filters.length > 2) {\n let binaryLogFilter = getLogsRequest.Filter.leftBinaryFilter.BinaryLogFilter[0];\n filters.forEach((filter, i) => {\n let operator = WsLogaccess.LogAccessFilterOperator.AND;\n if (i > 0) {\n if (filters[i - 1].SearchField === filter.SearchField) {\n operator = WsLogaccess.LogAccessFilterOperator.OR;\n }\n if (i === filters.length - 1) {\n binaryLogFilter.Operator = operator;\n binaryLogFilter.rightFilter = filter as WsLogaccess.rightFilter;\n } else {\n binaryLogFilter.Operator = operator;\n binaryLogFilter.rightBinaryFilter = {\n BinaryLogFilter: [{\n leftFilter: filter\n } as WsLogaccess.BinaryLogFilter]\n };\n binaryLogFilter = binaryLogFilter.rightBinaryFilter.BinaryLogFilter[0];\n }\n } else {\n binaryLogFilter.leftFilter = filter as WsLogaccess.leftFilter;\n }\n });\n } else {\n delete getLogsRequest.Filter.leftBinaryFilter;\n getLogsRequest.Filter.leftFilter = {\n LogCategory: WsLogaccess.LogAccessType.All\n } as WsLogaccess.leftFilter;\n if (filters[0]?.SearchField) {\n getLogsRequest.Filter.leftFilter = {\n LogCategory: filters[0]?.LogCategory,\n SearchField: filters[0]?.SearchField,\n SearchByValue: filters[0]?.SearchByValue\n };\n }\n if (filters[1]?.SearchField) {\n getLogsRequest.Filter.Operator = WsLogaccess.LogAccessFilterOperator.AND;\n if (filters[0].SearchField === filters[1].SearchField) {\n getLogsRequest.Filter.Operator = WsLogaccess.LogAccessFilterOperator.OR;\n }\n getLogsRequest.Filter.rightFilter = {\n LogCategory: filters[1]?.LogCategory,\n SearchField: filters[1]?.SearchField,\n SearchByValue: filters[1]?.SearchByValue\n };\n }\n }\n\n if (request.StartDate) {\n getLogsRequest.Range.StartDate = request.StartDate.toISOString();\n }\n if (request.EndDate) {\n getLogsRequest.Range.EndDate = request.EndDate.toISOString();\n }\n\n return this.GetLogs(getLogsRequest).then(response => {\n try {\n const logLines = JSON.parse(response.LogLines);\n let lines = [];\n switch (logInfo.RemoteLogManagerType) {\n case \"azureloganalyticscurl\":\n case \"elasticstack\":\n case \"grafanacurl\":\n lines = logLines.lines?.map(convertLogLine) ?? [];\n break;\n default:\n logger.warning(`Unknown RemoteLogManagerType: ${logInfo.RemoteLogManagerType}`);\n lines = [];\n }\n return {\n lines: lines,\n total: response.TotalLogLinesAvailable ?? 10000\n };\n } catch (e: any) {\n logger.error(e.message ?? e);\n }\n return {\n lines: [],\n total: 0\n };\n });\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsLogaccess {\n\n export type dateTime = string;\n export type unsignedInt = number;\n export type long = number;\n\n export enum LogColumnType {\n global = \"global\",\n workunits = \"workunits\",\n components = \"components\",\n audience = \"audience\",\n class = \"class\",\n instance = \"instance\",\n node = \"node\",\n message = \"message\",\n logid = \"logid\",\n processid = \"processid\",\n threadid = \"threadid\",\n timestamp = \"timestamp\",\n pod = \"pod\",\n traceid = \"traceid\",\n spanid = \"spanid\"\n }\n\n export enum LogColumnValueType {\n string = \"string\",\n numeric = \"numeric\",\n datetime = \"datetime\",\n enum = \"enum\",\n epoch = \"epoch\"\n }\n\n export enum LogAccessType {\n All = 0,\n ByJobID = 1,\n ByComponent = 2,\n ByLogType = 3,\n ByTargetAudience = 4,\n BySourceInstance = 5,\n BySourceNode = 6,\n ByFieldName = 7,\n ByPod = 8,\n ByTraceID = 9,\n BySpanID = 10\n }\n\n export enum LogAccessStatusCode {\n Success = 0,\n Warning = 1,\n Fail = 2\n }\n\n export enum LogAccessFilterOperator {\n NONE = 0,\n AND = 1,\n OR = 2\n }\n\n export enum LogSelectColumnMode {\n MIN = 0,\n DEFAULT = 1,\n ALL = 2,\n CUSTOM = 3\n }\n\n export enum SortColumType {\n ByDate = 0,\n ByJobID = 1,\n ByComponent = 2,\n ByLogType = 3,\n ByTargetAudience = 4,\n BySourceInstance = 5,\n BySourceNode = 6,\n ByFieldName = 7,\n ByPod = 8,\n ByTraceID = 9,\n BySpanID = 10\n }\n\n export enum SortDirection {\n ASC = 0,\n DSC = 1\n }\n\n export interface GetHealthReportRequest {\n IncludeConfiguration?: boolean;\n IncludeDebugReport?: boolean;\n IncludeSampleQuery?: 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 MessageArray {\n Item: string[];\n }\n\n export interface Status {\n Code: LogAccessStatusCode;\n MessageArray: MessageArray;\n }\n\n export interface DebugReport {\n SampleQueryReport: string;\n PluginDebugReport: string;\n ServerDebugReport: string;\n }\n\n export interface GetHealthReportResponse {\n Exceptions: Exceptions;\n Status: Status;\n DebugReport: DebugReport;\n Configuration: string;\n }\n\n export interface GetLogAccessInfoRequest {\n\n }\n\n export interface EnumeratedValues {\n Item: string[];\n }\n\n export interface Column {\n Name: string;\n LogType: LogColumnType;\n EnumeratedValues: EnumeratedValues;\n ColumnMode: LogSelectColumnMode;\n ColumnType: LogColumnValueType;\n }\n\n export interface Columns {\n Column: Column[];\n }\n\n export interface GetLogAccessInfoResponse {\n Exceptions: Exceptions;\n Columns: Columns;\n RemoteLogManagerType: string;\n RemoteLogManagerConnectionString: string;\n SupportsResultPaging: boolean;\n }\n\n export interface leftFilter {\n LogCategory: LogAccessType;\n SearchByValue: string;\n SearchField: string;\n }\n\n export interface rightFilter {\n LogCategory: LogAccessType;\n SearchByValue: string;\n SearchField: string;\n }\n\n export interface rightBinaryFilter {\n BinaryLogFilter: BinaryLogFilter[];\n }\n\n export interface BinaryLogFilter {\n leftFilter: leftFilter;\n leftBinaryFilter: leftBinaryFilter;\n Operator: LogAccessFilterOperator;\n rightFilter: {\n LogCategory: LogAccessType;\n SearchByValue: string;\n SearchField: string;\n };\n rightBinaryFilter: {\n BinaryLogFilter: BinaryLogFilter[];\n };\n }\n\n export interface leftBinaryFilter {\n BinaryLogFilter: BinaryLogFilter[];\n }\n\n export interface Filter {\n leftFilter?: leftFilter;\n leftBinaryFilter?: leftBinaryFilter;\n Operator?: LogAccessFilterOperator;\n rightFilter?: rightFilter;\n rightBinaryFilter?: rightBinaryFilter;\n }\n\n export interface Range {\n StartDate?: dateTime;\n EndDate?: dateTime;\n }\n\n export interface Columns2 {\n Item: string[];\n }\n\n export interface SortCondition {\n BySortType: SortColumType;\n ColumnName: string;\n Direction: SortDirection;\n }\n\n export interface SortBy {\n SortCondition: SortCondition[];\n }\n\n export interface GetLogsRequest {\n Filter?: Filter;\n Range?: Range;\n LogLineLimit?: unsignedInt;\n LogLineStartFrom?: long;\n SelectColumnMode?: LogSelectColumnMode;\n Columns?: Columns2;\n Format?: string;\n SortBy?: SortBy;\n }\n\n export interface GetLogsResponse {\n Exceptions: Exceptions;\n LogLines: string;\n LogLineCount: unsignedInt;\n TotalLogLinesAvailable: unsignedInt;\n }\n\n export interface ws_logaccessPingRequest {\n\n }\n\n export interface ws_logaccessPingResponse {\n\n }\n\n}\n\nexport class LogaccessServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_logaccess\", \"1.08\");\n }\n\n GetHealthReport(request: Partial<WsLogaccess.GetHealthReportRequest>): Promise<WsLogaccess.GetHealthReportResponse> {\n return this._connection.send(\"GetHealthReport\", request, \"json\", false, undefined, \"GetHealthReportResponse\");\n }\n\n GetLogAccessInfo(request: Partial<WsLogaccess.GetLogAccessInfoRequest>): Promise<WsLogaccess.GetLogAccessInfoResponse> {\n return this._connection.send(\"GetLogAccessInfo\", request, \"json\", false, undefined, \"GetLogAccessInfoResponse\");\n }\n\n GetLogs(request: Partial<WsLogaccess.GetLogsRequest>): Promise<WsLogaccess.GetLogsResponse> {\n return this._connection.send(\"GetLogs\", request, \"json\", false, undefined, \"GetLogsResponse\");\n }\n\n Ping(request: Partial<WsLogaccess.ws_logaccessPingRequest>): Promise<WsLogaccess.ws_logaccessPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_logaccessPingResponse\");\n }\n\n}\n", "import { exists } from \"@hpcc-js/util\";\nimport { max as d3Max, mean as d3Mean } from \"d3-array\";\n\nimport { MachineServiceBase, WsMachine } from \"./wsdl/ws_machine/v1.19/ws_machine.ts\";\n\nexport {\n type WsMachine\n};\n\nexport namespace WsMachineEx {\n\n export interface DiskUsage extends WsMachine.DiskUsage {\n Total: number;\n PercentUsed: number;\n }\n\n export interface MachineUsage extends Omit<WsMachine.MachineUsage, \"DiskUsages\"> {\n DiskUsages: DiskUsage[];\n mean: number;\n max: number;\n }\n\n export interface ComponentUsage extends Omit<WsMachine.ComponentUsage, \"MachineUsages\"> {\n MachineUsages: MachineUsage[];\n MachineUsagesDescription: string;\n mean: number;\n max: number;\n }\n\n export interface TargetClusterUsage extends Omit<WsMachine.TargetClusterUsage, \"ComponentUsages\"> {\n ComponentUsages: ComponentUsage[];\n ComponentUsagesDescription: string;\n mean: number;\n max: number;\n }\n\n}\n\nexport class MachineService extends MachineServiceBase {\n\n GetTargetClusterUsageEx(targetClusters?: string[], bypassCachedResult: boolean = false): Promise<WsMachineEx.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 }).then(response => {\n return response.filter(tcu => !!tcu.ComponentUsages).map(tcu => {\n const ComponentUsages: WsMachineEx.ComponentUsage[] = tcu.ComponentUsages.ComponentUsage.map(cu => {\n const MachineUsages: WsMachineEx.MachineUsage[] = (cu.MachineUsages && cu.MachineUsages.MachineUsage ? cu.MachineUsages.MachineUsage : []).map(mu => {\n const DiskUsages: WsMachineEx.DiskUsage[] = mu.DiskUsages && mu.DiskUsages.DiskUsage ? mu.DiskUsages.DiskUsage.map(du => {\n return {\n ...du,\n InUse: du.InUse * 1024,\n Total: (du.InUse + du.Available) * 1024,\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.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsMachine {\n\n export type int = number;\n export type long = number;\n export type unsignedInt = number;\n\n export enum ThresholdType {\n THRESHOLD_PERCENTAGE = 0,\n THRESHOLD_MB = 1\n }\n\n export enum TpMachineType {\n ALLNODES = \"ALLNODES\",\n THORMACHINES = \"THORMACHINES\",\n HOLEMACHINES = \"HOLEMACHINES\",\n ROXIEMACHINES = \"ROXIEMACHINES\",\n MACHINES = \"MACHINES\",\n AVAILABLEMACHINES = \"AVAILABLEMACHINES\",\n DROPZONE = \"DROPZONE\",\n STANDBYNNODE = \"STANDBYNNODE\",\n THORSPARENODES = \"THORSPARENODES\",\n HOLESTANDBYNODES = \"HOLESTANDBYNODES\"\n }\n\n export interface GetComponentStatusRequest {\n\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 StatusReport {\n StatusID: int;\n Status: string;\n StatusDetails: string;\n Reporter: string;\n TimeReported: long;\n TimeReportedStr: string;\n TimeCached: string;\n URL: string;\n }\n\n export interface StatusReports {\n StatusReport: StatusReport[];\n }\n\n export interface ComponentStatus {\n ComponentTypeID: int;\n ComponentType: string;\n EndPoint: string;\n StatusID: int;\n Status: string;\n TimeReported: long;\n TimeReportedStr: string;\n Reporter: string;\n StatusReports: StatusReports;\n }\n\n export interface ComponentStatusList {\n ComponentStatus: ComponentStatus[];\n }\n\n export interface GetComponentStatusResponse {\n Exceptions: Exceptions;\n StatusCode: int;\n Status: string;\n ComponentType: string;\n EndPoint: string;\n ComponentStatusID: int;\n ComponentStatus: string;\n TimeReported: long;\n TimeReportedStr: string;\n Reporter: string;\n StatusReport: StatusReport;\n ComponentStatusList: ComponentStatusList;\n }\n\n export interface Component {\n Type: string;\n Name: string;\n }\n\n export interface Components {\n Component: Component[];\n }\n\n export interface GetComponentUsageRequest {\n Components?: Components;\n BypassCachedResult?: boolean;\n }\n\n export interface DiskUsage {\n Name: string;\n Path: string;\n Description: string;\n InUse: long;\n Available: long;\n PercentAvailable: int;\n Exception: string;\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 Exception: 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 Exception: string;\n MachineUsages: MachineUsages;\n }\n\n export interface ComponentUsages {\n ComponentUsage: ComponentUsage[];\n }\n\n export interface GetComponentUsageResponse {\n Exceptions: Exceptions;\n ComponentUsages: ComponentUsages;\n UsageTime: string;\n }\n\n export interface Addresses {\n Item: string[];\n }\n\n export interface GetMachineInfoRequest {\n Addresses?: Addresses;\n SortBy?: string;\n ClusterType?: TpMachineType;\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?: int;\n DiskThreshold?: int;\n CpuThreshold?: int;\n AutoRefresh?: int;\n MemThresholdType?: ThresholdType;\n DiskThresholdType?: ThresholdType;\n UserName?: string;\n Password?: string;\n SecurityString?: string;\n }\n\n export interface RequestInfo {\n Addresses: Addresses;\n SortBy: string;\n ClusterType: TpMachineType;\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: int;\n DiskThreshold: int;\n CpuThreshold: int;\n AutoRefresh: int;\n MemThresholdType: ThresholdType;\n DiskThresholdType: ThresholdType;\n SecurityString: string;\n UserName: string;\n Password: string;\n EnableSNMP: boolean;\n }\n\n export interface Columns {\n Item: string[];\n }\n\n export interface ProcessorInfo {\n Type: string;\n Load: int;\n }\n\n export interface Processors {\n ProcessorInfo: ProcessorInfo[];\n }\n\n export interface StorageInfo {\n Description: string;\n Type: string;\n Available: long;\n PercentAvail: int;\n Total: long;\n Failures: int;\n }\n\n export interface Storage {\n StorageInfo: StorageInfo[];\n }\n\n export interface SWRunInfo {\n Name: string;\n Instances: int;\n State: int;\n }\n\n export interface Running {\n SWRunInfo: SWRunInfo[];\n }\n\n export interface PhysicalMemory {\n Description: string;\n Type: string;\n Available: long;\n PercentAvail: int;\n Total: long;\n Failures: int;\n }\n\n export interface VirtualMemory {\n Description: string;\n Type: string;\n Available: long;\n PercentAvail: int;\n Total: long;\n Failures: int;\n }\n\n export interface ComponentInfo {\n Condition: int;\n State: int;\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: int;\n ProcessNumber: int;\n Channels: unsignedInt;\n Processors: Processors;\n Storage: Storage;\n Running: Running;\n PhysicalMemory: PhysicalMemory;\n VirtualMemory: VirtualMemory;\n ComponentInfo: ComponentInfo;\n Exception: string;\n }\n\n export interface Machines {\n MachineInfoEx: MachineInfoEx[];\n }\n\n export interface GetMachineInfoResponse {\n Exceptions: Exceptions;\n RequestInfo: RequestInfo;\n Columns: Columns;\n Machines: Machines;\n TimeStamp: string;\n UserName: string;\n Password: string;\n AcceptLanguage: string;\n }\n\n export interface GetMachineInfoRequestEx {\n Addresses: Addresses;\n ClusterType: TpMachineType;\n }\n\n export interface GetMachineInfoResponseEx {\n Exceptions: Exceptions;\n AcceptLanguage: string;\n Machines: Machines;\n }\n\n export interface ShowColumns {\n Item: string[];\n }\n\n export interface MetricsRequest {\n SecurityString?: string;\n Addresses?: Addresses;\n ShowColumns?: ShowColumns;\n AutoRefresh?: int;\n SelectAllChecked?: boolean;\n Cluster?: string;\n AutoUpdate?: boolean;\n }\n\n export interface MetricsResponse {\n Exceptions: Exceptions;\n FieldInformation: string;\n Metrics: string;\n AutoRefresh: int;\n Cluster: string;\n SelectAllChecked: boolean;\n AutoUpdate: boolean;\n AcceptLanguage: string;\n }\n\n export interface NodeGroups {\n Item: string[];\n }\n\n export interface GetNodeGroupUsageRequest {\n NodeGroups?: NodeGroups;\n BypassCachedResult?: boolean;\n }\n\n export interface NodeGroupUsage {\n Name: string;\n Description: string;\n Exception: string;\n ComponentUsages: ComponentUsages;\n }\n\n export interface NodeGroupUsages {\n NodeGroupUsage: NodeGroupUsage[];\n }\n\n export interface GetNodeGroupUsageResponse {\n Exceptions: Exceptions;\n NodeGroupUsages: NodeGroupUsages;\n UsageTime: string;\n }\n\n export interface TargetClusters {\n Item: string[];\n }\n\n export interface GetTargetClusterInfoRequest {\n TargetClusters?: TargetClusters;\n AddProcessesToFilter?: string;\n ApplyProcessFilter?: boolean;\n GetProcessorInfo?: boolean;\n GetStorageInfo?: boolean;\n LocalFileSystemsOnly?: boolean;\n GetSoftwareInfo?: boolean;\n MemThreshold?: int;\n DiskThreshold?: int;\n CpuThreshold?: int;\n AutoRefresh?: int;\n MemThresholdType?: ThresholdType;\n DiskThresholdType?: ThresholdType;\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 GetTargetClusterInfoResponse {\n Exceptions: Exceptions;\n Columns: Columns;\n RequestInfo: RequestInfo;\n TargetClusterInfoList: TargetClusterInfoList;\n TimeStamp: string;\n AcceptLanguage: string;\n }\n\n export interface GetTargetClusterUsageRequest {\n TargetClusters?: TargetClusters;\n BypassCachedResult?: boolean;\n }\n\n export interface TargetClusterUsage {\n Name: string;\n Description: string;\n Exception: string;\n ComponentUsages: ComponentUsages;\n }\n\n export interface TargetClusterUsages {\n TargetClusterUsage: TargetClusterUsage[];\n }\n\n export interface GetTargetClusterUsageResponse {\n Exceptions: Exceptions;\n TargetClusterUsages: TargetClusterUsages;\n UsageTime: string;\n }\n\n export interface ws_machinePingRequest {\n\n }\n\n export interface ws_machinePingResponse {\n\n }\n\n export interface UpdateComponentStatusRequest {\n Reporter?: string;\n ComponentStatusList?: ComponentStatusList;\n }\n\n export interface UpdateComponentStatusResponse {\n Exceptions: Exceptions;\n StatusCode: int;\n Status: string;\n }\n\n}\n\nexport class MachineServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"ws_machine\", \"1.19\");\n }\n\n GetComponentStatus(request: Partial<WsMachine.GetComponentStatusRequest>): Promise<WsMachine.GetComponentStatusResponse> {\n return this._connection.send(\"GetComponentStatus\", request, \"json\", false, undefined, \"GetComponentStatusResponse\");\n }\n\n GetComponentUsage(request: Partial<WsMachine.GetComponentUsageRequest>): Promise<WsMachine.GetComponentUsageResponse> {\n return this._connection.send(\"GetComponentUsage\", request, \"json\", false, undefined, \"GetComponentUsageResponse\");\n }\n\n GetMachineInfo(request: Partial<WsMachine.GetMachineInfoRequest>): Promise<WsMachine.GetMachineInfoResponse> {\n return this._connection.send(\"GetMachineInfo\", request, \"json\", false, undefined, \"GetMachineInfoResponse\");\n }\n\n GetMachineInfoEx(request: Partial<WsMachine.GetMachineInfoRequestEx>): Promise<WsMachine.GetMachineInfoResponseEx> {\n return this._connection.send(\"GetMachineInfoEx\", request, \"json\", false, undefined, \"GetMachineInfoResponseEx\");\n }\n\n GetMetrics(request: Partial<WsMachine.MetricsRequest>): Promise<WsMachine.MetricsResponse> {\n return this._connection.send(\"GetMetrics\", request, \"json\", false, undefined, \"MetricsResponse\");\n }\n\n GetNodeGroupUsage(request: Partial<WsMachine.GetNodeGroupUsageRequest>): Promise<WsMachine.GetNodeGroupUsageResponse> {\n return this._connection.send(\"GetNodeGroupUsage\", request, \"json\", false, undefined, \"GetNodeGroupUsageResponse\");\n }\n\n GetTargetClusterInfo(request: Partial<WsMachine.GetTargetClusterInfoRequest>): Promise<WsMachine.GetTargetClusterInfoResponse> {\n return this._connection.send(\"GetTargetClusterInfo\", request, \"json\", false, undefined, \"GetTargetClusterInfoResponse\");\n }\n\n GetTargetClusterUsage(request: Partial<WsMachine.GetTargetClusterUsageRequest>): Promise<WsMachine.GetTargetClusterUsageResponse> {\n return this._connection.send(\"GetTargetClusterUsage\", request, \"json\", false, undefined, \"GetTargetClusterUsageResponse\");\n }\n\n Ping(request: Partial<WsMachine.ws_machinePingRequest>): Promise<WsMachine.ws_machinePingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_machinePingResponse\");\n }\n\n UpdateComponentStatus(request: Partial<WsMachine.UpdateComponentStatusRequest>): Promise<WsMachine.UpdateComponentStatusResponse> {\n return this._connection.send(\"UpdateComponentStatus\", request, \"json\", false, undefined, \"UpdateComponentStatusResponse\");\n }\n\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsPackageProcess {\n\n export type int = number;\n export type nonNegativeInteger = number;\n\n export interface ActivatePackageRequest {\n Target?: string;\n PackageMap?: string;\n Process?: string;\n GlobalScope?: 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 status {\n Code: int;\n Description: string;\n }\n\n export interface ActivatePackageResponse {\n Exceptions: Exceptions;\n status: status;\n }\n\n export interface AddPackageRequest {\n Info?: string;\n Activate?: boolean;\n OverWrite?: boolean;\n Target?: string;\n PackageMap?: string;\n Process?: string;\n DaliIp?: string;\n GlobalScope?: boolean;\n SourceProcess?: string;\n AllowForeignFiles?: boolean;\n PreloadAllPackages?: boolean;\n ReplacePackageMap?: boolean;\n UpdateSuperFiles?: boolean;\n UpdateCloneFrom?: boolean;\n AppendCluster?: boolean;\n DfuCopyFiles?: boolean;\n DfuQueue?: string;\n DfuWait?: nonNegativeInteger;\n DfuOverwrite?: boolean;\n OnlyCopyFiles?: boolean;\n StopIfFilesCopied?: boolean;\n DfuPublisherWuid?: string;\n RemoteStorage?: string;\n KeyCompression?: string;\n }\n\n export interface FilesNotFound {\n File: string[];\n }\n\n export interface AddPackageResponse {\n Exceptions: Exceptions;\n status: status;\n FilesNotFound: FilesNotFound;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface AddPartToPackageMapRequest {\n Target?: string;\n Process?: string;\n PackageMap?: string;\n GlobalScope?: boolean;\n PartName?: string;\n Content?: string;\n DeletePrevious?: boolean;\n DaliIp?: string;\n SourceProcess?: string;\n AllowForeignFiles?: boolean;\n PreloadAllPackages?: boolean;\n UpdateSuperFiles?: boolean;\n UpdateCloneFrom?: boolean;\n AppendCluster?: boolean;\n DfuCopyFiles?: boolean;\n DfuQueue?: string;\n DfuWait?: nonNegativeInteger;\n DfuOverwrite?: boolean;\n OnlyCopyFiles?: boolean;\n StopIfFilesCopied?: boolean;\n DfuPublisherWuid?: string;\n RemoteStorage?: string;\n KeyCompression?: string;\n }\n\n export interface AddPartToPackageMapResponse {\n Exceptions: Exceptions;\n status: status;\n FilesNotFound: FilesNotFound;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface CopyPackageMapRequest {\n SourcePath?: string;\n RemoteUserName?: string;\n RemotePassword?: string;\n Target?: string;\n Process?: string;\n PMID?: string;\n Activate?: boolean;\n DaliIp?: string;\n GlobalScope?: boolean;\n SourceProcess?: string;\n PreloadAllPackages?: boolean;\n ReplacePackageMap?: boolean;\n UpdateSuperFiles?: boolean;\n UpdateCloneFrom?: boolean;\n AppendCluster?: boolean;\n DfuCopyFiles?: boolean;\n DfuQueue?: string;\n DfuWait?: nonNegativeInteger;\n DfuOverwrite?: boolean;\n OnlyCopyFiles?: boolean;\n StopIfFilesCopied?: boolean;\n DfuPublisherWuid?: string;\n RemoteStorage?: string;\n KeyCompression?: string;\n }\n\n export interface CopyPackageMapResponse {\n Exceptions: Exceptions;\n status: status;\n FilesNotFound: FilesNotFound;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface DeActivatePackageRequest {\n Target?: string;\n PackageMap?: string;\n Process?: string;\n GlobalScope?: boolean;\n }\n\n export interface DeActivatePackageResponse {\n Exceptions: Exceptions;\n status: status;\n }\n\n export interface PackageMap {\n Id: string;\n Target: string;\n Process: string;\n }\n\n export interface PackageMaps {\n PackageMap: PackageMap[];\n }\n\n export interface DeletePackageRequest {\n Target?: string;\n PackageMap?: string;\n Process?: string;\n GlobalScope?: boolean;\n PackageMaps?: PackageMaps;\n }\n\n export interface DeletePackageResponse {\n Exceptions: Exceptions;\n status: status;\n }\n\n export interface EchoRequest {\n Request?: string;\n }\n\n export interface EchoResponse {\n Response: string;\n }\n\n export interface GetPackageRequest {\n Target?: string;\n Process?: string;\n }\n\n export interface GetPackageResponse {\n Exceptions: Exceptions;\n status: status;\n Info: string;\n }\n\n export interface GetPackageMapByIdRequest {\n PackageMapId?: string;\n }\n\n export interface GetPackageMapByIdResponse {\n Exceptions: Exceptions;\n status: status;\n Info: string;\n }\n\n export interface GetPackageMapSelectOptionsRequest {\n IncludeTargets?: boolean;\n IncludeProcesses?: boolean;\n IncludeProcessFilters?: boolean;\n }\n\n export interface Processes {\n Item: string[];\n }\n\n export interface TargetData {\n Name: string;\n Type: string;\n Processes: Processes;\n }\n\n export interface Targets {\n TargetData: TargetData[];\n }\n\n export interface ProcessFilters {\n Item: string[];\n }\n\n export interface GetPackageMapSelectOptionsResponse {\n Exceptions: Exceptions;\n status: status;\n Targets: Targets;\n ProcessFilters: ProcessFilters;\n }\n\n export interface GetPartFromPackageMapRequest {\n Target?: string;\n PackageMap?: string;\n GlobalScope?: boolean;\n PartName?: string;\n }\n\n export interface GetPartFromPackageMapResponse {\n Exceptions: Exceptions;\n status: status;\n Content: string;\n }\n\n export interface GetQueryFileMappingRequest {\n Target?: string;\n PMID?: string;\n QueryName?: string;\n GlobalScope?: boolean;\n }\n\n export interface UnmappedFiles {\n File: string[];\n }\n\n export interface SubFiles {\n File: string[];\n }\n\n export interface SuperFile {\n Name: string;\n SubFiles: SubFiles;\n }\n\n export interface SuperFiles {\n SuperFile: SuperFile[];\n }\n\n export interface GetQueryFileMappingResponse {\n Exceptions: Exceptions;\n UnmappedFiles: UnmappedFiles;\n SuperFiles: SuperFiles;\n }\n\n export interface ListPackageRequest {\n Target?: string;\n Process?: string;\n }\n\n export interface PackageListData {\n Id: string;\n Queries: string;\n }\n\n export interface PkgListData {\n PackageListData: PackageListData[];\n }\n\n export interface PackageListMapData {\n Id: string;\n Target: string;\n Process: string;\n PkgListData: PkgListData;\n Active: boolean;\n Description: string;\n }\n\n export interface PkgListMapData {\n PackageListMapData: PackageListMapData[];\n }\n\n export interface ListPackageResponse {\n Exceptions: Exceptions;\n status: status;\n PkgListMapData: PkgListMapData;\n }\n\n export interface ListPackagesRequest {\n Target?: string;\n Process?: string;\n ProcessFilter?: string;\n }\n\n export interface PackageMapList {\n PackageListMapData: PackageListMapData[];\n }\n\n export interface ListPackagesResponse {\n Exceptions: Exceptions;\n status: status;\n PackageMapList: PackageMapList;\n }\n\n export interface WsPackageProcessPingRequest {\n\n }\n\n export interface WsPackageProcessPingResponse {\n\n }\n\n export interface RemovePartFromPackageMapRequest {\n Target?: string;\n PackageMap?: string;\n GlobalScope?: boolean;\n PartName?: string;\n }\n\n export interface RemovePartFromPackageMapResponse {\n Exceptions: Exceptions;\n status: status;\n }\n\n export interface QueriesToVerify {\n Item: string[];\n }\n\n export interface QueriesToIgnore {\n Item: string[];\n }\n\n export interface ValidatePackageRequest {\n Info?: string;\n Target?: string;\n Process?: string;\n Active?: boolean;\n PMID?: string;\n QueryIdToVerify?: string;\n QueriesToVerify?: QueriesToVerify;\n QueriesToIgnore?: QueriesToIgnore;\n CheckDFS?: boolean;\n GlobalScope?: boolean;\n IgnoreWarnings?: boolean;\n IgnoreOptionalFiles?: boolean;\n }\n\n export interface Warnings {\n Item: string[];\n }\n\n export interface Errors {\n Item: string[];\n }\n\n export interface Unmatched {\n Item: string[];\n }\n\n export interface packages {\n Unmatched: Unmatched;\n }\n\n export interface queries {\n Unmatched: Unmatched;\n }\n\n export interface NotInDFS {\n File: string[];\n }\n\n export interface files {\n Unmatched: Unmatched;\n NotInDFS: NotInDFS;\n }\n\n export interface Result {\n Target: string;\n PMID: string;\n Warnings: Warnings;\n Errors: Errors;\n packages: packages;\n queries: queries;\n files: files;\n }\n\n export interface Results {\n Result: Result[];\n }\n\n export interface ValidatePackageResponse {\n Exceptions: Exceptions;\n Results: Results;\n }\n\n}\n\nexport class PackageProcessServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsPackageProcess\", \"1.07\");\n }\n\n ActivatePackage(request: Partial<WsPackageProcess.ActivatePackageRequest>): Promise<WsPackageProcess.ActivatePackageResponse> {\n return this._connection.send(\"ActivatePackage\", request, \"json\", false, undefined, \"ActivatePackageResponse\");\n }\n\n AddPackage(request: Partial<WsPackageProcess.AddPackageRequest>): Promise<WsPackageProcess.AddPackageResponse> {\n return this._connection.send(\"AddPackage\", request, \"json\", false, undefined, \"AddPackageResponse\");\n }\n\n AddPartToPackageMap(request: Partial<WsPackageProcess.AddPartToPackageMapRequest>): Promise<WsPackageProcess.AddPartToPackageMapResponse> {\n return this._connection.send(\"AddPartToPackageMap\", request, \"json\", false, undefined, \"AddPartToPackageMapResponse\");\n }\n\n CopyPackageMap(request: Partial<WsPackageProcess.CopyPackageMapRequest>): Promise<WsPackageProcess.CopyPackageMapResponse> {\n return this._connection.send(\"CopyPackageMap\", request, \"json\", false, undefined, \"CopyPackageMapResponse\");\n }\n\n DeActivatePackage(request: Partial<WsPackageProcess.DeActivatePackageRequest>): Promise<WsPackageProcess.DeActivatePackageResponse> {\n return this._connection.send(\"DeActivatePackage\", request, \"json\", false, undefined, \"DeActivatePackageResponse\");\n }\n\n DeletePackage(request: Partial<WsPackageProcess.DeletePackageRequest>): Promise<WsPackageProcess.DeletePackageResponse> {\n return this._connection.send(\"DeletePackage\", request, \"json\", false, undefined, \"DeletePackageResponse\");\n }\n\n Echo(request: Partial<WsPackageProcess.EchoRequest>): Promise<WsPackageProcess.EchoResponse> {\n return this._connection.send(\"Echo\", request, \"json\", false, undefined, \"EchoResponse\");\n }\n\n GetPackage(request: Partial<WsPackageProcess.GetPackageRequest>): Promise<WsPackageProcess.GetPackageResponse> {\n return this._connection.send(\"GetPackage\", request, \"json\", false, undefined, \"GetPackageResponse\");\n }\n\n GetPackageMapById(request: Partial<WsPackageProcess.GetPackageMapByIdRequest>): Promise<WsPackageProcess.GetPackageMapByIdResponse> {\n return this._connection.send(\"GetPackageMapById\", request, \"json\", false, undefined, \"GetPackageMapByIdResponse\");\n }\n\n GetPackageMapSelectOptions(request: Partial<WsPackageProcess.GetPackageMapSelectOptionsRequest>): Promise<WsPackageProcess.GetPackageMapSelectOptionsResponse> {\n return this._connection.send(\"GetPackageMapSelectOptions\", request, \"json\", false, undefined, \"GetPackageMapSelectOptionsResponse\");\n }\n\n GetPartFromPackageMap(request: Partial<WsPackageProcess.GetPartFromPackageMapRequest>): Promise<WsPackageProcess.GetPartFromPackageMapResponse> {\n return this._connection.send(\"GetPartFromPackageMap\", request, \"json\", false, undefined, \"GetPartFromPackageMapResponse\");\n }\n\n GetQueryFileMapping(request: Partial<WsPackageProcess.GetQueryFileMappingRequest>): Promise<WsPackageProcess.GetQueryFileMappingResponse> {\n return this._connection.send(\"GetQueryFileMapping\", request, \"json\", false, undefined, \"GetQueryFileMappingResponse\");\n }\n\n ListPackage(request: Partial<WsPackageProcess.ListPackageRequest>): Promise<WsPackageProcess.ListPackageResponse> {\n return this._connection.send(\"ListPackage\", request, \"json\", false, undefined, \"ListPackageResponse\");\n }\n\n ListPackages(request: Partial<WsPackageProcess.ListPackagesRequest>): Promise<WsPackageProcess.ListPackagesResponse> {\n return this._connection.send(\"ListPackages\", request, \"json\", false, undefined, \"ListPackagesResponse\");\n }\n\n Ping(request: Partial<WsPackageProcess.WsPackageProcessPingRequest>): Promise<WsPackageProcess.WsPackageProcessPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsPackageProcessPingResponse\");\n }\n\n RemovePartFromPackageMap(request: Partial<WsPackageProcess.RemovePartFromPackageMapRequest>): Promise<WsPackageProcess.RemovePartFromPackageMapResponse> {\n return this._connection.send(\"RemovePartFromPackageMap\", request, \"json\", false, undefined, \"RemovePartFromPackageMapResponse\");\n }\n\n ValidatePackage(request: Partial<WsPackageProcess.ValidatePackageRequest>): Promise<WsPackageProcess.ValidatePackageResponse> {\n return this._connection.send(\"ValidatePackage\", request, \"json\", false, undefined, \"ValidatePackageResponse\");\n }\n\n}\n", "import { PackageProcessServiceBase, WsPackageProcess } from \"./wsdl/WsPackageProcess/v1.07/WsPackageProcess.ts\";\n\nexport {\n type WsPackageProcess\n};\n\nexport class PackageProcessService extends PackageProcessServiceBase {\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\ntype unsignedInt = number;\n\nexport namespace WsResources {\n\n export interface WsResourcesPingRequest {\n\n }\n\n export interface WsResourcesPingResponse {\n\n }\n\n export interface ServiceQueryRequest {\n Type?: string;\n Name?: 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 Service {\n Name: string;\n Type: string;\n Port: unsignedInt;\n TLSSecure: boolean;\n }\n\n export interface Services {\n Service: Service[];\n }\n\n export interface ServiceQueryResponse {\n Exceptions: {\n Source: string;\n Exception: Exception[];\n };\n Services: {\n Service: Service[];\n };\n }\n\n export interface WebLinksQueryRequest {\n\n }\n\n export interface NamedValue {\n Name: string;\n Value: string;\n }\n\n export interface Annotations {\n NamedValue: NamedValue[];\n }\n\n export interface DiscoveredWebLink {\n ServiceName: string;\n NameSpace: string;\n Annotations: {\n NamedValue: NamedValue[];\n };\n }\n\n export interface DiscoveredWebLinks {\n DiscoveredWebLink: DiscoveredWebLink[];\n }\n\n export interface ConfiguredWebLink {\n Name: string;\n Description: string;\n URL: string;\n }\n\n export interface ConfiguredWebLinks {\n ConfiguredWebLink: ConfiguredWebLink[];\n }\n\n export interface WebLinksQueryResponse {\n Exceptions: Exceptions;\n DiscoveredWebLinks: {\n DiscoveredWebLink: DiscoveredWebLink[];\n };\n ConfiguredWebLinks: {\n ConfiguredWebLink: ConfiguredWebLink[];\n };\n }\n\n}\n\nexport class ResourcesServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsResources\", \"1.01\");\n }\n\n Ping(request: WsResources.WsResourcesPingRequest): Promise<WsResources.WsResourcesPingResponse> {\n return this._connection.send(\"Ping\", request);\n }\n\n ServiceQuery(request: WsResources.ServiceQueryRequest): Promise<WsResources.ServiceQueryResponse> {\n return this._connection.send(\"ServiceQuery\", request);\n }\n\n WebLinksQuery(request: WsResources.WebLinksQueryRequest): Promise<WsResources.WebLinksQueryResponse> {\n return this._connection.send(\"WebLinksQuery\", request);\n }\n\n}\n", "import { ResourcesServiceBase, WsResources } from \"./wsdl/WsResources/v1.01/WsResources.ts\";\n\nexport {\n type WsResources\n};\n\nexport class ResourcesService extends ResourcesServiceBase {\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsSasha {\r\n\r\n export type unsignedInt = number;\r\n\r\n export enum WUTypes {\r\n ECL = \"ECL\",\r\n DFU = \"DFU\"\r\n }\r\n\r\n export interface ArchiveWURequest {\r\n Wuid?: string;\r\n WUType?: WUTypes;\r\n DeleteOnSuccess?: boolean;\r\n }\r\n\r\n export interface Exception {\r\n Code: string;\r\n Audience: string;\r\n Source: string;\r\n Message: string;\r\n }\r\n\r\n export interface Exceptions {\r\n Source: string;\r\n Exception: Exception[];\r\n }\r\n\r\n export interface ResultResponse {\r\n Exceptions: Exceptions;\r\n Result: string;\r\n }\r\n\r\n export interface GetVersionRequest {\r\n\r\n }\r\n\r\n export interface ListWURequest {\r\n WUType?: WUTypes;\r\n Wuid?: string;\r\n Cluster?: string;\r\n Owner?: string;\r\n JobName?: string;\r\n State?: string;\r\n FromDate?: string;\r\n ToDate?: string;\r\n Archived?: boolean;\r\n Online?: boolean;\r\n IncludeDT?: boolean;\r\n BeforeWU?: string;\r\n AfterWU?: string;\r\n MaxNumberWUs?: unsignedInt;\r\n Descending?: boolean;\r\n OutputFields?: string;\r\n }\r\n\r\n export interface WSSashaPingRequest {\r\n\r\n }\r\n\r\n export interface WSSashaPingResponse {\r\n\r\n }\r\n\r\n export interface RestoreWURequest {\r\n Wuid?: string;\r\n WUType?: WUTypes;\r\n }\r\n\r\n}\r\n\r\nexport class SashaServiceBase extends Service {\r\n\r\n constructor(optsConnection: IOptions | IConnection) {\r\n super(optsConnection, \"WSSasha\", \"1.01\");\r\n }\r\n\r\n ArchiveWU(request: Partial<WsSasha.ArchiveWURequest>): Promise<WsSasha.ResultResponse> {\r\n return this._connection.send(\"ArchiveWU\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n GetVersion(request: Partial<WsSasha.GetVersionRequest>): Promise<WsSasha.ResultResponse> {\r\n return this._connection.send(\"GetVersion\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n ListWU(request: Partial<WsSasha.ListWURequest>): Promise<WsSasha.ResultResponse> {\r\n return this._connection.send(\"ListWU\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n Ping(request: Partial<WsSasha.WSSashaPingRequest>): Promise<WsSasha.WSSashaPingResponse> {\r\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WSSashaPingResponse\");\r\n }\r\n\r\n RestoreWU(request: Partial<WsSasha.RestoreWURequest>): Promise<WsSasha.ResultResponse> {\r\n return this._connection.send(\"RestoreWU\", request, \"json\", false, undefined, \"ResultResponse\");\r\n }\r\n\r\n}\r\n", "import { SashaServiceBase, WsSasha } from \"./wsdl/WsSasha/v1.01/WsSasha.ts\";\n\nexport {\n WsSasha\n};\n\nexport class SashaService extends SashaServiceBase {\n}", "import { timeParse } from \"d3-time-format\";\nimport { SMCServiceBase, WsSMC } from \"./wsdl/WsSMC/v1.28/WsSMC.ts\";\nimport { IOptions } from \"../connection.ts\";\n\nexport {\n WsSMC\n};\n\nconst dateParser = timeParse(\"%Y%m%d%H\");\n\nfunction isNumeric(value: any): boolean {\n return typeof value === \"number\" || (typeof value === \"string\" && value.trim() !== \"\" && !isNaN(+value));\n}\n\nexport interface NormalisedGlobalMetric {\n Category: string;\n Start: Date;\n End: Date;\n dimensions: { [key: string]: any };\n stats: { [key: string]: any };\n}\n\nexport class SMCService extends SMCServiceBase {\n\n connectionOptions(): IOptions {\n return this._connection.opts();\n }\n\n Activity(request: WsSMC.Activity): Promise<WsSMC.ActivityResponse> {\n return super.Activity(request).then(response => {\n return {\n Running: {\n ActiveWorkunit: []\n },\n ...response\n };\n });\n }\n\n protected parseGlobalMetric(name: string, value: any): any {\n // Known Prefixes: Cost, Critical, Definition, Disk, Distribute, Ecl, Enum, Id, Interface, Is, Library, Load, Match, Meta, Num, Original, Output, Patch, Per, Persist, Predicted, Record, Section, Service, Signed, Size, Source, Spill, Target, Time, Updated, When\n if (name.startsWith(\"Cost\")) {\n return +value / 1000000;\n } else if (name.startsWith(\"Date\")) {\n return dateParser(value);\n } else if (name.startsWith(\"Num\")) {\n return +value;\n } else if (name.startsWith(\"Time\")) {\n return +value / 1000000000;\n } else if (name.startsWith(\"When\")) {\n return new Date(+value / 1000).toISOString();\n } else if (isNumeric(value)) {\n return +value;\n }\n return value;\n }\n\n GetNormalisedGlobalMetrics(request: Partial<WsSMC.GetGlobalMetrics>): Promise<NormalisedGlobalMetric[]> {\n return super.GetGlobalMetrics(request).then(response => {\n const retVal: NormalisedGlobalMetric[] = [];\n for (const metric of response?.GlobalMetrics?.GlobalMetric || []) {\n const row: NormalisedGlobalMetric = {\n Category: metric.Category,\n Start: this.parseGlobalMetric(\"Date\", metric.DateTimeRange?.Start),\n End: this.parseGlobalMetric(\"Date\", metric.DateTimeRange?.End),\n dimensions: {},\n stats: {}\n };\n for (const dimension of metric.Dimensions?.Dimension || []) {\n row.dimensions[dimension.Name] = dimension.Value;\n }\n for (const stat of metric.Stats?.Stat || []) {\n row.stats[stat.Name] = this.parseGlobalMetric(stat.Name, stat.Value);\n }\n retVal.push(row);\n }\n return retVal;\n });\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsSMC {\n\n export type int = number;\n export type dateTime = string;\n export type unsignedInt = number;\n export type long = number;\n\n export enum LockModes {\n ALL = \"ALL\",\n READ = \"READ\",\n WRITE = \"WRITE\",\n HOLD = \"HOLD\",\n SUB = \"SUB\"\n }\n\n export enum RoxieControlCmdType {\n Attach = \"Attach\",\n Detach = \"Detach\",\n State = \"State\",\n Reload = \"Reload\",\n ReloadRetry = \"ReloadRetry\",\n MemLock = \"MemLock\",\n MemUnlock = \"MemUnlock\",\n GetMemLocked = \"GetMemLocked\"\n }\n\n export interface Activity {\n ChatURL: string;\n BannerContent: string;\n BannerColor: string;\n BannerSize: string;\n BannerScroll: string;\n BannerAction: int;\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: int;\n ClusterSize: int;\n ClusterStatus: int;\n }\n\n export interface ThorClusterList {\n TargetCluster: TargetCluster[];\n }\n\n export interface RoxieClusterList {\n TargetCluster: TargetCluster[];\n }\n\n export interface HThorClusterList {\n TargetCluster: TargetCluster[];\n }\n\n export interface DFUJob {\n TimeStarted: string;\n Done: int;\n Total: int;\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: int;\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: int;\n IsPausing: boolean;\n Warning: string;\n ClusterName: string;\n ClusterType: string;\n ClusterQueueName: string;\n TargetClusterName: string;\n NoAccess: boolean;\n }\n\n export interface Running {\n ActiveWorkunit: ActiveWorkunit[];\n }\n\n export interface Queues {\n ServerJobQueue: ServerJobQueue[];\n }\n\n export interface ServerJobQueue {\n QueueName: string;\n Queues: Queues;\n ServerName: string;\n ServerType: string;\n QueueStatus: string;\n StatusDetails: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface ServerJobQueues {\n ServerJobQueue: ServerJobQueue[];\n }\n\n export interface ActivityResponse {\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: int;\n ShowChatURL: int;\n SortBy: string;\n Descending: boolean;\n SuperUser: boolean;\n AccessRight: string;\n ServerJobQueues: ServerJobQueues;\n ActivityTime: string;\n DaliDetached: boolean;\n }\n\n export interface BrowseResources {\n\n }\n\n export interface HPCCResource {\n Name: string;\n Description: string;\n FileName: string;\n Version: string;\n }\n\n export interface HPCCResources {\n HPCCResource: HPCCResource[];\n }\n\n export interface HPCCResourceRepository {\n Name: string;\n Path: string;\n HPCCResources: HPCCResources;\n }\n\n export interface HPCCResourceRepositories {\n HPCCResourceRepository: HPCCResourceRepository[];\n }\n\n export interface BrowseResourcesResponse {\n Exceptions: Exceptions;\n PortalURL: string;\n ESPInstance: string;\n OS: int;\n UseResource: boolean;\n HPCCResourceRepositories: HPCCResourceRepositories;\n }\n\n export interface ClearQueue {\n Cluster: string;\n QueueName: string;\n Comment: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface TargetClusterInfo {\n ClusterName: string;\n QueueName: string;\n QueueStatus: string;\n StatusDetails: string;\n Warning: string;\n ClusterType: int;\n ClusterSize: int;\n ClusterStatus: int;\n }\n\n export interface ServerInfo {\n QueueName: string;\n Queues: Queues;\n ServerName: string;\n ServerType: string;\n QueueStatus: string;\n StatusDetails: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface Workunits {\n ActiveWorkunit: ActiveWorkunit[];\n }\n\n export interface StatusServerInfo {\n TargetClusterInfo: TargetClusterInfo;\n ServerInfo: ServerInfo;\n Workunits: Workunits;\n }\n\n export interface SMCQueueResponse {\n Exceptions: Exceptions;\n StatusServerInfo: StatusServerInfo;\n }\n\n export interface GetBuildInfo {\n\n }\n\n export interface NamedValue {\n Name: string;\n Value: string;\n }\n\n export interface BuildInfo {\n NamedValue: NamedValue[];\n }\n\n export interface GetBuildInfoResponse {\n Exceptions: Exceptions;\n BuildInfo: BuildInfo;\n }\n\n export interface Dimension {\n Name: string;\n Value: string;\n }\n\n export interface Dimensions {\n Dimension: Dimension[];\n }\n\n export interface DateTimeRange {\n Start: dateTime;\n End: dateTime;\n }\n\n export interface GetGlobalMetrics {\n Category: string;\n Dimensions: Dimensions;\n DateTimeRange: DateTimeRange;\n }\n\n export interface Dimensions2 {\n Dimension: Dimension[];\n }\n\n export interface Stat {\n Name: string;\n Value: string;\n }\n\n export interface Stats {\n Stat: Stat[];\n }\n\n export interface GlobalMetric {\n Category: string;\n Dimensions: Dimensions2;\n DateTimeRange: DateTimeRange;\n Stats: Stats;\n }\n\n export interface GlobalMetrics {\n GlobalMetric: GlobalMetric[];\n }\n\n export interface GetGlobalMetricsResponse {\n Exceptions: Exceptions;\n GlobalMetrics: GlobalMetrics;\n }\n\n export interface GetStatusServerInfo {\n ServerName: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface GetStatusServerInfoResponse {\n Exceptions: Exceptions;\n StatusServerInfo: StatusServerInfo;\n }\n\n export interface GetThorQueueAvailability {\n\n }\n\n export interface ThorCluster {\n ClusterName: string;\n QueueName: string;\n QueueStatus: string;\n QueueAvailable: int;\n JobsRunning: int;\n JobsInQueue: int;\n QueueStatus2: int;\n ThorLCR: string;\n ClusterSize: int;\n }\n\n export interface ThorClusters {\n ThorCluster: ThorCluster[];\n }\n\n export interface GetThorQueueAvailabilityResponse {\n Exceptions: Exceptions;\n ThorClusters: ThorClusters;\n }\n\n export interface Index {\n\n }\n\n export interface SMCIndexResponse {\n Exceptions: Exceptions;\n }\n\n export interface LockQuery {\n EPIP: string;\n XPath: string;\n DurationMSLow: unsignedInt;\n DurationMSHigh: unsignedInt;\n TimeLockedLow: string;\n TimeLockedHigh: string;\n Mode: LockModes;\n AllFileLocks: boolean;\n }\n\n export interface ModeNames {\n Item: string[];\n }\n\n export interface Lock {\n EPIP: string;\n XPath: string;\n LogicalFile: string;\n SessionID: long;\n DurationMS: unsignedInt;\n TimeLocked: string;\n Modes: string;\n ModeNames: ModeNames;\n }\n\n export interface Locks {\n Lock: Lock[];\n }\n\n export interface LockQueryResponse {\n Exceptions: Exceptions;\n Locks: Locks;\n NumLocks: int;\n }\n\n export interface MoveJobBack {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface SMCJobResponse {\n Exceptions: Exceptions;\n }\n\n export interface MoveJobDown {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface MoveJobFront {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface MoveJobUp {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface NotInCommunityEdition {\n EEPortal: string;\n }\n\n export interface NotInCommunityEditionResponse {\n Exceptions: Exceptions;\n }\n\n export interface PauseQueue {\n Cluster: string;\n QueueName: string;\n Comment: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface Ping {\n\n }\n\n export interface WsSMCPingResponse {\n\n }\n\n export interface RemoveJob {\n ClusterType: int;\n Cluster: string;\n QueueName: string;\n Wuid: string;\n }\n\n export interface ResumeQueue {\n Cluster: string;\n QueueName: string;\n Comment: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n export interface RoxieControlCmd {\n ProcessCluster: string;\n TargetCluster: string;\n Command: RoxieControlCmdType;\n Wait: int;\n }\n\n export interface Endpoint {\n Address: string;\n Attached: boolean;\n StateHash: string;\n Status: string;\n MemLocked: boolean;\n }\n\n export interface Endpoints {\n Endpoint: Endpoint[];\n }\n\n export interface RoxieControlCmdResponse {\n Exceptions: Exceptions;\n Endpoints: Endpoints;\n }\n\n export interface QueryIds {\n Item: string[];\n }\n\n export interface RoxieXrefCmd {\n RoxieCluster: string;\n QueryIds: QueryIds;\n CheckAllNodes: boolean;\n Wait: int;\n }\n\n export interface RoxieXrefCmdResponse {\n Exceptions: Exceptions;\n Result: string;\n }\n\n export interface SetBanner {\n ChatURL: string;\n BannerContent: string;\n BannerColor: string;\n BannerSize: string;\n BannerScroll: string;\n BannerAction: int;\n EnableChatURL: boolean;\n FromSubmitBtn: boolean;\n }\n\n export interface SetBannerResponse {\n Exceptions: Exceptions;\n }\n\n export interface SMCJob {\n Wuid: string;\n QueueName: string;\n }\n\n export interface SMCJobs {\n SMCJob: SMCJob[];\n }\n\n export interface SetJobPriority {\n QueueName: string;\n Wuid: string;\n Priority: string;\n SMCJobs: SMCJobs;\n }\n\n export interface SMCPriorityResponse {\n Exceptions: Exceptions;\n }\n\n export interface StopQueue {\n Cluster: string;\n QueueName: string;\n Comment: string;\n ServerType: string;\n NetworkAddress: string;\n Port: int;\n }\n\n}\n\nexport class SMCServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsSMC\", \"1.28\");\n }\n\n Activity(request: Partial<WsSMC.Activity>): Promise<WsSMC.ActivityResponse> {\n return this._connection.send(\"Activity\", request, \"json\", false, undefined, \"ActivityResponse\");\n }\n\n BrowseResources(request: Partial<WsSMC.BrowseResources>): Promise<WsSMC.BrowseResourcesResponse> {\n return this._connection.send(\"BrowseResources\", request, \"json\", false, undefined, \"BrowseResourcesResponse\");\n }\n\n ClearQueue(request: Partial<WsSMC.ClearQueue>): Promise<WsSMC.SMCQueueResponse> {\n return this._connection.send(\"ClearQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n }\n\n GetBuildInfo(request: Partial<WsSMC.GetBuildInfo>): Promise<WsSMC.GetBuildInfoResponse> {\n return this._connection.send(\"GetBuildInfo\", request, \"json\", false, undefined, \"GetBuildInfoResponse\");\n }\n\n GetGlobalMetrics(request: Partial<WsSMC.GetGlobalMetrics>): Promise<WsSMC.GetGlobalMetricsResponse> {\n return this._connection.send(\"GetGlobalMetrics\", request, \"json\", false, undefined, \"GetGlobalMetricsResponse\");\n }\n\n GetStatusServerInfo(request: Partial<WsSMC.GetStatusServerInfo>): Promise<WsSMC.GetStatusServerInfoResponse> {\n return this._connection.send(\"GetStatusServerInfo\", request, \"json\", false, undefined, \"GetStatusServerInfoResponse\");\n }\n\n GetThorQueueAvailability(request: Partial<WsSMC.GetThorQueueAvailability>): Promise<WsSMC.GetThorQueueAvailabilityResponse> {\n return this._connection.send(\"GetThorQueueAvailability\", request, \"json\", false, undefined, \"GetThorQueueAvailabilityResponse\");\n }\n\n Index(request: Partial<WsSMC.Index>): Promise<WsSMC.SMCIndexResponse> {\n return this._connection.send(\"Index\", request, \"json\", false, undefined, \"SMCIndexResponse\");\n }\n\n LockQuery(request: Partial<WsSMC.LockQuery>): Promise<WsSMC.LockQueryResponse> {\n return this._connection.send(\"LockQuery\", request, \"json\", false, undefined, \"LockQueryResponse\");\n }\n\n MoveJobBack(request: Partial<WsSMC.MoveJobBack>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"MoveJobBack\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n MoveJobDown(request: Partial<WsSMC.MoveJobDown>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"MoveJobDown\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n MoveJobFront(request: Partial<WsSMC.MoveJobFront>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"MoveJobFront\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n MoveJobUp(request: Partial<WsSMC.MoveJobUp>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"MoveJobUp\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n NotInCommunityEdition(request: Partial<WsSMC.NotInCommunityEdition>): Promise<WsSMC.NotInCommunityEditionResponse> {\n return this._connection.send(\"NotInCommunityEdition\", request, \"json\", false, undefined, \"NotInCommunityEditionResponse\");\n }\n\n PauseQueue(request: Partial<WsSMC.PauseQueue>): Promise<WsSMC.SMCQueueResponse> {\n return this._connection.send(\"PauseQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n }\n\n Ping(request: Partial<WsSMC.Ping>): Promise<WsSMC.WsSMCPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsSMCPingResponse\");\n }\n\n RemoveJob(request: Partial<WsSMC.RemoveJob>): Promise<WsSMC.SMCJobResponse> {\n return this._connection.send(\"RemoveJob\", request, \"json\", false, undefined, \"SMCJobResponse\");\n }\n\n ResumeQueue(request: Partial<WsSMC.ResumeQueue>): Promise<WsSMC.SMCQueueResponse> {\n return this._connection.send(\"ResumeQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n }\n\n RoxieControlCmd(request: Partial<WsSMC.RoxieControlCmd>): Promise<WsSMC.RoxieControlCmdResponse> {\n return this._connection.send(\"RoxieControlCmd\", request, \"json\", false, undefined, \"RoxieControlCmdResponse\");\n }\n\n RoxieXrefCmd(request: Partial<WsSMC.RoxieXrefCmd>): Promise<WsSMC.RoxieXrefCmdResponse> {\n return this._connection.send(\"RoxieXrefCmd\", request, \"json\", false, undefined, \"RoxieXrefCmdResponse\");\n }\n\n SetBanner(request: Partial<WsSMC.SetBanner>): Promise<WsSMC.SetBannerResponse> {\n return this._connection.send(\"SetBanner\", request, \"json\", false, undefined, \"SetBannerResponse\");\n }\n\n SetJobPriority(request: Partial<WsSMC.SetJobPriority>): Promise<WsSMC.SMCPriorityResponse> {\n return this._connection.send(\"SetJobPriority\", request, \"json\", false, undefined, \"SMCPriorityResponse\");\n }\n\n StopQueue(request: Partial<WsSMC.StopQueue>): Promise<WsSMC.SMCQueueResponse> {\n return this._connection.send(\"StopQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n }\n\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace Wsstore {\n\n export type int = number;\n\n export interface CreateStoreRequest {\n Name?: string;\n Type?: string;\n Description?: string;\n MaxValueSize?: int;\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 Success: 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 DeleteResponse {\n Exceptions: Exceptions;\n Success: boolean;\n }\n\n export interface DeleteNamespaceRequest {\n StoreName?: string;\n Namespace?: string;\n UserSpecific?: boolean;\n TargetUser?: string;\n }\n\n export interface DeleteNamespaceResponse {\n Exceptions: Exceptions;\n Success: boolean;\n }\n\n export interface FetchRequest {\n StoreName?: string;\n Namespace?: string;\n Key?: string;\n UserSpecific?: boolean;\n }\n\n export interface FetchResponse {\n Exceptions: Exceptions;\n Value: string;\n }\n\n export interface FetchAllRequest {\n StoreName?: string;\n Namespace?: string;\n UserSpecific?: boolean;\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 FetchKeyMDRequest {\n StoreName?: string;\n Namespace?: string;\n Key?: string;\n UserSpecific?: boolean;\n }\n\n export interface FetchKeyMDResponse {\n Exceptions: Exceptions;\n StoreName: string;\n Namespace: string;\n Key: string;\n Pairs: Pairs;\n }\n\n export interface ListKeysRequest {\n StoreName?: string;\n Namespace?: string;\n UserSpecific?: boolean;\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 ListNamespacesRequest {\n StoreName?: string;\n UserSpecific?: boolean;\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 ListStoresRequest {\n NameFilter?: string;\n TypeFilter?: string;\n OwnerFilter?: string;\n }\n\n export interface Store {\n Name: string;\n Type: string;\n Description: string;\n Owner: string;\n CreateTime: string;\n MaxValSize: string;\n IsDefault: boolean;\n }\n\n export interface Stores {\n Store: Store[];\n }\n\n export interface ListStoresResponse {\n Exceptions: Exceptions;\n Stores: Stores;\n }\n\n export interface wsstorePingRequest {\n\n }\n\n export interface wsstorePingResponse {\n\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 SetResponse {\n Exceptions: Exceptions;\n Success: boolean;\n }\n\n}\n\nexport class storeServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"wsstore\", \"1.02\");\n }\n\n CreateStore(request: Partial<Wsstore.CreateStoreRequest>): Promise<Wsstore.CreateStoreResponse> {\n return this._connection.send(\"CreateStore\", request, \"json\", false, undefined, \"CreateStoreResponse\");\n }\n\n Delete(request: Partial<Wsstore.DeleteRequest>): Promise<Wsstore.DeleteResponse> {\n return this._connection.send(\"Delete\", request, \"json\", false, undefined, \"DeleteResponse\");\n }\n\n DeleteNamespace(request: Partial<Wsstore.DeleteNamespaceRequest>): Promise<Wsstore.DeleteNamespaceResponse> {\n return this._connection.send(\"DeleteNamespace\", request, \"json\", false, undefined, \"DeleteNamespaceResponse\");\n }\n\n Fetch(request: Partial<Wsstore.FetchRequest>): Promise<Wsstore.FetchResponse> {\n return this._connection.send(\"Fetch\", request, \"json\", false, undefined, \"FetchResponse\");\n }\n\n FetchAll(request: Partial<Wsstore.FetchAllRequest>): Promise<Wsstore.FetchAllResponse> {\n return this._connection.send(\"FetchAll\", request, \"json\", false, undefined, \"FetchAllResponse\");\n }\n\n FetchKeyMetadata(request: Partial<Wsstore.FetchKeyMDRequest>): Promise<Wsstore.FetchKeyMDResponse> {\n return this._connection.send(\"FetchKeyMetadata\", request, \"json\", false, undefined, \"FetchKeyMDResponse\");\n }\n\n ListKeys(request: Partial<Wsstore.ListKeysRequest>): Promise<Wsstore.ListKeysResponse> {\n return this._connection.send(\"ListKeys\", request, \"json\", false, undefined, \"ListKeysResponse\");\n }\n\n ListNamespaces(request: Partial<Wsstore.ListNamespacesRequest>): Promise<Wsstore.ListNamespacesResponse> {\n return this._connection.send(\"ListNamespaces\", request, \"json\", false, undefined, \"ListNamespacesResponse\");\n }\n\n ListStores(request: Partial<Wsstore.ListStoresRequest>): Promise<Wsstore.ListStoresResponse> {\n return this._connection.send(\"ListStores\", request, \"json\", false, undefined, \"ListStoresResponse\");\n }\n\n Ping(request: Partial<Wsstore.wsstorePingRequest>): Promise<Wsstore.wsstorePingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"wsstorePingResponse\");\n }\n\n Set(request: Partial<Wsstore.SetRequest>): Promise<Wsstore.SetResponse> {\n return this._connection.send(\"Set\", request, \"json\", false, undefined, \"SetResponse\");\n }\n\n}\n", "import { storeServiceBase as StoreServiceBase, Wsstore as WsStore } from \"./wsdl/wsstore/v1.02/wsstore.ts\";\n\nexport { type WsStore };\n\nexport class StoreService extends StoreServiceBase {\n\n Delete(request: Partial<WsStore.DeleteRequest>): Promise<WsStore.DeleteResponse> {\n return super.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 Fetch(request: Partial<WsStore.FetchRequest>): Promise<WsStore.FetchResponse> {\n return super.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", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsTopology {\n\n export type int = number;\n export type base64Binary = string;\n export type unsignedInt = number;\n export type long = number;\n\n export enum TpConfigResponseFormat {\n XML = \"XML\",\n YAML = \"YAML\"\n }\n\n export enum RoxieQueueFilter {\n All = \"All\",\n QueriesOnly = \"QueriesOnly\",\n WorkunitsOnly = \"WorkunitsOnly\"\n }\n\n export enum TpMachineType {\n ALLNODES = \"ALLNODES\",\n THORMACHINES = \"THORMACHINES\",\n HOLEMACHINES = \"HOLEMACHINES\",\n ROXIEMACHINES = \"ROXIEMACHINES\",\n MACHINES = \"MACHINES\",\n AVAILABLEMACHINES = \"AVAILABLEMACHINES\",\n DROPZONE = \"DROPZONE\",\n STANDBYNNODE = \"STANDBYNNODE\",\n THORSPARENODES = \"THORSPARENODES\",\n HOLESTANDBYNODES = \"HOLESTANDBYNODES\"\n }\n\n export interface WsTopologyPingRequest {\n\n }\n\n export interface WsTopologyPingResponse {\n\n }\n\n export interface SystemLogRequest {\n Name?: string;\n Type?: string;\n Zip?: int;\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 SystemLogResponse {\n Exceptions: Exceptions;\n thefile: base64Binary;\n }\n\n export interface TpClusterInfoRequest {\n Name?: string;\n }\n\n export interface TpQueue {\n Name: string;\n WorkUnit: string;\n }\n\n export interface TpQueues {\n TpQueue: TpQueue[];\n }\n\n export interface TpClusterInfoResponse {\n Exceptions: Exceptions;\n Name: string;\n WorkUnit: string;\n TpQueues: TpQueues;\n }\n\n export interface TpClusterQueryRequest {\n Type?: string;\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: int;\n Path: string;\n Port: int;\n ProcessNumber: int;\n Channels: unsignedInt;\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: int;\n HasThorSpareProcess: boolean;\n TpMachines: TpMachines;\n }\n\n export interface TpClusters {\n TpCluster: TpCluster[];\n }\n\n export interface TpClusterQueryResponse {\n Exceptions: Exceptions;\n EnableSNMP: boolean;\n AcceptLanguage: string;\n TpClusters: TpClusters;\n }\n\n export interface ComponentNames {\n Item: string[];\n }\n\n export interface TpComponentConfigurationRequest {\n ComponentNames?: ComponentNames;\n }\n\n export interface Result {\n ComponentName: string;\n Configuration: string;\n }\n\n export interface Results {\n Result: Result[];\n }\n\n export interface TpComponentConfigurationResponse {\n Exceptions: Exceptions;\n ConfigFormat: TpConfigResponseFormat;\n Results: Results;\n }\n\n export interface TpConfiguredComponentsRequest {\n\n }\n\n export interface ConfiguredComponents {\n Item: string[];\n }\n\n export interface TpConfiguredComponentsResponse {\n Exceptions: Exceptions;\n ConfiguredComponents: ConfiguredComponents;\n }\n\n export interface TpDropZoneQueryRequest {\n Name?: string;\n ECLWatchVisibleOnly?: boolean;\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: TpMachines;\n }\n\n export interface TpDropZones {\n TpDropZone: TpDropZone[];\n }\n\n export interface TpDropZoneQueryResponse {\n Exceptions: Exceptions;\n TpDropZones: TpDropZones;\n }\n\n export interface TpGetComponentFileRequest {\n CompType?: string;\n CompName?: string;\n NetAddress?: string;\n Directory?: string;\n FileType?: string;\n OsType?: int;\n PlainText?: string;\n }\n\n export interface TpGetComponentFileResponse {\n Exceptions: Exceptions;\n FileContents: base64Binary;\n }\n\n export interface TpGetServicePluginsRequest {\n\n }\n\n export interface Plugin {\n ShortName: string;\n LongName: string;\n FolderName: string;\n WidgetName: string;\n }\n\n export interface Plugins {\n Plugin: Plugin[];\n }\n\n export interface TpGetServicePluginsResponse {\n Exceptions: Exceptions;\n Plugins: Plugins;\n }\n\n export interface TpGroupQueryRequest {\n Kind?: string;\n }\n\n export interface TpGroup {\n Name: string;\n Kind: string;\n ReplicateOutputs: boolean;\n }\n\n export interface TpGroups {\n TpGroup: TpGroup[];\n }\n\n export interface TpGroupQueryResponse {\n Exceptions: Exceptions;\n TpGroups: TpGroups;\n }\n\n export interface TpListLogFilesRequest {\n NetworkAddress?: string;\n Path?: string;\n }\n\n export interface LogFileStruct {\n Name: string;\n Path: string;\n Host: string;\n IsDir: boolean;\n FileSize: long;\n Modifiedtime: string;\n }\n\n export interface Files {\n LogFileStruct: LogFileStruct[];\n }\n\n export interface TpListLogFilesResponse {\n Exceptions: Exceptions;\n Files: Files;\n }\n\n export interface TpListTargetClustersRequest {\n\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 TpListTargetClustersResponse {\n Exceptions: Exceptions;\n TargetClusters: TargetClusters;\n }\n\n export interface TpLogFileRequest {\n Name?: string;\n Type?: string;\n LastHours?: int;\n StartDate?: string;\n EndDate?: string;\n FirstRows?: int;\n LastRows?: int;\n FilterType?: int;\n Reversely?: boolean;\n Zip?: boolean;\n PageNumber?: int;\n LoadData?: boolean;\n IncludeLogFieldNames?: boolean;\n }\n\n export interface LogFieldNames {\n Item: string[];\n }\n\n export interface TpLogFileResponse {\n Exceptions: Exceptions;\n Name: string;\n Type: string;\n StartDate: string;\n EndDate: string;\n LastHours: int;\n FirstRows: int;\n LastRows: int;\n Reversely: boolean;\n Zip: boolean;\n FilterType: int;\n LogData: string;\n HasDate: boolean;\n FileSize: long;\n PageFrom: long;\n PageTo: long;\n PageNumber: int;\n PrevPage: int;\n NextPage: int;\n TotalPages: int;\n AcceptLanguage: string;\n LogFieldNames: LogFieldNames;\n }\n\n export interface TpLogicalClusterQueryRequest {\n EclServerQueue?: string;\n RoxieQueueFilter?: RoxieQueueFilter;\n }\n\n export interface TpLogicalCluster {\n Name: string;\n Queue: string;\n LanguageVersion: string;\n Process: string;\n Type: string;\n QueriesOnly: boolean;\n }\n\n export interface TpLogicalClusters {\n TpLogicalCluster: TpLogicalCluster[];\n }\n\n export interface TpLogicalClusterQueryResponse {\n Exceptions: Exceptions;\n TpLogicalClusters: TpLogicalClusters;\n }\n\n export interface TpMachineInfoRequest {\n Name?: string;\n NetAddress?: string;\n }\n\n export interface MachineInfo {\n Name: string;\n Netaddress: string;\n ConfigNetaddress: string;\n Domain: string;\n Directory: string;\n Type: string;\n Available: string;\n OS: int;\n Path: string;\n Port: int;\n ProcessNumber: int;\n Channels: unsignedInt;\n }\n\n export interface TpMachineInfoResponse {\n Exceptions: Exceptions;\n MachineInfo: MachineInfo;\n }\n\n export interface TpMachineQueryRequest {\n Type?: TpMachineType;\n Cluster?: string;\n OldIP?: string;\n Path?: string;\n Directory?: string;\n LogDirectory?: string;\n }\n\n export interface TpMachineQueryResponse {\n Exceptions: Exceptions;\n EnablePreflightInfo: boolean;\n HasThorSpareProcess: boolean;\n Type: TpMachineType;\n Cluster: string;\n OldIP: string;\n LogDirectory: string;\n Path: string;\n MemThreshold: int;\n DiskThreshold: int;\n CpuThreshold: int;\n MemThresholdType: string;\n DiskThresholdType: string;\n PreflightProcessFilter: string;\n EnableSNMP: boolean;\n AcceptLanguage: string;\n TpMachines: TpMachines;\n }\n\n export interface TpServiceQueryRequest {\n Type?: string;\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 AuditLogDirectory: string;\n TpMachines: TpMachines;\n }\n\n export interface TpDalis {\n TpDali: TpDali[];\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: TpMachines;\n }\n\n export interface TpDfuServers {\n TpDfuServer: TpDfuServer[];\n }\n\n export interface TpDkcSlave {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpDkcSlaves {\n TpDkcSlave: TpDkcSlave[];\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: TpMachines;\n }\n\n export interface TpEclAgents {\n TpEclAgent: TpEclAgent[];\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: TpMachines;\n }\n\n export interface TpEclServers {\n TpEclServer: TpEclServer[];\n }\n\n export interface TpEclCCServers {\n TpEclServer: TpEclServer[];\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: TpMachines;\n }\n\n export interface TpEclSchedulers {\n TpEclScheduler: TpEclScheduler[];\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: TpMachines;\n TpBindings: TpBindings;\n }\n\n export interface TpEspServers {\n TpEspServer: TpEspServer[];\n }\n\n export interface TpFTSlave {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpFTSlaves {\n TpFTSlave: TpFTSlave[];\n }\n\n export interface TpGenesisServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpGenesisServers {\n TpGenesisServer: TpGenesisServer[];\n }\n\n export interface TpLdapServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpLdapServers {\n TpLdapServer: TpLdapServer[];\n }\n\n export interface TpMySqlServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpMySqlServers {\n TpMySqlServer: TpMySqlServer[];\n }\n\n export interface TpSashaServer {\n Name: string;\n Description: string;\n Build: string;\n Path: string;\n LogDirectory: string;\n TpMachines: TpMachines;\n }\n\n export interface TpSashaServers {\n TpSashaServer: TpSashaServer[];\n }\n\n export interface TpSparkThor {\n Name: string;\n Build: string;\n ThorClusterName: string;\n ThorPath: string;\n SparkExecutorCores: unsignedInt;\n SparkExecutorMemory: long;\n SparkMasterPort: unsignedInt;\n SparkMasterWebUIPort: unsignedInt;\n SparkWorkerCores: unsignedInt;\n SparkWorkerMemory: long;\n SparkWorkerPort: unsignedInt;\n LogDirectory: string;\n Path: string;\n TpMachines: TpMachines;\n }\n\n export interface TpSparkThors {\n TpSparkThor: TpSparkThor[];\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 TpSparkThors: TpSparkThors;\n }\n\n export interface TpServiceQueryResponse {\n Exceptions: Exceptions;\n MemThreshold: int;\n DiskThreshold: int;\n CpuThreshold: int;\n EncapsulatedSystem: boolean;\n EnableSNMP: boolean;\n PreflightProcessFilter: string;\n AcceptLanguage: string;\n MemThresholdType: string;\n DiskThresholdType: string;\n ServiceList: ServiceList;\n }\n\n export interface TpSetMachineStatusRequest {\n MachinePath?: string;\n StatusValue?: string;\n }\n\n export interface TpSetMachineStatusResponse {\n Exceptions: Exceptions;\n TpSetMachineStatusResult: boolean;\n }\n\n export interface TpSwapNodeRequest {\n Cluster?: string;\n OldIP?: string;\n NewIP?: string;\n }\n\n export interface TpSwapNodeResponse {\n Exceptions: Exceptions;\n TpSwapNodeResult: boolean;\n }\n\n export interface TpTargetClusterQueryRequest {\n Type?: string;\n Name?: string;\n ShowDetails?: boolean;\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 TpTargetClusterQueryResponse {\n Exceptions: Exceptions;\n ShowDetails: boolean;\n MemThreshold: int;\n DiskThreshold: int;\n CpuThreshold: int;\n MemThresholdType: string;\n DiskThresholdType: string;\n PreflightProcessFilter: string;\n AcceptLanguage: string;\n TpTargetClusters: TpTargetClusters;\n }\n\n export interface TpThorStatusRequest {\n Name?: string;\n }\n\n export interface TpThorStatusResponse {\n Exceptions: Exceptions;\n Name: string;\n Queue: string;\n Group: string;\n ThorMasterIPAddress: string;\n Port: int;\n StartTime: string;\n LogFile: string;\n Wuid: string;\n Graph: string;\n SubGraph: int;\n SubGraphDuration: int;\n AutoRefresh: int;\n }\n\n export interface TpXMLFileRequest {\n Name?: string;\n }\n\n export interface TpXMLFileResponse {\n Exceptions: Exceptions;\n thefile: base64Binary;\n }\n\n}\n\nexport class TopologyServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsTopology\", \"1.33\");\n }\n\n Ping(request: Partial<WsTopology.WsTopologyPingRequest>): Promise<WsTopology.WsTopologyPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsTopologyPingResponse\");\n }\n\n SystemLog(request: Partial<WsTopology.SystemLogRequest>): Promise<WsTopology.SystemLogResponse> {\n return this._connection.send(\"SystemLog\", request, \"json\", false, undefined, \"SystemLogResponse\");\n }\n\n TpClusterInfo(request: Partial<WsTopology.TpClusterInfoRequest>): Promise<WsTopology.TpClusterInfoResponse> {\n return this._connection.send(\"TpClusterInfo\", request, \"json\", false, undefined, \"TpClusterInfoResponse\");\n }\n\n TpClusterQuery(request: Partial<WsTopology.TpClusterQueryRequest>): Promise<WsTopology.TpClusterQueryResponse> {\n return this._connection.send(\"TpClusterQuery\", request, \"json\", false, undefined, \"TpClusterQueryResponse\");\n }\n\n TpComponentConfiguration(request: Partial<WsTopology.TpComponentConfigurationRequest>): Promise<WsTopology.TpComponentConfigurationResponse> {\n return this._connection.send(\"TpComponentConfiguration\", request, \"json\", false, undefined, \"TpComponentConfigurationResponse\");\n }\n\n TpConfiguredComponents(request: Partial<WsTopology.TpConfiguredComponentsRequest>): Promise<WsTopology.TpConfiguredComponentsResponse> {\n return this._connection.send(\"TpConfiguredComponents\", request, \"json\", false, undefined, \"TpConfiguredComponentsResponse\");\n }\n\n TpDropZoneQuery(request: Partial<WsTopology.TpDropZoneQueryRequest>): Promise<WsTopology.TpDropZoneQueryResponse> {\n return this._connection.send(\"TpDropZoneQuery\", request, \"json\", false, undefined, \"TpDropZoneQueryResponse\");\n }\n\n TpGetComponentFile(request: Partial<WsTopology.TpGetComponentFileRequest>): Promise<WsTopology.TpGetComponentFileResponse> {\n return this._connection.send(\"TpGetComponentFile\", request, \"json\", false, undefined, \"TpGetComponentFileResponse\");\n }\n\n TpGetServicePlugins(request: Partial<WsTopology.TpGetServicePluginsRequest>): Promise<WsTopology.TpGetServicePluginsResponse> {\n return this._connection.send(\"TpGetServicePlugins\", request, \"json\", false, undefined, \"TpGetServicePluginsResponse\");\n }\n\n TpGroupQuery(request: Partial<WsTopology.TpGroupQueryRequest>): Promise<WsTopology.TpGroupQueryResponse> {\n return this._connection.send(\"TpGroupQuery\", request, \"json\", false, undefined, \"TpGroupQueryResponse\");\n }\n\n TpListLogFiles(request: Partial<WsTopology.TpListLogFilesRequest>): Promise<WsTopology.TpListLogFilesResponse> {\n return this._connection.send(\"TpListLogFiles\", request, \"json\", false, undefined, \"TpListLogFilesResponse\");\n }\n\n TpListTargetClusters(request: Partial<WsTopology.TpListTargetClustersRequest>): Promise<WsTopology.TpListTargetClustersResponse> {\n return this._connection.send(\"TpListTargetClusters\", request, \"json\", false, undefined, \"TpListTargetClustersResponse\");\n }\n\n TpLogFile(request: Partial<WsTopology.TpLogFileRequest>): Promise<WsTopology.TpLogFileResponse> {\n return this._connection.send(\"TpLogFile\", request, \"json\", false, undefined, \"TpLogFileResponse\");\n }\n\n TpLogFileDisplay(request: Partial<WsTopology.TpLogFileRequest>): Promise<WsTopology.TpLogFileResponse> {\n return this._connection.send(\"TpLogFileDisplay\", request, \"json\", false, undefined, \"TpLogFileResponse\");\n }\n\n TpLogicalClusterQuery(request: Partial<WsTopology.TpLogicalClusterQueryRequest>): Promise<WsTopology.TpLogicalClusterQueryResponse> {\n return this._connection.send(\"TpLogicalClusterQuery\", request, \"json\", false, undefined, \"TpLogicalClusterQueryResponse\");\n }\n\n TpMachineInfo(request: Partial<WsTopology.TpMachineInfoRequest>): Promise<WsTopology.TpMachineInfoResponse> {\n return this._connection.send(\"TpMachineInfo\", request, \"json\", false, undefined, \"TpMachineInfoResponse\");\n }\n\n TpMachineQuery(request: Partial<WsTopology.TpMachineQueryRequest>): Promise<WsTopology.TpMachineQueryResponse> {\n return this._connection.send(\"TpMachineQuery\", request, \"json\", false, undefined, \"TpMachineQueryResponse\");\n }\n\n TpServiceQuery(request: Partial<WsTopology.TpServiceQueryRequest>): Promise<WsTopology.TpServiceQueryResponse> {\n return this._connection.send(\"TpServiceQuery\", request, \"json\", false, undefined, \"TpServiceQueryResponse\");\n }\n\n TpSetMachineStatus(request: Partial<WsTopology.TpSetMachineStatusRequest>): Promise<WsTopology.TpSetMachineStatusResponse> {\n return this._connection.send(\"TpSetMachineStatus\", request, \"json\", false, undefined, \"TpSetMachineStatusResponse\");\n }\n\n TpSwapNode(request: Partial<WsTopology.TpSwapNodeRequest>): Promise<WsTopology.TpSwapNodeResponse> {\n return this._connection.send(\"TpSwapNode\", request, \"json\", false, undefined, \"TpSwapNodeResponse\");\n }\n\n TpTargetClusterQuery(request: Partial<WsTopology.TpTargetClusterQueryRequest>): Promise<WsTopology.TpTargetClusterQueryResponse> {\n return this._connection.send(\"TpTargetClusterQuery\", request, \"json\", false, undefined, \"TpTargetClusterQueryResponse\");\n }\n\n TpThorStatus(request: Partial<WsTopology.TpThorStatusRequest>): Promise<WsTopology.TpThorStatusResponse> {\n return this._connection.send(\"TpThorStatus\", request, \"json\", false, undefined, \"TpThorStatusResponse\");\n }\n\n TpXMLFile(request: Partial<WsTopology.TpXMLFileRequest>): Promise<WsTopology.TpXMLFileResponse> {\n return this._connection.send(\"TpXMLFile\", request, \"json\", false, undefined, \"TpXMLFileResponse\");\n }\n\n}\n", "import { IOptions } from \"../connection.ts\";\nimport { TopologyServiceBase, WsTopology } from \"./wsdl/WsTopology/v1.33/WsTopology.ts\";\n\nexport {\n WsTopology\n};\n\nexport class TopologyService extends TopologyServiceBase {\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 DefaultTpLogicalClusterQuery(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.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", "import { deepMixin, xml2json, XMLNode } from \"@hpcc-js/util\";\nimport { WsWorkunits, WorkunitsServiceBase } from \"./wsdl/WsWorkunits/v2.02/WsWorkunits.ts\";\nimport { IConnection, IOptions } from \"../connection.ts\";\n\nexport {\n WsWorkunits\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 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}\nexport function isECLResult(_: any): _ is WsWorkunits.ECLResult {\n return typeof (_ as WsWorkunits.ECLResult).Name === \"string\";\n}\n\nexport function isWUQueryECLWorkunit(_: WsWorkunits.ECLWorkunit | WsWorkunits.Workunit): _ is WsWorkunits.ECLWorkunit {\n return (_ as WsWorkunits.ECLWorkunit).TotalClusterTime !== undefined;\n}\n\nexport function isWUInfoWorkunit(_: WsWorkunits.ECLWorkunit | WsWorkunits.Workunit): _ is WsWorkunits.Workunit {\n return (_ as WsWorkunits.Workunit).StateEx !== undefined;\n}\nexport class WorkunitsService extends WorkunitsServiceBase {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection);\n }\n\n Ping(): Promise<WsWorkunits.WsWorkunitsPingResponse> {\n return this._connection.send(\"Ping\", {}, \"json\", false, undefined, \"WsWorkunitsPingResponse\").then(() => {\n return { result: true };\n });\n }\n\n WUQuery(request: Partial<WsWorkunits.WUQuery> = {}, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryResponse> {\n return this._connection.send(\"WUQuery\", request, \"json\", false, abortSignal).then((response) => {\n return deepMixin({ Workunits: { ECLWorkunit: [] } }, response);\n });\n }\n\n WUInfo(_request: Partial<WsWorkunits.WUInfo>): Promise<WsWorkunits.WUInfoResponse> {\n const request: Partial<WsWorkunits.WUInfo> = {\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 IncludeECL: false,\n IncludeHelpers: false,\n IncludeAllowedClusters: false,\n IncludeTotalClusterTime: false,\n IncludeServiceNames: false,\n SuppressResultSchemas: true,\n ..._request\n };\n return super.WUInfo(request);\n }\n\n WUCreate(): Promise<WsWorkunits.WUCreateResponse> {\n return super.WUCreate({});\n }\n\n WUUpdate(request: Partial<WsWorkunits.WUUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\n return this._connection.send(\"WUUpdate\", request, \"json\", true);\n }\n\n WUResubmit(request: WsWorkunits.WUResubmit): Promise<WsWorkunits.WUResubmitResponse> {\n this._connection.toESPStringArray(request, \"Wuids\");\n return super.WUResubmit(request);\n }\n\n WUAction(request: Partial<WsWorkunits.WUAction>): Promise<WsWorkunits.WUActionResponse> {\n (request as any).ActionType = request.WUActionType; // v5.x compatibility\n return super.WUAction(request);\n }\n\n WUResult(request: Partial<WsWorkunits.WUResult>, abortSignal?: AbortSignal): Promise<WsWorkunits.WUResultResponse> {\n return this._connection.send(\"WUResult\", request, \"json\", false, abortSignal);\n }\n\n WUFileEx(request: Partial<WsWorkunits.WUFile>): Promise<string> {\n return this._connection.send(\"WUFile\", request, \"text\");\n }\n\n private _WUDetailsMetaPromise: Promise<WsWorkunits.WUDetailsMetaResponse>;\n WUDetailsMeta(request: WsWorkunits.WUDetailsMeta): Promise<WsWorkunits.WUDetailsMetaResponse> {\n if (!this._WUDetailsMetaPromise) {\n this._WUDetailsMetaPromise = super.WUDetailsMeta(request);\n }\n return this._WUDetailsMetaPromise;\n }\n\n WUCDebugEx(request: WsWorkunits.WUCDebug): Promise<XMLNode | null> {\n return this._connection.send(\"WUCDebug\", request, undefined, undefined, undefined, \"WUDebug\").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\nexport class WorkunitsServiceEx extends WorkunitsServiceBase {\n WUPublishWorkunitEx(request: Partial<WsWorkunits.WUPublishWorkunit>): Promise<WsWorkunits.WUPublishWorkunitResponse> {\n return this._connection.send(\"WUPublishWorkunit\", request);\n }\n}\n", "import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsWorkunits {\n\n export type int = number;\n export type double = number;\n export type long = number;\n export type nonNegativeInteger = number;\n export type uint64 = number;\n export type unsignedInt = number;\n export type base64Binary = string;\n export type dateTime = string;\n export type integer = number;\n\n export enum ECLWUActions {\n Abort = \"Abort\",\n Delete = \"Delete\",\n Deschedule = \"Deschedule\",\n Reschedule = \"Reschedule\",\n Pause = \"Pause\",\n PauseNow = \"PauseNow\",\n Protect = \"Protect\",\n Unprotect = \"Unprotect\",\n Restore = \"Restore\",\n Resume = \"Resume\",\n SetToFailed = \"SetToFailed\",\n Archive = \"Archive\"\n }\n\n export enum LogSelectColumnMode {\n MIN = 0,\n DEFAULT = 1,\n ALL = 2,\n CUSTOM = 3\n }\n\n export enum SortDirection {\n ASC = 0,\n DSC = 1\n }\n\n export enum LogEventClass {\n ALL = \"ALL\",\n DIS = \"DIS\",\n ERR = \"ERR\",\n WRN = \"WRN\",\n INF = \"INF\",\n PRO = \"PRO\",\n MET = \"MET\",\n EVT = \"EVT\"\n }\n\n export enum WUDetailsAttrValueType {\n Single = \"Single\",\n List = \"List\",\n Multi = \"Multi\"\n }\n\n export enum EclDefinitionActions {\n SyntaxCheck = \"SyntaxCheck\",\n Deploy = \"Deploy\",\n Publish = \"Publish\"\n }\n\n export enum ErrorMessageFormat {\n xml = \"xml\",\n json = \"json\",\n text = \"text\"\n }\n\n export enum LogAccessLogFormat {\n XML = 0,\n JSON = 1,\n CSV = 2\n }\n\n export enum WUExceptionSeverity {\n info = \"info\",\n warning = \"warning\",\n error = \"error\",\n alert = \"alert\"\n }\n\n export enum WUQueryFilterSuspendedType {\n Allqueries = \"All queries\",\n Notsuspended = \"Not suspended\",\n Suspended = \"Suspended\",\n Suspendedbyuser = \"Suspended by user\",\n Suspendedbyfirstnode = \"Suspended by first node\",\n Suspendedbyanynode = \"Suspended by any node\"\n }\n\n export enum WUQuerySetFilterType {\n All = \"All\",\n Id = \"Id\",\n Name = \"Name\",\n Alias = \"Alias\",\n Status = \"Status\"\n }\n\n export enum WUProtectFilter {\n All = \"All\",\n Protected = \"Protected\",\n NotProtected = \"NotProtected\"\n }\n\n export enum QuerySetAliasActionTypes {\n Deactivate = \"Deactivate\"\n }\n\n export enum QuerysetImportActivation {\n None = \"None\",\n ActivateImportedActive = \"ActivateImportedActive\"\n }\n\n export enum QuerySetQueryActionTypes {\n Suspend = \"Suspend\",\n Unsuspend = \"Unsuspend\",\n ToggleSuspend = \"ToggleSuspend\",\n Activate = \"Activate\",\n Delete = \"Delete\",\n DeleteQueriesAndWUs = \"DeleteQueriesAndWUs\",\n RemoveAllAliases = \"RemoveAllAliases\",\n ResetQueryStats = \"ResetQueryStats\"\n }\n\n export enum WUQueryActivationMode {\n DoNotActivateQuery = 0,\n ActivateQuery = 1,\n ActivateQuerySuspendPrevious = 2,\n ActivateQueryDeletePrevious = 3\n }\n\n export interface GVCAjaxGraph {\n Name: string;\n GraphName: string;\n SubGraphId: int;\n SubGraphOnly: boolean;\n }\n\n export interface GVCAjaxGraphResponse {\n Name: string;\n GraphName: string;\n GraphType: string;\n SubGraphId: int;\n SubGraphOnly: boolean;\n }\n\n export interface Ping {\n\n }\n\n export interface WsWorkunitsPingResponse {\n\n }\n\n export interface Wuids {\n Item: string[];\n }\n\n export interface WUAbort {\n Wuids: Wuids;\n BlockTillFinishTimer: int;\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 WUAbortResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults;\n }\n\n export interface WUAction {\n Wuids: Wuids;\n WUActionType: ECLWUActions;\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: string;\n PageSize: string;\n Sortby: string;\n Descending: boolean;\n EventServer: string;\n EventName: string;\n PageFrom: string;\n BlockTillFinishTimer: int;\n }\n\n export interface WUActionResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults;\n }\n\n export interface WUAddLocalFileToWorkunit {\n Wuid: string;\n Name: string;\n Val: string;\n DefVal: string;\n Type: int;\n Length: int;\n }\n\n export interface WUAddLocalFileToWorkunitResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Name: string;\n Result: string;\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 export interface WUAnalyseHotspot {\n Wuid: string;\n RootScope: string;\n OptOnlyActive: boolean;\n OnlyCriticalPath: boolean;\n IncludeProperties: boolean;\n IncludeStatistics: boolean;\n ThresholdPercent: double;\n PropertyOptions: PropertyOptions;\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 Note {\n Source: string;\n Message: string;\n ErrorCode: nonNegativeInteger;\n Severity: string;\n Cost: nonNegativeInteger;\n Id: uint64;\n }\n\n export interface Notes {\n Note: Note[];\n }\n\n export interface Activity {\n ScopeName: string;\n Id: string;\n ScopeType: string;\n Properties: Properties;\n Notes: Notes;\n SinkActivity: string;\n }\n\n export interface Activities {\n Activity: Activity[];\n }\n\n export interface Dependency {\n ScopeName: string;\n Id: string;\n ScopeType: string;\n Properties: Properties;\n Notes: Notes;\n SinkActivity: string;\n }\n\n export interface Dependencies {\n Dependency: Dependency[];\n }\n\n export interface WUAnalyseHotspotResponse {\n Exceptions: Exceptions;\n RootScope: string;\n RootTime: long;\n Activities: Activities;\n Dependencies: Dependencies;\n }\n\n export interface WUCDebug {\n Wuid: string;\n Command: string;\n }\n\n export interface WUDebugResponse {\n Exceptions: Exceptions;\n Result: string;\n }\n\n export interface WUCheckFeatures {\n IncludeFullVersion: boolean;\n }\n\n export interface Deployment {\n UseCompression: boolean;\n }\n\n export interface WUCheckFeaturesResponse {\n Exceptions: Exceptions;\n BuildVersionMajor: int;\n BuildVersionMinor: int;\n BuildVersionPoint: int;\n maxRequestEntityLength: unsignedInt;\n Deployment: Deployment;\n BuildVersion: string;\n BuildMaturity: string;\n BuildTagTimestamp: string;\n }\n\n export interface WUClusterJobQueueLOG {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n }\n\n export interface WUClusterJobQueueLOGResponse {\n Exceptions: Exceptions;\n thefile: base64Binary;\n }\n\n export interface WUClusterJobQueueXLS {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n ShowType: string;\n }\n\n export interface WUClusterJobQueueXLSResponse {\n Exceptions: Exceptions;\n Result: base64Binary;\n }\n\n export interface WUClusterJobSummaryXLS {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n ShowAll: boolean;\n BusinessStartTime: string;\n BusinessEndTime: string;\n }\n\n export interface WUClusterJobSummaryXLSResponse {\n Exceptions: Exceptions;\n Result: base64Binary;\n }\n\n export interface WUClusterJobXLS {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n ShowAll: boolean;\n BusinessStartTime: string;\n BusinessEndTime: string;\n }\n\n export interface WUClusterJobXLSResponse {\n Exceptions: Exceptions;\n Result: base64Binary;\n }\n\n export interface WUCompileECL {\n ECL: string;\n ModuleName: string;\n AttributeName: string;\n Queue: string;\n Cluster: string;\n Snapshot: string;\n IncludeDependencies: boolean;\n IncludeComplexity: boolean;\n TimeToWait: int;\n }\n\n export interface ECLException {\n Severity: string;\n Source: string;\n Code: int;\n Message: string;\n Column: int;\n LineNo: int;\n FileName: string;\n Activity: int;\n Scope: string;\n Priority: int;\n Cost: double;\n }\n\n export interface Errors {\n ECLException: ECLException[];\n }\n\n export interface ECLAttribute {\n ModuleName: string;\n AttributeName: string;\n IsLocked: boolean;\n IsCheckedOut: boolean;\n IsSandbox: boolean;\n IsOrphaned: boolean;\n }\n\n export interface Dependencies2 {\n ECLAttribute: ECLAttribute[];\n }\n\n export interface WUCompileECLResponse {\n Exceptions: Exceptions;\n Complexity: string;\n Errors: Errors;\n Dependencies: Dependencies2;\n }\n\n export interface WUCopyLogicalFiles {\n Wuid: string;\n Cluster: string;\n CopyLocal: boolean;\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 NotOnCluster {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\n }\n\n export interface Foreign {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\n }\n\n export interface NotFound {\n WULogicalFileCopyInfo: WULogicalFileCopyInfo[];\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 WUCopyLogicalFilesResponse {\n Exceptions: Exceptions;\n Wuid: string;\n ClusterFiles: ClusterFiles;\n }\n\n export interface WUCopyQuerySet {\n Source: string;\n Target: string;\n ActiveOnly: boolean;\n CloneActiveState: boolean;\n AllowForeignFiles: boolean;\n DfsServer: string;\n CopyFiles: boolean;\n OverwriteDfs: boolean;\n SourceProcess: string;\n UpdateSuperFiles: boolean;\n UpdateCloneFrom: boolean;\n AppendCluster: boolean;\n IncludeFileErrors: boolean;\n SourceSSL: boolean;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface CopiedQueries {\n QueryId: string[];\n }\n\n export interface ExistingQueries {\n QueryId: string[];\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 WUCopyQuerySetResponse {\n Exceptions: Exceptions;\n CopiedQueries: CopiedQueries;\n ExistingQueries: ExistingQueries;\n FileErrors: FileErrors;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUCreate {\n\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: long;\n PID: unsignedInt;\n minActivityId: unsignedInt;\n maxActivityId: unsignedInt;\n IsAvailable: boolean;\n }\n\n export interface Helpers {\n ECLHelpFile: ECLHelpFile[];\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: long;\n WhenStarted: string;\n WhenFinished: string;\n }\n\n export interface Graphs {\n ECLGraph: ECLGraph[];\n }\n\n export interface ECLSourceFiles {\n ECLSourceFile: ECLSourceFile[];\n }\n\n export interface ECLSourceFile {\n FileCluster: string;\n Name: string;\n IsSuperFile: boolean;\n Subs: int;\n Count: int;\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: int;\n isConditional: boolean;\n }\n\n export interface ECLSchemas {\n ECLSchemaItem: ECLSchemaItem[];\n }\n\n export interface ECLResult {\n Name: string;\n Sequence: int;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: long;\n ECLSchemas: ECLSchemas;\n XmlSchema: string;\n }\n\n export interface Results {\n ECLResult: ECLResult[];\n }\n\n export interface Variables {\n ECLResult: ECLResult[];\n }\n\n export interface ECLTimer {\n Name: string;\n Value: string;\n count: int;\n GraphName: string;\n SubGraphId: int;\n Timestamp: long;\n When: string;\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: int;\n CountRemaining: int;\n }\n\n export interface Workflows {\n ECLWorkflow: ECLWorkflow[];\n }\n\n export interface ECLTimingData {\n Name: string;\n GraphNum: int;\n SubGraphNum: int;\n GID: int;\n Min: int;\n MS: int;\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: int;\n }\n\n export interface ThorLogList {\n ThorLogInfo: ThorLogInfo[];\n }\n\n export interface ResourceURLs {\n URL: string[];\n }\n\n export interface ServiceNames {\n Item: string[];\n }\n\n export interface ECLWUProcess {\n Name: string;\n Type: string;\n PodName: string;\n InstanceNumber: int;\n Log: string;\n PID: string;\n Pattern: string;\n Max: int;\n }\n\n export interface ECLWUProcessList {\n ECLWUProcess: ECLWUProcess[];\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: int;\n State: string;\n StateEx: string;\n Description: string;\n Protected: boolean;\n Active: boolean;\n Action: int;\n ActionEx: string;\n DateTimeScheduled: dateTime;\n PriorityClass: int;\n PriorityLevel: int;\n Scope: string;\n Snapshot: string;\n ResultLimit: int;\n Archived: boolean;\n IsPausing: boolean;\n ThorLCR: boolean;\n EventSchedule: int;\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: int;\n WarningCount: int;\n InfoCount: int;\n AlertCount: int;\n GraphCount: int;\n SourceFileCount: int;\n ResultCount: int;\n VariableCount: int;\n TimerCount: int;\n HasDebugValue: boolean;\n ApplicationValueCount: int;\n XmlParams: string;\n AccessFlag: int;\n ClusterFlag: int;\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: int;\n ResourceURLCount: int;\n DebugValueCount: int;\n WorkflowCount: int;\n HelpersCount: int;\n ServiceNames: ServiceNames;\n ExecuteCost: double;\n FileAccessCost: double;\n CompileCost: double;\n NoAccess: boolean;\n ECLWUProcessList: ECLWUProcessList;\n }\n\n export interface WUCreateResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\n }\n\n export interface WUCreateAndUpdate {\n Wuid: string;\n State: int;\n StateOrig: int;\n Jobname: string;\n JobnameOrig: string;\n QueryText: string;\n Action: int;\n Description: string;\n DescriptionOrig: string;\n AddDrilldownFields: boolean;\n ResultLimit: int;\n Protected: boolean;\n ProtectedOrig: boolean;\n PriorityClass: int;\n PriorityLevel: int;\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 WUUpdateResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\n }\n\n export interface AbsoluteTimeRange {\n StartDate: dateTime;\n EndDate: dateTime;\n }\n\n export interface CustomColumns {\n Item: string[];\n }\n\n export interface ComponentsFilter {\n Item: string[];\n }\n\n export interface LogFilter {\n WildcardFilter: string;\n AbsoluteTimeRange: AbsoluteTimeRange;\n RelativeTimeRangeBuffer: unsignedInt;\n LineLimit: unsignedInt;\n LineStartFrom: long;\n SelectColumnMode: LogSelectColumnMode;\n CustomColumns: CustomColumns;\n ComponentsFilter: ComponentsFilter;\n Format: string;\n sortByTimeDirection: SortDirection;\n LogEventType: LogEventClass;\n }\n\n export interface WUCreateZAPInfo {\n Wuid: string;\n ESPApplication: string;\n ThorProcesses: string;\n BuildVersion: string;\n ProblemDescription: string;\n WhatChanged: string;\n WhereSlow: string;\n ZAPFileName: string;\n IncludeThorSlaveLog: string;\n ZAPPassword: string;\n SendEmail: boolean;\n AttachZAPReportToEmail: boolean;\n EmailFrom: string;\n EmailSubject: string;\n EmailBody: string;\n LogFilter: LogFilter;\n IncludeRelatedLogs: boolean;\n IncludePerComponentLogs: boolean;\n }\n\n export interface WUCreateZAPInfoResponse {\n Exceptions: Exceptions;\n thefile: base64Binary;\n ZAPFileName: string;\n }\n\n export interface WUDelete {\n Wuids: Wuids;\n BlockTillFinishTimer: int;\n }\n\n export interface WUDeleteResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults;\n }\n\n export interface NamedValue {\n Name: string;\n Value: string;\n }\n\n export interface DebugValues2 {\n NamedValue: NamedValue[];\n }\n\n export interface WUDeployWorkunit {\n Cluster: string;\n Name: string;\n Wait: int;\n ObjType: string;\n FileName: string;\n Object: base64Binary;\n ResultLimit: int;\n QueryMainDefinition: string;\n Snapshot: string;\n DebugValues: DebugValues2;\n Protect: boolean;\n }\n\n export interface WUDeployWorkunitResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\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: integer;\n Scopes: string[];\n Ids: string[];\n ScopeTypes: string[];\n PropertyFilters: PropertyFilters;\n }\n\n export interface NestedFilter {\n Depth: unsignedInt;\n ScopeTypes: string[];\n }\n\n export interface Extra {\n scopeType: string;\n Properties: string[];\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 AllNotes: boolean;\n MinVersion: uint64;\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 WUDetails {\n WUID: string;\n ScopeFilter: ScopeFilter;\n NestedFilter: NestedFilter;\n PropertiesToReturn: PropertiesToReturn;\n Filter: string;\n ScopeOptions: ScopeOptions;\n PropertyOptions: PropertyOptions;\n }\n\n export interface Scope {\n ScopeName: string;\n Id: string;\n ScopeType: string;\n Properties: Properties;\n Notes: Notes;\n SinkActivity: string;\n }\n\n export interface Scopes {\n Scope: Scope[];\n }\n\n export interface WUDetailsResponse {\n Exceptions: Exceptions;\n MaxVersion: uint64;\n WUID: string;\n Scopes: Scopes;\n }\n\n export interface WUDetailsMeta {\n\n }\n\n export interface Property2 {\n Name: string;\n ValueType: WUDetailsAttrValueType;\n Description: string;\n }\n\n export interface Properties2 {\n Property: Property2[];\n }\n\n export interface ScopeTypes {\n ScopeType: string[];\n }\n\n export interface Measures {\n Measure: string[];\n }\n\n export interface Activity2 {\n Kind: unsignedInt;\n Name: string;\n IsSink: boolean;\n IsSource: boolean;\n }\n\n export interface Activities2 {\n Activity: Activity2[];\n }\n\n export interface WUDetailsMetaResponse {\n Exceptions: Exceptions;\n Properties: Properties2;\n ScopeTypes: ScopeTypes;\n Measures: Measures;\n Activities: Activities2;\n }\n\n export interface EclDefinitions {\n Item: string[];\n }\n\n export interface WUEclDefinitionAction {\n EclDefinitions: EclDefinitions;\n ActionType: EclDefinitionActions;\n Target: string;\n RemoteDali: string;\n SourceProcess: string;\n Priority: string;\n Comment: string;\n MemoryLimit: string;\n DeletePrevious: boolean;\n SuspendPrevious: boolean;\n NoActivate: boolean;\n NoReload: boolean;\n DontCopyFiles: boolean;\n AllowForeign: boolean;\n UpdateDfs: boolean;\n UpdateSuperfiles: boolean;\n UpdateCloneFrom: boolean;\n DontAppendCluster: boolean;\n MsToWait: int;\n TimeLimit: int;\n WarnTimeLimit: int;\n DfuCopyFiles: boolean;\n DfuOverwrite: boolean;\n DfuQueue: string;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n }\n\n export interface WUEclDefinitionActionResult {\n EclDefinition: string;\n Action: string;\n WUID: string;\n QueryID: string;\n Result: string;\n }\n\n export interface ActionResults2 {\n WUEclDefinitionActionResult: WUEclDefinitionActionResult[];\n }\n\n export interface WUEclDefinitionActionResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults2;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUExport {\n Cluster: string;\n Owner: string;\n State: string;\n StartDate: string;\n EndDate: string;\n Jobname: string;\n }\n\n export interface WUExportResponse {\n Exceptions: Exceptions;\n ExportData: base64Binary;\n }\n\n export interface LogColumns {\n Item: string[];\n }\n\n export interface WUFile {\n Name: string;\n Wuid: string;\n Type: string;\n Option: int;\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: int;\n SizeLimit: long;\n ErrorMessageFormat: ErrorMessageFormat;\n PlainText: string;\n MaxLogRecords: unsignedInt;\n LogSelectColumnMode: LogSelectColumnMode;\n LogFormat: LogAccessLogFormat;\n LogSearchTimeBuffSecs: unsignedInt;\n LogColumns: LogColumns;\n }\n\n export interface WULogFileResponse {\n Exceptions: Exceptions;\n Wuid: string;\n QuerySet: string;\n QueryName: string;\n QueryId: string;\n FileName: string;\n DaliServer: string;\n thefile: base64Binary;\n }\n\n export interface WUFullResult {\n Wuid: string;\n NoRootTag: boolean;\n ExceptionSeverity: WUExceptionSeverity;\n }\n\n export interface WUFullResultResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Results: string;\n }\n\n export interface WUGVCGraphInfo {\n Wuid: string;\n Name: string;\n GID: string;\n BatchWU: int;\n SubgraphId: int;\n }\n\n export interface WUGVCGraphInfoResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Name: string;\n GID: string;\n Running: boolean;\n TheGraph: string;\n BatchWU: int;\n }\n\n export interface WUGetArchiveFile {\n WUID: string;\n ModuleName: string;\n FileName: string;\n Path: string;\n }\n\n export interface WUGetArchiveFileResponse {\n Exceptions: Exceptions;\n File: string;\n Message: string;\n }\n\n export interface WUGetDependancyTrees {\n Cluster: string;\n Queue: string;\n Snapshot: string;\n Items: string;\n TimeoutMilliSec: string;\n }\n\n export interface WUGetDependancyTreesResponse {\n Exceptions: Exceptions;\n Errors: Errors;\n DependancyTrees: base64Binary;\n }\n\n export interface WUGetGraph {\n Wuid: string;\n GraphName: string;\n SubGraphId: string;\n }\n\n export interface ECLGraphEx {\n Name: string;\n Label: string;\n Type: string;\n Graph: string;\n Running: boolean;\n RunningId: long;\n Complete: boolean;\n Failed: boolean;\n }\n\n export interface Graphs2 {\n ECLGraphEx: ECLGraphEx[];\n }\n\n export interface WUGetGraphResponse {\n Exceptions: Exceptions;\n Graphs: Graphs2;\n }\n\n export interface WUGetGraphNameAndTypes {\n Wuid: string;\n Type: string;\n }\n\n export interface GraphNameAndType {\n Name: string;\n Type: string;\n }\n\n export interface GraphNameAndTypes {\n GraphNameAndType: GraphNameAndType[];\n }\n\n export interface WUGetGraphNameAndTypesResponse {\n Exceptions: Exceptions;\n GraphNameAndTypes: GraphNameAndTypes;\n }\n\n export interface WUGetNumFileToCopy {\n ClusterName: string;\n TargetName: string;\n PageSize: long;\n PageStartFrom: long;\n Sortby: string;\n Descending: boolean;\n CacheHint: long;\n }\n\n export interface Endpoint {\n URL: string;\n Status: string;\n NumQueryFileToCopy: int;\n }\n\n export interface Endpoints {\n Endpoint: Endpoint[];\n }\n\n export interface WUGetNumFileToCopyResponse {\n Exceptions: Exceptions;\n Endpoints: Endpoints;\n CacheHint: long;\n Total: long;\n }\n\n export interface WUGetPlugins {\n\n }\n\n export interface Plugins {\n WUEclPluginsInFolder: WUEclPluginsInFolder[];\n }\n\n export interface WUEclPluginsInFolder {\n Path: string;\n Plugins: Plugins;\n }\n\n export interface WUGetPluginsResponse {\n Exceptions: Exceptions;\n Plugins: Plugins;\n }\n\n export interface WUGetStats {\n WUID: string;\n CreatorType: string;\n Creator: string;\n ScopeType: string;\n Scope: string;\n Kind: string;\n Measure: string;\n MinScopeDepth: unsignedInt;\n MaxScopeDepth: unsignedInt;\n IncludeGraphs: boolean;\n CreateDescriptions: boolean;\n MinValue: long;\n MaxValue: long;\n Filter: string;\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: long;\n Count: long;\n Max: long;\n Wuid: string;\n }\n\n export interface Statistics {\n WUStatisticItem: WUStatisticItem[];\n }\n\n export interface WUGetStatsResponse {\n Exceptions: Exceptions;\n WUID: string;\n Statistics: Statistics;\n }\n\n export interface WUGetThorJobList {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n MaxJobsToReturn: unsignedInt;\n }\n\n export interface ECLJob {\n Wuid: string;\n Graph: string;\n State: string;\n StartedDate: string;\n FinishedDate: string;\n Cluster: string;\n GraphNum: string;\n SubGraphNum: string;\n NumOfRuns: string;\n Duration: int;\n }\n\n export interface JobList {\n ECLJob: ECLJob[];\n }\n\n export interface InProgressJobList {\n ECLJob: ECLJob[];\n }\n\n export interface WUGetThorJobListResponse {\n Exceptions: Exceptions;\n JobList: JobList;\n InProgressJobList: InProgressJobList;\n Warning: string;\n }\n\n export interface WUGetThorJobQueue {\n Cluster: string;\n StartDate: string;\n EndDate: string;\n MaxJobQueueItemsToReturn: unsignedInt;\n }\n\n export interface ThorQueue {\n DT: string;\n RunningWUs: string;\n QueuedWUs: string;\n WaitingThors: string;\n ConnectedThors: string;\n IdledThors: string;\n RunningWU1: string;\n RunningWU2: string;\n }\n\n export interface QueueList {\n ThorQueue: ThorQueue[];\n }\n\n export interface WUGetThorJobQueueResponse {\n Exceptions: Exceptions;\n LongestQueue: int;\n MaxThorConnected: int;\n QueueList: QueueList;\n Warning: string;\n }\n\n export interface WUGetZAPInfo {\n WUID: string;\n }\n\n export interface WUGetZAPInfoResponse {\n Exceptions: Exceptions;\n WUID: string;\n ESPApplication: string;\n ThorProcesses: string;\n BuildVersion: string;\n Archive: string;\n EmailTo: string;\n EmailFrom: string;\n Message: string;\n IsContainerized: boolean;\n }\n\n export interface WUGraphInfo {\n Wuid: string;\n Name: string;\n GID: string;\n BatchWU: int;\n }\n\n export interface WUGraphInfoResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Name: string;\n GID: string;\n BatchWU: int;\n Running: boolean;\n }\n\n export interface WUGraphTiming {\n Wuid: string;\n }\n\n export interface WUGraphTimingResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\n }\n\n export interface WUInfo {\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 IncludeECL: boolean;\n IncludeHelpers: boolean;\n IncludeAllowedClusters: boolean;\n IncludeTotalClusterTime: boolean;\n IncludeServiceNames: boolean;\n IncludeProcesses: boolean;\n SuppressResultSchemas: boolean;\n ThorSlaveIP: string;\n }\n\n export interface ResultViews {\n View: string[];\n }\n\n export interface WUInfoResponse {\n Exceptions: Exceptions;\n Workunit: Workunit;\n AutoRefresh: int;\n CanCompile: boolean;\n ThorSlaveIP: string;\n ResultViews: ResultViews;\n SecMethod: string;\n }\n\n export interface WUInfoDetails {\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 IncludeECL: boolean;\n IncludeHelpers: boolean;\n IncludeAllowedClusters: boolean;\n IncludeTotalClusterTime: boolean;\n IncludeServiceNames: boolean;\n IncludeProcesses: boolean;\n SuppressResultSchemas: boolean;\n ThorSlaveIP: string;\n }\n\n export interface WUJobList {\n Cluster: string;\n Process: string;\n StartDate: string;\n EndDate: string;\n ShowAll: boolean;\n BusinessStartHour: int;\n BusinessEndHour: int;\n }\n\n export interface Jobs {\n ECLJob: ECLJob[];\n }\n\n export interface WUJobListResponse {\n Exceptions: Exceptions;\n StartDate: string;\n EndDate: string;\n Jobs: Jobs;\n }\n\n export interface WULightWeightQuery {\n Wuid: string;\n Type: string;\n Cluster: string;\n Owner: string;\n JobName: string;\n StartDate: string;\n EndDate: string;\n BeforeWU: string;\n AfterWU: string;\n State: string;\n ApplicationValues: ApplicationValues;\n PageStartFrom: long;\n PageSize: unsignedInt;\n SortBy: string;\n Descending: boolean;\n CacheHint: long;\n }\n\n export interface ECLWorkunitLW {\n Wuid: string;\n Owner: string;\n JobName: string;\n WuScope: string;\n ClusterName: string;\n State: int;\n StateDesc: string;\n Action: int;\n ActionDesc: string;\n Priority: int;\n PriorityDesc: string;\n PriorityLevel: int;\n IsProtected: boolean;\n DateTimeScheduled: dateTime;\n TotalClusterTime: unsignedInt;\n ApplicationValues: ApplicationValues;\n NoAccess: boolean;\n }\n\n export interface Workunits {\n ECLWorkunitLW: ECLWorkunitLW[];\n }\n\n export interface WULightWeightQueryResponse {\n Exceptions: Exceptions;\n NumWUs: int;\n CacheHint: long;\n Workunits: Workunits;\n }\n\n export interface WUListArchiveFiles {\n WUID: string;\n }\n\n export interface ArchiveModules {\n ArchiveModule: ArchiveModule[];\n }\n\n export interface File2 {\n Name: string;\n Key: string;\n SourcePath: string;\n Path: string;\n }\n\n export interface Files {\n File: File2[];\n }\n\n export interface ArchiveModule {\n Name: string;\n FullName: string;\n Flags: unsignedInt;\n Key: string;\n Plugin: string;\n SourcePath: string;\n Version: string;\n Path: string;\n ArchiveModules: ArchiveModules;\n Files: Files;\n }\n\n export interface WUListArchiveFilesResponse {\n Exceptions: Exceptions;\n ArchiveModules: ArchiveModules;\n Files: Files;\n Message: string;\n }\n\n export interface WUListLocalFileRequired {\n Wuid: string;\n }\n\n export interface LogicalFileUpload {\n Type: int;\n Source: string;\n Destination: string;\n EventTag: string;\n }\n\n export interface LocalFileUploads {\n LogicalFileUpload: LogicalFileUpload[];\n }\n\n export interface WUListLocalFileRequiredResponse {\n Exceptions: Exceptions;\n LocalFileUploads: LocalFileUploads;\n }\n\n export interface WUListQueries {\n QuerySetName: string;\n ClusterName: string;\n LibraryName: string;\n MemoryLimitLow: long;\n MemoryLimitHigh: long;\n TimeLimitLow: nonNegativeInteger;\n TimeLimitHigh: nonNegativeInteger;\n WarnTimeLimitLow: nonNegativeInteger;\n WarnTimeLimitHigh: nonNegativeInteger;\n PriorityLow: nonNegativeInteger;\n PriorityHigh: nonNegativeInteger;\n Activated: boolean;\n SuspendedFilter: WUQueryFilterSuspendedType;\n WUID: string;\n QueryID: string;\n QueryName: string;\n PublishedBy: string;\n PageSize: nonNegativeInteger;\n PageStartFrom: nonNegativeInteger;\n Sortby: string;\n Descending: boolean;\n CacheHint: long;\n FileName: string;\n CheckAllNodes: boolean;\n }\n\n export interface ClusterQueryState {\n Cluster: string;\n State: string;\n Errors: string;\n MixedNodeStates: boolean;\n }\n\n export interface Clusters2 {\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: Clusters2;\n memoryLimit: string;\n timeLimit: nonNegativeInteger;\n warnTimeLimit: nonNegativeInteger;\n priority: string;\n Comment: string;\n QuerySetId: string;\n IsLibrary: boolean;\n Activated: boolean;\n PublishedBy: string;\n snapshot: string;\n PriorityID: int;\n }\n\n export interface QuerysetQueries {\n QuerySetQuery: QuerySetQuery[];\n }\n\n export interface WUListQueriesResponse {\n Exceptions: Exceptions;\n NumberOfQueries: int;\n CacheHint: long;\n QuerysetQueries: QuerysetQueries;\n }\n\n export interface WUListQueriesUsingFile {\n Target: string;\n Process: string;\n FileName: string;\n }\n\n export interface QueryUsingFile {\n Id: string;\n Package: string;\n }\n\n export interface Queries {\n QueryUsingFile: QueryUsingFile[];\n }\n\n export interface TargetQueriesUsingFile {\n Target: string;\n PackageMap: string;\n Queries: Queries;\n }\n\n export interface Targets {\n TargetQueriesUsingFile: TargetQueriesUsingFile[];\n }\n\n export interface WUListQueriesUsingFileResponse {\n Exceptions: Exceptions;\n Process: string;\n FileName: string;\n Targets: Targets;\n }\n\n export interface WUMultiQuerysetDetails {\n ClusterName: string;\n QuerySetName: string;\n Filter: string;\n FilterType: WUQuerySetFilterType;\n CheckAllNodes: boolean;\n }\n\n export interface Queries2 {\n QuerySetQuery: QuerySetQuery[];\n }\n\n export interface QuerySetAlias {\n Id: string;\n Name: string;\n }\n\n export interface Aliases {\n QuerySetAlias: QuerySetAlias[];\n }\n\n export interface WUQuerySetDetail {\n QuerySetName: string;\n Queries: Queries2;\n Aliases: Aliases;\n }\n\n export interface Querysets {\n WUQuerySetDetail: WUQuerySetDetail[];\n }\n\n export interface WUMultiQuerySetDetailsResponse {\n Exceptions: Exceptions;\n ClusterName: string;\n Querysets: Querysets;\n }\n\n export interface WUProcessGraph {\n Wuid: string;\n Name: string;\n }\n\n export interface WUProcessGraphResponse {\n Exceptions: Exceptions;\n theGraph: string;\n }\n\n export interface WUProtect {\n Wuids: Wuids;\n Protect: boolean;\n }\n\n export interface WUProtectResponse {\n Exceptions: Exceptions;\n ActionResults: ActionResults;\n }\n\n export interface WUPublishWorkunit {\n Wuid: string;\n Cluster: string;\n QueryName: string;\n WorkUnitJobName: string;\n JobName: string;\n Activate: int;\n NotifyCluster: boolean;\n Wait: int;\n NoReload: boolean;\n UpdateWorkUnitName: boolean;\n memoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\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 IncludeFileErrors: boolean;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface WUPublishWorkunitResponse {\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 DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUPushEvent {\n EventName: string;\n EventText: string;\n }\n\n export interface WUPushEventResponse {\n Exceptions: Exceptions;\n }\n\n export interface WUQuery {\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: ApplicationValues;\n BeforeWU: string;\n AfterWU: string;\n TotalClusterTimeThresholdMilliSec: unsignedInt;\n Count: int;\n PageSize: long;\n PageStartFrom: long;\n PageEndAt: long;\n Protected: WUProtectFilter;\n MinimumExecuteCost: double;\n MinimumFileAccessCost: double;\n MinimumCompileCost: double;\n Sortby: string;\n Descending: boolean;\n CacheHint: long;\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: int;\n State: string;\n StateEx: string;\n Description: string;\n Protected: boolean;\n Active: boolean;\n Action: int;\n ActionEx: string;\n DateTimeScheduled: dateTime;\n PriorityClass: int;\n PriorityLevel: int;\n Scope: string;\n Snapshot: string;\n ResultLimit: int;\n Archived: boolean;\n IsPausing: boolean;\n ThorLCR: boolean;\n EventSchedule: int;\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: int;\n WarningCount: int;\n InfoCount: int;\n AlertCount: int;\n GraphCount: int;\n SourceFileCount: int;\n ResultCount: int;\n VariableCount: int;\n TimerCount: int;\n HasDebugValue: boolean;\n ApplicationValueCount: int;\n XmlParams: string;\n AccessFlag: int;\n ClusterFlag: int;\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: int;\n ResourceURLCount: int;\n DebugValueCount: int;\n WorkflowCount: int;\n HelpersCount: int;\n ServiceNames: ServiceNames;\n ExecuteCost: double;\n FileAccessCost: double;\n CompileCost: double;\n NoAccess: boolean;\n ECLWUProcessList: ECLWUProcessList;\n }\n\n export interface Workunits2 {\n ECLWorkunit: ECLWorkunit[];\n }\n\n export interface WUQueryResponse {\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: int;\n PageSize: long;\n PrevPage: long;\n NextPage: long;\n LastPage: long;\n NumWUs: int;\n First: boolean;\n PageStartFrom: long;\n PageEndAt: long;\n Sortby: string;\n Descending: boolean;\n BasicQuery: string;\n Filters: string;\n CacheHint: long;\n Workunits: Workunits2;\n }\n\n export interface WUQueryConfig {\n Target: string;\n QueryId: string;\n Wait: int;\n NoReload: boolean;\n memoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\n Priority: string;\n Comment: string;\n }\n\n export interface Result {\n QueryId: string;\n }\n\n export interface Results2 {\n Result: Result[];\n }\n\n export interface WUQueryConfigResponse {\n Exceptions: Exceptions;\n ReloadFailed: boolean;\n Results: Results2;\n }\n\n export interface WUQueryDetails {\n QueryId: string;\n QuerySet: string;\n IncludeStateOnClusters: boolean;\n IncludeSuperFiles: boolean;\n IncludeWsEclAddresses: boolean;\n CheckAllNodes: boolean;\n IncludeWUDetails: boolean;\n IncludeWUQueryFiles: boolean;\n }\n\n export interface LogicalFiles {\n Item: string[];\n }\n\n export interface SubFiles {\n File: string[];\n }\n\n export interface SuperFiles {\n SuperFile: SuperFile[];\n }\n\n export interface SuperFile {\n Name: string;\n SubFiles: SubFiles;\n SuperFiles: SuperFiles;\n }\n\n export interface LibrariesUsed {\n Item: string[];\n }\n\n export interface WsEclAddresses {\n Address: string[];\n }\n\n export interface WUGraphs {\n ECLGraph: ECLGraph[];\n }\n\n export interface WUTimers {\n ECLTimer: ECLTimer[];\n }\n\n export interface WUQueryDetailsResponse {\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: Clusters2;\n PublishedBy: string;\n Comment: string;\n LogicalFiles: LogicalFiles;\n SuperFiles: SuperFiles;\n IsLibrary: boolean;\n Priority: string;\n PriorityID: int;\n WUSnapShot: string;\n CompileTime: string;\n LibrariesUsed: LibrariesUsed;\n CountGraphs: int;\n ResourceURLCount: int;\n WsEclAddresses: WsEclAddresses;\n WUGraphs: WUGraphs;\n WUTimers: WUTimers;\n }\n\n export interface WUQueryDetailsLightWeight {\n QueryId: string;\n QuerySet: string;\n IncludeWUDetails: boolean;\n IncludeWUQueryFiles: boolean;\n IncludeSuperFiles: boolean;\n IncludeWsEclAddresses: boolean;\n IncludeStateOnClusters: boolean;\n CheckAllNodes: boolean;\n }\n\n export interface WUQueryFiles {\n Target: string;\n QueryId: string;\n }\n\n export interface File3 {\n FileName: string;\n FileSize: long;\n NumberOfParts: unsignedInt;\n }\n\n export interface Files2 {\n File: File3[];\n }\n\n export interface Query2 {\n QueryId: string;\n Files: Files2;\n SuperFiles: SuperFiles;\n }\n\n export interface Queries3 {\n Query: Query2[];\n }\n\n export interface WUQueryFilesResponse {\n Exceptions: Exceptions;\n Files: Files2;\n SuperFiles: SuperFiles;\n Queries: Queries3;\n }\n\n export interface WUQueryGetGraph {\n Target: string;\n QueryId: string;\n GraphName: string;\n SubGraphId: string;\n }\n\n export interface WUQueryGetGraphResponse {\n Exceptions: Exceptions;\n Graphs: Graphs2;\n }\n\n export interface WUQueryGetSummaryStats {\n Target: string;\n QueryId: string;\n FromTime: string;\n ToTime: string;\n IncludeRawStats: boolean;\n }\n\n export interface QuerySummaryStats {\n Endpoint: string;\n Status: string;\n StartTime: string;\n EndTime: string;\n CountTotal: int;\n CountFailed: int;\n AverageSlavesReplyLen: int;\n AverageBytesOut: long;\n SizeAvgPeakMemory: long;\n TimeAvgTotalExecuteMinutes: long;\n TimeMinTotalExecuteMinutes: long;\n TimeMaxTotalExecuteMinutes: long;\n Percentile97: long;\n Percentile97Estimate: boolean;\n }\n\n export interface StatsList {\n QuerySummaryStats: QuerySummaryStats[];\n }\n\n export interface AggregateQueryStatsList {\n QuerySummaryStats: QuerySummaryStats[];\n }\n\n export interface QueryStatsRecord {\n StartTime: string;\n ElapsedTimeMs: long;\n MemoryUsed: long;\n BytesOut: long;\n SlavesReplyLen: int;\n Failed: boolean;\n }\n\n export interface QueryStatsRecordList {\n QueryStatsRecord: QueryStatsRecord[];\n }\n\n export interface QueryStats {\n ID: string;\n AggregateQueryStatsList: AggregateQueryStatsList;\n QueryStatsRecordList: QueryStatsRecordList;\n }\n\n export interface QueryStatsList {\n EndpointQueryStats: EndpointQueryStats[];\n }\n\n export interface EndpointQueryStats {\n Endpoint: string;\n Status: string;\n QueryStatsList: QueryStatsList;\n }\n\n export interface WUQueryGetSummaryStatsResponse {\n Exceptions: Exceptions;\n StatsList: StatsList;\n QueryStatsList: QueryStatsList;\n }\n\n export interface Alias {\n Name: string;\n }\n\n export interface Aliases2 {\n Alias: Alias[];\n }\n\n export interface WUQuerysetAliasAction {\n Action: QuerySetAliasActionTypes;\n QuerySetName: string;\n Aliases: Aliases2;\n }\n\n export interface Result2 {\n Name: string;\n Success: boolean;\n Code: int;\n Message: string;\n }\n\n export interface Results3 {\n Result: Result2[];\n }\n\n export interface WUQuerySetAliasActionResponse {\n Exceptions: Exceptions;\n Action: QuerySetAliasActionTypes;\n QuerySetName: string;\n Results: Results3;\n }\n\n export interface WUQuerysetCopyQuery {\n Source: string;\n Target: string;\n Cluster: string;\n DaliServer: string;\n Activate: int;\n Overwrite: boolean;\n DontCopyFiles: boolean;\n Wait: int;\n NoReload: boolean;\n memoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\n priority: string;\n Comment: string;\n SourceProcess: string;\n DestName: string;\n AllowForeignFiles: boolean;\n UpdateSuperFiles: boolean;\n UpdateCloneFrom: boolean;\n AppendCluster: boolean;\n IncludeFileErrors: boolean;\n SourceSSL: boolean;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface WUQuerySetCopyQueryResponse {\n Exceptions: Exceptions;\n QueryId: string;\n FileErrors: FileErrors;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUQuerysetDetails {\n QuerySetName: string;\n Filter: string;\n ClusterName: string;\n FilterType: WUQuerySetFilterType;\n CheckAllNodes: boolean;\n }\n\n export interface QuerysetAliases {\n QuerySetAlias: QuerySetAlias[];\n }\n\n export interface ClusterNames {\n Item: string[];\n }\n\n export interface WUQuerySetDetailsResponse {\n Exceptions: Exceptions;\n QuerySetName: string;\n QuerysetQueries: QuerysetQueries;\n QuerysetAliases: QuerysetAliases;\n ClusterName: string;\n Filter: string;\n FilterType: WUQuerySetFilterType;\n ClusterNames: ClusterNames;\n }\n\n export interface WUQuerysetExport {\n Target: string;\n Compress: boolean;\n ActiveOnly: boolean;\n Protect: boolean;\n }\n\n export interface WUQuerysetExportResponse {\n Exceptions: Exceptions;\n Target: string;\n Compressed: boolean;\n Data: base64Binary;\n }\n\n export interface WUQuerysetImport {\n Target: string;\n QueryMask: string;\n Replace: boolean;\n ActiveOnly: boolean;\n Activation: QuerysetImportActivation;\n Compressed: boolean;\n Data: base64Binary;\n AllowForeignFiles: boolean;\n DfsServer: string;\n CopyFiles: boolean;\n OverwriteDfs: boolean;\n SourceProcess: string;\n UpdateSuperFiles: boolean;\n UpdateCloneFrom: boolean;\n AppendCluster: boolean;\n IncludeFileErrors: boolean;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface ImportedQueries {\n QueryId: string[];\n }\n\n export interface MissingWuids {\n QueryId: string[];\n }\n\n export interface WUQuerysetImportResponse {\n Exceptions: Exceptions;\n Target: string;\n ClearedExisting: boolean;\n Success: boolean;\n ImportedQueries: ImportedQueries;\n ExistingQueries: ExistingQueries;\n MissingWuids: MissingWuids;\n FileErrors: FileErrors;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface ClientState {\n Suspended: string;\n }\n\n export interface Query3 {\n QueryId: string;\n Activated: boolean;\n SuspendedByUser: boolean;\n ClientState: ClientState;\n }\n\n export interface Queries4 {\n Query: Query3[];\n }\n\n export interface WUQuerysetQueryAction {\n Action: QuerySetQueryActionTypes;\n QuerySetName: string;\n Queries: Queries4;\n }\n\n export interface Result3 {\n QueryId: string;\n WUID: string;\n Suspended: boolean;\n Success: boolean;\n Code: int;\n Message: string;\n }\n\n export interface Results4 {\n Result: Result3[];\n }\n\n export interface WUQuerySetQueryActionResponse {\n Exceptions: Exceptions;\n Action: QuerySetQueryActionTypes;\n QuerySetName: string;\n Results: Results4;\n }\n\n export interface WUQuerysets {\n test: boolean;\n }\n\n export interface QuerySet {\n QuerySetName: string;\n }\n\n export interface Querysets2 {\n QuerySet: QuerySet[];\n }\n\n export interface WUQuerysetsResponse {\n Exceptions: Exceptions;\n Querysets: Querysets2;\n }\n\n export interface WURecreateQuery {\n Target: string;\n QueryId: string;\n DebugValues: DebugValues2;\n DestTarget: string;\n Republish: boolean;\n Activate: WUQueryActivationMode;\n NoReload: boolean;\n MemoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\n Priority: string;\n Comment: string;\n RemoteDali: string;\n DontCopyFiles: boolean;\n SourceProcess: string;\n AllowForeignFiles: boolean;\n UpdateDfs: boolean;\n UpdateSuperFiles: boolean;\n UpdateCloneFrom: boolean;\n AppendCluster: boolean;\n IncludeFileErrors: boolean;\n Wait: int;\n DfuCopyFiles: boolean;\n DfuQueue: string;\n DfuWait: nonNegativeInteger;\n DfuOverwrite: boolean;\n OnlyCopyFiles: boolean;\n StopIfFilesCopied: boolean;\n DfuPublisherWuid: string;\n RemoteStorage: string;\n KeyCompression: string;\n }\n\n export interface WURecreateQueryResponse {\n Exceptions: Exceptions;\n Wuid: string;\n QuerySet: string;\n QueryName: string;\n QueryId: string;\n MemoryLimit: string;\n TimeLimit: nonNegativeInteger;\n WarnTimeLimit: nonNegativeInteger;\n Priority: string;\n Comment: string;\n ReloadFailed: boolean;\n Suspended: boolean;\n ErrorMessage: string;\n FileErrors: FileErrors;\n DfuPublisherWuid: string;\n DfuPublisherState: string;\n }\n\n export interface WUResubmit {\n Wuids: Wuids;\n BlockTillFinishTimer: int;\n ResetWorkflow: boolean;\n CloneWorkunit: boolean;\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 WUResubmitResponse {\n Exceptions: Exceptions;\n WUs: WUs;\n }\n\n export interface FilterBy {\n NamedValue: NamedValue[];\n }\n\n export interface WUResult {\n Wuid: string;\n Sequence: int;\n ResultName: string;\n LogicalName: string;\n Cluster: string;\n SuppressXmlSchema: boolean;\n BypassCachedResult: boolean;\n FilterBy: FilterBy;\n Start: long;\n Count: int;\n }\n\n export interface WUResultResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Sequence: int;\n LogicalName: string;\n Cluster: string;\n Name: string;\n Start: long;\n Requested: int;\n Count: int;\n Total: long;\n Result: string;\n }\n\n export interface WUResultBin {\n LogicalName: string;\n Wuid: string;\n ResultName: string;\n Sequence: int;\n Format: string;\n Cluster: string;\n FilterBy: FilterBy;\n Start: long;\n Count: int;\n }\n\n export interface WUResultBinResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Sequence: int;\n Name: string;\n Start: long;\n Count: int;\n Requested: int;\n Total: long;\n Result: base64Binary;\n Format: string;\n }\n\n export interface WUResultSummary {\n Wuid: string;\n Sequence: int;\n }\n\n export interface Result4 {\n Name: string;\n Sequence: int;\n Value: string;\n Link: string;\n FileName: string;\n IsSupplied: boolean;\n ShowFileContent: boolean;\n Total: long;\n ECLSchemas: ECLSchemas;\n XmlSchema: string;\n }\n\n export interface WUResultSummaryResponse {\n Exceptions: Exceptions;\n Wuid: string;\n Sequence: int;\n Format: int;\n Result: Result4;\n }\n\n export interface WUResultView {\n Wuid: string;\n ViewName: string;\n Sequence: int;\n ResultName: string;\n }\n\n export interface WUResultViewResponse {\n Exceptions: Exceptions;\n Wuid: string;\n ViewName: string;\n Result: string;\n }\n\n export interface Variables2 {\n NamedValue: NamedValue[];\n }\n\n export interface WURun {\n QuerySet: string;\n Query: string;\n Wuid: string;\n CloneWorkunit: boolean;\n Cluster: string;\n Wait: int;\n Input: string;\n NoRootTag: boolean;\n DebugValues: DebugValues2;\n Variables: Variables2;\n ApplicationValues: ApplicationValues;\n ExceptionSeverity: WUExceptionSeverity;\n }\n\n export interface WURunResponse {\n Exceptions: Exceptions;\n Wuid: string;\n State: string;\n Results: string;\n }\n\n export interface WUSchedule {\n Wuid: string;\n Cluster: string;\n Queue: string;\n Snapshot: string;\n When: dateTime;\n MaxRunTime: int;\n }\n\n export interface WUScheduleResponse {\n Exceptions: Exceptions;\n }\n\n export interface WUShowScheduled {\n Cluster: string;\n EventName: string;\n PushEventName: string;\n PushEventText: string;\n State: string;\n JobName: string;\n Owner: string;\n EventText: string;\n }\n\n export interface ServerInfo {\n Name: string;\n NetAddress: string;\n }\n\n export interface Clusters3 {\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: int;\n State: string;\n Owner: string;\n }\n\n export interface Workunits3 {\n ScheduledWU: ScheduledWU[];\n }\n\n export interface WUShowScheduledResponse {\n Exceptions: Exceptions;\n ClusterSelected: int;\n EventName: string;\n PushEventName: string;\n PushEventText: string;\n Query: string;\n Clusters: Clusters3;\n Workunits: Workunits3;\n }\n\n export interface WUSubmit {\n Wuid: string;\n Cluster: string;\n Queue: string;\n Snapshot: string;\n MaxRunTime: int;\n MaxCost: int;\n BlockTillFinishTimer: int;\n SyntaxCheck: boolean;\n NotifyCluster: boolean;\n }\n\n export interface WUSubmitResponse {\n Exceptions: Exceptions;\n }\n\n export interface WUSyntaxCheckECL {\n ECL: string;\n ModuleName: string;\n AttributeName: string;\n Queue: string;\n Cluster: string;\n Snapshot: string;\n TimeToWait: int;\n PersistWorkunit: boolean;\n DebugValues: DebugValues;\n }\n\n export interface WUSyntaxCheckResponse {\n Exceptions: Exceptions;\n Errors: Errors;\n Message: string;\n }\n\n export interface WUUpdate {\n Wuid: string;\n State: int;\n StateOrig: int;\n Jobname: string;\n JobnameOrig: string;\n QueryText: string;\n Action: int;\n Description: string;\n DescriptionOrig: string;\n AddDrilldownFields: boolean;\n ResultLimit: int;\n Protected: boolean;\n ProtectedOrig: boolean;\n PriorityClass: int;\n PriorityLevel: int;\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 WUUpdateQueryEntry {\n QuerySet: string;\n QueryId: string;\n Comment: string;\n }\n\n export interface WUUpdateQueryEntryResponse {\n Exceptions: Exceptions;\n }\n\n export interface WUWaitCompiled {\n Wuid: string;\n Wait: int;\n ReturnOnWait: boolean;\n }\n\n export interface WUWaitResponse {\n Exceptions: Exceptions;\n StateID: int;\n }\n\n export interface WUWaitComplete {\n Wuid: string;\n Wait: int;\n ReturnOnWait: boolean;\n }\n\n}\n\nexport class WorkunitsServiceBase extends Service {\n\n constructor(optsConnection: IOptions | IConnection) {\n super(optsConnection, \"WsWorkunits\", \"2.02\");\n }\n\n GVCAjaxGraph(request: Partial<WsWorkunits.GVCAjaxGraph>): Promise<WsWorkunits.GVCAjaxGraphResponse> {\n return this._connection.send(\"GVCAjaxGraph\", request, \"json\", false, undefined, \"GVCAjaxGraphResponse\");\n }\n\n Ping(request: Partial<WsWorkunits.Ping>): Promise<WsWorkunits.WsWorkunitsPingResponse> {\n return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsWorkunitsPingResponse\");\n }\n\n WUAbort(request: Partial<WsWorkunits.WUAbort>): Promise<WsWorkunits.WUAbortResponse> {\n return this._connection.send(\"WUAbort\", request, \"json\", false, undefined, \"WUAbortResponse\");\n }\n\n WUAction(request: Partial<WsWorkunits.WUAction>): Promise<WsWorkunits.WUActionResponse> {\n return this._connection.send(\"WUAction\", request, \"json\", false, undefined, \"WUActionResponse\");\n }\n\n WUAddLocalFileToWorkunit(request: Partial<WsWorkunits.WUAddLocalFileToWorkunit>): Promise<WsWorkunits.WUAddLocalFileToWorkunitResponse> {\n return this._connection.send(\"WUAddLocalFileToWorkunit\", request, \"json\", false, undefined, \"WUAddLocalFileToWorkunitResponse\");\n }\n\n WUAnalyseHotspot(request: Partial<WsWorkunits.WUAnalyseHotspot>): Promise<WsWorkunits.WUAnalyseHotspotResponse> {\n return this._connection.send(\"WUAnalyseHotspot\", request, \"json\", false, undefined, \"WUAnalyseHotspotResponse\");\n }\n\n WUCDebug(request: Partial<WsWorkunits.WUCDebug>): Promise<WsWorkunits.WUDebugResponse> {\n return this._connection.send(\"WUCDebug\", request, \"json\", false, undefined, \"WUDebugResponse\");\n }\n\n WUCheckFeatures(request: Partial<WsWorkunits.WUCheckFeatures>): Promise<WsWorkunits.WUCheckFeaturesResponse> {\n return this._connection.send(\"WUCheckFeatures\", request, \"json\", false, undefined, \"WUCheckFeaturesResponse\");\n }\n\n WUClusterJobQueueLOG(request: Partial<WsWorkunits.WUClusterJobQueueLOG>): Promise<WsWorkunits.WUClusterJobQueueLOGResponse> {\n return this._connection.send(\"WUClusterJobQueueLOG\", request, \"json\", false, undefined, \"WUClusterJobQueueLOGResponse\");\n }\n\n WUClusterJobQueueXLS(request: Partial<WsWorkunits.WUClusterJobQueueXLS>): Promise<WsWorkunits.WUClusterJobQueueXLSResponse> {\n return this._connection.send(\"WUClusterJobQueueXLS\", request, \"json\", false, undefined, \"WUClusterJobQueueXLSResponse\");\n }\n\n WUClusterJobSummaryXLS(request: Partial<WsWorkunits.WUClusterJobSummaryXLS>): Promise<WsWorkunits.WUClusterJobSummaryXLSResponse> {\n return this._connection.send(\"WUClusterJobSummaryXLS\", request, \"json\", false, undefined, \"WUClusterJobSummaryXLSResponse\");\n }\n\n WUClusterJobXLS(request: Partial<WsWorkunits.WUClusterJobXLS>): Promise<WsWorkunits.WUClusterJobXLSResponse> {\n return this._connection.send(\"WUClusterJobXLS\", request, \"json\", false, undefined, \"WUClusterJobXLSResponse\");\n }\n\n WUCompileECL(request: Partial<WsWorkunits.WUCompileECL>): Promise<WsWorkunits.WUCompileECLResponse> {\n return this._connection.send(\"WUCompileECL\", request, \"json\", false, undefined, \"WUCompileECLResponse\");\n }\n\n WUCopyLogicalFiles(request: Partial<WsWorkunits.WUCopyLogicalFiles>): Promise<WsWorkunits.WUCopyLogicalFilesResponse> {\n return this._connection.send(\"WUCopyLogicalFiles\", request, \"json\", false, undefined, \"WUCopyLogicalFilesResponse\");\n }\n\n WUCopyQuerySet(request: Partial<WsWorkunits.WUCopyQuerySet>): Promise<WsWorkunits.WUCopyQuerySetResponse> {\n return this._connection.send(\"WUCopyQuerySet\", request, \"json\", false, undefined, \"WUCopyQuerySetResponse\");\n }\n\n WUCreate(request: Partial<WsWorkunits.WUCreate>): Promise<WsWorkunits.WUCreateResponse> {\n return this._connection.send(\"WUCreate\", request, \"json\", false, undefined, \"WUCreateResponse\");\n }\n\n WUCreateAndUpdate(request: Partial<WsWorkunits.WUCreateAndUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\n return this._connection.send(\"WUCreateAndUpdate\", request, \"json\", false, undefined, \"WUUpdateResponse\");\n }\n\n WUCreateZAPInfo(request: Partial<WsWorkunits.WUCreateZAPInfo>): Promise<WsWorkunits.WUCreateZAPInfoResponse> {\n return this._connection.send(\"WUCreateZAPInfo\", request, \"json\", false, undefined, \"WUCreateZAPInfoResponse\");\n }\n\n WUDelete(request: Partial<WsWorkunits.WUDelete>): Promise<WsWorkunits.WUDeleteResponse> {\n return this._connection.send(\"WUDelete\", request, \"json\", false, undefined, \"WUDeleteResponse\");\n }\n\n WUDeployWorkunit(request: Partial<WsWorkunits.WUDeployWorkunit>): Promise<WsWorkunits.WUDeployWorkunitResponse> {\n return this._connection.send(\"WUDeployWorkunit\", request, \"json\", false, undefined, \"WUDeployWorkunitResponse\");\n }\n\n WUDetails(request: Partial<WsWorkunits.WUDetails>): Promise<WsWorkunits.WUDetailsResponse> {\n return this._connection.send(\"WUDetails\", request, \"json\", false, undefined, \"WUDetailsResponse\");\n }\n\n WUDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta>): Promise<WsWorkunits.WUDetailsMetaResponse> {\n return this._connection.send(\"WUDetailsMeta\", request, \"json\", false, undefined, \"WUDetailsMetaResponse\");\n }\n\n WUEclDefinitionAction(request: Partial<WsWorkunits.WUEclDefinitionAction>): Promise<WsWorkunits.WUEclDefinitionActionResponse> {\n return this._connection.send(\"WUEclDefinitionAction\", request, \"json\", false, undefined, \"WUEclDefinitionActionResponse\");\n }\n\n WUExport(request: Partial<WsWorkunits.WUExport>): Promise<WsWorkunits.WUExportResponse> {\n return this._connection.send(\"WUExport\", request, \"json\", false, undefined, \"WUExportResponse\");\n }\n\n WUFile(request: Partial<WsWorkunits.WUFile>): Promise<WsWorkunits.WULogFileResponse> {\n return this._connection.send(\"WUFile\", request, \"json\", false, undefined, \"WULogFileResponse\");\n }\n\n WUFullResult(request: Partial<WsWorkunits.WUFullResult>): Promise<WsWorkunits.WUFullResultResponse> {\n return this._connection.send(\"WUFullResult\", request, \"json\", false, undefined, \"WUFullResultResponse\");\n }\n\n WUGVCGraphInfo(request: Partial<WsWorkunits.WUGVCGraphInfo>): Promise<WsWorkunits.WUGVCGraphInfoResponse> {\n return this._connection.send(\"WUGVCGraphInfo\", request, \"json\", false, undefined, \"WUGVCGraphInfoResponse\");\n }\n\n WUGetArchiveFile(request: Partial<WsWorkunits.WUGetArchiveFile>): Promise<WsWorkunits.WUGetArchiveFileResponse> {\n return this._connection.send(\"WUGetArchiveFile\", request, \"json\", false, undefined, \"WUGetArchiveFileResponse\");\n }\n\n WUGetDependancyTrees(request: Partial<WsWorkunits.WUGetDependancyTrees>): Promise<WsWorkunits.WUGetDependancyTreesResponse> {\n return this._connection.send(\"WUGetDependancyTrees\", request, \"json\", false, undefined, \"WUGetDependancyTreesResponse\");\n }\n\n WUGetGraph(request: Partial<WsWorkunits.WUGetGraph>): Promise<WsWorkunits.WUGetGraphResponse> {\n return this._connection.send(\"WUGetGraph\", request, \"json\", false, undefined, \"WUGetGraphResponse\");\n }\n\n WUGetGraphNameAndTypes(request: Partial<WsWorkunits.WUGetGraphNameAndTypes>): Promise<WsWorkunits.WUGetGraphNameAndTypesResponse> {\n return this._connection.send(\"WUGetGraphNameAndTypes\", request, \"json\", false, undefined, \"WUGetGraphNameAndTypesResponse\");\n }\n\n WUGetNumFileToCopy(request: Partial<WsWorkunits.WUGetNumFileToCopy>): Promise<WsWorkunits.WUGetNumFileToCopyResponse> {\n return this._connection.send(\"WUGetNumFileToCopy\", request, \"json\", false, undefined, \"WUGetNumFileToCopyResponse\");\n }\n\n WUGetPlugins(request: Partial<WsWorkunits.WUGetPlugins>): Promise<WsWorkunits.WUGetPluginsResponse> {\n return this._connection.send(\"WUGetPlugins\", request, \"json\", false, undefined, \"WUGetPluginsResponse\");\n }\n\n WUGetStats(request: Partial<WsWorkunits.WUGetStats>): Promise<WsWorkunits.WUGetStatsResponse> {\n return this._connection.send(\"WUGetStats\", request, \"json\", false, undefined, \"WUGetStatsResponse\");\n }\n\n WUGetThorJobList(request: Partial<WsWorkunits.WUGetThorJobList>): Promise<WsWorkunits.WUGetThorJobListResponse> {\n return this._connection.send(\"WUGetThorJobList\", request, \"json\", false, undefined, \"WUGetThorJobListResponse\");\n }\n\n WUGetThorJobQueue(request: Partial<WsWorkunits.WUGetThorJobQueue>): Promise<WsWorkunits.WUGetThorJobQueueResponse> {\n return this._connection.send(\"WUGetThorJobQueue\", request, \"json\", false, undefined, \"WUGetThorJobQueueResponse\");\n }\n\n WUGetZAPInfo(request: Partial<WsWorkunits.WUGetZAPInfo>): Promise<WsWorkunits.WUGetZAPInfoResponse> {\n return this._connection.send(\"WUGetZAPInfo\", request, \"json\", false, undefined, \"WUGetZAPInfoResponse\");\n }\n\n WUGraphInfo(request: Partial<WsWorkunits.WUGraphInfo>): Promise<WsWorkunits.WUGraphInfoResponse> {\n return this._connection.send(\"WUGraphInfo\", request, \"json\", false, undefined, \"WUGraphInfoResponse\");\n }\n\n WUGraphTiming(request: Partial<WsWorkunits.WUGraphTiming>): Promise<WsWorkunits.WUGraphTimingResponse> {\n return this._connection.send(\"WUGraphTiming\", request, \"json\", false, undefined, \"WUGraphTimingResponse\");\n }\n\n WUInfo(request: Partial<WsWorkunits.WUInfo>): Promise<WsWorkunits.WUInfoResponse> {\n return this._connection.send(\"WUInfo\", request, \"json\", false, undefined, \"WUInfoResponse\");\n }\n\n WUInfoDetails(request: Partial<WsWorkunits.WUInfoDetails>): Promise<WsWorkunits.WUInfoResponse> {\n return this._connection.send(\"WUInfoDetails\", request, \"json\", false, undefined, \"WUInfoResponse\");\n }\n\n WUJobList(request: Partial<WsWorkunits.WUJobList>): Promise<WsWorkunits.WUJobListResponse> {\n return this._connection.send(\"WUJobList\", request, \"json\", false, undefined, \"WUJobListResponse\");\n }\n\n WULightWeightQuery(request: Partial<WsWorkunits.WULightWeightQuery>): Promise<WsWorkunits.WULightWeightQueryResponse> {\n return this._connection.send(\"WULightWeightQuery\", request, \"json\", false, undefined, \"WULightWeightQueryResponse\");\n }\n\n WUListArchiveFiles(request: Partial<WsWorkunits.WUListArchiveFiles>): Promise<WsWorkunits.WUListArchiveFilesResponse> {\n return this._connection.send(\"WUListArchiveFiles\", request, \"json\", false, undefined, \"WUListArchiveFilesResponse\");\n }\n\n WUListLocalFileRequired(request: Partial<WsWorkunits.WUListLocalFileRequired>): Promise<WsWorkunits.WUListLocalFileRequiredResponse> {\n return this._connection.send(\"WUListLocalFileRequired\", request, \"json\", false, undefined, \"WUListLocalFileRequiredResponse\");\n }\n\n WUListQueries(request: Partial<WsWorkunits.WUListQueries>): Promise<WsWorkunits.WUListQueriesResponse> {\n return this._connection.send(\"WUListQueries\", request, \"json\", false, undefined, \"WUListQueriesResponse\");\n }\n\n WUListQueriesUsingFile(request: Partial<WsWorkunits.WUListQueriesUsingFile>): Promise<WsWorkunits.WUListQueriesUsingFileResponse> {\n return this._connection.send(\"WUListQueriesUsingFile\", request, \"json\", false, undefined, \"WUListQueriesUsingFileResponse\");\n }\n\n WUMultiQuerysetDetails(request: Partial<WsWorkunits.WUMultiQuerysetDetails>): Promise<WsWorkunits.WUMultiQuerySetDetailsResponse> {\n return this._connection.send(\"WUMultiQuerysetDetails\", request, \"json\", false, undefined, \"WUMultiQuerySetDetailsResponse\");\n }\n\n WUProcessGraph(request: Partial<WsWorkunits.WUProcessGraph>): Promise<WsWorkunits.WUProcessGraphResponse> {\n return this._connection.send(\"WUProcessGraph\", request, \"json\", false, undefined, \"WUProcessGraphResponse\");\n }\n\n WUProtect(request: Partial<WsWorkunits.WUProtect>): Promise<WsWorkunits.WUProtectResponse> {\n return this._connection.send(\"WUProtect\", request, \"json\", false, undefined, \"WUProtectResponse\");\n }\n\n WUPublishWorkunit(request: Partial<WsWorkunits.WUPublishWorkunit>): Promise<WsWorkunits.WUPublishWorkunitResponse> {\n return this._connection.send(\"WUPublishWorkunit\", request, \"json\", false, undefined, \"WUPublishWorkunitResponse\");\n }\n\n WUPushEvent(request: Partial<WsWorkunits.WUPushEvent>): Promise<WsWorkunits.WUPushEventResponse> {\n return this._connection.send(\"WUPushEvent\", request, \"json\", false, undefined, \"WUPushEventResponse\");\n }\n\n WUQuery(request: Partial<WsWorkunits.WUQuery>): Promise<WsWorkunits.WUQueryResponse> {\n return this._connection.send(\"WUQuery\", request, \"json\", false, undefined, \"WUQueryResponse\");\n }\n\n WUQueryConfig(request: Partial<WsWorkunits.WUQueryConfig>): Promise<WsWorkunits.WUQueryConfigResponse> {\n return this._connection.send(\"WUQueryConfig\", request, \"json\", false, undefined, \"WUQueryConfigResponse\");\n }\n\n WUQueryDetails(request: Partial<WsWorkunits.WUQueryDetails>): Promise<WsWorkunits.WUQueryDetailsResponse> {\n return this._connection.send(\"WUQueryDetails\", request, \"json\", false, undefined, \"WUQueryDetailsResponse\");\n }\n\n WUQueryDetailsLightWeight(request: Partial<WsWorkunits.WUQueryDetailsLightWeight>): Promise<WsWorkunits.WUQueryDetailsResponse> {\n return this._connection.send(\"WUQueryDetailsLightWeight\", request, \"json\", false, undefined, \"WUQueryDetailsResponse\");\n }\n\n WUQueryFiles(request: Partial<WsWorkunits.WUQueryFiles>): Promise<WsWorkunits.WUQueryFilesResponse> {\n return this._connection.send(\"WUQueryFiles\", request, \"json\", false, undefined, \"WUQueryFilesResponse\");\n }\n\n WUQueryGetGraph(request: Partial<WsWorkunits.WUQueryGetGraph>): Promise<WsWorkunits.WUQueryGetGraphResponse> {\n return this._connection.send(\"WUQueryGetGraph\", request, \"json\", false, undefined, \"WUQueryGetGraphResponse\");\n }\n\n WUQueryGetSummaryStats(request: Partial<WsWorkunits.WUQueryGetSummaryStats>): Promise<WsWorkunits.WUQueryGetSummaryStatsResponse> {\n return this._connection.send(\"WUQueryGetSummaryStats\", request, \"json\", false, undefined, \"WUQueryGetSummaryStatsResponse\");\n }\n\n WUQuerysetAliasAction(request: Partial<WsWorkunits.WUQuerysetAliasAction>): Promise<WsWorkunits.WUQuerySetAliasActionResponse> {\n return this._connection.send(\"WUQuerysetAliasAction\", request, \"json\", false, undefined, \"WUQuerySetAliasActionResponse\");\n }\n\n WUQuerysetCopyQuery(request: Partial<WsWorkunits.WUQuerysetCopyQuery>): Promise<WsWorkunits.WUQuerySetCopyQueryResponse> {\n return this._connection.send(\"WUQuerysetCopyQuery\", request, \"json\", false, undefined, \"WUQuerySetCopyQueryResponse\");\n }\n\n WUQuerysetDetails(request: Partial<WsWorkunits.WUQuerysetDetails>): Promise<WsWorkunits.WUQuerySetDetailsResponse> {\n return this._connection.send(\"WUQuerysetDetails\", request, \"json\", false, undefined, \"WUQuerySetDetailsResponse\");\n }\n\n WUQuerysetExport(request: Partial<WsWorkunits.WUQuerysetExport>): Promise<WsWorkunits.WUQuerysetExportResponse> {\n return this._connection.send(\"WUQuerysetExport\", request, \"json\", false, undefined, \"WUQuerysetExportResponse\");\n }\n\n WUQuerysetImport(request: Partial<WsWorkunits.WUQuerysetImport>): Promise<WsWorkunits.WUQuerysetImportResponse> {\n return this._connection.send(\"WUQuerysetImport\", request, \"json\", false, undefined, \"WUQuerysetImportResponse\");\n }\n\n WUQuerysetQueryAction(request: Partial<WsWorkunits.WUQuerysetQueryAction>): Promise<WsWorkunits.WUQuerySetQueryActionResponse> {\n return this._connection.send(\"WUQuerysetQueryAction\", request, \"json\", false, undefined, \"WUQuerySetQueryActionResponse\");\n }\n\n WUQuerysets(request: Partial<WsWorkunits.WUQuerysets>): Promise<WsWorkunits.WUQuerysetsResponse> {\n return this._connection.send(\"WUQuerysets\", request, \"json\", false, undefined, \"WUQuerysetsResponse\");\n }\n\n WURecreateQuery(request: Partial<WsWorkunits.WURecreateQuery>): Promise<WsWorkunits.WURecreateQueryResponse> {\n return this._connection.send(\"WURecreateQuery\", request, \"json\", false, undefined, \"WURecreateQueryResponse\");\n }\n\n WUResubmit(request: Partial<WsWorkunits.WUResubmit>): Promise<WsWorkunits.WUResubmitResponse> {\n return this._connection.send(\"WUResubmit\", request, \"json\", false, undefined, \"WUResubmitResponse\");\n }\n\n WUResult(request: Partial<WsWorkunits.WUResult>): Promise<WsWorkunits.WUResultResponse> {\n return this._connection.send(\"WUResult\", request, \"json\", false, undefined, \"WUResultResponse\");\n }\n\n WUResultBin(request: Partial<WsWorkunits.WUResultBin>): Promise<WsWorkunits.WUResultBinResponse> {\n return this._connection.send(\"WUResultBin\", request, \"json\", false, undefined, \"WUResultBinResponse\");\n }\n\n WUResultSummary(request: Partial<WsWorkunits.WUResultSummary>): Promise<WsWorkunits.WUResultSummaryResponse> {\n return this._connection.send(\"WUResultSummary\", request, \"json\", false, undefined, \"WUResultSummaryResponse\");\n }\n\n WUResultView(request: Partial<WsWorkunits.WUResultView>): Promise<WsWorkunits.WUResultViewResponse> {\n return this._connection.send(\"WUResultView\", request, \"json\", false, undefined, \"WUResultViewResponse\");\n }\n\n WURun(request: Partial<WsWorkunits.WURun>): Promise<WsWorkunits.WURunResponse> {\n return this._connection.send(\"WURun\", request, \"json\", false, undefined, \"WURunResponse\");\n }\n\n WUSchedule(request: Partial<WsWorkunits.WUSchedule>): Promise<WsWorkunits.WUScheduleResponse> {\n return this._connection.send(\"WUSchedule\", request, \"json\", false, undefined, \"WUScheduleResponse\");\n }\n\n WUShowScheduled(request: Partial<WsWorkunits.WUShowScheduled>): Promise<WsWorkunits.WUShowScheduledResponse> {\n return this._connection.send(\"WUShowScheduled\", request, \"json\", false, undefined, \"WUShowScheduledResponse\");\n }\n\n WUSubmit(request: Partial<WsWorkunits.WUSubmit>): Promise<WsWorkunits.WUSubmitResponse> {\n return this._connection.send(\"WUSubmit\", request, \"json\", false, undefined, \"WUSubmitResponse\");\n }\n\n WUSyntaxCheckECL(request: Partial<WsWorkunits.WUSyntaxCheckECL>): Promise<WsWorkunits.WUSyntaxCheckResponse> {\n return this._connection.send(\"WUSyntaxCheckECL\", request, \"json\", false, undefined, \"WUSyntaxCheckResponse\");\n }\n\n WUUpdate(request: Partial<WsWorkunits.WUUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\n return this._connection.send(\"WUUpdate\", request, \"json\", false, undefined, \"WUUpdateResponse\");\n }\n\n WUUpdateQueryEntry(request: Partial<WsWorkunits.WUUpdateQueryEntry>): Promise<WsWorkunits.WUUpdateQueryEntryResponse> {\n return this._connection.send(\"WUUpdateQueryEntry\", request, \"json\", false, undefined, \"WUUpdateQueryEntryResponse\");\n }\n\n WUWaitCompiled(request: Partial<WsWorkunits.WUWaitCompiled>): Promise<WsWorkunits.WUWaitResponse> {\n return this._connection.send(\"WUWaitCompiled\", request, \"json\", false, undefined, \"WUWaitResponse\");\n }\n\n WUWaitComplete(request: Partial<WsWorkunits.WUWaitComplete>): Promise<WsWorkunits.WUWaitResponse> {\n return this._connection.send(\"WUWaitComplete\", request, \"json\", false, undefined, \"WUWaitResponse\");\n }\n\n}\n", "import { debounce, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsSMC, SMCService } from \"../services/wsSMC.ts\";\nimport { Workunit } from \"./workunit.ts\";\n\nlet _activity: Activity;\n\nexport interface ActivityEx {\n}\n\nexport type UActivityState = WsSMC.ActivityResponse & ActivityEx;\nexport type IActivityState = WsSMC.ActivityResponse | 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(): WsSMC.Exceptions { return this.get(\"Exceptions\"); }\n get Build(): string { return this.get(\"Build\"); }\n get ThorClusterList(): WsSMC.ThorClusterList { return this.get(\"ThorClusterList\"); }\n get RoxieClusterList(): WsSMC.RoxieClusterList { return this.get(\"RoxieClusterList\"); }\n get HThorClusterList(): WsSMC.HThorClusterList { return this.get(\"HThorClusterList\"); }\n get DFUJobs(): WsSMC.DFUJobs { return this.get(\"DFUJobs\"); }\n get Running(): WsSMC.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(): WsSMC.ServerJobQueues { return this.get(\"ServerJobQueues\"); }\n get ActivityTime(): string { return this.get(\"ActivityTime\"); }\n get DaliDetached(): boolean { return this.get(\"DaliDetached\"); }\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(state);\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 setBanner(request: Partial<WsSMC.SetBanner>): Promise<Activity> {\n return this.connection.SetBanner({\n ...request\n } as WsSMC.SetBanner).then((response) => {\n this.set(response);\n return this;\n });\n }\n\n lazyRefresh = debounce(async (): Promise<this> => {\n const response = await this.connection.Activity({} as WsSMC.Activity);\n this.set(response);\n return this;\n });\n\n async refresh(): Promise<this> {\n return this.lazyRefresh();\n }\n}\n", "import { Cache, deepMixinT, IEvent, RecursivePartial, scopedLogger, StateCallback, StateEvents, StateObject, StatePropCallback, StringAnyMap, XMLNode } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { utcFormat, utcParse } from \"d3-time-format\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\nimport { WsSMC } from \"../services/wsSMC.ts\";\nimport * as WsTopology from \"../services/wsTopology.ts\";\nimport { WsWorkunits, WUStateID, WorkunitsService, WorkunitsServiceEx, WUUpdate } from \"../services/wsWorkunits.ts\";\nimport { createGraph, createXGMMLGraph, ECLGraph, GraphCache, ScopeGraph, XGMMLGraph, XGMMLVertex } from \"./graph.ts\";\nimport { Resource } from \"./resource.ts\";\nimport { Result, ResultCache } from \"./result.ts\";\nimport { BaseScope, Scope } from \"./scope.ts\";\nimport { SourceFile } from \"./sourceFile.ts\";\nimport { Timer } from \"./timer.ts\";\n\nconst formatter = utcFormat(\"%Y-%m-%dT%H:%M:%S.%LZ\");\nconst parser = utcParse(\"%Y-%m-%dT%H:%M:%S.%LZ\");\nconst d3FormatNum = d3Format(\",\");\nfunction formatNum(num: number | string): string {\n if (num && !isNaN(+num)) {\n return d3FormatNum(+num);\n }\n return num as string;\n}\n\nfunction safeDelete(obj: { [id: string]: any; }, key: string, prop: string) {\n if (obj[key] === undefined || obj[key][prop] === undefined) return;\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") return;\n delete obj[key][prop];\n}\n\nconst DEFINITION_LIST = \"DefinitionList\";\nconst definitionRegex = /([a-zA-Z]:)?(.*[\\\\\\/])(.*)(\\((\\d+),(\\d+)\\))/;\n\nexport const PropertyType = [\"Avg\", \"Min\", \"Max\", \"Delta\", \"StdDev\"];\nexport const RelatedProperty = [\"SkewMin\", \"SkewMax\", \"NodeMin\", \"NodeMax\"];\n\nexport interface IPropertyValue {\n Key: string;\n Value?: string;\n\n // Extended properties ---\n Avg?: string;\n Min?: string;\n Max?: string;\n Delta?: string;\n StdDev?: string;\n StdDevs?: number;\n\n // Related properties ---\n SkewMin?: string;\n SkewMax?: string;\n NodeMin?: string;\n NodeMax?: string;\n}\n\nexport interface IScope {\n __parentName?: string;\n __children?: IScope[];\n __formattedProps: { [key: string]: any };\n __groupedProps: { [key: string]: IPropertyValue };\n __StdDevs: number,\n __StdDevsSource: string,\n id: string;\n name: string;\n type: string;\n Kind: string;\n Label: string;\n [key: string]: any;\n}\n\nexport interface ISplitMetric {\n measure: string;\n ext: string;\n label: string;\n}\n\nconst metricKeyRegex = /[A-Z][a-z]*/g;\nfunction _splitMetric(fullLabel: string): ISplitMetric {\n\n // Related properties ---\n for (const relProp of RelatedProperty) {\n const index = fullLabel.indexOf(relProp);\n if (index === 0) {\n const measure = \"\";\n const label = fullLabel.slice(index + relProp.length);\n return { measure, ext: relProp, label };\n }\n }\n\n // Primary properties ---\n const labelParts = fullLabel.match(metricKeyRegex);\n if (labelParts?.length) {\n const measure = labelParts.shift();\n let label = labelParts.join(\"\");\n for (const ext of PropertyType) {\n const index = label.indexOf(ext);\n if (index === 0) {\n label = label.slice(index + ext.length);\n return { measure, ext, label };\n }\n }\n // Not an aggregate property ---\n return { measure, ext: \"\", label };\n }\n\n // No match found ---\n return { measure: \"\", ext: \"\", label: fullLabel };\n}\n\nconst splitLabelCache: { [key: string]: ISplitMetric } = {};\nexport function splitMetric(key: string): ISplitMetric {\n let retVal = splitLabelCache[key];\n if (!retVal) {\n retVal = _splitMetric(key);\n splitLabelCache[key] = retVal;\n }\n return retVal;\n}\n\nfunction formatValue(item: IScope, key: string): string | undefined {\n return item.__formattedProps?.[key] ?? item[key];\n}\n\ntype DedupProperties = { [key: string]: boolean };\n\nfunction safeParseFloat(val: string | undefined): number | undefined {\n if (val === undefined) return undefined;\n const retVal = parseFloat(val);\n return isNaN(retVal) ? undefined : retVal;\n}\n\nfunction formatValues(item: IScope, key: string, dedup: DedupProperties): IPropertyValue | null {\n const keyParts = splitMetric(key);\n if (!dedup[keyParts.measure]) {\n dedup[keyParts.label] = true;\n const avg = safeParseFloat(item[`${keyParts.measure}Avg${keyParts.label}`]);\n const min = safeParseFloat(item[`${keyParts.measure}Min${keyParts.label}`]);\n const max = safeParseFloat(item[`${keyParts.measure}Max${keyParts.label}`]);\n const stdDev = safeParseFloat(item[`${keyParts.measure}StdDev${keyParts.label}`]);\n const StdDevs = Math.max((avg - min) / stdDev, (max - avg) / stdDev);\n\n return {\n Key: `${keyParts.measure}${keyParts.label}`,\n Value: formatValue(item, `${keyParts.measure}${keyParts.label}`),\n\n // Extended properties ---\n Avg: formatValue(item, `${keyParts.measure}Avg${keyParts.label}`),\n Min: formatValue(item, `${keyParts.measure}Min${keyParts.label}`),\n Max: formatValue(item, `${keyParts.measure}Max${keyParts.label}`),\n Delta: formatValue(item, `${keyParts.measure}Delta${keyParts.label}`),\n StdDev: formatValue(item, `${keyParts.measure}StdDev${keyParts.label}`),\n StdDevs: isNaN(StdDevs) ? undefined : StdDevs,\n\n // Related properties ---\n SkewMin: formatValue(item, `SkewMin${keyParts.label}`),\n SkewMax: formatValue(item, `SkewMax${keyParts.label}`),\n NodeMin: formatValue(item, `NodeMin${keyParts.label}`),\n NodeMax: formatValue(item, `NodeMax${keyParts.label}`)\n };\n }\n return null;\n}\n\nconst logger = scopedLogger(\"workunit.ts\");\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: WsWorkunits.ResultViews;\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.ECLWorkunit & WsWorkunits.Workunit & WsSMC.ActiveWorkunit & IWorkunit & IDebugWorkunit;\nexport type IWorkunitState = WsWorkunits.ECLWorkunit | WsWorkunits.Workunit | WsSMC.ActiveWorkunit | IWorkunit | IDebugWorkunit;\nexport class Workunit extends StateObject<UWorkunitState, IWorkunitState> implements WsWorkunits.Workunit {\n connection: 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: WUUpdate.Action;\n\n // Accessors ---\n get properties(): WsWorkunits.ECLWorkunit & WsWorkunits.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(): WUStateID { return this.get(\"StateID\", WUStateID.Unknown); }\n get State(): string { return this.get(\"State\") || WUStateID[this.StateID]; }\n get Protected(): boolean { return this.get(\"Protected\", false); }\n get Exceptions(): WsWorkunits.Exceptions2 { return this.get(\"Exceptions\", { ECLException: [] }); }\n get ResultViews(): WsWorkunits.ResultViews { return this.get(\"ResultViews\", { View: [] }); }\n\n private _resultCache = new ResultCache();\n get ResultCount(): number { return this.get(\"ResultCount\", 0); }\n get Results(): WsWorkunits.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 Result.attach(this.connection, this.Wuid, eclResult, this.ResultViews.View);\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.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.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.ThorLogList { return this.get(\"ThorLogList\"); }\n get ResourceURLCount(): number { return this.get(\"ResourceURLCount\", 0); }\n get ResourceURLs(): WsWorkunits.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.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 Query(): WsWorkunits.Query { return this.get(\"Query\"); }\n get HelpersCount(): number { return this.get(\"HelpersCount\", 0); }\n get Helpers(): WsWorkunits.Helpers { return this.get(\"Helpers\", { ECLHelpFile: [] }); }\n get DebugValues(): WsWorkunits.DebugValues { return this.get(\"DebugValues\"); }\n get AllowedClusters(): WsWorkunits.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.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.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.Workflows { return this.get(\"Workflows\"); }\n get TimingData(): WsWorkunits.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(\"SourceFilesDesc\"); }\n get ResultsDesc(): string { return this.get(\"ResultsDesc\"); }\n get VariablesDesc(): string { return this.get(\"VariablesDesc\"); }\n get TimersDesc(): string { return this.get(\"TimersDesc\"); }\n get DebugValuesDesc(): string { return this.get(\"DebugValuesDesc\"); }\n get ApplicationValuesDesc(): string { return this.get(\"ApplicationValuesDesc\"); }\n get WorkflowsDesc(): string { return this.get(\"WorkflowsDesc\"); }\n get ServiceNames(): WsWorkunits.ServiceNames { return this.get(\"ServiceNames\"); }\n get CompileCost(): number { return this.get(\"CompileCost\"); }\n get ExecuteCost(): number { return this.get(\"ExecuteCost\"); }\n get FileAccessCost(): number { return this.get(\"FileAccessCost\"); }\n get NoAccess(): boolean { return this.get(\"NoAccess\"); }\n get ECLWUProcessList(): WsWorkunits.ECLWUProcessList { return this.get(\"ECLWUProcessList\"); }\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, compileOnly = false): Promise<Workunit> {\n return Workunit.create(server).then((wu) => {\n return wu.update({ QueryText: ecl });\n }).then((wu) => {\n return compileOnly ? wu.submit(target, WUUpdate.Action.Compile) : wu.submit(target);\n });\n }\n\n static compile(server: IOptions | IConnection, target: string, ecl: string): Promise<Workunit> {\n return Workunit.submit(server, target, ecl, true);\n }\n\n static query(server: IOptions | IConnection, opts: Partial<WsWorkunits.WUQuery>): Promise<Workunit[]> {\n const wsWorkunits = new 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 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>): Promise<Workunit> {\n return this.connection.WUUpdate({\n ...request,\n ...{\n Wuid: this.Wuid,\n StateOrig: this.StateID,\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: WUUpdate.Action = 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 === WUUpdate.Action.Debug) {\n action = 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 === 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(WsWorkunits.ECLWUActions.SetToFailed);\n }\n\n pause() {\n return this.WUAction(WsWorkunits.ECLWUActions.Pause);\n }\n\n pauseNow() {\n return this.WUAction(WsWorkunits.ECLWUActions.PauseNow);\n }\n\n resume() {\n return this.WUAction(WsWorkunits.ECLWUActions.Resume);\n }\n\n abort() {\n return this.WUAction(WsWorkunits.ECLWUActions.Abort);\n }\n\n protect() {\n return this.WUAction(WsWorkunits.ECLWUActions.Protect);\n }\n\n unprotect() {\n return this.WUAction(WsWorkunits.ECLWUActions.Unprotect);\n }\n\n delete() {\n return this.WUAction(WsWorkunits.ECLWUActions.Delete);\n }\n\n restore() {\n return this.WUAction(WsWorkunits.ECLWUActions.Restore);\n }\n\n deschedule() {\n return this.WUAction(WsWorkunits.ECLWUActions.Deschedule);\n }\n\n reschedule() {\n return this.WUAction(WsWorkunits.ECLWUActions.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.opts(), response.WUs.WU[0].WUID)\n .refresh()\n ;\n });\n }\n\n async refreshState(): Promise<this> {\n await this.WUQuery();\n // Ensure \"isComplete\" is correct for WUs that are only \"Compiled\".\n if (this.StateID === WUStateID.Compiled && !this.ActionEx && !this._submitAction) {\n await this.refreshInfo();\n }\n return this;\n }\n\n async refreshInfo(request?: Partial<WsWorkunits.WUInfo>): Promise<this> {\n await this.WUInfo(request);\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, request?: Partial<WsWorkunits.WUInfo>): Promise<this> {\n if (full) {\n await Promise.all([this.refreshInfo(request), this.refreshDebug()]);\n } else {\n await this.refreshState();\n }\n return this;\n }\n\n eclExceptions(): WsWorkunits.ECLException[] {\n return this.Exceptions.ECLException;\n }\n\n fetchArchive(): Promise<string> {\n return this.connection.WUFileEx({\n Wuid: this.Wuid,\n Type: \"ArchiveQuery\"\n });\n }\n\n fetchECLExceptions(): Promise<WsWorkunits.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 fetchQuery(): Promise<WsWorkunits.Query> {\n return this.WUInfo({ IncludeECL: true, TruncateEclTo64k: false }).then(() => {\n return this.Query;\n });\n }\n\n fetchHelpers(): Promise<WsWorkunits.ECLHelpFile[]> {\n return this.WUInfo({ IncludeHelpers: true }).then(() => {\n return this.Helpers?.ECLHelpFile || [];\n });\n }\n\n fetchAllowedClusters(): Promise<string[]> {\n return this.WUInfo({ IncludeAllowedClusters: true }).then(() => {\n return this.AllowedClusters?.AllowedCluster || [];\n });\n }\n\n fetchTotalClusterTime(): Promise<string> {\n return this.WUInfo({ IncludeTotalClusterTime: true }).then(() => {\n return this.TotalClusterTime;\n });\n }\n\n fetchServiceNames(): Promise<string[]> {\n return this.WUInfo({ IncludeServiceNames: true }).then(() => {\n return this.ServiceNames?.Item;\n });\n }\n\n fetchDetailsMeta(request: RecursivePartial<WsWorkunits.WUDetailsMeta> = {}): Promise<WsWorkunits.WUDetailsMetaResponse> {\n return this.WUDetailsMeta(request);\n }\n\n fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<WsWorkunits.Scope[]> {\n return this.WUDetails(request).then(response => response.Scopes.Scope);\n }\n\n normalizeDetails(meta: WsWorkunits.WUDetailsMetaResponse, scopes: WsWorkunits.Scope[]): { meta: WsWorkunits.WUDetailsMetaResponse, columns: { [id: string]: any }, data: IScope[] } {\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 activityMap = new Map<number, string>();\n for (const activity of meta.Activities?.Activity ?? []) {\n activityMap.set(activity.Kind, activity.Name);\n }\n const data: IScope[] = new Array(scopes.length);\n for (let i = 0; i < scopes.length; i++) {\n const scope = scopes[i];\n const props: { [key: string]: any } = {};\n const formattedProps: { [key: string]: any } = {};\n if (scope.Id && scope.Properties?.Property) {\n for (const scopeProperty of scope.Properties.Property) {\n const measure = scopeProperty.Measure;\n const name = scopeProperty.Name;\n const rawValue = scopeProperty.RawValue;\n if (measure === \"ns\") {\n scopeProperty.Measure = \"s\";\n }\n if (name === \"Kind\") {\n const rawValueInt = parseInt(rawValue, 10);\n scopeProperty.Formatted = activityMap.get(rawValueInt) ?? rawValue;\n }\n columns[name] = {\n Name: scopeProperty.Name,\n Measure: scopeProperty.Measure,\n Creator: scopeProperty.Creator,\n CreatorType: scopeProperty.CreatorType\n };\n switch (scopeProperty.Measure) {\n case \"bool\":\n props[name] = !!+rawValue;\n break;\n case \"sz\":\n props[name] = +rawValue;\n break;\n case \"s\":\n props[name] = +rawValue / 1000000000;\n break;\n case \"ns\":\n props[name] = +rawValue;\n break;\n case \"ts\":\n props[name] = new Date(+rawValue / 1000).toISOString();\n break;\n case \"cnt\":\n props[name] = +rawValue;\n break;\n case \"cost\":\n props[name] = +rawValue / 1000000;\n break;\n case \"node\":\n props[name] = +rawValue;\n break;\n case \"skw\":\n props[name] = +rawValue;\n break;\n case \"cpu\":\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[name] = rawValue;\n }\n formattedProps[name] = formatNum(scopeProperty.Formatted ?? props[name]);\n }\n }\n const normalizedScope: IScope = {\n id: scope.Id,\n name: scope.ScopeName,\n type: scope.ScopeType,\n Kind: scope[\"Kind\"],\n Label: scope[\"Label\"],\n __formattedProps: formattedProps,\n __groupedProps: {},\n __groupedRawProps: {},\n __StdDevs: 0,\n __StdDevsSource: \"\",\n ...props\n };\n const definitionList = normalizedScope[DEFINITION_LIST];\n if (definitionList) {\n try {\n const parsedList = JSON.parse(definitionList.split(\"\\\\\").join(\"\\\\\\\\\"));\n const processedDefinitions: Array<{ filePath: string, line: number, col: number }> = [];\n\n for (let k = 0; k < parsedList.length; k++) {\n const matches = parsedList[k].match(definitionRegex);\n if (matches) {\n processedDefinitions.push({\n filePath: (matches[1] ?? \"\") + matches[2] + matches[3],\n line: parseInt(matches[5], 10),\n col: parseInt(matches[6], 10)\n });\n }\n }\n normalizedScope[DEFINITION_LIST] = processedDefinitions;\n } catch (e) {\n logger.error(`Unexpected \"DefinitionList\": ${definitionList}`);\n }\n }\n\n const dedup: DedupProperties = {};\n let maxStdDevs = 0;\n let maxStdDevsSource = \"\";\n for (const key in normalizedScope) {\n if (!key.startsWith(\"__\")) {\n const row = formatValues(normalizedScope, key, dedup);\n if (row) {\n normalizedScope.__groupedProps[row.Key] = row;\n if (!isNaN(row.StdDevs) && row.StdDevs > maxStdDevs) {\n maxStdDevs = row.StdDevs;\n maxStdDevsSource = row.Key;\n }\n }\n }\n }\n normalizedScope.__StdDevs = maxStdDevs;\n normalizedScope.__StdDevsSource = maxStdDevsSource;\n\n data[i] = normalizedScope;\n }\n return {\n meta,\n columns,\n data\n };\n }\n\n fetchDetailsNormalized(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<{ meta: WsWorkunits.WUDetailsMetaResponse, columns: { [id: string]: any }, data: IScope[] }> {\n return Promise.all([this.fetchDetailsMeta(), this.fetchDetailsRaw(request)]).then(promises => {\n return this.normalizeDetails(promises[0], promises[1]);\n });\n }\n\n fetchInfo(request: Partial<WsWorkunits.WUInfo> = {}): Promise<WsWorkunits.WUInfoResponse> {\n return this.WUInfo(request);\n }\n\n fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails> = {}): 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> = {}): 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\", \"function\"]\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 _monitorTimeoutDuration(): number {\n const retVal = super._monitorTimeoutDuration();\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> = {}): Promise<WsWorkunits.WUQueryResponse> {\n return this.connection.WUQuery({ ..._request, Wuid: this.Wuid }).then((response) => {\n if (response.Workunits.ECLWorkunit.length === 0) {\n // deleted ---\n this.clearState(this.Wuid);\n this.set(\"StateID\", WUStateID.NotFound);\n } else {\n this.set(response.Workunits.ECLWorkunit[0]);\n }\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 ESP exception: ${e.message}`);\n throw e;\n }\n return {} as WsWorkunits.WUQueryResponse;\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> = {}): Promise<WsWorkunits.WUInfoResponse> {\n const includeResults = _request.IncludeResults || _request.IncludeResultsViewNames;\n return this.connection.WUInfo({\n ..._request,\n 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 ESP exception: ${e.message}`);\n throw e;\n }\n return {} as WsWorkunits.WUInfoResponse;\n });\n }\n\n protected WUResubmit(request: Partial<WsWorkunits.WUResubmit>): Promise<WsWorkunits.WUResubmitResponse> {\n return this.connection.WUResubmit(deepMixinT<WsWorkunits.WUResubmit>({}, request, {\n Wuids: { Item: [this.Wuid] }\n }));\n }\n\n protected WUDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta>): Promise<WsWorkunits.WUDetailsMetaResponse> {\n return this.connection.WUDetailsMeta(request);\n }\n\n protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>): Promise<WsWorkunits.WUDetailsResponse> {\n return this.connection.WUDetails(deepMixinT<WsWorkunits.WUDetails>({\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.WUDetailsResponse>({\n Scopes: {\n Scope: []\n }\n }, response);\n });\n }\n\n protected WUAction(actionType: WsWorkunits.ECLWUActions): Promise<WsWorkunits.WUActionResponse> {\n return this.connection.WUAction({\n Wuids: { Item: [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: WsWorkunits.WUQueryActivationMode.ActivateQuery,\n Wait: 5000\n });\n }\n\n publishEx(request: Partial<WsWorkunits.WUPublishWorkunit>) {\n const service = new WorkunitsServiceEx({ baseUrl: \"\" });\n const publishRequest = {\n Wuid: this.Wuid,\n Cluster: this.Cluster,\n JobName: this.Jobname,\n AllowForeignFiles: true,\n Activate: 1,\n Wait: 5000,\n ...request\n };\n return service.WUPublishWorkunitEx(publishRequest);\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.WUCDebugEx({\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(/\\/\\.\\//g, \"/\");\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 { Cache, Edge, Graph, StateObject, StringAnyMap, Subgraph, Vertex, XMLNode } from \"@hpcc-js/util\";\nimport { WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { BaseScope } from \"./scope.ts\";\nimport { Timer } from \"./timer.ts\";\nimport { Workunit } from \"./workunit.ts\";\n\nexport interface ECLGraphEx extends WsWorkunits.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: WsWorkunits.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<WsWorkunits.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 const vertices: { [scopeName: string]: ScopeVertex } = {};\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.warn(`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.warn(`Missing A:Parent (${scope.Id}): ${scope.parentScope()}`);\n } else {\n vertices[scope.ScopeName] = scopeParent2.createVertex(scope);\n }\n break;\n case \"edge\":\n edges[scope.ScopeName] = scope;\n break;\n case \"function\":\n const scopeParent3 = vertices[scope.parentScope()];\n if (!scopeParent3) {\n console.warn(`Missing F:Parent (${scope.Id}): ${scope.parentScope()}`);\n } else {\n scopeParent3._.children().push(scope);\n }\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.warn(`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.warn(`Invalid Edge: ${id}`);\n }\n }\n }\n return graph!;\n}\n", "import { StateObject } from \"@hpcc-js/util\";\nimport { Workunit } from \"./workunit.ts\";\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 { Cache, exists, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsDfu } from \"../services/wsDFU.ts\";\nimport { isECLResult, WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { parseXSD, XSDSchema, XSDXMLNode } from \"./xsdParser.ts\";\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 type ResultFilter = { [key: string]: string | number };\n\nexport interface ECLResultEx extends WsWorkunits.ECLResult {\n Wuid: string;\n ResultName?: string;\n ResultSequence?: number;\n LogicalFileName?: string;\n NodeGroup?: string;\n ResultViews: string[];\n}\n\nexport interface WUResultResponseEx {\n\n Exceptions: WsWorkunits.Exceptions;\n Wuid: string;\n Sequence: WsWorkunits.int;\n LogicalName: string;\n Cluster: string;\n Name: string;\n Start: WsWorkunits.long;\n Requested: WsWorkunits.int;\n Count: WsWorkunits.int;\n Total: WsWorkunits.long;\n Result: { [key: string]: any[] } & {\n XmlSchema?: {\n xml: string;\n };\n };\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 protected _bypassCache: boolean = false;\n get BaseUrl() { return this.connection.baseUrl; }\n protected xsdSchema: XSDSchema;\n\n get properties(): WsWorkunits.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(): WsWorkunits.ECLSchemas { return this.get(\"ECLSchemas\"); }\n get NodeGroup(): string { return this.get(\"NodeGroup\"); }\n get ResultViews(): string[] { return this.get(\"ResultViews\"); }\n get XmlSchema(): string { return this.get(\"XmlSchema\"); }\n\n static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name: string);\n static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, sequence: number);\n static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WsWorkunits.ECLResult, resultViews: string[]);\n static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name_sequence_eclResult?: string | number | WsWorkunits.ECLResult, resultViews?: string[]): Result {\n let retVal: Result;\n if (Array.isArray(resultViews)) {\n retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: (name_sequence_eclResult as WsWorkunits.ECLResult).Name }, () => {\n return new Result(optsConnection, wuid, name_sequence_eclResult as WsWorkunits.ECLResult, resultViews);\n });\n retVal.set(name_sequence_eclResult as any);\n } else if (typeof resultViews === \"undefined\") {\n if (typeof name_sequence_eclResult === \"number\") {\n retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: \"Sequence_\" + name_sequence_eclResult }, () => {\n return new Result(optsConnection, wuid, name_sequence_eclResult);\n });\n } else if (typeof name_sequence_eclResult === \"string\") {\n retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: name_sequence_eclResult }, () => {\n return new Result(optsConnection, wuid, name_sequence_eclResult);\n });\n }\n }\n return retVal;\n }\n\n static attachLogicalFile(optsConnection: IOptions | IConnection | WorkunitsService, nodeGroup: string, logicalFile: string) {\n return _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: nodeGroup, ResultName: logicalFile }, () => {\n return new Result(optsConnection, nodeGroup, logicalFile, true);\n });\n }\n\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name: string);\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, sequence: number);\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WsWorkunits.ECLResult, resultViews: string[]);\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, nodeGroup: string, logicalFile: string, isLogicalFiles: boolean);\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid_NodeGroup: string, name_sequence_eclResult_logicalFile?: string | number | WsWorkunits.ECLResult, resultViews_isLogicalFile?: any[] | boolean) {\n super();\n if (optsConnection instanceof WorkunitsService) {\n this.connection = optsConnection;\n } else {\n this.connection = new WorkunitsService(optsConnection);\n }\n\n if (typeof resultViews_isLogicalFile === \"boolean\" && resultViews_isLogicalFile === true) {\n this.set({\n NodeGroup: wuid_NodeGroup,\n LogicalFileName: name_sequence_eclResult_logicalFile\n } as ECLResultEx);\n } else if (isECLResult(name_sequence_eclResult_logicalFile) && Array.isArray(resultViews_isLogicalFile)) {\n this.set({\n ...name_sequence_eclResult_logicalFile,\n Wuid: wuid_NodeGroup,\n ResultName: name_sequence_eclResult_logicalFile.Name,\n ResultViews: resultViews_isLogicalFile\n } as ECLResultEx);\n } else if (typeof resultViews_isLogicalFile === \"undefined\") {\n if (typeof name_sequence_eclResult_logicalFile === \"number\") {\n this.set({\n Wuid: wuid_NodeGroup,\n ResultSequence: name_sequence_eclResult_logicalFile\n } as ECLResultEx);\n } else if (typeof name_sequence_eclResult_logicalFile === \"string\") {\n this.set({\n Wuid: wuid_NodeGroup,\n ResultName: name_sequence_eclResult_logicalFile\n } as ECLResultEx);\n } else {\n console.warn(\"Unknown Result.attach (1)\");\n }\n } else {\n console.warn(\"Unknown Result.attach (2)\");\n }\n }\n\n isComplete() {\n return this.Total !== -1;\n }\n\n bypassCache(bypass?: boolean): boolean | this {\n if (bypass === undefined) return this._bypassCache;\n this._bypassCache = bypass;\n return this;\n }\n\n private _fetchXMLSchemaPromise: Promise<XSDSchema | null>;\n fetchXMLSchema(refresh = false): Promise<XSDSchema | null> {\n if (!this._fetchXMLSchemaPromise || refresh) {\n this._fetchXMLSchemaPromise = this.WUResult().then(response => {\n if (response.Result?.XmlSchema?.xml) {\n this.xsdSchema = parseXSD(response.Result.XmlSchema.xml);\n return this.xsdSchema;\n }\n return null;\n });\n }\n return this._fetchXMLSchemaPromise;\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: ResultFilter = {}, abortSignal?: AbortSignal, bypassCache?: boolean): Promise<any[]> {\n const shouldBypassCache = bypassCache ?? this._bypassCache;\n return this.WUResult(from, count, !includeSchema, filter, abortSignal, shouldBypassCache).then((response) => {\n const result: any = 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 } = {}, abortSignal?: AbortSignal, bypassCache: boolean = false): Promise<WUResultResponseEx> {\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: Partial<WsWorkunits.WUResult> = { FilterBy } as any;\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 request.BypassCachedResult = bypassCache;\n return this.connection.WUResult(request, abortSignal).then((response: unknown) => {\n return response as WUResultResponseEx;\n });\n }\n}\n\nexport class ResultCache extends Cache<WsWorkunits.ECLResult, Result> {\n constructor() {\n super((obj) => {\n return Cache.hash([obj.Sequence, obj.Name, obj.Value, obj.FileName]);\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 isSet = false;\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 const setOfType = this.setOfType();\n if (setOfType) {\n this.type = setOfType;\n this.isSet = true;\n this._children = [];\n }\n }\n\n children(): XSDXMLNode[] {\n return this._children;\n }\n\n private isAll(node: XSDXMLNode) {\n return node.name === \"All\" && node.type === undefined;\n }\n\n private setOfType(): string {\n const children = this.children();\n if (this.type === undefined && children.length === 2) {\n if (this.isAll(children[0])) {\n return children[1].type;\n } else if (this.isAll(children[1])) {\n return children[0].type;\n }\n }\n return undefined;\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 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 { StateObject, StringAnyMap } from \"@hpcc-js/util\";\nimport { WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { Workunit } from \"./workunit.ts\";\n\nexport interface AttributeEx extends WsWorkunits.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: WsWorkunits.Property) {\n super();\n this.scope = scope;\n this.set(attribute);\n }\n}\n\nexport interface ScopeEx extends WsWorkunits.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(): WsWorkunits.Properties { return this.get(\"Properties\", { Property: [] }); }\n get Notes(): WsWorkunits.Notes { return this.get(\"Notes\", { Note: [] }); }\n get SinkActivity(): string { return this.get(\"SinkActivity\"); }\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: WsWorkunits.Scope) {\n super();\n this.update(scope);\n }\n\n update(scope: WsWorkunits.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: WsWorkunits.Scope) {\n super(scope);\n this.wu = wu;\n }\n}\n", "import { StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\n\nexport interface ECLSourceFileEx extends WsWorkunits.ECLSourceFile {\n Wuid: string;\n}\n\nexport class SourceFile extends StateObject<ECLSourceFileEx, ECLSourceFileEx> implements ECLSourceFileEx {\n protected connection: WorkunitsService;\n\n get properties(): WsWorkunits.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(): WsWorkunits.ECLSourceFiles { return this.get(\"ECLSourceFiles\"); }\n\n constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclSourceFile: WsWorkunits.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.ts\";\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\n\nexport interface ECLTimerEx extends WsWorkunits.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(): WsWorkunits.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 get Timestamp(): number { return this.get(\"Timestamp\"); }\n get When(): string { return this.get(\"When\"); }\n\n constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclTimer: WsWorkunits.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, scopedLogger, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { DFUService, WsDfu } from \"../services/wsDFU.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\n\nconst logger = scopedLogger(\"logicalFile.ts\");\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 DFUPartEx extends WsDfu.DFUPart {\n // From WsDfu.DFUFilePartsOnCluster ---\n Cluster: string;\n BaseDir: string;\n ReplicateDir: string;\n Replicate: boolean;\n CanReplicate: boolean;\n}\n\nexport interface FileDetailEx extends WsDfu.FileDetail {\n Cluster: string;\n StateID?: number;\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(): WsDfu.base64Binary { 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 get IsRestricted(): boolean { return this.get(\"IsRestricted\"); }\n get AtRestCost(): number { return this.get(\"AtRestCost\"); }\n get AccessCost(): number { return this.get(\"AccessCost\"); }\n get StateID(): number { return this.get(\"StateID\"); }\n get ExpirationDate(): string { return this.get(\"ExpirationDate\"); }\n get ExtendedIndexInfo(): WsDfu.ExtendedIndexInfo { return this.get(\"ExtendedIndexInfo\"); }\n get CompressionType(): string { return this.get(\"CompressionType\"); }\n\n get properties(): FileDetailEx { return this.get(); }\n\n static attach(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string, state?: FileDetailEx): LogicalFile {\n const retVal: LogicalFile = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster, Name }, () => {\n return new LogicalFile(optsConnection, Cluster, Name);\n });\n if (state) {\n retVal.set(state);\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 filePartsOnCluster() {\n return [...(this.DFUFilePartsOnClusters?.DFUFilePartsOnCluster || [])];\n }\n\n fileParts() {\n const retVal: DFUPartEx[] = [];\n for (const poc of this.DFUFilePartsOnClusters?.DFUFilePartsOnCluster || []) {\n for (const part of poc?.DFUFileParts?.DFUPart || []) {\n const row = { ...poc, ...part };\n delete row.DFUFileParts;\n retVal.push(row);\n }\n }\n return retVal;\n }\n\n update(request: Partial<WsDfu.DFUInfoRequest>): Promise<WsDfu.DFUInfoResponse> {\n return this.connection.DFUInfo({\n ...request,\n ...{\n Cluster: this.Cluster,\n Name: this.Name\n }\n }).then((response) => {\n this.set({\n Cluster: this.Cluster,\n ...response.FileDetail\n });\n return response;\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 ProtectList: response?.FileDetail?.ProtectList ?? { DFUFileProtect: [] }\n });\n return response.FileDetail;\n }).catch((e: ESPExceptions) => {\n // deleted ---\n const fileMissing = e.Exception.some((exception) => {\n if (exception.Code === 20038) {\n this.set(\"Name\", this.Name + \" (Deleted)\");\n this.set(\"StateID\", 999);\n return true;\n }\n return false;\n });\n if (!fileMissing) {\n logger.warning(`Unexpected ESP exception: ${e.message}`);\n throw e;\n }\n return {} as FileDetailEx;\n });\n }\n\n fetchDefFile(format: WsDfu.DFUDefFileFormat): Promise<string> {\n return this.connection.DFUFile({ Name: this.Name, Format: format });\n }\n\n fetchAllLogicalFiles(): Promise<string[]> {\n return this.connection.recursiveFetchLogicalFiles([this]);\n }\n\n fetchListHistory(): Promise<WsDfu.Origin[]> {\n return this.connection.ListHistory({ Name: this.Name }).then(response => {\n return response?.History?.Origin || [];\n });\n }\n\n eraseHistory(): Promise<WsDfu.Origin[]> {\n return this.connection.EraseHistory({ Name: this.Name }).then(response => {\n return response?.History?.Origin || [];\n });\n }\n}\n", "import { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsMachine, MachineService } from \"../services/wsMachine.ts\";\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 WsMachine.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 Channels(): number { return this.get(\"Channels\"); }\n get Processors(): WsMachine.Processors { return this.get(\"Processors\"); }\n get Storage(): WsMachine.Storage { return this.get(\"Storage\"); }\n get Running(): WsMachine.Running { return this.get(\"Running\"); }\n get PhysicalMemory(): WsMachine.PhysicalMemory { return this.get(\"PhysicalMemory\"); }\n get VirtualMemory(): WsMachine.VirtualMemory { return this.get(\"VirtualMemory\"); }\n get ComponentInfo(): WsMachine.ComponentInfo { return this.get(\"ComponentInfo\"); }\n get Exception(): string { return this.get(\"Exception\"); }\n\n static attach(optsConnection: IOptions | IConnection | MachineService, address: string, state?: WsMachine.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, scopedLogger, RecursivePartial } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { EclService, IWsEclRequest, IWsEclResponse, IWsEclResult } from \"../services/wsEcl.ts\";\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { Topology } from \"./topology.ts\";\nimport { Workunit, IScope } from \"./workunit.ts\";\nimport { QueryGraph } from \"./queryGraph.ts\";\n\nexport { QueryGraph };\n\nconst logger = scopedLogger(\"@hpcc-js/comms/ecl/query.ts\");\n\nconst siFormatter = d3Format(\"~s\");\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && !isNaN(n - 0);\n}\nexport interface QueryEx extends WsWorkunits.WUQueryDetailsResponse {\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 wsWorkunitsService: WorkunitsService;\n get BaseUrl() { return this.wsWorkunitsService.baseUrl; }\n protected topology: Topology;\n protected _requestSchema: IWsEclRequest;\n protected _responseSchema: IWsEclResponse;\n\n get properties(): WsWorkunits.WUQueryDetailsResponse { return this.get(); }\n get Exceptions(): WsWorkunits.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(): WsWorkunits.Clusters2 { return this.get(\"Clusters\"); }\n get PublishedBy(): string { return this.get(\"PublishedBy\"); }\n get Comment() { return this.get(\"Comment\"); }\n get LogicalFiles(): WsWorkunits.LogicalFiles { return this.get(\"LogicalFiles\"); }\n get SuperFiles(): WsWorkunits.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(): WsWorkunits.LibrariesUsed { return this.get(\"LibrariesUsed\"); }\n get CountGraphs(): number { return this.get(\"CountGraphs\"); }\n get ResourceURLCount(): number { return this.get(\"ResourceURLCount\"); }\n get WsEclAddresses(): WsWorkunits.WsEclAddresses { return this.get(\"WsEclAddresses\"); }\n get WUGraphs(): WsWorkunits.WUGraphs { return this.get(\"WUGraphs\"); }\n get WUTimers(): WsWorkunits.WUTimers { return this.get(\"WUTimers\"); }\n get PriorityID(): number { return this.get(\"PriorityID\"); }\n\n private constructor(optsConnection: IOptions | IConnection | WorkunitsService, querySet: string, queryID: string, queryDetails?: WsWorkunits.WUQueryDetailsResponse) {\n super();\n if (optsConnection instanceof WorkunitsService) {\n this.wsWorkunitsService = optsConnection;\n } else {\n this.wsWorkunitsService = new WorkunitsService(optsConnection);\n }\n this.topology = Topology.attach(this.wsWorkunitsService.opts());\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, state?: QueryEx): 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 if (state) {\n retVal.set(state);\n }\n return retVal;\n }\n\n private _eclService: Promise<EclService>;\n protected async wsEclService(): Promise<EclService | undefined> {\n if (!this._eclService) {\n this._eclService = this.topology.fetchServices({}).then(services => {\n for (const espServer of services?.TpEspServers?.TpEspServer ?? []) {\n for (const binding of espServer?.TpBindings?.TpBinding ?? []) {\n if (binding?.Service === \"ws_ecl\") {\n const baseUrl = `${binding.Protocol}://${globalThis.location.hostname}:${binding.Port}`;\n return new EclService({ baseUrl });\n }\n }\n }\n return undefined;\n });\n }\n return this._eclService;\n }\n\n private async fetchDetails(): Promise<void> {\n const queryDetails = await this.wsWorkunitsService.WUQueryDetails({\n QuerySet: this.QuerySet,\n QueryId: this.QueryId,\n IncludeStateOnClusters: true,\n IncludeSuperFiles: true,\n IncludeWsEclAddresses: true,\n CheckAllNodes: false\n });\n this.set({ ...queryDetails } as QueryEx);\n }\n\n private async fetchRequestSchema(): Promise<void> {\n const wsEclService = await this.wsEclService();\n try {\n this._requestSchema = await wsEclService?.requestJson(this.QuerySet, this.QueryId) ?? [];\n } catch (e: any) {\n // See: https://track.hpccsystems.com/browse/HPCC-29827\n logger.debug(e.message ?? e);\n this._requestSchema = [];\n }\n }\n\n private async fetchResponseSchema(): Promise<void> {\n const wsEclService = await this.wsEclService();\n try {\n this._responseSchema = await wsEclService?.responseJson(this.QuerySet, this.QueryId) ?? {};\n } catch (e: any) {\n // See: https://track.hpccsystems.com/browse/HPCC-29827\n logger.debug(e.message ?? e);\n this._responseSchema = {};\n }\n }\n\n private async fetchSchema(): Promise<void> {\n await Promise.all([this.fetchRequestSchema(), this.fetchResponseSchema()]);\n }\n\n fetchSummaryStats() {\n return this.wsWorkunitsService.WUQueryGetSummaryStats({ Target: this.QuerySet, QueryId: this.QueryId });\n }\n\n fetchGraph(GraphName: string = \"\", SubGraphId: string = \"\"): Promise<QueryGraph> {\n return this.wsWorkunitsService.WUQueryGetGraph({ Target: this.QuerySet, QueryId: this.QueryId, GraphName, SubGraphId }).then(response => {\n const graph = new QueryGraph();\n let first = true;\n for (const graphItem of response?.Graphs?.ECLGraphEx || []) {\n if (first) {\n graph.load(graphItem.Graph);\n first = false;\n } else {\n graph.merge(graphItem.Graph);\n }\n }\n return graph;\n });\n }\n\n fetchDetailsNormalized(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<{ meta: WsWorkunits.WUDetailsMetaResponse | undefined, columns: { [id: string]: any } | undefined, data: IScope[] | undefined }> {\n const wu = Workunit.attach(this.wsWorkunitsService, this.Wuid);\n if (wu) {\n return Promise.all([this.fetchGraph(), wu.fetchDetailsMeta(), wu.fetchDetailsRaw(request)]).then(promises => {\n const graph = promises[0];\n const meta = promises[1];\n const metrics: WsWorkunits.Scope[] = promises[2];\n const data = metrics.map(metric => {\n const firstChar = metric.Id[0];\n if (firstChar === \"a\" || firstChar === \"e\") {\n const item = graph.idx[metric.Id.substring(1)];\n if (!item) {\n logger.debug(`Missing graph data for metric ID: ${metric.Id}`);\n return metric;\n }\n const existingProperties = new Set(metric.Properties.Property.map(prop => prop.Name));\n const newProperties: WsWorkunits.Property[] = [];\n for (const key in item) {\n const firstCharOfKey = key.charAt(0);\n if (firstCharOfKey !== \"_\" &&\n firstCharOfKey === firstCharOfKey.toUpperCase() &&\n !existingProperties.has(key)) {\n const value = item[key];\n const valueType = typeof value;\n if (valueType === \"string\" || valueType === \"number\" || valueType === \"boolean\") {\n const isNum = isNumber(value);\n let rawValue = isNum ? parseFloat(value as string) : value;\n let formatted = value;\n if (key.indexOf(\"Time\") >= 0) {\n rawValue = (rawValue as number) / 1000000000;\n formatted = siFormatter(rawValue) + \"s\";\n }\n newProperties.push({\n Name: key,\n RawValue: rawValue as any,\n Formatted: formatted\n } as WsWorkunits.Property);\n }\n }\n }\n if (newProperties.length > 0) {\n metric.Properties.Property.push(...newProperties);\n }\n }\n return metric;\n });\n return wu.normalizeDetails(meta, data);\n });\n }\n return Promise.resolve({ meta: undefined, columns: undefined, data: undefined });\n }\n\n async submit(request: object): Promise<Array<{ [key: string]: object[] }>> {\n const wsEclService = await this.wsEclService();\n try {\n return wsEclService?.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 } catch (e: any) {\n // See: https://track.hpccsystems.com/browse/HPCC-29827\n logger.debug(e.message ?? e);\n return [];\n }\n }\n\n async refresh(): Promise<this> {\n await Promise.all([\n this.fetchDetails(),\n this.fetchSchema()\n ]);\n return 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", "import { Cache, exists, StateCallback, StateEvents, StateObject, StatePropCallback } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { TopologyService, WsTopology } from \"../services/wsTopology.ts\";\nimport { TargetCluster } from \"./targetCluster.ts\";\n\nexport class TopologyCache extends Cache<{ BaseUrl: string }, Topology> {\n constructor() {\n super((obj) => {\n return obj.BaseUrl;\n });\n }\n}\nconst _topology = new TopologyCache();\n\nexport interface TopologyStateEx {\n TargetClusters?: WsTopology.TpTargetCluster[];\n LogicalClusters?: WsTopology.TpLogicalCluster[];\n Services?: WsTopology.ServiceList;\n}\nexport class Topology extends StateObject<TopologyStateEx, TopologyStateEx> implements TopologyStateEx {\n protected connection: TopologyService;\n get BaseUrl() { return this.connection.baseUrl; }\n\n // Accessors ---\n get properties(): TopologyStateEx { return this.get(); }\n get TargetClusters(): WsTopology.TpTargetCluster[] { return this.get(\"TargetClusters\"); }\n get CTargetClusters(): TargetCluster[] {\n return this.TargetClusters.map(tc => TargetCluster.attach(this.connection, tc.Name, tc));\n }\n get LogicalClusters(): WsTopology.TpLogicalCluster[] { return this.get(\"LogicalClusters\"); }\n get Services(): WsTopology.ServiceList { return this.get(\"Services\"); }\n\n static attach(optsConnection: IOptions | IConnection | TopologyService, state?: TopologyStateEx): Topology {\n const retVal: Topology = _topology.get({ BaseUrl: optsConnection.baseUrl }, () => {\n return new Topology(optsConnection);\n });\n if (state) {\n retVal.set(state);\n }\n return retVal;\n }\n\n protected 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 fetchLogicalClusters(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.TpLogicalCluster[]> {\n return this.connection.TpLogicalClusterQuery(request).then(response => {\n this.set({\n LogicalClusters: response.TpLogicalClusters.TpLogicalCluster\n });\n return this.LogicalClusters;\n });\n }\n\n fetchServices(request: WsTopology.TpServiceQueryRequest = {}): Promise<WsTopology.ServiceList> {\n return this.connection.TpServiceQuery(request).then(response => {\n this.set({\n Services: response.ServiceList\n });\n return this.Services;\n });\n }\n\n protected _prevRefresh;\n refresh(force: boolean = false): Promise<this> {\n if (!this._prevRefresh || force) {\n this._prevRefresh = Promise.all([this.fetchTargetClusters(), this.fetchLogicalClusters(), this.fetchServices()]).then(() => {\n return this;\n });\n }\n return this._prevRefresh;\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 { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsMachine, WsMachineEx, MachineService } from \"../services/wsMachine.ts\";\nimport { TopologyService, WsTopology } from \"../services/wsTopology.ts\";\nimport { Machine } from \"./machine.ts\";\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: WsMachine.MachineInfoEx[];\n}\n\nexport type UTargetClusterState = WsTopology.TpTargetCluster & WsTopology.TpClusterNameType & TpTargetClusterEx;\nexport type ITargetClusterState = WsTopology.TpTargetCluster | WsTopology.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(): WsTopology.TpClusters { return this.get(\"TpClusters\"); }\n get TpEclCCServers(): WsTopology.TpEclCCServers { return this.get(\"TpEclCCServers\"); }\n get TpEclServers(): WsTopology.TpEclServers { return this.get(\"TpEclServers\"); }\n get TpEclAgents(): WsTopology.TpEclAgents { return this.get(\"TpEclAgents\"); }\n get TpEclSchedulers(): WsTopology.TpEclSchedulers { return this.get(\"TpEclSchedulers\"); }\n get MachineInfoEx(): WsMachine.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(state);\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: WsMachine.GetTargetClusterInfoRequest = {}): Promise<Machine[]> {\n return this.machineConnection.GetTargetClusterInfo({\n TargetClusters: {\n Item: [`${this.Type}:${this.Name}`]\n },\n ...request\n }).then(response => {\n const retVal: WsMachine.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<WsMachineEx.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: WsTopology.TpClusterNameType;\n let defaultItem: WsTopology.TpClusterNameType;\n let hthorItem: WsTopology.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", "// Ported from: https://github.com/hpcc-systems/HPCC-Platform/blob/f0ed9dbeca49c39fb55aa28fec295c89407ac663/esp/src/src/ESPGraph.ts\n\nexport function safeAssign(obj: { [id: string]: any }, key: string, value: string) {\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") return;\n obj[key] = value;\n}\n\nfunction xmlEncode(str: string): string {\n str = \"\" + str;\n return str.replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\\n/g, \" \")\n .replace(/\\r/g, \" \")\n ;\n}\n\nfunction espTime2Seconds(duration?: string): number {\n if (!duration) {\n return 0;\n } else if (!isNaN(+duration)) {\n return parseFloat(duration);\n }\n const re = /(?:(?:(\\d+).days.)?(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+\\.\\d+|\\d+)s))|(?:(\\d+\\.\\d+|\\d+)ms|(\\d+\\.\\d+|\\d+)us|(\\d+\\.\\d+|\\d+)ns)/;\n const match = re.exec(duration);\n if (!match) return 0;\n const days = +match[1] || 0;\n const hours = +match[2] || 0;\n const mins = +match[3] || 0;\n const secs = +match[4] || 0;\n const ms = +match[5] || 0;\n const us = +match[6] || 0;\n const ns = +match[7] || 0;\n return (days * 24 * 60 * 60) + (hours * 60 * 60) + (mins * 60) + secs + ms / 1000 + us / 1000000 + ns / 1000000000;\n}\n\nfunction unitTest(size: string, unit: string) {\n const nsIndex = size.indexOf(unit);\n if (nsIndex !== -1) {\n return parseFloat(size.substring(0, nsIndex));\n }\n return -1;\n}\n\nfunction espSize2Bytes(size: string): number {\n if (!size) {\n return 0;\n } else if (!isNaN(+size)) {\n return parseFloat(size);\n }\n let retVal = unitTest(size, \"Kb\");\n if (retVal >= 0) {\n return retVal * 1024;\n }\n retVal = unitTest(size, \"Mb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 2);\n }\n retVal = unitTest(size, \"Gb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 3);\n }\n retVal = unitTest(size, \"Tb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 4);\n }\n retVal = unitTest(size, \"Pb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 5);\n }\n retVal = unitTest(size, \"Eb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 6);\n }\n retVal = unitTest(size, \"Zb\");\n if (retVal >= 0) {\n return retVal * Math.pow(1024, 7);\n }\n retVal = unitTest(size, \"b\");\n if (retVal >= 0) {\n return retVal;\n }\n return 0;\n}\n\nfunction espSkew2Number(skew: string): number {\n if (!skew) {\n return 0;\n }\n return parseFloat(skew);\n}\n\nenum GRAPH_TYPE {\n UNKNOWN = 0,\n GRAPH = 1,\n SUBGRAPH = 2,\n VERTEX = 3,\n EDGE = 4,\n LAST = 5\n}\n\nenum GRAPH_TYPE_STRING {\n UNKNOWN = \"Unknown\",\n GRAPH = \"Graph\",\n SUBGRAPH = \"Cluster\",\n VERTEX = \"Vertex\",\n EDGE = \"Edge\",\n LAST = \"Last\"\n}\n\nclass LocalisedXGMMLWriter {\n\n graph: QueryGraph;\n m_xgmml: string;\n m_visibleSubgraphs: { [id: string]: Subgraph };\n m_visibleVertices: { [id: string]: Vertex };\n m_semiVisibleVertices: { [id: string]: Vertex };\n m_visibleEdges: { [id: string]: Edge };\n noSpills: boolean;\n\n constructor(graph: QueryGraph) {\n this.graph = graph;\n\n this.m_xgmml = \"\";\n this.m_visibleSubgraphs = {};\n this.m_visibleVertices = {};\n this.m_semiVisibleVertices = {};\n this.m_visibleEdges = {};\n }\n\n calcVisibility(items: GraphItem[], localisationDepth: number, localisationDistance: number, noSpills: boolean): void {\n this.noSpills = noSpills;\n items.forEach((item) => {\n if (this.graph.isVertex(item)) {\n this.calcInVertexVisibility(item, localisationDistance);\n this.calcOutVertexVisibility(item, localisationDistance);\n } else if (this.graph.isEdge(item)) {\n this.calcInVertexVisibility(item.getSource(), localisationDistance - 1);\n this.calcOutVertexVisibility(item.getTarget(), localisationDistance - 1);\n } else if (this.graph.isSubgraph(item)) {\n this.m_visibleSubgraphs[item.__hpcc_id] = item;\n this.calcSubgraphVisibility(item, localisationDepth - 1);\n }\n });\n this.calcVisibility2();\n }\n\n calcInVertexVisibility(vertex: Vertex, localisationDistance: number) {\n if (this.noSpills && vertex.isSpill()) {\n localisationDistance++;\n }\n this.m_visibleVertices[vertex.__hpcc_id] = vertex;\n if (localisationDistance > 0) {\n vertex.getInEdges().forEach(edge => {\n this.calcInVertexVisibility(edge.getSource(), localisationDistance - 1);\n });\n }\n }\n\n calcOutVertexVisibility(vertex: Vertex, localisationDistance: number): void {\n if (this.noSpills && vertex.isSpill()) {\n localisationDistance++;\n }\n this.m_visibleVertices[vertex.__hpcc_id] = vertex;\n if (localisationDistance > 0) {\n vertex.getOutEdges().forEach(edge => {\n this.calcOutVertexVisibility(edge.getTarget(), localisationDistance - 1);\n });\n }\n }\n\n calcSubgraphVisibility(subgraph: Subgraph, localisationDepth: number): void {\n if (localisationDepth < 0) {\n return;\n }\n\n if (localisationDepth > 0) {\n subgraph.__hpcc_subgraphs.forEach((subgraph, idx) => {\n this.calcSubgraphVisibility(subgraph, localisationDepth - 1);\n });\n }\n\n subgraph.__hpcc_subgraphs.forEach((subgraph, idx) => {\n this.m_visibleSubgraphs[subgraph.__hpcc_id] = subgraph;\n });\n subgraph.__hpcc_vertices.forEach((vertex, idx) => {\n this.m_visibleVertices[vertex.__hpcc_id] = vertex;\n });\n\n // Calculate edges that pass through the subgraph ---\n const dedupEdges = {};\n this.graph.edges.forEach((edge: Edge, idx: any) => {\n if (edge.getSource().__hpcc_parent !== edge.getTarget().__hpcc_parent && subgraph === this.getCommonAncestor(edge)) {\n // Only include one unique edge between subgraphs ---\n if (!dedupEdges[edge.getSource().__hpcc_parent.__hpcc_id + \"::\" + edge.getTarget().__hpcc_parent.__hpcc_id]) {\n dedupEdges[edge.getSource().__hpcc_parent.__hpcc_id + \"::\" + edge.getTarget().__hpcc_parent.__hpcc_id] = true;\n this.m_visibleEdges[edge.__hpcc_id] = edge;\n }\n }\n });\n }\n\n buildVertexString(vertex: Vertex, isPoint: boolean): string {\n let attrStr = \"\";\n let propsStr = \"\";\n const props = vertex.getProperties();\n for (const key in props) {\n if (isPoint && key.indexOf(\"_kind\") >= 0) {\n propsStr += \"<att name=\\\"_kind\\\" value=\\\"point\\\"/>\";\n } else if (key === \"id\" || key === \"label\") {\n attrStr += \" \" + key + \"=\\\"\" + xmlEncode(props[key]) + \"\\\"\";\n } else {\n propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\n }\n }\n return \"<node\" + attrStr + \">\" + propsStr + \"</node>\";\n }\n\n buildEdgeString(edge: Edge): string {\n let attrStr: string = \"\";\n let propsStr: string = \"\";\n const props = edge.getProperties();\n for (const key in props) {\n if (key.toLowerCase() === \"id\" ||\n key.toLowerCase() === \"label\" ||\n key.toLowerCase() === \"source\" ||\n key.toLowerCase() === \"target\") {\n attrStr += \" \" + key + \"=\\\"\" + xmlEncode(props[key]) + \"\\\"\";\n } else {\n propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\n }\n }\n return \"<edge\" + attrStr + \">\" + propsStr + \"</edge>\";\n }\n\n getAncestors(v: Vertex, ancestors: Subgraph[]): void {\n let parent = v.__hpcc_parent;\n while (parent) {\n ancestors.push(parent);\n parent = parent.__hpcc_parent;\n }\n }\n\n getCommonAncestorV(v1: Vertex, v2: Vertex): Subgraph | null {\n const v1_ancestors = [];\n const v2_ancestors = [];\n this.getAncestors(v1, v1_ancestors);\n this.getAncestors(v2, v2_ancestors);\n let finger1 = v1_ancestors.length - 1;\n let finger2 = v2_ancestors.length - 1;\n let retVal = null;\n while (finger1 >= 0 && finger2 >= 0 && v1_ancestors[finger1] === v2_ancestors[finger2]) {\n retVal = v1_ancestors[finger1];\n --finger1;\n --finger2;\n }\n return retVal;\n }\n\n getCommonAncestor(e: Edge): Subgraph | null {\n return this.getCommonAncestorV(e.getSource(), e.getTarget());\n }\n\n calcAncestorVisibility(vertex: Vertex): void {\n const ancestors = [];\n this.getAncestors(vertex, ancestors);\n ancestors.forEach((item, idx) => {\n this.m_visibleSubgraphs[item.__hpcc_id] = item;\n });\n }\n\n calcVisibility2(): void {\n for (const key in this.m_visibleVertices) {\n const vertex = this.m_visibleVertices[key];\n vertex.getInEdges().forEach((edge: Edge, idx: any) => {\n this.m_visibleEdges[edge.__hpcc_id] = edge;\n });\n vertex.getOutEdges().forEach((edge: Edge, idx: any) => {\n this.m_visibleEdges[edge.__hpcc_id] = edge;\n });\n this.calcAncestorVisibility(vertex);\n }\n this.calcSemiVisibleVertices();\n }\n\n addSemiVisibleEdge(edge: Edge): void {\n if (edge && !this.m_visibleEdges[edge.__hpcc_id]) {\n this.m_visibleEdges[edge.__hpcc_id] = edge;\n }\n }\n\n addSemiVisibleVertex(vertex: Vertex): void {\n if (!this.m_visibleVertices[vertex.__hpcc_id]) {\n this.m_semiVisibleVertices[vertex.__hpcc_id] = vertex;\n this.calcAncestorVisibility(vertex);\n }\n }\n\n calcSemiVisibleVertices(): void {\n for (const key in this.m_visibleEdges) {\n const edge = this.m_visibleEdges[key];\n let source = edge.getSource();\n this.addSemiVisibleVertex(source);\n while (this.noSpills && source.isSpill()) {\n const inEdges = source.getInEdges();\n if (inEdges.length) {\n this.addSemiVisibleEdge(inEdges[0]);\n source = inEdges[0].getSource();\n this.addSemiVisibleVertex(source);\n } else {\n break;\n }\n }\n let target = edge.getTarget();\n this.addSemiVisibleVertex(target);\n while (this.noSpills && target.isSpill()) {\n const outEdges = target.getOutEdges();\n if (outEdges.length) {\n this.addSemiVisibleEdge(outEdges[0]);\n target = outEdges[0].getTarget();\n this.addSemiVisibleVertex(target);\n } else {\n break;\n }\n }\n }\n }\n\n writeXgmml(): void {\n this.subgraphVisited(this.graph.subgraphs[0], true);\n this.graph.edges.forEach((edge: any, idx: any) => {\n this.edgeVisited(edge);\n });\n }\n\n subgraphVisited(subgraph: Subgraph, root: boolean = false): boolean {\n if (this.m_visibleSubgraphs[subgraph.__hpcc_id]) {\n let propsStr = \"\";\n this.m_xgmml += root ? \"\" : \"<node id=\\\"\" + subgraph.__hpcc_id + \"\\\"><att><graph>\";\n const xgmmlLen = this.m_xgmml.length;\n subgraph.walkSubgraphs(this);\n subgraph.walkVertices(this);\n if (xgmmlLen === this.m_xgmml.length) {\n // Add at least one child otherwise subgraphs will render as a vertex ---\n const vertex = subgraph.__hpcc_vertices[0];\n if (vertex) {\n this.m_xgmml += this.buildVertexString(vertex, true);\n }\n }\n\n const props = subgraph.getProperties();\n for (const key in props) {\n propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\n }\n this.m_xgmml += root ? \"\" : \"</graph></att>\" + propsStr + \"</node>\";\n }\n return false;\n }\n\n vertexVisited(vertex: Vertex) {\n if (this.m_visibleVertices[vertex.__hpcc_id]) {\n this.m_xgmml += this.buildVertexString(vertex, false);\n } else if (this.m_semiVisibleVertices[vertex.__hpcc_id]) {\n this.m_xgmml += this.buildVertexString(vertex, true);\n }\n }\n\n edgeVisited(edge: Edge) {\n if (this.m_visibleEdges[edge.__hpcc_id]) {\n this.m_xgmml += this.buildEdgeString(edge);\n }\n }\n}\n\nabstract class GraphItem {\n\n abstract _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\";\n\n __hpcc_graph: QueryGraph;\n __hpcc_parent: Subgraph;\n __widget: any;\n\n __hpcc_id: string;\n _globalID: string;\n\n constructor(graph: QueryGraph, id: string) {\n this.__hpcc_graph = graph;\n this.__hpcc_id = id;\n this._globalID = id;\n }\n\n getProperties() {\n const retVal: { [id: string]: any } = {};\n for (const key in this) {\n if (key.indexOf(\"__\") !== 0 && this.hasOwnProperty(key)) {\n retVal[key] = this[key];\n }\n }\n return retVal;\n }\n}\n\nclass Subgraph extends GraphItem {\n _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\";\n\n __hpcc_subgraphs: any[];\n __hpcc_vertices: any[];\n __hpcc_edges: any[];\n id: string;\n\n constructor(graph: QueryGraph, id: string) {\n super(graph, id);\n this._globalType = id === \"0\" ? \"Graph\" : \"Cluster\";\n this.__hpcc_subgraphs = [];\n this.__hpcc_vertices = [];\n this.__hpcc_edges = [];\n this.id = id;\n }\n\n addSubgraph(subgraph) {\n subgraph.__hpcc_parent = this;\n if (!this.__hpcc_subgraphs.some(subgraph2 => subgraph === subgraph2)) {\n this.__hpcc_subgraphs.push(subgraph);\n }\n }\n\n addVertex(vertex) {\n vertex.__hpcc_parent = this;\n if (!this.__hpcc_vertices.some(vertex2 => vertex === vertex2)) {\n this.__hpcc_vertices.push(vertex);\n }\n }\n\n removeVertex(vertex: any) {\n this.__hpcc_vertices = this.__hpcc_vertices.filter(vertex2 => vertex !== vertex2);\n }\n\n addEdge(edge) {\n edge.__hpcc_parent = this;\n if (!this.__hpcc_edges.some(edge2 => edge === edge2)) {\n this.__hpcc_edges.push(edge);\n }\n }\n\n removeEdge(edge: any) {\n this.__hpcc_edges = this.__hpcc_edges.filter(edge2 => edge !== edge2);\n }\n\n remove() {\n this.__hpcc_subgraphs.forEach(subgraph => subgraph.__hpcc_parent = this.__hpcc_parent);\n this.__hpcc_vertices.forEach(vertex => vertex.__hpcc_parent = this.__hpcc_parent);\n this.__hpcc_edges.forEach(edge => edge.__hpcc_parent = this.__hpcc_parent);\n delete this.__hpcc_parent;\n this.__hpcc_graph.removeItem(this);\n }\n\n walkSubgraphs(visitor: { subgraphVisited: (arg0: Subgraph) => boolean; }) {\n this.__hpcc_subgraphs.forEach((subgraph, idx) => {\n if (visitor.subgraphVisited(subgraph)) {\n subgraph.walkSubgraphs(visitor);\n }\n });\n }\n\n walkVertices(visitor: { vertexVisited: (arg0: Vertex) => void; }) {\n this.__hpcc_vertices.forEach((vertex, idx) => {\n visitor.vertexVisited(vertex);\n });\n }\n}\n\nclass Vertex extends GraphItem {\n _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\" = \"Vertex\";\n _isSpill: boolean;\n\n constructor(graph: QueryGraph, id: string) {\n super(graph, id);\n }\n\n isSpill() {\n return this._isSpill;\n }\n\n remove() {\n const inVertices = this.getInVertices();\n if (inVertices.length <= 1) {\n console.warn(this.__hpcc_id + \": remove only supports single or zero inputs activities...\");\n }\n this.getInEdges().forEach((edge: Edge) => {\n edge.remove();\n });\n this.getOutEdges().forEach((edge: Edge) => {\n edge.setSource(inVertices[0]);\n });\n this.__hpcc_parent?.removeVertex(this);\n this.__hpcc_graph.removeItem(this);\n }\n\n getInVertices(): Vertex[] {\n return this.getInEdges().map((edge) => {\n return edge.getSource();\n });\n }\n\n getInEdges(): Edge[] {\n return this.__hpcc_graph.edges.filter((edge) => {\n return edge.getTarget() === this;\n });\n }\n\n getOutVertices(): Vertex[] {\n return this.getOutEdges().map((edge) => {\n return edge.getTarget();\n });\n }\n\n getOutEdges(): Edge[] {\n return this.__hpcc_graph.edges.filter((edge) => {\n return edge.getSource() === this;\n });\n }\n}\n\nclass Edge extends GraphItem {\n _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\" = \"Edge\";\n\n _sourceActivity: any;\n source: any;\n _targetActivity: any;\n target: any;\n\n constructor(graph: QueryGraph, id: string) {\n super(graph, id);\n this._globalType = \"Edge\";\n }\n\n remove() {\n this.__hpcc_graph.subgraphs.forEach((subgraph) => {\n subgraph.removeEdge(this);\n });\n this.__hpcc_graph.removeItem(this);\n }\n\n getSource(): Vertex {\n return this.__hpcc_graph.idx[this._sourceActivity || this.source] as Vertex;\n }\n\n setSource(source: Vertex) {\n if (this._sourceActivity) {\n this._sourceActivity = source.__hpcc_id;\n } else if (this.source) {\n this.source = source.__hpcc_id;\n }\n if (this.__widget) {\n this.__widget.setSource(this.getSource().__widget);\n }\n }\n\n getTarget(): Vertex {\n return this.__hpcc_graph.idx[this._targetActivity || this.target] as Vertex;\n }\n}\n\nexport class QueryGraph {\n idx: { [id: string]: Subgraph | Vertex | Edge } = {};\n subgraphs: Subgraph[] = [];\n vertices: Vertex[] = [];\n edges: Edge[] = [];\n\n xgmml: string = \"\";\n\n constructor() {\n this.clear();\n }\n\n clear() {\n this.xgmml = \"\";\n\n this.idx = {};\n this.subgraphs = [];\n this.vertices = [];\n this.edges = [];\n }\n\n load(xgmml: string) {\n this.clear();\n this.merge(xgmml);\n }\n\n merge(xgmml: string) {\n this.xgmml = xgmml;\n const parser = new DOMParser();\n const dom = parser.parseFromString(xgmml, \"text/xml\");\n this.walkDocument(dom.documentElement, \"0\");\n }\n\n isSubgraph(item: GraphItem): item is Subgraph {\n return item instanceof Subgraph;\n }\n\n isVertex(item: GraphItem): item is Vertex {\n return item instanceof Vertex;\n }\n\n isEdge(item: GraphItem): item is Edge {\n return item instanceof Edge;\n }\n\n getGlobalType(item: QueryGraph | Subgraph | Vertex | Edge): GRAPH_TYPE {\n if (item instanceof Vertex) {\n return GRAPH_TYPE.VERTEX;\n } else if (item instanceof Edge) {\n return GRAPH_TYPE.EDGE;\n } else if (item instanceof Subgraph) {\n return GRAPH_TYPE.SUBGRAPH;\n } else if (item instanceof QueryGraph) {\n return GRAPH_TYPE.GRAPH;\n }\n return GRAPH_TYPE.UNKNOWN;\n }\n\n getGlobalTypeString(item: QueryGraph | Subgraph | Vertex | Edge): GRAPH_TYPE_STRING {\n if (item instanceof Vertex) {\n return GRAPH_TYPE_STRING.VERTEX;\n } else if (item instanceof Edge) {\n return GRAPH_TYPE_STRING.EDGE;\n } else if (item instanceof Subgraph) {\n return GRAPH_TYPE_STRING.SUBGRAPH;\n } else if (item instanceof QueryGraph) {\n return GRAPH_TYPE_STRING.GRAPH;\n }\n return GRAPH_TYPE_STRING.UNKNOWN;\n }\n\n getItem(docNode: HTMLElement, id: string): Subgraph | Vertex | Edge {\n if (!this.idx[id]) {\n switch (docNode.tagName) {\n case \"graph\":\n const subgraph = new Subgraph(this, id);\n this.subgraphs.push(subgraph);\n this.idx[id] = subgraph;\n break;\n case \"node\":\n const vertex = new Vertex(this, id);\n this.vertices.push(vertex);\n this.idx[id] = vertex;\n break;\n case \"edge\":\n const edge = new Edge(this, id);\n this.edges.push(edge);\n this.idx[id] = edge;\n break;\n default:\n console.warn(\"Graph.getItem - Unknown Node Type!\");\n break;\n }\n }\n const retVal = this.idx[id];\n Array.from(docNode.attributes).forEach(attr => {\n safeAssign(retVal, attr.name, attr.value);\n });\n return retVal;\n }\n\n removeItem(item: Subgraph | Vertex | Edge) {\n delete this.idx[item.__hpcc_id];\n if (item instanceof Subgraph) {\n this.subgraphs = this.subgraphs.filter((subgraph: Subgraph) => {\n return item !== subgraph;\n });\n } else if (item instanceof Vertex) {\n this.vertices = this.vertices.filter(vertex => {\n return item !== vertex;\n });\n } else if (item instanceof Edge) {\n this.edges = this.edges.filter((edge: Edge) => {\n return item !== edge;\n });\n }\n }\n\n getChildByTagName(docNode: HTMLElement, tagName: string): HTMLElement | null {\n let retVal: HTMLElement | null = null;\n Array.from(docNode.childNodes as NodeListOf<HTMLElement>).some((childNode) => {\n if (childNode.tagName === tagName) {\n retVal = childNode;\n return true;\n }\n });\n return retVal;\n }\n\n walkDocument(docNode: HTMLElement, id: string): Subgraph | Vertex | Edge {\n const retVal: any = this.getItem(docNode, id);\n (docNode.childNodes as NodeListOf<HTMLElement>).forEach((childNode) => {\n switch (childNode.nodeType) {\n case 1: // \tELEMENT_NODE\n switch (childNode.tagName) {\n case \"graph\":\n break;\n case \"node\":\n let isSubgraph = false;\n const attNode = this.getChildByTagName(childNode, \"att\");\n if (attNode) {\n const graphNode = this.getChildByTagName(attNode, \"graph\");\n if (graphNode) {\n isSubgraph = true;\n const subgraph = this.walkDocument(graphNode, childNode.getAttribute(\"id\"));\n retVal.addSubgraph(subgraph);\n }\n }\n if (!isSubgraph) {\n const vertex = this.walkDocument(childNode, childNode.getAttribute(\"id\"));\n retVal.addVertex(vertex);\n }\n break;\n case \"att\":\n const name = childNode.getAttribute(\"name\");\n const uname = \"_\" + name;\n const value = childNode.getAttribute(\"value\");\n if (name.indexOf(\"Time\") === 0) {\n safeAssign(retVal, uname, value);\n safeAssign(retVal, name, \"\" + espTime2Seconds(value));\n } else if (name.indexOf(\"Size\") === 0) {\n safeAssign(retVal, uname, value);\n safeAssign(retVal, name, \"\" + espSize2Bytes(value));\n } else if (name.indexOf(\"Skew\") === 0) {\n safeAssign(retVal, uname, value);\n safeAssign(retVal, name, \"\" + espSkew2Number(value));\n } else {\n safeAssign(retVal, name, value);\n }\n break;\n case \"edge\":\n const edge: any = this.walkDocument(childNode, childNode.getAttribute(\"id\"));\n if (edge.NumRowsProcessed !== undefined) {\n edge._eclwatchCount = edge.NumRowsProcessed.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n } else if (edge.Count !== undefined) {\n edge._eclwatchCount = edge.Count.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n } else if (edge.count !== undefined) {\n edge._eclwatchCount = edge.count.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n }\n if (edge.inputProgress) {\n edge._eclwatchInputProgress = \"[\" + edge.inputProgress.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") + \"]\";\n }\n if (edge.SkewMaxRowsProcessed && edge.SkewMinRowsProcessed) {\n edge._eclwatchSkew = \"+\" + edge.SkewMaxRowsProcessed + \", \" + edge.SkewMinRowsProcessed;\n }\n if (edge._dependsOn) {\n } else if (edge._childGraph) {\n } else if (edge._sourceActivity || edge._targetActivity) {\n edge._isSpill = true;\n const source = edge.getSource();\n if (source) {\n source._isSpill = true;\n }\n const target = edge.getTarget();\n if (target) {\n target._isSpill = true;\n }\n }\n retVal.addEdge(edge);\n break;\n default:\n break;\n }\n break;\n case 2: // \tATTRIBUTE_NODE\n case 3: // \tTEXT_NODE\n case 4: // \tCDATA_SECTION_NODE\n case 5: // \tENTITY_REFERENCE_NODE\n case 6: // \tENTITY_NODE\n case 7: // \tPROCESSING_INSTRUCTION_NODE\n case 8: // \tCOMMENT_NODE\n case 9: // \tDOCUMENT_NODE\n case 10: // \tDOCUMENT_TYPE_NODE\n case 11: // \tDOCUMENT_FRAGMENT_NODE\n case 12: // \tNOTATION_NODE\n break;\n default:\n break;\n }\n });\n return retVal;\n }\n\n removeSubgraphs(): void {\n const subgraphs = [...this.subgraphs];\n subgraphs.forEach((subgraph) => {\n if (subgraph.__hpcc_parent instanceof Subgraph) {\n subgraph.remove();\n }\n });\n }\n\n removeSpillVertices(): void {\n const vertices = [...this.vertices];\n vertices.forEach((vertex) => {\n if (vertex.isSpill()) {\n vertex.remove();\n }\n });\n }\n\n getLocalisedXGMML(items: GraphItem[], localisationDepth: number, localisationDistance: number, noSpills: boolean): string {\n const xgmmlWriter = new LocalisedXGMMLWriter(this);\n xgmmlWriter.calcVisibility(items, localisationDepth, localisationDistance, noSpills);\n xgmmlWriter.writeXgmml();\n return \"<graph>\" + xgmmlWriter.m_xgmml + \"</graph>\";\n }\n}\n", "import { Cache, Dispatch, IObserverHandle, Message } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { StoreService } from \"../services/wsStore.ts\";\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<ValueChangedMessage>();\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, 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, IEvent, scopedLogger, StateCallback, StateEvents, StateObject, StatePropCallback } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\nimport { WsSMC } from \"../services/wsSMC.ts\";\nimport { FileSpray, FileSprayService, UpdateDFUWorkunitEx } from \"../services/fileSpray.ts\";\nimport * as WsTopology from \"../services/wsTopology.ts\";\n\nconst logger = scopedLogger(\"@hpcc-js/comms/dfuWorkunit.ts\");\n\nenum States {\n Unknown = 0,\n Scheduled,\n Queued,\n Started,\n Aborted,\n Failed,\n Finished,\n Monitoring,\n Aborting,\n NotFound = 999\n}\n\nexport class DFUWorkunitCache extends Cache<{ BaseUrl: string, ID: string }, DFUWorkunit> {\n constructor() {\n super((obj) => {\n return `${obj.BaseUrl}-${obj.ID}`;\n });\n }\n}\nconst _workunits = new DFUWorkunitCache();\n\nexport type DFUWorkunitEvents = \"finished\" | StateEvents;\nexport type UDFUWorkunitState = FileSpray.DFUWorkunit;\nexport type IDFUWorkunitState = FileSpray.DFUWorkunit | WsSMC.ActiveWorkunit;\nexport class DFUWorkunit extends StateObject<UDFUWorkunitState, IDFUWorkunitState> implements FileSpray.DFUWorkunit {\n connection: FileSprayService;\n topologyConnection: WsTopology.TopologyService;\n get BaseUrl() { return this.connection.baseUrl; }\n\n // Accessors ---\n get properties(): FileSpray.DFUWorkunit { return this.get(); }\n get ID(): string { return this.get(\"ID\"); }\n get DFUServerName(): string { return this.get(\"DFUServerName\"); }\n get ClusterName(): string { return this.get(\"ClusterName\"); }\n get JobName(): string { return this.get(\"JobName\"); }\n get Queue(): string { return this.get(\"Queue\"); }\n get User(): string { return this.get(\"User\"); }\n get isProtected(): boolean { return this.get(\"isProtected\"); }\n get Command(): number { return this.get(\"Command\"); }\n get CommandMessage(): string { return this.get(\"CommandMessage\"); }\n get PercentDone(): number { return this.get(\"PercentDone\"); }\n get SecsLeft(): number { return this.get(\"SecsLeft\"); }\n get ProgressMessage(): string { return this.get(\"ProgressMessage\"); }\n get SummaryMessage(): string { return this.get(\"SummaryMessage\"); }\n get State(): number { return this.get(\"State\", States.Unknown); }\n get SourceLogicalName(): string { return this.get(\"SourceLogicalName\"); }\n get SourceIP(): string { return this.get(\"SourceIP\"); }\n get SourceFilePath(): string { return this.get(\"SourceFilePath\"); }\n get SourceDali(): string { return this.get(\"SourceDali\"); }\n get SourceRecordSize(): number { return this.get(\"SourceRecordSize\"); }\n get SourceFormat(): number { return this.get(\"SourceFormat\"); }\n get RowTag(): string { return this.get(\"RowTag\"); }\n get SourceNumParts(): number { return this.get(\"SourceNumParts\"); }\n get SourceDirectory(): string { return this.get(\"SourceDirectory\"); }\n get DestLogicalName(): string { return this.get(\"DestLogicalName\"); }\n get DestGroupName(): string { return this.get(\"DestGroupName\"); }\n get DestDirectory(): string { return this.get(\"DestDirectory\"); }\n get DestIP(): string { return this.get(\"DestIP\"); }\n get DestFilePath(): string { return this.get(\"DestFilePath\"); }\n get DestFormat(): number { return this.get(\"DestFormat\"); }\n get DestNumParts(): number { return this.get(\"DestNumParts\"); }\n get DestRecordSize(): number { return this.get(\"DestRecordSize\"); }\n get Replicate(): boolean { return this.get(\"Replicate\"); }\n get Overwrite(): boolean { return this.get(\"Overwrite\"); }\n get Compress(): boolean { return this.get(\"Compress\"); }\n get SourceCsvSeparate(): string { return this.get(\"SourceCsvSeparate\"); }\n get SourceCsvQuote(): string { return this.get(\"SourceCsvQuote\"); }\n get SourceCsvTerminate(): string { return this.get(\"SourceCsvTerminate\"); }\n get SourceCsvEscape(): string { return this.get(\"SourceCsvEscape\"); }\n get TimeStarted(): string { return this.get(\"TimeStarted\"); }\n get TimeStopped(): string { return this.get(\"TimeStopped\"); }\n get StateMessage(): string { return this.get(\"StateMessage\"); }\n get MonitorEventName(): string { return this.get(\"MonitorEventName\"); }\n get MonitorSub(): boolean { return this.get(\"MonitorSub\"); }\n get MonitorShotLimit(): number { return this.get(\"MonitorShotLimit\"); }\n get SourceDiffKeyName(): string { return this.get(\"SourceDiffKeyName\"); }\n get DestDiffKeyName(): string { return this.get(\"DestDiffKeyName\"); }\n get Archived(): boolean { return this.get(\"Archived\"); }\n get encrypt(): string { return this.get(\"encrypt\"); }\n get decrypt(): string { return this.get(\"decrypt\"); }\n get failIfNoSourceFile(): boolean { return this.get(\"failIfNoSourceFile\"); }\n get recordStructurePresent(): boolean { return this.get(\"recordStructurePresent\"); }\n get quotedTerminator(): boolean { return this.get(\"quotedTerminator\"); }\n get preserveCompression(): boolean { return this.get(\"preserveCompression\"); }\n get expireDays(): number { return this.get(\"expireDays\"); }\n get PreserveFileParts(): boolean { return this.get(\"PreserveFileParts\"); }\n get FileAccessCost(): number { return this.get(\"FileAccessCost\"); }\n get KbPerSecAve(): number { return this.get(\"KbPerSecAve\"); }\n get KbPerSec(): number { return this.get(\"KbPerSec\"); }\n\n // Factories ---\n static create(optsConnection: IOptions | IConnection, dfuServerQueue: string): Promise<DFUWorkunit> {\n const retVal: DFUWorkunit = new DFUWorkunit(optsConnection);\n return retVal.connection.CreateDFUWorkunit({ DFUServerQueue: dfuServerQueue }).then((response) => {\n _workunits.set(retVal);\n retVal.set(response.result);\n return retVal;\n });\n }\n\n static attach(optsConnection: IOptions | IConnection, wuid: string, state?: IDFUWorkunitState): DFUWorkunit {\n const retVal: DFUWorkunit = _workunits.get({ BaseUrl: optsConnection.baseUrl, ID: wuid }, () => {\n return new DFUWorkunit(optsConnection, wuid);\n });\n if (state) {\n retVal.set(state);\n }\n return retVal;\n }\n\n static sprayFixed(server: IOptions | IConnection, request: Partial<FileSpray.SprayFixed>): Promise<DFUWorkunit> {\n const service = new FileSprayService(server);\n return service.SprayFixedEx({\n ...request\n }).then(response => {\n const wuid = response.wuid;\n return service.GetDFUWorkunit({ wuid }).then(response => {\n return DFUWorkunit.attach(server, wuid, response.result);\n });\n });\n }\n\n static sprayVariable(server: IOptions | IConnection, request: Partial<FileSpray.SprayVariable>): Promise<DFUWorkunit> {\n const service = new FileSprayService(server);\n return service.SprayVariableEx({\n ...request\n }).then(response => {\n const wuid = response.wuid;\n return service.GetDFUWorkunit({ wuid }).then(response => {\n return DFUWorkunit.attach(server, wuid, response.result);\n });\n });\n }\n\n static despray(server: IOptions | IConnection, request: Partial<FileSpray.Despray>): Promise<DFUWorkunit> {\n const service = new FileSprayService(server);\n return service.DesprayEx({\n ...request\n }).then(response => {\n const wuid = response.wuid;\n return service.GetDFUWorkunit({ wuid }).then(response => {\n return DFUWorkunit.attach(server, wuid, response.result);\n });\n });\n }\n\n update(request: Partial<UpdateDFUWorkunitEx>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\n return this.connection.UpdateDFUWorkunitEx({\n wu: {\n JobName: request?.wu?.JobName ?? this.JobName,\n isProtected: request?.wu?.isProtected ?? this.isProtected,\n ID: this.ID,\n State: this.State\n },\n ClusterOrig: this.ClusterName,\n JobNameOrig: this.JobName,\n isProtectedOrig: this.isProtected,\n StateOrig: this.State\n });\n }\n\n isComplete(): boolean {\n switch (this.State) {\n case States.Finished:\n case States.Failed:\n case States.Aborted:\n case States.NotFound:\n return true;\n default:\n }\n return false;\n }\n\n isFailed() {\n if (this.isComplete() && this.State !== States.Finished) {\n return true;\n }\n return false;\n }\n\n isDeleted() {\n switch (this.State) {\n case States.NotFound:\n return true;\n default:\n }\n return false;\n }\n\n isRunning(): boolean {\n return !this.isComplete();\n }\n\n abort(): Promise<FileSpray.AbortDFUWorkunitResponse> {\n return this.connection.AbortDFUWorkunit({ wuid: this.ID });\n }\n\n delete() {\n return this.DFUWUAction(FileSpray.DFUWUActions.Delete).then(response => {\n return this.refresh().then(() => {\n this._monitor();\n return response;\n });\n });\n }\n\n async refresh(full: boolean = false): Promise<this> {\n await this.GetDFUWorkunit();\n return this;\n }\n\n fetchXML(callback?: void): Promise<string> {\n return this.DFUWUFile();\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 _monitorTimeoutDuration(): number {\n const retVal = super._monitorTimeoutDuration();\n if (this._monitorTickCount <= 1) { // Once\n return 3000;\n } else if (this._monitorTickCount <= 5) { // Twice\n return 6000;\n } else if (this._monitorTickCount <= 7) { // Twice\n return 12000;\n }\n return retVal;\n }\n\n protected DFUWUFile(_request: Partial<FileSpray.DFUWUFileRequest> = {}): Promise<string> {\n return this.connection.DFUWUFileEx({\n ..._request, Wuid: this.ID\n }).then(response => {\n //TODO: additional processing?\n return response;\n }).catch((e: ESPExceptions) => {\n return \"\";\n });\n }\n\n protected DFUWUAction(actionType: FileSpray.DFUWUActions): Promise<FileSpray.DFUWorkunitsActionResponse> {\n return this.connection.DFUWorkunitsAction({\n wuids: { Item: [this.ID] },\n Type: actionType\n }).then((response) => {\n if (actionType === FileSpray.DFUWUActions.Delete) return response;\n return this.refresh().then(() => {\n this._monitor();\n return response;\n });\n });\n }\n\n // Events ---\n on(eventID: DFUWorkunitEvents, propIDorCallback: StateCallback | keyof UDFUWorkunitState, callback?: StatePropCallback): this {\n if (this.isCallback(propIDorCallback)) {\n switch (eventID) {\n case \"finished\":\n super.on(\"propChanged\", \"State\", (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 // --- --- ---\n protected constructor(optsConnection: IOptions | IConnection, wuid?: string) {\n super();\n this.connection = new FileSprayService(optsConnection);\n this.topologyConnection = new WsTopology.TopologyService(optsConnection);\n this.clearState(wuid);\n }\n\n clearState(wuid?: string) {\n this.clear({\n ID: wuid,\n State: States.Unknown\n });\n }\n\n // FileSpray passthroughs ---\n protected GetDFUWorkunit(_request: Partial<FileSpray.GetDFUWorkunit> = {}): Promise<FileSpray.GetDFUWorkunitResponse> {\n return this.connection.GetDFUWorkunit({ ..._request, wuid: this.ID }).then((response) => {\n this.set(response.result);\n return response;\n }).catch((e: ESPExceptions) => {\n // deleted ---\n const wuMissing = e.Exception.some((exception) => {\n if (exception.Code === 20080 || exception.Code === 20081) {\n this.clearState(this.ID);\n this.set(\"State\", States.NotFound);\n return true;\n }\n return false;\n });\n if (!wuMissing) {\n logger.warning(`Unexpected ESP exception: ${e.message}`);\n throw e;\n }\n return {} as FileSpray.GetDFUWorkunitResponse;\n });\n }\n}", "import * as cp from \"node:child_process\";\nimport * as crypto from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\nimport { exists, scopedLogger, xml2json, XMLNode } from \"@hpcc-js/util\";\nimport { attachWorkspace, Workspace } from \"./eclMeta.ts\";\n\nconst logger = scopedLogger(\"clienttools/eclcc\");\nconst exeExt = os.type() === \"Windows_NT\" ? \".exe\" : \"\";\n\nfunction tidyCRLF(inStr: string): string {\n return inStr.split(\"\\r\\n\").join(\"\\n\").split(\"\\r\").join(\"\\n\");\n}\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 code: number;\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/g, \"\\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 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 interface IBundle {\n name: string;\n description: string;\n url: string;\n props?: { [key: string]: string | number | boolean };\n}\n\nexport class ClientTools {\n readonly eclccPath: string;\n readonly envchkPath: string;\n readonly eclBundlePath: 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.eclBundlePath = path.join(this.binPath, \"ecl-bundle\" + 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 = path.join(os.tmpdir(), `eclcc-wu-tmp-${crypto.randomBytes(8).toString(\"hex\")}`);\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 try {\n if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {\n metaWorkspace.parseMetaXML(execFileResponse.stdout);\n }\n } catch (e: any) {\n logger.error(`fetchMeta: Error parsing XML - ${e?.message ?? \"unknown\"}`);\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 try {\n if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {\n checked = metaWorkspace.parseMetaXML(execFileResponse.stdout);\n }\n } catch (e: any) {\n logger.error(`syntaxCheck: Error parsing XML - ${e?.message ?? \"unknown\"}`);\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 bundleList(): Promise<IBundle[]> {\n const bundlesRegEx = /\\|(.*)\\|(.*)\\|(.*)\\|/g;\n return Promise.all([\n fetch(\"https://raw.githubusercontent.com/hpcc-systems/ecl-bundles/master/README.rst\")\n .then(response => response.text())\n .then(readme => {\n const retVal: IBundle[] = [];\n let m = bundlesRegEx.exec(readme);\n while (m) {\n retVal.push({\n name: m[1].trim(),\n description: m[2].trim(),\n url: m[3].trim()\n });\n m = bundlesRegEx.exec(readme);\n }\n return retVal;\n }),\n this.execFile(this.eclBundlePath, this.cwd, this.args([\"list\"]), \"ecl-bundle\", `Cannot find ${this.eclBundlePath}`)\n .then(installedText => {\n return tidyCRLF(installedText.stdout).split(\"\\n\");\n }).then(installedItems => {\n const allProps = {};\n return Promise.all(installedItems.filter(ii => !!ii).map(ii => {\n return this.execFile(this.eclBundlePath, this.cwd, this.args([\"info\", ii]), \"ecl-bundle\", `Cannot find ${this.eclBundlePath}`)\n .then(infoText => {\n return tidyCRLF(infoText.stdout).split(\"\\n\");\n }).then(info => {\n const props = {};\n info.forEach(line => {\n const parts = line.split(\":\");\n props[parts.shift().trim()] = parts.join(\":\").trim();\n });\n allProps[ii] = {\n name: ii,\n props\n };\n });\n })).then(() => allProps);\n })\n ]).then(([bundles, installed]) => {\n bundles.forEach(b => {\n if (installed[b.name]) {\n b.props = installed[b.name].props;\n delete installed[b.name];\n }\n });\n for (const key in installed) {\n bundles.push({\n name: key,\n url: \"\",\n description: \"\",\n props: installed[key].props\n });\n }\n return bundles;\n }).catch(e => {\n return [];\n });\n }\n\n bundleInstall(bundleUrl) {\n return Promise.all([\n attachWorkspace(this.cwd),\n this.execFile(this.eclBundlePath, this.cwd, this.args([\"install\", bundleUrl]), \"ecl-bundle\", `Cannot find ${this.eclBundlePath}`)\n ]).then(([metaWorkspace, execFileResponse]: [Workspace, IExecFile]) => {\n return execFileResponse;\n });\n }\n\n bundleUninstall(name) {\n return Promise.all([\n attachWorkspace(this.cwd),\n this.execFile(this.eclBundlePath, this.cwd, this.args([\"uninstall\", name]), \"ecl-bundle\", `Cannot find ${this.eclBundlePath}`)\n ]).then(([metaWorkspace, execFileResponse]: [Workspace, IExecFile]) => {\n return execFileResponse;\n });\n }\n\n private execFile(cmd: string, cwd: string, args: string[], _toolName: string, _notFoundError?: string): Promise<{ code: number, stdout: string, stderr: 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 code: _code,\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 clearAllClientToolsCache() {\n allClientToolsCache = undefined;\n}\n\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, args: string[] = []): Promise<ClientTools> {\n if (overridePath && fs.existsSync(overridePath)) {\n logEclccPath(overridePath);\n return Promise.resolve(new ClientTools(overridePath, cwd, includeFolders, legacyMode, args));\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 (ctVersion.exists()) {\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, args);\n }\n }\n const best: ClientTools = bestMajor || latest!;\n logEclccPath(best.eclccPath);\n return best.clone(cwd, includeFolders, legacyMode, args);\n });\n}\n", "import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\nimport { Dictionary, DictionaryNoCase, find, SAXStackParser, scopedLogger, XMLNode } from \"@hpcc-js/util\";\nimport { ClientTools, locateClientTools } from \"./eclcc.ts\";\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"],
|
|
5
|
+
"mappings": "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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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",
|
|
6
|
+
"names": ["require_d3_array", "__commonJSMin", "exports", "module", "global", "factory", "ascending", "a", "b", "bisector", "compare", "ascendingComparator", "lo", "hi", "mid", "f", "d", "ascendingBisect", "bisectRight", "bisectLeft", "pairs", "array", "pair", "i", "n", "p", "cross", "values0", "values1", "reduce", "n0", "n1", "values", "i0", "i1", "value0", "descending", "number", "x", "variance", "valueof", "m", "mean", "value", "delta", "sum", "deviation", "v", "extent", "min", "max", "slice", "map", "constant", "identity", "range", "start", "stop", "step", "e10", "e5", "e2", "ticks", "count", "reverse", "tickIncrement", "power", "error", "tickStep", "step0", "step1", "sturges", "histogram", "domain", "threshold", "data", "xz", "x0", "x1", "tz", "bins", "bin", "_", "quantile", "value1", "freedmanDiaconis", "scott", "median", "numbers", "merge", "arrays", "j", "merged", "permute", "indexes", "permutes", "scan", "xi", "xj", "shuffle", "t", "transpose", "matrix", "length", "row", "zip", "require_d3_time", "__commonJSMin", "exports", "module", "global", "factory", "t0", "t1", "newInterval", "floori", "offseti", "count", "field", "interval", "date", "d0", "d1", "step", "start", "stop", "range", "previous", "test", "end", "d", "millisecond", "k", "milliseconds", "durationSecond", "durationMinute", "durationHour", "durationDay", "durationWeek", "second", "seconds", "minute", "minutes", "hour", "hours", "day", "days", "weekday", "i", "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sundays", "mondays", "tuesdays", "wednesdays", "thursdays", "fridays", "saturdays", "month", "months", "year", "years", "utcMinute", "utcMinutes", "utcHour", "utcHours", "utcDay", "utcDays", "utcWeekday", "utcSunday", "utcMonday", "utcTuesday", "utcWednesday", "utcThursday", "utcFriday", "utcSaturday", "utcSundays", "utcMondays", "utcTuesdays", "utcWednesdays", "utcThursdays", "utcFridays", "utcSaturdays", "utcMonth", "utcMonths", "utcYear", "utcYears", "require_d3_time_format", "__commonJSMin", "exports", "module", "global", "factory", "d3Time", "localDate", "d", "date", "utcDate", "newDate", "y", "formatLocale", "locale", "locale_dateTime", "locale_date", "locale_time", "locale_periods", "locale_weekdays", "locale_shortWeekdays", "locale_months", "locale_shortMonths", "periodRe", "formatRe", "periodLookup", "formatLookup", "weekdayRe", "weekdayLookup", "shortWeekdayRe", "shortWeekdayLookup", "monthRe", "monthLookup", "shortMonthRe", "shortMonthLookup", "formats", "formatShortWeekday", "formatWeekday", "formatShortMonth", "formatMonth", "formatDayOfMonth", "formatMicroseconds", "formatYearISO", "formatFullYearISO", "formatHour24", "formatHour12", "formatDayOfYear", "formatMilliseconds", "formatMonthNumber", "formatMinutes", "formatPeriod", "formatQuarter", "formatUnixTimestamp", "formatUnixTimestampSeconds", "formatSeconds", "formatWeekdayNumberMonday", "formatWeekNumberSunday", "formatWeekNumberISO", "formatWeekdayNumberSunday", "formatWeekNumberMonday", "formatYear", "formatFullYear", "formatZone", "formatLiteralPercent", "utcFormats", "formatUTCShortWeekday", "formatUTCWeekday", "formatUTCShortMonth", "formatUTCMonth", "formatUTCDayOfMonth", "formatUTCMicroseconds", "formatUTCYearISO", "formatUTCFullYearISO", "formatUTCHour24", "formatUTCHour12", "formatUTCDayOfYear", "formatUTCMilliseconds", "formatUTCMonthNumber", "formatUTCMinutes", "formatUTCPeriod", "formatUTCQuarter", "formatUTCSeconds", "formatUTCWeekdayNumberMonday", "formatUTCWeekNumberSunday", "formatUTCWeekNumberISO", "formatUTCWeekdayNumberSunday", "formatUTCWeekNumberMonday", "formatUTCYear", "formatUTCFullYear", "formatUTCZone", "parses", "parseShortWeekday", "parseWeekday", "parseShortMonth", "parseMonth", "parseLocaleDateTime", "parseDayOfMonth", "parseMicroseconds", "parseYear", "parseFullYear", "parseHour24", "parseDayOfYear", "parseMilliseconds", "parseMonthNumber", "parseMinutes", "parsePeriod", "parseQuarter", "parseUnixTimestamp", "parseUnixTimestampSeconds", "parseSeconds", "parseWeekdayNumberMonday", "parseWeekNumberSunday", "parseWeekNumberISO", "parseWeekdayNumberSunday", "parseWeekNumberMonday", "parseLocaleDate", "parseLocaleTime", "parseZone", "parseLiteralPercent", "newFormat", "specifier", "string", "i", "j", "n", "c", "pad", "format", "pads", "newParse", "Z", "parseSpecifier", "week", "day", "m", "parse", "f", "p", "numberRe", "percentRe", "requoteRe", "value", "fill", "width", "sign", "length", "requote", "s", "names", "map", "dISO", "z", "dow", "UTCdISO", "defaultLocale", "definition", "isoSpecifier", "formatIsoNative", "formatIso", "parseIsoNative", "parseIso", "require_d3_format", "__commonJSMin", "exports", "module", "global", "factory", "formatDecimal", "x", "formatDecimalParts", "p", "i", "coefficient", "exponent", "formatGroup", "grouping", "thousands", "value", "width", "t", "j", "g", "length", "formatNumerals", "numerals", "re", "formatSpecifier", "specifier", "match", "FormatSpecifier", "formatTrim", "s", "out", "n", "i0", "i1", "prefixExponent", "formatPrefixAuto", "d", "formatRounded", "formatTypes", "identity", "map", "prefixes", "formatLocale", "locale", "group", "currencyPrefix", "currencySuffix", "decimal", "percent", "minus", "nan", "newFormat", "fill", "align", "sign", "symbol", "zero", "comma", "precision", "trim", "type", "prefix", "suffix", "formatType", "maybeSuffix", "format", "valuePrefix", "valueSuffix", "c", "valueNegative", "padding", "formatPrefix", "f", "e", "k", "defaultLocale", "definition", "precisionFixed", "step", "precisionPrefix", "precisionRound", "max", "root", "DOMParser", "fetch", "Headers", "Request", "Response", "https", "Buffer", "Agent", "setGlobalDispatcher", "AbortController", "trustwave", "PKG_NAME", "PKG_VERSION", "BUILD_VERSION", "join", "join", "promiseTimeout", "scopedLogger", "utf8ToBase64", "logger", "instanceOfIOptions", "object", "DefaultOptions", "instanceOfIConnection", "encode", "uriComponent", "encodeRequest", "serializeRequest", "obj", "prefix", "str", "key", "includeItemCount", "row", "i", "deserializeResponse", "body", "jsonp", "opts", "action", "request", "responseType", "header", "resolve", "reject", "respondedTimeout", "respondedTick", "callbackName", "response", "doCallback", "script", "url", "progress", "authHeader", "_omitMap", "doFetch", "requestInit", "headersInit", "handleResponse", "e", "responseBody", "post", "abortSignal", "get", "send", "retVal", "hookedSend", "hookSend", "newSend", "Connection", "_Connection", "_", "createConnection", "setTransportFactory", "newFunc", "isArray", "arg", "ESPExceptions", "action", "request", "exceptions", "isExceptions", "err", "isConnection", "optsConnection", "ESPConnection", "_ESPConnection", "service", "version", "createConnection", "_", "target", "arrayName", "i", "_request", "espResponseType", "largeUpload", "abortSignal", "espResponseField", "serviceAction", "responseType", "join", "response", "retVal", "Service", "FileSpray", "DFUWUActions", "FileSprayServiceBase", "Service", "optsConnection", "request", "FileSprayStates", "FileSprayService", "FileSprayServiceBase", "request", "WsAccess", "ViewMemberType", "UserSortBy", "GroupSortBy", "AccountTypeReq", "ResourcePermissionSortBy", "ResourceSortBy", "AccessServiceBase", "Service", "optsConnection", "request", "AccessService", "AccessServiceBase", "AccountServiceBase", "Service", "optsConnection", "request", "AccountService", "AccountServiceBase", "request", "e", "exception", "scopedLogger", "CloudServiceBase", "Service", "optsConnection", "request", "logger", "scopedLogger", "isGetPODsResponse_v1_02", "response", "mapPorts", "pod", "prev", "curr", "p", "mapPods", "pods", "labels", "started", "CloudService", "CloudServiceBase", "obj", "error", "logger", "WsCodesign", "SigningMethodType", "CodesignServiceBase", "Service", "optsConnection", "request", "CodesignService", "CodesignServiceBase", "request", "response", "e", "WsCodesign", "DaliServiceBase", "Service", "optsConnection", "request", "DaliService", "DaliServiceBase", "WsDfu", "DFUArrayActions", "DFUChangeProtection", "DFUChangeRestriction", "DFUDefFileFormat", "FileAccessRole", "SecAccessType", "DFUFileType", "DfuServiceBase", "Service", "optsConnection", "request", "DFUArrayActions", "WsDfu", "DFUDefFileFormat", "DFUChangeProtection", "DFUChangeRestriction", "DFUService", "DfuServiceBase", "request", "superFiles", "childSuperFiles", "logicalFiles", "superFile", "response", "child", "DFUXRefServiceBase", "Service", "optsConnection", "request", "DFUXRefService", "DFUXRefServiceBase", "request", "jsonToIField", "id", "item", "type", "jsonToIFieldArr", "fieldType", "jsonToIFieldObj", "json", "retVal", "key", "fields", "EclService", "Service", "optsConnection", "querySet", "queryId", "response", "requestSchema", "responseSchema", "resultsJson", "request", "action", "ESPExceptions", "ElkServiceBase", "Service", "optsConnection", "request", "ElkService", "ElkServiceBase", "scopedLogger", "WsLogaccess", "LogColumnType", "LogColumnValueType", "LogAccessType", "LogAccessStatusCode", "LogAccessFilterOperator", "LogSelectColumnMode", "SortColumType", "SortDirection", "LogaccessServiceBase", "Service", "optsConnection", "request", "logger", "scopedLogger", "LogType", "TargetAudience", "LogaccessService", "LogaccessServiceBase", "request", "logInfo", "columnMap", "column", "convertLogLine", "line", "retVal", "key", "getLogsRequest", "WsLogaccess", "filters", "searchField", "logCategory", "value", "binaryLogFilter", "filter", "i", "operator", "response", "logLines", "lines", "logger", "e", "import_d3_array", "exists", "WsMachine", "ThresholdType", "TpMachineType", "MachineServiceBase", "Service", "optsConnection", "request", "MachineService", "MachineServiceBase", "targetClusters", "bypassCachedResult", "response", "exists", "tcu", "ComponentUsages", "cu", "MachineUsages", "mu", "DiskUsages", "du", "d3Mean", "d3Max", "prev", "PackageProcessServiceBase", "Service", "optsConnection", "request", "PackageProcessService", "PackageProcessServiceBase", "ResourcesServiceBase", "Service", "optsConnection", "request", "ResourcesService", "ResourcesServiceBase", "WsSasha", "WUTypes", "SashaServiceBase", "Service", "optsConnection", "request", "SashaService", "SashaServiceBase", "import_d3_time_format", "WsSMC", "LockModes", "RoxieControlCmdType", "SMCServiceBase", "Service", "optsConnection", "request", "dateParser", "isNumeric", "value", "SMCService", "SMCServiceBase", "request", "response", "name", "retVal", "metric", "row", "dimension", "stat", "storeServiceBase", "Service", "optsConnection", "request", "StoreService", "storeServiceBase", "request", "e", "WsTopology", "TpConfigResponseFormat", "RoxieQueueFilter", "TpMachineType", "TopologyServiceBase", "Service", "optsConnection", "request", "TopologyService", "TopologyServiceBase", "request", "response", "firstHThor", "first", "item", "idx", "deepMixin", "xml2json", "WsWorkunits", "ECLWUActions", "LogSelectColumnMode", "SortDirection", "LogEventClass", "WUDetailsAttrValueType", "EclDefinitionActions", "ErrorMessageFormat", "LogAccessLogFormat", "WUExceptionSeverity", "WUQueryFilterSuspendedType", "WUQuerySetFilterType", "WUProtectFilter", "QuerySetAliasActionTypes", "QuerysetImportActivation", "QuerySetQueryActionTypes", "WUQueryActivationMode", "WorkunitsServiceBase", "Service", "optsConnection", "request", "WUStateID", "WUUpdate", "Action", "isECLResult", "_", "isWUQueryECLWorkunit", "isWUInfoWorkunit", "WorkunitsService", "WorkunitsServiceBase", "optsConnection", "request", "abortSignal", "response", "deepMixin", "_request", "children", "xml2json", "WorkunitsServiceEx", "debounce", "StateObject", "import_d3_format", "import_d3_time_format", "Cache", "deepMixinT", "scopedLogger", "StateObject", "XMLNode", "Cache", "Edge", "Graph", "StateObject", "Subgraph", "Vertex", "ECLGraph", "wu", "eclGraph", "eclTimers", "duration", "eclTimer", "subgraphID", "scopes", "createGraph", "GraphCache", "obj", "walkXmlJson", "node", "callback", "stack", "childNode", "flattenAtt", "nodes", "retVal", "XGMMLGraph", "XGMMLSubgraph", "XGMMLVertex", "XGMMLEdge", "createXGMMLGraph", "id", "graphs", "subgraphs", "vertices", "edges", "graph", "item", "tag", "attributes", "childNodes", "_stack", "top", "subgraph", "vertex", "edge", "ScopeGraph", "ScopeSubgraph", "ScopeVertex", "ScopeEdge", "scope", "scopeStack", "scopeParent1", "parent1", "scopeParent2", "scopeParent3", "parent3", "source", "target", "StateObject", "Resource", "wu", "url", "cleanedURL", "urlParts", "matchStr", "displayPath", "displayName", "Cache", "exists", "StateObject", "SAXStackParser", "Stack", "XSDNode", "XSDXMLNode", "child", "i", "row", "setOfType", "node", "children", "retVal", "numStr", "underbarPos", "length", "XSDSimpleType", "XSDSchema", "XSDParser", "xsdXMLNode", "xsdXMLNode2", "key", "parseXSD", "xml", "saxParser", "XSDParser2", "rootName", "parseXSD2", "GlobalResultCache", "Cache", "obj", "_results", "Result", "_Result", "StateObject", "optsConnection", "wuid", "name_sequence_eclResult", "resultViews", "retVal", "nodeGroup", "logicalFile", "wuid_NodeGroup", "name_sequence_eclResult_logicalFile", "resultViews_isLogicalFile", "WorkunitsService", "isECLResult", "bypass", "refresh", "response", "parseXSD", "from", "count", "includeSchema", "filter", "abortSignal", "bypassCache", "shouldBypassCache", "result", "exists", "start", "suppressXmlSchema", "FilterBy", "key", "request", "ResultCache", "StateObject", "Attribute", "scope", "attribute", "BaseScope", "retVal", "timeElapsed", "scopeAttr", "attr", "key", "scopeParts", "_", "visitor", "name", "parentScope", "label", "rows", "attrs", "Scope", "wu", "StateObject", "SourceFile", "StateObject", "optsConnection", "wuid", "eclSourceFile", "WorkunitsService", "espTime2Seconds", "StateObject", "Timer", "StateObject", "optsConnection", "wuid", "eclTimer", "WorkunitsService", "secs", "espTime2Seconds", "formatter", "parser", "d3FormatNum", "d3Format", "formatNum", "num", "DEFINITION_LIST", "definitionRegex", "PropertyType", "RelatedProperty", "metricKeyRegex", "_splitMetric", "fullLabel", "relProp", "index", "label", "labelParts", "measure", "ext", "splitLabelCache", "splitMetric", "key", "retVal", "formatValue", "item", "safeParseFloat", "val", "formatValues", "dedup", "keyParts", "avg", "min", "max", "stdDev", "StdDevs", "logger", "scopedLogger", "WorkunitCache", "Cache", "obj", "_workunits", "Workunit", "_Workunit", "StateObject", "WUStateID", "ResultCache", "eclResult", "Result", "result", "eclTimer", "Timer", "GraphCache", "eclGraph", "ECLGraph", "url", "Resource", "eclSourceFile", "SourceFile", "optsConnection", "response", "wuid", "state", "baseUrl", "server", "target", "ecl", "compileOnly", "wu", "WUUpdate", "opts", "WorkunitsService", "TopologyService", "request", "_cluster", "action", "resultLimit", "clusterPromise", "cluster", "WsWorkunits", "full", "meta", "scopes", "columns", "activityMap", "activity", "data", "i", "scope", "props", "formattedProps", "scopeProperty", "name", "rawValue", "rawValueInt", "formatNum", "normalizedScope", "definitionList", "parsedList", "processedDefinitions", "k", "matches", "maxStdDevs", "maxStdDevsSource", "row", "promises", "rawScope", "Scope", "scopeMap", "parentScopeID", "graphIDs", "rootTypes", "createGraph", "scopeInfo", "attr", "endTime", "parser", "formatter", "l", "r", "eventID", "propIDorCallback", "callback", "changeInfo", "resolve", "_", "watchHandle", "changes", "_request", "e", "exception", "includeResults", "deepMixinT", "actionType", "service", "WorkunitsServiceEx", "publishRequest", "command", "optsStr", "XMLNode", "debugState", "mode", "rootNode", "childNode", "id", "createXGMMLGraph", "path", "graph", "breakpointLocations", "edgeID", "startRow", "numRows", "rowNode", "cellNode", "ATTR_DEFINITION", "hasECLDefinition", "vertex", "getECLDefinition", "match", "_file", "_row", "_col", "definition", "_activity", "Activity", "_Activity", "StateObject", "optsConnection", "state", "SMCService", "clusterName", "awu", "Workunit", "request", "response", "debounce", "Cache", "scopedLogger", "StateObject", "logger", "scopedLogger", "LogicalFileCache", "Cache", "obj", "_store", "LogicalFile", "_LogicalFile", "StateObject", "optsConnection", "Cluster", "Name", "state", "retVal", "DFUService", "poc", "part", "row", "request", "response", "exception", "format", "Cache", "StateObject", "MachineCache", "Cache", "obj", "_machines", "Machine", "_Machine", "StateObject", "optsConnection", "address", "state", "retVal", "MachineService", "import_d3_format", "Cache", "StateObject", "scopedLogger", "Cache", "exists", "StateObject", "Cache", "StateObject", "TargetClusterCache", "Cache", "obj", "_targetCluster", "TargetCluster", "_TargetCluster", "StateObject", "machineInfoEx", "Machine", "optsConnection", "name", "state", "retVal", "TopologyService", "MachineService", "request", "response", "machineInfo", "maxDisk", "totalFree", "total", "machine", "storageInfo", "usage", "targetClusters", "connection", "item", "_defaultTargetCluster", "defaultTargetCluster", "firstItem", "defaultItem", "hthorItem", "defItem", "TopologyCache", "Cache", "obj", "_topology", "Topology", "_Topology", "StateObject", "tc", "TargetCluster", "optsConnection", "state", "retVal", "TopologyService", "type", "response", "rootProtocol", "ip", "port", "exists", "item", "binding", "request", "force", "eventID", "propIDorCallback", "callback", "safeAssign", "obj", "key", "value", "xmlEncode", "str", "espTime2Seconds", "duration", "match", "days", "hours", "mins", "secs", "ms", "us", "ns", "unitTest", "size", "unit", "nsIndex", "espSize2Bytes", "retVal", "espSkew2Number", "skew", "LocalisedXGMMLWriter", "graph", "items", "localisationDepth", "localisationDistance", "noSpills", "item", "vertex", "edge", "subgraph", "idx", "dedupEdges", "isPoint", "attrStr", "propsStr", "props", "key", "xmlEncode", "v", "ancestors", "parent", "v1", "v2", "v1_ancestors", "v2_ancestors", "finger1", "finger2", "retVal", "source", "inEdges", "target", "outEdges", "root", "xgmmlLen", "GraphItem", "id", "Subgraph", "subgraph2", "vertex2", "edge2", "visitor", "Vertex", "inVertices", "Edge", "QueryGraph", "_QueryGraph", "xgmml", "dom", "docNode", "attr", "safeAssign", "tagName", "childNode", "isSubgraph", "attNode", "graphNode", "name", "uname", "value", "espTime2Seconds", "espSize2Bytes", "espSkew2Number", "xgmmlWriter", "logger", "scopedLogger", "siFormatter", "d3Format", "isNumber", "QueryCache", "Cache", "obj", "_queries", "Query", "_Query", "StateObject", "optsConnection", "querySet", "queryID", "queryDetails", "WorkunitsService", "Topology", "queryId", "state", "retVal", "services", "espServer", "binding", "baseUrl", "EclService", "wsEclService", "e", "GraphName", "SubGraphId", "response", "graph", "QueryGraph", "first", "graphItem", "request", "wu", "Workunit", "promises", "meta", "data", "metric", "firstChar", "item", "existingProperties", "prop", "newProperties", "key", "firstCharOfKey", "value", "valueType", "rawValue", "formatted", "results", "resultName", "Cache", "Dispatch", "Message", "StoreCache", "Cache", "obj", "_store", "ValueChangedMessage", "Message", "key", "value", "oldValue", "other", "Store", "_Store", "Dispatch", "optsConnection", "Name", "Namespace", "UserSpecific", "StoreService", "broadcast", "response", "e", "retVal", "deletedValues", "pair", "callback", "Cache", "scopedLogger", "StateObject", "logger", "scopedLogger", "DFUWorkunitCache", "Cache", "obj", "_workunits", "DFUWorkunit", "_DFUWorkunit", "StateObject", "optsConnection", "dfuServerQueue", "retVal", "response", "wuid", "state", "server", "request", "service", "FileSprayService", "FileSpray", "full", "callback", "_request", "e", "actionType", "eventID", "propIDorCallback", "changeInfo", "resolve", "_", "watchHandle", "changes", "TopologyService", "exception", "logger", "cp", "crypto", "fs", "os", "path", "exists", "scopedLogger", "xml2json", "fs", "path", "Dictionary", "DictionaryNoCase", "find", "SAXStackParser", "scopedLogger", "XMLNode", "logger", "scopedLogger", "_inspect", "inspect", "obj", "_id", "known", "key", "id", "Attr", "xmlAttr", "Field", "definition", "xmlField", "ECLScope", "name", "type", "sourcePath", "xmlDefinitions", "line", "start", "body", "end", "definitions", "retVal", "Definition", "charOffset", "def", "defs", "qualifiedID", "qualifiedIDParts", "base", "find", "xmlDefinition", "attrs", "attr", "fields", "field", "Import", "xmlImport", "Source", "xmlSource", "nameParts", "fakeNode", "XMLNode", "imports", "imp", "scope", "isHiddenDirectory", "source", "isDirectory", "isEcl", "modAttrs", "path", "File", "Folder", "folder", "Workspace", "DictionaryNoCase", "Dictionary", "workspacePath", "eclccPath", "locateClientTools", "clientTools", "paths", "knownFolder", "folderPath", "refPath", "force", "child", "filePath", "filePathInfo", "pathNoExt", "parentStack", "removeDupID", "nameStack", "stack", "qid", "info", "sources", "_source", "depth", "metaXML", "metaParser", "MetaParser", "eclSource", "realQID", "partialID", "partialIDParts", "partialIDQualifier", "workspaceCache", "attachWorkspace", "_workspacePath", "workspace", "isQualifiedIDChar", "lineText", "charPos", "reverse", "testChar", "qualifiedIDBoundary", "SAXStackParser", "logger", "scopedLogger", "exeExt", "tidyCRLF", "inStr", "Version", "build", "parts", "match", "other", "ERROR", "WARN", "Errors", "checked", "EclccErrors", "stdErr", "errLine", "filePath", "row", "_col", "severity", "code", "_msg", "line", "col", "msg", "EnvchkErrors", "content", "_path", "_attr", "path", "pathParts", "lineIdx", "testStr", "walkXmlJson", "node", "callback", "stack", "key", "childNode", "child", "LocalWorkunit", "jsonWU", "retVal", "exists", "id", "item", "_stack", "file", "ClientTools", "_ClientTools", "eclccPath", "cwd", "includeFolders", "legacyMode", "args", "version", "additionalItems", "includePath", "response", "paths", "removeOnRead", "resolve", "_reject", "fileData", "xml2json", "err", "filename", "tmpName", "_response", "xmlPath", "attachWorkspace", "metaWorkspace", "execFileResponse", "e", "bundlesRegEx", "readme", "m", "installedText", "installedItems", "allProps", "ii", "infoText", "info", "props", "bundles", "installed", "b", "bundleUrl", "name", "cmd", "_toolName", "_notFoundError", "stdOut", "data", "_code", "_signal", "locateClientToolsInFolder", "rootFolder", "clientTools", "hpccSystemsFolder", "versionFolder", "allClientToolsCache", "clearAllClientToolsCache", "locateAllClientTools", "rootFolder86", "ct", "l", "r", "eclccPathMsg", "logEclccPath", "locateClientTools", "overridePath", "allClientToolsCache2", "buildVersion", "latest", "bestMajor", "ctVersion", "best", "root", "DOMParser", "fetch", "Headers", "Request", "Response", "Agent", "setGlobalDispatcher", "AbortController", "globalCA", "Buffer", "row", "trustwave"]
|
|
7
7
|
}
|