From f794046760169ba4f602e2c4cb3d8f44d5934c0e Mon Sep 17 00:00:00 2001 From: Tim Nunamaker Date: Wed, 4 Mar 2026 15:42:42 -0600 Subject: [PATCH 1/3] Add H-E-B platform support and fix CONNECTORS_PATH in sync script - Add HEB to platform registry (icon, color, display name) - Add PlatformHebIcon component with official app icon - Fix sync-connectors-dev.js to use CONNECTORS_PATH env var as the source directory, so `CONNECTORS_PATH=../data-connectors npm run tauri:dev` actually syncs from a local data-connectors checkout Co-Authored-By: Claude Opus 4.6 --- public/icons/heb.png | Bin 0 -> 59031 bytes scripts/sync-connectors-dev.js | 38 ++++++++++++++++---------- src/components/icons/platform-heb.tsx | 13 +++++++++ src/lib/platform/icons.ts | 2 ++ src/lib/platform/registry.ts | 12 ++++++++ 5 files changed, 50 insertions(+), 15 deletions(-) create mode 100644 public/icons/heb.png create mode 100644 src/components/icons/platform-heb.tsx diff --git a/public/icons/heb.png b/public/icons/heb.png new file mode 100644 index 0000000000000000000000000000000000000000..5affb09b60014543b01315c592b1e797465bc8c6 GIT binary patch literal 59031 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 & { style?: React.CSSProperties } +) => { + return ( + H-E-B + ) +} diff --git a/src/lib/platform/icons.ts b/src/lib/platform/icons.ts index 3ecfc369..3d3cd142 100644 --- a/src/lib/platform/icons.ts +++ b/src/lib/platform/icons.ts @@ -2,6 +2,7 @@ import type { ElementType } from "react" import { IconX } from "@/components/icons/icon-x" import { PlatformChatGPTIcon } from "@/components/icons/platform-chatgpt" import { PlatformGithubIcon } from "@/components/icons/platform-github" +import { PlatformHebIcon } from "@/components/icons/platform-heb" import { PlatformInstagramGlyphIcon } from "@/components/icons/platform-instagram-glyph" import { PlatformLinkedinIcon } from "@/components/icons/platform-linkedin" import { PlatformShopIcon } from "@/components/icons/platform-shop" @@ -18,6 +19,7 @@ export type PlatformIconComponent = ElementType<{ className?: string }> const PLATFORM_ICON_COMPONENTS: Record = { chatgpt: PlatformChatGPTIcon, github: PlatformGithubIcon, + heb: PlatformHebIcon, instagram: PlatformInstagramGlyphIcon, linkedin: PlatformLinkedinIcon, shop: PlatformShopIcon, diff --git a/src/lib/platform/registry.ts b/src/lib/platform/registry.ts index 8e9242fb..20f161c1 100644 --- a/src/lib/platform/registry.ts +++ b/src/lib/platform/registry.ts @@ -148,4 +148,16 @@ export const PLATFORM_REGISTRY: PlatformRegistryEntry[] = [ showInConnectList: true, ingestScope: "shop.orders", }, + { + id: "heb", + displayName: "H-E-B", + iconKey: "heb", + iconEmoji: "🛒", + primaryColor: "#E31837", + platformIds: ["heb-playwright"], + aliases: ["heb"], + availability: "requiresConnector", + showInConnectList: true, + ingestScope: "heb.orders", + }, ] From 986fe28857a6aa06378c7e225ea8efebaa1be023 Mon Sep 17 00:00:00 2001 From: Tim Nunamaker Date: Thu, 5 Mar 2026 08:59:05 -0600 Subject: [PATCH 2/3] feat: add HEB to local connector registry + improve sync script - Add heb-playwright entry to connectors/registry.json - Sync script now auto-detects connector dirs by checking for *-playwright.json metadata files instead of a hardcoded skip list - Filter .git paths during cpSync to avoid copying nested git dirs Co-Authored-By: Claude Opus 4.6 --- connectors/registry.json | 15 +++++++++++++++ scripts/sync-connectors-dev.js | 17 ++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/connectors/registry.json b/connectors/registry.json index 4ce5ecc3..d138fdde 100644 --- a/connectors/registry.json +++ b/connectors/registry.json @@ -62,6 +62,21 @@ "script": "sha256:665a010ce5cc1d44a5278f010a56dafa94ff00e4dcd6458fb22afe3d01a505a4", "metadata": "sha256:b556e27341f88d841cf09cf68e0f9b9fa262f64465b2aa2cf9b64c831fe0a6eb" } + }, + { + "id": "heb-playwright", + "company": "heb", + "version": "1.0.0", + "name": "H-E-B", + "description": "Exports your H-E-B account profile, order history, and product nutrition data using Playwright browser automation.", + "files": { + "script": "heb/heb-playwright.js", + "metadata": "heb/heb-playwright.json" + }, + "checksums": { + "script": "sha256:10fb9715d30d4484371c1f82b35521842e608ebf54e045c6fcc0d80444e13e2a", + "metadata": "sha256:b449085b127d03739a91880250f699dd0b1118f5469474733e647514757e4ae3" + } } ] } diff --git a/scripts/sync-connectors-dev.js b/scripts/sync-connectors-dev.js index b7bd7dcb..740c929b 100644 --- a/scripts/sync-connectors-dev.js +++ b/scripts/sync-connectors-dev.js @@ -27,12 +27,16 @@ function log(msg) { console.log(`[sync-connectors-dev] ${msg}`); } -// Only sync company/connector dirs (skip schemas/, types/, lib/, registry.json, etc.) +// Only sync directories that contain a connector metadata file (*-playwright.json). +// Skips non-connector dirs (clearcut, proxy-test, docs, etc.) that happen to +// live in the data-connectors repo. function isConnectorDir(name) { - const skipDirs = ['schemas', 'types', 'lib', 'node_modules', 'icons', 'scripts', 'docs', 'projects', 'brainstorm']; - if (skipDirs.includes(name) || name.startsWith('.')) return false; + if (name.startsWith('.')) return false; const fullPath = join(SOURCE_CONNECTORS, name); - return existsSync(fullPath) && statSync(fullPath).isDirectory(); + if (!existsSync(fullPath) || !statSync(fullPath).isDirectory()) return false; + // A real connector dir contains a *-playwright.json metadata file + const files = readdirSync(fullPath); + return files.some(f => f.endsWith('-playwright.json')); } function main() { @@ -58,7 +62,10 @@ function main() { for (const dir of dirs) { const src = join(SOURCE_CONNECTORS, dir); const dest = join(USER_CONNECTORS, dir); - cpSync(src, dest, { recursive: true }); + cpSync(src, dest, { + recursive: true, + filter: (s) => !s.includes('/.git/') && !s.endsWith('/.git'), + }); copied++; } From e1fb89979bd8622a072dcb08d47c3c6950f673d8 Mon Sep 17 00:00:00 2001 From: Tim Nunamaker Date: Thu, 5 Mar 2026 10:35:26 -0600 Subject: [PATCH 3/3] refactor: derive sync dirs from registry.json instead of heuristics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The sync script now reads connector directories directly from registry.json file paths — the single source of truth — instead of scanning the filesystem with naming convention heuristics. Co-Authored-By: Claude Opus 4.6 --- scripts/sync-connectors-dev.js | 38 ++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/scripts/sync-connectors-dev.js b/scripts/sync-connectors-dev.js index 740c929b..9d1609c5 100644 --- a/scripts/sync-connectors-dev.js +++ b/scripts/sync-connectors-dev.js @@ -11,7 +11,7 @@ * CONNECTORS_PATH=../data-connectors npm run tauri:dev */ -import { cpSync, existsSync, mkdirSync, readdirSync, statSync } from 'fs'; +import { cpSync, existsSync, mkdirSync, readFileSync } from 'fs'; import { join, dirname, resolve } from 'path'; import { fileURLToPath } from 'url'; import { homedir } from 'os'; @@ -27,16 +27,21 @@ function log(msg) { console.log(`[sync-connectors-dev] ${msg}`); } -// Only sync directories that contain a connector metadata file (*-playwright.json). -// Skips non-connector dirs (clearcut, proxy-test, docs, etc.) that happen to -// live in the data-connectors repo. -function isConnectorDir(name) { - if (name.startsWith('.')) return false; - const fullPath = join(SOURCE_CONNECTORS, name); - if (!existsSync(fullPath) || !statSync(fullPath).isDirectory()) return false; - // A real connector dir contains a *-playwright.json metadata file - const files = readdirSync(fullPath); - return files.some(f => f.endsWith('-playwright.json')); +// Derive connector directories from registry.json file paths. +function getConnectorDirs() { + const registryPath = join(SOURCE_CONNECTORS, 'registry.json'); + if (!existsSync(registryPath)) { + log(`No registry.json found at ${registryPath}`); + return []; + } + const registry = JSON.parse(readFileSync(registryPath, 'utf-8')); + const dirs = new Set(); + for (const connector of registry.connectors ?? []) { + for (const filePath of Object.values(connector.files ?? {})) { + dirs.add(filePath.split('/')[0]); + } + } + return [...dirs]; } function main() { @@ -49,7 +54,7 @@ function main() { log(`Using CONNECTORS_PATH: ${SOURCE_CONNECTORS}`); } - const dirs = readdirSync(SOURCE_CONNECTORS).filter(isConnectorDir); + const dirs = getConnectorDirs(); if (dirs.length === 0) { log('No connector directories found, skipping'); @@ -61,11 +66,12 @@ function main() { let copied = 0; for (const dir of dirs) { const src = join(SOURCE_CONNECTORS, dir); + if (!existsSync(src)) { + log(`Skipping ${dir}/ (not found in ${SOURCE_CONNECTORS})`); + continue; + } const dest = join(USER_CONNECTORS, dir); - cpSync(src, dest, { - recursive: true, - filter: (s) => !s.includes('/.git/') && !s.endsWith('/.git'), - }); + cpSync(src, dest, { recursive: true }); copied++; }