await Promise.all([...document.querySelectorAll('[data-subscription-id]')] .map(el => el.getAttribute('data-subscription-id')) .map(async (subscriptionId) => { try { const res = await fetch(`https://www.amazon.com.au/auto-deliveries/ajax/cancelSubscription?deviceType=desktop&deviceContext=web&subscriptionId=${subscriptionId}`) const cancelPanel = await res.text() const div = document.createElement('div') div.innerHTML = cancelPanel document.body.appendChild(div) const form = div.querySelector("form[name='cancelForm']") if (form) { const formData = new FormData(form) const formEntries = Object.fromEntries(formData.entries()) await fetch(form.action, { method: form.method, headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: new URLSearchParams(formEntries) }) div.remove() } return 'ok' } catch (reason) { return `error: ${reason}` } }) )