← back to Harlequin Pilot Publish
rollback.mjs
23 lines
// Reverse the pilot: DELETE every Single Roll variant recorded in the restore map.
// Dry-run by default; pass --apply to execute. Restores each product to its prior
// single-Sample-variant state.
import fs from 'node:fs';
import { rest } from './lib.mjs';
const APPLY = process.argv.includes('--apply');
const FULL = (process.argv.find(a => a.startsWith('--map=')) || '').split('=')[1] === 'full'
|| (process.argv.includes('--map') && process.argv[process.argv.indexOf('--map') + 1] === 'full');
const MAP = FULL
? process.env.HOME + '/.claude/yolo-queue/executed-reversible/harlequin-full-rollout-restore-map.json'
: process.env.HOME + '/.claude/yolo-queue/executed-reversible/harlequin-pilot-restore-map.json';
const m = JSON.parse(fs.readFileSync(MAP));
for (const e of m.entries) {
if (e.change !== 'ADDED_VARIANT') continue;
if (!APPLY) { console.log('WOULD-DELETE', e.dw_sku, 'variant', e.variant_id); continue; }
const r = await rest(`products/${e.product_id}/variants/${e.variant_id}.json`, 'DELETE');
console.log(e.dw_sku, 'delete variant', e.variant_id, '->', r.status);
await new Promise(res => setTimeout(res, 400));
}
console.log(APPLY ? 'ROLLBACK APPLIED' : 'DRY-RUN (pass --apply to execute)');