import * as jose from 'jose'; const ISSUER_ID = process.env.ASC_ISSUER_ID!; const KEY_ID = process.env.ASC_KEY_ID!; const PRIVATE_KEY = process.env.ASC_PRIVATE_KEY?.replace(/\\n/g, '\n')!; /** * App Store Connect API için JWT oluşturur (20 dakika geçerli) */ async function generateJwt() { const privateKey = await jose.importPKCS8(PRIVATE_KEY, 'ES256'); return await new jose.SignJWT({}) .setProtectedHeader({ alg: 'ES256', kid: KEY_ID, typ: 'JWT' }) .setIssuer(ISSUER_ID) .setAudience('appstoreconnect-v1') .setIssuedAt() .setExpirationTime('20m') .sign(privateKey); } /** * Apple Store Connect API'ye istek atar */ export async function appleApiRequest(path: string, options: RequestInit = {}) { const token = await generateJwt(); const url = `https://api.appstoreconnect.apple.com/v1${path}`; const response = await fetch(url, { ...options, headers: { ...options.headers, 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, }); const data = await response.json(); if (!response.ok) { console.error('Apple API Error:', data); return { data: null, error: data.errors?.[0]?.detail || 'Unknown error' }; } return { data, error: null }; }