function createOfflineIssueClose({ enqueueDurably, completeToday, createOperationId = () => globalThis.crypto?.randomUUID?.() || String(Date.now()) + '-' + Math.random().toString(16).slice(2) }) { return async function closeOfflineIssue(item) { const admission = await enqueueDurably({ kind: 'issue-close', repository: String(item.repository || ''), number: Number(item.number || 0), body: '', operationId: String(createOperationId()).slice(0, 128), }); const advanced = Boolean(completeToday(item, { successMessage: 'Issue closure queued. Next Today item opened.', failureMessage: 'Issue closure queued, but Today still needs completion.', })); return { admission, advanced }; }; } if (typeof module !== 'undefined' && module.exports) module.exports = createOfflineIssueClose;