← back to Dw Image Shrink
auto-save: 2026-07-29T08:07:14 (2 files) — purge-deleted.jsonl purge-execute.js
f3dc93b8c31b226fa48c58b44f726cf1280283a8 · 2026-07-29 08:07:17 -0700 · Steve Abrams
Files touched
A purge-deleted.jsonlA purge-execute.js
Diff
commit f3dc93b8c31b226fa48c58b44f726cf1280283a8
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Jul 29 08:07:17 2026 -0700
auto-save: 2026-07-29T08:07:14 (2 files) — purge-deleted.jsonl purge-execute.js
---
purge-deleted.jsonl | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++
purge-execute.js | 52 ++++++++++++++++++++++++++++++++
2 files changed, 138 insertions(+)
diff --git a/purge-deleted.jsonl b/purge-deleted.jsonl
new file mode 100644
index 0000000..f8416cd
--- /dev/null
+++ b/purge-deleted.jsonl
@@ -0,0 +1,86 @@
+{"image_id":37101384597555,"product_id":1494914007152,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/1920-s-faces-black-on-white-with-red-lips-fac-100-swatch-spin.gif?v=1775025514","http":200,"ts":"2026-07-29T14:58:45.978Z"}
+{"image_id":37027075063859,"product_id":1495652532336,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/abaca-tight-woven-grass-abaca-grs-43014-swatch-spin.gif?v=1774205334","http":200,"ts":"2026-07-29T14:58:46.633Z"}
+{"image_id":37154367537203,"product_id":1498843938928,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/abbingdon-type-ii-vinyl-wallcovering-xja-47012-swatch-spin_38ded4a9-bd96-4460-b25a-872ea4e88666.gif?v=1775755014","http":200,"ts":"2026-07-29T14:58:47.272Z"}
+{"image_id":37154370519091,"product_id":1498844266608,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/abbingdon-type-ii-vinyl-wallcovering-xja-47013-swatch-spin_9f46391c-e002-4ff5-8fd6-404781f059f1.gif?v=1775755024","http":200,"ts":"2026-07-29T14:58:47.891Z"}
+{"image_id":37154373206067,"product_id":1498844561520,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/abbingdon-type-ii-vinyl-wallcovering-xja-47014-swatch-spin_9d6288a9-27f7-47c1-a552-b627ad4ef823.gif?v=1775755034","http":200,"ts":"2026-07-29T14:58:48.546Z"}
+{"image_id":37154375991347,"product_id":1498844758128,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/abbingdon-type-ii-vinyl-wallcovering-xja-47015-swatch-spin_cde7a59a-bad0-40c2-baf1-bb1f33350edc.gif?v=1775755045","http":200,"ts":"2026-07-29T14:59:41.957Z"}
+{"image_id":37154378776627,"product_id":1498844987504,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/abbingdon-type-ii-vinyl-wallcovering-xja-47016-swatch-spin_3d59ac8f-38d0-48bf-8cb4-880c0e5c3bea.gif?v=1775755055","http":200,"ts":"2026-07-29T14:59:42.597Z"}
+{"image_id":37155883483187,"product_id":1499283947632,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49098-swatch-spin_e38df282-e007-46ad-9654-e8256133fed6.gif?v=1775767120","http":200,"ts":"2026-07-29T14:59:43.282Z"}
+{"image_id":37155884105779,"product_id":1499284144240,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49099-swatch-spin_98745798-ef79-455c-99e4-2a841c725bca.gif?v=1775767130","http":200,"ts":"2026-07-29T14:59:43.950Z"}
+{"image_id":37155884728371,"product_id":1499284340848,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49100-swatch-spin_b4028bb3-97cd-410c-a4ea-6be21a197d08.gif?v=1775767140","http":200,"ts":"2026-07-29T14:59:44.975Z"}
+{"image_id":37155885482035,"product_id":1499284537456,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49101-swatch-spin_c81917f9-05e9-49c2-bd0e-582147a026ac.gif?v=1775767149","http":200,"ts":"2026-07-29T14:59:45.664Z"}
+{"image_id":37155886104627,"product_id":1499284635760,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49102-swatch-spin_2951cb4c-f893-4267-b8d1-f2bb3d9352cc.gif?v=1775767160","http":200,"ts":"2026-07-29T14:59:46.310Z"}
+{"image_id":37155886694451,"product_id":1499285061744,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49103-swatch-spin_5cbec2bf-93e3-4aad-ad3a-164621a78250.gif?v=1775767170","http":200,"ts":"2026-07-29T14:59:46.973Z"}
+{"image_id":37155887382579,"product_id":1499285454960,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49104-swatch-spin_0e2b22fb-0746-4464-9b57-cb119e2f4ad6.gif?v=1775767180","http":200,"ts":"2026-07-29T14:59:47.629Z"}
+{"image_id":37155887972403,"product_id":1499285848176,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49105-swatch-spin_ee98c225-096a-4c14-8b45-4bc338782856.gif?v=1775767190","http":200,"ts":"2026-07-29T14:59:48.302Z"}
+{"image_id":37155888627763,"product_id":1499286044784,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49106-swatch-spin_b84998ea-6ace-4e7c-9da7-1318ae46bfa3.gif?v=1775767199","http":200,"ts":"2026-07-29T14:59:48.923Z"}
+{"image_id":37155889250355,"product_id":1499286438000,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49107-swatch-spin_be7847b7-27a5-4160-a1f9-3110ce6a40ca.gif?v=1775767209","http":200,"ts":"2026-07-29T14:59:49.632Z"}
+{"image_id":37155889971251,"product_id":1499286634608,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49108-swatch-spin_640cbf92-d5f8-4646-8605-b8834576a182.gif?v=1775767219","http":200,"ts":"2026-07-29T14:59:50.264Z"}
+{"image_id":37155890626611,"product_id":1499286831216,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49109-swatch-spin_06a8eff6-b541-4b50-bd46-dadd907f7fe0.gif?v=1775767229","http":200,"ts":"2026-07-29T14:59:50.892Z"}
+{"image_id":37155891347507,"product_id":1499287126128,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49110-swatch-spin_eb4cf9e5-081a-43bc-babb-9e80248010e4.gif?v=1775767240","http":200,"ts":"2026-07-29T14:59:51.497Z"}
+{"image_id":37155891970099,"product_id":1499287322736,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49111-swatch-spin_4eb88d8d-51dd-4174-b832-d31a8a73772c.gif?v=1775767250","http":200,"ts":"2026-07-29T14:59:52.141Z"}
+{"image_id":37155892592691,"product_id":1499287552112,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49112-swatch-spin_74df20a7-2125-4340-b03a-e3fb6dc24603.gif?v=1775767260","http":200,"ts":"2026-07-29T14:59:52.793Z"}
+{"image_id":37155893149747,"product_id":1499287847024,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/aberdeen-type-ii-vinyl-wallcovering-xuk-49113-swatch-spin_c92f70a9-5338-4855-952c-2197c312d4a5.gif?v=1775767269","http":200,"ts":"2026-07-29T14:59:53.416Z"}
+{"image_id":37156532977715,"product_id":7815336919091,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/above-and-below-life-harlequin-swatch-spin.gif?v=1775787089","http":200,"ts":"2026-07-29T14:59:54.087Z"}
+{"image_id":37154383691827,"product_id":1498845315184,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47018-swatch-spin_7ea90eb3-a812-4da5-98eb-eae2ab6714db.gif?v=1775755075","http":200,"ts":"2026-07-29T14:59:54.736Z"}
+{"image_id":37154385461299,"product_id":1498845511792,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47019-swatch-spin_675bfdaa-973f-416a-9594-033935b25013.gif?v=1775755084","http":200,"ts":"2026-07-29T14:59:55.420Z"}
+{"image_id":37154386903091,"product_id":1498845708400,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47020-swatch-spin_91ada474-268d-451c-b3a1-2038d4b6fa3b.gif?v=1775755094","http":200,"ts":"2026-07-29T14:59:56.065Z"}
+{"image_id":37154388508723,"product_id":1498845937776,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47021-swatch-spin_dd0eb35a-5d56-443d-92cc-695b5064bbcd.gif?v=1775755104","http":200,"ts":"2026-07-29T14:59:56.692Z"}
+{"image_id":37154390212659,"product_id":1498846265456,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47022-swatch-spin_49338e4c-c157-40ba-870b-509098ae482e.gif?v=1775755114","http":200,"ts":"2026-07-29T14:59:57.323Z"}
+{"image_id":37154391719987,"product_id":1498846429296,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47023-swatch-spin_6923bf46-5572-41d6-89c5-441819469da3.gif?v=1775755124","http":200,"ts":"2026-07-29T14:59:57.991Z"}
+{"image_id":37154394406963,"product_id":1498846625904,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47024-swatch-spin_00a47a0b-2b73-4452-9391-8fc63a8a01ab.gif?v=1775755134","http":200,"ts":"2026-07-29T14:59:58.627Z"}
+{"image_id":37154396405811,"product_id":1498846888048,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47025-swatch-spin_80359a0d-dee1-408d-bfab-d6b8bb077685.gif?v=1775755144","http":200,"ts":"2026-07-29T14:59:59.267Z"}
+{"image_id":37154398797875,"product_id":1498847150192,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47026-swatch-spin_05a16280-2836-4d55-bc32-0abf7a645228.gif?v=1775755154","http":200,"ts":"2026-07-29T14:59:59.912Z"}
+{"image_id":37154401288243,"product_id":1498847379568,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47027-swatch-spin_6e554615-86a0-4e7c-ade5-231c740466b9.gif?v=1775755164","http":200,"ts":"2026-07-29T15:00:00.550Z"}
+{"image_id":37154403549235,"product_id":1498847543408,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47028-swatch-spin_e4cb9cb6-54da-488a-9f15-988e77a6e0dc.gif?v=1775755174","http":200,"ts":"2026-07-29T15:00:01.175Z"}
+{"image_id":37154405908531,"product_id":1498847805552,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47029-swatch-spin_5741415d-0f45-4b28-b3f0-54a595667703.gif?v=1775755184","http":200,"ts":"2026-07-29T15:00:01.802Z"}
+{"image_id":37154408464435,"product_id":1498847936624,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47030-swatch-spin_ed782433-30d3-4e34-ab3f-85e3d2c4780e.gif?v=1775755195","http":200,"ts":"2026-07-29T15:00:02.567Z"}
+{"image_id":37154411282483,"product_id":1498848133232,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47031-swatch-spin_83c0402f-5212-4c44-bf5b-4636a1e3f8d8.gif?v=1775755205","http":200,"ts":"2026-07-29T15:00:03.240Z"}
+{"image_id":37154414133299,"product_id":1498848362608,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47032-swatch-spin_2a05e452-188c-4bdb-8881-c1c6dda25601.gif?v=1775755215","http":200,"ts":"2026-07-29T15:00:03.956Z"}
+{"image_id":37154416787507,"product_id":1498848624752,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47033-swatch-spin_0274e91a-742e-45eb-b289-6a0b1a7aa787.gif?v=1775755226","http":200,"ts":"2026-07-29T15:00:04.658Z"}
+{"image_id":37154419277875,"product_id":1498848755824,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47034-swatch-spin_7612d574-b7e5-4300-8722-7cf2fcc91b0f.gif?v=1775755236","http":200,"ts":"2026-07-29T15:00:05.358Z"}
+{"image_id":37154421997619,"product_id":1498848919664,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47035-swatch-spin_69acbeff-166b-4940-862a-9e653c6c1fa6.gif?v=1775755246","http":200,"ts":"2026-07-29T15:00:06.077Z"}
+{"image_id":37154424553523,"product_id":1498849149040,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47036-swatch-spin_fc5a0977-898c-48b6-b68f-ce874abbad6c.gif?v=1775755256","http":200,"ts":"2026-07-29T15:00:06.735Z"}
+{"image_id":37154426847283,"product_id":1498849312880,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47037-swatch-spin_d7554cc1-06d3-4b2d-8172-0cf20faef0a4.gif?v=1775755266","http":200,"ts":"2026-07-29T15:00:07.496Z"}
+{"image_id":37154429304883,"product_id":1498849575024,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47038-swatch-spin_1c5df965-c227-48af-91bd-b54d9c2be293.gif?v=1775755276","http":200,"ts":"2026-07-29T15:00:08.209Z"}
+{"image_id":37154431926323,"product_id":1498849771632,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47039-swatch-spin_200be77b-1887-462f-9a3f-205056648db6.gif?v=1775755286","http":200,"ts":"2026-07-29T15:00:08.907Z"}
+{"image_id":37154434613299,"product_id":1498849902704,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47040-swatch-spin_424e139b-4e8f-47f9-8190-182cf1bb07a8.gif?v=1775755296","http":200,"ts":"2026-07-29T15:00:09.629Z"}
+{"image_id":37154437300275,"product_id":1498850197616,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47041-swatch-spin_89d74328-78a9-4b74-bdd0-7d4880dc1fa6.gif?v=1775755306","http":200,"ts":"2026-07-29T15:00:10.367Z"}
+{"image_id":37154439954483,"product_id":1498850394224,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47042-swatch-spin_53d2df22-6684-4ab7-9791-ed2be58d550c.gif?v=1775755316","http":200,"ts":"2026-07-29T15:00:11.122Z"}
+{"image_id":37154442281011,"product_id":1498850525296,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47043-swatch-spin_82148747-05de-4cd5-a326-37eb14afce7f.gif?v=1775755326","http":200,"ts":"2026-07-29T15:00:11.770Z"}
+{"image_id":37154444804147,"product_id":1498850689136,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47044-swatch-spin_aea376d3-2993-445c-a4fb-0e1ada44def7.gif?v=1775755336","http":200,"ts":"2026-07-29T15:00:12.454Z"}
+{"image_id":37154447425587,"product_id":1498850885744,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47045-swatch-spin_05b38421-18fb-4cdd-a65a-14ed2f2d1739.gif?v=1775755346","http":200,"ts":"2026-07-29T15:00:13.171Z"}
+{"image_id":37154449948723,"product_id":1498851147888,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47046-swatch-spin_44d9f8c7-2d08-40cf-b481-bd33a6b28250.gif?v=1775755356","http":200,"ts":"2026-07-29T15:00:13.971Z"}
+{"image_id":37154452275251,"product_id":1498851377264,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47047-swatch-spin_df21ed81-d1dc-44b5-bd13-26f7cd60a658.gif?v=1775755366","http":200,"ts":"2026-07-29T15:00:14.692Z"}
+{"image_id":37154454569011,"product_id":1498851573872,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47048-swatch-spin_903fda47-74ef-4821-b2fd-f7a3e6babdb9.gif?v=1775755376","http":200,"ts":"2026-07-29T15:00:15.381Z"}
+{"image_id":37154457223219,"product_id":1498851770480,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47049-swatch-spin_2ced348a-9802-406e-b52f-96093e357906.gif?v=1775755388","http":200,"ts":"2026-07-29T15:00:16.141Z"}
+{"image_id":37154459877427,"product_id":1498851999856,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47050-swatch-spin_cfb0cfab-8e25-42aa-9759-5bd10ca4e815.gif?v=1775755399","http":200,"ts":"2026-07-29T15:00:16.830Z"}
+{"image_id":37154462072883,"product_id":1498852294768,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47051-swatch-spin_130761c6-cf20-4740-9eac-033b9c45e7a3.gif?v=1775755408","http":200,"ts":"2026-07-29T15:00:17.589Z"}
+{"image_id":37154464563251,"product_id":1498852458608,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47052-swatch-spin_a6b1c3ba-6ba3-4d3d-8d5c-68db3a466760.gif?v=1775755419","http":200,"ts":"2026-07-29T15:00:18.247Z"}
+{"image_id":37154466922547,"product_id":1498852687984,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/accrington-acoustical-wallcovering-xjb-47053-swatch-spin_cfbe974e-ccfc-4354-b9a5-25917a3b6f8f.gif?v=1775755428","http":200,"ts":"2026-07-29T15:00:18.932Z"}
+{"image_id":36807593754675,"product_id":7758915698739,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cloud-adalyn-weave-wallcovering-al21-05-swatch-spin.gif?v=1771174141","http":200,"ts":"2026-07-29T15:00:19.640Z"}
+{"image_id":37154481438771,"product_id":1498854031472,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/addlington-type-ii-vinyl-wallcovering-xjc-47060-swatch-spin_9d2d6b11-ab72-4577-ab08-95628744d25d.gif?v=1775755496","http":200,"ts":"2026-07-29T15:00:20.343Z"}
+{"image_id":37154471804979,"product_id":1498853048432,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/addlington-type-ii-vinyl-wallcovering-xjc-47055-swatch-spin_c56652d0-b60f-42d7-a028-80bcf63078c3.gif?v=1775755448","http":200,"ts":"2026-07-29T15:00:21.098Z"}
+{"image_id":37154477506611,"product_id":1498853736560,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/addlington-type-ii-vinyl-wallcovering-xjc-47058-swatch-spin_146c6696-8ff5-44aa-8833-e7dba15eaa4c.gif?v=1775755477","http":200,"ts":"2026-07-29T15:00:21.790Z"}
+{"image_id":36968609382451,"product_id":7796246872115,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/adriano-embossed-faux-grasscloth-vinyl-wallcovering-type-2-tawny-weave-wallcoverings-philippe-romano-fabrics-swatch-spin.gif?v=1773254709","http":200,"ts":"2026-07-29T15:00:22.472Z"}
+{"image_id":36968606171187,"product_id":7796246741043,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/adriano-embossed-faux-grasscloth-vinyl-wallcovering-type-2-golden-wheat-wallcoverings-philippe-romano-fabrics-swatch-spin.gif?v=1773254651","http":200,"ts":"2026-07-29T15:00:23.116Z"}
+{"image_id":36968607776819,"product_id":7796246904883,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/adriano-embossed-faux-grasscloth-vinyl-wallcovering-type-2-oatmeal-wallcoverings-philippe-romano-fabrics-swatch-spin.gif?v=1773254669","http":200,"ts":"2026-07-29T15:00:23.763Z"}
+{"image_id":36968607449139,"product_id":7796246839347,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/adriano-embossed-faux-grasscloth-vinyl-wallcovering-type-2-gunmetal-weave-wallcoverings-philippe-romano-fabrics-swatch-spin.gif?v=1773254660","http":200,"ts":"2026-07-29T15:00:24.479Z"}
+{"image_id":36968605712435,"product_id":7796246937651,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/adriano-embossed-faux-grasscloth-vinyl-wallcovering-type-2-bronze-weave-wallcoverings-philippe-romano-fabrics-swatch-spin.gif?v=1773254631","http":200,"ts":"2026-07-29T15:00:25.167Z"}
+{"image_id":37008119758899,"product_id":6944725925939,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwtt-71614-designer-wallcoverings-los-angeles-swatch-spin.gif?v=1773876892","http":200,"ts":"2026-07-29T15:00:25.869Z"}
+{"image_id":37019642003507,"product_id":6948076519475,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwta-65224designerwallcoverings-los-angeles-swatch-spin.gif?v=1774061595","http":200,"ts":"2026-07-29T15:00:26.576Z"}
+{"image_id":37101346095155,"product_id":7573224226867,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/dwfm-40109-designer-wallcoverings-los-angeles-fentucci-swatch-spin.gif?v=1775024979","http":200,"ts":"2026-07-29T15:00:27.262Z"}
+{"image_id":37101345865779,"product_id":1498710933616,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-black-texture-wallpaper-cgs-83423-swatch-spin.gif?v=1775024972","http":200,"ts":"2026-07-29T15:00:27.962Z"}
+{"image_id":37101346193459,"product_id":1498713784432,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-blue-texture-wallpaper-cgs-83436-swatch-spin.gif?v=1775024981","http":200,"ts":"2026-07-29T15:00:28.692Z"}
+{"image_id":37101347209267,"product_id":1498713129072,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-brass-texture-wallpaper-cgs-83433-swatch-spin.gif?v=1775024991","http":200,"ts":"2026-07-29T15:00:29.422Z"}
+{"image_id":37101347602483,"product_id":1498710179952,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-copper-texture-wallpaper-cgs-83419-swatch-spin.gif?v=1775025001","http":200,"ts":"2026-07-29T15:00:30.104Z"}
+{"image_id":37101348978739,"product_id":1498710016112,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-gold-texture-wallpaper-cgs-83418-swatch-spin.gif?v=1775025011","http":200,"ts":"2026-07-29T15:00:30.792Z"}
+{"image_id":37101349437491,"product_id":1498710376560,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-grey-texture-wallpaper-cgs-83420-swatch-spin.gif?v=1775025020","http":200,"ts":"2026-07-29T15:00:31.515Z"}
+{"image_id":37101350060083,"product_id":1498709360752,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-lavender-texture-wallpaper-cgs-83415-swatch-spin.gif?v=1775025030","http":200,"ts":"2026-07-29T15:00:32.179Z"}
+{"image_id":37101350486067,"product_id":1498709852272,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-light-grey-texture-wallpaper-cgs-83417-swatch-spin.gif?v=1775025040","http":200,"ts":"2026-07-29T15:00:32.874Z"}
+{"image_id":37101350912051,"product_id":1498710540400,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-mauve-textures-wallpaper-cgs-83421-swatch-spin.gif?v=1775025050","http":200,"ts":"2026-07-29T15:00:33.561Z"}
+{"image_id":37101351501875,"product_id":1498713555056,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-navy-blue-texture-wallpaper-cgs-83435-swatch-spin.gif?v=1775025061","http":200,"ts":"2026-07-29T15:00:34.257Z"}
+{"image_id":37101352222771,"product_id":1498713358448,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-pewter-texture-wallpaper-cgs-83434-swatch-spin.gif?v=1775025071","http":200,"ts":"2026-07-29T15:00:34.984Z"}
+{"image_id":37101352845363,"product_id":1498711687280,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-purple-textures-wallpaper-cgs-83426-swatch-spin.gif?v=1775025079","http":200,"ts":"2026-07-29T15:00:35.669Z"}
+{"image_id":37101353697331,"product_id":1498709524592,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-sage-texture-wallpaper-cgs-83416-swatch-spin.gif?v=1775025090","http":200,"ts":"2026-07-29T15:00:36.423Z"}
+{"image_id":37101354647603,"product_id":1498714013808,"cat":"B","status":"archived","src":"https://cdn.shopify.com/s/files/1/0015/4117/7456/files/afshan-turquoise-texture-wallpaper-cgs-83437-swatch-spin.gif?v=1775025101","http":200,"ts":"2026-07-29T15:00:37.103Z"}
diff --git a/purge-execute.js b/purge-execute.js
new file mode 100644
index 0000000..daf96a7
--- /dev/null
+++ b/purge-execute.js
@@ -0,0 +1,52 @@
+// Delete disposable images to free storage. SAFE categories only:
+// A = images on ARCHIVED products (non-gif)
+// B = spin-GIFs on ARCHIVED products
+// NEVER touches active/draft products here. Every delete is appended to
+// purge-deleted.jsonl (audit + resumability). Idempotent: skips already-logged
+// image_ids. Throttled with 429 backoff. Frees space only after Shopify async-GC.
+// node purge-execute.js --cat=B [--cat=A] [--limit=N] [--rate=330]
+import fs from 'fs';
+import https from 'https';
+const DIR='/Users/macstudio3/Projects/dw-image-shrink';
+const SHOP='designer-laboratory-sandbox.myshopify.com';
+const ATOK=fs.readFileSync('/Users/macstudio3/Projects/secrets-manager/.env','utf8').split('\n').find(l=>l.startsWith('SHOPIFY_ADMIN_TOKEN=')).split('=').slice(1).join('=').replace(/["' ]/g,'');
+const arg=(k,d)=>{const a=process.argv.find(x=>x.startsWith('--'+k+'='));return a?a.split('=').slice(1).join('='):d;};
+const CATS=(arg('cat','B')).split('').filter(c=>'AB'.includes(c));
+const LIMIT=+arg('limit','0')||1e9;
+const RATE=+arg('rate','330');
+const LOG=DIR+'/purge-deleted.jsonl';
+const sleep=ms=>new Promise(r=>setTimeout(r,ms));
+const isGif=s=>/\.gif(\?|$)/i.test(s||'');
+function del(pid,iid){return new Promise((res,rej)=>{const req=https.request({method:'DELETE',host:SHOP,path:`/admin/api/2024-10/products/${pid}/images/${iid}.json`,headers:{'X-Shopify-Access-Token':ATOK}},r=>{let d='';r.on('data',c=>d+=c);r.on('end',()=>res({status:r.statusCode,retryAfter:r.headers['retry-after'],limit:r.headers['x-shopify-shop-api-call-limit']||''}));});req.on('error',rej);req.setTimeout(30000,()=>req.destroy(new Error('timeout')));req.end();});}
+
+// already-deleted set (resume)
+const doneSet=new Set();
+if(fs.existsSync(LOG)) for(const l of fs.readFileSync(LOG,'utf8').split('\n')) if(l){try{doneSet.add(String(JSON.parse(l).image_id))}catch(e){}}
+
+const rows=fs.readFileSync(DIR+'/inventory.jsonl','utf8').split('\n').filter(Boolean).map(l=>JSON.parse(l));
+let cands=[];
+if(CATS.includes('B')) cands.push(...rows.filter(r=>r.status==='archived'&&isGif(r.src)).map(r=>({...r,cat:'B'})));
+if(CATS.includes('A')) cands.push(...rows.filter(r=>r.status==='archived'&&!isGif(r.src)).map(r=>({...r,cat:'A'})));
+cands=cands.filter(r=>!doneSet.has(String(r.image_id))).slice(0,LIMIT);
+console.log(`purge cats[${CATS}]: ${cands.length} candidates to delete (already done: ${doneSet.size})`);
+
+const out=fs.createWriteStream(LOG,{flags:'a'});
+let ok=0,err=0;
+for(let i=0;i<cands.length;i++){
+ const r=cands[i];
+ let resp;
+ for(let a=0;a<8;a++){
+ try{ resp=await del(r.product_id,r.image_id); }catch(e){ await sleep(1500); continue; }
+ if(resp.status===429){ await sleep((parseFloat(resp.retryAfter)||3)*1000); continue; }
+ break;
+ }
+ const okd = resp && resp.status<300;
+ if(okd) ok++; else err++;
+ out.write(JSON.stringify({image_id:r.image_id,product_id:r.product_id,cat:r.cat,status:r.status,src:r.src,http:resp?resp.status:0,ts:new Date().toISOString()})+'\n');
+ // adaptive pace off leaky bucket
+ const [u,m]=((resp&&resp.limit)||'0/40').split('/').map(Number);
+ await sleep(u>(m*0.5)?800:RATE);
+ if((i+1)%100===0) console.log(` deleted ${ok} ok / ${err} err (${i+1}/${cands.length})`);
+}
+out.end();
+console.log(`DONE cats[${CATS}]: ${ok} deleted, ${err} errors. (space frees after Shopify GC)`);
← f84c7bc Pivot to purge-first strategy: add gated purge-candidates an
·
back to Dw Image Shrink
·
Full archived purge running (A+B, Steve-approved ~52GB); enu d79e916 →