From cc7d05e4292ba457a4d3f7b56c76182ad7703f1e Mon Sep 17 00:00:00 2001
From: Artem Alexeyenko <ala@sitecore.net>
Date: Thu, 29 Sep 2022 18:08:40 -0400
Subject: [PATCH 1/2] Ensure headers from middleare are passed into
 NativeFetcher

---
 .../src/middleware/personalize-middleware.ts             | 9 ++++++++-
 packages/sitecore-jss/src/native-fetcher.ts              | 4 ++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/packages/sitecore-jss-nextjs/src/middleware/personalize-middleware.ts b/packages/sitecore-jss-nextjs/src/middleware/personalize-middleware.ts
index 18a8af4eba..dc0b550220 100644
--- a/packages/sitecore-jss-nextjs/src/middleware/personalize-middleware.ts
+++ b/packages/sitecore-jss-nextjs/src/middleware/personalize-middleware.ts
@@ -60,10 +60,17 @@ export class PersonalizeMiddleware {
     // NOTE: same here, we provide NativeDataFetcher for compatibility on Next.js Edge Runtime
     this.cdpService = new CdpService({
       ...config.cdpConfig,
-      dataFetcherResolver: <T>({ timeout }: { timeout: number }) => {
+      dataFetcherResolver: <T>({
+        timeout,
+        headers,
+      }: {
+        timeout: number;
+        headers?: Record<string, string>;
+      }) => {
         const fetcher = new NativeDataFetcher({
           debugger: debug.personalize,
           timeout,
+          headers,
         });
         return (url: string, data?: unknown) => fetcher.fetch<T>(url, data);
       },
diff --git a/packages/sitecore-jss/src/native-fetcher.ts b/packages/sitecore-jss/src/native-fetcher.ts
index 0b6a7442a3..51758aa240 100644
--- a/packages/sitecore-jss/src/native-fetcher.ts
+++ b/packages/sitecore-jss/src/native-fetcher.ts
@@ -15,6 +15,10 @@ type NativeDataFetcherOptions = {
    * Optional request timeout.
    */
   timeout?: number;
+  /**
+   * optional headers to use in fetch calls
+   */
+  headers?: Record<string, string>;
 };
 
 export type NativeDataFetcherConfig = NativeDataFetcherOptions & RequestInit;

From b61b67aac7b104026a700ae604a52283e90c0cc2 Mon Sep 17 00:00:00 2001
From: Artem Alexeyenko <ala@sitecore.net>
Date: Fri, 30 Sep 2022 09:41:52 -0400
Subject: [PATCH 2/2] remove headers field on NativeFetcherOptions to avoid
 duplicates

---
 packages/sitecore-jss/src/native-fetcher.ts | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/packages/sitecore-jss/src/native-fetcher.ts b/packages/sitecore-jss/src/native-fetcher.ts
index 51758aa240..0b6a7442a3 100644
--- a/packages/sitecore-jss/src/native-fetcher.ts
+++ b/packages/sitecore-jss/src/native-fetcher.ts
@@ -15,10 +15,6 @@ type NativeDataFetcherOptions = {
    * Optional request timeout.
    */
   timeout?: number;
-  /**
-   * optional headers to use in fetch calls
-   */
-  headers?: Record<string, string>;
 };
 
 export type NativeDataFetcherConfig = NativeDataFetcherOptions & RequestInit;