@hpcc-js/comms 3.17.8 → 3.18.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hpcc-js/comms",
3
- "version": "3.17.8",
3
+ "version": "3.18.0",
4
4
  "description": "hpcc-js - Communications",
5
5
  "type": "module",
6
6
  "main": "./dist/node/index.cjs",
@@ -76,13 +76,13 @@
76
76
  "wsdl-all": "npm-run-all --aggregate-output -c --serial build --parallel wsdl-*"
77
77
  },
78
78
  "dependencies": {
79
- "@hpcc-js/util": "^3.6.8",
79
+ "@hpcc-js/util": "^3.6.9",
80
80
  "@xmldom/xmldom": "0.9.10",
81
81
  "undici": "8.10.0"
82
82
  },
83
83
  "devDependencies": {
84
- "@hpcc-js/ddl-shim": "^3.4.8",
85
- "@hpcc-js/esbuild-plugins": "^1.10.0",
84
+ "@hpcc-js/ddl-shim": "^3.4.9",
85
+ "@hpcc-js/esbuild-plugins": "^1.11.0",
86
86
  "@kubernetes/client-node": "1.4.0",
87
87
  "@types/d3-request": "1.0.9",
88
88
  "@types/d3-time-format": "2.3.4",
@@ -112,5 +112,5 @@
112
112
  "esp",
113
113
  "HPCC-Platform"
114
114
  ],
115
- "gitHead": "ac7ae6ce5cb17eb6d4dff831fa1aeeeca75cf77f"
115
+ "gitHead": "f25ae6319d1eb8cd83789674cdc00851af2b850c"
116
116
  }
package/src/connection.ts CHANGED
@@ -3,7 +3,7 @@ import { join, promiseTimeout, root, scopedLogger, utf8ToBase64 } from "@hpcc-js
3
3
  const logger = scopedLogger("comms/connection.ts");
4
4
 
5
5
  export type RequestType = "post" | "get" | "jsonp";
6
- export type ResponseType = "json" | "text";
6
+ export type ResponseType = "json" | "text" | "arraybuffer";
7
7
 
8
8
  export type IOptionsSend = (options: IOptions, action: string, request: any, responseType: ResponseType, defaultSend: SendFunc, header?: any) => Promise<any>;
9
9
  export interface IOptions {
@@ -163,9 +163,17 @@ function doFetch(opts: IOptions, action: string, requestInit: RequestInit, heade
163
163
  }
164
164
  }
165
165
 
166
- function handleResponse(response: Response): Promise<any> {
166
+ function handleResponse(response: Response): Promise<any | ArrayBuffer | string> {
167
167
  if (response.ok) {
168
- return responseType === "json" ? response.json() : response.text();
168
+ switch (responseType) {
169
+ case "json":
170
+ return response.json();
171
+ case "arraybuffer":
172
+ return response.arrayBuffer();
173
+ case "text":
174
+ default:
175
+ return response.text();
176
+ }
169
177
  }
170
178
  throw new Error(response.statusText);
171
179
  }
@@ -2,7 +2,7 @@ import { Cache, deepMixinT, IEvent, RecursivePartial, scopedLogger, StateCallbac
2
2
  import { format as d3Format } from "d3-format";
3
3
  import { utcFormat, utcParse } from "d3-time-format";
4
4
  import { IConnection, IOptions } from "../connection.ts";
5
- import { ESPExceptions } from "../espConnection.ts";
5
+ import { ESPExceptions, ESPResponseType } from "../espConnection.ts";
6
6
  import { WsSMC } from "../services/wsSMC.ts";
7
7
  import * as WsTopology from "../services/wsTopology.ts";
8
8
  import { WsWorkunits, WUStateID, WorkunitsService, WorkunitsServiceEx, WUUpdate } from "../services/wsWorkunits.ts";
@@ -676,8 +676,24 @@ export class Workunit extends StateObject<UWorkunitState, IWorkunitState> implem
676
676
  return this.WUDetailsMeta(request);
677
677
  }
678
678
 
679
- fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<WsWorkunits.Scope[]> {
680
- return this.WUDetails(request).then(response => response.Scopes.Scope);
679
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<WsWorkunits.Scope[]>;
680
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "json"): Promise<WsWorkunits.Scope[]>;
681
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "arraybuffer"): Promise<ArrayBuffer>;
682
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "text"): Promise<string>;
683
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "xsd"): Promise<string>;
684
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails> = {}, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<WsWorkunits.Scope[] | ArrayBuffer | string> {
685
+ return this.WUDetails(request, abortSignal, espResponseType).then(response => {
686
+ switch (espResponseType) {
687
+ case "arraybuffer":
688
+ return response as ArrayBuffer;
689
+ case "text":
690
+ case "xsd":
691
+ return response as string;
692
+ case "json":
693
+ default:
694
+ return response.Scopes.Scope;
695
+ }
696
+ });
681
697
  }
682
698
 
683
699
  normalizeDetails(meta: WsWorkunits.WUDetailsMetaResponse, scopes: WsWorkunits.Scope[]): { meta: WsWorkunits.WUDetailsMetaResponse, columns: { [id: string]: any }, data: IScope[] } {
@@ -833,11 +849,25 @@ export class Workunit extends StateObject<UWorkunitState, IWorkunitState> implem
833
849
  return this.WUInfo(request);
834
850
  }
835
851
 
836
- fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<Scope[]> {
837
- return this.WUDetails(request).then((response) => {
838
- return response.Scopes.Scope.map((rawScope) => {
839
- return new Scope(this, rawScope);
840
- });
852
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<Scope[]>;
853
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "json"): Promise<Scope[]>;
854
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "arraybuffer"): Promise<ArrayBuffer>;
855
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "text"): Promise<string>;
856
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "xsd"): Promise<string>;
857
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails> = {}, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<Scope[] | ArrayBuffer | string> {
858
+ return this.WUDetails(request, abortSignal, espResponseType).then((response) => {
859
+ switch (espResponseType) {
860
+ case "arraybuffer":
861
+ return response as ArrayBuffer;
862
+ case "text":
863
+ case "xsd":
864
+ return response as string;
865
+ case "json":
866
+ default:
867
+ return response.Scopes.Scope.map((rawScope) => {
868
+ return new Scope(this, rawScope);
869
+ });
870
+ }
841
871
  });
842
872
  }
843
873
 
@@ -1117,8 +1147,13 @@ export class Workunit extends StateObject<UWorkunitState, IWorkunitState> implem
1117
1147
  return this.connection.WUDetailsMeta(request);
1118
1148
  }
1119
1149
 
1120
- protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>): Promise<WsWorkunits.WUDetailsResponse> {
1121
- return this.connection.WUDetails(deepMixinT<WsWorkunits.WUDetails>({
1150
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<WsWorkunits.WUDetailsResponse>;
1151
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "json"): Promise<WsWorkunits.WUDetailsResponse>;
1152
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "arraybuffer"): Promise<ArrayBuffer>;
1153
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "text"): Promise<string>;
1154
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "xsd"): Promise<string>;
1155
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<WsWorkunits.WUDetailsResponse | ArrayBuffer | string> {
1156
+ return this.connection.WUDetailsEx(deepMixinT<WsWorkunits.WUDetails>({
1122
1157
  ScopeFilter: {
1123
1158
  MaxDepth: 9999
1124
1159
  },
@@ -1136,12 +1171,23 @@ export class Workunit extends StateObject<UWorkunitState, IWorkunitState> implem
1136
1171
  IncludeCreator: false,
1137
1172
  IncludeCreatorType: false
1138
1173
  }
1139
- }, request, { WUID: this.Wuid })).then((response) => {
1140
- return deepMixinT<WsWorkunits.WUDetailsResponse>({
1141
- Scopes: {
1142
- Scope: []
1143
- }
1144
- }, response);
1174
+ }, request, { WUID: this.Wuid }), abortSignal, espResponseType).then((response) => {
1175
+ switch (espResponseType) {
1176
+ case "arraybuffer":
1177
+ case "text":
1178
+ case "xsd":
1179
+ return response;
1180
+ case "json":
1181
+ default:
1182
+ if (response.Scopes === undefined) {
1183
+ response.Scopes = {
1184
+ Scope: []
1185
+ };
1186
+ } else if (response.Scopes.Scope === undefined) {
1187
+ response.Scopes.Scope = [];
1188
+ }
1189
+ return response;
1190
+ }
1145
1191
  });
1146
1192
  }
1147
1193
 
@@ -108,6 +108,10 @@ export class ESPConnection implements IConnection {
108
108
  serviceAction = join(this._service, action);
109
109
  responseType = "text";
110
110
  break;
111
+ case "arraybuffer":
112
+ serviceAction = join(this._service, action + ".json");
113
+ responseType = "arraybuffer";
114
+ break;
111
115
  case "xsd":
112
116
  serviceAction = join(this._service, action + ".xsd");
113
117
  responseType = "text";
@@ -118,6 +122,7 @@ export class ESPConnection implements IConnection {
118
122
  const actionParts = action.split("/");
119
123
  action = actionParts.pop()!;
120
124
  break;
125
+ case "json":
121
126
  default:
122
127
  serviceAction = join(this._service, action + ".json");
123
128
  }
@@ -1,6 +1,7 @@
1
1
  import { deepMixin, xml2json, XMLNode } from "@hpcc-js/util";
2
2
  import { WsWorkunits, WorkunitsServiceBase } from "./wsdl/WsWorkunits/v2.10/WsWorkunits.ts";
3
3
  import { IConnection, IOptions } from "../connection.ts";
4
+ import { type ESPResponseType } from "../espConnection.ts";
4
5
 
5
6
  export {
6
7
  WsWorkunits
@@ -132,6 +133,15 @@ export class WorkunitsService extends WorkunitsServiceBase {
132
133
  return this._WUDetailsMetaPromise;
133
134
  }
134
135
 
136
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<WsWorkunits.WUDetailsResponse>;
137
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal: AbortSignal | undefined, espResponseType: "json"): Promise<WsWorkunits.WUDetailsResponse>;
138
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal: AbortSignal | undefined, espResponseType: "arraybuffer"): Promise<ArrayBuffer>;
139
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal: AbortSignal | undefined, espResponseType: "text"): Promise<string>;
140
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal: AbortSignal | undefined, espResponseType: "xsd"): Promise<string>;
141
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<WsWorkunits.WUDetailsResponse | ArrayBuffer | string> {
142
+ return this._connection.send("WUDetails", request, espResponseType, false, abortSignal, "WUDetailsResponse");
143
+ }
144
+
135
145
  WUCDebugEx(request: WsWorkunits.WUCDebug): Promise<XMLNode | null> {
136
146
  return this._connection.send("WUCDebug", request, undefined, undefined, undefined, "WUDebug").then((response) => {
137
147
  const retVal = xml2json(response.Result);
@@ -1,5 +1,5 @@
1
1
  export type RequestType = "post" | "get" | "jsonp";
2
- export type ResponseType = "json" | "text";
2
+ export type ResponseType = "json" | "text" | "arraybuffer";
3
3
  export type IOptionsSend = (options: IOptions, action: string, request: any, responseType: ResponseType, defaultSend: SendFunc, header?: any) => Promise<any>;
4
4
  export interface IOptions {
5
5
  baseUrl: string;
@@ -1,5 +1,6 @@
1
1
  import { Cache, RecursivePartial, StateCallback, StateEvents, StateObject, StatePropCallback, StringAnyMap, XMLNode } from "@hpcc-js/util";
2
2
  import { IConnection, IOptions } from "../connection.ts";
3
+ import { ESPResponseType } from "../espConnection.ts";
3
4
  import { WsSMC } from "../services/wsSMC.ts";
4
5
  import * as WsTopology from "../services/wsTopology.ts";
5
6
  import { WsWorkunits, WUStateID, WorkunitsService, WUUpdate } from "../services/wsWorkunits.ts";
@@ -221,7 +222,11 @@ export declare class Workunit extends StateObject<UWorkunitState, IWorkunitState
221
222
  fetchTotalClusterTime(): Promise<string>;
222
223
  fetchServiceNames(): Promise<string[]>;
223
224
  fetchDetailsMeta(request?: RecursivePartial<WsWorkunits.WUDetailsMeta>): Promise<WsWorkunits.WUDetailsMetaResponse>;
224
- fetchDetailsRaw(request?: RecursivePartial<WsWorkunits.WUDetails>): Promise<WsWorkunits.Scope[]>;
225
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<WsWorkunits.Scope[]>;
226
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "json"): Promise<WsWorkunits.Scope[]>;
227
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "arraybuffer"): Promise<ArrayBuffer>;
228
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "text"): Promise<string>;
229
+ fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "xsd"): Promise<string>;
225
230
  normalizeDetails(meta: WsWorkunits.WUDetailsMetaResponse, scopes: WsWorkunits.Scope[]): {
226
231
  meta: WsWorkunits.WUDetailsMetaResponse;
227
232
  columns: {
@@ -237,7 +242,11 @@ export declare class Workunit extends StateObject<UWorkunitState, IWorkunitState
237
242
  data: IScope[];
238
243
  }>;
239
244
  fetchInfo(request?: Partial<WsWorkunits.WUInfo>): Promise<WsWorkunits.WUInfoResponse>;
240
- fetchDetails(request?: RecursivePartial<WsWorkunits.WUDetails>): Promise<Scope[]>;
245
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<Scope[]>;
246
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "json"): Promise<Scope[]>;
247
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "arraybuffer"): Promise<ArrayBuffer>;
248
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "text"): Promise<string>;
249
+ fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "xsd"): Promise<string>;
241
250
  fetchDetailsHierarchy(request?: Partial<WsWorkunits.WUDetails>): Promise<Scope[]>;
242
251
  fetchGraphDetails(graphIDs: string[], rootTypes: string[]): Promise<BaseScope[]>;
243
252
  fetchScopeGraphs(graphIDs?: string[]): Promise<ScopeGraph>;
@@ -252,7 +261,11 @@ export declare class Workunit extends StateObject<UWorkunitState, IWorkunitState
252
261
  protected WUInfo(_request?: Partial<WsWorkunits.WUInfo>): Promise<WsWorkunits.WUInfoResponse>;
253
262
  protected WUResubmit(request: Partial<WsWorkunits.WUResubmit>): Promise<WsWorkunits.WUResubmitResponse>;
254
263
  protected WUDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta>): Promise<WsWorkunits.WUDetailsMetaResponse>;
255
- protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>): Promise<WsWorkunits.WUDetailsResponse>;
264
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<WsWorkunits.WUDetailsResponse>;
265
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "json"): Promise<WsWorkunits.WUDetailsResponse>;
266
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "arraybuffer"): Promise<ArrayBuffer>;
267
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "text"): Promise<string>;
268
+ protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>, abortSignal: AbortSignal | undefined, espResponseType: "xsd"): Promise<string>;
256
269
  protected WUAction(actionType: WsWorkunits.ECLWUActions): Promise<WsWorkunits.WUActionResponse>;
257
270
  publish(name?: string): Promise<WsWorkunits.WUPublishWorkunitResponse>;
258
271
  publishEx(request: Partial<WsWorkunits.WUPublishWorkunit>): Promise<WsWorkunits.WUPublishWorkunitResponse>;
@@ -1,6 +1,7 @@
1
1
  import { XMLNode } from "@hpcc-js/util";
2
2
  import { WsWorkunits, WorkunitsServiceBase } from "./wsdl/WsWorkunits/v2.10/WsWorkunits.ts";
3
3
  import { IConnection, IOptions } from "../connection.ts";
4
+ import { type ESPResponseType } from "../espConnection.ts";
4
5
  export { WsWorkunits };
5
6
  export declare enum WUStateID {
6
7
  Unknown = 0,
@@ -53,6 +54,11 @@ export declare class WorkunitsService extends WorkunitsServiceBase {
53
54
  WUFileEx(request: Partial<WsWorkunits.WUFile>): Promise<string>;
54
55
  private _WUDetailsMetaPromise;
55
56
  WUDetailsMeta(request: WsWorkunits.WUDetailsMeta): Promise<WsWorkunits.WUDetailsMetaResponse>;
57
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal?: AbortSignal, espResponseType?: ESPResponseType): Promise<WsWorkunits.WUDetailsResponse>;
58
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal: AbortSignal | undefined, espResponseType: "json"): Promise<WsWorkunits.WUDetailsResponse>;
59
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal: AbortSignal | undefined, espResponseType: "arraybuffer"): Promise<ArrayBuffer>;
60
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal: AbortSignal | undefined, espResponseType: "text"): Promise<string>;
61
+ WUDetailsEx(request: WsWorkunits.WUDetails, abortSignal: AbortSignal | undefined, espResponseType: "xsd"): Promise<string>;
56
62
  WUCDebugEx(request: WsWorkunits.WUCDebug): Promise<XMLNode | null>;
57
63
  }
58
64
  export declare class WorkunitsServiceEx extends WorkunitsServiceBase {