From b6e2e93457670819901bfc74e746c134a721b1a2 Mon Sep 17 00:00:00 2001 From: Chhavi Goyal Date: Thu, 8 May 2025 05:38:50 -0400 Subject: [PATCH 1/4] feat: import authorization header with curl (#4963) --- .../helpers/curl/__tests__/curlparser.spec.js | 34 +++++++++++++++++-- .../src/helpers/curl/sub_helpers/headers.ts | 5 +-- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/packages/hoppscotch-common/src/helpers/curl/__tests__/curlparser.spec.js b/packages/hoppscotch-common/src/helpers/curl/__tests__/curlparser.spec.js index 91d9b4d8..13192057 100644 --- a/packages/hoppscotch-common/src/helpers/curl/__tests__/curlparser.spec.js +++ b/packages/hoppscotch-common/src/helpers/curl/__tests__/curlparser.spec.js @@ -312,7 +312,14 @@ const samples = [ body: null, }, params: [], - headers: [], + headers: [ + { + active: true, + key: "Authorization", + value: "Basic dXNlcjpwYXNz", + description: "", + }, + ], preRequestScript: "", testScript: "", requestVariables: [], @@ -335,7 +342,14 @@ const samples = [ body: null, }, params: [], - headers: [], + headers: [ + { + active: true, + key: "Authorization", + value: "Basic 77898dXNlcjpwYXNz", + description: "", + }, + ], preRequestScript: "", testScript: "", requestVariables: [], @@ -360,7 +374,15 @@ const samples = [ body: null, }, params: [], - headers: [], + headers: [ + { + active: true, + key: "Authorization", + value: + "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", + description: "", + }, + ], preRequestScript: "", testScript: "", requestVariables: [], @@ -980,6 +1002,12 @@ data2: {"type":"test2","typeId":"123"}`, }, params: [], headers: [ + { + active: true, + key: "Authorization", + value: "Basic YXNkZmdoOjEyMzQ=", + description: "", + }, { active: true, key: "User-Agent", diff --git a/packages/hoppscotch-common/src/helpers/curl/sub_helpers/headers.ts b/packages/hoppscotch-common/src/helpers/curl/sub_helpers/headers.ts index fb839cc0..99cb5212 100644 --- a/packages/hoppscotch-common/src/helpers/curl/sub_helpers/headers.ts +++ b/packages/hoppscotch-common/src/helpers/curl/sub_helpers/headers.ts @@ -70,9 +70,6 @@ export const recordToHoppHeaders = ( description: "", })), A.filter( - (header) => - header.key !== "Authorization" && - header.key !== "content-type" && - header.key !== "Content-Type" + (header) => header.key !== "content-type" && header.key !== "Content-Type" ) ) From e9096eaca1cfd7bb855cb0c36e4cadf2b2b3956f Mon Sep 17 00:00:00 2001 From: Shreyas Date: Thu, 8 May 2025 15:29:08 +0530 Subject: [PATCH 2/4] fix(common): url and param encoding (#5041) --- .../src/helpers/functional/process-request.ts | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/packages/hoppscotch-common/src/helpers/functional/process-request.ts b/packages/hoppscotch-common/src/helpers/functional/process-request.ts index f11f15fd..e4bf20c9 100644 --- a/packages/hoppscotch-common/src/helpers/functional/process-request.ts +++ b/packages/hoppscotch-common/src/helpers/functional/process-request.ts @@ -34,13 +34,29 @@ const processParams = (params: [string, string][]): [string, string][] => { const isEncodingRequired = encodeMode === "enable" || (encodeMode === "auto" && needsEncoding(value)) - const encodedKey = isEncodingRequired ? encodeParam(key) : key const encodedValue = isEncodingRequired ? encodeParam(value) : value - return [encodedKey, encodedValue] + return [key, encodedValue] }) } +const buildQueryString = (params: [string, string][]): string => + params.map(([k, v]) => `${encodeURIComponent(k)}=${v}`).join("&") + +const combineWithExistingSearch = (urlObj: URL, queryString: string): URL => { + const existingSearch = + urlObj.search.length > 1 ? urlObj.search.substring(1) : "" + + urlObj.search = pipe( + existingSearch, + O.fromPredicate((s) => s.length > 0), + O.map((s) => `${s}&${queryString}`), + O.getOrElse(() => queryString) + ) + + return urlObj +} + const updateUrl = ( url: string, params: [string, string][] @@ -50,10 +66,17 @@ const updateUrl = ( () => new URL(url), (e) => new Error(`Invalid URL: ${e}`) ), - E.map((u) => { - processParams(params).forEach(([k, v]) => u.searchParams.append(k, v)) - return decodeURIComponent(u.toString()) - }) + E.map((urlObj) => { + const processedParams = processParams(params) + + if (processedParams.length > 0) { + const queryString = buildQueryString(processedParams) + return combineWithExistingSearch(urlObj, queryString) + } + + return urlObj + }), + E.map((u) => u.toString()) ) export const preProcessRelayRequest = (req: RelayRequest): RelayRequest => From 92627604bfdcfca714f51f3915c7c2d08200f7cf Mon Sep 17 00:00:00 2001 From: Mir Arif Hasan Date: Thu, 8 May 2025 16:07:49 +0600 Subject: [PATCH 3/4] hotfix: pin `xmldom` to `v0.8.10` addressing breaking change (#5059) --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 097ef9e7..526dc647 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "execa@0.10.0": "2.0.0", "@babel/runtime@<7.26.10": "7.26.10", "apiconnect-wsdl": "2.0.36", - "@xmldom/xmldom": "0.9.8" + "@xmldom/xmldom": "0.8.10" }, "packageExtensions": { "@hoppscotch/httpsnippet": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb5656a0..8017de46 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ overrides: execa@0.10.0: 2.0.0 '@babel/runtime@<7.26.10': 7.26.10 apiconnect-wsdl: 2.0.36 - '@xmldom/xmldom': 0.9.8 + '@xmldom/xmldom': 0.8.10 packageExtensionsChecksum: sha256-Qhsch/G1LLagBL1kRb8nf11C5HcyCWi8Px3h3uWxYUw= @@ -6205,9 +6205,9 @@ packages: resolution: {integrity: sha512-4jXDeZ4IH4bylZ6wu14VEx0aDXXhrN4TC279v9rPmn08g4EYekcYf8wdcOOnS9STjDkb6x77/6xBUTqxGgjr8g==} engines: {node: '>=18.0.0'} - '@xmldom/xmldom@0.9.8': - resolution: {integrity: sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==} - engines: {node: '>=14.6'} + '@xmldom/xmldom@0.8.10': + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -19138,7 +19138,7 @@ snapshots: fast-querystring: 1.1.2 tslib: 2.8.0 - '@xmldom/xmldom@0.9.8': {} + '@xmldom/xmldom@0.8.10': {} '@xtuc/ieee754@1.2.0': {} @@ -19299,7 +19299,7 @@ snapshots: apiconnect-wsdl@2.0.36(openapi-types@12.1.3): dependencies: - '@xmldom/xmldom': 0.9.8 + '@xmldom/xmldom': 0.8.10 iconv-lite: 0.6.3 js-yaml: 4.1.0 jszip: 3.10.1 From b5e19c9d46ea181cb1a17c73c2e59037e0cdd7fe Mon Sep 17 00:00:00 2001 From: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com> Date: Thu, 8 May 2025 15:38:52 +0530 Subject: [PATCH 4/4] chore: bump version to `2025.4.2` --- packages/hoppscotch-backend/package.json | 2 +- packages/hoppscotch-common/package.json | 2 +- .../src/services/instance-switcher.service.ts | 4 ++-- packages/hoppscotch-desktop/package.json | 2 +- packages/hoppscotch-desktop/src-tauri/Cargo.lock | 2 +- packages/hoppscotch-desktop/src-tauri/Cargo.toml | 2 +- packages/hoppscotch-desktop/src-tauri/tauri.conf.json | 2 +- packages/hoppscotch-selfhost-web/package.json | 2 +- .../hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs | 2 +- packages/hoppscotch-selfhost-web/webapp-server/src/config.rs | 4 ++-- packages/hoppscotch-sh-admin/package.json | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/hoppscotch-backend/package.json b/packages/hoppscotch-backend/package.json index f8bb3c5e..b545542d 100644 --- a/packages/hoppscotch-backend/package.json +++ b/packages/hoppscotch-backend/package.json @@ -1,6 +1,6 @@ { "name": "hoppscotch-backend", - "version": "2025.4.1", + "version": "2025.4.2", "description": "", "author": "", "private": true, diff --git a/packages/hoppscotch-common/package.json b/packages/hoppscotch-common/package.json index 13b9652a..5c82ef03 100644 --- a/packages/hoppscotch-common/package.json +++ b/packages/hoppscotch-common/package.json @@ -1,7 +1,7 @@ { "name": "@hoppscotch/common", "private": true, - "version": "2025.4.1", + "version": "2025.4.2", "scripts": { "dev": "pnpm exec npm-run-all -p -l dev:*", "test": "vitest --run", diff --git a/packages/hoppscotch-common/src/services/instance-switcher.service.ts b/packages/hoppscotch-common/src/services/instance-switcher.service.ts index 6c87563a..f147cfa3 100644 --- a/packages/hoppscotch-common/src/services/instance-switcher.service.ts +++ b/packages/hoppscotch-common/src/services/instance-switcher.service.ts @@ -48,7 +48,7 @@ export class InstanceSwitcherService extends Service { const instance: VendoredInstance = { type: "vendored", displayName: "Hoppscotch", - version: "25.4.1", + version: "25.4.2", } this.state$.next({ @@ -121,7 +121,7 @@ export class InstanceSwitcherService extends Service { const instance: VendoredInstance = { type: "vendored", displayName: "Hoppscotch", - version: "25.4.1", + version: "25.4.2", } this.state$.next({ diff --git a/packages/hoppscotch-desktop/package.json b/packages/hoppscotch-desktop/package.json index aa7dbf64..4175efd3 100644 --- a/packages/hoppscotch-desktop/package.json +++ b/packages/hoppscotch-desktop/package.json @@ -1,7 +1,7 @@ { "name": "hoppscotch-desktop", "private": true, - "version": "25.4.1", + "version": "25.4.2", "type": "module", "scripts": { "dev": "vite", diff --git a/packages/hoppscotch-desktop/src-tauri/Cargo.lock b/packages/hoppscotch-desktop/src-tauri/Cargo.lock index e2e8f6da..04a347cc 100644 --- a/packages/hoppscotch-desktop/src-tauri/Cargo.lock +++ b/packages/hoppscotch-desktop/src-tauri/Cargo.lock @@ -2033,7 +2033,7 @@ dependencies = [ [[package]] name = "hoppscotch-desktop" -version = "25.4.1" +version = "25.4.2" dependencies = [ "axum", "file-rotate", diff --git a/packages/hoppscotch-desktop/src-tauri/Cargo.toml b/packages/hoppscotch-desktop/src-tauri/Cargo.toml index e745f466..0fa39add 100644 --- a/packages/hoppscotch-desktop/src-tauri/Cargo.toml +++ b/packages/hoppscotch-desktop/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hoppscotch-desktop" -version = "25.4.1" +version = "25.4.2" description = "Desktop App for hoppscotch.io" authors = ["CuriousCorrelation"] edition = "2021" diff --git a/packages/hoppscotch-desktop/src-tauri/tauri.conf.json b/packages/hoppscotch-desktop/src-tauri/tauri.conf.json index 5ec98ba7..28b78816 100644 --- a/packages/hoppscotch-desktop/src-tauri/tauri.conf.json +++ b/packages/hoppscotch-desktop/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Hoppscotch", - "version": "25.4.1", + "version": "25.4.2", "identifier": "io.hoppscotch.desktop", "build": { "beforeDevCommand": "pnpm dev", diff --git a/packages/hoppscotch-selfhost-web/package.json b/packages/hoppscotch-selfhost-web/package.json index dca4ed95..75b189de 100644 --- a/packages/hoppscotch-selfhost-web/package.json +++ b/packages/hoppscotch-selfhost-web/package.json @@ -1,7 +1,7 @@ { "name": "@hoppscotch/selfhost-web", "private": true, - "version": "2025.4.1", + "version": "2025.4.2", "type": "module", "scripts": { "dev:vite": "vite", diff --git a/packages/hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs b/packages/hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs index 760b1f63..741e8ee5 100644 --- a/packages/hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs +++ b/packages/hoppscotch-selfhost-web/webapp-server/src/bundle/model.rs @@ -47,7 +47,7 @@ pub struct Bundle { impl Bundle { pub fn new(bundle_version: Option, content: Vec, signature: Signature, files: Vec) -> Self { let metadata = BundleMetadata { - version: "2025.4.1".to_string(), + version: "2025.4.2".to_string(), created_at: Utc::now(), signature, manifest: Manifest { files }, diff --git a/packages/hoppscotch-selfhost-web/webapp-server/src/config.rs b/packages/hoppscotch-selfhost-web/webapp-server/src/config.rs index 10fb2eb1..0fcc37d3 100644 --- a/packages/hoppscotch-selfhost-web/webapp-server/src/config.rs +++ b/packages/hoppscotch-selfhost-web/webapp-server/src/config.rs @@ -54,7 +54,7 @@ impl Default for ServerConfig { Self { port: default_port(), max_bundle_size: default_max_bundle_size(), - bundle_version: Some("2025.4.1".to_string()), + bundle_version: Some("2025.4.2".to_string()), csp_directives: None, signing_key: None, verifying_key: None, @@ -75,7 +75,7 @@ impl ServerConfig { Self { signing_key: Some(key_pair.signing_key), verifying_key: Some(key_pair.verifying_key), - bundle_version: Some("2025.4.1".to_string()), + bundle_version: Some("2025.4.2".to_string()), frontend_path, is_dev: cfg!(debug_assertions), ..Default::default() diff --git a/packages/hoppscotch-sh-admin/package.json b/packages/hoppscotch-sh-admin/package.json index 4e15997c..ef94a600 100644 --- a/packages/hoppscotch-sh-admin/package.json +++ b/packages/hoppscotch-sh-admin/package.json @@ -1,7 +1,7 @@ { "name": "hoppscotch-sh-admin", "private": true, - "version": "2025.4.1", + "version": "2025.4.2", "type": "module", "scripts": { "dev": "pnpm exec npm-run-all -p -l dev:*",