diff --git a/package-lock.json b/package-lock.json index 134f7f9..9d896d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "license": "ISC", "dependencies": { - "@sasjs/utils": "2.40.0", + "@sasjs/utils": "2.40.1", "axios": "0.26.0", "axios-cookiejar-support": "1.0.1", "form-data": "4.0.0", @@ -1142,9 +1142,9 @@ } }, "node_modules/@sasjs/utils": { - "version": "2.40.0", - "resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.40.0.tgz", - "integrity": "sha512-U0y/eqRlvfkMHmKDlr1xmeN+Rask7TnJPuRpOz71P8QpGYTw1M9AyZvzRSk503p4KCJb8ysdcqXyGVLfhuoM+A==", + "version": "2.40.1", + "resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.40.1.tgz", + "integrity": "sha512-wWYElDH71bSZTdZ5V38743vAnw2EPDhzH7+1s7zxINHpaQWK/qrDldI0vgVFLeGpxVU0D7WPZ/ltG6MoE2obeg==", "hasInstallScript": true, "dependencies": { "@types/fs-extra": "9.0.13", @@ -13870,9 +13870,9 @@ } }, "@sasjs/utils": { - "version": "2.40.0", - "resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.40.0.tgz", - "integrity": "sha512-U0y/eqRlvfkMHmKDlr1xmeN+Rask7TnJPuRpOz71P8QpGYTw1M9AyZvzRSk503p4KCJb8ysdcqXyGVLfhuoM+A==", + "version": "2.40.1", + "resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.40.1.tgz", + "integrity": "sha512-wWYElDH71bSZTdZ5V38743vAnw2EPDhzH7+1s7zxINHpaQWK/qrDldI0vgVFLeGpxVU0D7WPZ/ltG6MoE2obeg==", "requires": { "@types/fs-extra": "9.0.13", "@types/prompts": "2.0.13", diff --git a/package.json b/package.json index e708586..f1b8a52 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ }, "main": "index.js", "dependencies": { - "@sasjs/utils": "2.40.0", + "@sasjs/utils": "2.40.1", "axios": "0.26.0", "axios-cookiejar-support": "1.0.1", "form-data": "4.0.0", diff --git a/src/job-execution/FileUploader.ts b/src/job-execution/FileUploader.ts index 868cfa6..a93d057 100644 --- a/src/job-execution/FileUploader.ts +++ b/src/job-execution/FileUploader.ts @@ -99,7 +99,17 @@ export class FileUploader extends BaseJobExecutor { ? parseWeboutResponse(res.result, uploadUrl) : res.result break + case ServerType.Sasjs: + if (typeof res.result._webout === 'object') { + jsonResponse = res.result._webout + } else { + const webout = parseWeboutResponse(res.result._webout, uploadUrl) + jsonResponse = getValidJson(webout) + } + break } + } else if (this.serverType === ServerType.Sasjs) { + jsonResponse = getValidJson(res.result._webout) } else { jsonResponse = typeof res.result === 'string' diff --git a/src/request/RequestClient.ts b/src/request/RequestClient.ts index 3645c08..462fb21 100644 --- a/src/request/RequestClient.ts +++ b/src/request/RequestClient.ts @@ -131,6 +131,24 @@ export class RequestClient implements HttpClient { } else { sasWork = response.log } + } else if (response?.result?.log) { + //In this scenario we know we got the response from SASJS server + //Log is array of `{ line: '' }` so we need to convert it back to text + //To be able to parse it with current functions. + let log: string = '' + + if (typeof log !== 'string') { + log = response.result.log.map((logLine: any) => logLine.line).join('\n') + } + + sourceCode = parseSourceCode(log) + generatedCode = parseGeneratedCode(log) + + if (response?.result?._webout) { + sasWork = response.result._webout.WORK + } else { + sasWork = log + } } else if (response?.result) { sourceCode = parseSourceCode(response.result) generatedCode = parseGeneratedCode(response.result)