{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import assert from 'node:assert';\nimport formData from 'form-data';\nimport Mailgun, { type MailgunClientOptions } from 'mailgun.js';\n\ninterface Settings {\n  defaultFrom: string;\n  defaultReplyTo: string;\n}\n\ninterface SendOptions {\n  from?: string;\n  to: string;\n  cc: string;\n  bcc: string;\n  replyTo?: string;\n  subject: string;\n  text: string;\n  html: string;\n  [key: string]: unknown;\n}\n\ntype ProviderOptions = MailgunClientOptions & {\n  domain: string;\n};\n\nconst DEFAULT_OPTIONS = {\n  username: 'api',\n};\n\nexport default {\n  init(providerOptions: ProviderOptions, settings: Settings) {\n    assert(providerOptions.key, 'Mailgun API key is required');\n    assert(providerOptions.domain, 'Mailgun domain is required');\n\n    const mailgun = new Mailgun(formData);\n    const mg = mailgun.client({\n      ...DEFAULT_OPTIONS,\n      ...providerOptions,\n    });\n\n    return {\n      send(options: SendOptions) {\n        const { from, to, cc, bcc, replyTo, subject, text, html, ...rest } = options;\n\n        const data = {\n          from: from || settings.defaultFrom,\n          to,\n          cc,\n          bcc,\n          'h:Reply-To': replyTo || settings.defaultReplyTo,\n          subject,\n          text,\n          html,\n          ...rest,\n        };\n\n        return mg.messages.create(providerOptions.domain as string, data);\n      },\n    };\n  },\n};\n"],"names":["DEFAULT_OPTIONS","username","init","providerOptions","settings","assert","key","domain","mailgun","Mailgun","formData","mg","client","send","options","from","to","cc","bcc","replyTo","subject","text","html","rest","data","defaultFrom","defaultReplyTo","messages","create"],"mappings":";;;;AAyBA,MAAMA,eAAAA,GAAkB;IACtBC,QAAAA,EAAU;AACZ,CAAA;AAEA,YAAe;IACbC,IAAAA,CAAAA,CAAKC,eAAgC,EAAEC,QAAkB,EAAA;QACvDC,MAAAA,CAAOF,eAAAA,CAAgBG,GAAG,EAAE,6BAAA,CAAA;QAC5BD,MAAAA,CAAOF,eAAAA,CAAgBI,MAAM,EAAE,4BAAA,CAAA;QAE/B,MAAMC,OAAAA,GAAU,IAAIC,OAAAA,CAAQC,QAAAA,CAAAA;QAC5B,MAAMC,EAAAA,GAAKH,OAAAA,CAAQI,MAAM,CAAC;AACxB,YAAA,GAAGZ,eAAe;AAClB,YAAA,GAAGG;AACL,SAAA,CAAA;QAEA,OAAO;AACLU,YAAAA,IAAAA,CAAAA,CAAKC,OAAoB,EAAA;AACvB,gBAAA,MAAM,EAAEC,IAAI,EAAEC,EAAE,EAAEC,EAAE,EAAEC,GAAG,EAAEC,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAE,GAAGC,MAAM,GAAGT,OAAAA;AAErE,gBAAA,MAAMU,IAAAA,GAAO;oBACXT,IAAAA,EAAMA,IAAAA,IAAQX,SAASqB,WAAW;AAClCT,oBAAAA,EAAAA;AACAC,oBAAAA,EAAAA;AACAC,oBAAAA,GAAAA;oBACA,YAAA,EAAcC,OAAAA,IAAWf,SAASsB,cAAc;AAChDN,oBAAAA,OAAAA;AACAC,oBAAAA,IAAAA;AACAC,oBAAAA,IAAAA;AACA,oBAAA,GAAGC;AACL,iBAAA;AAEA,gBAAA,OAAOZ,GAAGgB,QAAQ,CAACC,MAAM,CAACzB,eAAAA,CAAgBI,MAAM,EAAYiB,IAAAA,CAAAA;AAC9D,YAAA;AACF,SAAA;AACF,IAAA;AACF,CAAA;;;;"}