From bbdf9c32a453a5bb7b47e9d598a1944d526872de Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 3 Nov 2022 23:16:20 +0100 Subject: [PATCH 1/3] fix(nuxt): ensure payload url has no protocol --- packages/nuxt/src/app/composables/payload.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/app/composables/payload.ts b/packages/nuxt/src/app/composables/payload.ts index 011d6a6938d..49813460a11 100644 --- a/packages/nuxt/src/app/composables/payload.ts +++ b/packages/nuxt/src/app/composables/payload.ts @@ -37,12 +37,12 @@ export function preloadPayload (url: string, opts: LoadPayloadOptions = {}) { // --- Internal --- function _getPayloadURL (url: string, opts: LoadPayloadOptions = {}) { - const parsed = parseURL(url) - if (parsed.search) { + const u = new URL(url, 'http://localhost') + if (u.search) { throw new Error('Payload URL cannot contain search params: ' + url) } const hash = opts.hash || (opts.fresh ? Date.now() : '') - return joinURL(useRuntimeConfig().app.baseURL, parsed.pathname, hash ? `_payload.${hash}.js` : '_payload.js') + return joinURL(useRuntimeConfig().app.baseURL, u.pathname, hash ? `_payload.${hash}.js` : '_payload.js') } async function _importPayload (payloadURL: string) { From d6ea2a0c789d814ec888da8422032073963495ee Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 3 Nov 2022 23:18:56 +0100 Subject: [PATCH 2/3] explicitly check host --- packages/nuxt/src/app/composables/payload.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/nuxt/src/app/composables/payload.ts b/packages/nuxt/src/app/composables/payload.ts index 49813460a11..12e92ec370b 100644 --- a/packages/nuxt/src/app/composables/payload.ts +++ b/packages/nuxt/src/app/composables/payload.ts @@ -41,6 +41,9 @@ function _getPayloadURL (url: string, opts: LoadPayloadOptions = {}) { if (u.search) { throw new Error('Payload URL cannot contain search params: ' + url) } + if (u.host !== 'localhost') { + throw new Error('Payload URL cannot contain host: ' + url) + } const hash = opts.hash || (opts.fresh ? Date.now() : '') return joinURL(useRuntimeConfig().app.baseURL, u.pathname, hash ? `_payload.${hash}.js` : '_payload.js') } From 4fd9a8c00ca12e3d3d9fa3e683043e4d69a03993 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 3 Nov 2022 23:21:30 +0100 Subject: [PATCH 3/3] fix lint --- packages/nuxt/src/app/composables/payload.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/composables/payload.ts b/packages/nuxt/src/app/composables/payload.ts index 12e92ec370b..99741489582 100644 --- a/packages/nuxt/src/app/composables/payload.ts +++ b/packages/nuxt/src/app/composables/payload.ts @@ -1,4 +1,4 @@ -import { parseURL, joinURL } from 'ufo' +import { joinURL } from 'ufo' import { useNuxtApp } from '../nuxt' import { useHead, useRuntimeConfig } from '..'