UNPKG

@letsscrapedata/scraper

Version:

Web scraper that scraping web pages by LetsScrapeData XML template

1 lines 173 kB
import{setControllerLogFun}from"@letsscrapedata/controller";import{setProxyLogFun}from"@letsscrapedata/proxy";import{log,LogLevel,setLogLevel}from"@letsscrapedata/utils";var pkgLog=log;function setScraperLogFun(t){return"function"==typeof t&&(setControllerLogFun(pkgLog=t),setProxyLogFun(pkgLog),!0)}async function logdbg(...t){await pkgLog(LogLevel.DBG,...t)}async function loginfo(...t){await pkgLog(LogLevel.INF,...t)}async function logwarn(...t){await pkgLog(LogLevel.WRN,...t)}async function logerr(...t){await pkgLog(LogLevel.ERR,...t)}setControllerLogFun(pkgLog),setProxyLogFun(pkgLog),setLogLevel(LogLevel.DBG);import{getLocalDateString}from"@letsscrapedata/utils";import xml2js from"xml2js-lsd";var defaultSplitOfParases="[\r\n\t,]+",defaultSeperatorOfParas="::",newLineChar="\n",defaultElementCfg={template:{tid:void 0,version:void 0,commited:!1},attrs:{},attr:{name:void 0,value:void 0},paras:{},para:{paraname:void 0,name:"",desc:"",uitype:"",defval:"",listid:"0",listparas:"",min:"",max:"",pattern:"",alert:""},element:{loc:void 0,source:"default",absolute:!1},iframe:{srcprefix:"",loc:""},templstr:{templ:void 0},elecontent_attr:{type:void 0,attrname:void 0,attrname2:"",attrname3:"",attrname4:"",trim:!1,pattern:"",boolattr:!1,multieles:!0,join:newLineChar,line:!1,absolute:!1},elecontent_imgbase64:{type:void 0},elecontent_innerhtml:{type:void 0},elecontent_length:{type:void 0},elecontent_outerhtml:{type:void 0},elecontent_text:{type:void 0,trim:!0,multieles:!0,join:newLineChar,line:!1,top:!1},decodefontsvg:{outtype:"text"},decodefontttf:{fontselectors:"",fontfamilies:"",intype:"outerhtml",outtype:"text",all:!1},ocrcfg_api:{type:void 0,nlchars:"",seperator:!1,lang:"zh"},ocrcfg_tesseract:{type:void 0,nlchars:"",seperator:!1,lang:"zh"},tabname_cache:{type:void 0,optype:void 0,tabname:void 0,prefix:"cached",requestheaders:!1,filename:"",fileidx:"0"},tabname_check:{type:void 0,tabname:void 0,errname:void 0,mincnt:"0",maxcnt:"0",subkeys:"",minlen:"0",maxlen:"0",pattern:"",not:!1},tabname_deduplicate:{type:void 0,tabname:void 0,keys:void 0,keep:"first"},tabname_delete:{type:void 0,tabname:void 0},tabname_filter:{type:void 0,tabname:void 0,varname:void 0,subkeys:""},actions:{},action_api:{type:void 0,method:"GET",url:void 0,encodeuri:!1,session:!1,headerssource:"headers",headers:"{}",referer:"",proxy:!0,timeout:"30000",context:"default",data:"",datatype:"object",format:"data",requestprefix:"",responseprefix:"",tabname:"none",subkeys:"",varname:"",setkeys:"",errname:"normal",valerrname:"ignore",pattern:"",flags:"",gen:!0,cap:!0,id:"0"},action_break:{type:void 0,id:"0"},action_captcha:{type:void 0,try:"1",errname:"captchafailed",debug:!1,id:"0"},action_click:{type:void 0,wait:"-1",gen:!0,cap:!0,clicktype:"click",try:"1",errname:"cfginvalid",popuppage:"ignored",popupsubtask:!1,login:!0,captcha:!0,navigate:!1,eurl:"",eloc:"",pn1:"",pv1:"",pn2:"",pv2:"",downloadpath:"",filename:"",pathvarname:"",id:"0"},action_continue:{type:void 0,id:"0"},action_misc:{type:void 0,id:"0"},misc_delsyncdbdata:{type:void 0,tids:"",retention:"2592000",minretention:"86400"},misc_extractdata:{type:void 0,name:void 0,datatableids:"",method:"put",paras:!0,execdata:!0,subtasks:!0,credits:!0},misc_loadtaskdata:{type:void 0,taskid:void 0},misc_getstatedata:{type:void 0,cookies:"new",localstorage:"new",headers:"none",userdata:"none",duration:""},action_exit:{type:void 0,errname:void 0,id:"0"},action_extract:{type:void 0,tabname:"dat_0000000000009911",id:"0"},action_extract_array:{type:void 0,subtype:void 0,list:void 0,requrl:"",setprocessed:!1,skipprocessed:!1,subkeys:"",arrayinrec:!0,keys:"",tabname:"dat_0000000000009921",varname:"",idxname:"",setkeys:"",maxloops:"0",errname:"cfginvalid",id:"0"},action_extract_script:{type:void 0,subtype:void 0,name:void 0,others:"",desc:"",tabname:"dat_0000000000009931",maxloops:"0",errname:"cfginvalid",id:"0"},action_extract_table:{type:void 0,subtype:void 0,orientation:"horizontal",check:!0,tabname:"dat_0000000000009941",keyformat:"camel",colnames:"",maxloops:"0",errname:"cfginvalid",id:"0"},column_element:{type:void 0,colname:void 0,completed:!1,setvar:!1,datatype:"string",errname:"ignore",valerrname:"ignore",pattern:"",flags:"",id:"0",discarded:!1},column_property:{type:void 0,subkeys:void 0,filter:!1,json:!1,colname:void 0,completed:!1,setvar:!1,datatype:"string",valerrname:"ignore",pattern:"",flags:"",id:"0",discarded:!1},column_ocr:{type:void 0,colname:void 0,completed:!1,setvar:!1,datatype:"string",valerrname:"ignore",pattern:"",flags:"",id:"0",discarded:!1},column_subtask:{type:void 0,colname:void 0,completed:!1,setvar:!1,datatype:"string",valerrname:"ignore",pattern:"",flags:"",id:"0",discarded:!1},column_templstr:{type:void 0,colname:void 0,completed:!1,setvar:!1,datatype:"string",valerrname:"ignore",pattern:"",flags:"",id:"0",discarded:!1},action_goto:{type:void 0,url:void 0,reuse:!1,timeout:"30000",wait:"-1",encodeuri:!1,gen:!0,cap:!0,popuppage:"ignored",popupsubtask:!1,login:!0,captcha:!0,eurl:"",eloc:"",pn1:"",pv1:"",pn2:"",pv2:"",headers:"",referer:"",id:"0"},action_hover:{type:void 0,try:"1",gen:!1,cap:!1,wait:"-1",errname:"cfginvalid",id:"0"},action_ifelse:{type:void 0,id:"0"},condition_element:{type:void 0},condition_else:{type:void 0},condition_templstr:{type:void 0},action_input:{type:void 0,content:void 0,enter:!1,replace:!1,gen:!1,cap:!1,try:"1",wait:"-1",errname:"cfginvalid",popuppage:"ignored",popupsubtask:!1,login:!1,captcha:!1,eurl:"",eloc:"",pn1:"",pv1:"",pn2:"",pv2:"",id:"0"},action_intercept_clear:{type:void 0,subtype:void 0,id:"0"},action_intercept_set:{type:void 0,subtype:void 0,id:"0"},request_abort:{type:void 0,method:"all",url:"",resourcetype:"image",postdata:""},response_cache:{type:void 0,method:"all",url:void 0,resourcetype:"all",postdata:"",minsize:"0",maxsize:"0",contenttype:"text",tabname:"dat_0000000000007001",requestheaders:!1,responseheaders:!1,cacheheaders:!1},object_key:{type:void 0,key:void 0,value:void 0,datatype:"string",operate:"set",varname:""},request_header:{type:void 0,name:void 0,value:void 0},response_save:{type:void 0,method:"all",url:void 0,resourcetype:"all",postdata:"",minsize:"0",maxsize:"0",basedir:"response",pathtype:"path_name",hashmethod:"MD5",hostnameparts:"0",extname:"",validextnames:"",params:"",encoding:"",tabname:"none"},response_statuscode:{type:void 0,codes:void 0,errname:void 0},action_loopdowhile_element:{type:void 0,subtype:void 0,iswhile:!1,varname:"",maxloops:"0",click:!1,navigate:!0,gen:!0,cap:!0,errname:"cfginvalid",wait:"-1",id:"0"},action_loopdowhile_templstr:{type:void 0,subtype:void 0,iswhile:!1,varname:"",maxloops:"0",id:"0"},action_loopfor:{type:void 0,from:void 0,to:void 0,step:"1",roundtype:"ceil",varname:void 0,maxloops:"0",errname:"ignore",id:"0"},action_loopineles:{type:void 0,varname:"",maxloops:"0",start:"1",end:"0",step:"1",errname:"ignore",id:"0"},action_loopinstr:{type:void 0,list:void 0,requrl:"",setprocessed:!1,skipprocessed:!1,subkeys:"",arrayinrec:!0,split:defaultSplitOfParases,varname:"",idxname:"",setkeys:"",maxloops:"0",trim:!0,errname:"ignore",id:"0"},action_scroll_by:{type:void 0,subtype:void 0,height:"100",unit:"windowpct",maxtimes:"1",interval:"800",gen:!1,cap:!1,popuppage:"ignored",popupsubtask:!1,login:!1,captcha:!1,eurl:"",eloc:"",pn1:"",pv1:"",pn2:"",pv2:"",id:"0"},action_scroll_intoview:{type:void 0,subtype:void 0,gen:!1,cap:!1,errname:"cfginvalid",popuppage:"ignored",popupsubtask:!1,login:!1,captcha:!1,eurl:"",eloc:"",pn1:"",pv1:"",pn2:"",pv2:"",id:"0"},action_scroll_to:{type:void 0,subtype:void 0,height:"100",unit:"bodypct",gen:!1,cap:!1,popuppage:"ignored",popupsubtask:!1,login:!1,captcha:!1,eurl:"",eloc:"",pn1:"",pv1:"",pn2:"",pv2:"",id:"0"},action_select:{type:void 0,selecttype:"value",selectval:"",gen:!1,cap:!1,try:"1",wait:"-1",errname:"cfginvalid",popuppage:"ignored",popupsubtask:!1,login:!1,captcha:!1,eurl:"",eloc:"",pn1:"",pv1:"",pn2:"",pv2:"",id:"0"},dbquery:{dbname:void 0,sql:void 0,sqlparas:"",parasplit:defaultSeperatorOfParas,join:newLineChar,tabname:"none"},action_setvar_dbquery:{type:void 0,subtype:void 0,varname:void 0,defaultval:"",errname:"ignore",setkeys:"",valerrname:"ignore",pattern:"",flags:"",path:"",id:"0"},action_setvar_element:{type:void 0,subtype:void 0,varname:void 0,defaultval:"",try:"1",errname:"ignore",setkeys:"",valerrname:"ignore",pattern:"",flags:"",path:"",id:"0"},file:{path:void 0,encoding:"utf8"},action_setvar_file:{type:void 0,subtype:void 0,varname:void 0,defaultval:"",proxy:!0,errname:"ignore",setkeys:"",valerrname:"ignore",pattern:"",flags:"",path:"",id:"0"},action_setvar_get:{type:void 0,subtype:void 0,varname:void 0,defaultval:"",errname:"ignore",setkeys:"",valerrname:"ignore",pattern:"",flags:"",path:"",id:"0"},action_setvar_object:{type:void 0,subtype:void 0,varname:void 0,data:"{}",defaultval:"",errname:"ignore",setkeys:"",valerrname:"ignore",pattern:"",flags:"",path:"",id:"0"},action_setvar_ocr:{type:void 0,subtype:void 0,varname:void 0,defaultval:"",errname:"ignore",setkeys:"",valerrname:"ignore",pattern:"",flags:"",path:"",id:"0"},action_setvar_subtask:{type:void 0,subtype:void 0,varname:void 0,defaultval:"",errname:"ignore",setkeys:"",valerrname:"ignore",pattern:"",flags:"",path:"",id:"0"},action_setvar_templstr:{type:void 0,subtype:void 0,varname:void 0,defaultval:"",errname:"ignore",setkeys:"",valerrname:"ignore",pattern:"",flags:"",path:"",id:"0"},subtask:{tid:void 0,parasstr:void 0,idx:"",minlen:"1",errname:"cfginvalid",popuppage:!1},action_subtask:{type:void 0,subtasks:"",sameasparent:!1,id:"0"},action_tabname:{type:void 0,id:"0"},action_wait_element:{type:void 0,subtype:void 0,timeout:"30000",state:"visible",errname:"ignore",wait:"-1",id:"0"},action_wait_navigation:{type:void 0,subtype:void 0,timeout:"30000",waituntil:"load",url:"",errname:"cfginvalid",wait:"-1",id:"0"},action_wait_sleep:{type:void 0,subtype:void 0,minms:"5000",maxms:"10000",errname:"ignore",wait:"-1",id:"0"},fonts:{},fontsvg:{exloc:"head link[rel='stylesheet']",inloc:"",csmaptype:"general",bsfilter:""},fontttf:{exloc:"head link[rel='stylesheet']",inloc:"",classes:"*",fonffamiles:"*",minuc:"0",maxuc:"0",startidx:"-1",fontselectors:"",fonturlpatterns:"",parsetype:"none",debug:!1},fontselector:{name:void 0,fontfamily:void 0},fontfamily:{name:void 0,fontcodes:"",fontchars:"",fonturl:""},fontcodes:{name:void 0,codes:void 0},fontchars:{name:void 0,chars:void 0},scripts:{},script:{name:void 0,scenario:void 0,desc:"",version:"0",scripttype:"js-isolated",base64:!0,script:""},captcha_amazon:{type:void 0},captcha_funcaptcha:{type:void 0},captcha_geetest:{type:void 0},captcha_keycaptcha:{type:void 0},captcha_mtcaptcha:{type:void 0},captcha_recaptcha:{type:void 0,minscore:"0.3"},captcha_turnstile:{type:void 0},image_element:{type:void 0},comment_element:{type:void 0,attr:"textContent"},input_element:{type:void 0,enter:!1},submit_element:{type:void 0},check_result:{type:void 0,attr:"",failedstr:""},captcha_text:{type:void 0,case:!1,lang:"en",math:!1,maxlen:"0",minlen:"0",question:!1,space:!1,texttype:"any"},captcha_coordinate:{type:void 0,lang:"en",maxclicks:"0",minclicks:"1"},transform:{defaultval:"",usevar:!1},fun_a_at:{type:void 0,subtype:void 0,idx:void 0},fun_a_concat:{type:void 0,subtype:void 0,array2:void 0},fun_a_every:{type:void 0,subtype:void 0,pattern:void 0,flags:""},fun_a_filter:{type:void 0,subtype:void 0,pattern:void 0,flags:""},fun_a_find:{type:void 0,subtype:void 0,pattern:void 0,flags:""},fun_a_findindex:{type:void 0,subtype:void 0,pattern:void 0,flags:""},fun_a_includes:{type:void 0,subtype:void 0,item:void 0},fun_a_indexof:{type:void 0,subtype:void 0,item:void 0,position:"0"},fun_a_join:{type:void 0,subtype:void 0,join:void 0},fun_a_length:{type:void 0,subtype:void 0},fun_a_mapattr:{type:void 0,subtype:void 0,subkeys:void 0},fun_a_match:{type:void 0,subtype:void 0,pattern:void 0,flags:"",resulttype:"idx",idx:"0"},fun_a_max:{type:void 0,subtype:void 0},fun_a_min:{type:void 0,subtype:void 0},fun_a_pop:{type:void 0,subtype:void 0},fun_a_push:{type:void 0,subtype:void 0,item:void 0},fun_a_replace:{type:void 0,subtype:void 0,substr:void 0,newstr:void 0,regexp:!1,flags:""},fun_a_setcomplement:{type:void 0,subtype:void 0,array2:void 0},fun_a_setdifference:{type:void 0,subtype:void 0,array2:void 0},fun_a_setintersection:{type:void 0,subtype:void 0,array2:void 0},fun_a_setunion:{type:void 0,subtype:void 0,array2:void 0},fun_a_shift:{type:void 0,subtype:void 0},fun_a_shuffle:{type:void 0,subtype:void 0},fun_a_slice:{type:void 0,subtype:void 0,beginidx:void 0,len:"",endidx:""},fun_a_sort:{type:void 0,subtype:void 0,valtype:"number",sorttype:"asc"},fun_a_toobj:{type:void 0,subtype:void 0,key:void 0,value:void 0},fun_a_uniq:{type:void 0,subtype:void 0},fun_a_unshift:{type:void 0,subtype:void 0,item:void 0},fun_n_ceil:{type:void 0,subtype:void 0},fun_n_dateformat:{type:void 0,subtype:void 0,format:void 0,ms:!0},fun_n_eq:{type:void 0,subtype:void 0,number2:void 0},fun_n_floor:{type:void 0,subtype:void 0},fun_n_ge:{type:void 0,subtype:void 0,number2:void 0},fun_n_gt:{type:void 0,subtype:void 0,number2:void 0},fun_n_isnan:{type:void 0,subtype:void 0},fun_n_le:{type:void 0,subtype:void 0,number2:void 0},fun_n_lt:{type:void 0,subtype:void 0,number2:void 0},fun_n_max:{type:void 0,subtype:void 0,number2:void 0},fun_n_min:{type:void 0,subtype:void 0,number2:void 0},fun_n_parsefloat:{type:void 0,subtype:void 0},fun_n_parseint:{type:void 0,subtype:void 0},fun_n_round:{type:void 0,subtype:void 0},fun_n_tofixed:{type:void 0,subtype:void 0,digits:void 0,fixed:!1},fun_o_assign:{type:void 0,subtype:void 0,object2:void 0},fun_o_attr:{type:void 0,subtype:void 0,subkeys:void 0},fun_o_entries:{type:void 0,subtype:void 0,kvjoin:"="},fun_o_findstrinobj:{type:void 0,subtype:void 0,str:void 0,equal:!1},fun_o_keys:{type:void 0,subtype:void 0},fun_o_match:{type:void 0,subtype:void 0,pattern:void 0,flags:"",resulttype:"idx",idx:"0"},fun_o_replace:{type:void 0,subtype:void 0,substr:void 0,newstr:void 0,regexp:!1,flags:""},fun_o_sort:{type:void 0,subtype:void 0,valtype:"number",sorttype:"asc"},fun_o_values:{type:void 0,subtype:void 0},fun_x_attr:{type:void 0,subtype:void 0,loc:void 0,idx:"0",attrname:void 0,xml:!0,decode:!1},fun_x_data:{type:void 0,subtype:void 0,loc:void 0,idx:"0",attrname:void 0,xml:!0,decode:!1},fun_x_empty:{type:void 0,subtype:void 0,loc:void 0,xml:!0,decode:!1},fun_x_html:{type:void 0,subtype:void 0,loc:void 0,idx:"0",xml:!0,decode:!1},fun_x_length:{type:void 0,subtype:void 0,loc:void 0,xml:!0,decode:!1},fun_x_remove:{type:void 0,subtype:void 0,loc:void 0,xml:!0,decode:!1},fun_x_text:{type:void 0,subtype:void 0,loc:void 0,idx:"-9999",xml:!0,decode:!1},fun_at:{type:void 0,idx:void 0},fun_closingsubstr:{type:void 0,openchar:void 0,startstr:"",regexp:!1,flags:"",position:"0"},fun_compress:{type:void 0,method:"gzip",flush:"",finishflush:"",chunksize:"0",windowbits:"0",level:"",memlevel:"",strategy:"",sourceencoding:"utf8",targetencoding:"base64"},fun_concat:{type:void 0,str1:void 0,str2:"",str3:"",str4:"",str5:""},fun_convertencoding:{type:void 0,sourceencoding:"base64",targetencoding:"utf8",start:"0",end:"0"},fun_decode:{type:void 0,str1:"",val1:"",str2:"",val2:"",str3:"",val3:"",str4:"",val4:"",str5:"",val5:"",defaultval:""},fun_decompress:{type:void 0,method:"gunzip",flush:"",finishflush:"",chunksize:"0",windowbits:"0",sourceencoding:"base64",targetencoding:"utf8",start:"0",end:"0"},fun_endswith:{type:void 0,str:void 0},fun_eq:{type:void 0,str:void 0},fun_hashcode:{type:void 0,hashmethod:"MD5"},fun_includes:{type:void 0,str:void 0},fun_indexof:{type:void 0,str:void 0,position:"0"},fun_insert:{type:void 0,str:void 0},fun_isin:{type:void 0,items:void 0},fun_itemstoobj:{type:void 0,split:defaultSplitOfParases,kvsplit:":",keytrim:!0,keynows:!1,valuetrim:!0,valuenows:!1},fun_length:{type:void 0},fun_match:{type:void 0,pattern:void 0,flags:"",resulttype:"idx",idx:"0"},fun_normalize:{type:void 0},fun_not:{type:void 0},fun_padend:{type:void 0,targetlen:void 0,padstr:" "},fun_padstart:{type:void 0,targetlen:void 0,padstr:" "},fun_parsestr:{type:void 0},fun_replace:{type:void 0,substr:void 0,newstr:void 0,regexp:!1,flags:""},fun_search:{type:void 0,pattern:void 0},fun_slice:{type:void 0,beginidx:void 0,len:"",endidx:""},fun_specialconvert:{type:void 0,method:void 0,para1:"",para2:"",para3:"",para4:"",para5:""},fun_split:{type:void 0,split:defaultSplitOfParases,limit:"0"},fun_startswith:{type:void 0,str:void 0},fun_substrafter:{type:void 0,substr:void 0,regexp:!1,flags:"",position:"0",last:!1,include:!1},fun_substrbefore:{type:void 0,substr:void 0,regexp:!1,flags:"",position:"0",last:!1,include:!1},fun_tobigint:{type:void 0},fun_tobool:{type:void 0},fun_tolowercase:{type:void 0},fun_tonum:{type:void 0},fun_touppercase:{type:void 0},fun_trim:{type:void 0},fun_trimend:{type:void 0},fun_trimstart:{type:void 0},fun_urldecode:{type:void 0,method:"URI",encoding:"utf8",percent:!0},fun_urldelparams:{type:void 0,param1:void 0,param2:"",param3:","},fun_urlencode:{type:void 0,method:"URI",encoding:"utf8",percent:!0},fun_urlget:{type:void 0,attrorpath:void 0,hashmethod:"MD5",hostnameparts:"0",params:"",param:"",extname:"",validextnames:"",title:""},fun_urlsetparams:{type:void 0,param1:void 0,val1:"",param2:"",val2:"",param3:"",val3:"",replace:!0},fun_script:{type:void 0,name:void 0,arg1:"",arg2:"",arg3:"",arg4:"",arg5:""},get_addedtaskparas:{type:void 0,tid:void 0,limit:"10000",join:newLineChar,interval:"3600"},get_content:{type:void 0},get_cookie:{type:void 0,domain:"",name:"",attr:"name",source:"orig"},get_evaluate:{type:void 0,script:void 0,data:"",isolated:!0,secure:!0},get_execedtaskparas:{type:void 0,tid:void 0,limit:"10000",join:newLineChar,interval:"3600"},get_file:{type:void 0,url:void 0,path:"",basedir:"files",pathtype:"path_name",hashmethod:"MD5",hostnameparts:"0",params:"",extname:"",validextnames:"",pathvarname:"",proxy:!0,headers:"",referer:"",setvar:!1},httpbrowser:{name:void 0,minversion:"0",maxversion:"0",httpversion:"0"},httpdevice:{device:void 0},httpheader:{name:void 0,source:"value",value:void 0,delete:!1},httpos:{os:void 0},get_httpheaders:{type:void 0,headermethod:"genLatestWindowsChrome",origheaders:"",browserlist:"",httpversion:"0"},get_localstorage:{type:void 0,origin:void 0,name:void 0,source:"orig",parsestr:!1},get_mhtml:{type:void 0,path:"",basedir:"mhtml",pathtype:"title",hashmethod:"MD5",hostnameparts:"0",pathvarname:""},get_pdf:{type:void 0,path:"",basedir:"pdf",pathtype:"title",hashmethod:"MD5",hostnameparts:"0",scale:"1",displayheaderfooter:!1,headertemplate:"",footertemplate:"",printbackground:!1,landscape:!1,pageranges:"",format:"Letter",width:"",height:"",top:"",right:"",bottom:"",left:"",screen:!1,onepage:!1,hmargin:"",setvar:!1,pathvarname:""},get_queuedcntwithparas:{type:void 0,tid:void 0,parasstr:void 0,operator:"eq"},get_queuedtaskparas:{type:void 0,tid:void 0,limit:"10000",join:newLineChar,interval:"3600"},get_random:{type:void 0,min:void 0,max:void 0},get_screenshot:{type:void 0,basedir:"screenshot",path:"",extname:"png",quality:"-1",fullpage:!1,x:"0",y:"0",width:"0",height:"0",omitbackground:!1,setvar:!1,pathvarname:""},get_tabname:{type:void 0,tabname:void 0,requrl:"",length:!1,idx:"-1",subkeys:""},get_title:{type:void 0,aspath:!1},get_window:{type:void 0,key1:void 0,key2:"",key3:"",key4:"",key5:"",key6:"",keys:!1,length:!1}};import{LsdPageEvent}from"@letsscrapedata/controller";var appConfig={XML_ATTR_KEY:"$$",XML_CHAR_KEY:"_",XML_CHILDREN_KEY:"children",GEN_CREDITS_BITS:16,GEN_CREDITS_AND:65535,CHECK_DNS_DOMAIN:"example.com",CHECK_POPUP_PAGE_TIMEOUT1:35e3,CHECK_POPUP_PAGE_TIMEOUT2:5e3,RESERVED_PARA_NAMES:["authInfo","inParas","sysParas"],EVENT_TYPES:{lsdPageClose:LsdPageEvent.PAGE_CLOSE,lsdPagePopup:LsdPageEvent.PAGE_POPUP,lsdScraperPopup:"lsdScraperPopup",taskComplete:"taskComplete"},OPERATE_ACTIONS:["click","goto","hover","input","scroll","select","wait","captcha","intercept"],performOneTask:console.log,cfg:{exitWhenCompleted:!1,useParasstrInXmlIfNeeded:!1,loadUnfinishedTasks:!1,loadFailedTasksInterval:0,baseDir:"",baseDownloadDir:"",baseFileDir:"",templateDir:"",taskDir:"",exportsDir:"",inputFileDirPart:"LetsScrapeData",useStealthPlugin:!1,browserControllerType:"patchright",browserType:"chromium",lsdLaunchOptions:{headless:!1,geoip:!0},lsdConnectOptions:{browserUrl:""},browserConfigs:[],captcha:{clientKey:"",captchas:[]},maxConcurrency:1,readCode:"",templateParas:[],urlPrefix:"https://api.letsscrapedata.com/nologin",totalMaxConcurrency:10,minMiliseconds:2e3,moveDataWhenStart:!1,dataFileFormat:"jsonl",columnSeperator:"::"}},TaskParser=class t{static#t(e,r){try{if(!e||!r)throw new Error(`##te Invalid paras, parentEleName ${r} in _applyDefaultElementCfg`);if("object"!=typeof e)return!0;const a=appConfig.XML_ATTR_KEY,s=appConfig.XML_CHILDREN_KEY;e[a]||(e[a]={});let n=r;e[a].type&&(n=n+"_"+e[a].type),e[a].subtype&&(n=n+"_"+e[a].subtype);const i=defaultElementCfg[n];if(!i)throw new Error(`##te No default Cfg for eleName ${n} in _applyDefaultElementCfg`);const o=Object.assign({},i);if(Object.keys(i).forEach(t=>{let r=e[a][t];if("boolean"==typeof o[t])"true"===r||""===r?o[t]=!0:"false"===r&&(o[t]=!1);else if(r||""===r)o[t]=r;else if(void 0===o[t])throw new Error(`##te Attribute ${t} of Element ${n} is undefined`)}),e[a]=o,!e[s])return!0;const c=Array.from(Object.keys(e[s]));for(const r of c){const a=e[s][r];1===a.length&&""===a[0]?e[s][r]=[]:a.forEach(e=>t.#t(e,r))}return!0}catch(t){throw logerr(`##te Error parentEleName ${r} in _applyDefaultElementCfg`),new Error(t)}}static async convertXmlToJson(e,r=!0){try{const a=function(t){const e=t.indexOf("_");return e>0?t.slice(0,e):t},s={attrkey:appConfig.XML_ATTR_KEY,charkey:appConfig.XML_CHAR_KEY,childkey:appConfig.XML_CHILDREN_KEY,explicitChildren:!0,tagNameProcessors:[a]},n=appConfig.XML_CHILDREN_KEY,i=await xml2js.parseStringPromise(e,s);if(!(i&&i.template&&i.template[n]&&Array.isArray(i.template[n].actions)))throw new Error(`##te Invalid XML config string: ${e}`);return r&&t.#t(i.template,"template"),i.template}catch(t){throw logerr("##te Exeception in convertXmlToJson"),logerr(`##te xmlCfgStr: ${e}`),new Error(t)}}static getPartOfJsonCfg(t,e,r=!1){try{const r=t[appConfig.XML_CHILDREN_KEY][e][0];return r||null}catch(t){if(r)return null;throw logerr(`##te Exeception when try to get ${e} in getPartOfJsonCfg`),new Error(t)}}static#e(e){try{const r=t.getPartOfJsonCfg(e,"attrs");return!Array.isArray(r?.children?.attr)||r.children.attr.length<=0?[]:r.children.attr.map(t=>t[appConfig.XML_ATTR_KEY])}catch(t){return logerr(t),[]}}static getParaCfgsFromJsonCfg(e){try{const r=t.getPartOfJsonCfg(e,"paras");return!Array.isArray(r?.children?.para)||r.children.para.length<=0?[]:r.children.para.map(t=>t[appConfig.XML_ATTR_KEY])}catch(t){return logerr(t),[]}}static getScriptCfgsFromJsonCfg(e){try{const r=t.getPartOfJsonCfg(e,"scripts",!0);return!Array.isArray(r?.children?.script)||r.children.script.length<=0?[]:r.children.script.map(t=>Object.assign({},t[appConfig.XML_ATTR_KEY],{script:t[appConfig.XML_CHAR_KEY]}))}catch(t){return logerr(t),[]}}static getAttrsInXml(e){const r=t.#e(e),a={};return r.forEach(t=>a[t.name]=t.value),a}static#r(e,r){const a=[],s=appConfig.XML_CHILDREN_KEY;for(const n of e)if(n?.[appConfig.XML_ATTR_KEY]?.type===r)a.push(n);else if(n&&n[s]&&(n[s].action||n[s].condition)){t.#r(n[s].action?n[s].action:n[s].condition,r).forEach(t=>{a.push(t)})}return a}static getCaptchTypes(e){const r=appConfig.XML_CHILDREN_KEY,a=e[r].actions[0][r].action,s=t.#r(a,"captcha"),n=[];for(const t of s){const e=t[appConfig.XML_CHILDREN_KEY]?.captcha;Array.isArray(e)&&e.forEach(t=>{const e=t[appConfig.XML_ATTR_KEY].type;e&&n.push(e)})}return n}static getInParas(t,e=[],r="::"){const a={},s=t.split("@@"),n=["para","apara","rpara"];for(let t=0;t<3;t++){let i=n[t],o=e.filter(t=>t.paraname.startsWith(i)).length;if(s.length>t&&s[t].length>0){let e=s.length>t&&s[t].length>0?s[t].split(r):[];for(let t=1;t<=e.length;t++)a[`${i}${t}`]=e[t-1];for(let t=e.length+1;t<=o;t++)a[`${i}${t}`]=""}}return a}};import*as fs from"fs";import*as path from"path";import{filesInDir,getCurrentUnixTime}from"@letsscrapedata/utils";import ivm from"isolated-vm";import{decodeFromBase64,getJsonParseOfStr}from"@letsscrapedata/utils";var LsdScript=class t{static#a=null;static#s=null;static convertScriptCfg(t){let{name:e,scenario:r,script:a,scripttype:s,base64:n}=t;const i=s.split("-");n&&(a=decodeFromBase64(a,!1));return{name:e,script:a,scenario:r,lang:i[0],env:i[1]}}static#n(t){return t.startsWith("std")}static setGetStdFunScript(e){if("function"==typeof e)return t.#a=e,!0;throw new Error("##cfg fun not a function in setGetStdFunScript")}static setClearStdFunScript(e){if("function"==typeof e)return t.#s=e,!0;throw new Error("##cfg fun not a function in clearGetStdFunScript")}static#i(e){return!(!this.#n(e)||!t.#s)&&this.#i(e)}static async#o(e,r={}){if("string"!=typeof e||!e)throw new Error("invalid paras");let a=r[e];return a||(e.startsWith("std")&&t.#a&&(a=await t.#a(e),a)?a:null)}static#c(t,e){try{const r=new ivm.Isolate,a=r.createContextSync(),s=new ivm.ExternalCopy(t);a.global.setSync("inData",s.copyInto());const n=r.compileScriptSync(e).runSync(a);return"string"!=typeof n&&logwarn("Please check the script is correct."),"string"==typeof n?n:""}catch(t){return logerr(t),""}}static async#l(e,r,a,s){const n=await t.#o(r,a);if(!n||n.scenario!==s)return"";return t.#c(e,n.script)}static async execFunScript(e,r,a={}){const s=await t.#l(e,r,a,"fun");return"cfginvalid"===s&&t.#i(r),s}static async execExtractScript(e,r,a={}){const s=await t.#l(e,r,a,"extract");let n=getJsonParseOfStr(s);return n||(n={execData:{},errName:"cfginvalid"}),"cfginvalid"===n.errName&&t.#i(r),n}},TemplateManagerInScraper=class t{static#p=new Map;static#g=new Set;static#h(t){const e=appConfig.cfg.templateParas.find(e=>e.templateId===t);return e?.readCode?e.readCode:appConfig.cfg.readCode}static async#f(t,e){try{if(!e){if(!appConfig.cfg.templateDir)return null;const r=await filesInDir(appConfig.cfg.templateDir,"general",`tid${t}_`,"xml");let a=1===r.length?r[0]:`tid${t}.xml`;a=path.join(appConfig.cfg.templateDir,a),e=fs.readFileSync(a,"utf8")}if(!e)return null;return{templateId:t,domainId:1,defaultElementSource:"browser",maxExecutionDuration:600,configDetail:e}}catch(t){return null}}static async#d(e,r){try{if(t.#g.has(e))return null;let a=`${appConfig.cfg.urlPrefix}/template`;a=`${a}?tid=${e}&code=${r}`;const s=await fetch(a);if(200!==s.status)return 403===s.status?logwarn(`Failed to get template ${e}: No privilege`):logwarn(`Failed to get template ${e}, status: ${s.status}`),t.#g.add(e),null;const n=await s.json();if(!n||0!==n.code||!n.data)return logwarn(`Failed to get template ${e}: ${n.message}`),null;if(n.data.templateId!==e)return logerr(`Different templateId ${e} / ${n.templateId}`),null;const{domainId:i=0,defaultElementSource:o,configDetail:c="",maxExecutionDuration:l}=n.data;if(!c)return logerr(`Invalid content in template ${e}`),null;return{templateId:e,domainId:i,defaultElementSource:o,maxExecutionDuration:l,configDetail:c}}catch(t){return logdbg(t),null}}static async parseXmlTemplate(t){const e=await TaskParser.convertXmlToJson(t),r=TaskParser.getParaCfgsFromJsonCfg(e),a=TaskParser.getPartOfJsonCfg(e,"fonts",!0),s=TaskParser.getScriptCfgsFromJsonCfg(e),n=TaskParser.getPartOfJsonCfg(e,"actions",!1),i=TaskParser.getAttrsInXml(e),o=TaskParser.getCaptchTypes(e),c=getCurrentUnixTime(),l={};s.forEach(t=>{l[t.name]=LsdScript.convertScriptCfg(t)});return{actionConfigs:n,paraCfgs:r,fontsConfig:a||null,templScripts:l,attrsInXml:i,captchaTypes:o,lastUsedTime:c,lastCheckTime:c,secureDataFlag:t.includes("secureData.")}}static async getTemplateConfig(e,r=""){if(!r){const r=t.#p.get(e);if(r)return r}let a=await t.#f(e,r);if(!a){const r=t.#h(e);a=await t.#d(e,r)}if(!a){const t=`Cannot get template tid ${e}`;throw logwarn(t),new Error(t)}const s=await t.parseXmlTemplate(a.configDetail),n=Object.assign({},s,{template:a});return t.#p.set(e,n),n}static clearTemplateConfig(e=0){return e>0?t.#p.delete(e):t.#p.clear(),!0}};import EventEmitter from"events";import{once}from"events";import*as fs6 from"fs";import*as path5 from"path";import{gotScraping}from"got-scraping";import{sleep as sleep3,checkDns,fileExist,fsCheckOrCreateSubdir as fsCheckOrCreateSubdir3,getRandomInt,unreachable as unreachable3,getJsonParseOfStr as getJsonParseOfStr5,getCurrentUnixTime as getCurrentUnixTime2,getMemberOfObject as getMemberOfObject2,getStringOfObj as getStringOfObj4,isDirectorySync,getLocalDateNumber}from"@letsscrapedata/utils";import{CheerioPage,controller}from"@letsscrapedata/controller";import*as uuid from"uuid";var SysParas=class{#u;#m;#y;#C;constructor(t,e,r,a){this.#u=t,this.#m=e,this.#y=r,this.#C=a}get version(){return this.#C}get templateId(){return this.#m}get taskId(){return this.#y}get url(){try{return this.#u?.page?this.#u.page.url():""}catch{return""}}get userAgent(){try{return this.#u?.page?.userAgent?this.#u.page.userAgent():""}catch{return""}}get hasPopupPage(){return this.#u?.popupPage?"1":"0"}get subtaskNum(){const t=this.#u?.subtasks;return Array.isArray(t)?String(t.length):"0"}get datatableNum(){const t=this.#u?.execData;return t&&"object"==typeof t?String(Object.keys(t).length):"0"}get currentISODate(){return(new Date).toISOString().slice(0,10)}get currentISOString(){return(new Date).toISOString()}get currentLocaleString(){return(new Date).toLocaleString()}get currentLocaleDateString(){return(new Date).toLocaleDateString()}get currentLocaleTimeString(){return(new Date).toLocaleTimeString()}get currentString(){return(new Date).toString()}get currentUTCString(){return(new Date).toUTCString()}get currentUnixMs(){return String(Date.now())}get currentUnixTs(){return String(Math.floor(Date.now()/1e3))}get random10(){return String(Math.floor(10*Math.random()))}get random100(){return String(Math.floor(100*Math.random()))}get random1000(){return String(Math.floor(1e3*Math.random()))}get random10000(){return String(Math.floor(1e4*Math.random()))}get uuidv1(){return uuid.v1()}get uuidv4(){return uuid.v4()}};import*as iconv from"iconv-lite";import*as zlib from"zlib";import*as cheerio from"cheerio";import dateFormat from"dateformat";import{getComplementOfTwoArray,getDifferenceOfTwoArray,getIntersectionOfTwoArray,getJsonParseOfStr as getJsonParseOfStr2,getStringOfObj,getUnionOfTwoArray,LsdUrl,unreachable}from"@letsscrapedata/utils";function findStrInObj(t,e,r="obj",a=!1,s=1){let n,i=[];if(s>20)return[];if(Array.isArray(t))for(let o=0;o<t.length;o++){const c=r?`${r}.${o}`:`${o}`;n=findStrInObj(t[o],e,c,a,s+1),i.push(...n)}else if("object"!=typeof t||t){if("string"==typeof t)(a&&t===e||!a&&t.includes(e))&&i.push([r,t]);else if("number"==typeof t){const s=String(t);(a&&s===e||!a&&s.includes(e))&&i.push([r,t])}}else for(const o in t){const c=r?`${r}.${o}`:`${o}`;n=findStrInObj(t[o],e,c,a,s+1),i.push(...n)}return i}var LsdString=class t{static specialConvertFunObj={};static setSpecialConvertFunObj(e){return t.specialConvertFunObj=e,!0}static transformStrSync(e,r,a){let s=e;try{if("string"!=typeof e||!Array.isArray(r))throw new Error("Invalid paras in transformStr");for(const e of r){if("object"!=typeof e)throw new Error("Invalid funCfg in transformStr");const r=1===e.type.length?`${e.type}_${e.subtype}`:e.type;let a=t.#b[r];if(!a||"function"!=typeof a)return logerr(`Invalid funName ${r} in transformStr`),"";s=a(s,e)}}catch(t){t.message.includes(" JSON ")||t.message.startsWith("##check")||loginfo(t),s=""}return s||a}static async transformStr(e,r,a,s){let n=e;try{if("string"!=typeof e||!Array.isArray(r))throw new Error("Invalid paras in transformStr");for(const e of r){if("object"!=typeof e)throw new Error("Invalid funCfg in transformStr");const r=1===e.type.length?`${e.type}_${e.subtype}`:e.type;if("script"!==r){let a=t.#b[r];if(!a||"function"!=typeof a)return logerr(`Invalid funName ${r} in transformStr`),"";n=a(n,e)}else n=await t.#v(n,e,s)}}catch(t){t.message.includes(" JSON ")||t.message.startsWith("##check")||loginfo(t),n=""}return n||a}static#w(t,e){if(!Array.isArray(t))throw new Error("##check data is not an array!");if(void 0!==e&&!Array.isArray(e))throw new Error("##check data is not an array!")}static#S(t,e){if(!t||"object"!=typeof t)throw new Error("##check data is not an not-null object!");if(void 0!==e&&(!e||"object"!=typeof t))throw new Error("##check data is not an not-null object!")}static#k(t){return getStringOfObj(t)}static#x(t,e){for(const r of e.split(".")){if("object"!=typeof t||!t)return"";t=t[r]}return null==t?"":"string"==typeof t?t:"number"==typeof t?String(t):"boolean"==typeof t?t?"1":"0":"object"==typeof t?JSON.stringify(t):""}static#E(e,r){const{idx:a}=r,s=getJsonParseOfStr2(e);t.#w(s);const n=s.at(parseInt(a));return t.#k(n)}static#A(e,r){const{array2:a}=r,s=getJsonParseOfStr2(e),n=getJsonParseOfStr2(a);t.#w(s,n);let i=s.concat(n);return JSON.stringify(i)}static#O(e,r){const{pattern:a,flags:s}=r,n=getJsonParseOfStr2(e);t.#w(n);const i=new RegExp(a,s);return n.every(t=>getStringOfObj(t).match(i))?"1":"0"}static#I(e,r){const{pattern:a,flags:s}=r,n=getJsonParseOfStr2(e);t.#w(n);const i=new RegExp(a,s),o=n.filter(t=>getStringOfObj(t).match(i));return JSON.stringify(o)}static#_(e,r){const{pattern:a,flags:s}=r,n=getJsonParseOfStr2(e);t.#w(n);const i=new RegExp(a,s),o=n.find(t=>getStringOfObj(t).match(i));return getStringOfObj(o)}static#T(e,r){const{pattern:a,flags:s}=r,n=getJsonParseOfStr2(e);t.#w(n);const i=new RegExp(a,s),o=n.findIndex(t=>getStringOfObj(t).match(i));return String(o)}static#D(e,r){const{item:a}=r,s=getJsonParseOfStr2(e);return t.#w(s),s.includes(a)?"1":"0"}static#P(e,r){const{item:a,position:s}=r,n=getJsonParseOfStr2(e);return t.#w(n),String(n.indexOf(a,parseInt(s)))}static#N(e,r){const{join:a}=r,s=getJsonParseOfStr2(e);return t.#w(s),s.join(a)}static#R(e){const r=getJsonParseOfStr2(e);return t.#w(r),String(r.length)}static#F(e,r){const{subkeys:a}=r,s=getJsonParseOfStr2(e);t.#w(s);const n=s.map(e=>t.#x(e,a));return JSON.stringify(n)}static#j(e,r){const a=getJsonParseOfStr2(e);t.#w(a);const s=a.map(e=>"string"==typeof e?t.#L(e,r):e);return JSON.stringify(s)}static#$(e){const r=getJsonParseOfStr2(e);t.#w(r);const a=r.map(t=>Number(t));return a.findIndex(t=>Number.isNaN(t))>=0?"":String(Math.max(...a))}static#M(e){const r=getJsonParseOfStr2(e);t.#w(r);const a=r.map(t=>Number(t));return a.findIndex(t=>Number.isNaN(t))>=0?"":String(Math.min(...a))}static#U(e){const r=getJsonParseOfStr2(e);t.#w(r);const a=r.pop();return t.#k(a)}static#J(e,r){const{item:a}=r,s=getJsonParseOfStr2(e);return t.#w(s),s.push(a),JSON.stringify(s)}static#H(e,r){const a=getJsonParseOfStr2(e);t.#w(a);const s=a.map(e=>"string"==typeof e?t.#q(e,r):e);return JSON.stringify(s)}static#B(e,r){const{array2:a}=r,s=getJsonParseOfStr2(e),n=getJsonParseOfStr2(a);t.#w(s,n);let i=getComplementOfTwoArray(s,n);return JSON.stringify(i)}static#V(e,r){const{array2:a}=r,s=getJsonParseOfStr2(e),n=getJsonParseOfStr2(a);t.#w(s,n);let i=getDifferenceOfTwoArray(s,n);return JSON.stringify(i)}static#W(e,r){const{array2:a}=r,s=getJsonParseOfStr2(e),n=getJsonParseOfStr2(a);t.#w(s,n);let i=getIntersectionOfTwoArray(s,n);return JSON.stringify(i)}static#K(e,r){const{array2:a}=r,s=getJsonParseOfStr2(e),n=getJsonParseOfStr2(a);t.#w(s,n);let i=getUnionOfTwoArray(s,n);return JSON.stringify(i)}static#G(e){const r=getJsonParseOfStr2(e);t.#w(r);const a=r.shift();return t.#k(a)}static#z(e){const r=getJsonParseOfStr2(e);t.#w(r);let a=r.sort(()=>Math.random()-.5);return JSON.stringify(a)}static#Y(e,r){const{beginidx:a,len:s,endidx:n}=r,i=parseInt(a);let o="string"==typeof n&&n.length>0?parseInt(n):void 0;const c="string"==typeof s&&s.length>0?parseInt(s):void 0;c&&c>0&&(o=i+c);const l=getJsonParseOfStr2(e);t.#w(l);const p=l.slice(i,o);return JSON.stringify(p)}static#X(t,e,r){let a;return a="string"===e?"asc"===r?t.sort((t,e)=>t.localeCompare(e)):t.sort((t,e)=>e.localeCompare(t)):"asc"===r?t.sort((t,e)=>Number(t)-Number(e)):t.sort((t,e)=>Number(e)-Number(t)),a}static#Q(e,r){const{valtype:a,sorttype:s}=r,n=getJsonParseOfStr2(e);t.#w(n);let i=t.#X(n,a,s);return JSON.stringify(i)}static#Z(e,r){const{key:a,value:s}=r;if(!a||!s)return"";const n=getJsonParseOfStr2(e);t.#w(n);const i={};for(const t of n){const e=String(t[a]),r=getStringOfObj(t[s]);i[e]=r}return JSON.stringify(i)}static#tt(e){const r=getJsonParseOfStr2(e);t.#w(r);const a=[...new Set(r)];return JSON.stringify(a)}static#et(e,r){const{item:a}=r,s=getJsonParseOfStr2(e);return t.#w(s),s.unshift(a),JSON.stringify(s)}static#rt(t){return String(Math.ceil(Number(t)))}static#at(t,e){const{format:r,ms:a}=e;let s=t?parseInt(t):0;a||(s*=1e3);const n=s?new Date(s):new Date;return"toISODate"===r?n.toISOString().slice(0,10):"toISOString"===r?n.toISOString():"toLocaleString"===r?n.toLocaleString():"toLocaleDateString"===r?n.toLocaleDateString():"toLocaleTimeString"===r?n.toLocaleTimeString():"toString"===r?n.toString():"toUTCString"===r?n.toUTCString():dateFormat(n,r)}static#st(t,e){const{number2:r}=e;return Number(t)===Number(r)?"1":"0"}static#nt(t){return String(Math.floor(Number(t)))}static#it(t,e){const{number2:r}=e;return Number(t)>=Number(r)?"1":"0"}static#ot(t,e){const{number2:r}=e;return Number(t)>Number(r)?"1":"0"}static#ct(t){const e=Number(t);return Number.isNaN(e)?"1":"0"}static#lt(t,e){const{number2:r}=e;return Number(t)<=Number(r)?"1":"0"}static#pt(t,e){const{number2:r}=e;return Number(t)<Number(r)?"1":"0"}static#gt(t,e){const{number2:r}=e,a=Number(t),s=Number(r);return String(a>s?a:s)}static#ht(t,e){const{number2:r}=e,a=Number(t),s=Number(r);return String(a<s?a:s)}static#ft(t){return String(parseFloat(t))}static#dt(t){return String(parseInt(t))}static#ut(t){return String(Math.round(Number(t)))}static#mt(t,e){const{digits:r,fixed:a}=e,s=Number(t),n=parseInt(r);if(a)return String(s.toFixed(n));{const t=String(s).split(".");return 2!==t.length||t[1].length<=n?String(s):String(s.toFixed(n))}}static#yt(e,r){const{object2:a}=r,s=getJsonParseOfStr2(e),n=getJsonParseOfStr2(a);t.#S(s,n);const i=Object.assign({},s,n);return JSON.stringify(i)}static#Ct(e,r){const{subkeys:a}=r;let s=getJsonParseOfStr2(e);return t.#S(s),t.#x(s,a)}static#bt(e,r){const{kvjoin:a}=r;let s=getJsonParseOfStr2(e);t.#S(s);const n=Array.from(Object.entries(s)).map(t=>t.join(a));return JSON.stringify(n)}static#vt(t,e){const{str:r,equal:a}=e;const s=findStrInObj(getJsonParseOfStr2(t),r,"",a);return s.length>0?s.map(t=>`${t[0]}: ${JSON.stringify(t[1])}`).join("\n"):""}static#wt(e){let r=getJsonParseOfStr2(e);t.#S(r);const a=Array.from(Object.keys(r));return JSON.stringify(a)}static#St(e,r){let a=getJsonParseOfStr2(e);t.#S(a);for(const e of Object.keys(a))"string"==typeof a[e]&&(a[e]=t.#L(a[e],r));return JSON.stringify(a)}static#kt(e,r){let a=getJsonParseOfStr2(e);t.#S(a);for(const e of Object.keys(a))"string"==typeof a[e]&&(a[e]=t.#q(a[e],r));return JSON.stringify(a)}static#xt(e,r){const{valtype:a,sorttype:s}=r;let n=getJsonParseOfStr2(e);t.#S(n);const i=Array.from(Object.keys(n)),o=t.#X(i,a,s),c={};return o.forEach(t=>c[t]=n[t]),JSON.stringify(c)}static#Et(e){let r=getJsonParseOfStr2(e);t.#S(r);const a=Array.from(Object.values(r));return JSON.stringify(a)}static#At(t,e,r=0){try{const a="root"===e?t.root():t(e);return a.length<=0||-9999===r?a:a.eq(r)}catch(t){return logerr("##te cheerio invalid $ or loc"),null}}static#Ot(e,r){try{const{loc:a,idx:s,attrname:n,xml:i,decode:o}=r,c=parseInt(s),l={xmlMode:i,decodeEntities:o},p=cheerio.load(e,l);return t.#At(p,a,c).attr(n)}catch(t){return logerr(`##tmp cheerio xAttr err: ${t}`),""}}static#It(e,r){try{const{loc:a,idx:s,attrname:n,xml:i,decode:o}=r,c=parseInt(s),l={xmlMode:i,decodeEntities:o},p=cheerio.load(e,l);return t.#At(p,a,c).data(n)}catch(t){return logerr(`##tmp cheerio xData err: ${t}`),""}}static#_t(t,e){try{const{loc:r,xml:a,decode:s}=e,n={xmlMode:a,decodeEntities:s},i=cheerio.load(t,n);return i(r).empty(),i.html()}catch(e){return logerr(`##tmp cheerio xEmpty err: ${e}`),t}}static#Tt(e,r){try{const{loc:a,idx:s,xml:n,decode:i}=r,o=parseInt(s),c={xmlMode:n,decodeEntities:i},l=cheerio.load(e,c);if(a){return t.#At(l,a,o).html()}return l.html()}catch(t){return logerr(`##tmp cheerio xHtml err: ${t}`),""}}static#Dt(e,r){try{const{loc:a,xml:s,decode:n}=r,i=-9999,o={xmlMode:s,decodeEntities:n},c=cheerio.load(e,o),l=t.#At(c,a,i);return String(l.length)}catch(t){return logerr(`##tmp cheerio xLength err: ${t}`),"0"}}static#Pt(t,e){try{const{loc:r,xml:a,decode:s}=e,n={xmlMode:a,decodeEntities:s},i=cheerio.load(t,n);return i(r).remove(),i.html()}catch(e){return logerr(`##tmp cheerio xRemove err: ${e}`),t}}static#Nt(e,r){try{const{loc:a,idx:s,xml:n,decode:i}=r,o=parseInt(s),c={xmlMode:n,decodeEntities:i},l=cheerio.load(e,c);if(a){return t.#At(l,a,o).text()}return l.text()}catch(t){return logerr(`##tmp cheerio c_text err: ${t}`),""}}static#Rt(t,e){const{idx:r}=e,a=parseInt(r),s=t.at(a);return s||""}static#Ft(t,e){const{openchar:r,startstr:a,regexp:s,flags:n,position:i}=e;if("string"!=typeof t||"string"!=typeof r||!["{","[","(","lt"].includes(r)||"string"!=typeof a||"number"!=typeof parseInt(i)||parseInt(i)<0)return"";const o="lt"===r?"<":r,c={"{":"}","[":"]","(":")","<":">"}[o];let l=1,p=-1;if(a){if(s){const e=new RegExp(a,n),r=t.match(e);if(!r||1!==r.length||void 0===r.index)return"";p=r.index}else p=t.indexOf(a);if(p<0)return""}else p=parseInt(i);const g=t.indexOf(o,p);if(g<0)return"";let h=g+1;for(;h<t.length;h++){let e=t[h];if(e===o)l++;else if(e===c&&(l--,0===l))break}const f=h<=t.length?h+1:-1;return f>g?t.substring(g,f):""}static#jt(t,e){return t||e?void 0:{}}static#Lt(e,r){try{const{method:a,sourceencoding:s,targetencoding:n}=r,i=t.#jt(r,!0),o=Buffer.from(e,s);let c=null;return"gzip"===a?c=zlib.gzipSync(o,i):"deflate"===a?c=zlib.deflateSync(o,i):"deflateraw"===a?c=zlib.deflateRawSync(o,i):"brotli"===a&&(c=zlib.brotliCompressSync(o,i)),c?t.#$t(c,n):""}catch(t){return""}}static#Mt(t,e){let r=t;const{str1:a,str2:s,str3:n,str4:i,str5:o}=e;return[a,s,n,i,o].forEach(t=>{"string"==typeof t&&(r=r.concat(t))}),r}static#$t(t,e,r="0",a="0"){const s=r?Number(r):0,n=a?Number(a):0;return t instanceof Buffer?n>0?t.toString(e,s,n):s>0?t.toString(e,s):t.toString(e):""}static#Ut(e,r){const{sourceencoding:a,targetencoding:s,start:n,end:i}=r;try{if(a===s||!a||!s)return e;const r=Buffer.from(e,a);return t.#$t(r,s,n,i)}catch(t){return""}}static#Jt(t,e){const{str1:r,val1:a,str2:s,val2:n,str3:i,val3:o,str4:c,val4:l,str5:p,val5:g,defaultval:h}=e;try{return t===r?a:t===s?n:t===i?o:t===c?l:t===p?g:h}catch(t){return""}}static#Ht(e,r){try{const{method:a,sourceencoding:s,targetencoding:n,start:i,end:o}=r,c=t.#jt(r,!1),l=Buffer.from(e,s);let p=Buffer.from(e,s);return"gunzip"===a?p=zlib.gunzipSync(l,c):"inflate"===a?p=zlib.inflateSync(l,c):"inflateraw"===a?p=zlib.inflateRawSync(l,c):"unzip"===a?p=zlib.unzipSync(l,c):"brotli"===a&&(p=zlib.brotliDecompressSync(l,c)),p?t.#$t(p,n,i,o):""}catch(t){return""}}static#qt(t,e){const{str:r}=e;return t.endsWith(r)?"1":"0"}static#Bt(t,e){const{str:r}=e;return t===r?"1":"0"}static#Vt(t,e){const{hashmethod:r}=e;return LsdUrl.getHashCode(t,r)}static#Wt(t,e){const{str:r}=e;if("string"!=typeof r)throw new Error("Invalid searchstr in _contains");return t.includes(r)?"1":"0"}static#Kt(t,e){const{str:r,position:a}=e;if("string"!=typeof r)throw new Error("Invalid str in _insert");return String(t.indexOf(r,parseInt(a)))}static#Gt(t,e){const{str:r}=e;if("string"!=typeof r)throw new Error("Invalid str in _insert");return r+t}static#zt(t,e){const{items:r}=e;if("string"!=typeof r)throw new Error("Invalid str in _isin");if(!r)return"0";return r.split(",").includes(t)?"1":"0"}static#Yt(t,e){const{split:r,kvsplit:a,keytrim:s,keynows:n,valuetrim:i,valuenows:o}=e;if(!r||!a)return"{}";try{let e={};const c=t.split(new RegExp(r)),l=new RegExp(a);for(const t of c){const r=t.split(l);if(2!==r.length)continue;let a=s?r[0].trim():r[0];n&&(a=a.split("").filter(t=>t.trim()).join(""));let c=i?r[1].trim():r[1];o&&(c=c.split("").filter(t=>t.trim()).join("")),a&&(e[a]=c)}return JSON.stringify(e)}catch(t){return"{}"}}static#Xt(t){return String(t.length)}static#L(t,e){const{pattern:r,flags:a,idx:s}=e,n=e.resulttype,i=new RegExp(r,a),o=t.match(i);if("boolean"===n)return o?"1":"0";if(!o)return"";if("all"===n)return o.join(",");if("array"===n)return JSON.stringify(o);if("idx"===n){const t=parseInt(s);return o[t]?String(o[t]):""}return"index"===n?"number"==typeof o.index?String(o.index):"":"length"===n?String(o.length):void unreachable(n)}static#Qt(t){return t.normalize()}static#Zt(t){return t&&"0"!==t&&"false"!==t.toLowerCase()?"0":"1"}static#te(t,e){const{targetlen:r,padstr:a}=e,s=parseInt(r),n="string"==typeof a&&a.length>0?a:" ";return t.padEnd(s,n)}static#ee(t,e){const{targetlen:r,padstr:a}=e,s=parseInt(r),n="string"==typeof a&&a.length>0?a:" ";return t.padStart(s,n)}static#re(t){const e=getJsonParseOfStr2(t);return"string"==typeof e?e:""}static#q(t,e){const{substr:r,newstr:a,regexp:s,flags:n}=e;try{if("string"!=typeof r)throw new Error("Invalid substr in _replace");if("string"!=typeof a)throw new Error("Invalid newstr in _replace");return s?t.replace(RegExp(r,n),a):t.replace(r,a)}catch(e){return t}}static#ae(t,e){const{pattern:r}=e,a=new RegExp(r);return String(t.search(a))}static#se(t,e){const{beginidx:r,len:a,endidx:s}=e,n=parseInt(r);let i="string"==typeof s&&s.length>0?parseInt(s):void 0;const o="string"==typeof a&&a.length>0?parseInt(a):void 0;return o&&o>0&&(i=n+o),t.slice(n,i)}static#ne(e,r){let a=e;try{const{method:s}=r;return"function"==typeof t.specialConvertFunObj[s]&&(a=t.specialConvertFunObj[s](e,r)),a}catch(t){return a}}static#ie(e,r){const{split:a,limit:s}=r,n=new RegExp(a),i=parseInt(s);let o=i>0?e.split(n,i):e.split(n);return t.#w(o),JSON.stringify(o)}static#oe(t,e){const{str:r}=e;return t.startsWith(r)?"1":"0"}static#ce(t,e){const{substr:r,regexp:a,flags:s,position:n,last:i,include:o}=e,c=o,l=parseInt(n);if("string"!=typeof r)throw new Error("Invalid substr in _substrAfter");let p=-1,g=r;if(a){const e=new RegExp(r,s),a=t.match(e);if(!a||1!==a.length||void 0===a.index)return t;p=a.index,g=a[0]}else p=i?l?t.lastIndexOf(r,l):t.lastIndexOf(r):l?t.indexOf(r,l):t.indexOf(r);return p<0?t:String(c?t.substring(p):t.substring(p+g.length))}static#le(t,e){const{substr:r,regexp:a,flags:s,position:n,last:i,include:o}=e,c=parseInt(n),l=o;if("string"!=typeof r)throw new Error("Invalid substr in substrBefore");let p=-1,g=r;if(a){const e=new RegExp(r,s),a=t.match(e);if(!a||1!==a.length||void 0===a.index)return t;p=a.index,g=a[0]}else p=i?c?t.lastIndexOf(r,c):t.lastIndexOf(r):c?t.indexOf(r,c):t.indexOf(r);return p<0?t:l?t.substring(0,p+g.length):t.substring(0,p)}static#pe(t){try{return String(BigInt(t))}catch(t){return""}}static#ge(t){try{let e=t.replace(/true/g,"1");return e=e.replace(/false/g,"0"),e.search(/^[\s\d.+\-*/()<>=!|&:?]*$/)>-1&&-1===e.search(/=>/)?String(Number(Boolean((0,eval)(e)))):(loginfo(`Invalid logic expression ${t} in _toBool`),"0")}catch(t){return"0"}}static#he(t){return t.toLowerCase()}static#fe(t){let e=t;return e.search(/^[\s\d.+\-*/()<>=!|&:?]+$/)>-1&&-1===e.search(/=>/)&&e.trim().length>0?String(Number((0,eval)(e))):(loginfo(`Invalid arithmetic expression ${e} in _toNum`),"0")}static#de(t){return t.toUpperCase()}static#ue(t){return t.trim()}static#me(t){return t.trimEnd()}static#ye(t){return t.trimStart()}static#Ce(t,e){try{const{method:r,encoding:a,percent:s}=e;if("URI"===r)return encodeURI(t);if("URIComponent"===r)return encodeURIComponent(t);if("iconv"===r){const e=iconv.encode(t,a).toString("hex").toUpperCase();if(!e||e.length%2!=0)return logerr("Invalid str length in _urlencode"),"";if(s){const t=e.match(/../g);return t?t.map(t=>`%${t}`).join(""):""}return e}return logerr(`Invalid method ${r} in _urlencode`),""}catch(t){return logerr(t),""}}static#be(t,e){try{const{method:r,encoding:a,percent:s}=e;if("URI"===r)return decodeURI(t);if("URIComponent"===r)return decodeURIComponent(t);if("iconv"===r){const e=s?/.../g:/../g,r=t.match(e);if(!r)return"";const n=r.map(t=>parseInt(t.slice(1),16));return iconv.decode(Buffer.from(n),a)}return logerr(`Invalid method ${r} in _urlencode`),""}catch(t){return logerr(t),""}}static#ve(t,e){const{param1:r,param2:a,param3:s}=e;if("string"!=typeof r)throw new Error("Invalid params in _urldel");let n="";try{const e=new URL(t);if(!e||!e.searchParams||!e.searchParams.delete)return"";r&&e.searchParams.delete(r),a&&e.searchParams.delete(a),s&&e.searchParams.delete(s),n=e.href}catch(t){n=""}return n||""}static#we(t,e){const{attrorpath:r,hashmethod:a,param:s,hostnameparts:n,params:i,title:o,extname:c,validextnames:l}=e;if("string"!=typeof r)throw new Error("Invalid attr in _urlget");const p=n?Number(n):0;let g="";return g=["href","origin","protocol","username","password","host","search","hash","hostname","port","hrefwithoutsearch","param"].includes(r)?LsdUrl.getUrlAttribute(t,r,p,s):LsdUrl.getFilePathFromUrl(t,r,a,p,i,c,l,o),"string"==typeof g?g:""}static#Se(t,e,r,a){if(!t||!t.searchParams||!t.searchParams.get||"string"!=typeof e||"string"!=typeof r)return!1;if(!e)return!0;if(!a){if(null!==t.searchParams.get(e))return!0}return t.searchParams.set(e,r),!0}static#ke(e,r){const{param1:a,val1:s,param2:n,val2:i,param3:o,val3:c,replace:l}=r,p=l;if("string"!=typeof a)throw new Error("Invalid params in _urlset");let g="";try{const r=new URL(e);t.#Se(r,a,s,p),t.#Se(r,n,i,p),t.#Se(r,o,c,p),g=r.href}catch(t){g=""}return g||""}static async#v(t,e,r){const{name:a,arg1:s,arg2:n,arg3:i,arg4:o,arg5:c}=e;try{const e={origStr:t,arg1:s,arg2:n,arg3:i,arg4:o,arg5:c};return await LsdScript.execFunScript(e,a,r)}catch(t){return""}}static#b={a_at:t.#E,a_concat:t.#A,a_every:t.#O,a_filter:t.#I,a_find:t.#_,a_findindex:t.#T,a_includes:t.#D,a_indexof:t.#P,a_join:t.#N,a_length:t.#R,a_mapattr:t.#F,a_match:t.#j,a_max:t.#$,a_min:t.#M,a_pop:t.#U,a_push:t.#J,a_replace:t.#H,a_setcomplement:t.#B,a_setdifference:t.#V,a_setintersection:t.#W,a_setunion:t.#K,a_shift:t.#G,a_shuffle:t.#z,a_slice:t.#Y,a_sort:t.#Q,a_toobj:t.#Z,a_uniq:t.#tt,a_unshift: