import {createHmac,randomUUID} from 'node:crypto'; export async function call(base,credentials,method,body={}){const path='/provider/v1/'+method,raw=JSON.stringify(body),at=String(Date.now()),nonce=randomUUID(),sig=createHmac('sha256',credentials.secret).update(['POST',path,at,nonce,raw].join('\n')).digest('hex');const r=await fetch(base+path,{method:'POST',headers:{'Content-Type':'application/json','X-NW-Key-Id':credentials.keyId,'X-NW-Timestamp':at,'X-NW-Nonce':nonce,'X-NW-Signature':sig},body:raw,signal:AbortSignal.timeout(10000),redirect:'error'});const data=await r.json();if(!r.ok)throw Error(data.error);return data;}