mailgun.js 12.2.0 → 12.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AMD/definitions.amd.js +1 -1
- package/AMD/mailgun.amd.js +2 -2
- package/CHANGELOG.md +29 -0
- package/CJS/definitions.cjs +1 -1
- package/CJS/mailgun.node.cjs +2 -2
- package/ESM/definitions.browser.js +1 -1
- package/ESM/definitions.node.js +1 -1
- package/ESM/mailgun.browser.js +2 -2
- package/ESM/mailgun.node.js +2 -2
- package/README.md +688 -161
- package/Types/Classes/Domains/domainsClient.d.ts +13 -2
- package/Types/Classes/Domains/domainsKeys.d.ts +19 -0
- package/Types/Classes/Messages.d.ts +19 -1
- package/Types/Classes/common/Request.d.ts +3 -3
- package/Types/Interfaces/Domains/DomainKeys.d.ts +11 -0
- package/Types/Interfaces/Domains/index.d.ts +1 -0
- package/Types/Types/Common/RequestOptions.d.ts +4 -2
- package/Types/Types/Domains/DomainKeys.d.ts +70 -0
- package/Types/Types/Domains/index.d.ts +1 -0
- package/Types/Types/Messages/Messages.d.ts +58 -0
- package/Types/index.js +270 -28
- package/package.json +1 -1
- package/version.md +1 -1
package/ESM/definitions.node.js
CHANGED
package/ESM/mailgun.browser.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var s,r={exports:{}};var n,a,o,i=t((s||(s=1,a=r.exports,o=function(){return function(){return function(e){var t=[];if(0===e.length)return"";if("string"!=typeof e[0])throw new TypeError("Url must be a string. Received "+e[0]);if(e[0].match(/^[^/:]+:\/*$/)&&e.length>1){var s=e.shift();e[0]=s+e[0]}e[0].match(/^file:\/\/\//)?e[0]=e[0].replace(/^([^/:]+):\/*/,"$1:///"):e[0]=e[0].replace(/^([^/:]+):\/*/,"$1://");for(var r=0;r<e.length;r++){var n=e[r];if("string"!=typeof n)throw new TypeError("Url must be a string. Received "+n);""!==n&&(r>0&&(n=n.replace(/^[\/]+/,"")),n=r<e.length-1?n.replace(/[\/]+$/,""):n.replace(/[\/]+$/,"/"),t.push(n))}var a=t.join("/"),o=(a=a.replace(/\/(\?|&|#[^!])/g,"$1")).split("?");return o.shift()+(o.length>0?"?":"")+o.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}},(n=r).exports?n.exports=o():a.urljoin=o()),r.exports));class u extends Error{status;stack;details;type;static isApiError(e){return"object"==typeof e&&"MailgunAPIError"===e?.type}static getUserDataError(e,t){return new this({status:400,statusText:e,body:{message:t}})}constructor({status:e,statusText:t,message:s,body:r={}}){let n="",a="";"string"==typeof r?n=r:(n=r?.message||"",a=r?.error||""),super(),this.stack="",this.status=e,this.message=s||a||t||"",this.details=n,this.type="MailgunAPIError"}}class c{_stream;size;constructor(e,t){this._stream=e,this.size=t}stream(){return this._stream}get[Symbol.toStringTag](){return"Blob"}}class l{getAttachmentOptions(e){const{filename:t,contentType:s,knownLength:r}=e;return{...t?{filename:t}:{filename:"file"},...s&&{contentType:s},...r&&{knownLength:r}}}getFileInfo(e){const{name:t,type:s,size:r}=e;return this.getAttachmentOptions({filename:t,contentType:s,knownLength:r})}getCustomFileInfo(e){const{filename:t,contentType:s,knownLength:r}=e;return this.getAttachmentOptions({filename:t,contentType:s,knownLength:r})}getBufferInfo(e){const{byteLength:t}=e;return this.getAttachmentOptions({filename:"file",contentType:"",knownLength:t})}isStream(e){return"object"==typeof e&&"function"==typeof e.pipe}isCustomFile(e){return"object"==typeof e&&!!e.data}isBrowserFile(e){return"object"==typeof e&&(!!e.name||"undefined"!=typeof Blob&&e instanceof Blob)}isBuffer(e){return"undefined"!=typeof Buffer&&Buffer.isBuffer(e)}getAttachmentInfo(e){const t=this.isBrowserFile(e),s=this.isCustomFile(e);if(!("string"==typeof e)){if(t)return this.getFileInfo(e);if("undefined"!=typeof Buffer&&Buffer.isBuffer(e))return this.getBufferInfo(e);if(s)return this.getCustomFileInfo(e)}return{filename:"file",contentType:void 0,knownLength:void 0}}convertToFDexpectedShape(e){const t=this.isStream(e),s=this.isBrowserFile(e),r=this.isCustomFile(e);let n;if(t||"string"==typeof e||s||this.isBuffer(e))n=e;else{if(!r)throw u.getUserDataError("Unknown attachment type "+typeof e,'The "attachment" property expects either Buffer, Blob, or String.\n Also, It is possible to provide an object that has the property "data" with a value that is equal to one of the types counted before.\n Additionally, you may use an array to send more than one attachment.');n=e.data}return n}getBlobFromStream(e,t){return new c(e,t)}}class d{FormDataConstructor;fileKeys;attachmentsHandler;useFetch;constructor(e,t){this.FormDataConstructor=e,this.fileKeys=["attachment","inline","multipleValidationFile"],this.attachmentsHandler=new l,this.useFetch=t?.useFetch}async createFormData(e){if(!e)throw new Error("Please provide data object");const t=new this.FormDataConstructor,s=this.isFormDataPackage(t);if(s&&this.useFetch)throw u.getUserDataError('"form-data" npm package detected, and it can not be used together with "fetch" client',"fetch client does not recognize object created by form-data package as valid FormData instance");const r=Object.keys(e).filter((function(t){return e[t]})).reduce(((t,s)=>{if(this.fileKeys.includes(s)){const r=e[s];if(this.isMessageAttachment(r))return this.addFilesToFD(s,r,t),t;throw u.getUserDataError(`Unknown value ${e[s]} with type ${typeof e[s]} for property "${s}"`,`The key "${s}" should have type of Buffer, Stream, File, or String `)}if("message"===s){const r=e[s];if(!r||!this.isMIME(r))throw u.getUserDataError(`Unknown data type for "${s}" property`,"The mime data should have type of Buffer, String or Blob");return this.addMimeDataToFD(s,r,t),t}return this.addCommonPropertyToFD(s,e[s],t),t}),t),n={formData:r,dataSize:0};if(this.useFetch&&!s&&(Object.defineProperty(r,"getHeaders",{value:()=>({"Content-Type":void 0})}),void 0!==Response)){const e=new Response(r),t=await e.blob();n.dataSize=t.size}return n}addMimeDataToFD(e,t,s){if("string"!=typeof t){if(this.isFormDataPackage(s)){s.append(e,t,{filename:"MimeMessage"})}else if(void 0!==typeof Blob){const r=s;if(t instanceof Blob)return void r.append(e,t,"MimeMessage");if(this.attachmentsHandler.isBuffer(t)){const s=new Blob([t]);r.append(e,s,"MimeMessage")}}}else s.append(e,t)}isMIME(e){return"string"==typeof e||"undefined"!=typeof Blob&&e instanceof Blob||this.attachmentsHandler.isBuffer(e)||"undefined"!=typeof ReadableStream&&e instanceof ReadableStream}isFormDataPackage(e){return"object"==typeof e&&null!==e&&"function"==typeof e.getHeaders}isMessageAttachment(e){return this.attachmentsHandler.isCustomFile(e)||"string"==typeof e||"undefined"!=typeof File&&e instanceof File||"undefined"!=typeof Blob&&e instanceof Blob||this.attachmentsHandler.isBuffer(e)||this.attachmentsHandler.isStream(e)||Array.isArray(e)&&e.every((t=>this.attachmentsHandler.isCustomFile(t)||"undefined"!=typeof File&&t instanceof File||"undefined"!=typeof Blob&&e instanceof Blob||this.attachmentsHandler.isBuffer(t)||this.attachmentsHandler.isStream(t)))}addFilesToFD(e,t,s){const r=(e,t,r)=>{const n="multipleValidationFile"===e?"file":e,a=this.attachmentsHandler.convertToFDexpectedShape(t),o=this.attachmentsHandler.getAttachmentInfo(t);if(this.isFormDataPackage(r)){const e=r,t="string"==typeof a?Buffer.from(a):a;e.append(n,t,o)}else if(void 0!==typeof Blob){const e=s;if("string"==typeof a||this.attachmentsHandler.isBuffer(a)){const t=new Blob([a]);return void e.append(n,t,o.filename)}if(a instanceof Blob)return void e.append(n,a,o.filename);if(this.attachmentsHandler.isStream(a)){const t=this.attachmentsHandler.getBlobFromStream(a,o.knownLength);e.set(n,t,o.filename)}}};Array.isArray(t)?t.forEach((function(t){r(e,t,s)})):r(e,t,s)}addCommonPropertyToFD(e,t,s){const r=(e,t)=>{if(this.isFormDataPackage(s))return"object"==typeof t?(console.warn('The received value is an object. \n"JSON.Stringify" will be used to avoid TypeError \nTo remove this warning: \nConsider switching to built-in FormData or converting the value on your own.\n'),s.append(e,JSON.stringify(t))):s.append(e,t);if("string"==typeof t)return s.append(e,t);if(void 0!==typeof Blob&&t instanceof Blob)return s.append(e,t);throw u.getUserDataError("Unknown value type for Form Data. String or Blob expected","Browser compliant FormData allows only string or Blob values for properties that are not attachments.")};Array.isArray(t)?t.forEach((function(t){r(e,t)})):null!=t&&r(e,t)}}function h(e,t){return function(){return e.apply(t,arguments)}}const{toString:p}=Object.prototype,{getPrototypeOf:f}=Object,{iterator:m,toStringTag:g}=Symbol,b=(y=Object.create(null),e=>{const t=p.call(e);return y[t]||(y[t]=t.slice(8,-1).toLowerCase())});var y;const w=e=>(e=e.toLowerCase(),t=>b(t)===e),v=e=>t=>typeof t===e,{isArray:q}=Array,R=v("undefined");function _(e){return null!==e&&!R(e)&&null!==e.constructor&&!R(e.constructor)&&T(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const S=w("ArrayBuffer");const D=v("string"),T=v("function"),E=v("number"),O=e=>null!==e&&"object"==typeof e,A=e=>{if("object"!==b(e))return!1;const t=f(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||g in e||m in e)},x=w("Date"),k=w("File"),F=w("Blob"),C=w("FileList"),P=w("URLSearchParams"),[L,U,B,j]=["ReadableStream","Request","Response","Headers"].map(w);function $(e,t,{allOwnKeys:s=!1}={}){if(null==e)return;let r,n;if("object"!=typeof e&&(e=[e]),q(e))for(r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else{if(_(e))return;const n=s?Object.getOwnPropertyNames(e):Object.keys(e),a=n.length;let o;for(r=0;r<a;r++)o=n[r],t.call(null,e[o],o,e)}}function N(e,t){if(_(e))return null;t=t.toLowerCase();const s=Object.keys(e);let r,n=s.length;for(;n-- >0;)if(r=s[n],t===r.toLowerCase())return r;return null}const I="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,M=e=>!R(e)&&e!==I;const W=(H="undefined"!=typeof Uint8Array&&f(Uint8Array),e=>H&&e instanceof H);var H;const z=w("HTMLFormElement"),V=(({hasOwnProperty:e})=>(t,s)=>e.call(t,s))(Object.prototype),J=w("RegExp"),K=(e,t)=>{const s=Object.getOwnPropertyDescriptors(e),r={};$(s,((s,n)=>{let a;!1!==(a=t(s,n,e))&&(r[n]=a||s)})),Object.defineProperties(e,r)};const Q=w("AsyncFunction"),X=(G="function"==typeof setImmediate,Y=T(I.postMessage),G?setImmediate:Y?(Z=`axios@${Math.random()}`,ee=[],I.addEventListener("message",(({source:e,data:t})=>{e===I&&t===Z&&ee.length&&ee.shift()()}),!1),e=>{ee.push(e),I.postMessage(Z,"*")}):e=>setTimeout(e));var G,Y,Z,ee;const te="undefined"!=typeof queueMicrotask?queueMicrotask.bind(I):"undefined"!=typeof process&&process.nextTick||X;var se={isArray:q,isArrayBuffer:S,isBuffer:_,isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||T(e.append)&&("formdata"===(t=b(e))||"object"===t&&T(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&S(e.buffer),t},isString:D,isNumber:E,isBoolean:e=>!0===e||!1===e,isObject:O,isPlainObject:A,isEmptyObject:e=>{if(!O(e)||_(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:L,isRequest:U,isResponse:B,isHeaders:j,isUndefined:R,isDate:x,isFile:k,isBlob:F,isRegExp:J,isFunction:T,isStream:e=>O(e)&&T(e.pipe),isURLSearchParams:P,isTypedArray:W,isFileList:C,forEach:$,merge:function e(){const{caseless:t,skipUndefined:s}=M(this)&&this||{},r={},n=(n,a)=>{const o=t&&N(r,a)||a;A(r[o])&&A(n)?r[o]=e(r[o],n):A(n)?r[o]=e({},n):q(n)?r[o]=n.slice():s&&R(n)||(r[o]=n)};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&$(arguments[e],n);return r},extend:(e,t,s,{allOwnKeys:r}={})=>($(t,((t,r)=>{s&&T(t)?e[r]=h(t,s):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,s,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),s&&Object.assign(e.prototype,s)},toFlatObject:(e,t,s,r)=>{let n,a,o;const i={};if(t=t||{},null==e)return t;do{for(n=Object.getOwnPropertyNames(e),a=n.length;a-- >0;)o=n[a],r&&!r(o,e,t)||i[o]||(t[o]=e[o],i[o]=!0);e=!1!==s&&f(e)}while(e&&(!s||s(e,t))&&e!==Object.prototype);return t},kindOf:b,kindOfTest:w,endsWith:(e,t,s)=>{e=String(e),(void 0===s||s>e.length)&&(s=e.length),s-=t.length;const r=e.indexOf(t,s);return-1!==r&&r===s},toArray:e=>{if(!e)return null;if(q(e))return e;let t=e.length;if(!E(t))return null;const s=new Array(t);for(;t-- >0;)s[t]=e[t];return s},forEachEntry:(e,t)=>{const s=(e&&e[m]).call(e);let r;for(;(r=s.next())&&!r.done;){const s=r.value;t.call(e,s[0],s[1])}},matchAll:(e,t)=>{let s;const r=[];for(;null!==(s=e.exec(t));)r.push(s);return r},isHTMLForm:z,hasOwnProperty:V,hasOwnProp:V,reduceDescriptors:K,freezeMethods:e=>{K(e,((t,s)=>{if(T(e)&&-1!==["arguments","caller","callee"].indexOf(s))return!1;const r=e[s];T(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")}))}))},toObjectSet:(e,t)=>{const s={},r=e=>{e.forEach((e=>{s[e]=!0}))};return q(e)?r(e):r(String(e).split(t)),s},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,s){return t.toUpperCase()+s})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:N,global:I,isContextDefined:M,isSpecCompliantForm:function(e){return!!(e&&T(e.append)&&"FormData"===e[g]&&e[m])},toJSONObject:e=>{const t=new Array(10),s=(e,r)=>{if(O(e)){if(t.indexOf(e)>=0)return;if(_(e))return e;if(!("toJSON"in e)){t[r]=e;const n=q(e)?[]:{};return $(e,((e,t)=>{const a=s(e,r+1);!R(a)&&(n[t]=a)})),t[r]=void 0,n}}return e};return s(e,0)},isAsyncFn:Q,isThenable:e=>e&&(O(e)||T(e))&&T(e.then)&&T(e.catch),setImmediate:X,asap:te,isIterable:e=>null!=e&&T(e[m])};function re(e,t,s,r,n){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),s&&(this.config=s),r&&(this.request=r),n&&(this.response=n,this.status=n.status?n.status:null)}se.inherits(re,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:se.toJSONObject(this.config),code:this.code,status:this.status}}});const ne=re.prototype,ae={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{ae[e]={value:e}})),Object.defineProperties(re,ae),Object.defineProperty(ne,"isAxiosError",{value:!0}),re.from=(e,t,s,r,n,a)=>{const o=Object.create(ne);se.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e));const i=e&&e.message?e.message:"Error",u=null==t&&e?e.code:t;return re.call(o,i,u,s,r,n),e&&null==o.cause&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",a&&Object.assign(o,a),o};function oe(e){return se.isPlainObject(e)||se.isArray(e)}function ie(e){return se.endsWith(e,"[]")?e.slice(0,-2):e}function ue(e,t,s){return e?e.concat(t).map((function(e,t){return e=ie(e),!s&&t?"["+e+"]":e})).join(s?".":""):t}const ce=se.toFlatObject(se,{},null,(function(e){return/^is[A-Z]/.test(e)}));function le(e,t,s){if(!se.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(s=se.toFlatObject(s,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!se.isUndefined(t[e])}))).metaTokens,n=s.visitor||c,a=s.dots,o=s.indexes,i=(s.Blob||"undefined"!=typeof Blob&&Blob)&&se.isSpecCompliantForm(t);if(!se.isFunction(n))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(se.isDate(e))return e.toISOString();if(se.isBoolean(e))return e.toString();if(!i&&se.isBlob(e))throw new re("Blob is not supported. Use a Buffer instead.");return se.isArrayBuffer(e)||se.isTypedArray(e)?i&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,s,n){let i=e;if(e&&!n&&"object"==typeof e)if(se.endsWith(s,"{}"))s=r?s:s.slice(0,-2),e=JSON.stringify(e);else if(se.isArray(e)&&function(e){return se.isArray(e)&&!e.some(oe)}(e)||(se.isFileList(e)||se.endsWith(s,"[]"))&&(i=se.toArray(e)))return s=ie(s),i.forEach((function(e,r){!se.isUndefined(e)&&null!==e&&t.append(!0===o?ue([s],r,a):null===o?s:s+"[]",u(e))})),!1;return!!oe(e)||(t.append(ue(n,s,a),u(e)),!1)}const l=[],d=Object.assign(ce,{defaultVisitor:c,convertValue:u,isVisitable:oe});if(!se.isObject(e))throw new TypeError("data must be an object");return function e(s,r){if(!se.isUndefined(s)){if(-1!==l.indexOf(s))throw Error("Circular reference detected in "+r.join("."));l.push(s),se.forEach(s,(function(s,a){!0===(!(se.isUndefined(s)||null===s)&&n.call(t,s,se.isString(a)?a.trim():a,r,d))&&e(s,r?r.concat(a):[a])})),l.pop()}}(e),t}function de(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function he(e,t){this._pairs=[],e&&le(e,this,t)}const pe=he.prototype;function fe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function me(e,t,s){if(!t)return e;const r=s&&s.encode||fe;se.isFunction(s)&&(s={serialize:s});const n=s&&s.serialize;let a;if(a=n?n(t,s):se.isURLSearchParams(t)?t.toString():new he(t,s).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}pe.append=function(e,t){this._pairs.push([e,t])},pe.toString=function(e){const t=e?function(t){return e.call(this,t,de)}:de;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class ge{constructor(){this.handlers=[]}use(e,t,s){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!s&&s.synchronous,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){se.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var be={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ye={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:he,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const we="undefined"!=typeof window&&"undefined"!=typeof document,ve="object"==typeof navigator&&navigator||void 0,qe=we&&(!ve||["ReactNative","NativeScript","NS"].indexOf(ve.product)<0),Re="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,_e=we&&window.location.href||"http://localhost";var Se={...Object.freeze({__proto__:null,hasBrowserEnv:we,hasStandardBrowserEnv:qe,hasStandardBrowserWebWorkerEnv:Re,navigator:ve,origin:_e}),...ye};function De(e){function t(e,s,r,n){let a=e[n++];if("__proto__"===a)return!0;const o=Number.isFinite(+a),i=n>=e.length;if(a=!a&&se.isArray(r)?r.length:a,i)return se.hasOwnProp(r,a)?r[a]=[r[a],s]:r[a]=s,!o;r[a]&&se.isObject(r[a])||(r[a]=[]);return t(e,s,r[a],n)&&se.isArray(r[a])&&(r[a]=function(e){const t={},s=Object.keys(e);let r;const n=s.length;let a;for(r=0;r<n;r++)a=s[r],t[a]=e[a];return t}(r[a])),!o}if(se.isFormData(e)&&se.isFunction(e.entries)){const s={};return se.forEachEntry(e,((e,r)=>{t(function(e){return se.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,s,0)})),s}return null}const Te={transitional:be,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const s=t.getContentType()||"",r=s.indexOf("application/json")>-1,n=se.isObject(e);n&&se.isHTMLForm(e)&&(e=new FormData(e));if(se.isFormData(e))return r?JSON.stringify(De(e)):e;if(se.isArrayBuffer(e)||se.isBuffer(e)||se.isStream(e)||se.isFile(e)||se.isBlob(e)||se.isReadableStream(e))return e;if(se.isArrayBufferView(e))return e.buffer;if(se.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(n){if(s.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return le(e,new Se.classes.URLSearchParams,{visitor:function(e,t,s,r){return Se.isNode&&se.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...t})}(e,this.formSerializer).toString();if((a=se.isFileList(e))||s.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return le(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return n||r?(t.setContentType("application/json",!1),function(e,t,s){if(se.isString(e))try{return(t||JSON.parse)(e),se.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(s||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Te.transitional,s=t&&t.forcedJSONParsing,r="json"===this.responseType;if(se.isResponse(e)||se.isReadableStream(e))return e;if(e&&se.isString(e)&&(s&&!this.responseType||r)){const s=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e,this.parseReviver)}catch(e){if(s){if("SyntaxError"===e.name)throw re.from(e,re.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Se.classes.FormData,Blob:Se.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};se.forEach(["delete","get","head","post","put","patch"],(e=>{Te.headers[e]={}}));const Ee=se.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Oe=Symbol("internals");function Ae(e){return e&&String(e).trim().toLowerCase()}function xe(e){return!1===e||null==e?e:se.isArray(e)?e.map(xe):String(e)}function ke(e,t,s,r,n){return se.isFunction(r)?r.call(this,t,s):(n&&(t=s),se.isString(t)?se.isString(r)?-1!==t.indexOf(r):se.isRegExp(r)?r.test(t):void 0:void 0)}let Fe=class{constructor(e){e&&this.set(e)}set(e,t,s){const r=this;function n(e,t,s){const n=Ae(t);if(!n)throw new Error("header name must be a non-empty string");const a=se.findKey(r,n);(!a||void 0===r[a]||!0===s||void 0===s&&!1!==r[a])&&(r[a||t]=xe(e))}const a=(e,t)=>se.forEach(e,((e,s)=>n(e,s,t)));if(se.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(se.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))a((e=>{const t={};let s,r,n;return e&&e.split("\n").forEach((function(e){n=e.indexOf(":"),s=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!s||t[s]&&Ee[s]||("set-cookie"===s?t[s]?t[s].push(r):t[s]=[r]:t[s]=t[s]?t[s]+", "+r:r)})),t})(e),t);else if(se.isObject(e)&&se.isIterable(e)){let s,r,n={};for(const t of e){if(!se.isArray(t))throw TypeError("Object iterator must return a key-value pair");n[r=t[0]]=(s=n[r])?se.isArray(s)?[...s,t[1]]:[s,t[1]]:t[1]}a(n,t)}else null!=e&&n(t,e,s);return this}get(e,t){if(e=Ae(e)){const s=se.findKey(this,e);if(s){const e=this[s];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=s.exec(e);)t[r[1]]=r[2];return t}(e);if(se.isFunction(t))return t.call(this,e,s);if(se.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ae(e)){const s=se.findKey(this,e);return!(!s||void 0===this[s]||t&&!ke(0,this[s],s,t))}return!1}delete(e,t){const s=this;let r=!1;function n(e){if(e=Ae(e)){const n=se.findKey(s,e);!n||t&&!ke(0,s[n],n,t)||(delete s[n],r=!0)}}return se.isArray(e)?e.forEach(n):n(e),r}clear(e){const t=Object.keys(this);let s=t.length,r=!1;for(;s--;){const n=t[s];e&&!ke(0,this[n],n,e,!0)||(delete this[n],r=!0)}return r}normalize(e){const t=this,s={};return se.forEach(this,((r,n)=>{const a=se.findKey(s,n);if(a)return t[a]=xe(r),void delete t[n];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,s)=>t.toUpperCase()+s))}(n):String(n).trim();o!==n&&delete t[n],t[o]=xe(r),s[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return se.forEach(this,((s,r)=>{null!=s&&!1!==s&&(t[r]=e&&se.isArray(s)?s.join(", "):s)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const s=new this(e);return t.forEach((e=>s.set(e))),s}static accessor(e){const t=(this[Oe]=this[Oe]={accessors:{}}).accessors,s=this.prototype;function r(e){const r=Ae(e);t[r]||(!function(e,t){const s=se.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+s,{value:function(e,s,n){return this[r].call(this,t,e,s,n)},configurable:!0})}))}(s,e),t[r]=!0)}return se.isArray(e)?e.forEach(r):r(e),this}};function Ce(e,t){const s=this||Te,r=t||s,n=Fe.from(r.headers);let a=r.data;return se.forEach(e,(function(e){a=e.call(s,a,n.normalize(),t?t.status:void 0)})),n.normalize(),a}function Pe(e){return!(!e||!e.__CANCEL__)}function Le(e,t,s){re.call(this,null==e?"canceled":e,re.ERR_CANCELED,t,s),this.name="CanceledError"}function Ue(e,t,s){const r=s.config.validateStatus;s.status&&r&&!r(s.status)?t(new re("Request failed with status code "+s.status,[re.ERR_BAD_REQUEST,re.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s)):e(s)}Fe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),se.reduceDescriptors(Fe.prototype,(({value:e},t)=>{let s=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[s]=e}}})),se.freezeMethods(Fe),se.inherits(Le,re,{__CANCEL__:!0});const Be=(e,t,s=3)=>{let r=0;const n=function(e,t){e=e||10;const s=new Array(e),r=new Array(e);let n,a=0,o=0;return t=void 0!==t?t:1e3,function(i){const u=Date.now(),c=r[o];n||(n=u),s[a]=i,r[a]=u;let l=o,d=0;for(;l!==a;)d+=s[l++],l%=e;if(a=(a+1)%e,a===o&&(o=(o+1)%e),u-n<t)return;const h=c&&u-c;return h?Math.round(1e3*d/h):void 0}}(50,250);return function(e,t){let s,r,n=0,a=1e3/t;const o=(t,a=Date.now())=>{n=a,s=null,r&&(clearTimeout(r),r=null),e(...t)};return[(...e)=>{const t=Date.now(),i=t-n;i>=a?o(e,t):(s=e,r||(r=setTimeout((()=>{r=null,o(s)}),a-i)))},()=>s&&o(s)]}((s=>{const a=s.loaded,o=s.lengthComputable?s.total:void 0,i=a-r,u=n(i);r=a;e({loaded:a,total:o,progress:o?a/o:void 0,bytes:i,rate:u||void 0,estimated:u&&o&&a<=o?(o-a)/u:void 0,event:s,lengthComputable:null!=o,[t?"download":"upload"]:!0})}),s)},je=(e,t)=>{const s=null!=e;return[r=>t[0]({lengthComputable:s,total:e,loaded:r}),t[1]]},$e=e=>(...t)=>se.asap((()=>e(...t)));var Ne=Se.hasStandardBrowserEnv?((e,t)=>s=>(s=new URL(s,Se.origin),e.protocol===s.protocol&&e.host===s.host&&(t||e.port===s.port)))(new URL(Se.origin),Se.navigator&&/(msie|trident)/i.test(Se.navigator.userAgent)):()=>!0,Ie=Se.hasStandardBrowserEnv?{write(e,t,s,r,n,a){const o=[e+"="+encodeURIComponent(t)];se.isNumber(s)&&o.push("expires="+new Date(s).toGMTString()),se.isString(r)&&o.push("path="+r),se.isString(n)&&o.push("domain="+n),!0===a&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Me(e,t,s){let r=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);return e&&(r||0==s)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const We=e=>e instanceof Fe?{...e}:e;function He(e,t){t=t||{};const s={};function r(e,t,s,r){return se.isPlainObject(e)&&se.isPlainObject(t)?se.merge.call({caseless:r},e,t):se.isPlainObject(t)?se.merge({},t):se.isArray(t)?t.slice():t}function n(e,t,s,n){return se.isUndefined(t)?se.isUndefined(e)?void 0:r(void 0,e,0,n):r(e,t,0,n)}function a(e,t){if(!se.isUndefined(t))return r(void 0,t)}function o(e,t){return se.isUndefined(t)?se.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function i(s,n,a){return a in t?r(s,n):a in e?r(void 0,s):void 0}const u={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:i,headers:(e,t,s)=>n(We(e),We(t),0,!0)};return se.forEach(Object.keys({...e,...t}),(function(r){const a=u[r]||n,o=a(e[r],t[r],r);se.isUndefined(o)&&a!==i||(s[r]=o)})),s}var ze=e=>{const t=He({},e);let{data:s,withXSRFToken:r,xsrfHeaderName:n,xsrfCookieName:a,headers:o,auth:i}=t;if(t.headers=o=Fe.from(o),t.url=me(Me(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),i&&o.set("Authorization","Basic "+btoa((i.username||"")+":"+(i.password?unescape(encodeURIComponent(i.password)):""))),se.isFormData(s))if(Se.hasStandardBrowserEnv||Se.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(se.isFunction(s.getHeaders)){const e=s.getHeaders(),t=["content-type","content-length"];Object.entries(e).forEach((([e,s])=>{t.includes(e.toLowerCase())&&o.set(e,s)}))}if(Se.hasStandardBrowserEnv&&(r&&se.isFunction(r)&&(r=r(t)),r||!1!==r&&Ne(t.url))){const e=n&&a&&Ie.read(a);e&&o.set(n,e)}return t};var Ve="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,s){const r=ze(e);let n=r.data;const a=Fe.from(r.headers).normalize();let o,i,u,c,l,{responseType:d,onUploadProgress:h,onDownloadProgress:p}=r;function f(){c&&c(),l&&l(),r.cancelToken&&r.cancelToken.unsubscribe(o),r.signal&&r.signal.removeEventListener("abort",o)}let m=new XMLHttpRequest;function g(){if(!m)return;const r=Fe.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Ue((function(e){t(e),f()}),(function(e){s(e),f()}),{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(s(new re("Request aborted",re.ECONNABORTED,e,m)),m=null)},m.onerror=function(t){const r=new re(t&&t.message?t.message:"Network Error",re.ERR_NETWORK,e,m);r.event=t||null,s(r),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const n=r.transitional||be;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),s(new re(t,n.clarifyTimeoutError?re.ETIMEDOUT:re.ECONNABORTED,e,m)),m=null},void 0===n&&a.setContentType(null),"setRequestHeader"in m&&se.forEach(a.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),se.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),d&&"json"!==d&&(m.responseType=r.responseType),p&&([u,l]=Be(p,!0),m.addEventListener("progress",u)),h&&m.upload&&([i,c]=Be(h),m.upload.addEventListener("progress",i),m.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(o=t=>{m&&(s(!t||t.type?new Le(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(o),r.signal&&(r.signal.aborted?o():r.signal.addEventListener("abort",o)));const b=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);b&&-1===Se.protocols.indexOf(b)?s(new re("Unsupported protocol "+b+":",re.ERR_BAD_REQUEST,e)):m.send(n||null)}))};const Je=(e,t)=>{const{length:s}=e=e?e.filter(Boolean):[];if(t||s){let s,r=new AbortController;const n=function(e){if(!s){s=!0,o();const t=e instanceof Error?e:this.reason;r.abort(t instanceof re?t:new Le(t instanceof Error?t.message:t))}};let a=t&&setTimeout((()=>{a=null,n(new re(`timeout ${t} of ms exceeded`,re.ETIMEDOUT))}),t);const o=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(n):e.removeEventListener("abort",n)})),e=null)};e.forEach((e=>e.addEventListener("abort",n)));const{signal:i}=r;return i.unsubscribe=()=>se.asap(o),i}},Ke=function*(e,t){let s=e.byteLength;if(s<t)return void(yield e);let r,n=0;for(;n<s;)r=n+t,yield e.slice(n,r),n=r},Qe=async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:s}=await t.read();if(e)break;yield s}}finally{await t.cancel()}},Xe=(e,t,s,r)=>{const n=async function*(e,t){for await(const s of Qe(e))yield*Ke(s,t)}(e,t);let a,o=0,i=e=>{a||(a=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await n.next();if(t)return i(),void e.close();let a=r.byteLength;if(s){let e=o+=a;s(e)}e.enqueue(new Uint8Array(r))}catch(e){throw i(e),e}},cancel:e=>(i(e),n.return())},{highWaterMark:2})},{isFunction:Ge}=se,Ye=(({fetch:e,Request:t,Response:s})=>({fetch:e,Request:t,Response:s}))(se.global),{ReadableStream:Ze,TextEncoder:et}=se.global,tt=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},st=e=>{const{fetch:t,Request:s,Response:r}=Object.assign({},Ye,e),n=Ge(t),a=Ge(s),o=Ge(r);if(!n)return!1;const i=n&&Ge(Ze),u=n&&("function"==typeof et?(c=new et,e=>c.encode(e)):async e=>new Uint8Array(await new s(e).arrayBuffer()));var c;const l=a&&i&&tt((()=>{let e=!1;const t=new s(Se.origin,{body:new Ze,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),d=o&&i&&tt((()=>se.isReadableStream(new r("").body))),h={stream:d&&(e=>e.body)};n&&["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!h[e]&&(h[e]=(t,s)=>{let r=t&&t[e];if(r)return r.call(t);throw new re(`Response type '${e}' is not supported`,re.ERR_NOT_SUPPORT,s)})}));const p=async(e,t)=>{const r=se.toFiniteNumber(e.getContentLength());return null==r?(async e=>{if(null==e)return 0;if(se.isBlob(e))return e.size;if(se.isSpecCompliantForm(e)){const t=new s(Se.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return se.isArrayBufferView(e)||se.isArrayBuffer(e)?e.byteLength:(se.isURLSearchParams(e)&&(e+=""),se.isString(e)?(await u(e)).byteLength:void 0)})(t):r};return async e=>{let{url:n,method:o,data:i,signal:u,cancelToken:c,timeout:f,onDownloadProgress:m,onUploadProgress:g,responseType:b,headers:y,withCredentials:w="same-origin",fetchOptions:v}=ze(e);b=b?(b+"").toLowerCase():"text";let q=Je([u,c&&c.toAbortSignal()],f),R=null;const _=q&&q.unsubscribe&&(()=>{q.unsubscribe()});let S;try{if(g&&l&&"get"!==o&&"head"!==o&&0!==(S=await p(y,i))){let e,t=new s(n,{method:"POST",body:i,duplex:"half"});if(se.isFormData(i)&&(e=t.headers.get("content-type"))&&y.setContentType(e),t.body){const[e,s]=je(S,Be($e(g)));i=Xe(t.body,65536,e,s)}}se.isString(w)||(w=w?"include":"omit");const u=a&&"credentials"in s.prototype,c={...v,signal:q,method:o.toUpperCase(),headers:y.normalize().toJSON(),body:i,duplex:"half",credentials:u?w:void 0};R=a&&new s(n,c);let f=await(a?t(R,v):t(n,c));const D=d&&("stream"===b||"response"===b);if(d&&(m||D&&_)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=f[t]}));const t=se.toFiniteNumber(f.headers.get("content-length")),[s,n]=m&&je(t,Be($e(m),!0))||[];f=new r(Xe(f.body,65536,s,(()=>{n&&n(),_&&_()})),e)}b=b||"text";let T=await h[se.findKey(h,b)||"text"](f,e);return!D&&_&&_(),await new Promise(((t,s)=>{Ue(t,s,{data:T,headers:Fe.from(f.headers),status:f.status,statusText:f.statusText,config:e,request:R})}))}catch(t){if(_&&_(),t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new re("Network Error",re.ERR_NETWORK,e,R),{cause:t.cause||t});throw re.from(t,t&&t.code,e,R)}}},rt=new Map,nt=e=>{let t=se.merge.call({skipUndefined:!0},Ye,e?e.env:null);const{fetch:s,Request:r,Response:n}=t,a=[r,n,s];let o,i,u=a.length,c=rt;for(;u--;)o=a[u],i=c.get(o),void 0===i&&c.set(o,i=u?new Map:st(t)),c=i;return i};nt();const at={http:null,xhr:Ve,fetch:{get:nt}};se.forEach(at,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const ot=e=>`- ${e}`,it=e=>se.isFunction(e)||null===e||!1===e;var ut=(e,t)=>{e=se.isArray(e)?e:[e];const{length:s}=e;let r,n;const a={};for(let o=0;o<s;o++){let s;if(r=e[o],n=r,!it(r)&&(n=at[(s=String(r)).toLowerCase()],void 0===n))throw new re(`Unknown adapter '${s}'`);if(n&&(se.isFunction(n)||(n=n.get(t))))break;a[s||"#"+o]=n}if(!n){const e=Object.entries(a).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new re("There is no suitable adapter to dispatch the request "+(s?e.length>1?"since :\n"+e.map(ot).join("\n"):" "+ot(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function ct(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Le(null,e)}function lt(e){ct(e),e.headers=Fe.from(e.headers),e.data=Ce.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return ut(e.adapter||Te.adapter,e)(e).then((function(t){return ct(e),t.data=Ce.call(e,e.transformResponse,t),t.headers=Fe.from(t.headers),t}),(function(t){return Pe(t)||(ct(e),t&&t.response&&(t.response.data=Ce.call(e,e.transformResponse,t.response),t.response.headers=Fe.from(t.response.headers))),Promise.reject(t)}))}const dt="1.12.1",ht={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{ht[e]=function(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}}));const pt={};ht.transitional=function(e,t,s){function r(e,t){return"[Axios v"+dt+"] Transitional option '"+e+"'"+t+(s?". "+s:"")}return(s,n,a)=>{if(!1===e)throw new re(r(n," has been removed"+(t?" in "+t:"")),re.ERR_DEPRECATED);return t&&!pt[n]&&(pt[n]=!0,console.warn(r(n," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(s,n,a)}},ht.spelling=function(e){return(t,s)=>(console.warn(`${s} is likely a misspelling of ${e}`),!0)};var ft={assertOptions:function(e,t,s){if("object"!=typeof e)throw new re("options must be an object",re.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let n=r.length;for(;n-- >0;){const a=r[n],o=t[a];if(o){const t=e[a],s=void 0===t||o(t,a,e);if(!0!==s)throw new re("option "+a+" must be "+s,re.ERR_BAD_OPTION_VALUE)}else if(!0!==s)throw new re("Unknown option "+a,re.ERR_BAD_OPTION)}},validators:ht};const mt=ft.validators;let gt=class{constructor(e){this.defaults=e||{},this.interceptors={request:new ge,response:new ge}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const s=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?s&&!String(e.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+s):e.stack=s}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=He(this.defaults,t);const{transitional:s,paramsSerializer:r,headers:n}=t;void 0!==s&&ft.assertOptions(s,{silentJSONParsing:mt.transitional(mt.boolean),forcedJSONParsing:mt.transitional(mt.boolean),clarifyTimeoutError:mt.transitional(mt.boolean)},!1),null!=r&&(se.isFunction(r)?t.paramsSerializer={serialize:r}:ft.assertOptions(r,{encode:mt.function,serialize:mt.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),ft.assertOptions(t,{baseUrl:mt.spelling("baseURL"),withXsrfToken:mt.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=n&&se.merge(n.common,n[t.method]);n&&se.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete n[e]})),t.headers=Fe.concat(a,n);const o=[];let i=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));const u=[];let c;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let l,d=0;if(!i){const e=[lt.bind(this),void 0];for(e.unshift(...o),e.push(...u),l=e.length,c=Promise.resolve(t);d<l;)c=c.then(e[d++],e[d++]);return c}l=o.length;let h=t;for(d=0;d<l;){const e=o[d++],t=o[d++];try{h=e(h)}catch(e){t.call(this,e);break}}try{c=lt.call(this,h)}catch(e){return Promise.reject(e)}for(d=0,l=u.length;d<l;)c=c.then(u[d++],u[d++]);return c}getUri(e){return me(Me((e=He(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}};se.forEach(["delete","get","head","options"],(function(e){gt.prototype[e]=function(t,s){return this.request(He(s||{},{method:e,url:t,data:(s||{}).data}))}})),se.forEach(["post","put","patch"],(function(e){function t(t){return function(s,r,n){return this.request(He(n||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:s,data:r}))}}gt.prototype[e]=t(),gt.prototype[e+"Form"]=t(!0)}));const bt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(bt).forEach((([e,t])=>{bt[t]=e}));const yt=function e(t){const s=new gt(t),r=h(gt.prototype.request,s);return se.extend(r,gt.prototype,s,{allOwnKeys:!0}),se.extend(r,s,null,{allOwnKeys:!0}),r.create=function(s){return e(He(t,s))},r}(Te);yt.Axios=gt,yt.CanceledError=Le,yt.CancelToken=class e{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const s=this;this.promise.then((e=>{if(!s._listeners)return;let t=s._listeners.length;for(;t-- >0;)s._listeners[t](e);s._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{s.subscribe(e),t=e})).then(e);return r.cancel=function(){s.unsubscribe(t)},r},e((function(e,r,n){s.reason||(s.reason=new Le(e,r,n),t(s.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e((function(e){t=e})),cancel:t}}},yt.isCancel=Pe,yt.VERSION=dt,yt.toFormData=le,yt.AxiosError=re,yt.Cancel=yt.CanceledError,yt.all=function(e){return Promise.all(e)},yt.spread=function(e){return function(t){return e.apply(null,t)}},yt.isAxiosError=function(e){return se.isObject(e)&&!0===e.isAxiosError},yt.mergeConfig=He,yt.AxiosHeaders=Fe,yt.formToJSON=e=>De(se.isHTMLForm(e)?new FormData(e):e),yt.getAdapter=ut,yt.HttpStatusCode=bt,yt.default=yt;const{Axios:wt,AxiosError:vt,CanceledError:qt,isCancel:Rt,CancelToken:_t,VERSION:St,all:Dt,Cancel:Tt,isAxiosError:Et,spread:Ot,toFormData:At,AxiosHeaders:xt,HttpStatusCode:kt,formToJSON:Ft,getAdapter:Ct,mergeConfig:Pt}=yt;var Lt,Ut={exports:{}},Bt=Ut.exports;
|
|
2
|
-
/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */var jt,$t,Nt,It,Mt=(Lt||(Lt=1,function(t,s){!function(r){var n=s,a=t&&t.exports==n&&t,o="object"==typeof e&&e;o.global!==o&&o.window!==o||(r=o);var i=function(e){this.message=e};(i.prototype=new Error).name="InvalidCharacterError";var u=function(e){throw new i(e)},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,d={encode:function(e){e=String(e),/[^\0-\xFF]/.test(e)&&u("The string to be encoded contains characters outside of the Latin1 range.");for(var t,s,r,n,a=e.length%3,o="",i=-1,l=e.length-a;++i<l;)t=e.charCodeAt(i)<<16,s=e.charCodeAt(++i)<<8,r=e.charCodeAt(++i),o+=c.charAt((n=t+s+r)>>18&63)+c.charAt(n>>12&63)+c.charAt(n>>6&63)+c.charAt(63&n);return 2==a?(t=e.charCodeAt(i)<<8,s=e.charCodeAt(++i),o+=c.charAt((n=t+s)>>10)+c.charAt(n>>4&63)+c.charAt(n<<2&63)+"="):1==a&&(n=e.charCodeAt(i),o+=c.charAt(n>>2)+c.charAt(n<<4&63)+"=="),o},decode:function(e){var t=(e=String(e).replace(l,"")).length;t%4==0&&(t=(e=e.replace(/==?$/,"")).length),(t%4==1||/[^+a-zA-Z0-9/]/.test(e))&&u("Invalid character: the string to be decoded is not correctly encoded.");for(var s,r,n=0,a="",o=-1;++o<t;)r=c.indexOf(e.charAt(o)),s=n%4?64*s+r:r,n++%4&&(a+=String.fromCharCode(255&s>>(-2*n&6)));return a},version:"1.0.0"};if(n&&!n.nodeType)if(a)a.exports=d;else for(var h in d)d.hasOwnProperty(h)&&(n[h]=d[h]);else r.base64=d}(Bt)}(Ut,Ut.exports)),Ut.exports);class Wt{request;static SUBACCOUNT_HEADER="X-Mailgun-On-Behalf-Of";constructor(e){this.request=e}convertToDate(e){return{...e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at)}}async list(e){const t=await this.request.get("/v5/accounts/subaccounts",e);return{total:t.body.total,subaccounts:t.body.subaccounts.map(this.convertToDate)}}async get(e){const t=await this.request.get(`/v5/accounts/subaccounts/${e}`);return{subaccount:this.convertToDate(t.body.subaccount)}}async create(e){const t=await this.request.postWithFD("/v5/accounts/subaccounts",{name:e});return{subaccount:this.convertToDate(t.body.subaccount)}}async destroy(e){try{this.request.setSubaccountHeader(e);const t=await this.request.delete("/v5/accounts/subaccounts");return this.request.resetSubaccountHeader(),t.body}catch(e){throw this.request.resetSubaccountHeader(),e}}async getMonthlySendingLimit(e){return(await this.request.get(`/v5/accounts/subaccounts/${e}/limit/custom/monthly`)).body}async setMonthlySendingLimit(e,t){const s={query:`limit=${t}`};return(await this.request.put(`/v5/accounts/subaccounts/${e}/limit/custom/monthly`,void 0,s)).body}async updateSubaccountFeature(e,t){const s=["email_preview","inbox_placement","sending","validations","validations_bulk"].reduce(((e,s)=>(s in t&&"boolean"==typeof t[s]&&(e[s]=JSON.stringify({enabled:t[s]})),e)),{});return(await this.request.put(`/v5/accounts/subaccounts/${e}/features`,s)).body}enable(e){return this.request.post(`/v5/accounts/subaccounts/${e}/enable`).then((e=>e.body))}disable(e){return this.request.post(`/v5/accounts/subaccounts/${e}/disable`).then((e=>e.body))}}class Ht{timeout;maxBodyLength;proxy;username;key;headers;useFetch;constructor({username:e,key:t,timeout:s,maxBodyLength:r,proxy:n,configHeaders:a,useFetch:o}){this.timeout=s,this.maxBodyLength=r,this.proxy=n,this.username=e,this.key=t,this.headers=this.makeHeadersFromObject(a),this.useFetch=o}async getResponseBody(e){const t={body:{},status:e?.status};if("string"==typeof e.data){if("Mailgun Magnificent API"===e.data)throw new u({status:400,statusText:"Incorrect url",body:e.data});t.body={message:e.data}}else t.body=e.data;return t}getDataRelatedHeaders(e){const t=e?.isFormURLEncoded??!0,s=e?.isMultipartFormData,r=e?.isApplicationJSON,n={};return t&&(n["Content-Type"]="application/x-www-form-urlencoded"),s&&(n["Content-Type"]="multipart/form-data"),r&&(n["Content-Type"]="application/json"),n}addRequestLevelHeaders(e){const t=new xt,s=Mt.encode(`${this.username}:${this.key}`);t.setAuthorization(`Basic ${s}`),t.set(this.headers);const r=this.getDataRelatedHeaders(e),n=this.makeHeadersFromObject(r);return t.set(n),t}makeHeadersFromObject(e={}){let t=new xt;return t=Object.entries(e).reduce(((e,t)=>{const[s,r]=t;return e.set(s,r),e}),t),t}setSubAccountHeader(e){this.headers.set(Wt.SUBACCOUNT_HEADER,e)}resetSubAccountHeader(){this.headers.delete(Wt.SUBACCOUNT_HEADER)}async makeRequest(e,t,s,r){let n;const a=this.addRequestLevelHeaders(r);try{const o={method:t.toLocaleUpperCase(),timeout:this.timeout,url:e,headers:a,...s,maxBodyLength:this.maxBodyLength,proxy:this.proxy};if(this.useFetch&&(o.adapter="fetch",r?.dataSize&&r.dataSize>0&&r.dataSize>this.maxBodyLength))throw new u({status:400,statusText:"(Fetch) Request body larger than maxBodyLength limit",body:`(Fetch) Request body size of ${r.dataSize} bytes exceeds the maximum allowed size of ${this.maxBodyLength} bytes`});n=await yt.request(o)}catch(e){const t=e;throw new u({status:t?.response?.status||400,statusText:t?.response?.statusText||t.code,body:t?.response?.data||t.message})}return await this.getResponseBody(n)}}class zt{url;formDataBuilder;requestProvider;constructor(e,t){this.url=e.url,this.formDataBuilder=new d(t,{useFetch:e.useFetch});const s={timeout:e.timeout,maxBodyLength:52428800,proxy:e.proxy,username:e.username,key:e.key,configHeaders:e.headers,useFetch:e.useFetch};this.requestProvider=new Ht(s)}async request(e,t,s,r){const n={...s},a={},o=i(this.url,t);return n?.query&&Object.getOwnPropertyNames(n?.query).length>0&&(a.params=n?.query?.searchParams?new URLSearchParams(n.query.searchParams):new URLSearchParams(n.query)),n?.body&&(a.data=n?.body),this.requestProvider.makeRequest(o,e.toUpperCase(),a,r)}setSubaccountHeader(e){this.requestProvider.setSubAccountHeader(e)}resetSubaccountHeader(){this.requestProvider.resetSubAccountHeader()}query(e,t,s){return this.request(e,t,{query:s})}command(e,t,s,r,n){const a={body:s,query:n?.query};return this.request(e,t,a,r)}get(e,t){return this.query("get",e,t)}post(e,t,s){return this.command("post",e,t,{isFormURLEncoded:!1,isApplicationJSON:s?.isApplicationJSON})}async postWithFD(e,t){const{formData:s,dataSize:r}=await this.formDataBuilder.createFormData(t);return this.command("post",e,s,{isFormURLEncoded:!1,isMultipartFormData:!0,dataSize:r})}async putWithFD(e,t){const{formData:s,dataSize:r}=await this.formDataBuilder.createFormData(t);return this.command("put",e,s,{isFormURLEncoded:!1,isMultipartFormData:!0,dataSize:r})}async patchWithFD(e,t){const{formData:s,dataSize:r}=await this.formDataBuilder.createFormData(t);return this.command("patch",e,s,{isFormURLEncoded:!1,isMultipartFormData:!0,dataSize:r})}put(e,t,s){return this.command("put",e,t,{},s)}delete(e,t){return this.command("delete",e,t)}}class Vt{name;require_tls;skip_verification;state;wildcard;spam_action;created_at;smtp_password;smtp_login;type;receiving_dns_records;sending_dns_records;id;is_disabled;web_prefix;web_scheme;use_automatic_sender_security;dkim_host;mailfrom_host;constructor(e,t,s){this.name=e.name,this.require_tls=e.require_tls,this.skip_verification=e.skip_verification,this.state=e.state,this.wildcard=e.wildcard,this.spam_action=e.spam_action,this.created_at=new Date(e.created_at),this.smtp_password=e.smtp_password,this.smtp_login=e.smtp_login,this.type=e.type,this.receiving_dns_records=t||null,this.sending_dns_records=s||null,this.id=e.id,this.is_disabled=e.is_disabled,this.web_prefix=e.web_prefix,this.web_scheme=e.web_scheme,this.use_automatic_sender_security=e.use_automatic_sender_security;const r=["dkim_host","mailfrom_host"].reduce(((t,s)=>{if(e[s]){t[s]=e[s]}return t}),{});Object.assign(this,r)}}class Jt{request;domainCredentials;domainTemplates;domainTags;domainTracking;logger;constructor(e,t,s,r,n,a=console){this.request=e,this.domainCredentials=t,this.domainTemplates=s,this.domainTags=r,this.logger=a,this.domainTracking=n}_handleBoolValues(e){const t=e,s=Object.keys(t).reduce(((e,s)=>{const r=s;if("boolean"==typeof t[r]){const s=t[r];e[r]="true"===s.toString()?"true":"false"}return e}),{});return{...e,...s}}_parseMessage(e){return e.body}parseDomainList(e){return e.body&&e.body.items?e.body.items.map((function(e){return new Vt(e)})):[]}_parseDomain(e){return new Vt(e.body.domain,e.body.receiving_dns_records,e.body.sending_dns_records)}list(e){return this.request.get("/v4/domains",e).then((e=>this.parseDomainList(e)))}get(e,t){const s=t?{"h:extended":t?.extended??!1,"h:with_dns":t?.with_dns??!0}:{};return this.request.get(`/v4/domains/${e}`,s).then((e=>this._parseDomain(e)))}create(e){const t=this._handleBoolValues(e);return this.request.postWithFD("/v4/domains",t).then((e=>this._parseDomain(e)))}update(e,t){const s=this._handleBoolValues(t);return this.request.putWithFD(`/v4/domains/${e}`,s).then((e=>this._parseDomain(e)))}verify(e){return this.request.put(`/v4/domains/${e}/verify`).then((e=>this._parseDomain(e)))}destroy(e){return this.request.delete(`/v3/domains/${e}`).then((e=>this._parseMessage(e)))}getConnection(e){return this.request.get(`/v3/domains/${e}/connection`).then((e=>e)).then((e=>e.body))}updateConnection(e,t){return this.request.put(`/v3/domains/${e}/connection`,t).then((e=>e)).then((e=>e.body))}getTracking(e){return this.logger.warn("\n 'domains.getTracking' method is deprecated, and will be removed. Please use 'domains.domainTracking.getTracking' instead.\n "),this.domainTracking.getTracking(e)}updateTracking(e,t,s){return this.logger.warn("\n 'domains.updateTracking' method is deprecated, and will be removed. Please use 'domains.domainTracking.updateTracking' instead.\n "),this.domainTracking.updateTracking(e,t,s)}getIps(e){return this.logger.warn('"domains.getIps" method is deprecated and will be removed in the future releases.'),this.request.get(i("/v3/domains",e,"ips")).then((e=>e?.body?.items))}assignIp(e,t){return this.logger.warn('"domains.assignIp" method is deprecated and will be removed in the future releases.'),this.request.postWithFD(i("/v3/domains",e,"ips"),{ip:t})}deleteIp(e,t){return this.logger.warn('"domains.deleteIp" method is deprecated and will be moved into the IpsClient in the future releases.'),this.request.delete(i("/v3/domains",e,"ips",t))}linkIpPool(e,t){return this.logger.warn('"domains.linkIpPool" method is deprecated, and will be removed in the future releases.'),this.request.postWithFD(i("/v3/domains",e,"ips"),{pool_id:t})}unlinkIpPoll(e,t){this.logger.warn('"domains.unlinkIpPoll" method is deprecated, and will be moved into the IpsClient in the future releases.');let s="";if(t.pool_id&&t.ip)throw u.getUserDataError("Too much data for replacement","Please specify either pool_id or ip (not both)");return t.pool_id?s=`?pool_id=${t.pool_id}`:t.ip&&(s=`?ip=${t.ip}`),this.request.delete(i("/v3/domains",e,"ips","ip_pool",s))}updateDKIMAuthority(e,t){const s={query:`self=${t.self}`};return this.request.put(`/v3/domains/${e}/dkim_authority`,{},s).then((e=>e)).then((e=>e.body))}async updateDKIMSelector(e,t){const s={query:`dkim_selector=${t.dkimSelector}`},r=await this.request.put(`/v3/domains/${e}/dkim_selector`,{},s);return{status:r.status,message:r?.body?.message}}updateWebPrefix(e,t){this.logger.warn('"domains.updateWebPrefix" method is deprecated, please use domains.update to set new "web_prefix". Current method will be removed in the future releases.');const s={query:`web_prefix=${t.webPrefix}`};return this.request.put(`/v3/domains/${e}/web_prefix`,{},s).then((e=>e))}}class Kt{request;constructor(e){e&&(this.request=e)}parsePage(e,t,s,r){const n=new URL(t),{searchParams:a}=n,o=t&&"string"==typeof t&&t.split(s).pop()||"";let i=null;return r&&(i=a.has(r)?a.get(r):void 0),{id:e,page:"?"===s?`?${o}`:o,iteratorPosition:i,url:t}}parsePageLinks(e,t,s){return Object.entries(e.body.paging).reduce(((e,[r,n])=>(e[r]=this.parsePage(r,n,t,s),e)),{})}updateUrlAndQuery(e,t){let s=e;const r={...t};return r.page&&(s=i(e,r.page),delete r.page),{url:s,updatedQuery:r}}async requestListWithPages(e,t,s){const{url:r,updatedQuery:n}=this.updateUrlAndQuery(e,t);if(this.request){const e=await this.request.get(r,n);return this.parseList(e,s)}throw new u({status:500,statusText:"Request property is empty",body:{message:""}})}}class Qt extends Kt{request;constructor(e){super(e),this.request=e}parseList(e){const t={};return t.items=e.body.items,t.pages=this.parsePageLinks(e,"/"),t.status=e.status,t}async get(e,t){return this.requestListWithPages(i("/v3",e,"events"),t)}}class Xt{start;end;resolution;stats;constructor(e){this.start=new Date(e.start),this.end=new Date(e.end),this.resolution=e.resolution,this.stats=e.stats.map((function(e){const t={...e};return t.time=new Date(e.time),t}))}}class Gt{request;logger;constructor(e,t=console){this.request=e,this.logger=t}convertDateToUTC(e,t){return this.logger.warn(`Date:"${t}" was auto-converted to UTC time zone.\nValue "${t.toUTCString()}" will be used for request.\nConsider using string type for property "${e}" to avoid auto-converting`),[e,t.toUTCString()]}prepareSearchParams(e){let t=[];return"object"==typeof e&&Object.keys(e).length&&(t=Object.entries(e).reduce(((e,t)=>{const[s,r]=t;if(Array.isArray(r)&&r.length){const t=r.map((e=>[s,e]));return[...e,...t]}return r instanceof Date?(e.push(this.convertDateToUTC(s,r)),e):("string"==typeof r&&e.push([s,r]),e)}),[])),t}parseStats(e){return new Xt(e.body)}getDomain(e,t){const s=this.prepareSearchParams(t);return this.request.get(i("/v3",e,"stats/total"),{searchParams:s}).then(this.parseStats)}getAccount(e){const t=this.prepareSearchParams(e);return this.request.get("/v3/stats/total",{searchParams:t}).then(this.parseStats)}}!function(e){e.HOUR="hour",e.DAY="day",e.MONTH="month"}(jt||(jt={})),function(e){e.BOUNCES="bounces",e.COMPLAINTS="complaints",e.UNSUBSCRIBES="unsubscribes",e.WHITELISTS="whitelists"}($t||($t={})),function(e){e.CLICKED="clicked",e.COMPLAINED="complained",e.DELIVERED="delivered",e.OPENED="opened",e.PERMANENT_FAIL="permanent_fail",e.TEMPORARY_FAIL="temporary_fail",e.UNSUBSCRIBED="unsubscribe"}(Nt||(Nt={})),function(e){e.YES="yes",e.NO="no"}(It||(It={}));class Yt{type;constructor(e){this.type=e}}class Zt extends Yt{address;code;error;created_at;constructor(e){super($t.BOUNCES),this.address=e.address,this.code=+e.code,this.error=e.error,this.created_at=new Date(e.created_at)}}class es extends Yt{address;created_at;constructor(e){super($t.COMPLAINTS),this.address=e.address,this.created_at=new Date(e.created_at)}}class ts extends Yt{address;tags;created_at;constructor(e){super($t.UNSUBSCRIBES),this.address=e.address,this.tags=e.tags,this.created_at=new Date(e.created_at)}}class ss extends Yt{value;reason;createdAt;constructor(e){super($t.WHITELISTS),this.value=e.value,this.reason=e.reason,this.createdAt=new Date(e.createdAt)}}class rs extends Kt{request;models;constructor(e){super(e),this.request=e,this.models={bounces:Zt,complaints:es,unsubscribes:ts,whitelists:ss}}parseList(e,t){const s={};return s.items=e.body.items?.map((e=>new t(e)))||[],s.pages=this.parsePageLinks(e,"?","address"),s.status=e.status,s}_parseItem(e,t){return new t(e)}createWhiteList(e,t,s){if(s)throw u.getUserDataError("Data property should be an object","Whitelist's creation process does not support multiple creations. Data property should be an object");return this.request.postWithFD(i("v3",e,"whitelists"),t).then(this.prepareResponse)}createUnsubscribe(e,t){if(Array.isArray(t)){if(t.some((e=>e.tag)))throw u.getUserDataError("Tag property should not be used for creating multiple unsubscribes.","Tag property can be used only if one unsubscribe provided as second argument of create method. Please use tags instead.");return this.request.post(i("v3",e,"unsubscribes"),JSON.stringify(t),{isApplicationJSON:!0}).then(this.prepareResponse)}if(t?.tags)throw u.getUserDataError("Tags property should not be used for creating one unsubscribe.","Tags property can be used if you provides an array of unsubscribes as second argument of create method. Please use tag instead");if(Array.isArray(t.tag))throw u.getUserDataError("Tag property can not be an array","Please use array of unsubscribes as second argument of create method to be able to provide few tags");return this.request.postWithFD(i("v3",e,"unsubscribes"),t).then(this.prepareResponse)}getModel(e){if(e in this.models)return this.models[e];throw u.getUserDataError("Unknown type value","Type may be only one of [bounces, complaints, unsubscribes, whitelists]")}prepareResponse(e){return{message:e.body.message,type:e.body.type||"",value:e.body.value||"",status:e.status}}async list(e,t,s){const r=this.getModel(t);return this.requestListWithPages(i("v3",e,t),s,r)}get(e,t,s){const r=this.getModel(t);return this.request.get(i("v3",e,t,encodeURIComponent(s))).then((e=>this._parseItem(e.body,r)))}create(e,t,s){let r;this.getModel(t);const n=Array.isArray(s);return"whitelists"===t?this.createWhiteList(e,s,n):"unsubscribes"===t?this.createUnsubscribe(e,s):(r=n?[...s]:[s],this.request.post(i("v3",e,t),JSON.stringify(r),{isApplicationJSON:!0}).then(this.prepareResponse))}destroy(e,t,s){return this.getModel(t),this.request.delete(i("v3",e,t,encodeURIComponent(s))).then((e=>({message:e.body.message,value:e.body.value||"",address:e.body.address||"",status:e.status})))}}class ns{id;url;urls;constructor(e,t,s){this.id=e,this.url=t,this.urls=s}}class as{request;constructor(e){this.request=e}_parseWebhookList(e){return e.body.webhooks}_parseWebhookWithID(e){return function(t){const s=t?.body?.webhook;let r=s?.url,n=s?.urls;return r||(r=n&&n.length?n[0]:void 0),n&&0!==n.length||!r||(n=[r]),new ns(e,r,n)}}_parseWebhookTest(e){return{code:e.body.code,message:e.body.message}}list(e,t){return this.request.get(i("/v3/domains",e,"webhooks"),t).then(this._parseWebhookList)}get(e,t){return this.request.get(i("/v3/domains",e,"webhooks",t)).then(this._parseWebhookWithID(t))}create(e,t,s,r=!1){return r?this.request.putWithFD(i("/v3/domains",e,"webhooks",t,"test"),{url:s}).then(this._parseWebhookTest):this.request.postWithFD(i("/v3/domains",e,"webhooks"),{id:t,url:s}).then(this._parseWebhookWithID(t))}update(e,t,s){return this.request.putWithFD(i("/v3/domains",e,"webhooks",t),{url:s}).then(this._parseWebhookWithID(t))}destroy(e,t){return this.request.delete(i("/v3/domains",e,"webhooks",t)).then(this._parseWebhookWithID(t))}}class os{request;constructor(e){this.request=e}prepareBooleanValues(e){const t=new Set(["o:testmode","t:text","o:dkim","o:tracking","o:tracking-clicks","o:tracking-opens","o:require-tls","o:skip-verification"]);if(!e||0===Object.keys(e).length)throw u.getUserDataError("Message data object can not be empty","Message data object can not be empty");return Object.keys(e).reduce(((s,r)=>(t.has(r)&&"boolean"==typeof e[r]?s[r]=e[r]?"yes":"no":s[r]=e[r],s)),{})}_parseResponse(e){return{status:e.status,...e.body}}create(e,t){if(t.message)return this.request.postWithFD(`/v3/${e}/messages.mime`,t).then(this._parseResponse);const s=this.prepareBooleanValues(t);return this.request.postWithFD(`/v3/${e}/messages`,s).then(this._parseResponse)}}class is{request;constructor(e){this.request=e}list(e){return this.request.get("/v3/routes",e).then((e=>e.body.items))}get(e){return this.request.get(`/v3/routes/${e}`).then((e=>e.body.route))}create(e){return this.request.postWithFD("/v3/routes",e).then((e=>e.body.route))}update(e,t){return this.request.putWithFD(`/v3/routes/${e}`,t).then((e=>e.body))}destroy(e){return this.request.delete(`/v3/routes/${e}`).then((e=>e.body))}}class us{multipleValidation;request;constructor(e,t){this.request=e,this.multipleValidation=t}async get(e){const t={address:e};return(await this.request.get("/v4/address/validate",t)).body}}class cs{request;constructor(e){this.request=e}async list(e){const t=await this.request.get("/v3/ips",e);return this.parseIpsResponse(t)}async get(e){const t=await this.request.get(`/v3/ips/${e}`);return this.parseIpsResponse(t)}parseIpsResponse(e){return e.body}}class ls{request;constructor(e){this.request=e}list(){return this.request.get("/v1/ip_pools").then((e=>this.parseIpPoolsResponse(e)))}async create(e){const t=await this.request.postWithFD("/v1/ip_pools",e);return{status:t.status,...t.body}}async update(e,t){const s=await this.request.patchWithFD(`/v1/ip_pools/${e}`,t);return{status:s.status,...s.body}}async delete(e,t){const s=await this.request.delete(`/v1/ip_pools/${e}`,t);return{status:s.status,...s.body}}parseIpPoolsResponse(e){return{status:e.status,...e.body}}}class ds extends Kt{baseRoute;request;members;constructor(e,t){super(e),this.request=e,this.baseRoute="/v3/lists",this.members=t}parseValidationResult(e,t){return{status:e,validationResult:{...t,created_at:new Date(1e3*t.created_at)}}}parseList(e){const t={};return t.items=e.body.items,t.pages=this.parsePageLinks(e,"?","address"),t.status=e.status,t}async list(e){return this.requestListWithPages(`${this.baseRoute}/pages`,e)}get(e){return this.request.get(`${this.baseRoute}/${e}`).then((e=>e.body.list))}create(e){return this.request.postWithFD(this.baseRoute,e).then((e=>e.body.list))}update(e,t){return this.request.putWithFD(`${this.baseRoute}/${e}`,t).then((e=>e.body.list))}destroy(e){return this.request.delete(`${this.baseRoute}/${e}`).then((e=>e.body))}validate(e){return this.request.post(`${this.baseRoute}/${e}/validate`,{}).then((e=>({status:e.status,...e.body})))}validationResult(e){return this.request.get(`${this.baseRoute}/${e}/validate`).then((e=>this.parseValidationResult(e.status,e.body)))}cancelValidation(e){return this.request.delete(`${this.baseRoute}/${e}/validate`).then((e=>({status:e.status,message:e.body.message})))}}class hs extends Kt{baseRoute;request;constructor(e){super(e),this.request=e,this.baseRoute="/v3/lists"}checkAndUpdateData(e){const t={...e};return"object"==typeof e.vars&&(t.vars=JSON.stringify(t.vars)),"boolean"==typeof e.subscribed&&(t.subscribed=e.subscribed?"yes":"no"),t}parseList(e){const t={};return t.items=e.body.items,t.pages=this.parsePageLinks(e,"?","address"),t}async listMembers(e,t){return this.requestListWithPages(`${this.baseRoute}/${e}/members/pages`,t)}getMember(e,t){return this.request.get(`${this.baseRoute}/${e}/members/${t}`).then((e=>e.body.member))}createMember(e,t){const s=this.checkAndUpdateData(t);return this.request.postWithFD(`${this.baseRoute}/${e}/members`,s).then((e=>e.body.member))}createMembers(e,t){const s={members:Array.isArray(t.members)?JSON.stringify(t.members):t.members,upsert:t.upsert};return this.request.postWithFD(`${this.baseRoute}/${e}/members.json`,s).then((e=>e.body))}updateMember(e,t,s){const r=this.checkAndUpdateData(s);return this.request.putWithFD(`${this.baseRoute}/${e}/members/${t}`,r).then((e=>e.body.member))}destroyMember(e,t){return this.request.delete(`${this.baseRoute}/${e}/members/${t}`).then((e=>e.body))}}class ps{baseRoute;request;constructor(e){this.request=e,this.baseRoute="/v3/domains/"}_parseDomainCredentialsList(e){return{items:e.body.items,totalCount:e.body.total_count}}_parseMessageResponse(e){return{status:e.status,message:e.body.message}}_parseDeletedResponse(e){return{status:e.status,message:e.body.message,spec:e.body.spec}}list(e,t){return this.request.get(i(this.baseRoute,e,"/credentials"),t).then((e=>this._parseDomainCredentialsList(e)))}create(e,t){return this.request.postWithFD(`${this.baseRoute}${e}/credentials`,t).then((e=>this._parseMessageResponse(e)))}update(e,t,s){return this.request.putWithFD(`${this.baseRoute}${e}/credentials/${t}`,s).then((e=>this._parseMessageResponse(e)))}destroy(e,t){return this.request.delete(`${this.baseRoute}${e}/credentials/${t}`).then((e=>this._parseDeletedResponse(e)))}}class fs{createdAt;id;quantity;recordsProcessed;status;downloadUrl;responseStatusCode;summary;constructor(e,t){this.createdAt=new Date(e.created_at),this.id=e.id,this.quantity=e.quantity,this.recordsProcessed=e.records_processed,this.status=e.status,this.responseStatusCode=t,e.download_url&&(this.downloadUrl={csv:e.download_url?.csv,json:e.download_url?.json}),e.summary&&(this.summary={result:{catchAll:e.summary.result.catch_all,deliverable:e.summary.result.deliverable,doNotSend:e.summary.result.do_not_send,undeliverable:e.summary.result.undeliverable,unknown:e.summary.result.unknown},risk:{high:e.summary.risk.high,low:e.summary.risk.low,medium:e.summary.risk.medium,unknown:e.summary.risk.unknown}})}}class ms extends Kt{request;attachmentsHandler;constructor(e){super(),this.request=e,this.attachmentsHandler=new l}handleResponse(e){return{status:e.status,...e?.body}}parseList(e){const t={};return t.jobs=e.body.jobs.map((t=>new fs(t,e.status))),t.pages=this.parsePageLinks(e,"?","pivot"),t.total=e.body.total,t.status=e.status,t}async list(e){return this.requestListWithPages("/v4/address/validate/bulk",e)}async get(e){const t=await this.request.get(`/v4/address/validate/bulk/${e}`);return new fs(t.body,t.status)}convertToExpectedShape(e){let t;return t=this.attachmentsHandler.isBuffer(e.file)?{multipleValidationFile:e.file}:"string"==typeof e.file?{multipleValidationFile:{data:e.file}}:(this.attachmentsHandler.isStream(e.file),{multipleValidationFile:e.file}),t}async create(e,t){if(!t||!t.file)throw u.getUserDataError('"file" property expected.','Make sure second argument has "file" property.');const s=this.convertToExpectedShape(t),r=await this.request.postWithFD(`/v4/address/validate/bulk/${e}`,s);return this.handleResponse(r)}async destroy(e){const t=await this.request.delete(`/v4/address/validate/bulk/${e}`);return this.handleResponse(t)}}class gs{name;description;createdAt;createdBy;id;version;versions;constructor(e){this.name=e.name,this.description=e.description,this.createdAt=e.createdAt?new Date(e.createdAt):"",this.createdBy=e.createdBy,this.id=e.id,e.version&&(this.version=e.version,this.version&&e.version.createdAt&&(this.version.createdAt=new Date(e.version.createdAt))),e.versions&&e.versions.length&&(this.versions=e.versions.map((e=>{const t={...e};return t.createdAt=new Date(e.createdAt),t})))}}class bs extends Kt{baseRoute;request;constructor(e){super(e),this.request=e,this.baseRoute="/v3/"}parseCreationResponse(e){return new gs(e.body.template)}parseCreationVersionResponse(e){const t={};return t.status=e.status,t.message=e.body.message,e.body&&e.body.template&&(t.template=new gs(e.body.template)),t}parseMutationResponse(e){const t={};return t.status=e.status,t.message=e.body.message,e.body&&e.body.template&&(t.templateName=e.body.template.name),t}parseNotificationResponse(e){const t={};return t.status=e.status,t.message=e.body.message,t}parseMutateTemplateVersionResponse(e){const t={};return t.status=e.status,t.message=e.body.message,e.body.template&&(t.templateName=e.body.template.name,t.templateVersion={tag:e.body.template.version.tag}),t}parseList(e){const t={};return t.items=e.body.items.map((e=>new gs(e))),t.pages=this.parsePageLinks(e,"?","p"),t.status=e.status,t}parseListTemplateVersions(e){const t={};return t.template=new gs(e.body.template),t.pages=this.parsePageLinks(e,"?","p"),t}async list(e,t){return this.requestListWithPages(i(this.baseRoute,e,"/templates"),t)}get(e,t,s){return this.request.get(i(this.baseRoute,e,"/templates/",t),s).then((e=>new gs(e.body.template)))}create(e,t){return this.request.postWithFD(i(this.baseRoute,e,"/templates"),t).then((e=>this.parseCreationResponse(e)))}update(e,t,s){return this.request.putWithFD(i(this.baseRoute,e,"/templates/",t),s).then((e=>this.parseMutationResponse(e)))}destroy(e,t){return this.request.delete(i(this.baseRoute,e,"/templates/",t)).then((e=>this.parseMutationResponse(e)))}destroyAll(e){return this.request.delete(i(this.baseRoute,e,"/templates")).then((e=>this.parseNotificationResponse(e)))}listVersions(e,t,s){return this.request.get(i(this.baseRoute,e,"/templates",t,"/versions"),s).then((e=>this.parseListTemplateVersions(e)))}getVersion(e,t,s){return this.request.get(i(this.baseRoute,e,"/templates/",t,"/versions/",s)).then((e=>new gs(e.body.template)))}createVersion(e,t,s){return this.request.postWithFD(i(this.baseRoute,e,"/templates/",t,"/versions"),s).then((e=>this.parseCreationVersionResponse(e)))}updateVersion(e,t,s,r){return this.request.putWithFD(i(this.baseRoute,e,"/templates/",t,"/versions/",s),r).then((e=>this.parseMutateTemplateVersionResponse(e)))}destroyVersion(e,t,s){return this.request.delete(i(this.baseRoute,e,"/templates/",t,"/versions/",s)).then((e=>this.parseMutateTemplateVersionResponse(e)))}}class ys{tag;description;"first-seen";"last-seen";constructor(e){this.tag=e.tag,this.description=e.description,this["first-seen"]=new Date(e["first-seen"]),this["last-seen"]=new Date(e["last-seen"])}}class ws{tag;description;start;end;resolution;stats;constructor(e){this.tag=e.body.tag,this.description=e.body.description,this.start=new Date(e.body.start),this.end=new Date(e.body.end),this.resolution=e.body.resolution,this.stats=e.body.stats.map((function(e){return{...e,time:new Date(e.time)}}))}}class vs extends Kt{baseRoute;request;constructor(e){super(e),this.request=e,this.baseRoute="/v3/"}parseList(e){const t={};return t.items=e.body.items.map((e=>new ys(e))),t.pages=this.parsePageLinks(e,"?","tag"),t.status=e.status,t}_parseTagStatistic(e){return new ws(e)}async list(e,t){return this.requestListWithPages(i(this.baseRoute,e,"/tags"),t)}get(e,t){return this.request.get(i(this.baseRoute,e,"/tags",t)).then((e=>new ys(e.body)))}update(e,t,s){return this.request.put(i(this.baseRoute,e,"/tags",t),{description:s}).then((e=>e.body))}destroy(e,t){return this.request.delete(`${this.baseRoute}${e}/tags/${t}`).then((e=>({message:e.body.message,status:e.status})))}statistic(e,t,s){return this.request.get(i(this.baseRoute,e,"/tags",t,"stats"),s).then((e=>this._parseTagStatistic(e)))}countries(e,t){return this.request.get(i(this.baseRoute,e,"/tags",t,"stats/aggregates/countries")).then((e=>e.body))}providers(e,t){return this.request.get(i(this.baseRoute,e,"/tags",t,"stats/aggregates/providers")).then((e=>e.body))}devices(e,t){return this.request.get(i(this.baseRoute,e,"/tags",t,"stats/aggregates/devices")).then((e=>e.body))}}class qs extends Kt{request;attributes;filters;logger;constructor(e,t,s,r=console){super(e),this.request=e,this.attributes=t,this.filters=s,this.logger=r}convertDateToUTC(e,t){return this.logger.warn(`Date: "${t}" was auto-converted to UTC time zone.\nValue "${t.toISOString()}" will be used for request.\nConsider using string type for property "${e}" to avoid auto-converting`),t.toISOString()}prepareQueryData(e){const t=e,s=Object.keys(t).reduce(((s,r)=>{const n=r;if(t[n]&&"object"==typeof t[n]){const t=e[n];s[n]=this.convertDateToUTC(n,t)}return s}),{});return{...e,...s}}prepareResult(e){let t={};return t={...this.prepareSeedList(e.body),status:e.status},t}prepareSeedList(e){let t;const s={created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),last_result_at:new Date(e.last_result_at)};t=e.Seeds?e.Seeds.map((e=>{let t={};const s={created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),max_email_count_hit_at:new Date(e.max_email_count_hit_at),last_sent_to_at:new Date(e.last_sent_to_at),last_delivered_at:new Date(e.last_delivered_at)};return t={...e,...s},t})):null;const r={...e,Seeds:t,...s};return delete r.Id,r}parseList(e){const t={items:[]};return t.items=e.body.items?.map((e=>this.prepareSeedList(e))),t.pages=this.parsePageLinks(e,"?","address"),t.status=e.status,t}async list(e){const t=this.prepareQueryData(e),s=await this.request.get("/v4/inbox/seedlists",t);return{...this.parseList(s),status:200}}async get(e){const t=await this.request.get(`/v4/inbox/seedlists/${e}`);return{...this.prepareSeedList(t.body.seedlist),status:t.status}}async create(e){const t=await this.request.postWithFD("/v4/inbox/seedlists",e);return this.prepareResult(t)}async update(e,t){const s=await this.request.put(`/v4/inbox/seedlists/${e}`,t);return this.prepareResult(s)}async destroy(e){return this.request.delete(`/v4/inbox/seedlists/${e}`)}}class Rs{request;seedsLists;results;providers;constructor(e,t,s,r){this.request=e,this.seedsLists=t,this.seedsLists=t,this.results=s,this.providers=r}async runTest(e){const t=await this.request.post("/v4/inbox/tests",e);return{...t.body,status:t.status}}}class _s extends Kt{request;attributes;filters;sharing;logger;constructor(e,t,s,r,n=console){super(e),this.request=e,this.attributes=t,this.filters=s,this.sharing=r,this.logger=n}convertDateToUTC(e,t){return this.logger.warn(`Date: "${t}" was auto-converted to UTC time zone.\nValue "${t.toISOString()}" will be used for request.\nConsider using string type for property "${e}" to avoid auto-converting`),t.toISOString()}prepareQueryData(e){const t=e,s=Object.keys(t).reduce(((s,r)=>{const n=r;if(t[n]&&"object"==typeof t[n]){const t=e[n];s[n]=this.convertDateToUTC(n,t)}return s}),{});return{...e,...s}}prepareInboxPlacementsResult(e){let t={};const s={created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),sharing_expires_at:new Date(e.sharing_expires_at)};e.Box&&(t={...e.Box,created_at:new Date(e.Box.created_at),updated_at:new Date(e.Box.updated_at),last_result_at:new Date(e.Box.last_result_at)},delete t.ID);const r={...e,Box:t,...s,id:e.Id};return delete r.ID,r}parseList(e){const t={};return t.items=e.body.items.map((e=>this.prepareInboxPlacementsResult(e))),t.pages=this.parsePageLinks(e,"?","address"),t.status=e.status,t}async list(e){const t=this.prepareQueryData(e),s=await this.request.get("/v4/inbox/results",{...t});return this.parseList(s)}async get(e){const t=await this.request.get(`/v4/inbox/results/${e}`),s=this.prepareInboxPlacementsResult(t.body.result);return{status:t.status,inboxPlacementResult:s}}async destroy(e){const t=await this.request.delete(`/v4/inbox/results/${e}`);return{status:t.status,...t.body}}async getResultByShareId(e){const t=await this.request.get(`/v4/inbox/sharing/public/${e}`),s=this.prepareInboxPlacementsResult(t.body.result);return{status:t.status,inboxPlacementResult:s}}}class Ss{request;path;constructor(e,t){this.path=t,this.request=e}async list(){const e=await this.request.get(this.path);return{items:e.body.items,status:e.status}}async get(e){const t=await this.request.get(`${this.path}/${e}`);return{...t.body,status:t.status}}}class Ds{request;path;constructor(e,t){this.request=e,this.path=t}async list(){const e=await this.request.get(this.path);return{status:e.status,supported_filters:e.body.supported_filters}}}class Ts{request;constructor(e){this.request=e}prepareInboxPlacementsResultSharing(e){const t={expires_at:new Date(e.expires_at)};return{...e,...t}}async get(e){const t=await this.request.get(`/v4/inbox/sharing/${e}`),s=this.prepareInboxPlacementsResultSharing(t.body.sharing);return{status:t.status,...s}}async update(e,t){const s={query:`enabled=${t.enabled}`},r=await this.request.put(`/v4/inbox/sharing/${e}`,{},s);return{...this.prepareInboxPlacementsResultSharing(r.body.sharing),status:r.status}}}class Es{request;path;constructor(e){this.path="/v4/inbox/providers",this.request=e}parseList(e){const t={};return t.items=e.body.items.map((e=>{const t={created_at:new Date(e.created_at),updated_at:new Date(e.updated_at)};return{...e,...t}})),t.status=e.status,t}async list(){const e=await this.request.get(this.path);return this.parseList(e)}}class Os{request;logger;constructor(e,t=console){this.request=e,this.logger=t}convertDateToUTC(e,t){return this.logger.warn(`Date:"${t}" was auto-converted to UTC time zone.\nValue "${t.toUTCString()}" will be used for request.\nConsider using string type for property "${e}" to avoid auto-converting`),t.toUTCString()}prepareQuery(e){let t,s;if(e){const r=e?.start,n=e?.end;t=r instanceof Date?this.convertDateToUTC("start",r):r??"",s=n&&n instanceof Date?this.convertDateToUTC("end",n):n??""}return{...e,start:t,end:s}}handleResponse(e){const t=e.body,s=Date.parse(t.start)?new Date(t.start):null,r=Date.parse(t.end)?new Date(t.end):null;return{...t,status:e.status,start:s,end:r}}async getAccount(e){const t=this.prepareQuery(e),s=await this.request.post("/v1/analytics/metrics",t);return this.handleResponse(s)}async getAccountUsage(e){const t=this.prepareQuery(e),s=await this.request.post("/v1/analytics/usage/metrics",t);return this.handleResponse(s)}}class As{request;constructor(e){this.request=e}_parseTrackingSettings(e){return e.body.tracking}_parseTrackingUpdate(e){return e.body}_isOpenTrackingInfoWitPlace(e){return"object"==typeof e&&"place_at_the_top"in e}async get(e){const t=await this.request.get(`/v2/x509/${e}/status`);return{...t.body,responseStatusCode:t.status}}async generate(e){const t=await this.request.post(`/v2/x509/${e}`);return{...t.body,status:t.status}}async regenerate(e){const t=await this.request.put(`/v2/x509/${e}`);return{...t.body,status:t.status}}async getTracking(e){const t=await this.request.get(i("/v3/domains",e,"tracking"));return this._parseTrackingSettings(t)}async updateTracking(e,t,s){const r={...s};"boolean"==typeof s?.active&&(r.active=s?.active?"yes":"no"),this._isOpenTrackingInfoWitPlace(s)&&"boolean"==typeof s?.place_at_the_top&&(r.place_at_the_top=s?.place_at_the_top?"yes":"no");const n=await this.request.putWithFD(i("/v3/domains",e,"tracking",t),r);return this._parseTrackingUpdate(n)}}class xs{request;domains;webhooks;events;stats;metrics;suppressions;messages;routes;validate;ips;ip_pools;lists;subaccounts;inboxPlacements;constructor(e,t){const s={...e};if(s.url||(s.url="https://api.mailgun.net"),!s.username)throw new Error('Parameter "username" is required');if(!s.key)throw new Error('Parameter "key" is required');if(s.useFetch&&s.proxy)throw new Error("Proxy can not be used with fetch provider");this.request=new zt(s,t);const r=new hs(this.request),n=new ps(this.request),a=new bs(this.request),o=new vs(this.request),i=new As(this.request),u=new ms(this.request),c=new Ts(this.request),l=new Ss(this.request,"/v4/inbox/seedlists/a"),d=new Ss(this.request,"/v4/inbox/results/a"),h=new Ds(this.request,"/v4/inbox/seedlists/_filters"),p=new Ds(this.request,"/v4/inbox/results/_filters"),f=new qs(this.request,l,h),m=new _s(this.request,d,p,c),g=new Es(this.request);this.domains=new Jt(this.request,n,a,o,i),this.webhooks=new as(this.request),this.events=new Qt(this.request),this.stats=new Gt(this.request),this.metrics=new Os(this.request),this.suppressions=new rs(this.request),this.messages=new os(this.request),this.routes=new is(this.request),this.ips=new cs(this.request),this.ip_pools=new ls(this.request),this.lists=new ds(this.request,r),this.validate=new us(this.request,u),this.subaccounts=new Wt(this.request),this.inboxPlacements=new Rs(this.request,f,m,g)}setSubaccount(e){this.request?.setSubaccountHeader(e)}resetSubaccount(){this.request?.resetSubaccountHeader()}}class ks{static get default(){return this}formData;constructor(e){this.formData=e}client(e){return new xs(e,this.formData)}}export{ks as default};
|
|
1
|
+
var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var s,r={exports:{}};var n,a,o,i=t((s||(s=1,a=r.exports,o=function(){return function(){return function(e){var t=[];if(0===e.length)return"";if("string"!=typeof e[0])throw new TypeError("Url must be a string. Received "+e[0]);if(e[0].match(/^[^/:]+:\/*$/)&&e.length>1){var s=e.shift();e[0]=s+e[0]}e[0].match(/^file:\/\/\//)?e[0]=e[0].replace(/^([^/:]+):\/*/,"$1:///"):e[0]=e[0].replace(/^([^/:]+):\/*/,"$1://");for(var r=0;r<e.length;r++){var n=e[r];if("string"!=typeof n)throw new TypeError("Url must be a string. Received "+n);""!==n&&(r>0&&(n=n.replace(/^[\/]+/,"")),n=r<e.length-1?n.replace(/[\/]+$/,""):n.replace(/[\/]+$/,"/"),t.push(n))}var a=t.join("/"),o=(a=a.replace(/\/(\?|&|#[^!])/g,"$1")).split("?");return o.shift()+(o.length>0?"?":"")+o.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}},(n=r).exports?n.exports=o():a.urljoin=o()),r.exports));class u extends Error{status;stack;details;type;static isApiError(e){return"object"==typeof e&&"MailgunAPIError"===e?.type}static getUserDataError(e,t){return new this({status:400,statusText:e,body:{message:t}})}constructor({status:e,statusText:t,message:s,body:r={}}){let n="",a="";"string"==typeof r?n=r:(n=r?.message||"",a=r?.error||""),super(),this.stack="",this.status=e,this.message=s||a||t||"",this.details=n,this.type="MailgunAPIError"}}class c{_stream;size;constructor(e,t){this._stream=e,this.size=t}stream(){return this._stream}get[Symbol.toStringTag](){return"Blob"}}class l{getAttachmentOptions(e){const{filename:t,contentType:s,knownLength:r}=e;return{...t?{filename:t}:{filename:"file"},...s&&{contentType:s},...r&&{knownLength:r}}}getFileInfo(e){const{name:t,type:s,size:r}=e;return this.getAttachmentOptions({filename:t,contentType:s,knownLength:r})}getCustomFileInfo(e){const{filename:t,contentType:s,knownLength:r}=e;return this.getAttachmentOptions({filename:t,contentType:s,knownLength:r})}getBufferInfo(e){const{byteLength:t}=e;return this.getAttachmentOptions({filename:"file",contentType:"",knownLength:t})}isStream(e){return"object"==typeof e&&"function"==typeof e.pipe}isCustomFile(e){return"object"==typeof e&&!!e.data}isBrowserFile(e){return"object"==typeof e&&(!!e.name||"undefined"!=typeof Blob&&e instanceof Blob)}isBuffer(e){return"undefined"!=typeof Buffer&&Buffer.isBuffer(e)}getAttachmentInfo(e){const t=this.isBrowserFile(e),s=this.isCustomFile(e);if(!("string"==typeof e)){if(t)return this.getFileInfo(e);if("undefined"!=typeof Buffer&&Buffer.isBuffer(e))return this.getBufferInfo(e);if(s)return this.getCustomFileInfo(e)}return{filename:"file",contentType:void 0,knownLength:void 0}}convertToFDexpectedShape(e){const t=this.isStream(e),s=this.isBrowserFile(e),r=this.isCustomFile(e);let n;if(t||"string"==typeof e||s||this.isBuffer(e))n=e;else{if(!r)throw u.getUserDataError("Unknown attachment type "+typeof e,'The "attachment" property expects either Buffer, Blob, or String.\n Also, It is possible to provide an object that has the property "data" with a value that is equal to one of the types counted before.\n Additionally, you may use an array to send more than one attachment.');n=e.data}return n}getBlobFromStream(e,t){return new c(e,t)}}class d{FormDataConstructor;fileKeys;attachmentsHandler;useFetch;constructor(e,t){this.FormDataConstructor=e,this.fileKeys=["attachment","inline","multipleValidationFile"],this.attachmentsHandler=new l,this.useFetch=t?.useFetch}async createFormData(e){if(!e)throw new Error("Please provide data object");const t=new this.FormDataConstructor,s=this.isFormDataPackage(t);if(s&&this.useFetch)throw u.getUserDataError('"form-data" npm package detected, and it can not be used together with "fetch" client',"fetch client does not recognize object created by form-data package as valid FormData instance");const r=Object.keys(e).filter((function(t){return e[t]})).reduce(((t,s)=>{if(this.fileKeys.includes(s)){const r=e[s];if(this.isMessageAttachment(r))return this.addFilesToFD(s,r,t),t;throw u.getUserDataError(`Unknown value ${e[s]} with type ${typeof e[s]} for property "${s}"`,`The key "${s}" should have type of Buffer, Stream, File, or String `)}if("message"===s){const r=e[s];if(!r||!this.isMIME(r))throw u.getUserDataError(`Unknown data type for "${s}" property`,"The mime data should have type of Buffer, String or Blob");return this.addMimeDataToFD(s,r,t),t}return this.addCommonPropertyToFD(s,e[s],t),t}),t),n={formData:r,dataSize:0};if(this.useFetch&&!s&&(Object.defineProperty(r,"getHeaders",{value:()=>({"Content-Type":void 0})}),void 0!==Response)){const e=new Response(r),t=await e.blob();n.dataSize=t.size}return n}addMimeDataToFD(e,t,s){if("string"!=typeof t){if(this.isFormDataPackage(s)){s.append(e,t,{filename:"MimeMessage"})}else if(void 0!==typeof Blob){const r=s;if(t instanceof Blob)return void r.append(e,t,"MimeMessage");if(this.attachmentsHandler.isBuffer(t)){const s=new Blob([t]);r.append(e,s,"MimeMessage")}}}else s.append(e,t)}isMIME(e){return"string"==typeof e||"undefined"!=typeof Blob&&e instanceof Blob||this.attachmentsHandler.isBuffer(e)||"undefined"!=typeof ReadableStream&&e instanceof ReadableStream}isFormDataPackage(e){return"object"==typeof e&&null!==e&&"function"==typeof e.getHeaders}isMessageAttachment(e){return this.attachmentsHandler.isCustomFile(e)||"string"==typeof e||"undefined"!=typeof File&&e instanceof File||"undefined"!=typeof Blob&&e instanceof Blob||this.attachmentsHandler.isBuffer(e)||this.attachmentsHandler.isStream(e)||Array.isArray(e)&&e.every((t=>this.attachmentsHandler.isCustomFile(t)||"undefined"!=typeof File&&t instanceof File||"undefined"!=typeof Blob&&e instanceof Blob||this.attachmentsHandler.isBuffer(t)||this.attachmentsHandler.isStream(t)))}addFilesToFD(e,t,s){const r=(e,t,r)=>{const n="multipleValidationFile"===e?"file":e,a=this.attachmentsHandler.convertToFDexpectedShape(t),o=this.attachmentsHandler.getAttachmentInfo(t);if(this.isFormDataPackage(r)){const e=r,t="string"==typeof a?Buffer.from(a):a;e.append(n,t,o)}else if(void 0!==typeof Blob){const e=s;if("string"==typeof a||this.attachmentsHandler.isBuffer(a)){const t=new Blob([a]);return void e.append(n,t,o.filename)}if(a instanceof Blob)return void e.append(n,a,o.filename);if(this.attachmentsHandler.isStream(a)){const t=this.attachmentsHandler.getBlobFromStream(a,o.knownLength);e.set(n,t,o.filename)}}};Array.isArray(t)?t.forEach((function(t){r(e,t,s)})):r(e,t,s)}addCommonPropertyToFD(e,t,s){const r=(e,t)=>{if(this.isFormDataPackage(s))return"object"==typeof t?(console.warn('The received value is an object. \n"JSON.Stringify" will be used to avoid TypeError \nTo remove this warning: \nConsider switching to built-in FormData or converting the value on your own.\n'),s.append(e,JSON.stringify(t))):s.append(e,t);if("string"==typeof t)return s.append(e,t);if(void 0!==typeof Blob&&t instanceof Blob)return s.append(e,t);throw u.getUserDataError("Unknown value type for Form Data. String or Blob expected","Browser compliant FormData allows only string or Blob values for properties that are not attachments.")};Array.isArray(t)?t.forEach((function(t){r(e,t)})):null!=t&&r(e,t)}}function h(e,t){return function(){return e.apply(t,arguments)}}const{toString:p}=Object.prototype,{getPrototypeOf:f}=Object,{iterator:m,toStringTag:g}=Symbol,y=(b=Object.create(null),e=>{const t=p.call(e);return b[t]||(b[t]=t.slice(8,-1).toLowerCase())});var b;const w=e=>(e=e.toLowerCase(),t=>y(t)===e),v=e=>t=>typeof t===e,{isArray:q}=Array,_=v("undefined");function R(e){return null!==e&&!_(e)&&null!==e.constructor&&!_(e.constructor)&&E(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const S=w("ArrayBuffer");const D=v("string"),E=v("function"),T=v("number"),O=e=>null!==e&&"object"==typeof e,A=e=>{if("object"!==y(e))return!1;const t=f(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||g in e||m in e)},k=w("Date"),x=w("File"),F=w("Blob"),C=w("FileList"),P=w("URLSearchParams"),[L,U,B,j]=["ReadableStream","Request","Response","Headers"].map(w);function $(e,t,{allOwnKeys:s=!1}={}){if(null==e)return;let r,n;if("object"!=typeof e&&(e=[e]),q(e))for(r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else{if(R(e))return;const n=s?Object.getOwnPropertyNames(e):Object.keys(e),a=n.length;let o;for(r=0;r<a;r++)o=n[r],t.call(null,e[o],o,e)}}function N(e,t){if(R(e))return null;t=t.toLowerCase();const s=Object.keys(e);let r,n=s.length;for(;n-- >0;)if(r=s[n],t===r.toLowerCase())return r;return null}const I="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,M=e=>!_(e)&&e!==I;const W=(H="undefined"!=typeof Uint8Array&&f(Uint8Array),e=>H&&e instanceof H);var H;const z=w("HTMLFormElement"),V=(({hasOwnProperty:e})=>(t,s)=>e.call(t,s))(Object.prototype),K=w("RegExp"),J=(e,t)=>{const s=Object.getOwnPropertyDescriptors(e),r={};$(s,((s,n)=>{let a;!1!==(a=t(s,n,e))&&(r[n]=a||s)})),Object.defineProperties(e,r)};const Q=w("AsyncFunction"),X=(G="function"==typeof setImmediate,Y=E(I.postMessage),G?setImmediate:Y?(Z=`axios@${Math.random()}`,ee=[],I.addEventListener("message",(({source:e,data:t})=>{e===I&&t===Z&&ee.length&&ee.shift()()}),!1),e=>{ee.push(e),I.postMessage(Z,"*")}):e=>setTimeout(e));var G,Y,Z,ee;const te="undefined"!=typeof queueMicrotask?queueMicrotask.bind(I):"undefined"!=typeof process&&process.nextTick||X;var se={isArray:q,isArrayBuffer:S,isBuffer:R,isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||E(e.append)&&("formdata"===(t=y(e))||"object"===t&&E(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&S(e.buffer),t},isString:D,isNumber:T,isBoolean:e=>!0===e||!1===e,isObject:O,isPlainObject:A,isEmptyObject:e=>{if(!O(e)||R(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:L,isRequest:U,isResponse:B,isHeaders:j,isUndefined:_,isDate:k,isFile:x,isBlob:F,isRegExp:K,isFunction:E,isStream:e=>O(e)&&E(e.pipe),isURLSearchParams:P,isTypedArray:W,isFileList:C,forEach:$,merge:function e(){const{caseless:t,skipUndefined:s}=M(this)&&this||{},r={},n=(n,a)=>{const o=t&&N(r,a)||a;A(r[o])&&A(n)?r[o]=e(r[o],n):A(n)?r[o]=e({},n):q(n)?r[o]=n.slice():s&&_(n)||(r[o]=n)};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&$(arguments[e],n);return r},extend:(e,t,s,{allOwnKeys:r}={})=>($(t,((t,r)=>{s&&E(t)?e[r]=h(t,s):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,s,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),s&&Object.assign(e.prototype,s)},toFlatObject:(e,t,s,r)=>{let n,a,o;const i={};if(t=t||{},null==e)return t;do{for(n=Object.getOwnPropertyNames(e),a=n.length;a-- >0;)o=n[a],r&&!r(o,e,t)||i[o]||(t[o]=e[o],i[o]=!0);e=!1!==s&&f(e)}while(e&&(!s||s(e,t))&&e!==Object.prototype);return t},kindOf:y,kindOfTest:w,endsWith:(e,t,s)=>{e=String(e),(void 0===s||s>e.length)&&(s=e.length),s-=t.length;const r=e.indexOf(t,s);return-1!==r&&r===s},toArray:e=>{if(!e)return null;if(q(e))return e;let t=e.length;if(!T(t))return null;const s=new Array(t);for(;t-- >0;)s[t]=e[t];return s},forEachEntry:(e,t)=>{const s=(e&&e[m]).call(e);let r;for(;(r=s.next())&&!r.done;){const s=r.value;t.call(e,s[0],s[1])}},matchAll:(e,t)=>{let s;const r=[];for(;null!==(s=e.exec(t));)r.push(s);return r},isHTMLForm:z,hasOwnProperty:V,hasOwnProp:V,reduceDescriptors:J,freezeMethods:e=>{J(e,((t,s)=>{if(E(e)&&-1!==["arguments","caller","callee"].indexOf(s))return!1;const r=e[s];E(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")}))}))},toObjectSet:(e,t)=>{const s={},r=e=>{e.forEach((e=>{s[e]=!0}))};return q(e)?r(e):r(String(e).split(t)),s},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,s){return t.toUpperCase()+s})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:N,global:I,isContextDefined:M,isSpecCompliantForm:function(e){return!!(e&&E(e.append)&&"FormData"===e[g]&&e[m])},toJSONObject:e=>{const t=new Array(10),s=(e,r)=>{if(O(e)){if(t.indexOf(e)>=0)return;if(R(e))return e;if(!("toJSON"in e)){t[r]=e;const n=q(e)?[]:{};return $(e,((e,t)=>{const a=s(e,r+1);!_(a)&&(n[t]=a)})),t[r]=void 0,n}}return e};return s(e,0)},isAsyncFn:Q,isThenable:e=>e&&(O(e)||E(e))&&E(e.then)&&E(e.catch),setImmediate:X,asap:te,isIterable:e=>null!=e&&E(e[m])};function re(e,t,s,r,n){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),s&&(this.config=s),r&&(this.request=r),n&&(this.response=n,this.status=n.status?n.status:null)}se.inherits(re,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:se.toJSONObject(this.config),code:this.code,status:this.status}}});const ne=re.prototype,ae={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{ae[e]={value:e}})),Object.defineProperties(re,ae),Object.defineProperty(ne,"isAxiosError",{value:!0}),re.from=(e,t,s,r,n,a)=>{const o=Object.create(ne);se.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e));const i=e&&e.message?e.message:"Error",u=null==t&&e?e.code:t;return re.call(o,i,u,s,r,n),e&&null==o.cause&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",a&&Object.assign(o,a),o};function oe(e){return se.isPlainObject(e)||se.isArray(e)}function ie(e){return se.endsWith(e,"[]")?e.slice(0,-2):e}function ue(e,t,s){return e?e.concat(t).map((function(e,t){return e=ie(e),!s&&t?"["+e+"]":e})).join(s?".":""):t}const ce=se.toFlatObject(se,{},null,(function(e){return/^is[A-Z]/.test(e)}));function le(e,t,s){if(!se.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(s=se.toFlatObject(s,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!se.isUndefined(t[e])}))).metaTokens,n=s.visitor||c,a=s.dots,o=s.indexes,i=(s.Blob||"undefined"!=typeof Blob&&Blob)&&se.isSpecCompliantForm(t);if(!se.isFunction(n))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(se.isDate(e))return e.toISOString();if(se.isBoolean(e))return e.toString();if(!i&&se.isBlob(e))throw new re("Blob is not supported. Use a Buffer instead.");return se.isArrayBuffer(e)||se.isTypedArray(e)?i&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,s,n){let i=e;if(e&&!n&&"object"==typeof e)if(se.endsWith(s,"{}"))s=r?s:s.slice(0,-2),e=JSON.stringify(e);else if(se.isArray(e)&&function(e){return se.isArray(e)&&!e.some(oe)}(e)||(se.isFileList(e)||se.endsWith(s,"[]"))&&(i=se.toArray(e)))return s=ie(s),i.forEach((function(e,r){!se.isUndefined(e)&&null!==e&&t.append(!0===o?ue([s],r,a):null===o?s:s+"[]",u(e))})),!1;return!!oe(e)||(t.append(ue(n,s,a),u(e)),!1)}const l=[],d=Object.assign(ce,{defaultVisitor:c,convertValue:u,isVisitable:oe});if(!se.isObject(e))throw new TypeError("data must be an object");return function e(s,r){if(!se.isUndefined(s)){if(-1!==l.indexOf(s))throw Error("Circular reference detected in "+r.join("."));l.push(s),se.forEach(s,(function(s,a){!0===(!(se.isUndefined(s)||null===s)&&n.call(t,s,se.isString(a)?a.trim():a,r,d))&&e(s,r?r.concat(a):[a])})),l.pop()}}(e),t}function de(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function he(e,t){this._pairs=[],e&&le(e,this,t)}const pe=he.prototype;function fe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function me(e,t,s){if(!t)return e;const r=s&&s.encode||fe;se.isFunction(s)&&(s={serialize:s});const n=s&&s.serialize;let a;if(a=n?n(t,s):se.isURLSearchParams(t)?t.toString():new he(t,s).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}pe.append=function(e,t){this._pairs.push([e,t])},pe.toString=function(e){const t=e?function(t){return e.call(this,t,de)}:de;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class ge{constructor(){this.handlers=[]}use(e,t,s){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!s&&s.synchronous,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){se.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var ye={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},be={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:he,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const we="undefined"!=typeof window&&"undefined"!=typeof document,ve="object"==typeof navigator&&navigator||void 0,qe=we&&(!ve||["ReactNative","NativeScript","NS"].indexOf(ve.product)<0),_e="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Re=we&&window.location.href||"http://localhost";var Se={...Object.freeze({__proto__:null,hasBrowserEnv:we,hasStandardBrowserEnv:qe,hasStandardBrowserWebWorkerEnv:_e,navigator:ve,origin:Re}),...be};function De(e){function t(e,s,r,n){let a=e[n++];if("__proto__"===a)return!0;const o=Number.isFinite(+a),i=n>=e.length;if(a=!a&&se.isArray(r)?r.length:a,i)return se.hasOwnProp(r,a)?r[a]=[r[a],s]:r[a]=s,!o;r[a]&&se.isObject(r[a])||(r[a]=[]);return t(e,s,r[a],n)&&se.isArray(r[a])&&(r[a]=function(e){const t={},s=Object.keys(e);let r;const n=s.length;let a;for(r=0;r<n;r++)a=s[r],t[a]=e[a];return t}(r[a])),!o}if(se.isFormData(e)&&se.isFunction(e.entries)){const s={};return se.forEachEntry(e,((e,r)=>{t(function(e){return se.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,s,0)})),s}return null}const Ee={transitional:ye,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const s=t.getContentType()||"",r=s.indexOf("application/json")>-1,n=se.isObject(e);n&&se.isHTMLForm(e)&&(e=new FormData(e));if(se.isFormData(e))return r?JSON.stringify(De(e)):e;if(se.isArrayBuffer(e)||se.isBuffer(e)||se.isStream(e)||se.isFile(e)||se.isBlob(e)||se.isReadableStream(e))return e;if(se.isArrayBufferView(e))return e.buffer;if(se.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(n){if(s.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return le(e,new Se.classes.URLSearchParams,{visitor:function(e,t,s,r){return Se.isNode&&se.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...t})}(e,this.formSerializer).toString();if((a=se.isFileList(e))||s.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return le(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return n||r?(t.setContentType("application/json",!1),function(e,t,s){if(se.isString(e))try{return(t||JSON.parse)(e),se.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(s||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Ee.transitional,s=t&&t.forcedJSONParsing,r="json"===this.responseType;if(se.isResponse(e)||se.isReadableStream(e))return e;if(e&&se.isString(e)&&(s&&!this.responseType||r)){const s=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e,this.parseReviver)}catch(e){if(s){if("SyntaxError"===e.name)throw re.from(e,re.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Se.classes.FormData,Blob:Se.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};se.forEach(["delete","get","head","post","put","patch"],(e=>{Ee.headers[e]={}}));const Te=se.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Oe=Symbol("internals");function Ae(e){return e&&String(e).trim().toLowerCase()}function ke(e){return!1===e||null==e?e:se.isArray(e)?e.map(ke):String(e)}function xe(e,t,s,r,n){return se.isFunction(r)?r.call(this,t,s):(n&&(t=s),se.isString(t)?se.isString(r)?-1!==t.indexOf(r):se.isRegExp(r)?r.test(t):void 0:void 0)}let Fe=class{constructor(e){e&&this.set(e)}set(e,t,s){const r=this;function n(e,t,s){const n=Ae(t);if(!n)throw new Error("header name must be a non-empty string");const a=se.findKey(r,n);(!a||void 0===r[a]||!0===s||void 0===s&&!1!==r[a])&&(r[a||t]=ke(e))}const a=(e,t)=>se.forEach(e,((e,s)=>n(e,s,t)));if(se.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(se.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))a((e=>{const t={};let s,r,n;return e&&e.split("\n").forEach((function(e){n=e.indexOf(":"),s=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!s||t[s]&&Te[s]||("set-cookie"===s?t[s]?t[s].push(r):t[s]=[r]:t[s]=t[s]?t[s]+", "+r:r)})),t})(e),t);else if(se.isObject(e)&&se.isIterable(e)){let s,r,n={};for(const t of e){if(!se.isArray(t))throw TypeError("Object iterator must return a key-value pair");n[r=t[0]]=(s=n[r])?se.isArray(s)?[...s,t[1]]:[s,t[1]]:t[1]}a(n,t)}else null!=e&&n(t,e,s);return this}get(e,t){if(e=Ae(e)){const s=se.findKey(this,e);if(s){const e=this[s];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=s.exec(e);)t[r[1]]=r[2];return t}(e);if(se.isFunction(t))return t.call(this,e,s);if(se.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ae(e)){const s=se.findKey(this,e);return!(!s||void 0===this[s]||t&&!xe(0,this[s],s,t))}return!1}delete(e,t){const s=this;let r=!1;function n(e){if(e=Ae(e)){const n=se.findKey(s,e);!n||t&&!xe(0,s[n],n,t)||(delete s[n],r=!0)}}return se.isArray(e)?e.forEach(n):n(e),r}clear(e){const t=Object.keys(this);let s=t.length,r=!1;for(;s--;){const n=t[s];e&&!xe(0,this[n],n,e,!0)||(delete this[n],r=!0)}return r}normalize(e){const t=this,s={};return se.forEach(this,((r,n)=>{const a=se.findKey(s,n);if(a)return t[a]=ke(r),void delete t[n];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,s)=>t.toUpperCase()+s))}(n):String(n).trim();o!==n&&delete t[n],t[o]=ke(r),s[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return se.forEach(this,((s,r)=>{null!=s&&!1!==s&&(t[r]=e&&se.isArray(s)?s.join(", "):s)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const s=new this(e);return t.forEach((e=>s.set(e))),s}static accessor(e){const t=(this[Oe]=this[Oe]={accessors:{}}).accessors,s=this.prototype;function r(e){const r=Ae(e);t[r]||(!function(e,t){const s=se.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+s,{value:function(e,s,n){return this[r].call(this,t,e,s,n)},configurable:!0})}))}(s,e),t[r]=!0)}return se.isArray(e)?e.forEach(r):r(e),this}};function Ce(e,t){const s=this||Ee,r=t||s,n=Fe.from(r.headers);let a=r.data;return se.forEach(e,(function(e){a=e.call(s,a,n.normalize(),t?t.status:void 0)})),n.normalize(),a}function Pe(e){return!(!e||!e.__CANCEL__)}function Le(e,t,s){re.call(this,null==e?"canceled":e,re.ERR_CANCELED,t,s),this.name="CanceledError"}function Ue(e,t,s){const r=s.config.validateStatus;s.status&&r&&!r(s.status)?t(new re("Request failed with status code "+s.status,[re.ERR_BAD_REQUEST,re.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s)):e(s)}Fe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),se.reduceDescriptors(Fe.prototype,(({value:e},t)=>{let s=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[s]=e}}})),se.freezeMethods(Fe),se.inherits(Le,re,{__CANCEL__:!0});const Be=(e,t,s=3)=>{let r=0;const n=function(e,t){e=e||10;const s=new Array(e),r=new Array(e);let n,a=0,o=0;return t=void 0!==t?t:1e3,function(i){const u=Date.now(),c=r[o];n||(n=u),s[a]=i,r[a]=u;let l=o,d=0;for(;l!==a;)d+=s[l++],l%=e;if(a=(a+1)%e,a===o&&(o=(o+1)%e),u-n<t)return;const h=c&&u-c;return h?Math.round(1e3*d/h):void 0}}(50,250);return function(e,t){let s,r,n=0,a=1e3/t;const o=(t,a=Date.now())=>{n=a,s=null,r&&(clearTimeout(r),r=null),e(...t)};return[(...e)=>{const t=Date.now(),i=t-n;i>=a?o(e,t):(s=e,r||(r=setTimeout((()=>{r=null,o(s)}),a-i)))},()=>s&&o(s)]}((s=>{const a=s.loaded,o=s.lengthComputable?s.total:void 0,i=a-r,u=n(i);r=a;e({loaded:a,total:o,progress:o?a/o:void 0,bytes:i,rate:u||void 0,estimated:u&&o&&a<=o?(o-a)/u:void 0,event:s,lengthComputable:null!=o,[t?"download":"upload"]:!0})}),s)},je=(e,t)=>{const s=null!=e;return[r=>t[0]({lengthComputable:s,total:e,loaded:r}),t[1]]},$e=e=>(...t)=>se.asap((()=>e(...t)));var Ne=Se.hasStandardBrowserEnv?((e,t)=>s=>(s=new URL(s,Se.origin),e.protocol===s.protocol&&e.host===s.host&&(t||e.port===s.port)))(new URL(Se.origin),Se.navigator&&/(msie|trident)/i.test(Se.navigator.userAgent)):()=>!0,Ie=Se.hasStandardBrowserEnv?{write(e,t,s,r,n,a){const o=[e+"="+encodeURIComponent(t)];se.isNumber(s)&&o.push("expires="+new Date(s).toGMTString()),se.isString(r)&&o.push("path="+r),se.isString(n)&&o.push("domain="+n),!0===a&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Me(e,t,s){let r=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);return e&&(r||0==s)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const We=e=>e instanceof Fe?{...e}:e;function He(e,t){t=t||{};const s={};function r(e,t,s,r){return se.isPlainObject(e)&&se.isPlainObject(t)?se.merge.call({caseless:r},e,t):se.isPlainObject(t)?se.merge({},t):se.isArray(t)?t.slice():t}function n(e,t,s,n){return se.isUndefined(t)?se.isUndefined(e)?void 0:r(void 0,e,0,n):r(e,t,0,n)}function a(e,t){if(!se.isUndefined(t))return r(void 0,t)}function o(e,t){return se.isUndefined(t)?se.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function i(s,n,a){return a in t?r(s,n):a in e?r(void 0,s):void 0}const u={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:i,headers:(e,t,s)=>n(We(e),We(t),0,!0)};return se.forEach(Object.keys({...e,...t}),(function(r){const a=u[r]||n,o=a(e[r],t[r],r);se.isUndefined(o)&&a!==i||(s[r]=o)})),s}var ze=e=>{const t=He({},e);let{data:s,withXSRFToken:r,xsrfHeaderName:n,xsrfCookieName:a,headers:o,auth:i}=t;if(t.headers=o=Fe.from(o),t.url=me(Me(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),i&&o.set("Authorization","Basic "+btoa((i.username||"")+":"+(i.password?unescape(encodeURIComponent(i.password)):""))),se.isFormData(s))if(Se.hasStandardBrowserEnv||Se.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(se.isFunction(s.getHeaders)){const e=s.getHeaders(),t=["content-type","content-length"];Object.entries(e).forEach((([e,s])=>{t.includes(e.toLowerCase())&&o.set(e,s)}))}if(Se.hasStandardBrowserEnv&&(r&&se.isFunction(r)&&(r=r(t)),r||!1!==r&&Ne(t.url))){const e=n&&a&&Ie.read(a);e&&o.set(n,e)}return t};var Ve="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,s){const r=ze(e);let n=r.data;const a=Fe.from(r.headers).normalize();let o,i,u,c,l,{responseType:d,onUploadProgress:h,onDownloadProgress:p}=r;function f(){c&&c(),l&&l(),r.cancelToken&&r.cancelToken.unsubscribe(o),r.signal&&r.signal.removeEventListener("abort",o)}let m=new XMLHttpRequest;function g(){if(!m)return;const r=Fe.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Ue((function(e){t(e),f()}),(function(e){s(e),f()}),{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(s(new re("Request aborted",re.ECONNABORTED,e,m)),m=null)},m.onerror=function(t){const r=new re(t&&t.message?t.message:"Network Error",re.ERR_NETWORK,e,m);r.event=t||null,s(r),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const n=r.transitional||ye;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),s(new re(t,n.clarifyTimeoutError?re.ETIMEDOUT:re.ECONNABORTED,e,m)),m=null},void 0===n&&a.setContentType(null),"setRequestHeader"in m&&se.forEach(a.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),se.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),d&&"json"!==d&&(m.responseType=r.responseType),p&&([u,l]=Be(p,!0),m.addEventListener("progress",u)),h&&m.upload&&([i,c]=Be(h),m.upload.addEventListener("progress",i),m.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(o=t=>{m&&(s(!t||t.type?new Le(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(o),r.signal&&(r.signal.aborted?o():r.signal.addEventListener("abort",o)));const y=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);y&&-1===Se.protocols.indexOf(y)?s(new re("Unsupported protocol "+y+":",re.ERR_BAD_REQUEST,e)):m.send(n||null)}))};const Ke=(e,t)=>{const{length:s}=e=e?e.filter(Boolean):[];if(t||s){let s,r=new AbortController;const n=function(e){if(!s){s=!0,o();const t=e instanceof Error?e:this.reason;r.abort(t instanceof re?t:new Le(t instanceof Error?t.message:t))}};let a=t&&setTimeout((()=>{a=null,n(new re(`timeout ${t} of ms exceeded`,re.ETIMEDOUT))}),t);const o=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(n):e.removeEventListener("abort",n)})),e=null)};e.forEach((e=>e.addEventListener("abort",n)));const{signal:i}=r;return i.unsubscribe=()=>se.asap(o),i}},Je=function*(e,t){let s=e.byteLength;if(s<t)return void(yield e);let r,n=0;for(;n<s;)r=n+t,yield e.slice(n,r),n=r},Qe=async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:s}=await t.read();if(e)break;yield s}}finally{await t.cancel()}},Xe=(e,t,s,r)=>{const n=async function*(e,t){for await(const s of Qe(e))yield*Je(s,t)}(e,t);let a,o=0,i=e=>{a||(a=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await n.next();if(t)return i(),void e.close();let a=r.byteLength;if(s){let e=o+=a;s(e)}e.enqueue(new Uint8Array(r))}catch(e){throw i(e),e}},cancel:e=>(i(e),n.return())},{highWaterMark:2})},{isFunction:Ge}=se,Ye=(({fetch:e,Request:t,Response:s})=>({fetch:e,Request:t,Response:s}))(se.global),{ReadableStream:Ze,TextEncoder:et}=se.global,tt=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},st=e=>{const{fetch:t,Request:s,Response:r}=Object.assign({},Ye,e),n=Ge(t),a=Ge(s),o=Ge(r);if(!n)return!1;const i=n&&Ge(Ze),u=n&&("function"==typeof et?(c=new et,e=>c.encode(e)):async e=>new Uint8Array(await new s(e).arrayBuffer()));var c;const l=a&&i&&tt((()=>{let e=!1;const t=new s(Se.origin,{body:new Ze,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),d=o&&i&&tt((()=>se.isReadableStream(new r("").body))),h={stream:d&&(e=>e.body)};n&&["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!h[e]&&(h[e]=(t,s)=>{let r=t&&t[e];if(r)return r.call(t);throw new re(`Response type '${e}' is not supported`,re.ERR_NOT_SUPPORT,s)})}));const p=async(e,t)=>{const r=se.toFiniteNumber(e.getContentLength());return null==r?(async e=>{if(null==e)return 0;if(se.isBlob(e))return e.size;if(se.isSpecCompliantForm(e)){const t=new s(Se.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return se.isArrayBufferView(e)||se.isArrayBuffer(e)?e.byteLength:(se.isURLSearchParams(e)&&(e+=""),se.isString(e)?(await u(e)).byteLength:void 0)})(t):r};return async e=>{let{url:n,method:o,data:i,signal:u,cancelToken:c,timeout:f,onDownloadProgress:m,onUploadProgress:g,responseType:y,headers:b,withCredentials:w="same-origin",fetchOptions:v}=ze(e);y=y?(y+"").toLowerCase():"text";let q=Ke([u,c&&c.toAbortSignal()],f),_=null;const R=q&&q.unsubscribe&&(()=>{q.unsubscribe()});let S;try{if(g&&l&&"get"!==o&&"head"!==o&&0!==(S=await p(b,i))){let e,t=new s(n,{method:"POST",body:i,duplex:"half"});if(se.isFormData(i)&&(e=t.headers.get("content-type"))&&b.setContentType(e),t.body){const[e,s]=je(S,Be($e(g)));i=Xe(t.body,65536,e,s)}}se.isString(w)||(w=w?"include":"omit");const u=a&&"credentials"in s.prototype,c={...v,signal:q,method:o.toUpperCase(),headers:b.normalize().toJSON(),body:i,duplex:"half",credentials:u?w:void 0};_=a&&new s(n,c);let f=await(a?t(_,v):t(n,c));const D=d&&("stream"===y||"response"===y);if(d&&(m||D&&R)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=f[t]}));const t=se.toFiniteNumber(f.headers.get("content-length")),[s,n]=m&&je(t,Be($e(m),!0))||[];f=new r(Xe(f.body,65536,s,(()=>{n&&n(),R&&R()})),e)}y=y||"text";let E=await h[se.findKey(h,y)||"text"](f,e);return!D&&R&&R(),await new Promise(((t,s)=>{Ue(t,s,{data:E,headers:Fe.from(f.headers),status:f.status,statusText:f.statusText,config:e,request:_})}))}catch(t){if(R&&R(),t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new re("Network Error",re.ERR_NETWORK,e,_),{cause:t.cause||t});throw re.from(t,t&&t.code,e,_)}}},rt=new Map,nt=e=>{let t=se.merge.call({skipUndefined:!0},Ye,e?e.env:null);const{fetch:s,Request:r,Response:n}=t,a=[r,n,s];let o,i,u=a.length,c=rt;for(;u--;)o=a[u],i=c.get(o),void 0===i&&c.set(o,i=u?new Map:st(t)),c=i;return i};nt();const at={http:null,xhr:Ve,fetch:{get:nt}};se.forEach(at,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const ot=e=>`- ${e}`,it=e=>se.isFunction(e)||null===e||!1===e;var ut=(e,t)=>{e=se.isArray(e)?e:[e];const{length:s}=e;let r,n;const a={};for(let o=0;o<s;o++){let s;if(r=e[o],n=r,!it(r)&&(n=at[(s=String(r)).toLowerCase()],void 0===n))throw new re(`Unknown adapter '${s}'`);if(n&&(se.isFunction(n)||(n=n.get(t))))break;a[s||"#"+o]=n}if(!n){const e=Object.entries(a).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new re("There is no suitable adapter to dispatch the request "+(s?e.length>1?"since :\n"+e.map(ot).join("\n"):" "+ot(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function ct(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Le(null,e)}function lt(e){ct(e),e.headers=Fe.from(e.headers),e.data=Ce.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return ut(e.adapter||Ee.adapter,e)(e).then((function(t){return ct(e),t.data=Ce.call(e,e.transformResponse,t),t.headers=Fe.from(t.headers),t}),(function(t){return Pe(t)||(ct(e),t&&t.response&&(t.response.data=Ce.call(e,e.transformResponse,t.response),t.response.headers=Fe.from(t.response.headers))),Promise.reject(t)}))}const dt="1.12.1",ht={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{ht[e]=function(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}}));const pt={};ht.transitional=function(e,t,s){function r(e,t){return"[Axios v"+dt+"] Transitional option '"+e+"'"+t+(s?". "+s:"")}return(s,n,a)=>{if(!1===e)throw new re(r(n," has been removed"+(t?" in "+t:"")),re.ERR_DEPRECATED);return t&&!pt[n]&&(pt[n]=!0,console.warn(r(n," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(s,n,a)}},ht.spelling=function(e){return(t,s)=>(console.warn(`${s} is likely a misspelling of ${e}`),!0)};var ft={assertOptions:function(e,t,s){if("object"!=typeof e)throw new re("options must be an object",re.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let n=r.length;for(;n-- >0;){const a=r[n],o=t[a];if(o){const t=e[a],s=void 0===t||o(t,a,e);if(!0!==s)throw new re("option "+a+" must be "+s,re.ERR_BAD_OPTION_VALUE)}else if(!0!==s)throw new re("Unknown option "+a,re.ERR_BAD_OPTION)}},validators:ht};const mt=ft.validators;let gt=class{constructor(e){this.defaults=e||{},this.interceptors={request:new ge,response:new ge}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const s=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?s&&!String(e.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+s):e.stack=s}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=He(this.defaults,t);const{transitional:s,paramsSerializer:r,headers:n}=t;void 0!==s&&ft.assertOptions(s,{silentJSONParsing:mt.transitional(mt.boolean),forcedJSONParsing:mt.transitional(mt.boolean),clarifyTimeoutError:mt.transitional(mt.boolean)},!1),null!=r&&(se.isFunction(r)?t.paramsSerializer={serialize:r}:ft.assertOptions(r,{encode:mt.function,serialize:mt.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),ft.assertOptions(t,{baseUrl:mt.spelling("baseURL"),withXsrfToken:mt.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=n&&se.merge(n.common,n[t.method]);n&&se.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete n[e]})),t.headers=Fe.concat(a,n);const o=[];let i=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));const u=[];let c;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let l,d=0;if(!i){const e=[lt.bind(this),void 0];for(e.unshift(...o),e.push(...u),l=e.length,c=Promise.resolve(t);d<l;)c=c.then(e[d++],e[d++]);return c}l=o.length;let h=t;for(d=0;d<l;){const e=o[d++],t=o[d++];try{h=e(h)}catch(e){t.call(this,e);break}}try{c=lt.call(this,h)}catch(e){return Promise.reject(e)}for(d=0,l=u.length;d<l;)c=c.then(u[d++],u[d++]);return c}getUri(e){return me(Me((e=He(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}};se.forEach(["delete","get","head","options"],(function(e){gt.prototype[e]=function(t,s){return this.request(He(s||{},{method:e,url:t,data:(s||{}).data}))}})),se.forEach(["post","put","patch"],(function(e){function t(t){return function(s,r,n){return this.request(He(n||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:s,data:r}))}}gt.prototype[e]=t(),gt.prototype[e+"Form"]=t(!0)}));const yt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(yt).forEach((([e,t])=>{yt[t]=e}));const bt=function e(t){const s=new gt(t),r=h(gt.prototype.request,s);return se.extend(r,gt.prototype,s,{allOwnKeys:!0}),se.extend(r,s,null,{allOwnKeys:!0}),r.create=function(s){return e(He(t,s))},r}(Ee);bt.Axios=gt,bt.CanceledError=Le,bt.CancelToken=class e{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const s=this;this.promise.then((e=>{if(!s._listeners)return;let t=s._listeners.length;for(;t-- >0;)s._listeners[t](e);s._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{s.subscribe(e),t=e})).then(e);return r.cancel=function(){s.unsubscribe(t)},r},e((function(e,r,n){s.reason||(s.reason=new Le(e,r,n),t(s.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e((function(e){t=e})),cancel:t}}},bt.isCancel=Pe,bt.VERSION=dt,bt.toFormData=le,bt.AxiosError=re,bt.Cancel=bt.CanceledError,bt.all=function(e){return Promise.all(e)},bt.spread=function(e){return function(t){return e.apply(null,t)}},bt.isAxiosError=function(e){return se.isObject(e)&&!0===e.isAxiosError},bt.mergeConfig=He,bt.AxiosHeaders=Fe,bt.formToJSON=e=>De(se.isHTMLForm(e)?new FormData(e):e),bt.getAdapter=ut,bt.HttpStatusCode=yt,bt.default=bt;const{Axios:wt,AxiosError:vt,CanceledError:qt,isCancel:_t,CancelToken:Rt,VERSION:St,all:Dt,Cancel:Et,isAxiosError:Tt,spread:Ot,toFormData:At,AxiosHeaders:kt,HttpStatusCode:xt,formToJSON:Ft,getAdapter:Ct,mergeConfig:Pt}=bt;var Lt,Ut={exports:{}},Bt=Ut.exports;
|
|
2
|
+
/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */var jt,$t,Nt,It,Mt=(Lt||(Lt=1,function(t,s){!function(r){var n=s,a=t&&t.exports==n&&t,o="object"==typeof e&&e;o.global!==o&&o.window!==o||(r=o);var i=function(e){this.message=e};(i.prototype=new Error).name="InvalidCharacterError";var u=function(e){throw new i(e)},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,d={encode:function(e){e=String(e),/[^\0-\xFF]/.test(e)&&u("The string to be encoded contains characters outside of the Latin1 range.");for(var t,s,r,n,a=e.length%3,o="",i=-1,l=e.length-a;++i<l;)t=e.charCodeAt(i)<<16,s=e.charCodeAt(++i)<<8,r=e.charCodeAt(++i),o+=c.charAt((n=t+s+r)>>18&63)+c.charAt(n>>12&63)+c.charAt(n>>6&63)+c.charAt(63&n);return 2==a?(t=e.charCodeAt(i)<<8,s=e.charCodeAt(++i),o+=c.charAt((n=t+s)>>10)+c.charAt(n>>4&63)+c.charAt(n<<2&63)+"="):1==a&&(n=e.charCodeAt(i),o+=c.charAt(n>>2)+c.charAt(n<<4&63)+"=="),o},decode:function(e){var t=(e=String(e).replace(l,"")).length;t%4==0&&(t=(e=e.replace(/==?$/,"")).length),(t%4==1||/[^+a-zA-Z0-9/]/.test(e))&&u("Invalid character: the string to be decoded is not correctly encoded.");for(var s,r,n=0,a="",o=-1;++o<t;)r=c.indexOf(e.charAt(o)),s=n%4?64*s+r:r,n++%4&&(a+=String.fromCharCode(255&s>>(-2*n&6)));return a},version:"1.0.0"};if(n&&!n.nodeType)if(a)a.exports=d;else for(var h in d)d.hasOwnProperty(h)&&(n[h]=d[h]);else r.base64=d}(Bt)}(Ut,Ut.exports)),Ut.exports);class Wt{request;static SUBACCOUNT_HEADER="X-Mailgun-On-Behalf-Of";constructor(e){this.request=e}convertToDate(e){return{...e,created_at:new Date(e.created_at),updated_at:new Date(e.updated_at)}}async list(e){const t=await this.request.get("/v5/accounts/subaccounts",e);return{total:t.body.total,subaccounts:t.body.subaccounts.map(this.convertToDate)}}async get(e){const t=await this.request.get(`/v5/accounts/subaccounts/${e}`);return{subaccount:this.convertToDate(t.body.subaccount)}}async create(e){const t=await this.request.postWithFD("/v5/accounts/subaccounts",{name:e});return{subaccount:this.convertToDate(t.body.subaccount)}}async destroy(e){try{this.request.setSubaccountHeader(e);const t=await this.request.delete("/v5/accounts/subaccounts");return this.request.resetSubaccountHeader(),t.body}catch(e){throw this.request.resetSubaccountHeader(),e}}async getMonthlySendingLimit(e){return(await this.request.get(`/v5/accounts/subaccounts/${e}/limit/custom/monthly`)).body}async setMonthlySendingLimit(e,t){const s={query:`limit=${t}`};return(await this.request.put(`/v5/accounts/subaccounts/${e}/limit/custom/monthly`,void 0,s)).body}async updateSubaccountFeature(e,t){const s=["email_preview","inbox_placement","sending","validations","validations_bulk"].reduce(((e,s)=>(s in t&&"boolean"==typeof t[s]&&(e[s]=JSON.stringify({enabled:t[s]})),e)),{});return(await this.request.put(`/v5/accounts/subaccounts/${e}/features`,s)).body}enable(e){return this.request.post(`/v5/accounts/subaccounts/${e}/enable`).then((e=>e.body))}disable(e){return this.request.post(`/v5/accounts/subaccounts/${e}/disable`).then((e=>e.body))}}class Ht{timeout;maxBodyLength;proxy;username;key;headers;useFetch;constructor({username:e,key:t,timeout:s,maxBodyLength:r,proxy:n,configHeaders:a,useFetch:o}){this.timeout=s,this.maxBodyLength=r,this.proxy=n,this.username=e,this.key=t,this.headers=this.makeHeadersFromObject(a),this.useFetch=o}async getResponseBody(e){const t={body:{},status:e?.status};if("string"==typeof e.data){if("Mailgun Magnificent API"===e.data)throw new u({status:400,statusText:"Incorrect url",body:e.data});t.body={message:e.data}}else t.body=e.data;return t}getDataRelatedHeaders(e){const t=e?.isFormURLEncoded??!0,s=e?.isMultipartFormData,r=e?.isApplicationJSON,n={};return t&&(n["Content-Type"]="application/x-www-form-urlencoded"),s&&(n["Content-Type"]="multipart/form-data"),r&&(n["Content-Type"]="application/json"),n}addRequestLevelHeaders(e){const t=new kt,s=Mt.encode(`${this.username}:${this.key}`);t.setAuthorization(`Basic ${s}`),t.set(this.headers);const r=this.getDataRelatedHeaders(e),n=this.makeHeadersFromObject(r);return t.set(n),t}makeHeadersFromObject(e={}){let t=new kt;return t=Object.entries(e).reduce(((e,t)=>{const[s,r]=t;return e.set(s,r),e}),t),t}setSubAccountHeader(e){this.headers.set(Wt.SUBACCOUNT_HEADER,e)}resetSubAccountHeader(){this.headers.delete(Wt.SUBACCOUNT_HEADER)}async makeRequest(e,t,s,r){let n;const a=this.addRequestLevelHeaders(r);try{const o={method:t.toLocaleUpperCase(),timeout:this.timeout,url:e,headers:a,...s,maxBodyLength:this.maxBodyLength,proxy:this.proxy};if(this.useFetch&&(o.adapter="fetch",r?.dataSize&&r.dataSize>0&&r.dataSize>this.maxBodyLength))throw new u({status:400,statusText:"(Fetch) Request body larger than maxBodyLength limit",body:`(Fetch) Request body size of ${r.dataSize} bytes exceeds the maximum allowed size of ${this.maxBodyLength} bytes`});n=await bt.request(o)}catch(e){const t=e;throw new u({status:t?.response?.status||400,statusText:t?.response?.statusText||t.code,body:t?.response?.data||t.message})}return await this.getResponseBody(n)}}class zt{url;formDataBuilder;requestProvider;constructor(e,t){this.url=e.url,this.formDataBuilder=new d(t,{useFetch:e.useFetch});const s={timeout:e.timeout,maxBodyLength:52428800,proxy:e.proxy,username:e.username,key:e.key,configHeaders:e.headers,useFetch:e.useFetch};this.requestProvider=new Ht(s)}async request(e,t,s,r){const n={...s},a={};let o;return o=r?.isStorageAPI?t:i(this.url,t),n?.query&&Object.getOwnPropertyNames(n?.query).length>0&&(a.params=n?.query?.searchParams?new URLSearchParams(n.query.searchParams):new URLSearchParams(n.query)),n?.body&&(a.data=n?.body),this.requestProvider.makeRequest(o,e.toUpperCase(),a,r)}setSubaccountHeader(e){this.requestProvider.setSubAccountHeader(e)}resetSubaccountHeader(){this.requestProvider.resetSubAccountHeader()}query(e,t,s){return this.request(e,t,{query:s})}command(e,t,s,r,n){const a={body:s,query:n?.query};return this.request(e,t,a,r)}get(e,t){return this.query("get",e,t)}post(e,t,s){return this.command("post",e,t,{isFormURLEncoded:!1,isApplicationJSON:s?.isApplicationJSON})}async postWithFD(e,t){const{formData:s,dataSize:r}=await this.formDataBuilder.createFormData(t);return this.command("post",e,s,{isFormURLEncoded:!1,isMultipartFormData:!0,dataSize:r})}async putWithFD(e,t){const{formData:s,dataSize:r}=await this.formDataBuilder.createFormData(t);return this.command("put",e,s,{isFormURLEncoded:!1,isMultipartFormData:!0,dataSize:r})}async patchWithFD(e,t){const{formData:s,dataSize:r}=await this.formDataBuilder.createFormData(t);return this.command("patch",e,s,{isFormURLEncoded:!1,isMultipartFormData:!0,dataSize:r})}put(e,t,s){return this.command("put",e,t,{},s)}delete(e,t,s){return this.command("delete",e,t,{},{query:s})}}class Vt{name;require_tls;skip_verification;state;wildcard;spam_action;created_at;smtp_password;smtp_login;type;receiving_dns_records;sending_dns_records;id;is_disabled;web_prefix;web_scheme;use_automatic_sender_security;dkim_host;mailfrom_host;constructor(e,t,s){this.name=e.name,this.require_tls=e.require_tls,this.skip_verification=e.skip_verification,this.state=e.state,this.wildcard=e.wildcard,this.spam_action=e.spam_action,this.created_at=new Date(e.created_at),this.smtp_password=e.smtp_password,this.smtp_login=e.smtp_login,this.type=e.type,this.receiving_dns_records=t||null,this.sending_dns_records=s||null,this.id=e.id,this.is_disabled=e.is_disabled,this.web_prefix=e.web_prefix,this.web_scheme=e.web_scheme,this.use_automatic_sender_security=e.use_automatic_sender_security;const r=["dkim_host","mailfrom_host"].reduce(((t,s)=>{if(e[s]){t[s]=e[s]}return t}),{});Object.assign(this,r)}}class Kt{request;domainCredentials;domainTemplates;domainTags;domainTracking;domainKeys;logger;constructor(e,t,s,r,n,a,o=console){this.request=e,this.domainCredentials=t,this.domainTemplates=s,this.domainTags=r,this.logger=o,this.domainTracking=n,this.domainKeys=a}_handleBoolValues(e){const t=e,s=Object.keys(t).reduce(((e,s)=>{const r=s;if("boolean"==typeof t[r]){const s=t[r];e[r]="true"===s.toString()?"true":"false"}return e}),{});return{...e,...s}}_parseMessage(e){return e.body}parseDomainList(e){return e.body&&e.body.items?e.body.items.map((function(e){return new Vt(e)})):[]}_parseDomain(e){return new Vt(e.body.domain,e.body.receiving_dns_records,e.body.sending_dns_records)}list(e){return this.request.get("/v4/domains",e).then((e=>this.parseDomainList(e)))}get(e,t){const s=t?{"h:extended":t?.extended??!1,"h:with_dns":t?.with_dns??!0}:{};return this.request.get(`/v4/domains/${e}`,s).then((e=>this._parseDomain(e)))}create(e){const t=this._handleBoolValues(e);return this.request.postWithFD("/v4/domains",t).then((e=>this._parseDomain(e)))}update(e,t){const s=this._handleBoolValues(t);return this.request.putWithFD(`/v4/domains/${e}`,s).then((e=>this._parseDomain(e)))}verify(e){return this.request.put(`/v4/domains/${e}/verify`).then((e=>this._parseDomain(e)))}destroy(e){return this.request.delete(`/v3/domains/${e}`).then((e=>this._parseMessage(e)))}getConnection(e){return this.request.get(`/v3/domains/${e}/connection`).then((e=>e)).then((e=>e.body))}updateConnection(e,t){return this.request.put(`/v3/domains/${e}/connection`,t).then((e=>e)).then((e=>e.body))}getTracking(e){return this.logger.warn("\n 'domains.getTracking' method is deprecated, and will be removed. Please use 'domains.domainTracking.getTracking' instead.\n "),this.domainTracking.getTracking(e)}updateTracking(e,t,s){return this.logger.warn("\n 'domains.updateTracking' method is deprecated, and will be removed. Please use 'domains.domainTracking.updateTracking' instead.\n "),this.domainTracking.updateTracking(e,t,s)}getIps(e){return this.logger.warn('"domains.getIps" method is deprecated and will be removed in the future releases.'),this.request.get(i("/v3/domains",e,"ips")).then((e=>e?.body?.items))}assignIp(e,t){return this.logger.warn('"domains.assignIp" method is deprecated and will be removed in the future releases.'),this.request.postWithFD(i("/v3/domains",e,"ips"),{ip:t})}deleteIp(e,t){return this.logger.warn('"domains.deleteIp" method is deprecated and will be moved into the IpsClient in the future releases.'),this.request.delete(i("/v3/domains",e,"ips",t))}linkIpPool(e,t){return this.logger.warn('"domains.linkIpPool" method is deprecated, and will be removed in the future releases.'),this.request.postWithFD(i("/v3/domains",e,"ips"),{pool_id:t})}unlinkIpPoll(e,t){this.logger.warn('"domains.unlinkIpPoll" method is deprecated, and will be moved into the IpsClient in the future releases.');let s="";if(t.pool_id&&t.ip)throw u.getUserDataError("Too much data for replacement","Please specify either pool_id or ip (not both)");return t.pool_id?s=`?pool_id=${t.pool_id}`:t.ip&&(s=`?ip=${t.ip}`),this.request.delete(i("/v3/domains",e,"ips","ip_pool",s))}updateDKIMAuthority(e,t){return this.logger.warn('"domains.updateDKIMAuthority" method is deprecated. Please use "domains.domainKeys.updateDKIMAuthority" instead'),this.domainKeys.updateDKIMAuthority(e,t)}async updateDKIMSelector(e,t){return this.logger.warn('"domains.updateDKIMSelector" method is deprecated. Please use domains.domainKeys.updateDKIMSelector instead'),this.domainKeys.updateDKIMSelector(e,t)}updateWebPrefix(e,t){this.logger.warn('"domains.updateWebPrefix" method is deprecated, please use domains.update to set new "web_prefix". Current method will be removed in the future releases.');const s={query:`web_prefix=${t.webPrefix}`};return this.request.put(`/v3/domains/${e}/web_prefix`,{},s).then((e=>e))}}class Jt{request;constructor(e){e&&(this.request=e)}parsePage(e,t,s,r){const n=new URL(t),{searchParams:a}=n,o=t&&"string"==typeof t&&t.split(s).pop()||"";let i=null;return r&&(i=a.has(r)?a.get(r):void 0),{id:e,page:"?"===s?`?${o}`:o,iteratorPosition:i,url:t}}parsePageLinks(e,t,s){return Object.entries(e.body.paging).reduce(((e,[r,n])=>(e[r]=this.parsePage(r,n,t,s),e)),{})}updateUrlAndQuery(e,t){let s=e;const r={...t};return r.page&&(s=i(e,r.page),delete r.page),{url:s,updatedQuery:r}}async requestListWithPages(e,t,s){const{url:r,updatedQuery:n}=this.updateUrlAndQuery(e,t);if(this.request){const e=await this.request.get(r,n);return this.parseList(e,s)}throw new u({status:500,statusText:"Request property is empty",body:{message:""}})}}class Qt extends Jt{request;constructor(e){super(e),this.request=e}parseList(e){const t={};return t.items=e.body.items,t.pages=this.parsePageLinks(e,"/"),t.status=e.status,t}async get(e,t){return this.requestListWithPages(i("/v3",e,"events"),t)}}class Xt{start;end;resolution;stats;constructor(e){this.start=new Date(e.start),this.end=new Date(e.end),this.resolution=e.resolution,this.stats=e.stats.map((function(e){const t={...e};return t.time=new Date(e.time),t}))}}class Gt{request;logger;constructor(e,t=console){this.request=e,this.logger=t}convertDateToUTC(e,t){return this.logger.warn(`Date:"${t}" was auto-converted to UTC time zone.\nValue "${t.toUTCString()}" will be used for request.\nConsider using string type for property "${e}" to avoid auto-converting`),[e,t.toUTCString()]}prepareSearchParams(e){let t=[];return"object"==typeof e&&Object.keys(e).length&&(t=Object.entries(e).reduce(((e,t)=>{const[s,r]=t;if(Array.isArray(r)&&r.length){const t=r.map((e=>[s,e]));return[...e,...t]}return r instanceof Date?(e.push(this.convertDateToUTC(s,r)),e):("string"==typeof r&&e.push([s,r]),e)}),[])),t}parseStats(e){return new Xt(e.body)}getDomain(e,t){const s=this.prepareSearchParams(t);return this.request.get(i("/v3",e,"stats/total"),{searchParams:s}).then(this.parseStats)}getAccount(e){const t=this.prepareSearchParams(e);return this.request.get("/v3/stats/total",{searchParams:t}).then(this.parseStats)}}!function(e){e.HOUR="hour",e.DAY="day",e.MONTH="month"}(jt||(jt={})),function(e){e.BOUNCES="bounces",e.COMPLAINTS="complaints",e.UNSUBSCRIBES="unsubscribes",e.WHITELISTS="whitelists"}($t||($t={})),function(e){e.CLICKED="clicked",e.COMPLAINED="complained",e.DELIVERED="delivered",e.OPENED="opened",e.PERMANENT_FAIL="permanent_fail",e.TEMPORARY_FAIL="temporary_fail",e.UNSUBSCRIBED="unsubscribe"}(Nt||(Nt={})),function(e){e.YES="yes",e.NO="no"}(It||(It={}));class Yt{type;constructor(e){this.type=e}}class Zt extends Yt{address;code;error;created_at;constructor(e){super($t.BOUNCES),this.address=e.address,this.code=+e.code,this.error=e.error,this.created_at=new Date(e.created_at)}}class es extends Yt{address;created_at;constructor(e){super($t.COMPLAINTS),this.address=e.address,this.created_at=new Date(e.created_at)}}class ts extends Yt{address;tags;created_at;constructor(e){super($t.UNSUBSCRIBES),this.address=e.address,this.tags=e.tags,this.created_at=new Date(e.created_at)}}class ss extends Yt{value;reason;createdAt;constructor(e){super($t.WHITELISTS),this.value=e.value,this.reason=e.reason,this.createdAt=new Date(e.createdAt)}}class rs extends Jt{request;models;constructor(e){super(e),this.request=e,this.models={bounces:Zt,complaints:es,unsubscribes:ts,whitelists:ss}}parseList(e,t){const s={};return s.items=e.body.items?.map((e=>new t(e)))||[],s.pages=this.parsePageLinks(e,"?","address"),s.status=e.status,s}_parseItem(e,t){return new t(e)}createWhiteList(e,t,s){if(s)throw u.getUserDataError("Data property should be an object","Whitelist's creation process does not support multiple creations. Data property should be an object");return this.request.postWithFD(i("v3",e,"whitelists"),t).then(this.prepareResponse)}createUnsubscribe(e,t){if(Array.isArray(t)){if(t.some((e=>e.tag)))throw u.getUserDataError("Tag property should not be used for creating multiple unsubscribes.","Tag property can be used only if one unsubscribe provided as second argument of create method. Please use tags instead.");return this.request.post(i("v3",e,"unsubscribes"),JSON.stringify(t),{isApplicationJSON:!0}).then(this.prepareResponse)}if(t?.tags)throw u.getUserDataError("Tags property should not be used for creating one unsubscribe.","Tags property can be used if you provides an array of unsubscribes as second argument of create method. Please use tag instead");if(Array.isArray(t.tag))throw u.getUserDataError("Tag property can not be an array","Please use array of unsubscribes as second argument of create method to be able to provide few tags");return this.request.postWithFD(i("v3",e,"unsubscribes"),t).then(this.prepareResponse)}getModel(e){if(e in this.models)return this.models[e];throw u.getUserDataError("Unknown type value","Type may be only one of [bounces, complaints, unsubscribes, whitelists]")}prepareResponse(e){return{message:e.body.message,type:e.body.type||"",value:e.body.value||"",status:e.status}}async list(e,t,s){const r=this.getModel(t);return this.requestListWithPages(i("v3",e,t),s,r)}get(e,t,s){const r=this.getModel(t);return this.request.get(i("v3",e,t,encodeURIComponent(s))).then((e=>this._parseItem(e.body,r)))}create(e,t,s){let r;this.getModel(t);const n=Array.isArray(s);return"whitelists"===t?this.createWhiteList(e,s,n):"unsubscribes"===t?this.createUnsubscribe(e,s):(r=n?[...s]:[s],this.request.post(i("v3",e,t),JSON.stringify(r),{isApplicationJSON:!0}).then(this.prepareResponse))}destroy(e,t,s){return this.getModel(t),this.request.delete(i("v3",e,t,encodeURIComponent(s))).then((e=>({message:e.body.message,value:e.body.value||"",address:e.body.address||"",status:e.status})))}}class ns{id;url;urls;constructor(e,t,s){this.id=e,this.url=t,this.urls=s}}class as{request;constructor(e){this.request=e}_parseWebhookList(e){return e.body.webhooks}_parseWebhookWithID(e){return function(t){const s=t?.body?.webhook;let r=s?.url,n=s?.urls;return r||(r=n&&n.length?n[0]:void 0),n&&0!==n.length||!r||(n=[r]),new ns(e,r,n)}}_parseWebhookTest(e){return{code:e.body.code,message:e.body.message}}list(e,t){return this.request.get(i("/v3/domains",e,"webhooks"),t).then(this._parseWebhookList)}get(e,t){return this.request.get(i("/v3/domains",e,"webhooks",t)).then(this._parseWebhookWithID(t))}create(e,t,s,r=!1){return r?this.request.putWithFD(i("/v3/domains",e,"webhooks",t,"test"),{url:s}).then(this._parseWebhookTest):this.request.postWithFD(i("/v3/domains",e,"webhooks"),{id:t,url:s}).then(this._parseWebhookWithID(t))}update(e,t,s){return this.request.putWithFD(i("/v3/domains",e,"webhooks",t),{url:s}).then(this._parseWebhookWithID(t))}destroy(e,t){return this.request.delete(i("/v3/domains",e,"webhooks",t)).then(this._parseWebhookWithID(t))}}class os{request;constructor(e){this.request=e}prepareBooleanValues(e){const t=new Set(["o:testmode","t:text","o:dkim","o:tracking","o:tracking-clicks","o:tracking-opens","o:require-tls","o:skip-verification"]);return Object.keys(e).reduce(((s,r)=>(t.has(r)&&"boolean"==typeof e[r]?s[r]=e[r]?"yes":"no":s[r]=e[r],s)),{})}_parseResponse(e){return{status:e.status,...e.body}}create(e,t){if(!t||0===Object.keys(t).length)throw u.getUserDataError("Message data object can not be empty","Message data object can not be empty");if(t.message)return this.request.postWithFD(`/v3/${e}/messages.mime`,t).then(this._parseResponse);const s=this.prepareBooleanValues(t);return this.request.postWithFD(`/v3/${e}/messages`,s).then(this._parseResponse)}async retrieveStoredEmail(e,t){return(await this.request.get(`/v3/domains/${e}/messages/${t}`)).body}async resendEmail(e,t,s){const r=await this.request.postWithFD(`/v3/domains/${e}/messages/${t}`,{to:s});return this._parseResponse(r)}async getMessagesQueueStatus(e){const t=(await this.request.get(`/v3/domains/${e}/sending_queues`)).body;return{regular:{is_disabled:t.regular?.is_disabled,disabled:{until:t.regular?.disabled?.until?new Date(t.regular.disabled.until):"",reason:t.regular?.disabled?.reason||""}},scheduled:{is_disabled:t.scheduled?.is_disabled,disabled:{until:t.scheduled?.disabled?.until?new Date(t.scheduled.disabled.until):"",reason:t.scheduled?.disabled?.reason||""}}}}async clearMessagesQueue(e,t){if(!["storage-us-east4.api.mailgun.net","storage-us-west1.api.mailgun.net","storage-europe-west1.api.mailgun.net"].includes(t))throw u.getUserDataError("Invalid storage URL","The provided storage URL is not allowed.");return(await this.request.command("delete",`https://${t}/v3/${e}/envelopes`,void 0,{isStorageAPI:!0})).body}}class is{request;constructor(e){this.request=e}list(e){return this.request.get("/v3/routes",e).then((e=>e.body.items))}get(e){return this.request.get(`/v3/routes/${e}`).then((e=>e.body.route))}create(e){return this.request.postWithFD("/v3/routes",e).then((e=>e.body.route))}update(e,t){return this.request.putWithFD(`/v3/routes/${e}`,t).then((e=>e.body))}destroy(e){return this.request.delete(`/v3/routes/${e}`).then((e=>e.body))}}class us{multipleValidation;request;constructor(e,t){this.request=e,this.multipleValidation=t}async get(e){const t={address:e};return(await this.request.get("/v4/address/validate",t)).body}}class cs{request;constructor(e){this.request=e}async list(e){const t=await this.request.get("/v3/ips",e);return this.parseIpsResponse(t)}async get(e){const t=await this.request.get(`/v3/ips/${e}`);return this.parseIpsResponse(t)}parseIpsResponse(e){return e.body}}class ls{request;constructor(e){this.request=e}list(){return this.request.get("/v1/ip_pools").then((e=>this.parseIpPoolsResponse(e)))}async create(e){const t=await this.request.postWithFD("/v1/ip_pools",e);return{status:t.status,...t.body}}async update(e,t){const s=await this.request.patchWithFD(`/v1/ip_pools/${e}`,t);return{status:s.status,...s.body}}async delete(e,t){const s=await this.request.delete(`/v1/ip_pools/${e}`,t);return{status:s.status,...s.body}}parseIpPoolsResponse(e){return{status:e.status,...e.body}}}class ds extends Jt{baseRoute;request;members;constructor(e,t){super(e),this.request=e,this.baseRoute="/v3/lists",this.members=t}parseValidationResult(e,t){return{status:e,validationResult:{...t,created_at:new Date(1e3*t.created_at)}}}parseList(e){const t={};return t.items=e.body.items,t.pages=this.parsePageLinks(e,"?","address"),t.status=e.status,t}async list(e){return this.requestListWithPages(`${this.baseRoute}/pages`,e)}get(e){return this.request.get(`${this.baseRoute}/${e}`).then((e=>e.body.list))}create(e){return this.request.postWithFD(this.baseRoute,e).then((e=>e.body.list))}update(e,t){return this.request.putWithFD(`${this.baseRoute}/${e}`,t).then((e=>e.body.list))}destroy(e){return this.request.delete(`${this.baseRoute}/${e}`).then((e=>e.body))}validate(e){return this.request.post(`${this.baseRoute}/${e}/validate`,{}).then((e=>({status:e.status,...e.body})))}validationResult(e){return this.request.get(`${this.baseRoute}/${e}/validate`).then((e=>this.parseValidationResult(e.status,e.body)))}cancelValidation(e){return this.request.delete(`${this.baseRoute}/${e}/validate`).then((e=>({status:e.status,message:e.body.message})))}}class hs extends Jt{baseRoute;request;constructor(e){super(e),this.request=e,this.baseRoute="/v3/lists"}checkAndUpdateData(e){const t={...e};return"object"==typeof e.vars&&(t.vars=JSON.stringify(t.vars)),"boolean"==typeof e.subscribed&&(t.subscribed=e.subscribed?"yes":"no"),t}parseList(e){const t={};return t.items=e.body.items,t.pages=this.parsePageLinks(e,"?","address"),t}async listMembers(e,t){return this.requestListWithPages(`${this.baseRoute}/${e}/members/pages`,t)}getMember(e,t){return this.request.get(`${this.baseRoute}/${e}/members/${t}`).then((e=>e.body.member))}createMember(e,t){const s=this.checkAndUpdateData(t);return this.request.postWithFD(`${this.baseRoute}/${e}/members`,s).then((e=>e.body.member))}createMembers(e,t){const s={members:Array.isArray(t.members)?JSON.stringify(t.members):t.members,upsert:t.upsert};return this.request.postWithFD(`${this.baseRoute}/${e}/members.json`,s).then((e=>e.body))}updateMember(e,t,s){const r=this.checkAndUpdateData(s);return this.request.putWithFD(`${this.baseRoute}/${e}/members/${t}`,r).then((e=>e.body.member))}destroyMember(e,t){return this.request.delete(`${this.baseRoute}/${e}/members/${t}`).then((e=>e.body))}}class ps{baseRoute;request;constructor(e){this.request=e,this.baseRoute="/v3/domains/"}_parseDomainCredentialsList(e){return{items:e.body.items,totalCount:e.body.total_count}}_parseMessageResponse(e){return{status:e.status,message:e.body.message}}_parseDeletedResponse(e){return{status:e.status,message:e.body.message,spec:e.body.spec}}list(e,t){return this.request.get(i(this.baseRoute,e,"/credentials"),t).then((e=>this._parseDomainCredentialsList(e)))}create(e,t){return this.request.postWithFD(`${this.baseRoute}${e}/credentials`,t).then((e=>this._parseMessageResponse(e)))}update(e,t,s){return this.request.putWithFD(`${this.baseRoute}${e}/credentials/${t}`,s).then((e=>this._parseMessageResponse(e)))}destroy(e,t){return this.request.delete(`${this.baseRoute}${e}/credentials/${t}`).then((e=>this._parseDeletedResponse(e)))}}class fs{createdAt;id;quantity;recordsProcessed;status;downloadUrl;responseStatusCode;summary;constructor(e,t){this.createdAt=new Date(e.created_at),this.id=e.id,this.quantity=e.quantity,this.recordsProcessed=e.records_processed,this.status=e.status,this.responseStatusCode=t,e.download_url&&(this.downloadUrl={csv:e.download_url?.csv,json:e.download_url?.json}),e.summary&&(this.summary={result:{catchAll:e.summary.result.catch_all,deliverable:e.summary.result.deliverable,doNotSend:e.summary.result.do_not_send,undeliverable:e.summary.result.undeliverable,unknown:e.summary.result.unknown},risk:{high:e.summary.risk.high,low:e.summary.risk.low,medium:e.summary.risk.medium,unknown:e.summary.risk.unknown}})}}class ms extends Jt{request;attachmentsHandler;constructor(e){super(),this.request=e,this.attachmentsHandler=new l}handleResponse(e){return{status:e.status,...e?.body}}parseList(e){const t={};return t.jobs=e.body.jobs.map((t=>new fs(t,e.status))),t.pages=this.parsePageLinks(e,"?","pivot"),t.total=e.body.total,t.status=e.status,t}async list(e){return this.requestListWithPages("/v4/address/validate/bulk",e)}async get(e){const t=await this.request.get(`/v4/address/validate/bulk/${e}`);return new fs(t.body,t.status)}convertToExpectedShape(e){let t;return t=this.attachmentsHandler.isBuffer(e.file)?{multipleValidationFile:e.file}:"string"==typeof e.file?{multipleValidationFile:{data:e.file}}:(this.attachmentsHandler.isStream(e.file),{multipleValidationFile:e.file}),t}async create(e,t){if(!t||!t.file)throw u.getUserDataError('"file" property expected.','Make sure second argument has "file" property.');const s=this.convertToExpectedShape(t),r=await this.request.postWithFD(`/v4/address/validate/bulk/${e}`,s);return this.handleResponse(r)}async destroy(e){const t=await this.request.delete(`/v4/address/validate/bulk/${e}`);return this.handleResponse(t)}}class gs{name;description;createdAt;createdBy;id;version;versions;constructor(e){this.name=e.name,this.description=e.description,this.createdAt=e.createdAt?new Date(e.createdAt):"",this.createdBy=e.createdBy,this.id=e.id,e.version&&(this.version=e.version,this.version&&e.version.createdAt&&(this.version.createdAt=new Date(e.version.createdAt))),e.versions&&e.versions.length&&(this.versions=e.versions.map((e=>{const t={...e};return t.createdAt=new Date(e.createdAt),t})))}}class ys extends Jt{baseRoute;request;constructor(e){super(e),this.request=e,this.baseRoute="/v3/"}parseCreationResponse(e){return new gs(e.body.template)}parseCreationVersionResponse(e){const t={};return t.status=e.status,t.message=e.body.message,e.body&&e.body.template&&(t.template=new gs(e.body.template)),t}parseMutationResponse(e){const t={};return t.status=e.status,t.message=e.body.message,e.body&&e.body.template&&(t.templateName=e.body.template.name),t}parseNotificationResponse(e){const t={};return t.status=e.status,t.message=e.body.message,t}parseMutateTemplateVersionResponse(e){const t={};return t.status=e.status,t.message=e.body.message,e.body.template&&(t.templateName=e.body.template.name,t.templateVersion={tag:e.body.template.version.tag}),t}parseList(e){const t={};return t.items=e.body.items.map((e=>new gs(e))),t.pages=this.parsePageLinks(e,"?","p"),t.status=e.status,t}parseListTemplateVersions(e){const t={};return t.template=new gs(e.body.template),t.pages=this.parsePageLinks(e,"?","p"),t}async list(e,t){return this.requestListWithPages(i(this.baseRoute,e,"/templates"),t)}get(e,t,s){return this.request.get(i(this.baseRoute,e,"/templates/",t),s).then((e=>new gs(e.body.template)))}create(e,t){return this.request.postWithFD(i(this.baseRoute,e,"/templates"),t).then((e=>this.parseCreationResponse(e)))}update(e,t,s){return this.request.putWithFD(i(this.baseRoute,e,"/templates/",t),s).then((e=>this.parseMutationResponse(e)))}destroy(e,t){return this.request.delete(i(this.baseRoute,e,"/templates/",t)).then((e=>this.parseMutationResponse(e)))}destroyAll(e){return this.request.delete(i(this.baseRoute,e,"/templates")).then((e=>this.parseNotificationResponse(e)))}listVersions(e,t,s){return this.request.get(i(this.baseRoute,e,"/templates",t,"/versions"),s).then((e=>this.parseListTemplateVersions(e)))}getVersion(e,t,s){return this.request.get(i(this.baseRoute,e,"/templates/",t,"/versions/",s)).then((e=>new gs(e.body.template)))}createVersion(e,t,s){return this.request.postWithFD(i(this.baseRoute,e,"/templates/",t,"/versions"),s).then((e=>this.parseCreationVersionResponse(e)))}updateVersion(e,t,s,r){return this.request.putWithFD(i(this.baseRoute,e,"/templates/",t,"/versions/",s),r).then((e=>this.parseMutateTemplateVersionResponse(e)))}destroyVersion(e,t,s){return this.request.delete(i(this.baseRoute,e,"/templates/",t,"/versions/",s)).then((e=>this.parseMutateTemplateVersionResponse(e)))}}class bs{tag;description;"first-seen";"last-seen";constructor(e){this.tag=e.tag,this.description=e.description,this["first-seen"]=new Date(e["first-seen"]),this["last-seen"]=new Date(e["last-seen"])}}class ws{tag;description;start;end;resolution;stats;constructor(e){this.tag=e.body.tag,this.description=e.body.description,this.start=new Date(e.body.start),this.end=new Date(e.body.end),this.resolution=e.body.resolution,this.stats=e.body.stats.map((function(e){return{...e,time:new Date(e.time)}}))}}class vs extends Jt{baseRoute;request;constructor(e){super(e),this.request=e,this.baseRoute="/v3/"}parseList(e){const t={};return t.items=e.body.items.map((e=>new bs(e))),t.pages=this.parsePageLinks(e,"?","tag"),t.status=e.status,t}_parseTagStatistic(e){return new ws(e)}async list(e,t){return this.requestListWithPages(i(this.baseRoute,e,"/tags"),t)}get(e,t){return this.request.get(i(this.baseRoute,e,"/tags",t)).then((e=>new bs(e.body)))}update(e,t,s){return this.request.put(i(this.baseRoute,e,"/tags",t),{description:s}).then((e=>e.body))}destroy(e,t){return this.request.delete(`${this.baseRoute}${e}/tags/${t}`).then((e=>({message:e.body.message,status:e.status})))}statistic(e,t,s){return this.request.get(i(this.baseRoute,e,"/tags",t,"stats"),s).then((e=>this._parseTagStatistic(e)))}countries(e,t){return this.request.get(i(this.baseRoute,e,"/tags",t,"stats/aggregates/countries")).then((e=>e.body))}providers(e,t){return this.request.get(i(this.baseRoute,e,"/tags",t,"stats/aggregates/providers")).then((e=>e.body))}devices(e,t){return this.request.get(i(this.baseRoute,e,"/tags",t,"stats/aggregates/devices")).then((e=>e.body))}}class qs extends Jt{request;attributes;filters;logger;constructor(e,t,s,r=console){super(e),this.request=e,this.attributes=t,this.filters=s,this.logger=r}convertDateToUTC(e,t){return this.logger.warn(`Date: "${t}" was auto-converted to UTC time zone.\nValue "${t.toISOString()}" will be used for request.\nConsider using string type for property "${e}" to avoid auto-converting`),t.toISOString()}prepareQueryData(e){const t=e,s=Object.keys(t).reduce(((s,r)=>{const n=r;if(t[n]&&"object"==typeof t[n]){const t=e[n];s[n]=this.convertDateToUTC(n,t)}return s}),{});return{...e,...s}}prepareResult(e){let t={};return t={...this.prepareSeedList(e.body),status:e.status},t}prepareSeedList(e){let t;const s={created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),last_result_at:new Date(e.last_result_at)};t=e.Seeds?e.Seeds.map((e=>{let t={};const s={created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),max_email_count_hit_at:new Date(e.max_email_count_hit_at),last_sent_to_at:new Date(e.last_sent_to_at),last_delivered_at:new Date(e.last_delivered_at)};return t={...e,...s},t})):null;const r={...e,Seeds:t,...s};return delete r.Id,r}parseList(e){const t={items:[]};return t.items=e.body.items?.map((e=>this.prepareSeedList(e))),t.pages=this.parsePageLinks(e,"?","address"),t.status=e.status,t}async list(e){const t=this.prepareQueryData(e),s=await this.request.get("/v4/inbox/seedlists",t);return{...this.parseList(s),status:200}}async get(e){const t=await this.request.get(`/v4/inbox/seedlists/${e}`);return{...this.prepareSeedList(t.body.seedlist),status:t.status}}async create(e){const t=await this.request.postWithFD("/v4/inbox/seedlists",e);return this.prepareResult(t)}async update(e,t){const s=await this.request.put(`/v4/inbox/seedlists/${e}`,t);return this.prepareResult(s)}async destroy(e){return this.request.delete(`/v4/inbox/seedlists/${e}`)}}class _s{request;seedsLists;results;providers;constructor(e,t,s,r){this.request=e,this.seedsLists=t,this.seedsLists=t,this.results=s,this.providers=r}async runTest(e){const t=await this.request.post("/v4/inbox/tests",e);return{...t.body,status:t.status}}}class Rs extends Jt{request;attributes;filters;sharing;logger;constructor(e,t,s,r,n=console){super(e),this.request=e,this.attributes=t,this.filters=s,this.sharing=r,this.logger=n}convertDateToUTC(e,t){return this.logger.warn(`Date: "${t}" was auto-converted to UTC time zone.\nValue "${t.toISOString()}" will be used for request.\nConsider using string type for property "${e}" to avoid auto-converting`),t.toISOString()}prepareQueryData(e){const t=e,s=Object.keys(t).reduce(((s,r)=>{const n=r;if(t[n]&&"object"==typeof t[n]){const t=e[n];s[n]=this.convertDateToUTC(n,t)}return s}),{});return{...e,...s}}prepareInboxPlacementsResult(e){let t={};const s={created_at:new Date(e.created_at),updated_at:new Date(e.updated_at),sharing_expires_at:new Date(e.sharing_expires_at)};e.Box&&(t={...e.Box,created_at:new Date(e.Box.created_at),updated_at:new Date(e.Box.updated_at),last_result_at:new Date(e.Box.last_result_at)},delete t.ID);const r={...e,Box:t,...s,id:e.Id};return delete r.ID,r}parseList(e){const t={};return t.items=e.body.items.map((e=>this.prepareInboxPlacementsResult(e))),t.pages=this.parsePageLinks(e,"?","address"),t.status=e.status,t}async list(e){const t=this.prepareQueryData(e),s=await this.request.get("/v4/inbox/results",{...t});return this.parseList(s)}async get(e){const t=await this.request.get(`/v4/inbox/results/${e}`),s=this.prepareInboxPlacementsResult(t.body.result);return{status:t.status,inboxPlacementResult:s}}async destroy(e){const t=await this.request.delete(`/v4/inbox/results/${e}`);return{status:t.status,...t.body}}async getResultByShareId(e){const t=await this.request.get(`/v4/inbox/sharing/public/${e}`),s=this.prepareInboxPlacementsResult(t.body.result);return{status:t.status,inboxPlacementResult:s}}}class Ss{request;path;constructor(e,t){this.path=t,this.request=e}async list(){const e=await this.request.get(this.path);return{items:e.body.items,status:e.status}}async get(e){const t=await this.request.get(`${this.path}/${e}`);return{...t.body,status:t.status}}}class Ds{request;path;constructor(e,t){this.request=e,this.path=t}async list(){const e=await this.request.get(this.path);return{status:e.status,supported_filters:e.body.supported_filters}}}class Es{request;constructor(e){this.request=e}prepareInboxPlacementsResultSharing(e){const t={expires_at:new Date(e.expires_at)};return{...e,...t}}async get(e){const t=await this.request.get(`/v4/inbox/sharing/${e}`),s=this.prepareInboxPlacementsResultSharing(t.body.sharing);return{status:t.status,...s}}async update(e,t){const s={query:`enabled=${t.enabled}`},r=await this.request.put(`/v4/inbox/sharing/${e}`,{},s);return{...this.prepareInboxPlacementsResultSharing(r.body.sharing),status:r.status}}}class Ts{request;path;constructor(e){this.path="/v4/inbox/providers",this.request=e}parseList(e){const t={};return t.items=e.body.items.map((e=>{const t={created_at:new Date(e.created_at),updated_at:new Date(e.updated_at)};return{...e,...t}})),t.status=e.status,t}async list(){const e=await this.request.get(this.path);return this.parseList(e)}}class Os{request;logger;constructor(e,t=console){this.request=e,this.logger=t}convertDateToUTC(e,t){return this.logger.warn(`Date:"${t}" was auto-converted to UTC time zone.\nValue "${t.toUTCString()}" will be used for request.\nConsider using string type for property "${e}" to avoid auto-converting`),t.toUTCString()}prepareQuery(e){let t,s;if(e){const r=e?.start,n=e?.end;t=r instanceof Date?this.convertDateToUTC("start",r):r??"",s=n&&n instanceof Date?this.convertDateToUTC("end",n):n??""}return{...e,start:t,end:s}}handleResponse(e){const t=e.body,s=Date.parse(t.start)?new Date(t.start):null,r=Date.parse(t.end)?new Date(t.end):null;return{...t,status:e.status,start:s,end:r}}async getAccount(e){const t=this.prepareQuery(e),s=await this.request.post("/v1/analytics/metrics",t);return this.handleResponse(s)}async getAccountUsage(e){const t=this.prepareQuery(e),s=await this.request.post("/v1/analytics/usage/metrics",t);return this.handleResponse(s)}}class As{request;constructor(e){this.request=e}_parseTrackingSettings(e){return e.body.tracking}_parseTrackingUpdate(e){return e.body}_isOpenTrackingInfoWitPlace(e){return"object"==typeof e&&"place_at_the_top"in e}async get(e){const t=await this.request.get(`/v2/x509/${e}/status`);return{...t.body,responseStatusCode:t.status}}async generate(e){const t=await this.request.post(`/v2/x509/${e}`);return{...t.body,status:t.status}}async regenerate(e){const t=await this.request.put(`/v2/x509/${e}`);return{...t.body,status:t.status}}async getTracking(e){const t=await this.request.get(i("/v3/domains",e,"tracking"));return this._parseTrackingSettings(t)}async updateTracking(e,t,s){const r={...s};"boolean"==typeof s?.active&&(r.active=s?.active?"yes":"no"),this._isOpenTrackingInfoWitPlace(s)&&"boolean"==typeof s?.place_at_the_top&&(r.place_at_the_top=s?.place_at_the_top?"yes":"no");const n=await this.request.putWithFD(i("/v3/domains",e,"tracking",t),r);return this._parseTrackingUpdate(n)}}class ks extends Jt{baseRoute;request;constructor(e){super(e),this.request=e,this.baseRoute="/v3/domains/"}_parseDomainKeysList(e){return{items:e.items}}parseList(e){return e.body.items,this.parsePageLinks(e,"?","page"),e.status,{items:e.body.items,pages:this.parsePageLinks(e,"?","page"),status:e.status||200}}async list(e){const t=await this.request.get(i("v4/domains/",e,"/keys"));return{...this._parseDomainKeysList(t.body),status:t.status}}async listAll(e){const t={...e?.signingDomain?{signing_domain:encodeURIComponent(e.signingDomain)}:{},...e?.selector?{selector:encodeURIComponent(e.selector)}:{},page:"",limit:""};return await this.requestListWithPages(i("/v1/dkim/keys"),t)}async create(e){const t={signing_domain:e.signingDomain,selector:e.selector};e.bits&&(t.bits=e.bits),e.pem&&(t.pem=e.pem);const s=await this.request.postWithFD(i("v1/dkim/keys"),t);return{status:s.status,...s.body}}async activate(e,t){const s=await this.request.put(`/v4/domains/${e}/keys/${t}/activate`);return{...s.body,status:s.status}}async deactivate(e,t){const s=await this.request.put(`/v4/domains/${e}/keys/${t}/deactivate`);return{...s.body,status:s.status}}async destroy(e,t){return(await this.request.delete(i("v1/dkim/keys"),void 0,{signing_domain:e,selector:t})).body}async updateDKIMSelector(e,t){const s={query:`dkim_selector=${t.dkimSelector}`},r=await this.request.put(`/v3/domains/${e}/dkim_selector`,{},s);return{status:r.status,message:r?.body?.message}}async updateDKIMAuthority(e,t){const s={query:`self=${t.self}`};return this.request.put(`/v3/domains/${e}/dkim_authority`,{},s).then((e=>e)).then((e=>e.body))}}class xs{request;domains;webhooks;events;stats;metrics;suppressions;messages;routes;validate;ips;ip_pools;lists;subaccounts;inboxPlacements;constructor(e,t){const s={...e};if(s.url||(s.url="https://api.mailgun.net"),!s.username)throw new Error('Parameter "username" is required');if(!s.key)throw new Error('Parameter "key" is required');if(s.useFetch&&s.proxy)throw new Error("Proxy can not be used with fetch provider");this.request=new zt(s,t);const r=new hs(this.request),n=new ps(this.request),a=new ys(this.request),o=new vs(this.request),i=new As(this.request),u=new ks(this.request),c=new ms(this.request),l=new Es(this.request),d=new Ss(this.request,"/v4/inbox/seedlists/a"),h=new Ss(this.request,"/v4/inbox/results/a"),p=new Ds(this.request,"/v4/inbox/seedlists/_filters"),f=new Ds(this.request,"/v4/inbox/results/_filters"),m=new qs(this.request,d,p),g=new Rs(this.request,h,f,l),y=new Ts(this.request);this.domains=new Kt(this.request,n,a,o,i,u),this.webhooks=new as(this.request),this.events=new Qt(this.request),this.stats=new Gt(this.request),this.metrics=new Os(this.request),this.suppressions=new rs(this.request),this.messages=new os(this.request),this.routes=new is(this.request),this.ips=new cs(this.request),this.ip_pools=new ls(this.request),this.lists=new ds(this.request,r),this.validate=new us(this.request,c),this.subaccounts=new Wt(this.request),this.inboxPlacements=new _s(this.request,m,g,y)}setSubaccount(e){this.request?.setSubaccountHeader(e)}resetSubaccount(){this.request?.resetSubaccountHeader()}}class Fs{static get default(){return this}formData;constructor(e){this.formData=e}client(e){return new xs(e,this.formData)}}export{Fs as default};
|