From 84de99e5e3550bc1d08748b56857f5145f8cbe83 Mon Sep 17 00:00:00 2001 From: Bob Florian Date: Tue, 3 Sep 2024 08:38:12 -0400 Subject: [PATCH] fix: allow port number in callback URLs of API_ONLY apps --- .changeset/bright-books-fail.md | 5 +++++ packages/lib/src/__tests__/validate-util.test.ts | 2 ++ packages/lib/src/validate-util.ts | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/bright-books-fail.md diff --git a/.changeset/bright-books-fail.md b/.changeset/bright-books-fail.md new file mode 100644 index 00000000..e9d226a6 --- /dev/null +++ b/.changeset/bright-books-fail.md @@ -0,0 +1,5 @@ +--- +"@smartthings/cli-lib": patch +--- + +Allow port number in callback URLs of API_ONLY apps. diff --git a/packages/lib/src/__tests__/validate-util.test.ts b/packages/lib/src/__tests__/validate-util.test.ts index 80d018f8..0958fced 100644 --- a/packages/lib/src/__tests__/validate-util.test.ts +++ b/packages/lib/src/__tests__/validate-util.test.ts @@ -170,6 +170,8 @@ describe('localhostOrHTTPSValidate', () => { 'https://www.adafruit.com/category/168', 'http://localhost/path/to/fun', 'http://127.0.0.1', + 'http://localhost:3000', + 'http://127.0.0.1:3000/callback', ])('accepts "%s" when https is required', (input) => { expect(localhostOrHTTPSValidate(input)).toBe(true) }) diff --git a/packages/lib/src/validate-util.ts b/packages/lib/src/validate-util.ts index e94d933f..0c392af0 100644 --- a/packages/lib/src/validate-util.ts +++ b/packages/lib/src/validate-util.ts @@ -99,7 +99,7 @@ const urlValidateFn = (options?: URLValidateFnOptions): ValidateFunction => { if (options?.httpsRequired) { if (options.allowLocalhostHTTP) { return url.protocol === 'https:' || - url.protocol === 'http:' && allowedHTTPHosts.includes(url.host) || + url.protocol === 'http:' && allowedHTTPHosts.includes(url.hostname) || 'https is required except for localhost' } return url.protocol === 'https:' || 'https protocol is required'