From d1455584460af7346adc9f7c2126546c707d02d7 Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 23 Aug 2025 08:27:24 +0700 Subject: [PATCH] update UI --- .../assets/popup.js | 2 +- .../content/content.js | 12 ++++++------ auto-post-facebook-extensions_1.0/index.html | 4 ++-- public/icons/128.png | Bin 0 -> 35731 bytes public/icons/16.png | Bin 0 -> 566 bytes public/icons/32.png | Bin 0 -> 1515 bytes .../assets/popup.js | 2 +- .../content/content.js | 12 ++++++------ .../index.html | 4 ++-- server/data.json | 15 +-------------- src/content/content.ts | 18 ++++++++++++++---- src/lib/utils.ts | 16 +++++++++------- src/popup/popup.tsx | 12 ------------ 13 files changed, 42 insertions(+), 55 deletions(-) create mode 100644 public/icons/128.png create mode 100644 public/icons/16.png create mode 100644 public/icons/32.png diff --git a/auto-post-facebook-extensions_1.0/assets/popup.js b/auto-post-facebook-extensions_1.0/assets/popup.js index 50d5c03..d06cb0e 100644 --- a/auto-post-facebook-extensions_1.0/assets/popup.js +++ b/auto-post-facebook-extensions_1.0/assets/popup.js @@ -1 +1 @@ -import{R as c,j as s,Q as u,q as l,P as d}from"./popup-Bz59jSUd.js";import"./base64-BbJB1hmJ.js";import"./product-api.service--mothqFI.js";import"./app-C7VSS-q9.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})})); +import{R as c,j as s,Q as u,q as l,P as d}from"./popup-BMz864nQ.js";import"./base64-BbJB1hmJ.js";import"./product-api.service-PLptzR9s.js";import"./app-C7VSS-q9.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})})); diff --git a/auto-post-facebook-extensions_1.0/content/content.js b/auto-post-facebook-extensions_1.0/content/content.js index 79bd686..f04e19a 100644 --- a/auto-post-facebook-extensions_1.0/content/content.js +++ b/auto-post-facebook-extensions_1.0/content/content.js @@ -1,6 +1,6 @@ -(function(){"use strict";function Ee(t,e){return function(){return t.apply(e,arguments)}}const{toString:ot}=Object.prototype,{getPrototypeOf:ce}=Object,{iterator:W,toStringTag:ve}=Symbol,Z=(t=>e=>{const n=ot.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),C=t=>(t=t.toLowerCase(),e=>Z(e)===t),G=t=>e=>typeof e===t,{isArray:q}=Array,$=G("undefined");function z(t){return t!==null&&!$(t)&&t.constructor!==null&&!$(t.constructor)&&O(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const Se=C("ArrayBuffer");function st(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&Se(t.buffer),e}const at=G("string"),O=G("function"),Te=G("number"),J=t=>t!==null&&typeof t=="object",ct=t=>t===!0||t===!1,Y=t=>{if(Z(t)!=="object")return!1;const e=ce(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(ve in t)&&!(W in t)},lt=t=>{if(!J(t)||z(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},ut=C("Date"),dt=C("File"),ft=C("Blob"),ht=C("FileList"),pt=t=>J(t)&&O(t.pipe),mt=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||O(t.append)&&((e=Z(t))==="formdata"||e==="object"&&O(t.toString)&&t.toString()==="[object FormData]"))},wt=C("URLSearchParams"),[yt,bt,gt,Et]=["ReadableStream","Request","Response","Headers"].map(C),vt=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function V(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let r,i;if(typeof t!="object"&&(t=[t]),q(t))for(r=0,i=t.length;r0;)if(i=n[r],e===i.toLowerCase())return i;return null}const F=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,ke=t=>!$(t)&&t!==F;function le(){const{caseless:t}=ke(this)&&this||{},e={},n=(r,i)=>{const o=t&&Re(e,i)||i;Y(e[o])&&Y(r)?e[o]=le(e[o],r):Y(r)?e[o]=le({},r):q(r)?e[o]=r.slice():e[o]=r};for(let r=0,i=arguments.length;r(V(e,(i,o)=>{n&&O(i)?t[o]=Ee(i,n):t[o]=i},{allOwnKeys:r}),t),Tt=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Rt=(t,e,n,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},kt=(t,e,n,r)=>{let i,o,s;const c={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),o=i.length;o-- >0;)s=i[o],(!r||r(s,t,e))&&!c[s]&&(e[s]=t[s],c[s]=!0);t=n!==!1&&ce(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Ot=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const r=t.indexOf(e,n);return r!==-1&&r===n},Pt=t=>{if(!t)return null;if(q(t))return t;let e=t.length;if(!Te(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},At=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&ce(Uint8Array)),_t=(t,e)=>{const r=(t&&t[W]).call(t);let i;for(;(i=r.next())&&!i.done;){const o=i.value;e.call(t,o[0],o[1])}},xt=(t,e)=>{let n;const r=[];for(;(n=t.exec(e))!==null;)r.push(n);return r},Ct=C("HTMLFormElement"),Nt=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),Oe=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),It=C("RegExp"),Pe=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),r={};V(n,(i,o)=>{let s;(s=e(i,o,t))!==!1&&(r[o]=s||i)}),Object.defineProperties(t,r)},Bt=t=>{Pe(t,(e,n)=>{if(O(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=t[n];if(O(r)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Lt=(t,e)=>{const n={},r=i=>{i.forEach(o=>{n[o]=!0})};return q(t)?r(t):r(String(t).split(e)),n},Ft=()=>{},Ut=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Dt(t){return!!(t&&O(t.append)&&t[ve]==="FormData"&&t[W])}const Mt=t=>{const e=new Array(10),n=(r,i)=>{if(J(r)){if(e.indexOf(r)>=0)return;if(z(r))return r;if(!("toJSON"in r)){e[i]=r;const o=q(r)?[]:{};return V(r,(s,c)=>{const d=n(s,i+1);!$(d)&&(o[c]=d)}),e[i]=void 0,o}}return r};return n(t,0)},qt=C("AsyncFunction"),jt=t=>t&&(J(t)||O(t))&&O(t.then)&&O(t.catch),Ae=((t,e)=>t?setImmediate:e?((n,r)=>(F.addEventListener("message",({source:i,data:o})=>{i===F&&o===n&&r.length&&r.shift()()},!1),i=>{r.push(i),F.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",O(F.postMessage)),Ht=typeof queueMicrotask<"u"?queueMicrotask.bind(F):typeof process<"u"&&process.nextTick||Ae,a={isArray:q,isArrayBuffer:Se,isBuffer:z,isFormData:mt,isArrayBufferView:st,isString:at,isNumber:Te,isBoolean:ct,isObject:J,isPlainObject:Y,isEmptyObject:lt,isReadableStream:yt,isRequest:bt,isResponse:gt,isHeaders:Et,isUndefined:$,isDate:ut,isFile:dt,isBlob:ft,isRegExp:It,isFunction:O,isStream:pt,isURLSearchParams:wt,isTypedArray:At,isFileList:ht,forEach:V,merge:le,extend:St,trim:vt,stripBOM:Tt,inherits:Rt,toFlatObject:kt,kindOf:Z,kindOfTest:C,endsWith:Ot,toArray:Pt,forEachEntry:_t,matchAll:xt,isHTMLForm:Ct,hasOwnProperty:Oe,hasOwnProp:Oe,reduceDescriptors:Pe,freezeMethods:Bt,toObjectSet:Lt,toCamelCase:Nt,noop:Ft,toFiniteNumber:Ut,findKey:Re,global:F,isContextDefined:ke,isSpecCompliantForm:Dt,toJSONObject:Mt,isAsyncFn:qt,isThenable:jt,setImmediate:Ae,asap:Ht,isIterable:t=>t!=null&&O(t[W])};function m(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}a.inherits(m,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:a.toJSONObject(this.config),code:this.code,status:this.status}}});const _e=m.prototype,xe={};["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(t=>{xe[t]={value:t}}),Object.defineProperties(m,xe),Object.defineProperty(_e,"isAxiosError",{value:!0}),m.from=(t,e,n,r,i,o)=>{const s=Object.create(_e);return a.toFlatObject(t,s,function(d){return d!==Error.prototype},c=>c!=="isAxiosError"),m.call(s,t.message,e,n,r,i),s.cause=t,s.name=t.name,o&&Object.assign(s,o),s};const $t=null;function ue(t){return a.isPlainObject(t)||a.isArray(t)}function Ce(t){return a.endsWith(t,"[]")?t.slice(0,-2):t}function Ne(t,e,n){return t?t.concat(e).map(function(i,o){return i=Ce(i),!n&&o?"["+i+"]":i}).join(n?".":""):e}function zt(t){return a.isArray(t)&&!t.some(ue)}const Jt=a.toFlatObject(a,{},null,function(e){return/^is[A-Z]/.test(e)});function Q(t,e,n){if(!a.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=a.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,p){return!a.isUndefined(p[w])});const r=n.metaTokens,i=n.visitor||u,o=n.dots,s=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&a.isSpecCompliantForm(e);if(!a.isFunction(i))throw new TypeError("visitor must be a function");function l(h){if(h===null)return"";if(a.isDate(h))return h.toISOString();if(a.isBoolean(h))return h.toString();if(!d&&a.isBlob(h))throw new m("Blob is not supported. Use a Buffer instead.");return a.isArrayBuffer(h)||a.isTypedArray(h)?d&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,w,p){let v=h;if(h&&!p&&typeof h=="object"){if(a.endsWith(w,"{}"))w=r?w:w.slice(0,-2),h=JSON.stringify(h);else if(a.isArray(h)&&zt(h)||(a.isFileList(h)||a.endsWith(w,"[]"))&&(v=a.toArray(h)))return w=Ce(w),v.forEach(function(R,I){!(a.isUndefined(R)||R===null)&&e.append(s===!0?Ne([w],I,o):s===null?w:w+"[]",l(R))}),!1}return ue(h)?!0:(e.append(Ne(p,w,o),l(h)),!1)}const f=[],g=Object.assign(Jt,{defaultVisitor:u,convertValue:l,isVisitable:ue});function S(h,w){if(!a.isUndefined(h)){if(f.indexOf(h)!==-1)throw Error("Circular reference detected in "+w.join("."));f.push(h),a.forEach(h,function(v,T){(!(a.isUndefined(v)||v===null)&&i.call(e,v,a.isString(T)?T.trim():T,w,g))===!0&&S(v,w?w.concat(T):[T])}),f.pop()}}if(!a.isObject(t))throw new TypeError("data must be an object");return S(t),e}function Ie(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(r){return e[r]})}function de(t,e){this._pairs=[],t&&Q(t,this,e)}const Be=de.prototype;Be.append=function(e,n){this._pairs.push([e,n])},Be.toString=function(e){const n=e?function(r){return e.call(this,r,Ie)}:Ie;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function Vt(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Le(t,e,n){if(!e)return t;const r=n&&n.encode||Vt;a.isFunction(n)&&(n={serialize:n});const i=n&&n.serialize;let o;if(i?o=i(e,n):o=a.isURLSearchParams(e)?e.toString():new de(e,n).toString(r),o){const s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+o}return t}class Fe{constructor(){this.handlers=[]}use(e,n,r){return this.handlers.push({fulfilled:e,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){a.forEach(this.handlers,function(r){r!==null&&e(r)})}}const Ue={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Xt={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:de,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},fe=typeof window<"u"&&typeof document<"u",he=typeof navigator=="object"&&navigator||void 0,Kt=fe&&(!he||["ReactNative","NativeScript","NS"].indexOf(he.product)<0),Wt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Zt=fe&&window.location.href||"http://localhost",k={...Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:fe,hasStandardBrowserEnv:Kt,hasStandardBrowserWebWorkerEnv:Wt,navigator:he,origin:Zt},Symbol.toStringTag,{value:"Module"})),...Xt};function Gt(t,e){return Q(t,new k.classes.URLSearchParams,{visitor:function(n,r,i,o){return k.isNode&&a.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...e})}function Yt(t){return a.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function Qt(t){const e={},n=Object.keys(t);let r;const i=n.length;let o;for(r=0;r=n.length;return s=!s&&a.isArray(i)?i.length:s,d?(a.hasOwnProp(i,s)?i[s]=[i[s],r]:i[s]=r,!c):((!i[s]||!a.isObject(i[s]))&&(i[s]=[]),e(n,r,i[s],o)&&a.isArray(i[s])&&(i[s]=Qt(i[s])),!c)}if(a.isFormData(t)&&a.isFunction(t.entries)){const n={};return a.forEachEntry(t,(r,i)=>{e(Yt(r),i,n,0)}),n}return null}function en(t,e,n){if(a.isString(t))try{return(e||JSON.parse)(t),a.trim(t)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(t)}const X={transitional:Ue,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,o=a.isObject(e);if(o&&a.isHTMLForm(e)&&(e=new FormData(e)),a.isFormData(e))return i?JSON.stringify(De(e)):e;if(a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)||a.isReadableStream(e))return e;if(a.isArrayBufferView(e))return e.buffer;if(a.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let c;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Gt(e,this.formSerializer).toString();if((c=a.isFileList(e))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Q(c?{"files[]":e}:e,d&&new d,this.formSerializer)}}return o||i?(n.setContentType("application/json",!1),en(e)):e}],transformResponse:[function(e){const n=this.transitional||X.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(a.isResponse(e)||a.isReadableStream(e))return e;if(e&&a.isString(e)&&(r&&!this.responseType||i)){const s=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(e)}catch(c){if(s)throw c.name==="SyntaxError"?m.from(c,m.ERR_BAD_RESPONSE,this,null,this.response):c}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:k.classes.FormData,Blob:k.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};a.forEach(["delete","get","head","post","put","patch"],t=>{X.headers[t]={}});const tn=a.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"]),nn=t=>{const e={};let n,r,i;return t&&t.split(` -`).forEach(function(s){i=s.indexOf(":"),n=s.substring(0,i).trim().toLowerCase(),r=s.substring(i+1).trim(),!(!n||e[n]&&tn[n])&&(n==="set-cookie"?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)}),e},Me=Symbol("internals");function K(t){return t&&String(t).trim().toLowerCase()}function ee(t){return t===!1||t==null?t:a.isArray(t)?t.map(ee):String(t)}function rn(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(t);)e[r[1]]=r[2];return e}const on=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function pe(t,e,n,r,i){if(a.isFunction(r))return r.call(this,e,n);if(i&&(e=n),!!a.isString(e)){if(a.isString(r))return e.indexOf(r)!==-1;if(a.isRegExp(r))return r.test(e)}}function sn(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,r)=>n.toUpperCase()+r)}function an(t,e){const n=a.toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(t,r+n,{value:function(i,o,s){return this[r].call(this,e,i,o,s)},configurable:!0})})}let P=class{constructor(e){e&&this.set(e)}set(e,n,r){const i=this;function o(c,d,l){const u=K(d);if(!u)throw new Error("header name must be a non-empty string");const f=a.findKey(i,u);(!f||i[f]===void 0||l===!0||l===void 0&&i[f]!==!1)&&(i[f||d]=ee(c))}const s=(c,d)=>a.forEach(c,(l,u)=>o(l,u,d));if(a.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(a.isString(e)&&(e=e.trim())&&!on(e))s(nn(e),n);else if(a.isObject(e)&&a.isIterable(e)){let c={},d,l;for(const u of e){if(!a.isArray(u))throw TypeError("Object iterator must return a key-value pair");c[l=u[0]]=(d=c[l])?a.isArray(d)?[...d,u[1]]:[d,u[1]]:u[1]}s(c,n)}else e!=null&&o(n,e,r);return this}get(e,n){if(e=K(e),e){const r=a.findKey(this,e);if(r){const i=this[r];if(!n)return i;if(n===!0)return rn(i);if(a.isFunction(n))return n.call(this,i,r);if(a.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=K(e),e){const r=a.findKey(this,e);return!!(r&&this[r]!==void 0&&(!n||pe(this,this[r],r,n)))}return!1}delete(e,n){const r=this;let i=!1;function o(s){if(s=K(s),s){const c=a.findKey(r,s);c&&(!n||pe(r,r[c],c,n))&&(delete r[c],i=!0)}}return a.isArray(e)?e.forEach(o):o(e),i}clear(e){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const o=n[r];(!e||pe(this,this[o],o,e,!0))&&(delete this[o],i=!0)}return i}normalize(e){const n=this,r={};return a.forEach(this,(i,o)=>{const s=a.findKey(r,o);if(s){n[s]=ee(i),delete n[o];return}const c=e?sn(o):String(o).trim();c!==o&&delete n[o],n[c]=ee(i),r[c]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return a.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=e&&a.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(` -`)}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,...n){const r=new this(e);return n.forEach(i=>r.set(i)),r}static accessor(e){const r=(this[Me]=this[Me]={accessors:{}}).accessors,i=this.prototype;function o(s){const c=K(s);r[c]||(an(i,s),r[c]=!0)}return a.isArray(e)?e.forEach(o):o(e),this}};P.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),a.reduceDescriptors(P.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(r){this[n]=r}}}),a.freezeMethods(P);function me(t,e){const n=this||X,r=e||n,i=P.from(r.headers);let o=r.data;return a.forEach(t,function(c){o=c.call(n,o,i.normalize(),e?e.status:void 0)}),i.normalize(),o}function qe(t){return!!(t&&t.__CANCEL__)}function j(t,e,n){m.call(this,t??"canceled",m.ERR_CANCELED,e,n),this.name="CanceledError"}a.inherits(j,m,{__CANCEL__:!0});function je(t,e,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?t(n):e(new m("Request failed with status code "+n.status,[m.ERR_BAD_REQUEST,m.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function cn(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ln(t,e){t=t||10;const n=new Array(t),r=new Array(t);let i=0,o=0,s;return e=e!==void 0?e:1e3,function(d){const l=Date.now(),u=r[o];s||(s=l),n[i]=d,r[i]=l;let f=o,g=0;for(;f!==i;)g+=n[f++],f=f%t;if(i=(i+1)%t,i===o&&(o=(o+1)%t),l-s{n=u,i=null,o&&(clearTimeout(o),o=null),t(...l)};return[(...l)=>{const u=Date.now(),f=u-n;f>=r?s(l,u):(i=l,o||(o=setTimeout(()=>{o=null,s(i)},r-f)))},()=>i&&s(i)]}const te=(t,e,n=3)=>{let r=0;const i=ln(50,250);return un(o=>{const s=o.loaded,c=o.lengthComputable?o.total:void 0,d=s-r,l=i(d),u=s<=c;r=s;const f={loaded:s,total:c,progress:c?s/c:void 0,bytes:d,rate:l||void 0,estimated:l&&c&&u?(c-s)/l:void 0,event:o,lengthComputable:c!=null,[e?"download":"upload"]:!0};t(f)},n)},He=(t,e)=>{const n=t!=null;return[r=>e[0]({lengthComputable:n,total:t,loaded:r}),e[1]]},$e=t=>(...e)=>a.asap(()=>t(...e)),dn=k.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,k.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(k.origin),k.navigator&&/(msie|trident)/i.test(k.navigator.userAgent)):()=>!0,fn=k.hasStandardBrowserEnv?{write(t,e,n,r,i,o){const s=[t+"="+encodeURIComponent(e)];a.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),a.isString(r)&&s.push("path="+r),a.isString(i)&&s.push("domain="+i),o===!0&&s.push("secure"),document.cookie=s.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function hn(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function pn(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function ze(t,e,n){let r=!hn(e);return t&&(r||n==!1)?pn(t,e):e}const Je=t=>t instanceof P?{...t}:t;function U(t,e){e=e||{};const n={};function r(l,u,f,g){return a.isPlainObject(l)&&a.isPlainObject(u)?a.merge.call({caseless:g},l,u):a.isPlainObject(u)?a.merge({},u):a.isArray(u)?u.slice():u}function i(l,u,f,g){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l,f,g)}else return r(l,u,f,g)}function o(l,u){if(!a.isUndefined(u))return r(void 0,u)}function s(l,u){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l)}else return r(void 0,u)}function c(l,u,f){if(f in e)return r(l,u);if(f in t)return r(void 0,l)}const d={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:c,headers:(l,u,f)=>i(Je(l),Je(u),f,!0)};return a.forEach(Object.keys({...t,...e}),function(u){const f=d[u]||i,g=f(t[u],e[u],u);a.isUndefined(g)&&f!==c||(n[u]=g)}),n}const Ve=t=>{const e=U({},t);let{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:o,headers:s,auth:c}=e;e.headers=s=P.from(s),e.url=Le(ze(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),c&&s.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):"")));let d;if(a.isFormData(n)){if(k.hasStandardBrowserEnv||k.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if((d=s.getContentType())!==!1){const[l,...u]=d?d.split(";").map(f=>f.trim()).filter(Boolean):[];s.setContentType([l||"multipart/form-data",...u].join("; "))}}if(k.hasStandardBrowserEnv&&(r&&a.isFunction(r)&&(r=r(e)),r||r!==!1&&dn(e.url))){const l=i&&o&&fn.read(o);l&&s.set(i,l)}return e},mn=typeof XMLHttpRequest<"u"&&function(t){return new Promise(function(n,r){const i=Ve(t);let o=i.data;const s=P.from(i.headers).normalize();let{responseType:c,onUploadProgress:d,onDownloadProgress:l}=i,u,f,g,S,h;function w(){S&&S(),h&&h(),i.cancelToken&&i.cancelToken.unsubscribe(u),i.signal&&i.signal.removeEventListener("abort",u)}let p=new XMLHttpRequest;p.open(i.method.toUpperCase(),i.url,!0),p.timeout=i.timeout;function v(){if(!p)return;const R=P.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),A={data:!c||c==="text"||c==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:R,config:t,request:p};je(function(M){n(M),w()},function(M){r(M),w()},A),p=null}"onloadend"in p?p.onloadend=v:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf("file:")===0)||setTimeout(v)},p.onabort=function(){p&&(r(new m("Request aborted",m.ECONNABORTED,t,p)),p=null)},p.onerror=function(){r(new m("Network Error",m.ERR_NETWORK,t,p)),p=null},p.ontimeout=function(){let I=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const A=i.transitional||Ue;i.timeoutErrorMessage&&(I=i.timeoutErrorMessage),r(new m(I,A.clarifyTimeoutError?m.ETIMEDOUT:m.ECONNABORTED,t,p)),p=null},o===void 0&&s.setContentType(null),"setRequestHeader"in p&&a.forEach(s.toJSON(),function(I,A){p.setRequestHeader(A,I)}),a.isUndefined(i.withCredentials)||(p.withCredentials=!!i.withCredentials),c&&c!=="json"&&(p.responseType=i.responseType),l&&([g,h]=te(l,!0),p.addEventListener("progress",g)),d&&p.upload&&([f,S]=te(d),p.upload.addEventListener("progress",f),p.upload.addEventListener("loadend",S)),(i.cancelToken||i.signal)&&(u=R=>{p&&(r(!R||R.type?new j(null,t,p):R),p.abort(),p=null)},i.cancelToken&&i.cancelToken.subscribe(u),i.signal&&(i.signal.aborted?u():i.signal.addEventListener("abort",u)));const T=cn(i.url);if(T&&k.protocols.indexOf(T)===-1){r(new m("Unsupported protocol "+T+":",m.ERR_BAD_REQUEST,t));return}p.send(o||null)})},wn=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let r=new AbortController,i;const o=function(l){if(!i){i=!0,c();const u=l instanceof Error?l:this.reason;r.abort(u instanceof m?u:new j(u instanceof Error?u.message:u))}};let s=e&&setTimeout(()=>{s=null,o(new m(`timeout ${e} of ms exceeded`,m.ETIMEDOUT))},e);const c=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(o):l.removeEventListener("abort",o)}),t=null)};t.forEach(l=>l.addEventListener("abort",o));const{signal:d}=r;return d.unsubscribe=()=>a.asap(c),d}},yn=function*(t,e){let n=t.byteLength;if(n{const i=bn(t,e);let o=0,s,c=d=>{s||(s=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:l,value:u}=await i.next();if(l){c(),d.close();return}let f=u.byteLength;if(n){let g=o+=f;n(g)}d.enqueue(new Uint8Array(u))}catch(l){throw c(l),l}},cancel(d){return c(d),i.return()}},{highWaterMark:2})},ne=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Ke=ne&&typeof ReadableStream=="function",En=ne&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),We=(t,...e)=>{try{return!!t(...e)}catch{return!1}},vn=Ke&&We(()=>{let t=!1;const e=new Request(k.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),Ze=64*1024,we=Ke&&We(()=>a.isReadableStream(new Response("").body)),re={stream:we&&(t=>t.body)};ne&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!re[e]&&(re[e]=a.isFunction(t[e])?n=>n[e]():(n,r)=>{throw new m(`Response type '${e}' is not supported`,m.ERR_NOT_SUPPORT,r)})})})(new Response);const Sn=async t=>{if(t==null)return 0;if(a.isBlob(t))return t.size;if(a.isSpecCompliantForm(t))return(await new Request(k.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(a.isArrayBufferView(t)||a.isArrayBuffer(t))return t.byteLength;if(a.isURLSearchParams(t)&&(t=t+""),a.isString(t))return(await En(t)).byteLength},Tn=async(t,e)=>{const n=a.toFiniteNumber(t.getContentLength());return n??Sn(e)},ye={http:$t,xhr:mn,fetch:ne&&(async t=>{let{url:e,method:n,data:r,signal:i,cancelToken:o,timeout:s,onDownloadProgress:c,onUploadProgress:d,responseType:l,headers:u,withCredentials:f="same-origin",fetchOptions:g}=Ve(t);l=l?(l+"").toLowerCase():"text";let S=wn([i,o&&o.toAbortSignal()],s),h;const w=S&&S.unsubscribe&&(()=>{S.unsubscribe()});let p;try{if(d&&vn&&n!=="get"&&n!=="head"&&(p=await Tn(u,r))!==0){let A=new Request(e,{method:"POST",body:r,duplex:"half"}),L;if(a.isFormData(r)&&(L=A.headers.get("content-type"))&&u.setContentType(L),A.body){const[M,ae]=He(p,te($e(d)));r=Xe(A.body,Ze,M,ae)}}a.isString(f)||(f=f?"include":"omit");const v="credentials"in Request.prototype;h=new Request(e,{...g,signal:S,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:v?f:void 0});let T=await fetch(h,g);const R=we&&(l==="stream"||l==="response");if(we&&(c||R&&w)){const A={};["status","statusText","headers"].forEach(rt=>{A[rt]=T[rt]});const L=a.toFiniteNumber(T.headers.get("content-length")),[M,ae]=c&&He(L,te($e(c),!0))||[];T=new Response(Xe(T.body,Ze,M,()=>{ae&&ae(),w&&w()}),A)}l=l||"text";let I=await re[a.findKey(re,l)||"text"](T,t);return!R&&w&&w(),await new Promise((A,L)=>{je(A,L,{data:I,headers:P.from(T.headers),status:T.status,statusText:T.statusText,config:t,request:h})})}catch(v){throw w&&w(),v&&v.name==="TypeError"&&/Load failed|fetch/i.test(v.message)?Object.assign(new m("Network Error",m.ERR_NETWORK,t,h),{cause:v.cause||v}):m.from(v,v&&v.code,t,h)}})};a.forEach(ye,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const Ge=t=>`- ${t}`,Rn=t=>a.isFunction(t)||t===null||t===!1,Ye={getAdapter:t=>{t=a.isArray(t)?t:[t];const{length:e}=t;let n,r;const i={};for(let o=0;o`adapter ${c} `+(d===!1?"is not supported by the environment":"is not available in the build"));let s=e?o.length>1?`since : -`+o.map(Ge).join(` -`):" "+Ge(o[0]):"as no adapter specified";throw new m("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return r},adapters:ye};function be(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new j(null,t)}function Qe(t){return be(t),t.headers=P.from(t.headers),t.data=me.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Ye.getAdapter(t.adapter||X.adapter)(t).then(function(r){return be(t),r.data=me.call(t,t.transformResponse,r),r.headers=P.from(r.headers),r},function(r){return qe(r)||(be(t),r&&r.response&&(r.response.data=me.call(t,t.transformResponse,r.response),r.response.headers=P.from(r.response.headers))),Promise.reject(r)})}const et="1.11.0",ie={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{ie[t]=function(r){return typeof r===t||"a"+(e<1?"n ":" ")+t}});const tt={};ie.transitional=function(e,n,r){function i(o,s){return"[Axios v"+et+"] Transitional option '"+o+"'"+s+(r?". "+r:"")}return(o,s,c)=>{if(e===!1)throw new m(i(s," has been removed"+(n?" in "+n:"")),m.ERR_DEPRECATED);return n&&!tt[s]&&(tt[s]=!0,console.warn(i(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(o,s,c):!0}},ie.spelling=function(e){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};function kn(t,e,n){if(typeof t!="object")throw new m("options must be an object",m.ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let i=r.length;for(;i-- >0;){const o=r[i],s=e[o];if(s){const c=t[o],d=c===void 0||s(c,o,t);if(d!==!0)throw new m("option "+o+" must be "+d,m.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new m("Unknown option "+o,m.ERR_BAD_OPTION)}}const oe={assertOptions:kn,validators:ie},N=oe.validators;let D=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Fe,response:new Fe}}async request(e,n){try{return await this._request(e,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=i.stack?i.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+o):r.stack=o}catch{}}throw r}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=U(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:o}=n;r!==void 0&&oe.assertOptions(r,{silentJSONParsing:N.transitional(N.boolean),forcedJSONParsing:N.transitional(N.boolean),clarifyTimeoutError:N.transitional(N.boolean)},!1),i!=null&&(a.isFunction(i)?n.paramsSerializer={serialize:i}:oe.assertOptions(i,{encode:N.function,serialize:N.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),oe.assertOptions(n,{baseUrl:N.spelling("baseURL"),withXsrfToken:N.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=o&&a.merge(o.common,o[n.method]);o&&a.forEach(["delete","get","head","post","put","patch","common"],h=>{delete o[h]}),n.headers=P.concat(s,o);const c=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,c.unshift(w.fulfilled,w.rejected))});const l=[];this.interceptors.response.forEach(function(w){l.push(w.fulfilled,w.rejected)});let u,f=0,g;if(!d){const h=[Qe.bind(this),void 0];for(h.unshift(...c),h.push(...l),g=h.length,u=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](i);r._listeners=null}),this.promise.then=i=>{let o;const s=new Promise(c=>{r.subscribe(c),o=c}).then(i);return s.cancel=function(){r.unsubscribe(o)},s},e(function(o,s,c){r.reason||(r.reason=new j(o,s,c),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=r=>{e.abort(r)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new it(function(i){e=i}),cancel:e}}};function Pn(t){return function(n){return t.apply(null,n)}}function An(t){return a.isObject(t)&&t.isAxiosError===!0}const ge={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(ge).forEach(([t,e])=>{ge[e]=t});function nt(t){const e=new D(t),n=Ee(D.prototype.request,e);return a.extend(n,D.prototype,e,{allOwnKeys:!0}),a.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return nt(U(t,i))},n}const E=nt(X);E.Axios=D,E.CanceledError=j,E.CancelToken=On,E.isCancel=qe,E.VERSION=et,E.toFormData=Q,E.AxiosError=m,E.Cancel=E.CanceledError,E.all=function(e){return Promise.all(e)},E.spread=Pn,E.isAxiosError=An,E.mergeConfig=U,E.AxiosHeaders=P,E.formToJSON=t=>De(a.isHTMLForm(t)?new FormData(t):t),E.getAdapter=Ye.getAdapter,E.HttpStatusCode=ge,E.default=E;const{Axios:Hn,AxiosError:$n,CanceledError:zn,isCancel:Jn,CancelToken:Vn,VERSION:Xn,all:Kn,Cancel:Wn,isAxiosError:Zn,spread:Gn,toFormData:Yn,AxiosHeaders:Qn,HttpStatusCode:er,formToJSON:tr,getAdapter:nr,mergeConfig:rr}=E,se=E.create({baseURL:"http://localhost:3000",headers:{"Content-Type":"application/json",Authorization:"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2ludC5pcHN1cHBseS5jb20uYXUvYXBpL2xvZ2luIiwiaWF0IjoxNzIxNjA5MTEzLCJleHAiOjMyMzUzMzcxMTMsIm5iZiI6MTcyMTYwOTExMywianRpIjoiWHpCZkZPc0ZJUlFxaEZvaiIsInN1YiI6MSwicHJ2IjoiYzhlZTFmYzg5ZTc3NWVjNGM3Mzg2NjdlNWJlMTdhNTkwYjZkNDBmYyJ9.kFFEPpdmNUp-kn_G3cIIc26bivO6tbfcvkpG9I8Im7M"}});class _n{item_per_page=10;async index(e){const n={skip:0,limit:10,order:"updatedAt desc",where:{account:"prology_net",status:"Updated"}};return se({method:"POST",data:{urlAPI:"/api/ebay-listing/listing-get-list",filter:{...n,...e,where:{...n.where,...e?.where}}}})}async get(e){return se({method:"POST",data:{filter:{where:{account:"prology_net",condition:e.raw_condition,productModelCode:e.sku}},pageCurrent:"/ebaytools/listing-ebay",urlAPI:"/api/ebay-listing/get-image-listing"}})}async sync(e){return se({url:"sync",method:"POST",data:e})}async getPublistedProducts(){return se({url:"data"})}async apiRequest(e,n){return new Promise((r,i)=>{const o="req_"+Date.now()+"_"+Math.random();function s(c){c.data.type==="API_RESPONSE"&&c.data.requestId===o&&(window.removeEventListener("message",s),c.data.error?i(c.data.error):r(c.data.payload))}window.addEventListener("message",s),window.postMessage({type:"API_REQUEST",requestId:o,payload:n,fn:e},"*")})}}const H=new _n;function B(t){return new Promise(e=>setTimeout(e,t))}function b(t,e){const n=Math.floor(Math.random()*(e-t+1))+t;return B(n)}class xn{static ID_EXTENSION="ex-root"}class Cn{base64ToFile(e,n,r){const i=e.includes(",")?e.split(",")[1]:e,o=atob(i),s=new ArrayBuffer(o.length),c=new Uint8Array(s);for(let l=0;l{let s=0,c=!1;const d=()=>{const l=document.evaluate(c&&i?i:e,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;if(l instanceof HTMLElement){o(l);return}s++,s{const s=new FileReader;s.onloadend=()=>{typeof s.result=="string"?i(s.result.split(",")[1]):o("Không thể đọc dữ liệu ảnh")},s.onerror=o,s.readAsDataURL(r)})}getImageExtension(e){try{const r=new URL(e).pathname.match(/\.([a-zA-Z0-9]+)$/);return r?r[1].toLowerCase():null}catch{const i=e.split("?")[0].match(/\.([a-zA-Z0-9]+)$/);return i?i[1].toLowerCase():null}}imageLocalToBase64(e){return new Promise((n,r)=>{try{const i=chrome.runtime.getURL(`${e}`);fetch(i).then(o=>o.blob()).then(o=>{const s=new FileReader;s.onloadend=()=>n(s.result),s.onerror=r,s.readAsDataURL(o)}).catch(r)}catch(i){r(i)}})}scrollToElement(e,n="smooth"){e&&e.scrollIntoView({behavior:n,block:"center",inline:"nearest"})}getElementPointCoores(e){if(!e)return null;const n=e.getBoundingClientRect(),r=n.left+n.width/2,i=n.top+n.height/2;return{x:r,y:i}}setInputValue(e,n){e&&(e.value=n,e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})))}writeToInput=async(e,n)=>{let r;if(typeof n=="string"?r=await this.getElementByXPath(n):r=n,!r)throw new Error("Xpath is not found with value: "+e);this.scrollToElement(r),this.clickByPoint(r),this.setInputValue(r,e)};pressEnter(e){if(!e)throw new Error("Textarea not found:",e);e.focus(),["keydown","keypress","keyup"].forEach(n=>{e.dispatchEvent(new KeyboardEvent(n,{key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0}))})}findNestedElement(e,n,r){const i=document.querySelector(e);if(!i)return null;const o=i.querySelectorAll(n);for(const s of o)if(s.innerText.trim().toLowerCase()===r.toLowerCase())return s;return null}findNestedIcElement(e,n,r){let i=null;if(typeof e=="string"){if(document.querySelector(e),!i)return null}else i=e;const o=i.querySelectorAll(n);for(const s of o)if(s.innerText.trim().toLowerCase().includes(r.toLowerCase()))return s;return null}findElInParent(e,n){return e&&e.parentElement?.querySelector(n)||null}waitForElement(e,n=100){return new Promise(r=>{const i=d=>d.offsetParent!==null&&(d.childElementCount>0||d.innerText.trim().length>0),o=()=>{const d=document.querySelector(e);d&&i(d)&&(s.disconnect(),clearInterval(c),r(d))},s=new MutationObserver(o);s.observe(document.body,{childList:!0,subtree:!0});const c=setInterval(o,n);o()})}}const y=new Cn;class Nn{sellingPath="https://www.facebook.com/marketplace/you/selling";marketPath="https://www.facebook.com/marketplace";createItem="https://www.facebook.com/marketplace/create/item";editItem="https://www.facebook.com/marketplace/edit";selectors={file__image_input:'input[type="file"]',next_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[5]/div/div/div",update_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[4]/div/div/div",publish_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[4]/div[2]/div/div",products:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[2]/div/div/div[2]/div[1]/div/div[2]/div[2]/div",products_fallback:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[2]/div/div/div[2]/div[1]/div/div[3]/div/div/span/div[2]/div",option_btn:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div/div/div/div[3]/div/div/div/div/div[1]/div",option_btn_fallback:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div[3]/div[2]/div/div[2]/div[1]",close_btn_modal_feedback:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div[2]/div",images_container:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[2]/div[1]/div[2]/div/div/div[3]/div[2]/div",description_edit_input:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[9]/div/div/div[2]/div/div/div/label/div/div/textarea",sku_edit_input:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[9]/div/div/div[5]/div/div/div[1]/label/div/input",new_item_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[7]/a/div",item_for_sell:"/html/body/div[1]/div/div[1]/div/div[5]/div/div/div[3]/div[2]/div[2]/div/div/div[2]/div[1]/div/span/div/div/div[1]/div/div",market_container:'[aria-label="Marketplace"]'};findInputByTitle(e,n="input"){const r=y.findNestedElement(this.selectors.market_container,"span",e);if(!r)throw new Error("Not found input by title: "+e);return y.findElInParent(r,n)}clearImages=async()=>{document.querySelectorAll('[aria-label="Remove"]').forEach(e=>e?.click())};uploadImages=async e=>{const n=new DataTransfer;for(const i of e.images){const o=await y.imageUrlToBase64(i);console.log("Base64:",i.slice(0,50)+"...");const s=y.base64ToFile(o,e.sku,y.getImageExtension(i)||"jpg");n.items.add(s)}const r=document.querySelector(this.selectors.file__image_input);r?(r.files=n.files,r.dispatchEvent(new Event("change",{bubbles:!0}))):console.error("Không tìm thấy input[type='file']")};chooseSelect=async(e,n,r='[aria-label="Dropdown menu"]')=>{const i=y.findNestedElement(this.selectors.market_container,"span",n);y.scrollToElement(i),await b(500,600),i?.click(),await b(500,600);const o=y.findNestedElement(r,"span",e);if(await b(500,600),!o)throw new Error(`No child found with text "${e}"`);y.scrollToElement(o),await b(500,600),o.click(),await b(500,600)};chooseLocation=async e=>{const n=this.findInputByTitle("location");await y.writeToInput(e,n),await B(600);const r=document.querySelector('[role="listbox"]')?.querySelectorAll("li")||[],i=Array.from(r).find(o=>o.innerHTML.trim().toLowerCase().includes(e.toLowerCase()));if(console.log(i),!i)throw new Error(`No child found with text "${e}"`);y.scrollToElement(i),await B(400),y.clickByPoint(i)};writeTags=async e=>{const n=this.findInputByTitle("product tags","textarea");if(!n)throw new Error("Input is not found");y.scrollToElement(n),await B(500);for(const r of e)await y.writeToInput(r,n),await B(300),y.pressEnter(n)};clickNext=async()=>{const e=await y.getElementByXPath(this.selectors.next_btn);if(!e)throw new Error("Next button is not found");y.clickByPoint(e)};clickUpdate=async()=>{const e=await y.getElementByXPath(this.selectors.update_btn);if(!e)throw new Error("Next button is not found");y.clickByPoint(e)};clickPublist=async()=>{const e=await y.getElementByXPath(this.selectors.publish_btn);if(!e)throw new Error("Publist button is not found");y.clickByPoint(e)};handlePublist=async e=>{console.log({item:e}),await b(600,1e3),await this.uploadImages(e),await b(600,1e3);const n=this.findInputByTitle("title");y.writeToInput(e.title,n),await b(600,1e3);const r=this.findInputByTitle("price");if(y.writeToInput(String(e.price),r),await b(600,1e3),await this.chooseSelect(e.category,"category"),await b(600,1e3),await this.chooseSelect(e.condition,"condition",'[aria-label="Select an option"]'),e.brand){await b(600,1e3);const s=this.findInputByTitle("brand");await y.writeToInput(e.brand,s)}await b(600,1e3);const i=this.findInputByTitle("description","textarea");await y.writeToInput(e.description,i),await b(600,1e3),await this.writeTags(e.tags),await b(600,1e3);const o=this.findInputByTitle("sku");return await y.writeToInput(e.sku,o),e?.location&&(await b(600,1e3),await this.chooseLocation(e.location)),await b(300,500),await this.clickNext(),!0};handleRePublist=async e=>{console.log({item:e}),await y.waitForElement('[aria-label="Collection of your Marketplace items"]');const n=await this.getOptionEls(e);console.log({items:n}),this.clickItemInList(n,"edit"),await B(1e3),await this.waitForPageReady(this.editItem,this.selectors.market_container),await b(1e3,2e3),await this.clearImages(),await b(600,1e3),await this.uploadImages(e),await b(600,1e3);const r=this.findInputByTitle("title");y.writeToInput(e.title,r),await b(600,1e3);const i=this.findInputByTitle("price");y.writeToInput(String(e.price),i),await b(600,1e3),await this.chooseSelect(e.category,"category"),await b(600,1e3),await this.chooseSelect(e.condition,"condition",'[aria-label="Select an option"]'),await b(600,1e3);const o=this.findInputByTitle("description","textarea");return await y.writeToInput(e.description,o),await b(600,1e3),await this.writeTags(e.tags),await b(600,1e3),e?.location&&(await b(600,1e3),await this.chooseLocation(e.location)),!0};getProducts=async()=>{const e=await y.getElementByXPath(this.selectors.products),n=await y.getElementByXPath(this.selectors.products_fallback);console.log({products1:e,products2:n});const r=[e,n].filter(Boolean);return r.length===0?[]:r.flatMap(i=>this.extractListings(i))};extractListings(e){return Array.from(e.children).map(r=>{const o=r.querySelector('span[dir="auto"], div[dir="auto"]')?.textContent?.trim()||"",s=document.querySelectorAll(`[aria-label="${o}"]`),c=Array.from(s).filter(f=>!f.querySelector("img"))[0],l=y.findNestedIcElement(c,"span","AU$")?.textContent?.match(/[\d,]+(?:\.\d+)?/),u=l?parseFloat(l[0].replace(/,/g,"")):0;return{title:o,price:u,el:e}})}closeTab=async e=>{chrome.runtime.sendMessage({type:"close-tab",payload:e})};clickOptionOfProduct(e){const n=document.querySelector(`[aria-label="More options for ${e.title}"]`);if(!n)throw new Error(`Not found option buttin in product ${`[aria-label="More options for ${e.title}"]`}, ID: ${e.id}`);y.scrollToElement(n),n.click?.()}async getOptionEls(e){return this.clickOptionOfProduct(e),await B(2e3),Array.from(document.querySelectorAll('[role="menuitem"]'))}clickItemInList(e,n){const r=e.find(i=>i.textContent.toLocaleLowerCase().includes(n));if(!r)throw new Error(`Not found item ${n} in options list`);r.click?.()}getItemInList(e,n){const r=e.find(i=>i.textContent.toLocaleLowerCase().includes(n));if(!r)throw new Error(`Not found item ${n} in options list`);return r}handleDelete=async e=>{const n=await this.getOptionEls(e);console.log({items:n}),this.clickItemInList(n,"delete"),await B(1e3);const r=await y.getElementByXPath(this.selectors.option_btn,{xpathFallback:this.selectors.option_btn_fallback});console.log({confirmBtn:r}),r?.click(),(await y.getElementByXPath(this.selectors.close_btn_modal_feedback))?.click(),chrome.runtime.sendMessage({type:"delete-done"})};waitForUrlContains(e,n=1e4){return new Promise((r,i)=>{const o=Date.now(),s=()=>{window.location.href.includes(e)?r():Date.now()-o>n?i(new Error("Timeout waiting for URL change")):setTimeout(s,500)};s()})}waitForPageReady(e,n,r=15e3){return new Promise((i,o)=>{const s=Date.now(),c=async()=>{window.location.href.includes(e)&&document.querySelector(n)?i():Date.now()-s>r?o(new Error("Timeout waiting for selling page ready")):setTimeout(c,500)};c()})}syncListing=async()=>{window.location.href.includes(this.sellingPath)||(document.querySelector('a[href="/marketplace/you/selling/"]')?.click?.(),await this.waitForPageReady(this.sellingPath,this.selectors.products)),await _.getProducts()};extractMarketplaceItemId(e){const n=e.match(/\/marketplace\/item\/(\d+)/);return n?n[1]:null}handleGetPublistID=async e=>{const n=await _.getProducts(),r=n.find(c=>c.title==e.title&&c.price==e.price);if(console.log({payload:e,product:r,products:n}),!r)return;r.el;const i=await this.getOptionEls(e),o=this.getItemInList(i,"view listing"),s=this.extractMarketplaceItemId(o.href);return this.clickOptionOfProduct(e),s};async gotoPublist(){(await y.getElementByXPath(this.selectors.new_item_btn))?.click(),await b(400,800),(await y.getElementByXPath(this.selectors.item_for_sell))?.click()}async gotoSell(){document.querySelector('[href="/marketplace/you/selling/"]')?.click()}}const _=new Nn;class In{role;listeners;constructor(e){this.role=e,this.listeners=new Map,chrome.runtime.onMessage.addListener((n,r,i)=>{if(n?.type&&this.listeners.has(n.type))return this.listeners.get(n.type)(n.payload,r,i),!0})}on(e,n){this.listeners.set(e,n)}send(e,n,r){const i={from:this.role,to:e,type:n,payload:r};(this.role==="popup"||this.role==="content")&&chrome.runtime.sendMessage(i),this.role==="background"&&(e==="content"?chrome.tabs.query({active:!0,currentWindow:!0},o=>{o[0]?.id&&chrome.tabs.sendMessage(o[0].id,i,()=>{chrome.runtime.lastError&&console.warn("Không gửi được tới content script:",chrome.runtime.lastError.message)})}):e==="popup"&&chrome.runtime.sendMessage(i,()=>{chrome.runtime.lastError&&console.warn("Không gửi được tới popup:",chrome.runtime.lastError.message)}))}sendToTab(e,n,r){if(this.role!=="background")throw new Error("sendToTab chỉ được gọi từ background");const i={from:this.role,to:"content",type:n,payload:r};chrome.tabs.sendMessage(e,i,()=>{chrome.runtime.lastError&&console.warn(`Không gửi được tới content script ở tab ${e}:`,chrome.runtime.lastError.message)})}waitForMessage(e,n=3e4){return new Promise((r,i)=>{let o;const s=c=>{clearTimeout(o),this.off(e,s),r(c)};o=setTimeout(()=>{this.off(e,s),i(new Error(`Timeout khi chờ message: ${e}`))},n),this.on(e,s)})}off(e,n){this.listeners.get(e)===n&&this.listeners.delete(e)}}const x=new In("content"),Bn=()=>{const t=xn.ID_EXTENSION;if(document.getElementById(t))return;const e=document.createElement("div");e.id=t,document.body.appendChild(e);const n=document.createElement("script");n.src=chrome.runtime.getURL("content/inject-ui.js"),n.type="module",document.body.appendChild(n);const r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.href=chrome.runtime.getURL("assets/style.css"),document.head.appendChild(r)};x.on("background-to-content-publish",async t=>{try{console.log("[publish] Content nhận:",t),await b(800,1e3),await _.handlePublist(t.data)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-publish",{msg:t})}}),x.on("background-to-content-unlist",async t=>{try{console.log("[unlist] Content nhận:",t),await b(800,1e3),await _.gotoSell(),await b(800,1e3),await _.handleDelete(t.data),await b(800,1e3);const e=await _.getProducts();await b(800,1e3),H.sync(e)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-unlist",{msg:t})}}),x.on("background-to-content-re-publist",async t=>{try{console.log("[re-publist] Content nhận:",t),await b(800,1e3),await _.gotoSell(),await b(800,1e3),await _.handleRePublist(t.data)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-re-publist",{msg:t})}}),window.addEventListener("message",async t=>{if(t.source===window&&t.data.type==="API_REQUEST"){const e=t.data.payload,n=t.data.fn,{requestId:r}=t.data;console.log({requestId:r,event:t,body:e});try{let i=null;switch(n){case"index":{i=(await H.index(e)).data;break}case"getPublistedProducts":{i=(await H.getPublistedProducts()).data;break}case"get":{i=(await H.get(e)).data,console.log({data:i,body:e});break}case"createBlobUrl":{x.send("background","content-to-background-create-blod-urls",e),i=await x.waitForMessage("background-to-content-create-blod-urls"),console.log({data:i});break}case"publist":{x.send("background","content-to-background-actions",{type:"publist",data:e}),i=await x.waitForMessage("background-to-content-actions");break}case"unlist":{x.send("background","content-to-background-actions",{type:"unlist",data:e}),console.log({body:e}),i=await x.waitForMessage("background-to-content-actions"),console.log({unlisted:i});break}case"sync":{const o=await _.getProducts();console.log({products:o}),await H.sync(o),i=o;break}}window.postMessage({type:"API_RESPONSE",requestId:r,payload:i},"*")}catch(i){window.postMessage({type:"API_RESPONSE",requestId:r,error:i.message},"*")}}}),(async()=>(await b(800,1e3),y.waitForElement('[aria-label="Collection of your Marketplace items"]').then(async t=>{console.log("Element đã xuất hiện:",t),await _.waitForPageReady(_.sellingPath,'[aria-label="Collection of your Marketplace items"]'),await b(800,1e3);const e=await _.getProducts();console.log({products:e}),H.sync(e),Bn()}).catch(t=>{console.error(t)})))()})(); +(function(){"use strict";function Ee(t,e){return function(){return t.apply(e,arguments)}}const{toString:it}=Object.prototype,{getPrototypeOf:ce}=Object,{iterator:W,toStringTag:ve}=Symbol,Z=(t=>e=>{const n=it.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),C=t=>(t=t.toLowerCase(),e=>Z(e)===t),G=t=>e=>typeof e===t,{isArray:q}=Array,$=G("undefined");function z(t){return t!==null&&!$(t)&&t.constructor!==null&&!$(t.constructor)&&O(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const Se=C("ArrayBuffer");function st(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&Se(t.buffer),e}const at=G("string"),O=G("function"),Te=G("number"),J=t=>t!==null&&typeof t=="object",ct=t=>t===!0||t===!1,Y=t=>{if(Z(t)!=="object")return!1;const e=ce(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(ve in t)&&!(W in t)},lt=t=>{if(!J(t)||z(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},ut=C("Date"),dt=C("File"),ft=C("Blob"),ht=C("FileList"),pt=t=>J(t)&&O(t.pipe),mt=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||O(t.append)&&((e=Z(t))==="formdata"||e==="object"&&O(t.toString)&&t.toString()==="[object FormData]"))},wt=C("URLSearchParams"),[yt,bt,gt,Et]=["ReadableStream","Request","Response","Headers"].map(C),vt=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function V(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let r,o;if(typeof t!="object"&&(t=[t]),q(t))for(r=0,o=t.length;r0;)if(o=n[r],e===o.toLowerCase())return o;return null}const F=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,ke=t=>!$(t)&&t!==F;function le(){const{caseless:t}=ke(this)&&this||{},e={},n=(r,o)=>{const i=t&&Re(e,o)||o;Y(e[i])&&Y(r)?e[i]=le(e[i],r):Y(r)?e[i]=le({},r):q(r)?e[i]=r.slice():e[i]=r};for(let r=0,o=arguments.length;r(V(e,(o,i)=>{n&&O(o)?t[i]=Ee(o,n):t[i]=o},{allOwnKeys:r}),t),Tt=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Rt=(t,e,n,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},kt=(t,e,n,r)=>{let o,i,s;const c={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),i=o.length;i-- >0;)s=o[i],(!r||r(s,t,e))&&!c[s]&&(e[s]=t[s],c[s]=!0);t=n!==!1&&ce(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Ot=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const r=t.indexOf(e,n);return r!==-1&&r===n},Pt=t=>{if(!t)return null;if(q(t))return t;let e=t.length;if(!Te(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},At=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&ce(Uint8Array)),_t=(t,e)=>{const r=(t&&t[W]).call(t);let o;for(;(o=r.next())&&!o.done;){const i=o.value;e.call(t,i[0],i[1])}},xt=(t,e)=>{let n;const r=[];for(;(n=t.exec(e))!==null;)r.push(n);return r},Ct=C("HTMLFormElement"),Nt=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),Oe=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),It=C("RegExp"),Pe=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),r={};V(n,(o,i)=>{let s;(s=e(o,i,t))!==!1&&(r[i]=s||o)}),Object.defineProperties(t,r)},Bt=t=>{Pe(t,(e,n)=>{if(O(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=t[n];if(O(r)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Lt=(t,e)=>{const n={},r=o=>{o.forEach(i=>{n[i]=!0})};return q(t)?r(t):r(String(t).split(e)),n},Ft=()=>{},Ut=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Dt(t){return!!(t&&O(t.append)&&t[ve]==="FormData"&&t[W])}const Mt=t=>{const e=new Array(10),n=(r,o)=>{if(J(r)){if(e.indexOf(r)>=0)return;if(z(r))return r;if(!("toJSON"in r)){e[o]=r;const i=q(r)?[]:{};return V(r,(s,c)=>{const d=n(s,o+1);!$(d)&&(i[c]=d)}),e[o]=void 0,i}}return r};return n(t,0)},qt=C("AsyncFunction"),jt=t=>t&&(J(t)||O(t))&&O(t.then)&&O(t.catch),Ae=((t,e)=>t?setImmediate:e?((n,r)=>(F.addEventListener("message",({source:o,data:i})=>{o===F&&i===n&&r.length&&r.shift()()},!1),o=>{r.push(o),F.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",O(F.postMessage)),Ht=typeof queueMicrotask<"u"?queueMicrotask.bind(F):typeof process<"u"&&process.nextTick||Ae,a={isArray:q,isArrayBuffer:Se,isBuffer:z,isFormData:mt,isArrayBufferView:st,isString:at,isNumber:Te,isBoolean:ct,isObject:J,isPlainObject:Y,isEmptyObject:lt,isReadableStream:yt,isRequest:bt,isResponse:gt,isHeaders:Et,isUndefined:$,isDate:ut,isFile:dt,isBlob:ft,isRegExp:It,isFunction:O,isStream:pt,isURLSearchParams:wt,isTypedArray:At,isFileList:ht,forEach:V,merge:le,extend:St,trim:vt,stripBOM:Tt,inherits:Rt,toFlatObject:kt,kindOf:Z,kindOfTest:C,endsWith:Ot,toArray:Pt,forEachEntry:_t,matchAll:xt,isHTMLForm:Ct,hasOwnProperty:Oe,hasOwnProp:Oe,reduceDescriptors:Pe,freezeMethods:Bt,toObjectSet:Lt,toCamelCase:Nt,noop:Ft,toFiniteNumber:Ut,findKey:Re,global:F,isContextDefined:ke,isSpecCompliantForm:Dt,toJSONObject:Mt,isAsyncFn:qt,isThenable:jt,setImmediate:Ae,asap:Ht,isIterable:t=>t!=null&&O(t[W])};function m(t,e,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}a.inherits(m,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:a.toJSONObject(this.config),code:this.code,status:this.status}}});const _e=m.prototype,xe={};["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(t=>{xe[t]={value:t}}),Object.defineProperties(m,xe),Object.defineProperty(_e,"isAxiosError",{value:!0}),m.from=(t,e,n,r,o,i)=>{const s=Object.create(_e);return a.toFlatObject(t,s,function(d){return d!==Error.prototype},c=>c!=="isAxiosError"),m.call(s,t.message,e,n,r,o),s.cause=t,s.name=t.name,i&&Object.assign(s,i),s};const $t=null;function ue(t){return a.isPlainObject(t)||a.isArray(t)}function Ce(t){return a.endsWith(t,"[]")?t.slice(0,-2):t}function Ne(t,e,n){return t?t.concat(e).map(function(o,i){return o=Ce(o),!n&&i?"["+o+"]":o}).join(n?".":""):e}function zt(t){return a.isArray(t)&&!t.some(ue)}const Jt=a.toFlatObject(a,{},null,function(e){return/^is[A-Z]/.test(e)});function Q(t,e,n){if(!a.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=a.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,p){return!a.isUndefined(p[y])});const r=n.metaTokens,o=n.visitor||u,i=n.dots,s=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&a.isSpecCompliantForm(e);if(!a.isFunction(o))throw new TypeError("visitor must be a function");function l(h){if(h===null)return"";if(a.isDate(h))return h.toISOString();if(a.isBoolean(h))return h.toString();if(!d&&a.isBlob(h))throw new m("Blob is not supported. Use a Buffer instead.");return a.isArrayBuffer(h)||a.isTypedArray(h)?d&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,y,p){let v=h;if(h&&!p&&typeof h=="object"){if(a.endsWith(y,"{}"))y=r?y:y.slice(0,-2),h=JSON.stringify(h);else if(a.isArray(h)&&zt(h)||(a.isFileList(h)||a.endsWith(y,"[]"))&&(v=a.toArray(h)))return y=Ce(y),v.forEach(function(R,I){!(a.isUndefined(R)||R===null)&&e.append(s===!0?Ne([y],I,i):s===null?y:y+"[]",l(R))}),!1}return ue(h)?!0:(e.append(Ne(p,y,i),l(h)),!1)}const f=[],g=Object.assign(Jt,{defaultVisitor:u,convertValue:l,isVisitable:ue});function S(h,y){if(!a.isUndefined(h)){if(f.indexOf(h)!==-1)throw Error("Circular reference detected in "+y.join("."));f.push(h),a.forEach(h,function(v,T){(!(a.isUndefined(v)||v===null)&&o.call(e,v,a.isString(T)?T.trim():T,y,g))===!0&&S(v,y?y.concat(T):[T])}),f.pop()}}if(!a.isObject(t))throw new TypeError("data must be an object");return S(t),e}function Ie(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(r){return e[r]})}function de(t,e){this._pairs=[],t&&Q(t,this,e)}const Be=de.prototype;Be.append=function(e,n){this._pairs.push([e,n])},Be.toString=function(e){const n=e?function(r){return e.call(this,r,Ie)}:Ie;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function Vt(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Le(t,e,n){if(!e)return t;const r=n&&n.encode||Vt;a.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let i;if(o?i=o(e,n):i=a.isURLSearchParams(e)?e.toString():new de(e,n).toString(r),i){const s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+i}return t}class Fe{constructor(){this.handlers=[]}use(e,n,r){return this.handlers.push({fulfilled:e,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){a.forEach(this.handlers,function(r){r!==null&&e(r)})}}const Ue={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Xt={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:de,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},fe=typeof window<"u"&&typeof document<"u",he=typeof navigator=="object"&&navigator||void 0,Kt=fe&&(!he||["ReactNative","NativeScript","NS"].indexOf(he.product)<0),Wt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Zt=fe&&window.location.href||"http://localhost",k={...Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:fe,hasStandardBrowserEnv:Kt,hasStandardBrowserWebWorkerEnv:Wt,navigator:he,origin:Zt},Symbol.toStringTag,{value:"Module"})),...Xt};function Gt(t,e){return Q(t,new k.classes.URLSearchParams,{visitor:function(n,r,o,i){return k.isNode&&a.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...e})}function Yt(t){return a.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function Qt(t){const e={},n=Object.keys(t);let r;const o=n.length;let i;for(r=0;r=n.length;return s=!s&&a.isArray(o)?o.length:s,d?(a.hasOwnProp(o,s)?o[s]=[o[s],r]:o[s]=r,!c):((!o[s]||!a.isObject(o[s]))&&(o[s]=[]),e(n,r,o[s],i)&&a.isArray(o[s])&&(o[s]=Qt(o[s])),!c)}if(a.isFormData(t)&&a.isFunction(t.entries)){const n={};return a.forEachEntry(t,(r,o)=>{e(Yt(r),o,n,0)}),n}return null}function en(t,e,n){if(a.isString(t))try{return(e||JSON.parse)(t),a.trim(t)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(t)}const X={transitional:Ue,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,i=a.isObject(e);if(i&&a.isHTMLForm(e)&&(e=new FormData(e)),a.isFormData(e))return o?JSON.stringify(De(e)):e;if(a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)||a.isReadableStream(e))return e;if(a.isArrayBufferView(e))return e.buffer;if(a.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let c;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Gt(e,this.formSerializer).toString();if((c=a.isFileList(e))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Q(c?{"files[]":e}:e,d&&new d,this.formSerializer)}}return i||o?(n.setContentType("application/json",!1),en(e)):e}],transformResponse:[function(e){const n=this.transitional||X.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(a.isResponse(e)||a.isReadableStream(e))return e;if(e&&a.isString(e)&&(r&&!this.responseType||o)){const s=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(e)}catch(c){if(s)throw c.name==="SyntaxError"?m.from(c,m.ERR_BAD_RESPONSE,this,null,this.response):c}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:k.classes.FormData,Blob:k.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};a.forEach(["delete","get","head","post","put","patch"],t=>{X.headers[t]={}});const tn=a.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"]),nn=t=>{const e={};let n,r,o;return t&&t.split(` +`).forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),r=s.substring(o+1).trim(),!(!n||e[n]&&tn[n])&&(n==="set-cookie"?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)}),e},Me=Symbol("internals");function K(t){return t&&String(t).trim().toLowerCase()}function ee(t){return t===!1||t==null?t:a.isArray(t)?t.map(ee):String(t)}function rn(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(t);)e[r[1]]=r[2];return e}const on=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function pe(t,e,n,r,o){if(a.isFunction(r))return r.call(this,e,n);if(o&&(e=n),!!a.isString(e)){if(a.isString(r))return e.indexOf(r)!==-1;if(a.isRegExp(r))return r.test(e)}}function sn(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,r)=>n.toUpperCase()+r)}function an(t,e){const n=a.toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(t,r+n,{value:function(o,i,s){return this[r].call(this,e,o,i,s)},configurable:!0})})}let P=class{constructor(e){e&&this.set(e)}set(e,n,r){const o=this;function i(c,d,l){const u=K(d);if(!u)throw new Error("header name must be a non-empty string");const f=a.findKey(o,u);(!f||o[f]===void 0||l===!0||l===void 0&&o[f]!==!1)&&(o[f||d]=ee(c))}const s=(c,d)=>a.forEach(c,(l,u)=>i(l,u,d));if(a.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(a.isString(e)&&(e=e.trim())&&!on(e))s(nn(e),n);else if(a.isObject(e)&&a.isIterable(e)){let c={},d,l;for(const u of e){if(!a.isArray(u))throw TypeError("Object iterator must return a key-value pair");c[l=u[0]]=(d=c[l])?a.isArray(d)?[...d,u[1]]:[d,u[1]]:u[1]}s(c,n)}else e!=null&&i(n,e,r);return this}get(e,n){if(e=K(e),e){const r=a.findKey(this,e);if(r){const o=this[r];if(!n)return o;if(n===!0)return rn(o);if(a.isFunction(n))return n.call(this,o,r);if(a.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=K(e),e){const r=a.findKey(this,e);return!!(r&&this[r]!==void 0&&(!n||pe(this,this[r],r,n)))}return!1}delete(e,n){const r=this;let o=!1;function i(s){if(s=K(s),s){const c=a.findKey(r,s);c&&(!n||pe(r,r[c],c,n))&&(delete r[c],o=!0)}}return a.isArray(e)?e.forEach(i):i(e),o}clear(e){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const i=n[r];(!e||pe(this,this[i],i,e,!0))&&(delete this[i],o=!0)}return o}normalize(e){const n=this,r={};return a.forEach(this,(o,i)=>{const s=a.findKey(r,i);if(s){n[s]=ee(o),delete n[i];return}const c=e?sn(i):String(i).trim();c!==i&&delete n[i],n[c]=ee(o),r[c]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return a.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=e&&a.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(` +`)}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,...n){const r=new this(e);return n.forEach(o=>r.set(o)),r}static accessor(e){const r=(this[Me]=this[Me]={accessors:{}}).accessors,o=this.prototype;function i(s){const c=K(s);r[c]||(an(o,s),r[c]=!0)}return a.isArray(e)?e.forEach(i):i(e),this}};P.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),a.reduceDescriptors(P.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(r){this[n]=r}}}),a.freezeMethods(P);function me(t,e){const n=this||X,r=e||n,o=P.from(r.headers);let i=r.data;return a.forEach(t,function(c){i=c.call(n,i,o.normalize(),e?e.status:void 0)}),o.normalize(),i}function qe(t){return!!(t&&t.__CANCEL__)}function j(t,e,n){m.call(this,t??"canceled",m.ERR_CANCELED,e,n),this.name="CanceledError"}a.inherits(j,m,{__CANCEL__:!0});function je(t,e,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?t(n):e(new m("Request failed with status code "+n.status,[m.ERR_BAD_REQUEST,m.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function cn(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ln(t,e){t=t||10;const n=new Array(t),r=new Array(t);let o=0,i=0,s;return e=e!==void 0?e:1e3,function(d){const l=Date.now(),u=r[i];s||(s=l),n[o]=d,r[o]=l;let f=i,g=0;for(;f!==o;)g+=n[f++],f=f%t;if(o=(o+1)%t,o===i&&(i=(i+1)%t),l-s{n=u,o=null,i&&(clearTimeout(i),i=null),t(...l)};return[(...l)=>{const u=Date.now(),f=u-n;f>=r?s(l,u):(o=l,i||(i=setTimeout(()=>{i=null,s(o)},r-f)))},()=>o&&s(o)]}const te=(t,e,n=3)=>{let r=0;const o=ln(50,250);return un(i=>{const s=i.loaded,c=i.lengthComputable?i.total:void 0,d=s-r,l=o(d),u=s<=c;r=s;const f={loaded:s,total:c,progress:c?s/c:void 0,bytes:d,rate:l||void 0,estimated:l&&c&&u?(c-s)/l:void 0,event:i,lengthComputable:c!=null,[e?"download":"upload"]:!0};t(f)},n)},He=(t,e)=>{const n=t!=null;return[r=>e[0]({lengthComputable:n,total:t,loaded:r}),e[1]]},$e=t=>(...e)=>a.asap(()=>t(...e)),dn=k.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,k.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(k.origin),k.navigator&&/(msie|trident)/i.test(k.navigator.userAgent)):()=>!0,fn=k.hasStandardBrowserEnv?{write(t,e,n,r,o,i){const s=[t+"="+encodeURIComponent(e)];a.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),a.isString(r)&&s.push("path="+r),a.isString(o)&&s.push("domain="+o),i===!0&&s.push("secure"),document.cookie=s.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function hn(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function pn(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function ze(t,e,n){let r=!hn(e);return t&&(r||n==!1)?pn(t,e):e}const Je=t=>t instanceof P?{...t}:t;function U(t,e){e=e||{};const n={};function r(l,u,f,g){return a.isPlainObject(l)&&a.isPlainObject(u)?a.merge.call({caseless:g},l,u):a.isPlainObject(u)?a.merge({},u):a.isArray(u)?u.slice():u}function o(l,u,f,g){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l,f,g)}else return r(l,u,f,g)}function i(l,u){if(!a.isUndefined(u))return r(void 0,u)}function s(l,u){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l)}else return r(void 0,u)}function c(l,u,f){if(f in e)return r(l,u);if(f in t)return r(void 0,l)}const d={url:i,method:i,data:i,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:c,headers:(l,u,f)=>o(Je(l),Je(u),f,!0)};return a.forEach(Object.keys({...t,...e}),function(u){const f=d[u]||o,g=f(t[u],e[u],u);a.isUndefined(g)&&f!==c||(n[u]=g)}),n}const Ve=t=>{const e=U({},t);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:i,headers:s,auth:c}=e;e.headers=s=P.from(s),e.url=Le(ze(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),c&&s.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):"")));let d;if(a.isFormData(n)){if(k.hasStandardBrowserEnv||k.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if((d=s.getContentType())!==!1){const[l,...u]=d?d.split(";").map(f=>f.trim()).filter(Boolean):[];s.setContentType([l||"multipart/form-data",...u].join("; "))}}if(k.hasStandardBrowserEnv&&(r&&a.isFunction(r)&&(r=r(e)),r||r!==!1&&dn(e.url))){const l=o&&i&&fn.read(i);l&&s.set(o,l)}return e},mn=typeof XMLHttpRequest<"u"&&function(t){return new Promise(function(n,r){const o=Ve(t);let i=o.data;const s=P.from(o.headers).normalize();let{responseType:c,onUploadProgress:d,onDownloadProgress:l}=o,u,f,g,S,h;function y(){S&&S(),h&&h(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let p=new XMLHttpRequest;p.open(o.method.toUpperCase(),o.url,!0),p.timeout=o.timeout;function v(){if(!p)return;const R=P.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),_={data:!c||c==="text"||c==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:R,config:t,request:p};je(function(M){n(M),y()},function(M){r(M),y()},_),p=null}"onloadend"in p?p.onloadend=v:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf("file:")===0)||setTimeout(v)},p.onabort=function(){p&&(r(new m("Request aborted",m.ECONNABORTED,t,p)),p=null)},p.onerror=function(){r(new m("Network Error",m.ERR_NETWORK,t,p)),p=null},p.ontimeout=function(){let I=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const _=o.transitional||Ue;o.timeoutErrorMessage&&(I=o.timeoutErrorMessage),r(new m(I,_.clarifyTimeoutError?m.ETIMEDOUT:m.ECONNABORTED,t,p)),p=null},i===void 0&&s.setContentType(null),"setRequestHeader"in p&&a.forEach(s.toJSON(),function(I,_){p.setRequestHeader(_,I)}),a.isUndefined(o.withCredentials)||(p.withCredentials=!!o.withCredentials),c&&c!=="json"&&(p.responseType=o.responseType),l&&([g,h]=te(l,!0),p.addEventListener("progress",g)),d&&p.upload&&([f,S]=te(d),p.upload.addEventListener("progress",f),p.upload.addEventListener("loadend",S)),(o.cancelToken||o.signal)&&(u=R=>{p&&(r(!R||R.type?new j(null,t,p):R),p.abort(),p=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const T=cn(o.url);if(T&&k.protocols.indexOf(T)===-1){r(new m("Unsupported protocol "+T+":",m.ERR_BAD_REQUEST,t));return}p.send(i||null)})},wn=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let r=new AbortController,o;const i=function(l){if(!o){o=!0,c();const u=l instanceof Error?l:this.reason;r.abort(u instanceof m?u:new j(u instanceof Error?u.message:u))}};let s=e&&setTimeout(()=>{s=null,i(new m(`timeout ${e} of ms exceeded`,m.ETIMEDOUT))},e);const c=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(i):l.removeEventListener("abort",i)}),t=null)};t.forEach(l=>l.addEventListener("abort",i));const{signal:d}=r;return d.unsubscribe=()=>a.asap(c),d}},yn=function*(t,e){let n=t.byteLength;if(n{const o=bn(t,e);let i=0,s,c=d=>{s||(s=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:l,value:u}=await o.next();if(l){c(),d.close();return}let f=u.byteLength;if(n){let g=i+=f;n(g)}d.enqueue(new Uint8Array(u))}catch(l){throw c(l),l}},cancel(d){return c(d),o.return()}},{highWaterMark:2})},ne=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Ke=ne&&typeof ReadableStream=="function",En=ne&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),We=(t,...e)=>{try{return!!t(...e)}catch{return!1}},vn=Ke&&We(()=>{let t=!1;const e=new Request(k.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),Ze=64*1024,we=Ke&&We(()=>a.isReadableStream(new Response("").body)),re={stream:we&&(t=>t.body)};ne&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!re[e]&&(re[e]=a.isFunction(t[e])?n=>n[e]():(n,r)=>{throw new m(`Response type '${e}' is not supported`,m.ERR_NOT_SUPPORT,r)})})})(new Response);const Sn=async t=>{if(t==null)return 0;if(a.isBlob(t))return t.size;if(a.isSpecCompliantForm(t))return(await new Request(k.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(a.isArrayBufferView(t)||a.isArrayBuffer(t))return t.byteLength;if(a.isURLSearchParams(t)&&(t=t+""),a.isString(t))return(await En(t)).byteLength},Tn=async(t,e)=>{const n=a.toFiniteNumber(t.getContentLength());return n??Sn(e)},ye={http:$t,xhr:mn,fetch:ne&&(async t=>{let{url:e,method:n,data:r,signal:o,cancelToken:i,timeout:s,onDownloadProgress:c,onUploadProgress:d,responseType:l,headers:u,withCredentials:f="same-origin",fetchOptions:g}=Ve(t);l=l?(l+"").toLowerCase():"text";let S=wn([o,i&&i.toAbortSignal()],s),h;const y=S&&S.unsubscribe&&(()=>{S.unsubscribe()});let p;try{if(d&&vn&&n!=="get"&&n!=="head"&&(p=await Tn(u,r))!==0){let _=new Request(e,{method:"POST",body:r,duplex:"half"}),L;if(a.isFormData(r)&&(L=_.headers.get("content-type"))&&u.setContentType(L),_.body){const[M,ae]=He(p,te($e(d)));r=Xe(_.body,Ze,M,ae)}}a.isString(f)||(f=f?"include":"omit");const v="credentials"in Request.prototype;h=new Request(e,{...g,signal:S,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:v?f:void 0});let T=await fetch(h,g);const R=we&&(l==="stream"||l==="response");if(we&&(c||R&&y)){const _={};["status","statusText","headers"].forEach(rt=>{_[rt]=T[rt]});const L=a.toFiniteNumber(T.headers.get("content-length")),[M,ae]=c&&He(L,te($e(c),!0))||[];T=new Response(Xe(T.body,Ze,M,()=>{ae&&ae(),y&&y()}),_)}l=l||"text";let I=await re[a.findKey(re,l)||"text"](T,t);return!R&&y&&y(),await new Promise((_,L)=>{je(_,L,{data:I,headers:P.from(T.headers),status:T.status,statusText:T.statusText,config:t,request:h})})}catch(v){throw y&&y(),v&&v.name==="TypeError"&&/Load failed|fetch/i.test(v.message)?Object.assign(new m("Network Error",m.ERR_NETWORK,t,h),{cause:v.cause||v}):m.from(v,v&&v.code,t,h)}})};a.forEach(ye,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const Ge=t=>`- ${t}`,Rn=t=>a.isFunction(t)||t===null||t===!1,Ye={getAdapter:t=>{t=a.isArray(t)?t:[t];const{length:e}=t;let n,r;const o={};for(let i=0;i`adapter ${c} `+(d===!1?"is not supported by the environment":"is not available in the build"));let s=e?i.length>1?`since : +`+i.map(Ge).join(` +`):" "+Ge(i[0]):"as no adapter specified";throw new m("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return r},adapters:ye};function be(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new j(null,t)}function Qe(t){return be(t),t.headers=P.from(t.headers),t.data=me.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Ye.getAdapter(t.adapter||X.adapter)(t).then(function(r){return be(t),r.data=me.call(t,t.transformResponse,r),r.headers=P.from(r.headers),r},function(r){return qe(r)||(be(t),r&&r.response&&(r.response.data=me.call(t,t.transformResponse,r.response),r.response.headers=P.from(r.response.headers))),Promise.reject(r)})}const et="1.11.0",oe={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{oe[t]=function(r){return typeof r===t||"a"+(e<1?"n ":" ")+t}});const tt={};oe.transitional=function(e,n,r){function o(i,s){return"[Axios v"+et+"] Transitional option '"+i+"'"+s+(r?". "+r:"")}return(i,s,c)=>{if(e===!1)throw new m(o(s," has been removed"+(n?" in "+n:"")),m.ERR_DEPRECATED);return n&&!tt[s]&&(tt[s]=!0,console.warn(o(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(i,s,c):!0}},oe.spelling=function(e){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};function kn(t,e,n){if(typeof t!="object")throw new m("options must be an object",m.ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let o=r.length;for(;o-- >0;){const i=r[o],s=e[i];if(s){const c=t[i],d=c===void 0||s(c,i,t);if(d!==!0)throw new m("option "+i+" must be "+d,m.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new m("Unknown option "+i,m.ERR_BAD_OPTION)}}const ie={assertOptions:kn,validators:oe},N=ie.validators;let D=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Fe,response:new Fe}}async request(e,n){try{return await this._request(e,n)}catch(r){if(r instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const i=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=U(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:i}=n;r!==void 0&&ie.assertOptions(r,{silentJSONParsing:N.transitional(N.boolean),forcedJSONParsing:N.transitional(N.boolean),clarifyTimeoutError:N.transitional(N.boolean)},!1),o!=null&&(a.isFunction(o)?n.paramsSerializer={serialize:o}:ie.assertOptions(o,{encode:N.function,serialize:N.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ie.assertOptions(n,{baseUrl:N.spelling("baseURL"),withXsrfToken:N.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=i&&a.merge(i.common,i[n.method]);i&&a.forEach(["delete","get","head","post","put","patch","common"],h=>{delete i[h]}),n.headers=P.concat(s,i);const c=[];let d=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(d=d&&y.synchronous,c.unshift(y.fulfilled,y.rejected))});const l=[];this.interceptors.response.forEach(function(y){l.push(y.fulfilled,y.rejected)});let u,f=0,g;if(!d){const h=[Qe.bind(this),void 0];for(h.unshift(...c),h.push(...l),g=h.length,u=Promise.resolve(n);f{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](o);r._listeners=null}),this.promise.then=o=>{let i;const s=new Promise(c=>{r.subscribe(c),i=c}).then(o);return s.cancel=function(){r.unsubscribe(i)},s},e(function(i,s,c){r.reason||(r.reason=new j(i,s,c),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=r=>{e.abort(r)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new ot(function(o){e=o}),cancel:e}}};function Pn(t){return function(n){return t.apply(null,n)}}function An(t){return a.isObject(t)&&t.isAxiosError===!0}const ge={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(ge).forEach(([t,e])=>{ge[e]=t});function nt(t){const e=new D(t),n=Ee(D.prototype.request,e);return a.extend(n,D.prototype,e,{allOwnKeys:!0}),a.extend(n,e,null,{allOwnKeys:!0}),n.create=function(o){return nt(U(t,o))},n}const E=nt(X);E.Axios=D,E.CanceledError=j,E.CancelToken=On,E.isCancel=qe,E.VERSION=et,E.toFormData=Q,E.AxiosError=m,E.Cancel=E.CanceledError,E.all=function(e){return Promise.all(e)},E.spread=Pn,E.isAxiosError=An,E.mergeConfig=U,E.AxiosHeaders=P,E.formToJSON=t=>De(a.isHTMLForm(t)?new FormData(t):t),E.getAdapter=Ye.getAdapter,E.HttpStatusCode=ge,E.default=E;const{Axios:Hn,AxiosError:$n,CanceledError:zn,isCancel:Jn,CancelToken:Vn,VERSION:Xn,all:Kn,Cancel:Wn,isAxiosError:Zn,spread:Gn,toFormData:Yn,AxiosHeaders:Qn,HttpStatusCode:er,formToJSON:tr,getAdapter:nr,mergeConfig:rr}=E,se=E.create({baseURL:"http://localhost:3000/",headers:{"Content-Type":"application/json",Authorization:"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2ludC5pcHN1cHBseS5jb20uYXUvYXBpL2xvZ2luIiwiaWF0IjoxNzIxNjA5MTEzLCJleHAiOjMyMzUzMzcxMTMsIm5iZiI6MTcyMTYwOTExMywianRpIjoiWHpCZkZPc0ZJUlFxaEZvaiIsInN1YiI6MSwicHJ2IjoiYzhlZTFmYzg5ZTc3NWVjNGM3Mzg2NjdlNWJlMTdhNTkwYjZkNDBmYyJ9.kFFEPpdmNUp-kn_G3cIIc26bivO6tbfcvkpG9I8Im7M"}});class _n{item_per_page=10;async index(e){const n={skip:0,limit:10,order:"updatedAt desc",where:{account:"prology_net",status:"Updated"}};return se({method:"POST",data:{urlAPI:"/api/ebay-listing/listing-get-list",filter:{...n,...e,where:{...n.where,...e?.where}}}})}async get(e){return se({method:"POST",data:{filter:{where:{account:"prology_net",condition:e.raw_condition,productModelCode:e.sku}},pageCurrent:"/ebaytools/listing-ebay",urlAPI:"/api/ebay-listing/get-image-listing"}})}async sync(e){return se({url:"sync",method:"POST",data:e})}async getPublistedProducts(){return se({url:"data"})}async apiRequest(e,n){return new Promise((r,o)=>{const i="req_"+Date.now()+"_"+Math.random();function s(c){c.data.type==="API_RESPONSE"&&c.data.requestId===i&&(window.removeEventListener("message",s),c.data.error?o(c.data.error):r(c.data.payload))}window.addEventListener("message",s),window.postMessage({type:"API_REQUEST",requestId:i,payload:n,fn:e},"*")})}}const H=new _n;function B(t){return new Promise(e=>setTimeout(e,t))}function b(t,e){const n=Math.floor(Math.random()*(e-t+1))+t;return B(n)}class xn{static ID_EXTENSION="ex-root"}class Cn{base64ToFile(e,n,r){const o=e.includes(",")?e.split(",")[1]:e,i=atob(o),s=new ArrayBuffer(i.length),c=new Uint8Array(s);for(let l=0;l{let s=0,c=!1;const d=()=>{const l=document.evaluate(c&&o?o:e,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;if(l instanceof HTMLElement){i(l);return}s++,s{const s=new FileReader;s.onloadend=()=>{typeof s.result=="string"?o(s.result.split(",")[1]):i("Không thể đọc dữ liệu ảnh")},s.onerror=i,s.readAsDataURL(r)})}getImageExtension(e){try{const r=new URL(e).pathname.match(/\.([a-zA-Z0-9]+)$/);return r?r[1].toLowerCase():null}catch{const o=e.split("?")[0].match(/\.([a-zA-Z0-9]+)$/);return o?o[1].toLowerCase():null}}imageLocalToBase64(e){return new Promise((n,r)=>{try{const o=chrome.runtime.getURL(`${e}`);fetch(o).then(i=>i.blob()).then(i=>{const s=new FileReader;s.onloadend=()=>n(s.result),s.onerror=r,s.readAsDataURL(i)}).catch(r)}catch(o){r(o)}})}scrollToElement(e,n="smooth"){e&&e.scrollIntoView({behavior:n,block:"center",inline:"nearest"})}getElementPointCoores(e){if(!e)return null;const n=e.getBoundingClientRect(),r=n.left+n.width/2,o=n.top+n.height/2;return{x:r,y:o}}setInputValue(e,n){e&&(e.value=n,e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})))}writeToInput=async(e,n)=>{let r;if(typeof n=="string"?r=await this.getElementByXPath(n):r=n,!r)throw new Error("Xpath is not found with value: "+e);this.scrollToElement(r),this.clickByPoint(r),this.setInputValue(r,e)};pressEnter(e){if(!e)throw new Error("Textarea not found:",e);e.focus(),["keydown","keypress","keyup"].forEach(n=>{e.dispatchEvent(new KeyboardEvent(n,{key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0}))})}findNestedElement(e,n,r){const o=document.querySelector(e);if(!o)return null;const i=o.querySelectorAll(n);for(const s of i)if(s.innerText.trim().toLowerCase()===r.toLowerCase())return s;return null}findNestedIcElement(e,n,r){let o=null;if(typeof e=="string"){if(document.querySelector(e),!o)return null}else o=e;const i=o.querySelectorAll(n);for(const s of i)if(s.innerText.trim().toLowerCase().includes(r.toLowerCase()))return s;return null}findElInParent(e,n){return e&&e.parentElement?.querySelector(n)||null}waitForElement(e,n=100){return new Promise(r=>{const o=d=>d.offsetParent!==null&&(d.childElementCount>0||d.innerText.trim().length>0),i=()=>{const d=document.querySelector(e);d&&o(d)&&(s.disconnect(),clearInterval(c),r(d))},s=new MutationObserver(i);s.observe(document.body,{childList:!0,subtree:!0});const c=setInterval(i,n);i()})}}const w=new Cn;class Nn{sellingPath="https://www.facebook.com/marketplace/you/selling";marketPath="https://www.facebook.com/marketplace";createItem="https://www.facebook.com/marketplace/create/item";editItem="https://www.facebook.com/marketplace/edit";selectors={file__image_input:'input[type="file"]',next_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[5]/div/div/div",update_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[4]/div/div/div",publish_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[4]/div[2]/div/div",products:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[2]/div/div/div[2]/div[1]/div/div[2]/div[2]/div",products_fallback:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[2]/div/div/div[2]/div[1]/div/div[3]/div/div/span/div[2]/div",option_btn:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div/div/div/div[3]/div/div/div/div/div[1]/div",option_btn_fallback:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div[3]/div[2]/div/div[2]/div[1]",close_btn_modal_feedback:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div[2]/div",images_container:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[2]/div[1]/div[2]/div/div/div[3]/div[2]/div",description_edit_input:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[9]/div/div/div[2]/div/div/div/label/div/div/textarea",sku_edit_input:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[9]/div/div/div[5]/div/div/div[1]/label/div/input",new_item_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[7]/a/div",item_for_sell:"/html/body/div[1]/div/div[1]/div/div[5]/div/div/div[3]/div[2]/div[2]/div/div/div[2]/div[1]/div/span/div/div/div[1]/div/div",market_container:'[aria-label="Marketplace"]'};findInputByTitle(e,n="input"){const r=w.findNestedElement(this.selectors.market_container,"span",e);if(!r)throw new Error("Not found input by title: "+e);return w.findElInParent(r,n)}clearImages=async()=>{document.querySelectorAll('[aria-label="Remove"]').forEach(e=>e?.click())};uploadImages=async e=>{const n=new DataTransfer;for(const o of e.images){const i=await w.imageUrlToBase64(o);console.log("Base64:",o.slice(0,50)+"...");const s=w.base64ToFile(i,e.sku,w.getImageExtension(o)||"jpg");n.items.add(s)}const r=document.querySelector(this.selectors.file__image_input);r?(r.files=n.files,r.dispatchEvent(new Event("change",{bubbles:!0}))):console.error("Không tìm thấy input[type='file']")};chooseSelect=async(e,n,r='[aria-label="Dropdown menu"]')=>{const o=w.findNestedElement(this.selectors.market_container,"span",n);w.scrollToElement(o),await b(500,600),o?.click(),await b(500,600);const i=w.findNestedElement(r,"span",e);if(await b(500,600),!i)throw new Error(`No child found with text "${e}"`);w.scrollToElement(i),await b(500,600),i.click(),await b(500,600)};chooseLocation=async e=>{const n=this.findInputByTitle("location");await w.writeToInput(e,n),await B(600);const r=document.querySelector('[role="listbox"]')?.querySelectorAll("li")||[],o=Array.from(r).find(i=>i.innerHTML.trim().toLowerCase().includes(e.toLowerCase()));if(console.log(o),!o)throw new Error(`No child found with text "${e}"`);w.scrollToElement(o),await B(400),w.clickByPoint(o)};writeTags=async e=>{const n=this.findInputByTitle("product tags","textarea");if(!n)throw new Error("Input is not found");w.scrollToElement(n),await B(500);for(const r of e)await w.writeToInput(r,n),await B(300),w.pressEnter(n)};clickNext=async()=>{const e=await w.getElementByXPath(this.selectors.next_btn);if(!e)throw new Error("Next button is not found");w.clickByPoint(e)};clickUpdate=async()=>{const e=await w.getElementByXPath(this.selectors.update_btn);if(!e)throw new Error("Next button is not found");w.clickByPoint(e)};clickPublist=async()=>{const e=await w.getElementByXPath(this.selectors.publish_btn);if(!e)throw new Error("Publist button is not found");w.clickByPoint(e)};handlePublist=async e=>{console.log({item:e}),await b(600,1e3),await this.uploadImages(e),await b(600,1e3);const n=this.findInputByTitle("title");w.writeToInput(e.title,n),await b(600,1e3);const r=this.findInputByTitle("price");if(w.writeToInput(String(e.price),r),await b(600,1e3),await this.chooseSelect(e.category,"category"),await b(600,1e3),await this.chooseSelect(e.condition,"condition",'[aria-label="Select an option"]'),e.brand){await b(600,1e3);const s=this.findInputByTitle("brand");await w.writeToInput(e.brand,s)}await b(600,1e3);const o=this.findInputByTitle("description","textarea");await w.writeToInput(e.description,o),await b(600,1e3),await this.writeTags(e.tags),await b(600,1e3);const i=this.findInputByTitle("sku");return await w.writeToInput(e.sku,i),e?.location&&(await b(600,1e3),await this.chooseLocation(e.location)),await b(300,500),await this.clickNext(),!0};handleRePublist=async e=>{console.log({item:e}),await w.waitForElement('[aria-label="Collection of your Marketplace items"]');const n=await this.getOptionEls(e);console.log({items:n}),this.clickItemInList(n,"edit"),await B(1e3),await this.waitForPageReady(this.editItem,this.selectors.market_container),await b(1e3,2e3),await this.clearImages(),await b(600,1e3),await this.uploadImages(e),await b(600,1e3);const r=this.findInputByTitle("title");w.writeToInput(e.title,r),await b(600,1e3);const o=this.findInputByTitle("price");w.writeToInput(String(e.price),o),await b(600,1e3),await this.chooseSelect(e.category,"category"),await b(600,1e3),await this.chooseSelect(e.condition,"condition",'[aria-label="Select an option"]'),await b(600,1e3);const i=this.findInputByTitle("description","textarea");return await w.writeToInput(e.description,i),await b(600,1e3),await this.writeTags(e.tags),await b(600,1e3),e?.location&&(await b(600,1e3),await this.chooseLocation(e.location)),!0};getProducts=async()=>{const e=await w.getElementByXPath(this.selectors.products),n=await w.getElementByXPath(this.selectors.products_fallback);console.log({products1:e,products2:n});const r=[e,n].filter(Boolean);return r.length===0?[]:r.flatMap(o=>this.extractListings(o))};extractListings(e){return Array.from(e.children).map(r=>{const i=r.querySelector('span[dir="auto"], div[dir="auto"]')?.textContent?.trim()||"",s=document.querySelectorAll(`[aria-label="${i}"]`),c=Array.from(s).filter(f=>!f.querySelector("img"))[0],l=w.findNestedIcElement(c,"span","AU$")?.textContent?.match(/[\d,]+(?:\.\d+)?/),u=l?parseFloat(l[0].replace(/,/g,"")):0;return{title:i,price:u,el:e}})}closeTab=async e=>{chrome.runtime.sendMessage({type:"close-tab",payload:e})};clickOptionOfProduct(e){const n=document.querySelector(`[aria-label="More options for ${e.title}"]`);if(!n)throw new Error(`Not found option buttin in product ${`[aria-label="More options for ${e.title}"]`}, ID: ${e.id}`);w.scrollToElement(n),n.click?.()}async getOptionEls(e){return this.clickOptionOfProduct(e),await B(2e3),Array.from(document.querySelectorAll('[role="menuitem"]'))}clickItemInList(e,n){const r=e.find(o=>o.textContent.toLocaleLowerCase().includes(n));if(!r)throw new Error(`Not found item ${n} in options list`);r.click?.()}getItemInList(e,n){const r=e.find(o=>o.textContent.toLocaleLowerCase().includes(n));if(!r)throw new Error(`Not found item ${n} in options list`);return r}handleDelete=async e=>{const n=await this.getOptionEls(e);console.log({items:n}),this.clickItemInList(n,"delete"),await B(1e3);const r=await w.getElementByXPath(this.selectors.option_btn,{xpathFallback:this.selectors.option_btn_fallback});console.log({confirmBtn:r}),r?.click(),(await w.getElementByXPath(this.selectors.close_btn_modal_feedback))?.click(),chrome.runtime.sendMessage({type:"delete-done"})};waitForUrlContains(e,n=1e4){return new Promise((r,o)=>{const i=Date.now(),s=()=>{window.location.href.includes(e)?r():Date.now()-i>n?o(new Error("Timeout waiting for URL change")):setTimeout(s,500)};s()})}waitForPageReady(e,n,r=15e3){return new Promise((o,i)=>{const s=Date.now(),c=async()=>{window.location.href.includes(e)&&document.querySelector(n)?o():Date.now()-s>r?i(new Error("Timeout waiting for selling page ready")):setTimeout(c,500)};c()})}syncListing=async()=>{window.location.href.includes(this.sellingPath)||(document.querySelector('a[href="/marketplace/you/selling/"]')?.click?.(),await this.waitForPageReady(this.sellingPath,this.selectors.products)),await A.getProducts()};extractMarketplaceItemId(e){const n=e.match(/\/marketplace\/item\/(\d+)/);return n?n[1]:null}handleGetPublistID=async e=>{const n=await A.getProducts(),r=n.find(c=>c.title==e.title&&c.price==e.price);if(console.log({payload:e,product:r,products:n}),!r)return;r.el;const o=await this.getOptionEls(e),i=this.getItemInList(o,"view listing"),s=this.extractMarketplaceItemId(i.href);return this.clickOptionOfProduct(e),s};async gotoPublist(){(await w.getElementByXPath(this.selectors.new_item_btn))?.click(),await b(400,800),(await w.getElementByXPath(this.selectors.item_for_sell))?.click()}async gotoSell(){document.querySelector('[href="/marketplace/you/selling/"]')?.click()}}const A=new Nn;class In{role;listeners;constructor(e){this.role=e,this.listeners=new Map,chrome.runtime.onMessage.addListener((n,r,o)=>{if(n?.type&&this.listeners.has(n.type))return this.listeners.get(n.type)(n.payload,r,o),!0})}on(e,n){this.listeners.set(e,n)}send(e,n,r){const o={from:this.role,to:e,type:n,payload:r};(this.role==="popup"||this.role==="content")&&chrome.runtime.sendMessage(o),this.role==="background"&&(e==="content"?chrome.tabs.query({active:!0,currentWindow:!0},i=>{i[0]?.id&&chrome.tabs.sendMessage(i[0].id,o,()=>{chrome.runtime.lastError&&console.warn("Không gửi được tới content script:",chrome.runtime.lastError.message)})}):e==="popup"&&chrome.runtime.sendMessage(o,()=>{chrome.runtime.lastError&&console.warn("Không gửi được tới popup:",chrome.runtime.lastError.message)}))}sendToTab(e,n,r){if(this.role!=="background")throw new Error("sendToTab chỉ được gọi từ background");const o={from:this.role,to:"content",type:n,payload:r};chrome.tabs.sendMessage(e,o,()=>{chrome.runtime.lastError&&console.warn(`Không gửi được tới content script ở tab ${e}:`,chrome.runtime.lastError.message)})}waitForMessage(e,n=3e4){return new Promise((r,o)=>{let i;const s=c=>{clearTimeout(i),this.off(e,s),r(c)};i=setTimeout(()=>{this.off(e,s),o(new Error(`Timeout khi chờ message: ${e}`))},n),this.on(e,s)})}off(e,n){this.listeners.get(e)===n&&this.listeners.delete(e)}}const x=new In("content"),Bn=()=>{const t=xn.ID_EXTENSION;if(document.getElementById(t))return;const e=document.createElement("div");e.id=t,document.body.appendChild(e);const n=document.createElement("script");n.src=chrome.runtime.getURL("content/inject-ui.js"),n.type="module",document.body.appendChild(n);const r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.href=chrome.runtime.getURL("assets/style.css"),document.head.appendChild(r)};x.on("background-to-content-publish",async t=>{try{console.log("[publish] Content nhận:",t),await b(800,1e3),await A.handlePublist(t.data)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-publish",{msg:t})}}),x.on("background-to-content-unlist",async t=>{try{console.log("[unlist] Content nhận:",t),await b(800,1e3),await A.gotoSell(),await b(800,1e3),await A.handleDelete(t.data),await b(800,1e3);const e=await A.getProducts();await b(800,1e3),H.sync(e)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-unlist",{msg:t})}}),x.on("background-to-content-re-publist",async t=>{try{console.log("[re-publist] Content nhận:",t),await b(800,1e3),await A.gotoSell(),await b(800,1e3),await A.handleRePublist(t.data)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-re-publist",{msg:t})}}),window.addEventListener("message",async t=>{if(t.source===window&&t.data.type==="API_REQUEST"){const e=t.data.payload,n=t.data.fn,{requestId:r}=t.data;console.log({requestId:r,event:t,body:e});try{let o=null;switch(n){case"index":{o=(await H.index(e)).data;break}case"getPublistedProducts":{o=(await H.getPublistedProducts()).data;break}case"get":{o=(await H.get(e)).data,console.log({data:o,body:e});break}case"createBlobUrl":{x.send("background","content-to-background-create-blod-urls",e),o=await x.waitForMessage("background-to-content-create-blod-urls"),console.log({data:o});break}case"publist":{x.send("background","content-to-background-actions",{type:"publist",data:e}),o=await x.waitForMessage("background-to-content-actions");break}case"unlist":{x.send("background","content-to-background-actions",{type:"unlist",data:e}),console.log({body:e}),o=await x.waitForMessage("background-to-content-actions"),console.log({unlisted:o});break}case"sync":{const i=await w.waitForElement('[aria-label="Collection of your Marketplace items"]');console.log("Element đã xuất hiện:",i),await A.waitForPageReady(A.sellingPath,'[aria-label="Collection of your Marketplace items"]'),await b(800,1e3);const s=await A.getProducts();console.log({products:s}),await H.sync(s);break}}window.postMessage({type:"API_RESPONSE",requestId:r,payload:o},"*")}catch(o){window.postMessage({type:"API_RESPONSE",requestId:r,error:o.message},"*")}}}),(async()=>(await b(800,1e3),w.waitForElement('[aria-label="Collection of your Marketplace items"]').then(async t=>{console.log("Element đã xuất hiện:",t),await A.waitForPageReady(A.sellingPath,'[aria-label="Collection of your Marketplace items"]'),await b(800,1e3);const e=await A.getProducts();console.log({products:e}),H.sync(e),Bn()}).catch(t=>{console.error(t)})))()})(); diff --git a/auto-post-facebook-extensions_1.0/index.html b/auto-post-facebook-extensions_1.0/index.html index 77a6ad5..f984add 100644 --- a/auto-post-facebook-extensions_1.0/index.html +++ b/auto-post-facebook-extensions_1.0/index.html @@ -7,9 +7,9 @@ Vite + React + TS - + - + diff --git a/public/icons/128.png b/public/icons/128.png new file mode 100644 index 0000000000000000000000000000000000000000..c66ff9172795824733be680bf8d34db84cc6dd92 GIT binary patch literal 35731 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 z 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 Qi2wiq07*qoM6N<$g6J5w>Hq)$ literal 0 HcmV?d00001 diff --git a/public/icons/16.png b/public/icons/16.png new file mode 100644 index 0000000000000000000000000000000000000000..666bb1368c55f82c1c030074d8d537f52dcd7b83 GIT binary patch literal 566 zcmV-60?GY}P)ySSXsSIX14%~VdZLonH%+{|-}703f}S}82IchK5; zi&p0iRyKE`v<;PzIU&o=5gbro-NyO7bH;N%cXkDv3W8?XX%v{$NP;r=7U z(FMG64MhS>ic+m1{9LHGRv>Gkvb2WsgB65>KPZwAg9V`!4UHt4N|Ku>PeZvalrA8i zj?wJAa)_e|SR}eQ$3mrUgDKHEfEGu|EYs!W497qA95jhG)?a}67F}v_@gdxyl&8UJ z3|P~Jd(=h~rRp*a^9=L5Aj!f4p%PzUY2%rV9wnvN)VA}5(7fxrJvS~~jvnYh$Oa@B-c3$&pz`)ECI zg{#}|(O7?p`r0!RfHf|cyjcZ87_@gkqVw*PV2jq~)7L02*5H*Zgeq7NY}sj6K$1bP z?=SklzDmghD!WhM%VUla_`mO{AX7`@SRPU6AIPnTbn}z&1VL|KFh2F+DgYTBY%3sN z1`+NTv1ktFb1=uj*?I*40RR8Ne~B>w000I_L_t&o0ErLLhsKaMKL7v#07*qoM6N<$ Ef=6WwR{#J2 literal 0 HcmV?d00001 diff --git a/public/icons/32.png b/public/icons/32.png new file mode 100644 index 0000000000000000000000000000000000000000..238bf3166c57a448e2a474bca2e752228b0f6851 GIT binary patch literal 1515 zcmV zu@VCFGKN;Wxa=|TAW?L}F+!XAC!K0Z7}>Nw&7}$9p)OGu2&HL54F~c3EQEj@D#Wmi z1=5=m^sSCIwR@HyNgQ!(I(;ynkKVC!n7r}{re6O7Q`d+qpQ3;Kylp0}O?X%{>?4T- zo^=e5p@yvK?q~Bj`O16f9y*Qk!ta><`5VmM{Ti!tzoMi6B*rhik4(P3>G?@Q13J&W z1L8@H-Vuks+lQvFS@Ptkukd_+20NS2Ey~XxL$T^!1;b~q^9i`?vf_q^SySsRpUR(-^o-HbL?TT$Zy^g#`wTheFRVihZNd9ROeVV*eQZ zF+Ou=l`Hm*A)7B?`0QI~E%u_&JB*QY?;w+HVUgfyO?pVdV}lfhdpK_BVPN7SdPmQ4 zz)@6pHgULLMX_gu{s;<@?H#dx$G|u?R_57AJN!%@mGu?u^NyIPSQG2nxCRz#)Va1! zEIql4g_+w}`0Y-DnUF{J(H*Roe!<$}A6Wf!25U=Cu|i+9RaUkRVZt?_frUDi3l#fC zF!9<)4wq;z6Y^=h22VQ?k3Mht&iX1gR_EYlvWy(FhvT^hqzgL|OBC#hOHhB4tvi1e1I!~_-db9v|%XJ`d+ zpDQC+q>C$~fkBm1bpGMDSl~NxP^|#Wbq-FT`4*%a2qIZb7;sZa1LfPhc{M^0^1P~+ z0(qf_Q!P)l#uJMtVPmDlCVmh_Cf90hvx9pC8q=gD&I#bG@jUpM9K1}{A~>jG`RP52 z-R(8(Y`t(wt`nZ;^TTw3>%iMKw#!^xIfz+ITmx>LIH+eR$AtrXYd4ll5Z0GxvH5(# z7MDgSbLt)J@1dpGgHxA2MDNHMc*a9@w}LXi6Vfz;*DR654OD!4eF;KkeHpvkFYGOk zG<#g6N)K*vncjqEOb{Gmv%FwmTKC-umF|i{$C(BVNEN|}njUpa1qybz$|&8xf!Vt^ z@c73sG5_#8X!T?&*+Z@EKI9D=P$oihZp_lDnm)B`w{`ZT@8tPdeuPM`^JN7llLnL! z7(`^n)6S7NlPQ1f<#*9>;uJauCeYqJgz<|Xz<3#?Pq#cAm}lGFeGOGe2|?k|+OY9m z5$iCioIslFhF{Bm>~Tiq+B)n@n``YrR#PyoO>@;FJo`E;LB|!86Ef0~vv1<`)z2KR zd`?Tq5>r8SdGcnY57O6bhku>^+)2Q1_xlXa`0 zpUuJNr`Gw3(Pzwf#@=0>rBZ^py#pd?C@Cmr3|s>S4Y$?O18ngRXKQU4+iOdx&{p_Y zv~Bq!|B#j#U*<2`E_OD{b=a@&*4Nco5wvi{t=CIY*;uvHX^tPEInMJEZ7F5v?%%>3 zKTJFPIo02BEw*3$<*Mq6qd{H7y;qER;30}RTNiNQxYJZ#RImyX4P<%EfhikF=WWdJ z5k$er#sk51NfYl@V-ImCA&jdiOPdIGiDrIAge(K(SWvXMU4 z#)J)sM~H;AR(ZwJHsZB|NSA`8X>G)9!r*TJ00960+O=Qk00006Nkl{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})})); +import{R as c,j as s,Q as u,q as l,P as d}from"./popup-BMz864nQ.js";import"./base64-BbJB1hmJ.js";import"./product-api.service-PLptzR9s.js";import"./app-C7VSS-q9.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=n(e);fetch(e.href,r)}})();c.createRoot(document.getElementById("root")).render(s.jsx(u,{client:l,children:s.jsx(d,{})})); diff --git a/releases/auto-post-facebook-extensions_1.0/content/content.js b/releases/auto-post-facebook-extensions_1.0/content/content.js index 79bd686..f04e19a 100644 --- a/releases/auto-post-facebook-extensions_1.0/content/content.js +++ b/releases/auto-post-facebook-extensions_1.0/content/content.js @@ -1,6 +1,6 @@ -(function(){"use strict";function Ee(t,e){return function(){return t.apply(e,arguments)}}const{toString:ot}=Object.prototype,{getPrototypeOf:ce}=Object,{iterator:W,toStringTag:ve}=Symbol,Z=(t=>e=>{const n=ot.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),C=t=>(t=t.toLowerCase(),e=>Z(e)===t),G=t=>e=>typeof e===t,{isArray:q}=Array,$=G("undefined");function z(t){return t!==null&&!$(t)&&t.constructor!==null&&!$(t.constructor)&&O(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const Se=C("ArrayBuffer");function st(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&Se(t.buffer),e}const at=G("string"),O=G("function"),Te=G("number"),J=t=>t!==null&&typeof t=="object",ct=t=>t===!0||t===!1,Y=t=>{if(Z(t)!=="object")return!1;const e=ce(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(ve in t)&&!(W in t)},lt=t=>{if(!J(t)||z(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},ut=C("Date"),dt=C("File"),ft=C("Blob"),ht=C("FileList"),pt=t=>J(t)&&O(t.pipe),mt=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||O(t.append)&&((e=Z(t))==="formdata"||e==="object"&&O(t.toString)&&t.toString()==="[object FormData]"))},wt=C("URLSearchParams"),[yt,bt,gt,Et]=["ReadableStream","Request","Response","Headers"].map(C),vt=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function V(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let r,i;if(typeof t!="object"&&(t=[t]),q(t))for(r=0,i=t.length;r0;)if(i=n[r],e===i.toLowerCase())return i;return null}const F=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,ke=t=>!$(t)&&t!==F;function le(){const{caseless:t}=ke(this)&&this||{},e={},n=(r,i)=>{const o=t&&Re(e,i)||i;Y(e[o])&&Y(r)?e[o]=le(e[o],r):Y(r)?e[o]=le({},r):q(r)?e[o]=r.slice():e[o]=r};for(let r=0,i=arguments.length;r(V(e,(i,o)=>{n&&O(i)?t[o]=Ee(i,n):t[o]=i},{allOwnKeys:r}),t),Tt=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Rt=(t,e,n,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},kt=(t,e,n,r)=>{let i,o,s;const c={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),o=i.length;o-- >0;)s=i[o],(!r||r(s,t,e))&&!c[s]&&(e[s]=t[s],c[s]=!0);t=n!==!1&&ce(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Ot=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const r=t.indexOf(e,n);return r!==-1&&r===n},Pt=t=>{if(!t)return null;if(q(t))return t;let e=t.length;if(!Te(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},At=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&ce(Uint8Array)),_t=(t,e)=>{const r=(t&&t[W]).call(t);let i;for(;(i=r.next())&&!i.done;){const o=i.value;e.call(t,o[0],o[1])}},xt=(t,e)=>{let n;const r=[];for(;(n=t.exec(e))!==null;)r.push(n);return r},Ct=C("HTMLFormElement"),Nt=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),Oe=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),It=C("RegExp"),Pe=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),r={};V(n,(i,o)=>{let s;(s=e(i,o,t))!==!1&&(r[o]=s||i)}),Object.defineProperties(t,r)},Bt=t=>{Pe(t,(e,n)=>{if(O(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=t[n];if(O(r)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Lt=(t,e)=>{const n={},r=i=>{i.forEach(o=>{n[o]=!0})};return q(t)?r(t):r(String(t).split(e)),n},Ft=()=>{},Ut=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Dt(t){return!!(t&&O(t.append)&&t[ve]==="FormData"&&t[W])}const Mt=t=>{const e=new Array(10),n=(r,i)=>{if(J(r)){if(e.indexOf(r)>=0)return;if(z(r))return r;if(!("toJSON"in r)){e[i]=r;const o=q(r)?[]:{};return V(r,(s,c)=>{const d=n(s,i+1);!$(d)&&(o[c]=d)}),e[i]=void 0,o}}return r};return n(t,0)},qt=C("AsyncFunction"),jt=t=>t&&(J(t)||O(t))&&O(t.then)&&O(t.catch),Ae=((t,e)=>t?setImmediate:e?((n,r)=>(F.addEventListener("message",({source:i,data:o})=>{i===F&&o===n&&r.length&&r.shift()()},!1),i=>{r.push(i),F.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",O(F.postMessage)),Ht=typeof queueMicrotask<"u"?queueMicrotask.bind(F):typeof process<"u"&&process.nextTick||Ae,a={isArray:q,isArrayBuffer:Se,isBuffer:z,isFormData:mt,isArrayBufferView:st,isString:at,isNumber:Te,isBoolean:ct,isObject:J,isPlainObject:Y,isEmptyObject:lt,isReadableStream:yt,isRequest:bt,isResponse:gt,isHeaders:Et,isUndefined:$,isDate:ut,isFile:dt,isBlob:ft,isRegExp:It,isFunction:O,isStream:pt,isURLSearchParams:wt,isTypedArray:At,isFileList:ht,forEach:V,merge:le,extend:St,trim:vt,stripBOM:Tt,inherits:Rt,toFlatObject:kt,kindOf:Z,kindOfTest:C,endsWith:Ot,toArray:Pt,forEachEntry:_t,matchAll:xt,isHTMLForm:Ct,hasOwnProperty:Oe,hasOwnProp:Oe,reduceDescriptors:Pe,freezeMethods:Bt,toObjectSet:Lt,toCamelCase:Nt,noop:Ft,toFiniteNumber:Ut,findKey:Re,global:F,isContextDefined:ke,isSpecCompliantForm:Dt,toJSONObject:Mt,isAsyncFn:qt,isThenable:jt,setImmediate:Ae,asap:Ht,isIterable:t=>t!=null&&O(t[W])};function m(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}a.inherits(m,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:a.toJSONObject(this.config),code:this.code,status:this.status}}});const _e=m.prototype,xe={};["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(t=>{xe[t]={value:t}}),Object.defineProperties(m,xe),Object.defineProperty(_e,"isAxiosError",{value:!0}),m.from=(t,e,n,r,i,o)=>{const s=Object.create(_e);return a.toFlatObject(t,s,function(d){return d!==Error.prototype},c=>c!=="isAxiosError"),m.call(s,t.message,e,n,r,i),s.cause=t,s.name=t.name,o&&Object.assign(s,o),s};const $t=null;function ue(t){return a.isPlainObject(t)||a.isArray(t)}function Ce(t){return a.endsWith(t,"[]")?t.slice(0,-2):t}function Ne(t,e,n){return t?t.concat(e).map(function(i,o){return i=Ce(i),!n&&o?"["+i+"]":i}).join(n?".":""):e}function zt(t){return a.isArray(t)&&!t.some(ue)}const Jt=a.toFlatObject(a,{},null,function(e){return/^is[A-Z]/.test(e)});function Q(t,e,n){if(!a.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=a.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,p){return!a.isUndefined(p[w])});const r=n.metaTokens,i=n.visitor||u,o=n.dots,s=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&a.isSpecCompliantForm(e);if(!a.isFunction(i))throw new TypeError("visitor must be a function");function l(h){if(h===null)return"";if(a.isDate(h))return h.toISOString();if(a.isBoolean(h))return h.toString();if(!d&&a.isBlob(h))throw new m("Blob is not supported. Use a Buffer instead.");return a.isArrayBuffer(h)||a.isTypedArray(h)?d&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,w,p){let v=h;if(h&&!p&&typeof h=="object"){if(a.endsWith(w,"{}"))w=r?w:w.slice(0,-2),h=JSON.stringify(h);else if(a.isArray(h)&&zt(h)||(a.isFileList(h)||a.endsWith(w,"[]"))&&(v=a.toArray(h)))return w=Ce(w),v.forEach(function(R,I){!(a.isUndefined(R)||R===null)&&e.append(s===!0?Ne([w],I,o):s===null?w:w+"[]",l(R))}),!1}return ue(h)?!0:(e.append(Ne(p,w,o),l(h)),!1)}const f=[],g=Object.assign(Jt,{defaultVisitor:u,convertValue:l,isVisitable:ue});function S(h,w){if(!a.isUndefined(h)){if(f.indexOf(h)!==-1)throw Error("Circular reference detected in "+w.join("."));f.push(h),a.forEach(h,function(v,T){(!(a.isUndefined(v)||v===null)&&i.call(e,v,a.isString(T)?T.trim():T,w,g))===!0&&S(v,w?w.concat(T):[T])}),f.pop()}}if(!a.isObject(t))throw new TypeError("data must be an object");return S(t),e}function Ie(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(r){return e[r]})}function de(t,e){this._pairs=[],t&&Q(t,this,e)}const Be=de.prototype;Be.append=function(e,n){this._pairs.push([e,n])},Be.toString=function(e){const n=e?function(r){return e.call(this,r,Ie)}:Ie;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function Vt(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Le(t,e,n){if(!e)return t;const r=n&&n.encode||Vt;a.isFunction(n)&&(n={serialize:n});const i=n&&n.serialize;let o;if(i?o=i(e,n):o=a.isURLSearchParams(e)?e.toString():new de(e,n).toString(r),o){const s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+o}return t}class Fe{constructor(){this.handlers=[]}use(e,n,r){return this.handlers.push({fulfilled:e,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){a.forEach(this.handlers,function(r){r!==null&&e(r)})}}const Ue={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Xt={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:de,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},fe=typeof window<"u"&&typeof document<"u",he=typeof navigator=="object"&&navigator||void 0,Kt=fe&&(!he||["ReactNative","NativeScript","NS"].indexOf(he.product)<0),Wt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Zt=fe&&window.location.href||"http://localhost",k={...Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:fe,hasStandardBrowserEnv:Kt,hasStandardBrowserWebWorkerEnv:Wt,navigator:he,origin:Zt},Symbol.toStringTag,{value:"Module"})),...Xt};function Gt(t,e){return Q(t,new k.classes.URLSearchParams,{visitor:function(n,r,i,o){return k.isNode&&a.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...e})}function Yt(t){return a.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function Qt(t){const e={},n=Object.keys(t);let r;const i=n.length;let o;for(r=0;r=n.length;return s=!s&&a.isArray(i)?i.length:s,d?(a.hasOwnProp(i,s)?i[s]=[i[s],r]:i[s]=r,!c):((!i[s]||!a.isObject(i[s]))&&(i[s]=[]),e(n,r,i[s],o)&&a.isArray(i[s])&&(i[s]=Qt(i[s])),!c)}if(a.isFormData(t)&&a.isFunction(t.entries)){const n={};return a.forEachEntry(t,(r,i)=>{e(Yt(r),i,n,0)}),n}return null}function en(t,e,n){if(a.isString(t))try{return(e||JSON.parse)(t),a.trim(t)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(t)}const X={transitional:Ue,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,o=a.isObject(e);if(o&&a.isHTMLForm(e)&&(e=new FormData(e)),a.isFormData(e))return i?JSON.stringify(De(e)):e;if(a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)||a.isReadableStream(e))return e;if(a.isArrayBufferView(e))return e.buffer;if(a.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let c;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Gt(e,this.formSerializer).toString();if((c=a.isFileList(e))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Q(c?{"files[]":e}:e,d&&new d,this.formSerializer)}}return o||i?(n.setContentType("application/json",!1),en(e)):e}],transformResponse:[function(e){const n=this.transitional||X.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(a.isResponse(e)||a.isReadableStream(e))return e;if(e&&a.isString(e)&&(r&&!this.responseType||i)){const s=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(e)}catch(c){if(s)throw c.name==="SyntaxError"?m.from(c,m.ERR_BAD_RESPONSE,this,null,this.response):c}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:k.classes.FormData,Blob:k.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};a.forEach(["delete","get","head","post","put","patch"],t=>{X.headers[t]={}});const tn=a.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"]),nn=t=>{const e={};let n,r,i;return t&&t.split(` -`).forEach(function(s){i=s.indexOf(":"),n=s.substring(0,i).trim().toLowerCase(),r=s.substring(i+1).trim(),!(!n||e[n]&&tn[n])&&(n==="set-cookie"?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)}),e},Me=Symbol("internals");function K(t){return t&&String(t).trim().toLowerCase()}function ee(t){return t===!1||t==null?t:a.isArray(t)?t.map(ee):String(t)}function rn(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(t);)e[r[1]]=r[2];return e}const on=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function pe(t,e,n,r,i){if(a.isFunction(r))return r.call(this,e,n);if(i&&(e=n),!!a.isString(e)){if(a.isString(r))return e.indexOf(r)!==-1;if(a.isRegExp(r))return r.test(e)}}function sn(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,r)=>n.toUpperCase()+r)}function an(t,e){const n=a.toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(t,r+n,{value:function(i,o,s){return this[r].call(this,e,i,o,s)},configurable:!0})})}let P=class{constructor(e){e&&this.set(e)}set(e,n,r){const i=this;function o(c,d,l){const u=K(d);if(!u)throw new Error("header name must be a non-empty string");const f=a.findKey(i,u);(!f||i[f]===void 0||l===!0||l===void 0&&i[f]!==!1)&&(i[f||d]=ee(c))}const s=(c,d)=>a.forEach(c,(l,u)=>o(l,u,d));if(a.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(a.isString(e)&&(e=e.trim())&&!on(e))s(nn(e),n);else if(a.isObject(e)&&a.isIterable(e)){let c={},d,l;for(const u of e){if(!a.isArray(u))throw TypeError("Object iterator must return a key-value pair");c[l=u[0]]=(d=c[l])?a.isArray(d)?[...d,u[1]]:[d,u[1]]:u[1]}s(c,n)}else e!=null&&o(n,e,r);return this}get(e,n){if(e=K(e),e){const r=a.findKey(this,e);if(r){const i=this[r];if(!n)return i;if(n===!0)return rn(i);if(a.isFunction(n))return n.call(this,i,r);if(a.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=K(e),e){const r=a.findKey(this,e);return!!(r&&this[r]!==void 0&&(!n||pe(this,this[r],r,n)))}return!1}delete(e,n){const r=this;let i=!1;function o(s){if(s=K(s),s){const c=a.findKey(r,s);c&&(!n||pe(r,r[c],c,n))&&(delete r[c],i=!0)}}return a.isArray(e)?e.forEach(o):o(e),i}clear(e){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const o=n[r];(!e||pe(this,this[o],o,e,!0))&&(delete this[o],i=!0)}return i}normalize(e){const n=this,r={};return a.forEach(this,(i,o)=>{const s=a.findKey(r,o);if(s){n[s]=ee(i),delete n[o];return}const c=e?sn(o):String(o).trim();c!==o&&delete n[o],n[c]=ee(i),r[c]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return a.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=e&&a.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(` -`)}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,...n){const r=new this(e);return n.forEach(i=>r.set(i)),r}static accessor(e){const r=(this[Me]=this[Me]={accessors:{}}).accessors,i=this.prototype;function o(s){const c=K(s);r[c]||(an(i,s),r[c]=!0)}return a.isArray(e)?e.forEach(o):o(e),this}};P.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),a.reduceDescriptors(P.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(r){this[n]=r}}}),a.freezeMethods(P);function me(t,e){const n=this||X,r=e||n,i=P.from(r.headers);let o=r.data;return a.forEach(t,function(c){o=c.call(n,o,i.normalize(),e?e.status:void 0)}),i.normalize(),o}function qe(t){return!!(t&&t.__CANCEL__)}function j(t,e,n){m.call(this,t??"canceled",m.ERR_CANCELED,e,n),this.name="CanceledError"}a.inherits(j,m,{__CANCEL__:!0});function je(t,e,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?t(n):e(new m("Request failed with status code "+n.status,[m.ERR_BAD_REQUEST,m.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function cn(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ln(t,e){t=t||10;const n=new Array(t),r=new Array(t);let i=0,o=0,s;return e=e!==void 0?e:1e3,function(d){const l=Date.now(),u=r[o];s||(s=l),n[i]=d,r[i]=l;let f=o,g=0;for(;f!==i;)g+=n[f++],f=f%t;if(i=(i+1)%t,i===o&&(o=(o+1)%t),l-s{n=u,i=null,o&&(clearTimeout(o),o=null),t(...l)};return[(...l)=>{const u=Date.now(),f=u-n;f>=r?s(l,u):(i=l,o||(o=setTimeout(()=>{o=null,s(i)},r-f)))},()=>i&&s(i)]}const te=(t,e,n=3)=>{let r=0;const i=ln(50,250);return un(o=>{const s=o.loaded,c=o.lengthComputable?o.total:void 0,d=s-r,l=i(d),u=s<=c;r=s;const f={loaded:s,total:c,progress:c?s/c:void 0,bytes:d,rate:l||void 0,estimated:l&&c&&u?(c-s)/l:void 0,event:o,lengthComputable:c!=null,[e?"download":"upload"]:!0};t(f)},n)},He=(t,e)=>{const n=t!=null;return[r=>e[0]({lengthComputable:n,total:t,loaded:r}),e[1]]},$e=t=>(...e)=>a.asap(()=>t(...e)),dn=k.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,k.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(k.origin),k.navigator&&/(msie|trident)/i.test(k.navigator.userAgent)):()=>!0,fn=k.hasStandardBrowserEnv?{write(t,e,n,r,i,o){const s=[t+"="+encodeURIComponent(e)];a.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),a.isString(r)&&s.push("path="+r),a.isString(i)&&s.push("domain="+i),o===!0&&s.push("secure"),document.cookie=s.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function hn(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function pn(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function ze(t,e,n){let r=!hn(e);return t&&(r||n==!1)?pn(t,e):e}const Je=t=>t instanceof P?{...t}:t;function U(t,e){e=e||{};const n={};function r(l,u,f,g){return a.isPlainObject(l)&&a.isPlainObject(u)?a.merge.call({caseless:g},l,u):a.isPlainObject(u)?a.merge({},u):a.isArray(u)?u.slice():u}function i(l,u,f,g){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l,f,g)}else return r(l,u,f,g)}function o(l,u){if(!a.isUndefined(u))return r(void 0,u)}function s(l,u){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l)}else return r(void 0,u)}function c(l,u,f){if(f in e)return r(l,u);if(f in t)return r(void 0,l)}const d={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:c,headers:(l,u,f)=>i(Je(l),Je(u),f,!0)};return a.forEach(Object.keys({...t,...e}),function(u){const f=d[u]||i,g=f(t[u],e[u],u);a.isUndefined(g)&&f!==c||(n[u]=g)}),n}const Ve=t=>{const e=U({},t);let{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:o,headers:s,auth:c}=e;e.headers=s=P.from(s),e.url=Le(ze(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),c&&s.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):"")));let d;if(a.isFormData(n)){if(k.hasStandardBrowserEnv||k.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if((d=s.getContentType())!==!1){const[l,...u]=d?d.split(";").map(f=>f.trim()).filter(Boolean):[];s.setContentType([l||"multipart/form-data",...u].join("; "))}}if(k.hasStandardBrowserEnv&&(r&&a.isFunction(r)&&(r=r(e)),r||r!==!1&&dn(e.url))){const l=i&&o&&fn.read(o);l&&s.set(i,l)}return e},mn=typeof XMLHttpRequest<"u"&&function(t){return new Promise(function(n,r){const i=Ve(t);let o=i.data;const s=P.from(i.headers).normalize();let{responseType:c,onUploadProgress:d,onDownloadProgress:l}=i,u,f,g,S,h;function w(){S&&S(),h&&h(),i.cancelToken&&i.cancelToken.unsubscribe(u),i.signal&&i.signal.removeEventListener("abort",u)}let p=new XMLHttpRequest;p.open(i.method.toUpperCase(),i.url,!0),p.timeout=i.timeout;function v(){if(!p)return;const R=P.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),A={data:!c||c==="text"||c==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:R,config:t,request:p};je(function(M){n(M),w()},function(M){r(M),w()},A),p=null}"onloadend"in p?p.onloadend=v:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf("file:")===0)||setTimeout(v)},p.onabort=function(){p&&(r(new m("Request aborted",m.ECONNABORTED,t,p)),p=null)},p.onerror=function(){r(new m("Network Error",m.ERR_NETWORK,t,p)),p=null},p.ontimeout=function(){let I=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const A=i.transitional||Ue;i.timeoutErrorMessage&&(I=i.timeoutErrorMessage),r(new m(I,A.clarifyTimeoutError?m.ETIMEDOUT:m.ECONNABORTED,t,p)),p=null},o===void 0&&s.setContentType(null),"setRequestHeader"in p&&a.forEach(s.toJSON(),function(I,A){p.setRequestHeader(A,I)}),a.isUndefined(i.withCredentials)||(p.withCredentials=!!i.withCredentials),c&&c!=="json"&&(p.responseType=i.responseType),l&&([g,h]=te(l,!0),p.addEventListener("progress",g)),d&&p.upload&&([f,S]=te(d),p.upload.addEventListener("progress",f),p.upload.addEventListener("loadend",S)),(i.cancelToken||i.signal)&&(u=R=>{p&&(r(!R||R.type?new j(null,t,p):R),p.abort(),p=null)},i.cancelToken&&i.cancelToken.subscribe(u),i.signal&&(i.signal.aborted?u():i.signal.addEventListener("abort",u)));const T=cn(i.url);if(T&&k.protocols.indexOf(T)===-1){r(new m("Unsupported protocol "+T+":",m.ERR_BAD_REQUEST,t));return}p.send(o||null)})},wn=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let r=new AbortController,i;const o=function(l){if(!i){i=!0,c();const u=l instanceof Error?l:this.reason;r.abort(u instanceof m?u:new j(u instanceof Error?u.message:u))}};let s=e&&setTimeout(()=>{s=null,o(new m(`timeout ${e} of ms exceeded`,m.ETIMEDOUT))},e);const c=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(o):l.removeEventListener("abort",o)}),t=null)};t.forEach(l=>l.addEventListener("abort",o));const{signal:d}=r;return d.unsubscribe=()=>a.asap(c),d}},yn=function*(t,e){let n=t.byteLength;if(n{const i=bn(t,e);let o=0,s,c=d=>{s||(s=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:l,value:u}=await i.next();if(l){c(),d.close();return}let f=u.byteLength;if(n){let g=o+=f;n(g)}d.enqueue(new Uint8Array(u))}catch(l){throw c(l),l}},cancel(d){return c(d),i.return()}},{highWaterMark:2})},ne=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Ke=ne&&typeof ReadableStream=="function",En=ne&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),We=(t,...e)=>{try{return!!t(...e)}catch{return!1}},vn=Ke&&We(()=>{let t=!1;const e=new Request(k.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),Ze=64*1024,we=Ke&&We(()=>a.isReadableStream(new Response("").body)),re={stream:we&&(t=>t.body)};ne&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!re[e]&&(re[e]=a.isFunction(t[e])?n=>n[e]():(n,r)=>{throw new m(`Response type '${e}' is not supported`,m.ERR_NOT_SUPPORT,r)})})})(new Response);const Sn=async t=>{if(t==null)return 0;if(a.isBlob(t))return t.size;if(a.isSpecCompliantForm(t))return(await new Request(k.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(a.isArrayBufferView(t)||a.isArrayBuffer(t))return t.byteLength;if(a.isURLSearchParams(t)&&(t=t+""),a.isString(t))return(await En(t)).byteLength},Tn=async(t,e)=>{const n=a.toFiniteNumber(t.getContentLength());return n??Sn(e)},ye={http:$t,xhr:mn,fetch:ne&&(async t=>{let{url:e,method:n,data:r,signal:i,cancelToken:o,timeout:s,onDownloadProgress:c,onUploadProgress:d,responseType:l,headers:u,withCredentials:f="same-origin",fetchOptions:g}=Ve(t);l=l?(l+"").toLowerCase():"text";let S=wn([i,o&&o.toAbortSignal()],s),h;const w=S&&S.unsubscribe&&(()=>{S.unsubscribe()});let p;try{if(d&&vn&&n!=="get"&&n!=="head"&&(p=await Tn(u,r))!==0){let A=new Request(e,{method:"POST",body:r,duplex:"half"}),L;if(a.isFormData(r)&&(L=A.headers.get("content-type"))&&u.setContentType(L),A.body){const[M,ae]=He(p,te($e(d)));r=Xe(A.body,Ze,M,ae)}}a.isString(f)||(f=f?"include":"omit");const v="credentials"in Request.prototype;h=new Request(e,{...g,signal:S,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:v?f:void 0});let T=await fetch(h,g);const R=we&&(l==="stream"||l==="response");if(we&&(c||R&&w)){const A={};["status","statusText","headers"].forEach(rt=>{A[rt]=T[rt]});const L=a.toFiniteNumber(T.headers.get("content-length")),[M,ae]=c&&He(L,te($e(c),!0))||[];T=new Response(Xe(T.body,Ze,M,()=>{ae&&ae(),w&&w()}),A)}l=l||"text";let I=await re[a.findKey(re,l)||"text"](T,t);return!R&&w&&w(),await new Promise((A,L)=>{je(A,L,{data:I,headers:P.from(T.headers),status:T.status,statusText:T.statusText,config:t,request:h})})}catch(v){throw w&&w(),v&&v.name==="TypeError"&&/Load failed|fetch/i.test(v.message)?Object.assign(new m("Network Error",m.ERR_NETWORK,t,h),{cause:v.cause||v}):m.from(v,v&&v.code,t,h)}})};a.forEach(ye,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const Ge=t=>`- ${t}`,Rn=t=>a.isFunction(t)||t===null||t===!1,Ye={getAdapter:t=>{t=a.isArray(t)?t:[t];const{length:e}=t;let n,r;const i={};for(let o=0;o`adapter ${c} `+(d===!1?"is not supported by the environment":"is not available in the build"));let s=e?o.length>1?`since : -`+o.map(Ge).join(` -`):" "+Ge(o[0]):"as no adapter specified";throw new m("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return r},adapters:ye};function be(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new j(null,t)}function Qe(t){return be(t),t.headers=P.from(t.headers),t.data=me.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Ye.getAdapter(t.adapter||X.adapter)(t).then(function(r){return be(t),r.data=me.call(t,t.transformResponse,r),r.headers=P.from(r.headers),r},function(r){return qe(r)||(be(t),r&&r.response&&(r.response.data=me.call(t,t.transformResponse,r.response),r.response.headers=P.from(r.response.headers))),Promise.reject(r)})}const et="1.11.0",ie={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{ie[t]=function(r){return typeof r===t||"a"+(e<1?"n ":" ")+t}});const tt={};ie.transitional=function(e,n,r){function i(o,s){return"[Axios v"+et+"] Transitional option '"+o+"'"+s+(r?". "+r:"")}return(o,s,c)=>{if(e===!1)throw new m(i(s," has been removed"+(n?" in "+n:"")),m.ERR_DEPRECATED);return n&&!tt[s]&&(tt[s]=!0,console.warn(i(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(o,s,c):!0}},ie.spelling=function(e){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};function kn(t,e,n){if(typeof t!="object")throw new m("options must be an object",m.ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let i=r.length;for(;i-- >0;){const o=r[i],s=e[o];if(s){const c=t[o],d=c===void 0||s(c,o,t);if(d!==!0)throw new m("option "+o+" must be "+d,m.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new m("Unknown option "+o,m.ERR_BAD_OPTION)}}const oe={assertOptions:kn,validators:ie},N=oe.validators;let D=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Fe,response:new Fe}}async request(e,n){try{return await this._request(e,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=i.stack?i.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+o):r.stack=o}catch{}}throw r}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=U(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:o}=n;r!==void 0&&oe.assertOptions(r,{silentJSONParsing:N.transitional(N.boolean),forcedJSONParsing:N.transitional(N.boolean),clarifyTimeoutError:N.transitional(N.boolean)},!1),i!=null&&(a.isFunction(i)?n.paramsSerializer={serialize:i}:oe.assertOptions(i,{encode:N.function,serialize:N.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),oe.assertOptions(n,{baseUrl:N.spelling("baseURL"),withXsrfToken:N.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=o&&a.merge(o.common,o[n.method]);o&&a.forEach(["delete","get","head","post","put","patch","common"],h=>{delete o[h]}),n.headers=P.concat(s,o);const c=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,c.unshift(w.fulfilled,w.rejected))});const l=[];this.interceptors.response.forEach(function(w){l.push(w.fulfilled,w.rejected)});let u,f=0,g;if(!d){const h=[Qe.bind(this),void 0];for(h.unshift(...c),h.push(...l),g=h.length,u=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](i);r._listeners=null}),this.promise.then=i=>{let o;const s=new Promise(c=>{r.subscribe(c),o=c}).then(i);return s.cancel=function(){r.unsubscribe(o)},s},e(function(o,s,c){r.reason||(r.reason=new j(o,s,c),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=r=>{e.abort(r)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new it(function(i){e=i}),cancel:e}}};function Pn(t){return function(n){return t.apply(null,n)}}function An(t){return a.isObject(t)&&t.isAxiosError===!0}const ge={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(ge).forEach(([t,e])=>{ge[e]=t});function nt(t){const e=new D(t),n=Ee(D.prototype.request,e);return a.extend(n,D.prototype,e,{allOwnKeys:!0}),a.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return nt(U(t,i))},n}const E=nt(X);E.Axios=D,E.CanceledError=j,E.CancelToken=On,E.isCancel=qe,E.VERSION=et,E.toFormData=Q,E.AxiosError=m,E.Cancel=E.CanceledError,E.all=function(e){return Promise.all(e)},E.spread=Pn,E.isAxiosError=An,E.mergeConfig=U,E.AxiosHeaders=P,E.formToJSON=t=>De(a.isHTMLForm(t)?new FormData(t):t),E.getAdapter=Ye.getAdapter,E.HttpStatusCode=ge,E.default=E;const{Axios:Hn,AxiosError:$n,CanceledError:zn,isCancel:Jn,CancelToken:Vn,VERSION:Xn,all:Kn,Cancel:Wn,isAxiosError:Zn,spread:Gn,toFormData:Yn,AxiosHeaders:Qn,HttpStatusCode:er,formToJSON:tr,getAdapter:nr,mergeConfig:rr}=E,se=E.create({baseURL:"http://localhost:3000",headers:{"Content-Type":"application/json",Authorization:"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2ludC5pcHN1cHBseS5jb20uYXUvYXBpL2xvZ2luIiwiaWF0IjoxNzIxNjA5MTEzLCJleHAiOjMyMzUzMzcxMTMsIm5iZiI6MTcyMTYwOTExMywianRpIjoiWHpCZkZPc0ZJUlFxaEZvaiIsInN1YiI6MSwicHJ2IjoiYzhlZTFmYzg5ZTc3NWVjNGM3Mzg2NjdlNWJlMTdhNTkwYjZkNDBmYyJ9.kFFEPpdmNUp-kn_G3cIIc26bivO6tbfcvkpG9I8Im7M"}});class _n{item_per_page=10;async index(e){const n={skip:0,limit:10,order:"updatedAt desc",where:{account:"prology_net",status:"Updated"}};return se({method:"POST",data:{urlAPI:"/api/ebay-listing/listing-get-list",filter:{...n,...e,where:{...n.where,...e?.where}}}})}async get(e){return se({method:"POST",data:{filter:{where:{account:"prology_net",condition:e.raw_condition,productModelCode:e.sku}},pageCurrent:"/ebaytools/listing-ebay",urlAPI:"/api/ebay-listing/get-image-listing"}})}async sync(e){return se({url:"sync",method:"POST",data:e})}async getPublistedProducts(){return se({url:"data"})}async apiRequest(e,n){return new Promise((r,i)=>{const o="req_"+Date.now()+"_"+Math.random();function s(c){c.data.type==="API_RESPONSE"&&c.data.requestId===o&&(window.removeEventListener("message",s),c.data.error?i(c.data.error):r(c.data.payload))}window.addEventListener("message",s),window.postMessage({type:"API_REQUEST",requestId:o,payload:n,fn:e},"*")})}}const H=new _n;function B(t){return new Promise(e=>setTimeout(e,t))}function b(t,e){const n=Math.floor(Math.random()*(e-t+1))+t;return B(n)}class xn{static ID_EXTENSION="ex-root"}class Cn{base64ToFile(e,n,r){const i=e.includes(",")?e.split(",")[1]:e,o=atob(i),s=new ArrayBuffer(o.length),c=new Uint8Array(s);for(let l=0;l{let s=0,c=!1;const d=()=>{const l=document.evaluate(c&&i?i:e,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;if(l instanceof HTMLElement){o(l);return}s++,s{const s=new FileReader;s.onloadend=()=>{typeof s.result=="string"?i(s.result.split(",")[1]):o("Không thể đọc dữ liệu ảnh")},s.onerror=o,s.readAsDataURL(r)})}getImageExtension(e){try{const r=new URL(e).pathname.match(/\.([a-zA-Z0-9]+)$/);return r?r[1].toLowerCase():null}catch{const i=e.split("?")[0].match(/\.([a-zA-Z0-9]+)$/);return i?i[1].toLowerCase():null}}imageLocalToBase64(e){return new Promise((n,r)=>{try{const i=chrome.runtime.getURL(`${e}`);fetch(i).then(o=>o.blob()).then(o=>{const s=new FileReader;s.onloadend=()=>n(s.result),s.onerror=r,s.readAsDataURL(o)}).catch(r)}catch(i){r(i)}})}scrollToElement(e,n="smooth"){e&&e.scrollIntoView({behavior:n,block:"center",inline:"nearest"})}getElementPointCoores(e){if(!e)return null;const n=e.getBoundingClientRect(),r=n.left+n.width/2,i=n.top+n.height/2;return{x:r,y:i}}setInputValue(e,n){e&&(e.value=n,e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})))}writeToInput=async(e,n)=>{let r;if(typeof n=="string"?r=await this.getElementByXPath(n):r=n,!r)throw new Error("Xpath is not found with value: "+e);this.scrollToElement(r),this.clickByPoint(r),this.setInputValue(r,e)};pressEnter(e){if(!e)throw new Error("Textarea not found:",e);e.focus(),["keydown","keypress","keyup"].forEach(n=>{e.dispatchEvent(new KeyboardEvent(n,{key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0}))})}findNestedElement(e,n,r){const i=document.querySelector(e);if(!i)return null;const o=i.querySelectorAll(n);for(const s of o)if(s.innerText.trim().toLowerCase()===r.toLowerCase())return s;return null}findNestedIcElement(e,n,r){let i=null;if(typeof e=="string"){if(document.querySelector(e),!i)return null}else i=e;const o=i.querySelectorAll(n);for(const s of o)if(s.innerText.trim().toLowerCase().includes(r.toLowerCase()))return s;return null}findElInParent(e,n){return e&&e.parentElement?.querySelector(n)||null}waitForElement(e,n=100){return new Promise(r=>{const i=d=>d.offsetParent!==null&&(d.childElementCount>0||d.innerText.trim().length>0),o=()=>{const d=document.querySelector(e);d&&i(d)&&(s.disconnect(),clearInterval(c),r(d))},s=new MutationObserver(o);s.observe(document.body,{childList:!0,subtree:!0});const c=setInterval(o,n);o()})}}const y=new Cn;class Nn{sellingPath="https://www.facebook.com/marketplace/you/selling";marketPath="https://www.facebook.com/marketplace";createItem="https://www.facebook.com/marketplace/create/item";editItem="https://www.facebook.com/marketplace/edit";selectors={file__image_input:'input[type="file"]',next_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[5]/div/div/div",update_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[4]/div/div/div",publish_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[4]/div[2]/div/div",products:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[2]/div/div/div[2]/div[1]/div/div[2]/div[2]/div",products_fallback:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[2]/div/div/div[2]/div[1]/div/div[3]/div/div/span/div[2]/div",option_btn:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div/div/div/div[3]/div/div/div/div/div[1]/div",option_btn_fallback:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div[3]/div[2]/div/div[2]/div[1]",close_btn_modal_feedback:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div[2]/div",images_container:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[2]/div[1]/div[2]/div/div/div[3]/div[2]/div",description_edit_input:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[9]/div/div/div[2]/div/div/div/label/div/div/textarea",sku_edit_input:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[9]/div/div/div[5]/div/div/div[1]/label/div/input",new_item_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[7]/a/div",item_for_sell:"/html/body/div[1]/div/div[1]/div/div[5]/div/div/div[3]/div[2]/div[2]/div/div/div[2]/div[1]/div/span/div/div/div[1]/div/div",market_container:'[aria-label="Marketplace"]'};findInputByTitle(e,n="input"){const r=y.findNestedElement(this.selectors.market_container,"span",e);if(!r)throw new Error("Not found input by title: "+e);return y.findElInParent(r,n)}clearImages=async()=>{document.querySelectorAll('[aria-label="Remove"]').forEach(e=>e?.click())};uploadImages=async e=>{const n=new DataTransfer;for(const i of e.images){const o=await y.imageUrlToBase64(i);console.log("Base64:",i.slice(0,50)+"...");const s=y.base64ToFile(o,e.sku,y.getImageExtension(i)||"jpg");n.items.add(s)}const r=document.querySelector(this.selectors.file__image_input);r?(r.files=n.files,r.dispatchEvent(new Event("change",{bubbles:!0}))):console.error("Không tìm thấy input[type='file']")};chooseSelect=async(e,n,r='[aria-label="Dropdown menu"]')=>{const i=y.findNestedElement(this.selectors.market_container,"span",n);y.scrollToElement(i),await b(500,600),i?.click(),await b(500,600);const o=y.findNestedElement(r,"span",e);if(await b(500,600),!o)throw new Error(`No child found with text "${e}"`);y.scrollToElement(o),await b(500,600),o.click(),await b(500,600)};chooseLocation=async e=>{const n=this.findInputByTitle("location");await y.writeToInput(e,n),await B(600);const r=document.querySelector('[role="listbox"]')?.querySelectorAll("li")||[],i=Array.from(r).find(o=>o.innerHTML.trim().toLowerCase().includes(e.toLowerCase()));if(console.log(i),!i)throw new Error(`No child found with text "${e}"`);y.scrollToElement(i),await B(400),y.clickByPoint(i)};writeTags=async e=>{const n=this.findInputByTitle("product tags","textarea");if(!n)throw new Error("Input is not found");y.scrollToElement(n),await B(500);for(const r of e)await y.writeToInput(r,n),await B(300),y.pressEnter(n)};clickNext=async()=>{const e=await y.getElementByXPath(this.selectors.next_btn);if(!e)throw new Error("Next button is not found");y.clickByPoint(e)};clickUpdate=async()=>{const e=await y.getElementByXPath(this.selectors.update_btn);if(!e)throw new Error("Next button is not found");y.clickByPoint(e)};clickPublist=async()=>{const e=await y.getElementByXPath(this.selectors.publish_btn);if(!e)throw new Error("Publist button is not found");y.clickByPoint(e)};handlePublist=async e=>{console.log({item:e}),await b(600,1e3),await this.uploadImages(e),await b(600,1e3);const n=this.findInputByTitle("title");y.writeToInput(e.title,n),await b(600,1e3);const r=this.findInputByTitle("price");if(y.writeToInput(String(e.price),r),await b(600,1e3),await this.chooseSelect(e.category,"category"),await b(600,1e3),await this.chooseSelect(e.condition,"condition",'[aria-label="Select an option"]'),e.brand){await b(600,1e3);const s=this.findInputByTitle("brand");await y.writeToInput(e.brand,s)}await b(600,1e3);const i=this.findInputByTitle("description","textarea");await y.writeToInput(e.description,i),await b(600,1e3),await this.writeTags(e.tags),await b(600,1e3);const o=this.findInputByTitle("sku");return await y.writeToInput(e.sku,o),e?.location&&(await b(600,1e3),await this.chooseLocation(e.location)),await b(300,500),await this.clickNext(),!0};handleRePublist=async e=>{console.log({item:e}),await y.waitForElement('[aria-label="Collection of your Marketplace items"]');const n=await this.getOptionEls(e);console.log({items:n}),this.clickItemInList(n,"edit"),await B(1e3),await this.waitForPageReady(this.editItem,this.selectors.market_container),await b(1e3,2e3),await this.clearImages(),await b(600,1e3),await this.uploadImages(e),await b(600,1e3);const r=this.findInputByTitle("title");y.writeToInput(e.title,r),await b(600,1e3);const i=this.findInputByTitle("price");y.writeToInput(String(e.price),i),await b(600,1e3),await this.chooseSelect(e.category,"category"),await b(600,1e3),await this.chooseSelect(e.condition,"condition",'[aria-label="Select an option"]'),await b(600,1e3);const o=this.findInputByTitle("description","textarea");return await y.writeToInput(e.description,o),await b(600,1e3),await this.writeTags(e.tags),await b(600,1e3),e?.location&&(await b(600,1e3),await this.chooseLocation(e.location)),!0};getProducts=async()=>{const e=await y.getElementByXPath(this.selectors.products),n=await y.getElementByXPath(this.selectors.products_fallback);console.log({products1:e,products2:n});const r=[e,n].filter(Boolean);return r.length===0?[]:r.flatMap(i=>this.extractListings(i))};extractListings(e){return Array.from(e.children).map(r=>{const o=r.querySelector('span[dir="auto"], div[dir="auto"]')?.textContent?.trim()||"",s=document.querySelectorAll(`[aria-label="${o}"]`),c=Array.from(s).filter(f=>!f.querySelector("img"))[0],l=y.findNestedIcElement(c,"span","AU$")?.textContent?.match(/[\d,]+(?:\.\d+)?/),u=l?parseFloat(l[0].replace(/,/g,"")):0;return{title:o,price:u,el:e}})}closeTab=async e=>{chrome.runtime.sendMessage({type:"close-tab",payload:e})};clickOptionOfProduct(e){const n=document.querySelector(`[aria-label="More options for ${e.title}"]`);if(!n)throw new Error(`Not found option buttin in product ${`[aria-label="More options for ${e.title}"]`}, ID: ${e.id}`);y.scrollToElement(n),n.click?.()}async getOptionEls(e){return this.clickOptionOfProduct(e),await B(2e3),Array.from(document.querySelectorAll('[role="menuitem"]'))}clickItemInList(e,n){const r=e.find(i=>i.textContent.toLocaleLowerCase().includes(n));if(!r)throw new Error(`Not found item ${n} in options list`);r.click?.()}getItemInList(e,n){const r=e.find(i=>i.textContent.toLocaleLowerCase().includes(n));if(!r)throw new Error(`Not found item ${n} in options list`);return r}handleDelete=async e=>{const n=await this.getOptionEls(e);console.log({items:n}),this.clickItemInList(n,"delete"),await B(1e3);const r=await y.getElementByXPath(this.selectors.option_btn,{xpathFallback:this.selectors.option_btn_fallback});console.log({confirmBtn:r}),r?.click(),(await y.getElementByXPath(this.selectors.close_btn_modal_feedback))?.click(),chrome.runtime.sendMessage({type:"delete-done"})};waitForUrlContains(e,n=1e4){return new Promise((r,i)=>{const o=Date.now(),s=()=>{window.location.href.includes(e)?r():Date.now()-o>n?i(new Error("Timeout waiting for URL change")):setTimeout(s,500)};s()})}waitForPageReady(e,n,r=15e3){return new Promise((i,o)=>{const s=Date.now(),c=async()=>{window.location.href.includes(e)&&document.querySelector(n)?i():Date.now()-s>r?o(new Error("Timeout waiting for selling page ready")):setTimeout(c,500)};c()})}syncListing=async()=>{window.location.href.includes(this.sellingPath)||(document.querySelector('a[href="/marketplace/you/selling/"]')?.click?.(),await this.waitForPageReady(this.sellingPath,this.selectors.products)),await _.getProducts()};extractMarketplaceItemId(e){const n=e.match(/\/marketplace\/item\/(\d+)/);return n?n[1]:null}handleGetPublistID=async e=>{const n=await _.getProducts(),r=n.find(c=>c.title==e.title&&c.price==e.price);if(console.log({payload:e,product:r,products:n}),!r)return;r.el;const i=await this.getOptionEls(e),o=this.getItemInList(i,"view listing"),s=this.extractMarketplaceItemId(o.href);return this.clickOptionOfProduct(e),s};async gotoPublist(){(await y.getElementByXPath(this.selectors.new_item_btn))?.click(),await b(400,800),(await y.getElementByXPath(this.selectors.item_for_sell))?.click()}async gotoSell(){document.querySelector('[href="/marketplace/you/selling/"]')?.click()}}const _=new Nn;class In{role;listeners;constructor(e){this.role=e,this.listeners=new Map,chrome.runtime.onMessage.addListener((n,r,i)=>{if(n?.type&&this.listeners.has(n.type))return this.listeners.get(n.type)(n.payload,r,i),!0})}on(e,n){this.listeners.set(e,n)}send(e,n,r){const i={from:this.role,to:e,type:n,payload:r};(this.role==="popup"||this.role==="content")&&chrome.runtime.sendMessage(i),this.role==="background"&&(e==="content"?chrome.tabs.query({active:!0,currentWindow:!0},o=>{o[0]?.id&&chrome.tabs.sendMessage(o[0].id,i,()=>{chrome.runtime.lastError&&console.warn("Không gửi được tới content script:",chrome.runtime.lastError.message)})}):e==="popup"&&chrome.runtime.sendMessage(i,()=>{chrome.runtime.lastError&&console.warn("Không gửi được tới popup:",chrome.runtime.lastError.message)}))}sendToTab(e,n,r){if(this.role!=="background")throw new Error("sendToTab chỉ được gọi từ background");const i={from:this.role,to:"content",type:n,payload:r};chrome.tabs.sendMessage(e,i,()=>{chrome.runtime.lastError&&console.warn(`Không gửi được tới content script ở tab ${e}:`,chrome.runtime.lastError.message)})}waitForMessage(e,n=3e4){return new Promise((r,i)=>{let o;const s=c=>{clearTimeout(o),this.off(e,s),r(c)};o=setTimeout(()=>{this.off(e,s),i(new Error(`Timeout khi chờ message: ${e}`))},n),this.on(e,s)})}off(e,n){this.listeners.get(e)===n&&this.listeners.delete(e)}}const x=new In("content"),Bn=()=>{const t=xn.ID_EXTENSION;if(document.getElementById(t))return;const e=document.createElement("div");e.id=t,document.body.appendChild(e);const n=document.createElement("script");n.src=chrome.runtime.getURL("content/inject-ui.js"),n.type="module",document.body.appendChild(n);const r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.href=chrome.runtime.getURL("assets/style.css"),document.head.appendChild(r)};x.on("background-to-content-publish",async t=>{try{console.log("[publish] Content nhận:",t),await b(800,1e3),await _.handlePublist(t.data)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-publish",{msg:t})}}),x.on("background-to-content-unlist",async t=>{try{console.log("[unlist] Content nhận:",t),await b(800,1e3),await _.gotoSell(),await b(800,1e3),await _.handleDelete(t.data),await b(800,1e3);const e=await _.getProducts();await b(800,1e3),H.sync(e)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-unlist",{msg:t})}}),x.on("background-to-content-re-publist",async t=>{try{console.log("[re-publist] Content nhận:",t),await b(800,1e3),await _.gotoSell(),await b(800,1e3),await _.handleRePublist(t.data)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-re-publist",{msg:t})}}),window.addEventListener("message",async t=>{if(t.source===window&&t.data.type==="API_REQUEST"){const e=t.data.payload,n=t.data.fn,{requestId:r}=t.data;console.log({requestId:r,event:t,body:e});try{let i=null;switch(n){case"index":{i=(await H.index(e)).data;break}case"getPublistedProducts":{i=(await H.getPublistedProducts()).data;break}case"get":{i=(await H.get(e)).data,console.log({data:i,body:e});break}case"createBlobUrl":{x.send("background","content-to-background-create-blod-urls",e),i=await x.waitForMessage("background-to-content-create-blod-urls"),console.log({data:i});break}case"publist":{x.send("background","content-to-background-actions",{type:"publist",data:e}),i=await x.waitForMessage("background-to-content-actions");break}case"unlist":{x.send("background","content-to-background-actions",{type:"unlist",data:e}),console.log({body:e}),i=await x.waitForMessage("background-to-content-actions"),console.log({unlisted:i});break}case"sync":{const o=await _.getProducts();console.log({products:o}),await H.sync(o),i=o;break}}window.postMessage({type:"API_RESPONSE",requestId:r,payload:i},"*")}catch(i){window.postMessage({type:"API_RESPONSE",requestId:r,error:i.message},"*")}}}),(async()=>(await b(800,1e3),y.waitForElement('[aria-label="Collection of your Marketplace items"]').then(async t=>{console.log("Element đã xuất hiện:",t),await _.waitForPageReady(_.sellingPath,'[aria-label="Collection of your Marketplace items"]'),await b(800,1e3);const e=await _.getProducts();console.log({products:e}),H.sync(e),Bn()}).catch(t=>{console.error(t)})))()})(); +(function(){"use strict";function Ee(t,e){return function(){return t.apply(e,arguments)}}const{toString:it}=Object.prototype,{getPrototypeOf:ce}=Object,{iterator:W,toStringTag:ve}=Symbol,Z=(t=>e=>{const n=it.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),C=t=>(t=t.toLowerCase(),e=>Z(e)===t),G=t=>e=>typeof e===t,{isArray:q}=Array,$=G("undefined");function z(t){return t!==null&&!$(t)&&t.constructor!==null&&!$(t.constructor)&&O(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const Se=C("ArrayBuffer");function st(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&Se(t.buffer),e}const at=G("string"),O=G("function"),Te=G("number"),J=t=>t!==null&&typeof t=="object",ct=t=>t===!0||t===!1,Y=t=>{if(Z(t)!=="object")return!1;const e=ce(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(ve in t)&&!(W in t)},lt=t=>{if(!J(t)||z(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},ut=C("Date"),dt=C("File"),ft=C("Blob"),ht=C("FileList"),pt=t=>J(t)&&O(t.pipe),mt=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||O(t.append)&&((e=Z(t))==="formdata"||e==="object"&&O(t.toString)&&t.toString()==="[object FormData]"))},wt=C("URLSearchParams"),[yt,bt,gt,Et]=["ReadableStream","Request","Response","Headers"].map(C),vt=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function V(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let r,o;if(typeof t!="object"&&(t=[t]),q(t))for(r=0,o=t.length;r0;)if(o=n[r],e===o.toLowerCase())return o;return null}const F=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,ke=t=>!$(t)&&t!==F;function le(){const{caseless:t}=ke(this)&&this||{},e={},n=(r,o)=>{const i=t&&Re(e,o)||o;Y(e[i])&&Y(r)?e[i]=le(e[i],r):Y(r)?e[i]=le({},r):q(r)?e[i]=r.slice():e[i]=r};for(let r=0,o=arguments.length;r(V(e,(o,i)=>{n&&O(o)?t[i]=Ee(o,n):t[i]=o},{allOwnKeys:r}),t),Tt=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Rt=(t,e,n,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},kt=(t,e,n,r)=>{let o,i,s;const c={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),i=o.length;i-- >0;)s=o[i],(!r||r(s,t,e))&&!c[s]&&(e[s]=t[s],c[s]=!0);t=n!==!1&&ce(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Ot=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const r=t.indexOf(e,n);return r!==-1&&r===n},Pt=t=>{if(!t)return null;if(q(t))return t;let e=t.length;if(!Te(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},At=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&ce(Uint8Array)),_t=(t,e)=>{const r=(t&&t[W]).call(t);let o;for(;(o=r.next())&&!o.done;){const i=o.value;e.call(t,i[0],i[1])}},xt=(t,e)=>{let n;const r=[];for(;(n=t.exec(e))!==null;)r.push(n);return r},Ct=C("HTMLFormElement"),Nt=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),Oe=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),It=C("RegExp"),Pe=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),r={};V(n,(o,i)=>{let s;(s=e(o,i,t))!==!1&&(r[i]=s||o)}),Object.defineProperties(t,r)},Bt=t=>{Pe(t,(e,n)=>{if(O(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=t[n];if(O(r)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Lt=(t,e)=>{const n={},r=o=>{o.forEach(i=>{n[i]=!0})};return q(t)?r(t):r(String(t).split(e)),n},Ft=()=>{},Ut=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function Dt(t){return!!(t&&O(t.append)&&t[ve]==="FormData"&&t[W])}const Mt=t=>{const e=new Array(10),n=(r,o)=>{if(J(r)){if(e.indexOf(r)>=0)return;if(z(r))return r;if(!("toJSON"in r)){e[o]=r;const i=q(r)?[]:{};return V(r,(s,c)=>{const d=n(s,o+1);!$(d)&&(i[c]=d)}),e[o]=void 0,i}}return r};return n(t,0)},qt=C("AsyncFunction"),jt=t=>t&&(J(t)||O(t))&&O(t.then)&&O(t.catch),Ae=((t,e)=>t?setImmediate:e?((n,r)=>(F.addEventListener("message",({source:o,data:i})=>{o===F&&i===n&&r.length&&r.shift()()},!1),o=>{r.push(o),F.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",O(F.postMessage)),Ht=typeof queueMicrotask<"u"?queueMicrotask.bind(F):typeof process<"u"&&process.nextTick||Ae,a={isArray:q,isArrayBuffer:Se,isBuffer:z,isFormData:mt,isArrayBufferView:st,isString:at,isNumber:Te,isBoolean:ct,isObject:J,isPlainObject:Y,isEmptyObject:lt,isReadableStream:yt,isRequest:bt,isResponse:gt,isHeaders:Et,isUndefined:$,isDate:ut,isFile:dt,isBlob:ft,isRegExp:It,isFunction:O,isStream:pt,isURLSearchParams:wt,isTypedArray:At,isFileList:ht,forEach:V,merge:le,extend:St,trim:vt,stripBOM:Tt,inherits:Rt,toFlatObject:kt,kindOf:Z,kindOfTest:C,endsWith:Ot,toArray:Pt,forEachEntry:_t,matchAll:xt,isHTMLForm:Ct,hasOwnProperty:Oe,hasOwnProp:Oe,reduceDescriptors:Pe,freezeMethods:Bt,toObjectSet:Lt,toCamelCase:Nt,noop:Ft,toFiniteNumber:Ut,findKey:Re,global:F,isContextDefined:ke,isSpecCompliantForm:Dt,toJSONObject:Mt,isAsyncFn:qt,isThenable:jt,setImmediate:Ae,asap:Ht,isIterable:t=>t!=null&&O(t[W])};function m(t,e,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}a.inherits(m,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:a.toJSONObject(this.config),code:this.code,status:this.status}}});const _e=m.prototype,xe={};["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(t=>{xe[t]={value:t}}),Object.defineProperties(m,xe),Object.defineProperty(_e,"isAxiosError",{value:!0}),m.from=(t,e,n,r,o,i)=>{const s=Object.create(_e);return a.toFlatObject(t,s,function(d){return d!==Error.prototype},c=>c!=="isAxiosError"),m.call(s,t.message,e,n,r,o),s.cause=t,s.name=t.name,i&&Object.assign(s,i),s};const $t=null;function ue(t){return a.isPlainObject(t)||a.isArray(t)}function Ce(t){return a.endsWith(t,"[]")?t.slice(0,-2):t}function Ne(t,e,n){return t?t.concat(e).map(function(o,i){return o=Ce(o),!n&&i?"["+o+"]":o}).join(n?".":""):e}function zt(t){return a.isArray(t)&&!t.some(ue)}const Jt=a.toFlatObject(a,{},null,function(e){return/^is[A-Z]/.test(e)});function Q(t,e,n){if(!a.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=a.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(y,p){return!a.isUndefined(p[y])});const r=n.metaTokens,o=n.visitor||u,i=n.dots,s=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&a.isSpecCompliantForm(e);if(!a.isFunction(o))throw new TypeError("visitor must be a function");function l(h){if(h===null)return"";if(a.isDate(h))return h.toISOString();if(a.isBoolean(h))return h.toString();if(!d&&a.isBlob(h))throw new m("Blob is not supported. Use a Buffer instead.");return a.isArrayBuffer(h)||a.isTypedArray(h)?d&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,y,p){let v=h;if(h&&!p&&typeof h=="object"){if(a.endsWith(y,"{}"))y=r?y:y.slice(0,-2),h=JSON.stringify(h);else if(a.isArray(h)&&zt(h)||(a.isFileList(h)||a.endsWith(y,"[]"))&&(v=a.toArray(h)))return y=Ce(y),v.forEach(function(R,I){!(a.isUndefined(R)||R===null)&&e.append(s===!0?Ne([y],I,i):s===null?y:y+"[]",l(R))}),!1}return ue(h)?!0:(e.append(Ne(p,y,i),l(h)),!1)}const f=[],g=Object.assign(Jt,{defaultVisitor:u,convertValue:l,isVisitable:ue});function S(h,y){if(!a.isUndefined(h)){if(f.indexOf(h)!==-1)throw Error("Circular reference detected in "+y.join("."));f.push(h),a.forEach(h,function(v,T){(!(a.isUndefined(v)||v===null)&&o.call(e,v,a.isString(T)?T.trim():T,y,g))===!0&&S(v,y?y.concat(T):[T])}),f.pop()}}if(!a.isObject(t))throw new TypeError("data must be an object");return S(t),e}function Ie(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(r){return e[r]})}function de(t,e){this._pairs=[],t&&Q(t,this,e)}const Be=de.prototype;Be.append=function(e,n){this._pairs.push([e,n])},Be.toString=function(e){const n=e?function(r){return e.call(this,r,Ie)}:Ie;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function Vt(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Le(t,e,n){if(!e)return t;const r=n&&n.encode||Vt;a.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let i;if(o?i=o(e,n):i=a.isURLSearchParams(e)?e.toString():new de(e,n).toString(r),i){const s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+i}return t}class Fe{constructor(){this.handlers=[]}use(e,n,r){return this.handlers.push({fulfilled:e,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){a.forEach(this.handlers,function(r){r!==null&&e(r)})}}const Ue={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Xt={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:de,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},fe=typeof window<"u"&&typeof document<"u",he=typeof navigator=="object"&&navigator||void 0,Kt=fe&&(!he||["ReactNative","NativeScript","NS"].indexOf(he.product)<0),Wt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Zt=fe&&window.location.href||"http://localhost",k={...Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:fe,hasStandardBrowserEnv:Kt,hasStandardBrowserWebWorkerEnv:Wt,navigator:he,origin:Zt},Symbol.toStringTag,{value:"Module"})),...Xt};function Gt(t,e){return Q(t,new k.classes.URLSearchParams,{visitor:function(n,r,o,i){return k.isNode&&a.isBuffer(n)?(this.append(r,n.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...e})}function Yt(t){return a.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function Qt(t){const e={},n=Object.keys(t);let r;const o=n.length;let i;for(r=0;r=n.length;return s=!s&&a.isArray(o)?o.length:s,d?(a.hasOwnProp(o,s)?o[s]=[o[s],r]:o[s]=r,!c):((!o[s]||!a.isObject(o[s]))&&(o[s]=[]),e(n,r,o[s],i)&&a.isArray(o[s])&&(o[s]=Qt(o[s])),!c)}if(a.isFormData(t)&&a.isFunction(t.entries)){const n={};return a.forEachEntry(t,(r,o)=>{e(Yt(r),o,n,0)}),n}return null}function en(t,e,n){if(a.isString(t))try{return(e||JSON.parse)(t),a.trim(t)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(t)}const X={transitional:Ue,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,i=a.isObject(e);if(i&&a.isHTMLForm(e)&&(e=new FormData(e)),a.isFormData(e))return o?JSON.stringify(De(e)):e;if(a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)||a.isReadableStream(e))return e;if(a.isArrayBufferView(e))return e.buffer;if(a.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let c;if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Gt(e,this.formSerializer).toString();if((c=a.isFileList(e))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Q(c?{"files[]":e}:e,d&&new d,this.formSerializer)}}return i||o?(n.setContentType("application/json",!1),en(e)):e}],transformResponse:[function(e){const n=this.transitional||X.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(a.isResponse(e)||a.isReadableStream(e))return e;if(e&&a.isString(e)&&(r&&!this.responseType||o)){const s=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(e)}catch(c){if(s)throw c.name==="SyntaxError"?m.from(c,m.ERR_BAD_RESPONSE,this,null,this.response):c}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:k.classes.FormData,Blob:k.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};a.forEach(["delete","get","head","post","put","patch"],t=>{X.headers[t]={}});const tn=a.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"]),nn=t=>{const e={};let n,r,o;return t&&t.split(` +`).forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),r=s.substring(o+1).trim(),!(!n||e[n]&&tn[n])&&(n==="set-cookie"?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)}),e},Me=Symbol("internals");function K(t){return t&&String(t).trim().toLowerCase()}function ee(t){return t===!1||t==null?t:a.isArray(t)?t.map(ee):String(t)}function rn(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(t);)e[r[1]]=r[2];return e}const on=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function pe(t,e,n,r,o){if(a.isFunction(r))return r.call(this,e,n);if(o&&(e=n),!!a.isString(e)){if(a.isString(r))return e.indexOf(r)!==-1;if(a.isRegExp(r))return r.test(e)}}function sn(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,r)=>n.toUpperCase()+r)}function an(t,e){const n=a.toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(t,r+n,{value:function(o,i,s){return this[r].call(this,e,o,i,s)},configurable:!0})})}let P=class{constructor(e){e&&this.set(e)}set(e,n,r){const o=this;function i(c,d,l){const u=K(d);if(!u)throw new Error("header name must be a non-empty string");const f=a.findKey(o,u);(!f||o[f]===void 0||l===!0||l===void 0&&o[f]!==!1)&&(o[f||d]=ee(c))}const s=(c,d)=>a.forEach(c,(l,u)=>i(l,u,d));if(a.isPlainObject(e)||e instanceof this.constructor)s(e,n);else if(a.isString(e)&&(e=e.trim())&&!on(e))s(nn(e),n);else if(a.isObject(e)&&a.isIterable(e)){let c={},d,l;for(const u of e){if(!a.isArray(u))throw TypeError("Object iterator must return a key-value pair");c[l=u[0]]=(d=c[l])?a.isArray(d)?[...d,u[1]]:[d,u[1]]:u[1]}s(c,n)}else e!=null&&i(n,e,r);return this}get(e,n){if(e=K(e),e){const r=a.findKey(this,e);if(r){const o=this[r];if(!n)return o;if(n===!0)return rn(o);if(a.isFunction(n))return n.call(this,o,r);if(a.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=K(e),e){const r=a.findKey(this,e);return!!(r&&this[r]!==void 0&&(!n||pe(this,this[r],r,n)))}return!1}delete(e,n){const r=this;let o=!1;function i(s){if(s=K(s),s){const c=a.findKey(r,s);c&&(!n||pe(r,r[c],c,n))&&(delete r[c],o=!0)}}return a.isArray(e)?e.forEach(i):i(e),o}clear(e){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const i=n[r];(!e||pe(this,this[i],i,e,!0))&&(delete this[i],o=!0)}return o}normalize(e){const n=this,r={};return a.forEach(this,(o,i)=>{const s=a.findKey(r,i);if(s){n[s]=ee(o),delete n[i];return}const c=e?sn(i):String(i).trim();c!==i&&delete n[i],n[c]=ee(o),r[c]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return a.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=e&&a.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(` +`)}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,...n){const r=new this(e);return n.forEach(o=>r.set(o)),r}static accessor(e){const r=(this[Me]=this[Me]={accessors:{}}).accessors,o=this.prototype;function i(s){const c=K(s);r[c]||(an(o,s),r[c]=!0)}return a.isArray(e)?e.forEach(i):i(e),this}};P.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),a.reduceDescriptors(P.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(r){this[n]=r}}}),a.freezeMethods(P);function me(t,e){const n=this||X,r=e||n,o=P.from(r.headers);let i=r.data;return a.forEach(t,function(c){i=c.call(n,i,o.normalize(),e?e.status:void 0)}),o.normalize(),i}function qe(t){return!!(t&&t.__CANCEL__)}function j(t,e,n){m.call(this,t??"canceled",m.ERR_CANCELED,e,n),this.name="CanceledError"}a.inherits(j,m,{__CANCEL__:!0});function je(t,e,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?t(n):e(new m("Request failed with status code "+n.status,[m.ERR_BAD_REQUEST,m.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function cn(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ln(t,e){t=t||10;const n=new Array(t),r=new Array(t);let o=0,i=0,s;return e=e!==void 0?e:1e3,function(d){const l=Date.now(),u=r[i];s||(s=l),n[o]=d,r[o]=l;let f=i,g=0;for(;f!==o;)g+=n[f++],f=f%t;if(o=(o+1)%t,o===i&&(i=(i+1)%t),l-s{n=u,o=null,i&&(clearTimeout(i),i=null),t(...l)};return[(...l)=>{const u=Date.now(),f=u-n;f>=r?s(l,u):(o=l,i||(i=setTimeout(()=>{i=null,s(o)},r-f)))},()=>o&&s(o)]}const te=(t,e,n=3)=>{let r=0;const o=ln(50,250);return un(i=>{const s=i.loaded,c=i.lengthComputable?i.total:void 0,d=s-r,l=o(d),u=s<=c;r=s;const f={loaded:s,total:c,progress:c?s/c:void 0,bytes:d,rate:l||void 0,estimated:l&&c&&u?(c-s)/l:void 0,event:i,lengthComputable:c!=null,[e?"download":"upload"]:!0};t(f)},n)},He=(t,e)=>{const n=t!=null;return[r=>e[0]({lengthComputable:n,total:t,loaded:r}),e[1]]},$e=t=>(...e)=>a.asap(()=>t(...e)),dn=k.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,k.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(k.origin),k.navigator&&/(msie|trident)/i.test(k.navigator.userAgent)):()=>!0,fn=k.hasStandardBrowserEnv?{write(t,e,n,r,o,i){const s=[t+"="+encodeURIComponent(e)];a.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),a.isString(r)&&s.push("path="+r),a.isString(o)&&s.push("domain="+o),i===!0&&s.push("secure"),document.cookie=s.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function hn(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function pn(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function ze(t,e,n){let r=!hn(e);return t&&(r||n==!1)?pn(t,e):e}const Je=t=>t instanceof P?{...t}:t;function U(t,e){e=e||{};const n={};function r(l,u,f,g){return a.isPlainObject(l)&&a.isPlainObject(u)?a.merge.call({caseless:g},l,u):a.isPlainObject(u)?a.merge({},u):a.isArray(u)?u.slice():u}function o(l,u,f,g){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l,f,g)}else return r(l,u,f,g)}function i(l,u){if(!a.isUndefined(u))return r(void 0,u)}function s(l,u){if(a.isUndefined(u)){if(!a.isUndefined(l))return r(void 0,l)}else return r(void 0,u)}function c(l,u,f){if(f in e)return r(l,u);if(f in t)return r(void 0,l)}const d={url:i,method:i,data:i,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:c,headers:(l,u,f)=>o(Je(l),Je(u),f,!0)};return a.forEach(Object.keys({...t,...e}),function(u){const f=d[u]||o,g=f(t[u],e[u],u);a.isUndefined(g)&&f!==c||(n[u]=g)}),n}const Ve=t=>{const e=U({},t);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:i,headers:s,auth:c}=e;e.headers=s=P.from(s),e.url=Le(ze(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),c&&s.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):"")));let d;if(a.isFormData(n)){if(k.hasStandardBrowserEnv||k.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if((d=s.getContentType())!==!1){const[l,...u]=d?d.split(";").map(f=>f.trim()).filter(Boolean):[];s.setContentType([l||"multipart/form-data",...u].join("; "))}}if(k.hasStandardBrowserEnv&&(r&&a.isFunction(r)&&(r=r(e)),r||r!==!1&&dn(e.url))){const l=o&&i&&fn.read(i);l&&s.set(o,l)}return e},mn=typeof XMLHttpRequest<"u"&&function(t){return new Promise(function(n,r){const o=Ve(t);let i=o.data;const s=P.from(o.headers).normalize();let{responseType:c,onUploadProgress:d,onDownloadProgress:l}=o,u,f,g,S,h;function y(){S&&S(),h&&h(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let p=new XMLHttpRequest;p.open(o.method.toUpperCase(),o.url,!0),p.timeout=o.timeout;function v(){if(!p)return;const R=P.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),_={data:!c||c==="text"||c==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:R,config:t,request:p};je(function(M){n(M),y()},function(M){r(M),y()},_),p=null}"onloadend"in p?p.onloadend=v:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf("file:")===0)||setTimeout(v)},p.onabort=function(){p&&(r(new m("Request aborted",m.ECONNABORTED,t,p)),p=null)},p.onerror=function(){r(new m("Network Error",m.ERR_NETWORK,t,p)),p=null},p.ontimeout=function(){let I=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const _=o.transitional||Ue;o.timeoutErrorMessage&&(I=o.timeoutErrorMessage),r(new m(I,_.clarifyTimeoutError?m.ETIMEDOUT:m.ECONNABORTED,t,p)),p=null},i===void 0&&s.setContentType(null),"setRequestHeader"in p&&a.forEach(s.toJSON(),function(I,_){p.setRequestHeader(_,I)}),a.isUndefined(o.withCredentials)||(p.withCredentials=!!o.withCredentials),c&&c!=="json"&&(p.responseType=o.responseType),l&&([g,h]=te(l,!0),p.addEventListener("progress",g)),d&&p.upload&&([f,S]=te(d),p.upload.addEventListener("progress",f),p.upload.addEventListener("loadend",S)),(o.cancelToken||o.signal)&&(u=R=>{p&&(r(!R||R.type?new j(null,t,p):R),p.abort(),p=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const T=cn(o.url);if(T&&k.protocols.indexOf(T)===-1){r(new m("Unsupported protocol "+T+":",m.ERR_BAD_REQUEST,t));return}p.send(i||null)})},wn=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let r=new AbortController,o;const i=function(l){if(!o){o=!0,c();const u=l instanceof Error?l:this.reason;r.abort(u instanceof m?u:new j(u instanceof Error?u.message:u))}};let s=e&&setTimeout(()=>{s=null,i(new m(`timeout ${e} of ms exceeded`,m.ETIMEDOUT))},e);const c=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(i):l.removeEventListener("abort",i)}),t=null)};t.forEach(l=>l.addEventListener("abort",i));const{signal:d}=r;return d.unsubscribe=()=>a.asap(c),d}},yn=function*(t,e){let n=t.byteLength;if(n{const o=bn(t,e);let i=0,s,c=d=>{s||(s=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:l,value:u}=await o.next();if(l){c(),d.close();return}let f=u.byteLength;if(n){let g=i+=f;n(g)}d.enqueue(new Uint8Array(u))}catch(l){throw c(l),l}},cancel(d){return c(d),o.return()}},{highWaterMark:2})},ne=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Ke=ne&&typeof ReadableStream=="function",En=ne&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),We=(t,...e)=>{try{return!!t(...e)}catch{return!1}},vn=Ke&&We(()=>{let t=!1;const e=new Request(k.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),Ze=64*1024,we=Ke&&We(()=>a.isReadableStream(new Response("").body)),re={stream:we&&(t=>t.body)};ne&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!re[e]&&(re[e]=a.isFunction(t[e])?n=>n[e]():(n,r)=>{throw new m(`Response type '${e}' is not supported`,m.ERR_NOT_SUPPORT,r)})})})(new Response);const Sn=async t=>{if(t==null)return 0;if(a.isBlob(t))return t.size;if(a.isSpecCompliantForm(t))return(await new Request(k.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(a.isArrayBufferView(t)||a.isArrayBuffer(t))return t.byteLength;if(a.isURLSearchParams(t)&&(t=t+""),a.isString(t))return(await En(t)).byteLength},Tn=async(t,e)=>{const n=a.toFiniteNumber(t.getContentLength());return n??Sn(e)},ye={http:$t,xhr:mn,fetch:ne&&(async t=>{let{url:e,method:n,data:r,signal:o,cancelToken:i,timeout:s,onDownloadProgress:c,onUploadProgress:d,responseType:l,headers:u,withCredentials:f="same-origin",fetchOptions:g}=Ve(t);l=l?(l+"").toLowerCase():"text";let S=wn([o,i&&i.toAbortSignal()],s),h;const y=S&&S.unsubscribe&&(()=>{S.unsubscribe()});let p;try{if(d&&vn&&n!=="get"&&n!=="head"&&(p=await Tn(u,r))!==0){let _=new Request(e,{method:"POST",body:r,duplex:"half"}),L;if(a.isFormData(r)&&(L=_.headers.get("content-type"))&&u.setContentType(L),_.body){const[M,ae]=He(p,te($e(d)));r=Xe(_.body,Ze,M,ae)}}a.isString(f)||(f=f?"include":"omit");const v="credentials"in Request.prototype;h=new Request(e,{...g,signal:S,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:v?f:void 0});let T=await fetch(h,g);const R=we&&(l==="stream"||l==="response");if(we&&(c||R&&y)){const _={};["status","statusText","headers"].forEach(rt=>{_[rt]=T[rt]});const L=a.toFiniteNumber(T.headers.get("content-length")),[M,ae]=c&&He(L,te($e(c),!0))||[];T=new Response(Xe(T.body,Ze,M,()=>{ae&&ae(),y&&y()}),_)}l=l||"text";let I=await re[a.findKey(re,l)||"text"](T,t);return!R&&y&&y(),await new Promise((_,L)=>{je(_,L,{data:I,headers:P.from(T.headers),status:T.status,statusText:T.statusText,config:t,request:h})})}catch(v){throw y&&y(),v&&v.name==="TypeError"&&/Load failed|fetch/i.test(v.message)?Object.assign(new m("Network Error",m.ERR_NETWORK,t,h),{cause:v.cause||v}):m.from(v,v&&v.code,t,h)}})};a.forEach(ye,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const Ge=t=>`- ${t}`,Rn=t=>a.isFunction(t)||t===null||t===!1,Ye={getAdapter:t=>{t=a.isArray(t)?t:[t];const{length:e}=t;let n,r;const o={};for(let i=0;i`adapter ${c} `+(d===!1?"is not supported by the environment":"is not available in the build"));let s=e?i.length>1?`since : +`+i.map(Ge).join(` +`):" "+Ge(i[0]):"as no adapter specified";throw new m("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return r},adapters:ye};function be(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new j(null,t)}function Qe(t){return be(t),t.headers=P.from(t.headers),t.data=me.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Ye.getAdapter(t.adapter||X.adapter)(t).then(function(r){return be(t),r.data=me.call(t,t.transformResponse,r),r.headers=P.from(r.headers),r},function(r){return qe(r)||(be(t),r&&r.response&&(r.response.data=me.call(t,t.transformResponse,r.response),r.response.headers=P.from(r.response.headers))),Promise.reject(r)})}const et="1.11.0",oe={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{oe[t]=function(r){return typeof r===t||"a"+(e<1?"n ":" ")+t}});const tt={};oe.transitional=function(e,n,r){function o(i,s){return"[Axios v"+et+"] Transitional option '"+i+"'"+s+(r?". "+r:"")}return(i,s,c)=>{if(e===!1)throw new m(o(s," has been removed"+(n?" in "+n:"")),m.ERR_DEPRECATED);return n&&!tt[s]&&(tt[s]=!0,console.warn(o(s," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(i,s,c):!0}},oe.spelling=function(e){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};function kn(t,e,n){if(typeof t!="object")throw new m("options must be an object",m.ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let o=r.length;for(;o-- >0;){const i=r[o],s=e[i];if(s){const c=t[i],d=c===void 0||s(c,i,t);if(d!==!0)throw new m("option "+i+" must be "+d,m.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new m("Unknown option "+i,m.ERR_BAD_OPTION)}}const ie={assertOptions:kn,validators:oe},N=ie.validators;let D=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Fe,response:new Fe}}async request(e,n){try{return await this._request(e,n)}catch(r){if(r instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const i=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?i&&!String(r.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+i):r.stack=i}catch{}}throw r}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=U(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:i}=n;r!==void 0&&ie.assertOptions(r,{silentJSONParsing:N.transitional(N.boolean),forcedJSONParsing:N.transitional(N.boolean),clarifyTimeoutError:N.transitional(N.boolean)},!1),o!=null&&(a.isFunction(o)?n.paramsSerializer={serialize:o}:ie.assertOptions(o,{encode:N.function,serialize:N.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ie.assertOptions(n,{baseUrl:N.spelling("baseURL"),withXsrfToken:N.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=i&&a.merge(i.common,i[n.method]);i&&a.forEach(["delete","get","head","post","put","patch","common"],h=>{delete i[h]}),n.headers=P.concat(s,i);const c=[];let d=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(d=d&&y.synchronous,c.unshift(y.fulfilled,y.rejected))});const l=[];this.interceptors.response.forEach(function(y){l.push(y.fulfilled,y.rejected)});let u,f=0,g;if(!d){const h=[Qe.bind(this),void 0];for(h.unshift(...c),h.push(...l),g=h.length,u=Promise.resolve(n);f{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](o);r._listeners=null}),this.promise.then=o=>{let i;const s=new Promise(c=>{r.subscribe(c),i=c}).then(o);return s.cancel=function(){r.unsubscribe(i)},s},e(function(i,s,c){r.reason||(r.reason=new j(i,s,c),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=r=>{e.abort(r)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new ot(function(o){e=o}),cancel:e}}};function Pn(t){return function(n){return t.apply(null,n)}}function An(t){return a.isObject(t)&&t.isAxiosError===!0}const ge={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(ge).forEach(([t,e])=>{ge[e]=t});function nt(t){const e=new D(t),n=Ee(D.prototype.request,e);return a.extend(n,D.prototype,e,{allOwnKeys:!0}),a.extend(n,e,null,{allOwnKeys:!0}),n.create=function(o){return nt(U(t,o))},n}const E=nt(X);E.Axios=D,E.CanceledError=j,E.CancelToken=On,E.isCancel=qe,E.VERSION=et,E.toFormData=Q,E.AxiosError=m,E.Cancel=E.CanceledError,E.all=function(e){return Promise.all(e)},E.spread=Pn,E.isAxiosError=An,E.mergeConfig=U,E.AxiosHeaders=P,E.formToJSON=t=>De(a.isHTMLForm(t)?new FormData(t):t),E.getAdapter=Ye.getAdapter,E.HttpStatusCode=ge,E.default=E;const{Axios:Hn,AxiosError:$n,CanceledError:zn,isCancel:Jn,CancelToken:Vn,VERSION:Xn,all:Kn,Cancel:Wn,isAxiosError:Zn,spread:Gn,toFormData:Yn,AxiosHeaders:Qn,HttpStatusCode:er,formToJSON:tr,getAdapter:nr,mergeConfig:rr}=E,se=E.create({baseURL:"http://localhost:3000/",headers:{"Content-Type":"application/json",Authorization:"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2ludC5pcHN1cHBseS5jb20uYXUvYXBpL2xvZ2luIiwiaWF0IjoxNzIxNjA5MTEzLCJleHAiOjMyMzUzMzcxMTMsIm5iZiI6MTcyMTYwOTExMywianRpIjoiWHpCZkZPc0ZJUlFxaEZvaiIsInN1YiI6MSwicHJ2IjoiYzhlZTFmYzg5ZTc3NWVjNGM3Mzg2NjdlNWJlMTdhNTkwYjZkNDBmYyJ9.kFFEPpdmNUp-kn_G3cIIc26bivO6tbfcvkpG9I8Im7M"}});class _n{item_per_page=10;async index(e){const n={skip:0,limit:10,order:"updatedAt desc",where:{account:"prology_net",status:"Updated"}};return se({method:"POST",data:{urlAPI:"/api/ebay-listing/listing-get-list",filter:{...n,...e,where:{...n.where,...e?.where}}}})}async get(e){return se({method:"POST",data:{filter:{where:{account:"prology_net",condition:e.raw_condition,productModelCode:e.sku}},pageCurrent:"/ebaytools/listing-ebay",urlAPI:"/api/ebay-listing/get-image-listing"}})}async sync(e){return se({url:"sync",method:"POST",data:e})}async getPublistedProducts(){return se({url:"data"})}async apiRequest(e,n){return new Promise((r,o)=>{const i="req_"+Date.now()+"_"+Math.random();function s(c){c.data.type==="API_RESPONSE"&&c.data.requestId===i&&(window.removeEventListener("message",s),c.data.error?o(c.data.error):r(c.data.payload))}window.addEventListener("message",s),window.postMessage({type:"API_REQUEST",requestId:i,payload:n,fn:e},"*")})}}const H=new _n;function B(t){return new Promise(e=>setTimeout(e,t))}function b(t,e){const n=Math.floor(Math.random()*(e-t+1))+t;return B(n)}class xn{static ID_EXTENSION="ex-root"}class Cn{base64ToFile(e,n,r){const o=e.includes(",")?e.split(",")[1]:e,i=atob(o),s=new ArrayBuffer(i.length),c=new Uint8Array(s);for(let l=0;l{let s=0,c=!1;const d=()=>{const l=document.evaluate(c&&o?o:e,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;if(l instanceof HTMLElement){i(l);return}s++,s{const s=new FileReader;s.onloadend=()=>{typeof s.result=="string"?o(s.result.split(",")[1]):i("Không thể đọc dữ liệu ảnh")},s.onerror=i,s.readAsDataURL(r)})}getImageExtension(e){try{const r=new URL(e).pathname.match(/\.([a-zA-Z0-9]+)$/);return r?r[1].toLowerCase():null}catch{const o=e.split("?")[0].match(/\.([a-zA-Z0-9]+)$/);return o?o[1].toLowerCase():null}}imageLocalToBase64(e){return new Promise((n,r)=>{try{const o=chrome.runtime.getURL(`${e}`);fetch(o).then(i=>i.blob()).then(i=>{const s=new FileReader;s.onloadend=()=>n(s.result),s.onerror=r,s.readAsDataURL(i)}).catch(r)}catch(o){r(o)}})}scrollToElement(e,n="smooth"){e&&e.scrollIntoView({behavior:n,block:"center",inline:"nearest"})}getElementPointCoores(e){if(!e)return null;const n=e.getBoundingClientRect(),r=n.left+n.width/2,o=n.top+n.height/2;return{x:r,y:o}}setInputValue(e,n){e&&(e.value=n,e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})))}writeToInput=async(e,n)=>{let r;if(typeof n=="string"?r=await this.getElementByXPath(n):r=n,!r)throw new Error("Xpath is not found with value: "+e);this.scrollToElement(r),this.clickByPoint(r),this.setInputValue(r,e)};pressEnter(e){if(!e)throw new Error("Textarea not found:",e);e.focus(),["keydown","keypress","keyup"].forEach(n=>{e.dispatchEvent(new KeyboardEvent(n,{key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0}))})}findNestedElement(e,n,r){const o=document.querySelector(e);if(!o)return null;const i=o.querySelectorAll(n);for(const s of i)if(s.innerText.trim().toLowerCase()===r.toLowerCase())return s;return null}findNestedIcElement(e,n,r){let o=null;if(typeof e=="string"){if(document.querySelector(e),!o)return null}else o=e;const i=o.querySelectorAll(n);for(const s of i)if(s.innerText.trim().toLowerCase().includes(r.toLowerCase()))return s;return null}findElInParent(e,n){return e&&e.parentElement?.querySelector(n)||null}waitForElement(e,n=100){return new Promise(r=>{const o=d=>d.offsetParent!==null&&(d.childElementCount>0||d.innerText.trim().length>0),i=()=>{const d=document.querySelector(e);d&&o(d)&&(s.disconnect(),clearInterval(c),r(d))},s=new MutationObserver(i);s.observe(document.body,{childList:!0,subtree:!0});const c=setInterval(i,n);i()})}}const w=new Cn;class Nn{sellingPath="https://www.facebook.com/marketplace/you/selling";marketPath="https://www.facebook.com/marketplace";createItem="https://www.facebook.com/marketplace/create/item";editItem="https://www.facebook.com/marketplace/edit";selectors={file__image_input:'input[type="file"]',next_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[5]/div/div/div",update_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[4]/div/div/div",publish_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[4]/div[2]/div/div",products:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[2]/div/div/div[2]/div[1]/div/div[2]/div[2]/div",products_fallback:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[2]/div/div/div[2]/div[1]/div/div[3]/div/div/span/div[2]/div",option_btn:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div/div/div/div[3]/div/div/div/div/div[1]/div",option_btn_fallback:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div[3]/div[2]/div/div[2]/div[1]",close_btn_modal_feedback:"/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div[2]/div",images_container:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[2]/div[1]/div[2]/div/div/div[3]/div[2]/div",description_edit_input:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[9]/div/div/div[2]/div/div/div/label/div/div/textarea",sku_edit_input:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[9]/div/div/div[5]/div/div/div[1]/label/div/input",new_item_btn:"/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[1]/div/div[3]/div[1]/div[2]/div/div/div[7]/a/div",item_for_sell:"/html/body/div[1]/div/div[1]/div/div[5]/div/div/div[3]/div[2]/div[2]/div/div/div[2]/div[1]/div/span/div/div/div[1]/div/div",market_container:'[aria-label="Marketplace"]'};findInputByTitle(e,n="input"){const r=w.findNestedElement(this.selectors.market_container,"span",e);if(!r)throw new Error("Not found input by title: "+e);return w.findElInParent(r,n)}clearImages=async()=>{document.querySelectorAll('[aria-label="Remove"]').forEach(e=>e?.click())};uploadImages=async e=>{const n=new DataTransfer;for(const o of e.images){const i=await w.imageUrlToBase64(o);console.log("Base64:",o.slice(0,50)+"...");const s=w.base64ToFile(i,e.sku,w.getImageExtension(o)||"jpg");n.items.add(s)}const r=document.querySelector(this.selectors.file__image_input);r?(r.files=n.files,r.dispatchEvent(new Event("change",{bubbles:!0}))):console.error("Không tìm thấy input[type='file']")};chooseSelect=async(e,n,r='[aria-label="Dropdown menu"]')=>{const o=w.findNestedElement(this.selectors.market_container,"span",n);w.scrollToElement(o),await b(500,600),o?.click(),await b(500,600);const i=w.findNestedElement(r,"span",e);if(await b(500,600),!i)throw new Error(`No child found with text "${e}"`);w.scrollToElement(i),await b(500,600),i.click(),await b(500,600)};chooseLocation=async e=>{const n=this.findInputByTitle("location");await w.writeToInput(e,n),await B(600);const r=document.querySelector('[role="listbox"]')?.querySelectorAll("li")||[],o=Array.from(r).find(i=>i.innerHTML.trim().toLowerCase().includes(e.toLowerCase()));if(console.log(o),!o)throw new Error(`No child found with text "${e}"`);w.scrollToElement(o),await B(400),w.clickByPoint(o)};writeTags=async e=>{const n=this.findInputByTitle("product tags","textarea");if(!n)throw new Error("Input is not found");w.scrollToElement(n),await B(500);for(const r of e)await w.writeToInput(r,n),await B(300),w.pressEnter(n)};clickNext=async()=>{const e=await w.getElementByXPath(this.selectors.next_btn);if(!e)throw new Error("Next button is not found");w.clickByPoint(e)};clickUpdate=async()=>{const e=await w.getElementByXPath(this.selectors.update_btn);if(!e)throw new Error("Next button is not found");w.clickByPoint(e)};clickPublist=async()=>{const e=await w.getElementByXPath(this.selectors.publish_btn);if(!e)throw new Error("Publist button is not found");w.clickByPoint(e)};handlePublist=async e=>{console.log({item:e}),await b(600,1e3),await this.uploadImages(e),await b(600,1e3);const n=this.findInputByTitle("title");w.writeToInput(e.title,n),await b(600,1e3);const r=this.findInputByTitle("price");if(w.writeToInput(String(e.price),r),await b(600,1e3),await this.chooseSelect(e.category,"category"),await b(600,1e3),await this.chooseSelect(e.condition,"condition",'[aria-label="Select an option"]'),e.brand){await b(600,1e3);const s=this.findInputByTitle("brand");await w.writeToInput(e.brand,s)}await b(600,1e3);const o=this.findInputByTitle("description","textarea");await w.writeToInput(e.description,o),await b(600,1e3),await this.writeTags(e.tags),await b(600,1e3);const i=this.findInputByTitle("sku");return await w.writeToInput(e.sku,i),e?.location&&(await b(600,1e3),await this.chooseLocation(e.location)),await b(300,500),await this.clickNext(),!0};handleRePublist=async e=>{console.log({item:e}),await w.waitForElement('[aria-label="Collection of your Marketplace items"]');const n=await this.getOptionEls(e);console.log({items:n}),this.clickItemInList(n,"edit"),await B(1e3),await this.waitForPageReady(this.editItem,this.selectors.market_container),await b(1e3,2e3),await this.clearImages(),await b(600,1e3),await this.uploadImages(e),await b(600,1e3);const r=this.findInputByTitle("title");w.writeToInput(e.title,r),await b(600,1e3);const o=this.findInputByTitle("price");w.writeToInput(String(e.price),o),await b(600,1e3),await this.chooseSelect(e.category,"category"),await b(600,1e3),await this.chooseSelect(e.condition,"condition",'[aria-label="Select an option"]'),await b(600,1e3);const i=this.findInputByTitle("description","textarea");return await w.writeToInput(e.description,i),await b(600,1e3),await this.writeTags(e.tags),await b(600,1e3),e?.location&&(await b(600,1e3),await this.chooseLocation(e.location)),!0};getProducts=async()=>{const e=await w.getElementByXPath(this.selectors.products),n=await w.getElementByXPath(this.selectors.products_fallback);console.log({products1:e,products2:n});const r=[e,n].filter(Boolean);return r.length===0?[]:r.flatMap(o=>this.extractListings(o))};extractListings(e){return Array.from(e.children).map(r=>{const i=r.querySelector('span[dir="auto"], div[dir="auto"]')?.textContent?.trim()||"",s=document.querySelectorAll(`[aria-label="${i}"]`),c=Array.from(s).filter(f=>!f.querySelector("img"))[0],l=w.findNestedIcElement(c,"span","AU$")?.textContent?.match(/[\d,]+(?:\.\d+)?/),u=l?parseFloat(l[0].replace(/,/g,"")):0;return{title:i,price:u,el:e}})}closeTab=async e=>{chrome.runtime.sendMessage({type:"close-tab",payload:e})};clickOptionOfProduct(e){const n=document.querySelector(`[aria-label="More options for ${e.title}"]`);if(!n)throw new Error(`Not found option buttin in product ${`[aria-label="More options for ${e.title}"]`}, ID: ${e.id}`);w.scrollToElement(n),n.click?.()}async getOptionEls(e){return this.clickOptionOfProduct(e),await B(2e3),Array.from(document.querySelectorAll('[role="menuitem"]'))}clickItemInList(e,n){const r=e.find(o=>o.textContent.toLocaleLowerCase().includes(n));if(!r)throw new Error(`Not found item ${n} in options list`);r.click?.()}getItemInList(e,n){const r=e.find(o=>o.textContent.toLocaleLowerCase().includes(n));if(!r)throw new Error(`Not found item ${n} in options list`);return r}handleDelete=async e=>{const n=await this.getOptionEls(e);console.log({items:n}),this.clickItemInList(n,"delete"),await B(1e3);const r=await w.getElementByXPath(this.selectors.option_btn,{xpathFallback:this.selectors.option_btn_fallback});console.log({confirmBtn:r}),r?.click(),(await w.getElementByXPath(this.selectors.close_btn_modal_feedback))?.click(),chrome.runtime.sendMessage({type:"delete-done"})};waitForUrlContains(e,n=1e4){return new Promise((r,o)=>{const i=Date.now(),s=()=>{window.location.href.includes(e)?r():Date.now()-i>n?o(new Error("Timeout waiting for URL change")):setTimeout(s,500)};s()})}waitForPageReady(e,n,r=15e3){return new Promise((o,i)=>{const s=Date.now(),c=async()=>{window.location.href.includes(e)&&document.querySelector(n)?o():Date.now()-s>r?i(new Error("Timeout waiting for selling page ready")):setTimeout(c,500)};c()})}syncListing=async()=>{window.location.href.includes(this.sellingPath)||(document.querySelector('a[href="/marketplace/you/selling/"]')?.click?.(),await this.waitForPageReady(this.sellingPath,this.selectors.products)),await A.getProducts()};extractMarketplaceItemId(e){const n=e.match(/\/marketplace\/item\/(\d+)/);return n?n[1]:null}handleGetPublistID=async e=>{const n=await A.getProducts(),r=n.find(c=>c.title==e.title&&c.price==e.price);if(console.log({payload:e,product:r,products:n}),!r)return;r.el;const o=await this.getOptionEls(e),i=this.getItemInList(o,"view listing"),s=this.extractMarketplaceItemId(i.href);return this.clickOptionOfProduct(e),s};async gotoPublist(){(await w.getElementByXPath(this.selectors.new_item_btn))?.click(),await b(400,800),(await w.getElementByXPath(this.selectors.item_for_sell))?.click()}async gotoSell(){document.querySelector('[href="/marketplace/you/selling/"]')?.click()}}const A=new Nn;class In{role;listeners;constructor(e){this.role=e,this.listeners=new Map,chrome.runtime.onMessage.addListener((n,r,o)=>{if(n?.type&&this.listeners.has(n.type))return this.listeners.get(n.type)(n.payload,r,o),!0})}on(e,n){this.listeners.set(e,n)}send(e,n,r){const o={from:this.role,to:e,type:n,payload:r};(this.role==="popup"||this.role==="content")&&chrome.runtime.sendMessage(o),this.role==="background"&&(e==="content"?chrome.tabs.query({active:!0,currentWindow:!0},i=>{i[0]?.id&&chrome.tabs.sendMessage(i[0].id,o,()=>{chrome.runtime.lastError&&console.warn("Không gửi được tới content script:",chrome.runtime.lastError.message)})}):e==="popup"&&chrome.runtime.sendMessage(o,()=>{chrome.runtime.lastError&&console.warn("Không gửi được tới popup:",chrome.runtime.lastError.message)}))}sendToTab(e,n,r){if(this.role!=="background")throw new Error("sendToTab chỉ được gọi từ background");const o={from:this.role,to:"content",type:n,payload:r};chrome.tabs.sendMessage(e,o,()=>{chrome.runtime.lastError&&console.warn(`Không gửi được tới content script ở tab ${e}:`,chrome.runtime.lastError.message)})}waitForMessage(e,n=3e4){return new Promise((r,o)=>{let i;const s=c=>{clearTimeout(i),this.off(e,s),r(c)};i=setTimeout(()=>{this.off(e,s),o(new Error(`Timeout khi chờ message: ${e}`))},n),this.on(e,s)})}off(e,n){this.listeners.get(e)===n&&this.listeners.delete(e)}}const x=new In("content"),Bn=()=>{const t=xn.ID_EXTENSION;if(document.getElementById(t))return;const e=document.createElement("div");e.id=t,document.body.appendChild(e);const n=document.createElement("script");n.src=chrome.runtime.getURL("content/inject-ui.js"),n.type="module",document.body.appendChild(n);const r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.href=chrome.runtime.getURL("assets/style.css"),document.head.appendChild(r)};x.on("background-to-content-publish",async t=>{try{console.log("[publish] Content nhận:",t),await b(800,1e3),await A.handlePublist(t.data)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-publish",{msg:t})}}),x.on("background-to-content-unlist",async t=>{try{console.log("[unlist] Content nhận:",t),await b(800,1e3),await A.gotoSell(),await b(800,1e3),await A.handleDelete(t.data),await b(800,1e3);const e=await A.getProducts();await b(800,1e3),H.sync(e)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-unlist",{msg:t})}}),x.on("background-to-content-re-publist",async t=>{try{console.log("[re-publist] Content nhận:",t),await b(800,1e3),await A.gotoSell(),await b(800,1e3),await A.handleRePublist(t.data)}catch(e){console.log({error:e})}finally{x.send("background","content-to-background-re-publist",{msg:t})}}),window.addEventListener("message",async t=>{if(t.source===window&&t.data.type==="API_REQUEST"){const e=t.data.payload,n=t.data.fn,{requestId:r}=t.data;console.log({requestId:r,event:t,body:e});try{let o=null;switch(n){case"index":{o=(await H.index(e)).data;break}case"getPublistedProducts":{o=(await H.getPublistedProducts()).data;break}case"get":{o=(await H.get(e)).data,console.log({data:o,body:e});break}case"createBlobUrl":{x.send("background","content-to-background-create-blod-urls",e),o=await x.waitForMessage("background-to-content-create-blod-urls"),console.log({data:o});break}case"publist":{x.send("background","content-to-background-actions",{type:"publist",data:e}),o=await x.waitForMessage("background-to-content-actions");break}case"unlist":{x.send("background","content-to-background-actions",{type:"unlist",data:e}),console.log({body:e}),o=await x.waitForMessage("background-to-content-actions"),console.log({unlisted:o});break}case"sync":{const i=await w.waitForElement('[aria-label="Collection of your Marketplace items"]');console.log("Element đã xuất hiện:",i),await A.waitForPageReady(A.sellingPath,'[aria-label="Collection of your Marketplace items"]'),await b(800,1e3);const s=await A.getProducts();console.log({products:s}),await H.sync(s);break}}window.postMessage({type:"API_RESPONSE",requestId:r,payload:o},"*")}catch(o){window.postMessage({type:"API_RESPONSE",requestId:r,error:o.message},"*")}}}),(async()=>(await b(800,1e3),w.waitForElement('[aria-label="Collection of your Marketplace items"]').then(async t=>{console.log("Element đã xuất hiện:",t),await A.waitForPageReady(A.sellingPath,'[aria-label="Collection of your Marketplace items"]'),await b(800,1e3);const e=await A.getProducts();console.log({products:e}),H.sync(e),Bn()}).catch(t=>{console.error(t)})))()})(); diff --git a/releases/auto-post-facebook-extensions_1.0/index.html b/releases/auto-post-facebook-extensions_1.0/index.html index 77a6ad5..f984add 100644 --- a/releases/auto-post-facebook-extensions_1.0/index.html +++ b/releases/auto-post-facebook-extensions_1.0/index.html @@ -7,9 +7,9 @@ Vite + React + TS - + - + diff --git a/server/data.json b/server/data.json index 0a20072..0637a08 100644 --- a/server/data.json +++ b/server/data.json @@ -1,14 +1 @@ -[ - { - "title": "Cisco AIR-PWRINJ6 Power Injector 8023at for Aironet Access Points - AIR-PWRINJ6", - "price": 95, - "el": {}, - "date": "2025-08-22T09:58:21.949Z" - }, - { - "title": "Cisco AIR-CT7510-K9 Wireless LAN Controller w / OS 8.5.182, 2x 300GB, 2x SFP+ - AIR-CT7510-K9", - "price": 8562, - "el": {}, - "date": "2025-08-22T09:58:21.950Z" - } -] \ No newline at end of file +[] \ No newline at end of file diff --git a/src/content/content.ts b/src/content/content.ts index 6811a78..e102d07 100644 --- a/src/content/content.ts +++ b/src/content/content.ts @@ -187,14 +187,23 @@ window.addEventListener("message", async (event) => { break; } case "sync": { - const products = await facebookService.getProducts(); + const el = await thiefService.waitForElement( + '[aria-label="Collection of your Marketplace items"]' + ); + console.log("Element đã xuất hiện:", el); + await facebookService.waitForPageReady( + facebookService.sellingPath, + '[aria-label="Collection of your Marketplace items"]' + ); + + await delayRD(800, 1000); + + const products = await facebookService.getProducts(); console.log({ products }); await productApi.sync(products); - data = products; - break; } } @@ -221,6 +230,8 @@ window.addEventListener("message", async (event) => { }); (async () => { + // Call to inject modal + await delayRD(800, 1000); // Sử dụng @@ -241,7 +252,6 @@ window.addEventListener("message", async (event) => { productApi.sync(products); - // Call to inject modal injectApp(); }) .catch((err) => { diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 3db460b..4494626 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -69,20 +69,22 @@ export function mapToIPost(raw: any): IPost { return { images, - title: `${raw.title} - ${raw.code}`, - price: raw.price, + title: raw?.title?.includes(raw?.code) + ? raw?.title + : `${raw?.title} - ${raw?.code}`, + price: raw?.price, category: "electronics & computers", condition: (raw?.conditionEbay as string)?.toLowerCase()?.includes("new") ? "new" : "used – like new", - brand: typeof raw.manufactor === "string" ? raw.manufactor : "", + brand: typeof raw?.manufactor === "string" ? raw?.manufactor : "", description: descriptionLines, tags: [], - sku: raw.code, - location: raw.location || "Sydney, Australia", + sku: raw?.code, + location: raw?.location || "Sydney, Australia", status: false, - id: raw.id, - publist_id: raw.listingId, + id: raw?.id, + publist_id: raw?.listingId, raw_condition: raw?.condition, }; } diff --git a/src/popup/popup.tsx b/src/popup/popup.tsx index 7c916a5..f155594 100644 --- a/src/popup/popup.tsx +++ b/src/popup/popup.tsx @@ -171,18 +171,6 @@ export default function Popup() { /> - {/* */} -