[object Object]

← back to Designer Wallcoverings

chore: codemod 46 DW scripts node-fetch require → globalThis.fetch (Node 26)

7d1e0a3210817a9cf7d8db88f06bfe36102f067b · 2026-07-09 22:09:05 -0700 · Steve

DW is on node-fetch 3.3.2 (ESM); bare require('node-fetch') returns a namespace
object on Node 26 → 'fetch is not a function' if ever run. These are manual one-off
scripts (fail-loud, not scheduled) but swapped to built-in global fetch for tidiness
so none can surprise mid-run. Left destructured/.default bindings + thesetdecorator
(node-fetch v2, CJS-safe) untouched. All 46 syntax-checked.

Fixes a prior misfired codemod that blanked the fetch line (auto-committed in 1566feb7).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 7d1e0a3210817a9cf7d8db88f06bfe36102f067b
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Jul 9 22:09:05 2026 -0700

    chore: codemod 46 DW scripts node-fetch require → globalThis.fetch (Node 26)
    
    DW is on node-fetch 3.3.2 (ESM); bare require('node-fetch') returns a namespace
    object on Node 26 → 'fetch is not a function' if ever run. These are manual one-off
    scripts (fail-loud, not scheduled) but swapped to built-in global fetch for tidiness
    so none can surprise mid-run. Left destructured/.default bindings + thesetdecorator
    (node-fetch v2, CJS-safe) untouched. All 46 syntax-checked.
    
    Fixes a prior misfired codemod that blanked the fetch line (auto-committed in 1566feb7).
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 DW-Programming/ImportNewSkufromURL/find-recent-sancar.js                | 2 +-
 DW-Programming/ImportNewSkufromURL/remove-sancar-name.js                | 2 +-
 DW-Programming/ImportNewSkufromURL/test-api-response.js                 | 2 +-
 DW-Programming/maya-romanoff-updater/fix-dwjs-titles.js                 | 2 +-
 DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js           | 2 +-
 DW-Programming/maya-romanoff-updater/server.js                          | 2 +-
 DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js            | 2 +-
 .../vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js          | 2 +-
 DW-Programming/versace-dry-run.js                                       | 2 +-
 shopify/quote-api/sku-inquiry-handler.js                                | 2 +-
 shopify/scripts/activate-arte-cron.js                                   | 2 +-
 shopify/scripts/activate-draft-koroseal.js                              | 2 +-
 shopify/scripts/activate-koroseal-cron.js                               | 2 +-
 shopify/scripts/add-koroseal-with-sheets.js                             | 2 +-
 shopify/scripts/add-new-koroseal-products.js                            | 2 +-
 shopify/scripts/add-new-koroseal-v2.js                                  | 2 +-
 shopify/scripts/add-sample-variants.js                                  | 2 +-
 shopify/scripts/add-trending-tag.js                                     | 2 +-
 shopify/scripts/arte-dashboard/bulk-title-updater.js                    | 2 +-
 shopify/scripts/check-sundar-grove.js                                   | 2 +-
 shopify/scripts/find-linsey-no-images.js                                | 2 +-
 shopify/scripts/fix-302xxx-products.js                                  | 2 +-
 shopify/scripts/fix-adalyn-remaining.js                                 | 2 +-
 shopify/scripts/fix-all-koroseal-images.js                              | 2 +-
 shopify/scripts/fix-arlo.js                                             | 2 +-
 shopify/scripts/fix-astra-products.js                                   | 2 +-
 shopify/scripts/fix-canopy-colors.js                                    | 2 +-
 shopify/scripts/fix-chateau-titles.js                                   | 2 +-
 shopify/scripts/fix-generic-titles.js                                   | 2 +-
 shopify/scripts/fix-linden-ii.js                                        | 2 +-
 shopify/scripts/fix-linsey.js                                           | 2 +-
 shopify/scripts/fix-marble-hill.js                                      | 2 +-
 shopify/scripts/fix-muga-silk.js                                        | 2 +-
 shopify/scripts/fix-sarah-rowland-immediate.js                          | 2 +-
 shopify/scripts/fix-sarah-rowland-titles.js                             | 2 +-
 shopify/scripts/fix-sarah-rowland-v2.js                                 | 2 +-
 shopify/scripts/fix-titles-by-current.js                                | 2 +-
 shopify/scripts/koroseal-mfr-populator.js                               | 2 +-
 shopify/scripts/koroseal-new-product-finder.js                          | 2 +-
 shopify/scripts/populate-draft-mfr.js                                   | 2 +-
 shopify/scripts/remove-review-tags.js                                   | 2 +-
 shopify/scripts/search-koroseal-sundar.js                               | 2 +-
 shopify/scripts/templates/new-product-import-template.js                | 2 +-
 shopify/scripts/update-brand-mckenzie-vendor.js                         | 2 +-
 shopify/scripts/update-dwk-full-details.js                              | 2 +-
 shopify/scripts/update-dwk-slow-seo.js                                  | 2 +-
 46 files changed, 46 insertions(+), 46 deletions(-)

diff --git a/DW-Programming/ImportNewSkufromURL/find-recent-sancar.js b/DW-Programming/ImportNewSkufromURL/find-recent-sancar.js
index 80ef3978..0f94b664 100644
--- a/DW-Programming/ImportNewSkufromURL/find-recent-sancar.js
+++ b/DW-Programming/ImportNewSkufromURL/find-recent-sancar.js
@@ -1,5 +1,5 @@
 require('dotenv').config({ path: '.env.local' });
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 const SHOPIFY_DOMAIN = process.env.SHOPIFY_STORE_DOMAIN;
 const SHOPIFY_ACCESS_TOKEN = process.env.SHOPIFY_ADMIN_ACCESS_TOKEN;
diff --git a/DW-Programming/ImportNewSkufromURL/remove-sancar-name.js b/DW-Programming/ImportNewSkufromURL/remove-sancar-name.js
index d0b504fc..12768b3f 100644
--- a/DW-Programming/ImportNewSkufromURL/remove-sancar-name.js
+++ b/DW-Programming/ImportNewSkufromURL/remove-sancar-name.js
@@ -1,5 +1,5 @@
 require('dotenv').config({ path: '.env.local' });
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 const SHOPIFY_DOMAIN = process.env.SHOPIFY_STORE_DOMAIN;
 const SHOPIFY_ACCESS_TOKEN = process.env.SHOPIFY_ADMIN_ACCESS_TOKEN;
diff --git a/DW-Programming/ImportNewSkufromURL/test-api-response.js b/DW-Programming/ImportNewSkufromURL/test-api-response.js
index 4465aa25..02842f5f 100644
--- a/DW-Programming/ImportNewSkufromURL/test-api-response.js
+++ b/DW-Programming/ImportNewSkufromURL/test-api-response.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 (async () => {
   const testUrl = 'https://schumacher.com/catalog/products/5017392';
diff --git a/DW-Programming/maya-romanoff-updater/fix-dwjs-titles.js b/DW-Programming/maya-romanoff-updater/fix-dwjs-titles.js
index 2d0cbf73..8a8e568d 100644
--- a/DW-Programming/maya-romanoff-updater/fix-dwjs-titles.js
+++ b/DW-Programming/maya-romanoff-updater/fix-dwjs-titles.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 const SHOPIFY_DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
 const ACCESS_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
diff --git a/DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js b/DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js
index 89376ae4..c1bd918a 100644
--- a/DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js
+++ b/DW-Programming/maya-romanoff-updater/maya-romanoff-updater.js
@@ -14,7 +14,7 @@
  */
 
 const puppeteer = require('puppeteer');
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const { Pool } = require('pg');
 
 // Configuration
diff --git a/DW-Programming/maya-romanoff-updater/server.js b/DW-Programming/maya-romanoff-updater/server.js
index 8e765e8c..1dfc65d5 100644
--- a/DW-Programming/maya-romanoff-updater/server.js
+++ b/DW-Programming/maya-romanoff-updater/server.js
@@ -15,7 +15,7 @@
 
 const express = require('express');
 const puppeteer = require('puppeteer');
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const { Pool } = require('pg');
 
 const app = express();
diff --git a/DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js b/DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js
index d60be722..b05eec24 100644
--- a/DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js
+++ b/DW-Programming/vendor-crawlers/thibaut-crawler/full-fetch.js
@@ -6,7 +6,7 @@
  */
 
 const puppeteer = require('puppeteer');
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const { Pool } = require('pg');
 
 const CRAWLER_API = 'http://localhost:9966';
diff --git a/DW-Programming/vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js b/DW-Programming/vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js
index 97d61eb1..65478fcd 100644
--- a/DW-Programming/vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js
+++ b/DW-Programming/vendor-crawlers/thibaut-crawler/sync-shopify-to-catalog.js
@@ -10,7 +10,7 @@
  */
 
 const { Pool } = require('pg');
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 const pool = new Pool({
   connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
diff --git a/DW-Programming/versace-dry-run.js b/DW-Programming/versace-dry-run.js
index 865f1909..fe9f23a3 100644
--- a/DW-Programming/versace-dry-run.js
+++ b/DW-Programming/versace-dry-run.js
@@ -1,5 +1,5 @@
 const { Pool } = require('pg');
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 const pool = new Pool({ connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified') });
 
diff --git a/shopify/quote-api/sku-inquiry-handler.js b/shopify/quote-api/sku-inquiry-handler.js
index 3320d102..9742ccb9 100644
--- a/shopify/quote-api/sku-inquiry-handler.js
+++ b/shopify/quote-api/sku-inquiry-handler.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 /**
  * sku-inquiry-handler.js — backend for the contact-for-price.liquid PDP block.
diff --git a/shopify/scripts/activate-arte-cron.js b/shopify/scripts/activate-arte-cron.js
index 40fde523..536bd546 100644
--- a/shopify/scripts/activate-arte-cron.js
+++ b/shopify/scripts/activate-arte-cron.js
@@ -5,7 +5,7 @@
  * - Sends Slack notification to Steve
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const { isProtected } = require('/Users/macstudio3/Projects/_shared/archive-guard');
 
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/activate-draft-koroseal.js b/shopify/scripts/activate-draft-koroseal.js
index 2963ae6d..64d9be3a 100644
--- a/shopify/scripts/activate-draft-koroseal.js
+++ b/shopify/scripts/activate-draft-koroseal.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const cheerio = require('cheerio');
 const { isProtected } = require('/Users/macstudio3/Projects/_shared/archive-guard');
 
diff --git a/shopify/scripts/activate-koroseal-cron.js b/shopify/scripts/activate-koroseal-cron.js
index e9dffc3c..a34feec9 100644
--- a/shopify/scripts/activate-koroseal-cron.js
+++ b/shopify/scripts/activate-koroseal-cron.js
@@ -4,7 +4,7 @@
  * Sends Slack notification to Steve
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const { isProtected } = require('/Users/macstudio3/Projects/_shared/archive-guard');
 
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/add-koroseal-with-sheets.js b/shopify/scripts/add-koroseal-with-sheets.js
index 840af9fe..1db6cdc9 100644
--- a/shopify/scripts/add-koroseal-with-sheets.js
+++ b/shopify/scripts/add-koroseal-with-sheets.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const cheerio = require('cheerio');
 const { google } = require('googleapis');
 const path = require('path');
diff --git a/shopify/scripts/add-new-koroseal-products.js b/shopify/scripts/add-new-koroseal-products.js
index ce10dd8f..f3e864ff 100644
--- a/shopify/scripts/add-new-koroseal-products.js
+++ b/shopify/scripts/add-new-koroseal-products.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const cheerio = require('cheerio');
 
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/add-new-koroseal-v2.js b/shopify/scripts/add-new-koroseal-v2.js
index 0a42f236..64626f52 100644
--- a/shopify/scripts/add-new-koroseal-v2.js
+++ b/shopify/scripts/add-new-koroseal-v2.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const cheerio = require('cheerio');
 
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/add-sample-variants.js b/shopify/scripts/add-sample-variants.js
index dcad7e00..be17b86d 100644
--- a/shopify/scripts/add-sample-variants.js
+++ b/shopify/scripts/add-sample-variants.js
@@ -3,7 +3,7 @@
  * Add SKU and $4.25 price to all DWK-40xxx Koroseal product variants
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
diff --git a/shopify/scripts/add-trending-tag.js b/shopify/scripts/add-trending-tag.js
index 26434572..61de4264 100644
--- a/shopify/scripts/add-trending-tag.js
+++ b/shopify/scripts/add-trending-tag.js
@@ -1,5 +1,5 @@
 #!/usr/bin/env node
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/arte-dashboard/bulk-title-updater.js b/shopify/scripts/arte-dashboard/bulk-title-updater.js
index 7c29c9cb..19c8a8ac 100755
--- a/shopify/scripts/arte-dashboard/bulk-title-updater.js
+++ b/shopify/scripts/arte-dashboard/bulk-title-updater.js
@@ -9,7 +9,7 @@
  */
 
 const { Pool } = require('pg');
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 const pool = new Pool({
   connectionString: (process.env.DATABASE_URL || 'postgresql://dw_admin@127.0.0.1:5432/dw_unified')
diff --git a/shopify/scripts/check-sundar-grove.js b/shopify/scripts/check-sundar-grove.js
index d6f468aa..c268d20a 100644
--- a/shopify/scripts/check-sundar-grove.js
+++ b/shopify/scripts/check-sundar-grove.js
@@ -3,7 +3,7 @@
  * Check Sundar Grove products for images
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/find-linsey-no-images.js b/shopify/scripts/find-linsey-no-images.js
index a235f5cd..ff5fe40d 100644
--- a/shopify/scripts/find-linsey-no-images.js
+++ b/shopify/scripts/find-linsey-no-images.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-302xxx-products.js b/shopify/scripts/fix-302xxx-products.js
index 7471b907..327903f9 100644
--- a/shopify/scripts/fix-302xxx-products.js
+++ b/shopify/scripts/fix-302xxx-products.js
@@ -8,7 +8,7 @@
  * Run: node fix-302xxx-products.js
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 // Shopify Configuration
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/fix-adalyn-remaining.js b/shopify/scripts/fix-adalyn-remaining.js
index 8b9012ef..728d28bc 100644
--- a/shopify/scripts/fix-adalyn-remaining.js
+++ b/shopify/scripts/fix-adalyn-remaining.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-all-koroseal-images.js b/shopify/scripts/fix-all-koroseal-images.js
index a631f6fe..a505c721 100644
--- a/shopify/scripts/fix-all-koroseal-images.js
+++ b/shopify/scripts/fix-all-koroseal-images.js
@@ -6,7 +6,7 @@
  * - Adds images to Shopify products
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const cheerio = require('cheerio');
 
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/fix-arlo.js b/shopify/scripts/fix-arlo.js
index 0163af21..da237362 100644
--- a/shopify/scripts/fix-arlo.js
+++ b/shopify/scripts/fix-arlo.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-astra-products.js b/shopify/scripts/fix-astra-products.js
index ecb3233a..8977c389 100644
--- a/shopify/scripts/fix-astra-products.js
+++ b/shopify/scripts/fix-astra-products.js
@@ -3,7 +3,7 @@
  * Fix Astra Vinyl Products - Update titles and MFR numbers
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
diff --git a/shopify/scripts/fix-canopy-colors.js b/shopify/scripts/fix-canopy-colors.js
index 29b2e1c4..8efc2a2f 100644
--- a/shopify/scripts/fix-canopy-colors.js
+++ b/shopify/scripts/fix-canopy-colors.js
@@ -3,7 +3,7 @@
  * Fix Canopy product titles with correct Koroseal color names
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-chateau-titles.js b/shopify/scripts/fix-chateau-titles.js
index 84e9810f..787d4053 100644
--- a/shopify/scripts/fix-chateau-titles.js
+++ b/shopify/scripts/fix-chateau-titles.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-generic-titles.js b/shopify/scripts/fix-generic-titles.js
index 78d0365d..5de777a3 100644
--- a/shopify/scripts/fix-generic-titles.js
+++ b/shopify/scripts/fix-generic-titles.js
@@ -8,7 +8,7 @@
  * Run: node fix-generic-titles.js
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 // Shopify Configuration
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/fix-linden-ii.js b/shopify/scripts/fix-linden-ii.js
index ad50aee5..547e5f37 100644
--- a/shopify/scripts/fix-linden-ii.js
+++ b/shopify/scripts/fix-linden-ii.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-linsey.js b/shopify/scripts/fix-linsey.js
index 1dfa7b69..e8dc5262 100644
--- a/shopify/scripts/fix-linsey.js
+++ b/shopify/scripts/fix-linsey.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-marble-hill.js b/shopify/scripts/fix-marble-hill.js
index cd62be61..580efceb 100644
--- a/shopify/scripts/fix-marble-hill.js
+++ b/shopify/scripts/fix-marble-hill.js
@@ -1,5 +1,5 @@
 #!/usr/bin/env node
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-muga-silk.js b/shopify/scripts/fix-muga-silk.js
index c73625c7..ca80cfc5 100644
--- a/shopify/scripts/fix-muga-silk.js
+++ b/shopify/scripts/fix-muga-silk.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-sarah-rowland-immediate.js b/shopify/scripts/fix-sarah-rowland-immediate.js
index a0912cea..dd3110d6 100644
--- a/shopify/scripts/fix-sarah-rowland-immediate.js
+++ b/shopify/scripts/fix-sarah-rowland-immediate.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-sarah-rowland-titles.js b/shopify/scripts/fix-sarah-rowland-titles.js
index 5d00fb72..67b0bbe9 100644
--- a/shopify/scripts/fix-sarah-rowland-titles.js
+++ b/shopify/scripts/fix-sarah-rowland-titles.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-sarah-rowland-v2.js b/shopify/scripts/fix-sarah-rowland-v2.js
index 1c8a84f1..8fd5c4db 100644
--- a/shopify/scripts/fix-sarah-rowland-v2.js
+++ b/shopify/scripts/fix-sarah-rowland-v2.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/fix-titles-by-current.js b/shopify/scripts/fix-titles-by-current.js
index 44486c5e..3724a3b3 100644
--- a/shopify/scripts/fix-titles-by-current.js
+++ b/shopify/scripts/fix-titles-by-current.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/koroseal-mfr-populator.js b/shopify/scripts/koroseal-mfr-populator.js
index 5f724044..8a7e56cc 100644
--- a/shopify/scripts/koroseal-mfr-populator.js
+++ b/shopify/scripts/koroseal-mfr-populator.js
@@ -8,7 +8,7 @@
  * Run this FIRST before the main update script.
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 // Shopify Configuration
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/koroseal-new-product-finder.js b/shopify/scripts/koroseal-new-product-finder.js
index 3cb312db..ab80e0f6 100644
--- a/shopify/scripts/koroseal-new-product-finder.js
+++ b/shopify/scripts/koroseal-new-product-finder.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const cheerio = require('cheerio');
 const fs = require('fs');
 
diff --git a/shopify/scripts/populate-draft-mfr.js b/shopify/scripts/populate-draft-mfr.js
index d4fed0c5..a5afe366 100644
--- a/shopify/scripts/populate-draft-mfr.js
+++ b/shopify/scripts/populate-draft-mfr.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/remove-review-tags.js b/shopify/scripts/remove-review-tags.js
index 67a47110..b1982eef 100644
--- a/shopify/scripts/remove-review-tags.js
+++ b/shopify/scripts/remove-review-tags.js
@@ -1,4 +1,4 @@
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = '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';
 
diff --git a/shopify/scripts/search-koroseal-sundar.js b/shopify/scripts/search-koroseal-sundar.js
index 49090756..d450a4bb 100644
--- a/shopify/scripts/search-koroseal-sundar.js
+++ b/shopify/scripts/search-koroseal-sundar.js
@@ -3,7 +3,7 @@
  * Search Koroseal for Sundar Grove images
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const cheerio = require('cheerio');
 
 async function searchKoroseal(term) {
diff --git a/shopify/scripts/templates/new-product-import-template.js b/shopify/scripts/templates/new-product-import-template.js
index 5aaf9b06..d5925f7d 100644
--- a/shopify/scripts/templates/new-product-import-template.js
+++ b/shopify/scripts/templates/new-product-import-template.js
@@ -12,7 +12,7 @@
  *   4. Run: node your-import-script.js
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const { checkDuplicate, registerSku, updateShopifyInfo, getStats, close } = require('../lib/sku-registry');
 
 // ==================== CONFIGURATION ====================
diff --git a/shopify/scripts/update-brand-mckenzie-vendor.js b/shopify/scripts/update-brand-mckenzie-vendor.js
index ea57487d..ec5d8cbd 100644
--- a/shopify/scripts/update-brand-mckenzie-vendor.js
+++ b/shopify/scripts/update-brand-mckenzie-vendor.js
@@ -5,7 +5,7 @@
  * - Set manufacturer_sku metafield with BMGI codes
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
 const SHOPIFY_TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
diff --git a/shopify/scripts/update-dwk-full-details.js b/shopify/scripts/update-dwk-full-details.js
index 8d89dfde..1ad62869 100644
--- a/shopify/scripts/update-dwk-full-details.js
+++ b/shopify/scripts/update-dwk-full-details.js
@@ -7,7 +7,7 @@
  * - Sample variant with SKU and $4.25 price
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const cheerio = require('cheerio');
 
 const SHOPIFY_STORE = 'designer-laboratory-sandbox.myshopify.com';
diff --git a/shopify/scripts/update-dwk-slow-seo.js b/shopify/scripts/update-dwk-slow-seo.js
index 8db52bf8..0c9a1a58 100644
--- a/shopify/scripts/update-dwk-slow-seo.js
+++ b/shopify/scripts/update-dwk-slow-seo.js
@@ -8,7 +8,7 @@
  * Rate: 1 product every 6 minutes = 10/hour
  */
 
-{REPL}
+const fetch = globalThis.fetch; // node-fetch shim removed -- Node 26 global fetch
 const cheerio = require('cheerio');
 const fs = require('fs');
 

← 1566feb7 auto-save: 2026-07-09T20:42:07 (53 files) — DW-Programming/I  ·  back to Designer Wallcoverings  ·  chore: test-koroseal-sample.ts node-fetch require → globalTh 2d06b02a →