From 9f4064b46e5b5133011d640a2efdfc90173751a6 Mon Sep 17 00:00:00 2001 From: mulahasanovic Date: Tue, 14 Apr 2026 09:54:51 +0200 Subject: [PATCH] fix(deps): bump follow-redirects resolve moderate advisory (GHSA-r4q5-vmmm-2653) via npm audit fix; formatting via npm run lint:fix --- .github/workflows/build-unit-tests.yml | 2 +- package-lock.json | 6 ++--- package.json | 4 +-- src/ContextManager.ts | 27 ++++++++++++-------- src/SASViyaApiClient.ts | 5 ++-- src/SASjs.ts | 4 +-- src/api/viya/executeOnComputeApi.ts | 5 ++-- src/api/viya/spec/pollJobState.spec.ts | 4 +-- src/auth/AuthManager.ts | 8 +++--- src/auth/spec/openWebPage.spec.ts | 2 +- src/job-execution/ComputeJobExecutor.ts | 5 +++- src/job-execution/JesJobExecutor.ts | 5 +++- src/job-execution/JobExecutor.ts | 5 +++- src/types/errors/AuthorizeError.ts | 5 +++- src/types/errors/ComputeJobExecutionError.ts | 5 +++- src/types/errors/JobStatePollError.ts | 5 +++- src/utils/convertToCsv.ts | 4 +-- 17 files changed, 61 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build-unit-tests.yml b/.github/workflows/build-unit-tests.yml index 73fd007..907c8b7 100644 --- a/.github/workflows/build-unit-tests.yml +++ b/.github/workflows/build-unit-tests.yml @@ -32,7 +32,7 @@ jobs: ${{ runner.os }}-node- - name: Check npm audit - run: npm audit --production --audit-level=low + run: npm audit --omit=dev --audit-level=low - name: Install Dependencies run: npm ci diff --git a/package-lock.json b/package-lock.json index 0465af7..2478d67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6135,9 +6135,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "funding": [ { "type": "individual", diff --git a/package.json b/package.json index 978b5ee..4961144 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "build": "npm run nodeVersionMessage && npx rimraf build && npx rimraf node && mkdir node && copyfiles -u 1 \"./src/**/*\" ./node && webpack && npx rimraf build/src && npx rimraf node", "package:lib": "npm run build && copyfiles ./package.json build && cd build && npm version \"5.0.0\" && npm pack", "publish:lib": "npm run build && cd build && npm publish", - "lint:fix": "npx prettier --loglevel silent --write \"src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --loglevel silent --write \"sasjs-tests/src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --loglevel silent --write \"cypress/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\"", + "lint:fix": "npx prettier --log-level silent --write \"src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --log-level silent --write \"sasjs-tests/src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --log-level silent --write \"cypress/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\"", "lint": "npx prettier --check \"src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --check \"sasjs-tests/src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --check \"cypress/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\"", - "lint:silent": "npx prettier --loglevel silent --check \"src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --loglevel silent --check \"sasjs-tests/src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --loglevel silent --check \"cypress/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\"", + "lint:silent": "npx prettier --log-level silent --check \"src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --log-level silent --check \"sasjs-tests/src/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\" && npx prettier --log-level silent --check \"cypress/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\"", "test": "jest --silent --coverage", "publishInit": "cp -r ./build/* . && rm -rf ./build", "semantic-release": "semantic-release", diff --git a/src/ContextManager.ts b/src/ContextManager.ts index 0f079f9..1898c3c 100644 --- a/src/ContextManager.ts +++ b/src/ContextManager.ts @@ -32,16 +32,18 @@ export class ContextManager { return this.defaultLauncherContexts } - constructor(private serverUrl: string, private requestClient: RequestClient) { + constructor( + private serverUrl: string, + private requestClient: RequestClient + ) { if (serverUrl) isUrl(serverUrl) } public async getComputeContexts(accessToken?: string) { const { result: contexts } = await this.requestClient - .get<{ items: Context[] }>( - `${this.serverUrl}/compute/contexts?limit=10000`, - accessToken - ) + .get<{ + items: Context[] + }>(`${this.serverUrl}/compute/contexts?limit=10000`, accessToken) .catch((err) => { throw prefixMessage(err, 'Error while getting compute contexts. ') }) @@ -59,10 +61,9 @@ export class ContextManager { public async getLauncherContexts(accessToken?: string) { const { result: contexts } = await this.requestClient - .get<{ items: Context[] }>( - `${this.serverUrl}/launcher/contexts?limit=10000`, - accessToken - ) + .get<{ + items: Context[] + }>(`${this.serverUrl}/launcher/contexts?limit=10000`, accessToken) .catch((err) => { throw prefixMessage(err, 'Error while getting launcher contexts. ') }) @@ -291,7 +292,9 @@ export class ContextManager { accessToken?: string ): Promise { const { result: contexts } = await this.requestClient - .get<{ items: Context[] }>( + .get<{ + items: Context[] + }>( `${this.serverUrl}/compute/contexts?filter=eq(name, "${contextName}")`, accessToken ) @@ -332,7 +335,9 @@ export class ContextManager { authConfig?: AuthConfig ) { const { result: contexts } = await this.requestClient - .get<{ items: Context[] }>( + .get<{ + items: Context[] + }>( `${this.serverUrl}/compute/contexts?limit=10000`, authConfig?.access_token ) diff --git a/src/SASViyaApiClient.ts b/src/SASViyaApiClient.ts index 5e060df..9ca88f6 100644 --- a/src/SASViyaApiClient.ts +++ b/src/SASViyaApiClient.ts @@ -1026,9 +1026,8 @@ export class SASViyaApiClient { } files.forEach((fileInfo, index) => { - jobArguments[ - `_webin_fileuri${index + 1}` - ] = `/files/files/${fileInfo.file.id}` + jobArguments[`_webin_fileuri${index + 1}`] = + `/files/files/${fileInfo.file.id}` jobArguments[`_webin_name${index + 1}`] = fileInfo.tableName }) diff --git a/src/SASjs.ts b/src/SASjs.ts index 40ccb15..de846aa 100644 --- a/src/SASjs.ts +++ b/src/SASjs.ts @@ -1063,8 +1063,8 @@ export default class SASjs { this.sasjsConfig.serverType === ServerType.SasViya ? this.sasjsConfig.pathSASViya : this.sasjsConfig.serverType === ServerType.Sas9 - ? this.sasjsConfig.pathSAS9 - : this.sasjsConfig.pathSASJS + ? this.sasjsConfig.pathSAS9 + : this.sasjsConfig.pathSASJS this.authManager = new AuthManager( this.sasjsConfig.serverUrl, diff --git a/src/api/viya/executeOnComputeApi.ts b/src/api/viya/executeOnComputeApi.ts index 9858fa8..804304d 100644 --- a/src/api/viya/executeOnComputeApi.ts +++ b/src/api/viya/executeOnComputeApi.ts @@ -125,9 +125,8 @@ export async function executeOnComputeApi( jobVariables['_webin_file_count'] = files.length files.forEach((fileInfo, index) => { - jobVariables[ - `_webin_fileuri${index + 1}` - ] = `/files/files/${fileInfo.file.id}` + jobVariables[`_webin_fileuri${index + 1}`] = + `/files/files/${fileInfo.file.id}` jobVariables[`_webin_name${index + 1}`] = fileInfo.tableName }) } else { diff --git a/src/api/viya/spec/pollJobState.spec.ts b/src/api/viya/spec/pollJobState.spec.ts index cda9941..7a3d4ab 100644 --- a/src/api/viya/spec/pollJobState.spec.ts +++ b/src/api/viya/spec/pollJobState.spec.ts @@ -683,8 +683,8 @@ const mockSimplePoll = (runningCount = 2) => { count === 0 ? 'pending' : count <= runningCount - ? 'running' - : 'completed', + ? 'running' + : 'completed', etag: '', status: 200 }) diff --git a/src/auth/AuthManager.ts b/src/auth/AuthManager.ts index 1c108e6..a1f5355d9 100644 --- a/src/auth/AuthManager.ts +++ b/src/auth/AuthManager.ts @@ -27,8 +27,8 @@ export class AuthManager { this.serverType === ServerType.Sas9 ? '/SASLogon/logout?' : this.serverType === ServerType.SasViya - ? '/SASLogon/logout.do?' - : '/SASLogon/logout' + ? '/SASLogon/logout.do?' + : '/SASLogon/logout' this.redirectedLoginUrl = this.serverUrl + this.redirectedLoginUrl } @@ -269,8 +269,8 @@ export class AuthManager { this.serverType === ServerType.SasViya ? `${this.serverUrl}/identities/users/@currentUser` : this.serverType === ServerType.Sas9 - ? `${this.serverUrl}/SASStoredProcess` - : `${this.serverUrl}/SASjsApi/session` + ? `${this.serverUrl}/SASStoredProcess` + : `${this.serverUrl}/SASjsApi/session` const { result: loginResponse } = await this.requestClient .get(url, undefined, 'text/plain') diff --git a/src/auth/spec/openWebPage.spec.ts b/src/auth/spec/openWebPage.spec.ts index a2f72a2..32fe5e3 100644 --- a/src/auth/spec/openWebPage.spec.ts +++ b/src/auth/spec/openWebPage.spec.ts @@ -10,7 +10,7 @@ describe('openWebPage', () => { describe('window.open is not blocked', () => { const mockedOpen = jest .fn() - .mockImplementation(() => ({} as unknown as Window)) + .mockImplementation(() => ({}) as unknown as Window) const originalOpen = window.open beforeAll(() => { diff --git a/src/job-execution/ComputeJobExecutor.ts b/src/job-execution/ComputeJobExecutor.ts index b0f959f..e1f7ff5 100644 --- a/src/job-execution/ComputeJobExecutor.ts +++ b/src/job-execution/ComputeJobExecutor.ts @@ -8,7 +8,10 @@ import { import { BaseJobExecutor } from './JobExecutor' export class ComputeJobExecutor extends BaseJobExecutor { - constructor(serverUrl: string, private sasViyaApiClient: SASViyaApiClient) { + constructor( + serverUrl: string, + private sasViyaApiClient: SASViyaApiClient + ) { super(serverUrl, ServerType.SasViya) } diff --git a/src/job-execution/JesJobExecutor.ts b/src/job-execution/JesJobExecutor.ts index 72cc848..5e1e9cd 100644 --- a/src/job-execution/JesJobExecutor.ts +++ b/src/job-execution/JesJobExecutor.ts @@ -10,7 +10,10 @@ import { BaseJobExecutor } from './JobExecutor' import { appendExtraResponseAttributes } from '../utils' export class JesJobExecutor extends BaseJobExecutor { - constructor(serverUrl: string, private sasViyaApiClient: SASViyaApiClient) { + constructor( + serverUrl: string, + private sasViyaApiClient: SASViyaApiClient + ) { super(serverUrl, ServerType.SasViya) } diff --git a/src/job-execution/JobExecutor.ts b/src/job-execution/JobExecutor.ts index cfc051b..f60ddfa 100644 --- a/src/job-execution/JobExecutor.ts +++ b/src/job-execution/JobExecutor.ts @@ -17,7 +17,10 @@ export interface JobExecutor { } export abstract class BaseJobExecutor implements JobExecutor { - constructor(protected serverUrl: string, protected serverType: ServerType) {} + constructor( + protected serverUrl: string, + protected serverType: ServerType + ) {} private waitingRequests: ExecuteFunction[] = [] diff --git a/src/types/errors/AuthorizeError.ts b/src/types/errors/AuthorizeError.ts index 694f84f..0c25a95 100644 --- a/src/types/errors/AuthorizeError.ts +++ b/src/types/errors/AuthorizeError.ts @@ -1,5 +1,8 @@ export class AuthorizeError extends Error { - constructor(public message: string, public confirmUrl: string) { + constructor( + public message: string, + public confirmUrl: string + ) { super(message) this.name = 'AuthorizeError' Object.setPrototypeOf(this, AuthorizeError.prototype) diff --git a/src/types/errors/ComputeJobExecutionError.ts b/src/types/errors/ComputeJobExecutionError.ts index 2505c71..cf05069 100644 --- a/src/types/errors/ComputeJobExecutionError.ts +++ b/src/types/errors/ComputeJobExecutionError.ts @@ -1,7 +1,10 @@ import { Job } from '../Job' export class ComputeJobExecutionError extends Error { - constructor(public job: Job, public log: string) { + constructor( + public job: Job, + public log: string + ) { super('Error: Job execution failed') this.name = 'ComputeJobExecutionError' Object.setPrototypeOf(this, ComputeJobExecutionError.prototype) diff --git a/src/types/errors/JobStatePollError.ts b/src/types/errors/JobStatePollError.ts index 2584b1c..e7f1b5d 100644 --- a/src/types/errors/JobStatePollError.ts +++ b/src/types/errors/JobStatePollError.ts @@ -1,5 +1,8 @@ export class JobStatePollError extends Error { - constructor(id: string, public originalError: Error) { + constructor( + id: string, + public originalError: Error + ) { super( `Error while polling job state for job ${id}: ${ originalError.message || originalError diff --git a/src/utils/convertToCsv.ts b/src/utils/convertToCsv.ts index 819b0b5..09295c1 100644 --- a/src/utils/convertToCsv.ts +++ b/src/utils/convertToCsv.ts @@ -110,8 +110,8 @@ export const convertToCSV = ( longestValueForField ? longestValueForField : firstFoundType === 'chars' - ? '1' - : 'best' + ? '1' + : 'best' }.` ) }