From ed1a072ba1f4b33b80bd21e880d9018df09d955f Mon Sep 17 00:00:00 2001 From: lohit Date: Tue, 26 Aug 2025 18:49:50 +0530 Subject: [PATCH] chore: eslint updates and fixes (#5402) --- eslint.config.js | 154 +++++++++- package-lock.json | 267 +++++++++++++++++- package.json | 3 +- .../bruno-cli/src/runner/awsv4auth-helper.js | 4 +- .../src/ipc/network/awsv4auth-helper.js | 4 +- .../src/ipc/network/grpc-event-handlers.js | 3 +- .../bruno-electron/src/ipc/network/index.js | 2 +- 7 files changed, 423 insertions(+), 14 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 30930c550..2d136029b 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -5,7 +5,7 @@ const globals = require("globals"); module.exports = defineConfig([ { files: ["packages/bruno-app/**/*.{js,jsx,ts}"], - ignores: ["**/*.config.js"], + ignores: ["**/*.config.js", "**/public/**/*"], languageOptions: { globals: { ...globals.browser, @@ -13,7 +13,8 @@ module.exports = defineConfig([ global: false, require: false, Buffer: false, - process: false + process: false, + ipcRenderer: false }, parserOptions: { ecmaFeatures: { @@ -39,8 +40,60 @@ module.exports = defineConfig([ }, }, { - files: ["packages/bruno-electron/**/*.{js}"], + files: ["packages/bruno-cli/**/*.js"], ignores: ["**/*.config.js"], + languageOptions: { + globals: { + ...globals.node, + ...globals.jest, + }, + parserOptions: { + ecmaVersion: "latest" + }, + }, + rules: { + "no-undef": "error", + }, + }, + { + files: ["packages/bruno-common/**/*.ts"], + ignores: ["**/*.config.js", "**/dist/**/*"], + languageOptions: { + globals: { + ...globals.node, + ...globals.jest, + }, + parser: require("@typescript-eslint/parser"), + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + project: "./packages/bruno-common/tsconfig.json", + }, + }, + rules: { + "no-undef": "error", + }, + }, + { + files: ["packages/bruno-converters/**/*.js"], + ignores: ["**/*.config.js", "**/dist/**/*"], + languageOptions: { + globals: { + ...globals.node, + ...globals.jest, + }, + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + }, + }, + rules: { + "no-undef": "error", + }, + }, + { + files: ["packages/bruno-electron/**/*.js"], + ignores: ["**/*.config.js", "**/web/**/*"], languageOptions: { globals: { ...globals.node, @@ -50,5 +103,98 @@ module.exports = defineConfig([ rules: { "no-undef": "error", }, - } + }, + { + files: ["packages/bruno-filestore/**/*.ts"], + ignores: ["**/*.config.js", "**/dist/**/*"], + languageOptions: { + globals: { + ...globals.node, + ...globals.jest, + }, + parser: require("@typescript-eslint/parser"), + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + project: "./packages/bruno-filestore/tsconfig.json", + }, + }, + rules: { + "no-undef": "error", + }, + }, + { + files: ["packages/bruno-js/**/*.js"], + ignores: ["**/*.config.js", "**/dist/**/*"], + languageOptions: { + globals: { + ...globals.node, + ...globals.jest, + window: false, + self: false, + HTMLElement: false, + typeDetectGlobalObject: false + }, + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + }, + }, + rules: { + "no-undef": "error", + }, + }, + { + files: ["packages/bruno-lang/**/*.js"], + ignores: ["**/*.config.js", "**/dist/**/*"], + languageOptions: { + globals: { + ...globals.node, + ...globals.jest, + }, + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + }, + }, + rules: { + "no-undef": "error", + }, + }, + { + files: ["packages/bruno-requests/**/*.ts"], + ignores: ["**/*.config.js", "**/dist/**/*"], + languageOptions: { + globals: { + ...globals.node, + ...globals.jest, + }, + parser: require("@typescript-eslint/parser"), + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + project: "./packages/bruno-requests/tsconfig.json", + }, + }, + rules: { + "no-undef": "error", + }, + }, + { + files: ["packages/bruno-requests/**/*.js"], + ignores: ["**/*.config.js", "**/dist/**/*"], + languageOptions: { + globals: { + ...globals.node, + ...globals.jest, + }, + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + }, + }, + rules: { + "no-undef": "error", + }, + }, ]); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 159bf924d..de4683783 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "@types/jest": "^29.5.11", "@types/lodash-es": "^4.17.12", "@types/node": "^22.14.1", + "@typescript-eslint/parser": "^8.39.0", "concurrently": "^8.2.2", "eslint": "^9.26.0", "fs-extra": "^11.1.1", @@ -8384,6 +8385,253 @@ "@types/node": "*" } }, + "node_modules/@typescript-eslint/parser": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.39.0.tgz", + "integrity": "sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/typescript-estree": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.39.0.tgz", + "integrity": "sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.39.0", + "@typescript-eslint/types": "^8.39.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/project-service/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.39.0.tgz", + "integrity": "sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.39.0.tgz", + "integrity": "sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.39.0.tgz", + "integrity": "sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.39.0.tgz", + "integrity": "sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.39.0", + "@typescript-eslint/tsconfig-utils": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.39.0.tgz", + "integrity": "sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.39.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@usebruno/app": { "resolved": "packages/bruno-app", "link": true @@ -13013,9 +13261,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -25451,6 +25699,19 @@ "utf8-byte-length": "^1.0.1" } }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", diff --git a/package.json b/package.json index aa01a08f2..fe8dafdc9 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@types/jest": "^29.5.11", "@types/lodash-es": "^4.17.12", "@types/node": "^22.14.1", + "@typescript-eslint/parser": "^8.39.0", "concurrently": "^8.2.2", "eslint": "^9.26.0", "fs-extra": "^11.1.1", @@ -76,4 +77,4 @@ } } } -} \ No newline at end of file +} diff --git a/packages/bruno-cli/src/runner/awsv4auth-helper.js b/packages/bruno-cli/src/runner/awsv4auth-helper.js index 8714ae39c..a95a45124 100644 --- a/packages/bruno-cli/src/runner/awsv4auth-helper.js +++ b/packages/bruno-cli/src/runner/awsv4auth-helper.js @@ -9,11 +9,11 @@ async function resolveAwsV4Credentials(request) { const awsv4 = request.awsv4config; if (isStrPresent(awsv4.profileName)) { try { - credentialsProvider = fromIni({ + const credentialsProvider = fromIni({ profile: awsv4.profileName, ignoreCache: true }); - credentials = await credentialsProvider(); + const credentials = await credentialsProvider(); awsv4.accessKeyId = credentials.accessKeyId; awsv4.secretAccessKey = credentials.secretAccessKey; awsv4.sessionToken = credentials.sessionToken; diff --git a/packages/bruno-electron/src/ipc/network/awsv4auth-helper.js b/packages/bruno-electron/src/ipc/network/awsv4auth-helper.js index 8714ae39c..a95a45124 100644 --- a/packages/bruno-electron/src/ipc/network/awsv4auth-helper.js +++ b/packages/bruno-electron/src/ipc/network/awsv4auth-helper.js @@ -9,11 +9,11 @@ async function resolveAwsV4Credentials(request) { const awsv4 = request.awsv4config; if (isStrPresent(awsv4.profileName)) { try { - credentialsProvider = fromIni({ + const credentialsProvider = fromIni({ profile: awsv4.profileName, ignoreCache: true }); - credentials = await credentialsProvider(); + const credentials = await credentialsProvider(); awsv4.accessKeyId = credentials.accessKeyId; awsv4.secretAccessKey = credentials.secretAccessKey; awsv4.sessionToken = credentials.sessionToken; diff --git a/packages/bruno-electron/src/ipc/network/grpc-event-handlers.js b/packages/bruno-electron/src/ipc/network/grpc-event-handlers.js index 78d47a8c8..cc3ad9add 100644 --- a/packages/bruno-electron/src/ipc/network/grpc-event-handlers.js +++ b/packages/bruno-electron/src/ipc/network/grpc-event-handlers.js @@ -129,6 +129,7 @@ const prepareRequest = async (item, collection, environment, runtimeVariables, c const collectionRoot = collection?.draft ? get(collection, 'draft', {}) : get(collection, 'root', {}); const headers = {}; const url = request.url; + let contentTypeDefined = false; each(get(collectionRoot, 'request.headers', []), (h) => { if (h.enabled && h.name?.toLowerCase() === 'content-type') { @@ -186,7 +187,7 @@ const prepareRequest = async (item, collection, environment, runtimeVariables, c if (grpcRequest.oauth2) { let requestCopy = cloneDeep(grpcRequest); const { oauth2: { grantType, tokenPlacement, tokenHeaderPrefix, tokenQueryKey } = {} } = requestCopy || {}; - let credentials, credentialsId; + let credentials, credentialsId, oauth2Url, debugInfo; switch (grantType) { case 'authorization_code': interpolateVars(requestCopy, envVars, runtimeVariables, processEnvVars); diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index cd5801476..37fd9bd3a 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -102,7 +102,7 @@ const configureRequest = async ( if (request.oauth2) { let requestCopy = cloneDeep(request); const { oauth2: { grantType, tokenPlacement, tokenHeaderPrefix, tokenQueryKey } = {} } = requestCopy || {}; - let credentials, credentialsId; + let credentials, credentialsId, oauth2Url, debugInfo; switch (grantType) { case 'authorization_code': interpolateVars(requestCopy, envVars, runtimeVariables, processEnvVars);