LTRAC-909: feat(cli) - Add catalyst integration command#3050
Conversation
Port the `integration` command from create-catalyst into the catalyst CLI. It diffs the current ref (or --commit-hash) against the latest @bigcommerce/catalyst-core tag and writes an integration patch plus a manifest.json of the added dependencies, devDependencies, and environment variables under integrations/<name>/. Adds the `semver` dependency the command relies on, and extends create.spec's child_process mock with `exec` since the command is now part of the program graph that suite loads. Refs LTRAC-909 Co-Authored-By: Claude <noreply@anthropic.com>
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Bundle Size ReportComparing against baseline from
Per-Route First Load JS
|
Unlighthouse Performance Comparison — VercelComparing PR preview deployment Unlighthouse scores vs production Unlighthouse scores. Summary ScoreAggregate score across all categories as reported by Unlighthouse.
Category Scores
Core Web Vitals
|
Linear: LTRAC-909
Part of LTRAC-138 — consolidating
create-catalystinto thecatalystCLI.What/Why?
Ports the
integrationcommand from@bigcommerce/create-catalystinto thecatalystCLI — another gap in the CLI consolidation. It generates an integration patch and manifest by diffing a source ref against the latest Catalyst core release:--commit-hash <hash>when provided.@bigcommerce/catalyst-core@*git tag (sorted withsemver).core/package.jsonandcore/.env.exampleto compute addeddependencies,devDependencies, andenvironmentVariables.integrations/<name>/integration.patchandintegrations/<name>/manifest.json.Logic is a faithful port of the original;
console.logwas swapped forconsola, andz.object({}).passthrough()updated toz.looseObject({})for zod 4.Adds the
semver/@types/semverdependency the command relies on.Testing
pnpm test,pnpm typecheck, andpnpm lintall pass inpackages/catalyst. Newintegration.spec.tsmockschild_process/fs-extrato verify the manifest/patch output and--commit-hashoverride.Note:
create.spec.ts'schild_processmock gained anexecentry — theintegrationcommand readschild_process.execat module load, and it's now part of the program graph that suite imports.Migration
None. Purely additive — registers a new
integrationsubcommand;create-catalyst integrationis unaffected (shim removal tracked in LTRAC-910).