@transai/connector-runner-file 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/index.cjs +1 -1
- package/index.cjs.map +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/index.cjs
CHANGED
|
@@ -285,7 +285,7 @@ Actual: `+P.attribValue);else if(j==="xmlns"&&P.attribValue!==f)B(P,"xmlns: pref
|
|
|
285
285
|
Actual: `+P.attribValue);else{var Be=P.tag,yt=P.tags[P.tags.length-1]||P;Be.ns===yt.ns&&(Be.ns=Object.create(yt.ns)),Be.ns[j]=P.attribValue}P.attribList.push([P.attribName,P.attribValue])}else P.tag.attributes[P.attribName]=P.attribValue,N(P,"onattribute",{name:P.attribName,value:P.attribValue});P.attribName=P.attribValue=""}function ve(P,T){if(P.opt.xmlns){var K=P.tag,j=ge(P.tagName);K.prefix=j.prefix,K.local=j.local,K.uri=K.ns[j.prefix]||"",K.prefix&&!K.uri&&(B(P,"Unbound namespace prefix: "+JSON.stringify(P.tagName)),K.uri=j.prefix);var Be=P.tags[P.tags.length-1]||P;K.ns&&Be.ns!==K.ns&&Object.keys(K.ns).forEach(function(ra){N(P,"onopennamespace",{prefix:ra,uri:K.ns[ra]})});for(var yt=0,ft=P.attribList.length;yt<ft;yt++){var wt=P.attribList[yt],Dt=wt[0],Ur=wt[1],Tt=ge(Dt,!0),gr=Tt.prefix,Qi=Tt.local,ta=gr===""?"":K.ns[gr]||"",Pi={name:Dt,value:Ur,prefix:gr,local:Qi,uri:ta};gr&&gr!=="xmlns"&&!ta&&(B(P,"Unbound namespace prefix: "+JSON.stringify(gr)),Pi.uri=gr),P.tag.attributes[Dt]=Pi,N(P,"onattribute",Pi)}P.attribList.length=0}P.tag.isSelfClosing=!!T,P.sawRoot=!0,P.tags.push(P.tag),N(P,"onopentag",P.tag),T||(!P.noscript&&P.tagName.toLowerCase()==="script"?P.state=A.SCRIPT:P.state=A.TEXT,P.tag=null,P.tagName=""),P.attribName=P.attribValue="",P.attribList.length=0}function Ze(P){if(!P.tagName){B(P,"Weird empty close tag."),P.textNode+="</>",P.state=A.TEXT;return}if(P.script){if(P.tagName!=="script"){P.script+="</"+P.tagName+">",P.tagName="",P.state=A.SCRIPT;return}N(P,"onscript",P.script),P.script=""}var T=P.tags.length,K=P.tagName;P.strict||(K=K[P.looseCase]());for(var j=K;T--;){var Be=P.tags[T];if(Be.name!==j)B(P,"Unexpected close tag");else break}if(T<0){B(P,"Unmatched closing tag: "+P.tagName),P.textNode+="</"+P.tagName+">",P.state=A.TEXT;return}P.tagName=K;for(var yt=P.tags.length;yt-- >T;){var ft=P.tag=P.tags.pop();P.tagName=P.tag.name,N(P,"onclosetag",P.tagName);var wt={};for(var Dt in ft.ns)wt[Dt]=ft.ns[Dt];var Ur=P.tags[P.tags.length-1]||P;P.opt.xmlns&&ft.ns!==Ur.ns&&Object.keys(ft.ns).forEach(function(Tt){var gr=ft.ns[Tt];N(P,"onclosenamespace",{prefix:Tt,uri:gr})})}T===0&&(P.closedRoot=!0),P.tagName=P.attribValue=P.attribName="",P.attribList.length=0,P.state=A.TEXT}function at(P){var T=P.entity,K=T.toLowerCase(),j,Be="";return P.ENTITIES[T]?P.ENTITIES[T]:P.ENTITIES[K]?P.ENTITIES[K]:(T=K,T.charAt(0)==="#"&&(T.charAt(1)==="x"?(T=T.slice(2),j=parseInt(T,16),Be=j.toString(16)):(T=T.slice(1),j=parseInt(T,10),Be=j.toString(10))),T=T.replace(/^0+/,""),isNaN(j)||Be.toLowerCase()!==T||j<0||j>1114111?(B(P,"Invalid character entity"),"&"+P.entity+";"):String.fromCodePoint(j))}function G(P,T){T==="<"?(P.state=A.OPEN_WAKA,P.startTagPosition=P.position):v(T)||(B(P,"Non-whitespace before first tag."),P.textNode=T,P.state=A.TEXT)}function ce(P,T){var K="";return T<P.length&&(K=P.charAt(T)),K}function Se(P){var T=this;if(this.error)throw this.error;if(T.closed)return ie(T,"Cannot write after close. Assign an onready handler.");if(P===null)return be(T);typeof P=="object"&&(P=P.toString());for(var K=0,j="";j=ce(P,K++),T.c=j,!!j;)switch(T.trackPosition&&(T.position++,j===`
|
|
286
286
|
`?(T.line++,T.column=0):T.column++),T.state){case A.BEGIN:if(T.state=A.BEGIN_WHITESPACE,j==="\uFEFF")continue;G(T,j);continue;case A.BEGIN_WHITESPACE:G(T,j);continue;case A.TEXT:if(T.sawRoot&&!T.closedRoot){for(var yt=K-1;j&&j!=="<"&&j!=="&";)j=ce(P,K++),j&&T.trackPosition&&(T.position++,j===`
|
|
287
287
|
`?(T.line++,T.column=0):T.column++);T.textNode+=P.substring(yt,K-1)}j==="<"&&!(T.sawRoot&&T.closedRoot&&!T.strict)?(T.state=A.OPEN_WAKA,T.startTagPosition=T.position):(!v(j)&&(!T.sawRoot||T.closedRoot)&&B(T,"Text data outside of root node."),j==="&"?T.state=A.TEXT_ENTITY:T.textNode+=j);continue;case A.SCRIPT:j==="<"?T.state=A.SCRIPT_ENDING:T.script+=j;continue;case A.SCRIPT_ENDING:j==="/"?T.state=A.CLOSE_TAG:(T.script+="<"+j,T.state=A.SCRIPT);continue;case A.OPEN_WAKA:if(j==="!")T.state=A.SGML_DECL,T.sgmlDecl="";else if(!v(j))if(O(m,j))T.state=A.OPEN_TAG,T.tagName=j;else if(j==="/")T.state=A.CLOSE_TAG,T.tagName="";else if(j==="?")T.state=A.PROC_INST,T.procInstName=T.procInstBody="";else{if(B(T,"Unencoded <"),T.startTagPosition+1<T.position){var Be=T.position-T.startTagPosition;j=new Array(Be).join(" ")+j}T.textNode+="<"+j,T.state=A.TEXT}continue;case A.SGML_DECL:if(T.sgmlDecl+j==="--"){T.state=A.COMMENT,T.comment="",T.sgmlDecl="";continue}T.doctype&&T.doctype!==!0&&T.sgmlDecl?(T.state=A.DOCTYPE_DTD,T.doctype+="<!"+T.sgmlDecl+j,T.sgmlDecl=""):(T.sgmlDecl+j).toUpperCase()===l?(N(T,"onopencdata"),T.state=A.CDATA,T.sgmlDecl="",T.cdata=""):(T.sgmlDecl+j).toUpperCase()===d?(T.state=A.DOCTYPE,(T.doctype||T.sawRoot)&&B(T,"Inappropriately located doctype declaration"),T.doctype="",T.sgmlDecl=""):j===">"?(N(T,"onsgmldeclaration",T.sgmlDecl),T.sgmlDecl="",T.state=A.TEXT):(y(j)&&(T.state=A.SGML_DECL_QUOTED),T.sgmlDecl+=j);continue;case A.SGML_DECL_QUOTED:j===T.q&&(T.state=A.SGML_DECL,T.q=""),T.sgmlDecl+=j;continue;case A.DOCTYPE:j===">"?(T.state=A.TEXT,N(T,"ondoctype",T.doctype),T.doctype=!0):(T.doctype+=j,j==="["?T.state=A.DOCTYPE_DTD:y(j)&&(T.state=A.DOCTYPE_QUOTED,T.q=j));continue;case A.DOCTYPE_QUOTED:T.doctype+=j,j===T.q&&(T.q="",T.state=A.DOCTYPE);continue;case A.DOCTYPE_DTD:j==="]"?(T.doctype+=j,T.state=A.DOCTYPE):j==="<"?(T.state=A.OPEN_WAKA,T.startTagPosition=T.position):y(j)?(T.doctype+=j,T.state=A.DOCTYPE_DTD_QUOTED,T.q=j):T.doctype+=j;continue;case A.DOCTYPE_DTD_QUOTED:T.doctype+=j,j===T.q&&(T.state=A.DOCTYPE_DTD,T.q="");continue;case A.COMMENT:j==="-"?T.state=A.COMMENT_ENDING:T.comment+=j;continue;case A.COMMENT_ENDING:j==="-"?(T.state=A.COMMENT_ENDED,T.comment=U(T.opt,T.comment),T.comment&&N(T,"oncomment",T.comment),T.comment=""):(T.comment+="-"+j,T.state=A.COMMENT);continue;case A.COMMENT_ENDED:j!==">"?(B(T,"Malformed comment"),T.comment+="--"+j,T.state=A.COMMENT):T.doctype&&T.doctype!==!0?T.state=A.DOCTYPE_DTD:T.state=A.TEXT;continue;case A.CDATA:for(var yt=K-1;j&&j!=="]";)j=ce(P,K++),j&&T.trackPosition&&(T.position++,j===`
|
|
288
|
-
`?(T.line++,T.column=0):T.column++);T.cdata+=P.substring(yt,K-1),j==="]"&&(T.state=A.CDATA_ENDING);continue;case A.CDATA_ENDING:j==="]"?T.state=A.CDATA_ENDING_2:(T.cdata+="]"+j,T.state=A.CDATA);continue;case A.CDATA_ENDING_2:j===">"?(T.cdata&&N(T,"oncdata",T.cdata),N(T,"onclosecdata"),T.cdata="",T.state=A.TEXT):j==="]"?T.cdata+="]":(T.cdata+="]]"+j,T.state=A.CDATA);continue;case A.PROC_INST:j==="?"?T.state=A.PROC_INST_ENDING:v(j)?T.state=A.PROC_INST_BODY:T.procInstName+=j;continue;case A.PROC_INST_BODY:if(!T.procInstBody&&v(j))continue;j==="?"?T.state=A.PROC_INST_ENDING:T.procInstBody+=j;continue;case A.PROC_INST_ENDING:j===">"?(N(T,"onprocessinginstruction",{name:T.procInstName,body:T.procInstBody}),T.procInstName=T.procInstBody="",T.state=A.TEXT):(T.procInstBody+="?"+j,T.state=A.PROC_INST_BODY);continue;case A.OPEN_TAG:O(_,j)?T.tagName+=j:(te(T),j===">"?ve(T):j==="/"?T.state=A.OPEN_TAG_SLASH:(v(j)||B(T,"Invalid character in tag name"),T.state=A.ATTRIB));continue;case A.OPEN_TAG_SLASH:j===">"?(ve(T,!0),Ze(T)):(B(T,"Forward-slash in opening tag not followed by >"),T.state=A.ATTRIB);continue;case A.ATTRIB:if(v(j))continue;j===">"?ve(T):j==="/"?T.state=A.OPEN_TAG_SLASH:O(m,j)?(T.attribName=j,T.attribValue="",T.state=A.ATTRIB_NAME):B(T,"Invalid attribute name");continue;case A.ATTRIB_NAME:j==="="?T.state=A.ATTRIB_VALUE:j===">"?(B(T,"Attribute without value"),T.attribValue=T.attribName,$(T),ve(T)):v(j)?T.state=A.ATTRIB_NAME_SAW_WHITE:O(_,j)?T.attribName+=j:B(T,"Invalid attribute name");continue;case A.ATTRIB_NAME_SAW_WHITE:if(j==="=")T.state=A.ATTRIB_VALUE;else{if(v(j))continue;B(T,"Attribute without value"),T.tag.attributes[T.attribName]="",T.attribValue="",N(T,"onattribute",{name:T.attribName,value:""}),T.attribName="",j===">"?ve(T):O(m,j)?(T.attribName=j,T.state=A.ATTRIB_NAME):(B(T,"Invalid attribute name"),T.state=A.ATTRIB)}continue;case A.ATTRIB_VALUE:if(v(j))continue;y(j)?(T.q=j,T.state=A.ATTRIB_VALUE_QUOTED):(T.opt.unquotedAttributeValues||ie(T,"Unquoted attribute value"),T.state=A.ATTRIB_VALUE_UNQUOTED,T.attribValue=j);continue;case A.ATTRIB_VALUE_QUOTED:if(j!==T.q){j==="&"?T.state=A.ATTRIB_VALUE_ENTITY_Q:T.attribValue+=j;continue}$(T),T.q="",T.state=A.ATTRIB_VALUE_CLOSED;continue;case A.ATTRIB_VALUE_CLOSED:v(j)?T.state=A.ATTRIB:j===">"?ve(T):j==="/"?T.state=A.OPEN_TAG_SLASH:O(m,j)?(B(T,"No whitespace between attributes"),T.attribName=j,T.attribValue="",T.state=A.ATTRIB_NAME):B(T,"Invalid attribute name");continue;case A.ATTRIB_VALUE_UNQUOTED:if(!S(j)){j==="&"?T.state=A.ATTRIB_VALUE_ENTITY_U:T.attribValue+=j;continue}$(T),j===">"?ve(T):T.state=A.ATTRIB;continue;case A.CLOSE_TAG:if(T.tagName)j===">"?Ze(T):O(_,j)?T.tagName+=j:T.script?(T.script+="</"+T.tagName,T.tagName="",T.state=A.SCRIPT):(v(j)||B(T,"Invalid tagname in closing tag"),T.state=A.CLOSE_TAG_SAW_WHITE);else{if(v(j))continue;M(m,j)?T.script?(T.script+="</"+j,T.state=A.SCRIPT):B(T,"Invalid tagname in closing tag."):T.tagName=j}continue;case A.CLOSE_TAG_SAW_WHITE:if(v(j))continue;j===">"?Ze(T):B(T,"Invalid characters in closing tag");continue;case A.TEXT_ENTITY:case A.ATTRIB_VALUE_ENTITY_Q:case A.ATTRIB_VALUE_ENTITY_U:var ft,wt;switch(T.state){case A.TEXT_ENTITY:ft=A.TEXT,wt="textNode";break;case A.ATTRIB_VALUE_ENTITY_Q:ft=A.ATTRIB_VALUE_QUOTED,wt="attribValue";break;case A.ATTRIB_VALUE_ENTITY_U:ft=A.ATTRIB_VALUE_UNQUOTED,wt="attribValue";break}if(j===";"){var Dt=at(T);T.opt.unparsedEntities&&!Object.values(e.XML_ENTITIES).includes(Dt)?(T.entity="",T.state=ft,T.write(Dt)):(T[wt]+=Dt,T.entity="",T.state=ft)}else O(T.entity.length?R:w,j)?T.entity+=j:(B(T,"Invalid character in entity name"),T[wt]+="&"+T.entity+j,T.entity="",T.state=ft);continue;default:throw new Error(T,"Unknown state: "+T.state)}return T.position>=T.bufferCheckPosition&&n(T),T}String.fromCodePoint||(function(){var P=String.fromCharCode,T=Math.floor,K=function(){var j=16384,Be=[],yt,ft,wt=-1,Dt=arguments.length;if(!Dt)return"";for(var Ur="";++wt<Dt;){var Tt=Number(arguments[wt]);if(!isFinite(Tt)||Tt<0||Tt>1114111||T(Tt)!==Tt)throw RangeError("Invalid code point: "+Tt);Tt<=65535?Be.push(Tt):(Tt-=65536,yt=(Tt>>10)+55296,ft=Tt%1024+56320,Be.push(yt,ft)),(wt+1===Dt||Be.length>j)&&(Ur+=P.apply(null,Be),Be.length=0)}return Ur};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:K,configurable:!0,writable:!0}):String.fromCodePoint=K})()})(typeof Nx>"u"?Nx.sax={}:Nx)});var ade=E(bL=>{"use strict";(function(){"use strict";bL.stripBOM=function(e){return e[0]==="\uFEFF"?e.substring(1):e}}).call(bL)});var EL=E(nl=>{"use strict";(function(){"use strict";var e;e=new RegExp(/(?!xmlns)^.*:/),nl.normalize=function(t){return t.toLowerCase()},nl.firstCharLowerCase=function(t){return t.charAt(0).toLowerCase()+t.slice(1)},nl.stripPrefix=function(t){return t.replace(e,"")},nl.parseNumbers=function(t){return isNaN(t)||(t=t%1===0?parseInt(t,10):parseFloat(t)),t},nl.parseBooleans=function(t){return/^(?:true|false)$/i.test(t)&&(t=t.toLowerCase()==="true"),t}}).call(nl)});var cde=E(Zs=>{"use strict";(function(){"use strict";var e,t,r,n,i,o,s,a,c,u=function(h,f){return function(){return h.apply(f,arguments)}},l=function(h,f){for(var p in f)d.call(f,p)&&(h[p]=f[p]);function m(){this.constructor=h}return m.prototype=f.prototype,h.prototype=new m,h.__super__=f.prototype,h},d={}.hasOwnProperty;a=sde(),n=require("events"),e=ade(),s=EL(),c=require("timers").setImmediate,t=bx().defaults,i=function(h){return typeof h=="object"&&h!=null&&Object.keys(h).length===0},o=function(h,f,p){var m,_,w;for(m=0,_=h.length;m<_;m++)w=h[m],f=w(f,p);return f},r=function(h,f,p){var m;return m=Object.create(null),m.value=p,m.writable=!0,m.enumerable=!0,m.configurable=!0,Object.defineProperty(h,f,m)},Zs.Parser=(function(h){l(f,h);function f(p){this.parseStringPromise=u(this.parseStringPromise,this),this.parseString=u(this.parseString,this),this.reset=u(this.reset,this),this.assignOrPush=u(this.assignOrPush,this),this.processAsync=u(this.processAsync,this);var m,_,w;if(!(this instanceof Zs.Parser))return new Zs.Parser(p);this.options={},_=t["0.2"];for(m in _)d.call(_,m)&&(w=_[m],this.options[m]=w);for(m in p)d.call(p,m)&&(w=p[m],this.options[m]=w);this.options.xmlns&&(this.options.xmlnskey=this.options.attrkey+"ns"),this.options.normalizeTags&&(this.options.tagNameProcessors||(this.options.tagNameProcessors=[]),this.options.tagNameProcessors.unshift(s.normalize)),this.reset()}return f.prototype.processAsync=function(){var p,m;try{return this.remaining.length<=this.options.chunkSize?(p=this.remaining,this.remaining="",this.saxParser=this.saxParser.write(p),this.saxParser.close()):(p=this.remaining.substr(0,this.options.chunkSize),this.remaining=this.remaining.substr(this.options.chunkSize,this.remaining.length),this.saxParser=this.saxParser.write(p),c(this.processAsync))}catch(_){if(m=_,!this.saxParser.errThrown)return this.saxParser.errThrown=!0,this.emit(m)}},f.prototype.assignOrPush=function(p,m,_){return m in p?(p[m]instanceof Array||r(p,m,[p[m]]),p[m].push(_)):this.options.explicitArray?r(p,m,[_]):r(p,m,_)},f.prototype.reset=function(){var p,m,_,w;return this.removeAllListeners(),this.saxParser=a.parser(this.options.strict,{trim:!1,normalize:!1,xmlns:this.options.xmlns}),this.saxParser.errThrown=!1,this.saxParser.onerror=(function(R){return function(v){if(R.saxParser.resume(),!R.saxParser.errThrown)return R.saxParser.errThrown=!0,R.emit("error",v)}})(this),this.saxParser.onend=(function(R){return function(){if(!R.saxParser.ended)return R.saxParser.ended=!0,R.emit("end",R.resultObject)}})(this),this.saxParser.ended=!1,this.EXPLICIT_CHARKEY=this.options.explicitCharkey,this.resultObject=null,w=[],p=this.options.attrkey,m=this.options.charkey,this.saxParser.onopentag=(function(R){return function(v){var y,S,O,M,A;if(O={},O[m]="",!R.options.ignoreAttrs){A=v.attributes;for(y in A)d.call(A,y)&&(!(p in O)&&!R.options.mergeAttrs&&(O[p]={}),S=R.options.attrValueProcessors?o(R.options.attrValueProcessors,v.attributes[y],y):v.attributes[y],M=R.options.attrNameProcessors?o(R.options.attrNameProcessors,y):y,R.options.mergeAttrs?R.assignOrPush(O,M,S):r(O[p],M,S))}return O["#name"]=R.options.tagNameProcessors?o(R.options.tagNameProcessors,v.name):v.name,R.options.xmlns&&(O[R.options.xmlnskey]={uri:v.uri,local:v.local}),w.push(O)}})(this),this.saxParser.onclosetag=(function(R){return function(){var v,y,S,O,M,A,D,I,N,J;if(A=w.pop(),M=A["#name"],(!R.options.explicitChildren||!R.options.preserveChildrenOrder)&&delete A["#name"],A.cdata===!0&&(v=A.cdata,delete A.cdata),N=w[w.length-1],A[m].match(/^\s*$/)&&!v?(y=A[m],delete A[m]):(R.options.trim&&(A[m]=A[m].trim()),R.options.normalize&&(A[m]=A[m].replace(/\s{2,}/g," ").trim()),A[m]=R.options.valueProcessors?o(R.options.valueProcessors,A[m],M):A[m],Object.keys(A).length===1&&m in A&&!R.EXPLICIT_CHARKEY&&(A=A[m])),i(A)&&(typeof R.options.emptyTag=="function"?A=R.options.emptyTag():A=R.options.emptyTag!==""?R.options.emptyTag:y),R.options.validator!=null&&(J="/"+(function(){var U,ie,be;for(be=[],U=0,ie=w.length;U<ie;U++)O=w[U],be.push(O["#name"]);return be})().concat(M).join("/"),(function(){var U;try{return A=R.options.validator(J,N&&N[M],A)}catch(ie){return U=ie,R.emit("error",U)}})()),R.options.explicitChildren&&!R.options.mergeAttrs&&typeof A=="object"){if(!R.options.preserveChildrenOrder)O={},R.options.attrkey in A&&(O[R.options.attrkey]=A[R.options.attrkey],delete A[R.options.attrkey]),!R.options.charsAsChildren&&R.options.charkey in A&&(O[R.options.charkey]=A[R.options.charkey],delete A[R.options.charkey]),Object.getOwnPropertyNames(A).length>0&&(O[R.options.childkey]=A),A=O;else if(N){N[R.options.childkey]=N[R.options.childkey]||[],D={};for(S in A)d.call(A,S)&&r(D,S,A[S]);N[R.options.childkey].push(D),delete A["#name"],Object.keys(A).length===1&&m in A&&!R.EXPLICIT_CHARKEY&&(A=A[m])}}return w.length>0?R.assignOrPush(N,M,A):(R.options.explicitRoot&&(I=A,A={},r(A,M,I)),R.resultObject=A,R.saxParser.ended=!0,R.emit("end",R.resultObject))}})(this),_=(function(R){return function(v){var y,S;if(S=w[w.length-1],S)return S[m]+=v,R.options.explicitChildren&&R.options.preserveChildrenOrder&&R.options.charsAsChildren&&(R.options.includeWhiteChars||v.replace(/\\n/g,"").trim()!=="")&&(S[R.options.childkey]=S[R.options.childkey]||[],y={"#name":"__text__"},y[m]=v,R.options.normalize&&(y[m]=y[m].replace(/\s{2,}/g," ").trim()),S[R.options.childkey].push(y)),S}})(this),this.saxParser.ontext=_,this.saxParser.oncdata=(function(R){return function(v){var y;if(y=_(v),y)return y.cdata=!0}})(this)},f.prototype.parseString=function(p,m){var _;m!=null&&typeof m=="function"&&(this.on("end",function(w){return this.reset(),m(null,w)}),this.on("error",function(w){return this.reset(),m(w)}));try{return p=p.toString(),p.trim()===""?(this.emit("end",null),!0):(p=e.stripBOM(p),this.options.async?(this.remaining=p,c(this.processAsync),this.saxParser):this.saxParser.write(p).close())}catch(w){if(_=w,this.saxParser.errThrown||this.saxParser.ended){if(this.saxParser.ended)throw _}else return this.emit("error",_),this.saxParser.errThrown=!0}},f.prototype.parseStringPromise=function(p){return new Promise((function(m){return function(_,w){return m.parseString(p,function(R,v){return R?w(R):_(v)})}})(this))},f})(n),Zs.parseString=function(h,f,p){var m,_,w;return p!=null?(typeof p=="function"&&(m=p),typeof f=="object"&&(_=f)):(typeof f=="function"&&(m=f),_={}),w=new Zs.Parser(_),w.parseString(h,m)},Zs.parseStringPromise=function(h,f){var p,m;return typeof f=="object"&&(p=f),m=new Zs.Parser(p),m.parseStringPromise(h)}}).call(Zs)});var ude=E(ea=>{"use strict";(function(){"use strict";var e,t,r,n,i=function(s,a){for(var c in a)o.call(a,c)&&(s[c]=a[c]);function u(){this.constructor=s}return u.prototype=a.prototype,s.prototype=new u,s.__super__=a.prototype,s},o={}.hasOwnProperty;t=bx(),e=ode(),r=cde(),n=EL(),ea.defaults=t.defaults,ea.processors=n,ea.ValidationError=(function(s){i(a,s);function a(c){this.message=c}return a})(Error),ea.Builder=e.Builder,ea.Parser=r.Parser,ea.parseString=r.parseString,ea.parseStringPromise=r.parseStringPromise}).call(ea)});var eut={};Nn(eut,{ConnectorRunnerFile:()=>SL});module.exports=Ve(eut);var Jd=z(require("node:process")),Qg=class{#e="connector-runtime";#t;constructor(t,r){this.#t=r,Jd.default.on?Jd.default.on("message",n=>{n.cmd===this.#e&&r.logger.verbose(`${Jd.default.pid} Received message from parent process:`,n)}):r.logger.warn("IPC channel is not available. process.on is undefined."),Jd.default.send||r.logger.warn("IPC channel is not available. process.send is undefined."),t.actions?.forEach(n=>{if(n.config.templates===void 0)return;let i={};Object.entries(n.config.templates).forEach(([o,s])=>{try{i[o]=r.templating.compile(s)}catch(a){r.logger.error(`Error compiling template ${o} for action ${n.identifier}`,a)}}),n.config.parsedTemplates=i})}init=()=>Promise.resolve();start=()=>Promise.resolve();stop=()=>Promise.resolve();set callbackFunction(t){this.connectorSDK.receiver.registerCallback(this.#r(t))}get connectorSDK(){return this.#t}#r(t){return async r=>{let n=await this.#t.receiver.getActionConfig(r);return n?t(r,n):this.#t.receiver.responses.badRequest("Action not found")(r)}}};var hn=class{info(){}debug(){}error(){}warn(){}verbose(){}};var pde=z(require("node:events")),hde=z(require("node:path"));function Ao(e,t){if(!t.startsWith("file://"))return t;let r=e.pathAsDsn("/");if(t.startsWith(r))return t.slice(r.length-1);throw new Error(`Local path must be of the right format matching the local file SDK "${r}", got: "${t}"`)}var Qd=class{static TYPE="delete";#e;#t;#r;constructor(t,r,n=new hn){this.#e=t,this.#t=r,this.#r=n}async execute(t){let{remotePath:r,localPath:n}=t;if(!r&&!n)throw new Error("Missing required parameter: remotePath or localPath");if(r&&n)throw new Error("Choose one parameter: remotePath or localPath");this.#r.debug(`Deleting file at ${r??n}`);try{n?await this.#t.delete(Ao(this.#t,n)):r&&await this.#e.delete(r)}catch(i){throw this.#r.error(`Error deleting file at ${r??n}: ${i instanceof Error?i.message:"Unknown error"}`),i}}};var CL=z(require("crypto")),ey=new Uint8Array(256),Zg=ey.length;function Fx(){return Zg>ey.length-16&&(CL.default.randomFillSync(ey),Zg=0),ey.slice(Zg,Zg+=16)}var rn=[];for(let e=0;e<256;++e)rn.push((e+256).toString(16).slice(1));function xL(e,t=0){return rn[e[t+0]]+rn[e[t+1]]+rn[e[t+2]]+rn[e[t+3]]+"-"+rn[e[t+4]]+rn[e[t+5]]+"-"+rn[e[t+6]]+rn[e[t+7]]+"-"+rn[e[t+8]]+rn[e[t+9]]+"-"+rn[e[t+10]]+rn[e[t+11]]+rn[e[t+12]]+rn[e[t+13]]+rn[e[t+14]]+rn[e[t+15]]}var TL=z(require("crypto")),qx={randomUUID:TL.default.randomUUID};function Ede(e,t,r){if(qx.randomUUID&&!t&&!e)return qx.randomUUID();e=e||{};let n=e.random||(e.rng||Fx)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return xL(n)}var Zd=Ede;var ep=class{static TYPE="download";#e;#t;#r;constructor(t,r,n=new hn){this.#e=t,this.#t=r,this.#r=n}async execute(t){let{remotePath:r}=t;if(!r)throw new Error("Missing required parameter: remotePath");let n=r.split(".").pop(),i=`downloaded-${Zd()}.${n}`;this.#r.debug(`Reading file from ${r} and writing to ${i}`);let o;try{o=await this.#e.read(r),await this.#t.write(i,o)}catch(s){throw this.#r.error(`Error reading file from ${r}: ${s instanceof Error?s.message:"Unknown error"}`),s}finally{o?.close()}return{pathDsn:this.#t.pathAsDsn(i),path:i}}};var Xv=z(require("node:path"));var yJe=sne(),tg=class{static TYPE="extract-archive";#e;#t;constructor(t,r=new hn){this.#e=t,this.#t=r}async execute(t){let{localPath:r}=t;if(!r)throw new Error("Missing required parameter: localPath");this.#t.debug(`Reading file from ${r}`);let n;try{let i=Ao(this.#e,r);if(!this.#n(i))throw new Error(`File ${i} is not a zip archive`);return n=await this.#e.read(i),await this.#r(n.get(),`extracted-${Zd()}`)}catch(i){throw this.#t.error(`Error extracting archive from ${r}: ${i instanceof Error?i.message:"Unknown error"}`),i}finally{n?.close()}}async#r(t,r){let n=await yJe.Open.buffer(t),i=n.files.filter(c=>c.type==="Directory"),o=n.files.filter(c=>c.type!=="Directory"),s=await Promise.all(i.map(async c=>{let u=Xv.default.join(r,c.path),l=Xv.default.join(u,".keep");return await this.#e.write(l,Buffer.alloc(0)),await this.#e.delete(l),this.#t.debug(`Created directory: ${u}`),u})),a=await Promise.all(o.map(async c=>{let u=Xv.default.join(r,c.path),l=await c.buffer();return await this.#e.write(u,l),this.#t.debug(`Extracted file: ${u}`),u}));return this.#t.debug(`Extracted ${a.length} file(s) and ${s.length} directory/ies from zip archive`),{files:a,directories:s,outputPath:this.#e.pathAsDsn(r)}}#n(t){return t.toLowerCase().endsWith(".zip")}};var rg=class{static TYPE="list-directory";#e;#t;#r;constructor(t,r,n=new hn){this.#e=t,this.#t=r,this.#r=n}async execute(t){let{localPath:r,remotePath:n}=t;if(!r&&!n)throw new Error("Missing required parameter: localPath or remotePath");if(r&&n)throw new Error("Use either localPath or remotePath");this.#r.debug(`Reading file from ${r??n}`);let i;try{r?i=await this.#t.list(Ao(this.#t,r)):i=await this.#e.list(n)}catch(a){throw this.#r.error(`Error reading file from ${r??n}: ${a instanceof Error?a.message:"Unknown error"}`),a}let o=i.filter(a=>a.type==="FILE").map(a=>a.name),s=i.filter(a=>a.type==="DIRECTORY").map(a=>a.name);return{files:o,directories:s}}};var Mx=z(require("node:path")),lde=require("node:stream");var xo=z(require("node:process")),ti=z(pce()),hce=(o=>(o.error="error",o.warn="warn",o.info="info",o.http="http",o.debug="debug",o))(hce||{}),kg=class e{static instance;logger;#e;constructor(t="default",r="info"){this.logger=ti.default.createLogger({level:r,format:ti.default.format.combine(ti.default.format.label({label:t}),ti.default.format.timestamp(),ti.default.format.json(),ti.default.format.errors({stack:!0}))});let n=!1;(xo.default.env.NODE_ENV!=="production"||xo.default.env.LOG_TO_CONSOLE==="true")&&(n=!0,this.logger.add(new ti.default.transports.Console({format:ti.default.format.printf(({label:i,level:o,message:s})=>{let a=new Date().toLocaleString();return`[${i}] ${xo.default.pid} - ${a} ${o}: ${s}`})}))),xo.default.env.LOG_TO_FILE==="true"&&(n=!0,this.logger.add(new ti.default.transports.File({filename:"error.log",level:"error"})),this.logger.add(new ti.default.transports.File({filename:"combined.log"}))),n||this.logger.add(new ti.default.transports.Console({format:ti.default.format.printf(({label:i,level:o,message:s})=>`[${i}] ${o}: ${s}`)}))}static getInstance(t,r){return e.instance||(e.instance=new e(t??"default",e.#r(r))),e.instance}setDatadogTransport(t){let r=t?.apiKey??xo.default.env.DATADOG_API_KEY;if(!r)return this.debug("DATADOG_API_KEY is not set, cannot add Datadog transport"),this;let n=new URLSearchParams({"dd-api-key":r,ddsource:t?.source??xo.default.env.DD_SOURCE??"nodejs",service:t?.service??xo.default.env.DD_SERVICE??"unknown",env:t?.env??xo.default.env.DD_ENV??"prod"});t?.tags&&n.append("ddtags",Object.entries(t.tags).map(([o,s])=>`${o}:${s}`).join(","));let i={host:`http-intake.logs.${xo.default.env.DD_SITE??"datadoghq.eu"}`,path:`/api/v2/logs?${n.toString()}`,ssl:!0,batch:!0,format:ti.default.format.json(),level:"info"};return this.#e&&this.logger.remove(this.#e),this.#e=new ti.default.transports.Http(i),this.logger.add(this.#e),this}info(...t){this.#t(this.logger.info,...t)}static info(...t){this.getInstance().info(...t)}debug(...t){this.#t(this.logger.debug,...t)}static debug(...t){this.getInstance().debug(...t)}error(...t){this.#t(this.logger.error,...t)}static error(...t){this.getInstance().error(...t)}warn(...t){this.#t(this.logger.warn,...t)}static warn(...t){this.getInstance().warn(...t)}verbose(...t){this.#t(this.logger.verbose,...t)}static verbose(...t){this.getInstance().verbose(...t)}#t(t,...r){try{let n=r.map(i=>typeof i=="object"?JSON.stringify(i):String(i));t(n.join(" "),...r)}catch(n){console.error("unknown error in log, function",n)}}static#r=t=>{if(t!==void 0)return t;let r=xo.default.env.LOG_LEVEL||"info",i=!Object.values(hce).includes(r);return i&&(r="info"),i&&console.error(`Invalid log level: ${r} only allow; 'error', 'warn', 'info', 'debug', 'trace'. Using info as default.`),r}};var fde=z(jle()),dde=z(ude()),il=class e{#e;#t;constructor(t=void 0){this.#e=t,this.#t=kg.getInstance(),this.#t.info(`FileHandler initialized with delimiter: ${t}`)}async handleBuffer(t,r,n,i){let o;switch(e.getExtension(t)){case".csv":o=await this.parseCSV(r,n,i);break;default:return this.handle(t,r.toString(),n,i)}return o}async handle(t,r,n,i){let o;switch(e.getExtension(t)){case".xml":o=await this.parseXML(r,n);break;case".json":o=JSON.parse(r);break;default:kg.getInstance().error(`Unsupported file type: ${t}`)}return o}async parseXML(t,r){try{let n=await dde.default.parseStringPromise(t,{explicitArray:!1});return this.xmlOptions(n,r)}catch(n){throw new Error(`Error parsing XML content: ${n.message}`)}}async parseCSV(t,r,n){try{let i=lde.Readable.from(t),o=!0;return Object.keys(n??{}).includes("noHeader")&&(o=(n??{}).noHeader===!0),(0,fde.default)({delimiter:this.#e??",",noheader:o}).fromStream(i)}catch(i){throw this.#t.error(`Error parsing CSV: ${i.message}`),new Error(`Error parsing CSV content: ${i.message}`)}}xmlOptions(t,r){let n=i=>{if(typeof i=="object")for(let o of Object.keys(i)){let s=i[o];r.includes(o)?Array.isArray(s)||(i[o]=[s]):o!=="_text"&&(i[o]=n(s))}return i};return n(t)}csvOptions(t,r){let n;return Array.isArray(r)&&r.length>0?n={headers:r}:n=t.split(`
|
|
288
|
+
`?(T.line++,T.column=0):T.column++);T.cdata+=P.substring(yt,K-1),j==="]"&&(T.state=A.CDATA_ENDING);continue;case A.CDATA_ENDING:j==="]"?T.state=A.CDATA_ENDING_2:(T.cdata+="]"+j,T.state=A.CDATA);continue;case A.CDATA_ENDING_2:j===">"?(T.cdata&&N(T,"oncdata",T.cdata),N(T,"onclosecdata"),T.cdata="",T.state=A.TEXT):j==="]"?T.cdata+="]":(T.cdata+="]]"+j,T.state=A.CDATA);continue;case A.PROC_INST:j==="?"?T.state=A.PROC_INST_ENDING:v(j)?T.state=A.PROC_INST_BODY:T.procInstName+=j;continue;case A.PROC_INST_BODY:if(!T.procInstBody&&v(j))continue;j==="?"?T.state=A.PROC_INST_ENDING:T.procInstBody+=j;continue;case A.PROC_INST_ENDING:j===">"?(N(T,"onprocessinginstruction",{name:T.procInstName,body:T.procInstBody}),T.procInstName=T.procInstBody="",T.state=A.TEXT):(T.procInstBody+="?"+j,T.state=A.PROC_INST_BODY);continue;case A.OPEN_TAG:O(_,j)?T.tagName+=j:(te(T),j===">"?ve(T):j==="/"?T.state=A.OPEN_TAG_SLASH:(v(j)||B(T,"Invalid character in tag name"),T.state=A.ATTRIB));continue;case A.OPEN_TAG_SLASH:j===">"?(ve(T,!0),Ze(T)):(B(T,"Forward-slash in opening tag not followed by >"),T.state=A.ATTRIB);continue;case A.ATTRIB:if(v(j))continue;j===">"?ve(T):j==="/"?T.state=A.OPEN_TAG_SLASH:O(m,j)?(T.attribName=j,T.attribValue="",T.state=A.ATTRIB_NAME):B(T,"Invalid attribute name");continue;case A.ATTRIB_NAME:j==="="?T.state=A.ATTRIB_VALUE:j===">"?(B(T,"Attribute without value"),T.attribValue=T.attribName,$(T),ve(T)):v(j)?T.state=A.ATTRIB_NAME_SAW_WHITE:O(_,j)?T.attribName+=j:B(T,"Invalid attribute name");continue;case A.ATTRIB_NAME_SAW_WHITE:if(j==="=")T.state=A.ATTRIB_VALUE;else{if(v(j))continue;B(T,"Attribute without value"),T.tag.attributes[T.attribName]="",T.attribValue="",N(T,"onattribute",{name:T.attribName,value:""}),T.attribName="",j===">"?ve(T):O(m,j)?(T.attribName=j,T.state=A.ATTRIB_NAME):(B(T,"Invalid attribute name"),T.state=A.ATTRIB)}continue;case A.ATTRIB_VALUE:if(v(j))continue;y(j)?(T.q=j,T.state=A.ATTRIB_VALUE_QUOTED):(T.opt.unquotedAttributeValues||ie(T,"Unquoted attribute value"),T.state=A.ATTRIB_VALUE_UNQUOTED,T.attribValue=j);continue;case A.ATTRIB_VALUE_QUOTED:if(j!==T.q){j==="&"?T.state=A.ATTRIB_VALUE_ENTITY_Q:T.attribValue+=j;continue}$(T),T.q="",T.state=A.ATTRIB_VALUE_CLOSED;continue;case A.ATTRIB_VALUE_CLOSED:v(j)?T.state=A.ATTRIB:j===">"?ve(T):j==="/"?T.state=A.OPEN_TAG_SLASH:O(m,j)?(B(T,"No whitespace between attributes"),T.attribName=j,T.attribValue="",T.state=A.ATTRIB_NAME):B(T,"Invalid attribute name");continue;case A.ATTRIB_VALUE_UNQUOTED:if(!S(j)){j==="&"?T.state=A.ATTRIB_VALUE_ENTITY_U:T.attribValue+=j;continue}$(T),j===">"?ve(T):T.state=A.ATTRIB;continue;case A.CLOSE_TAG:if(T.tagName)j===">"?Ze(T):O(_,j)?T.tagName+=j:T.script?(T.script+="</"+T.tagName,T.tagName="",T.state=A.SCRIPT):(v(j)||B(T,"Invalid tagname in closing tag"),T.state=A.CLOSE_TAG_SAW_WHITE);else{if(v(j))continue;M(m,j)?T.script?(T.script+="</"+j,T.state=A.SCRIPT):B(T,"Invalid tagname in closing tag."):T.tagName=j}continue;case A.CLOSE_TAG_SAW_WHITE:if(v(j))continue;j===">"?Ze(T):B(T,"Invalid characters in closing tag");continue;case A.TEXT_ENTITY:case A.ATTRIB_VALUE_ENTITY_Q:case A.ATTRIB_VALUE_ENTITY_U:var ft,wt;switch(T.state){case A.TEXT_ENTITY:ft=A.TEXT,wt="textNode";break;case A.ATTRIB_VALUE_ENTITY_Q:ft=A.ATTRIB_VALUE_QUOTED,wt="attribValue";break;case A.ATTRIB_VALUE_ENTITY_U:ft=A.ATTRIB_VALUE_UNQUOTED,wt="attribValue";break}if(j===";"){var Dt=at(T);T.opt.unparsedEntities&&!Object.values(e.XML_ENTITIES).includes(Dt)?(T.entity="",T.state=ft,T.write(Dt)):(T[wt]+=Dt,T.entity="",T.state=ft)}else O(T.entity.length?R:w,j)?T.entity+=j:(B(T,"Invalid character in entity name"),T[wt]+="&"+T.entity+j,T.entity="",T.state=ft);continue;default:throw new Error(T,"Unknown state: "+T.state)}return T.position>=T.bufferCheckPosition&&n(T),T}String.fromCodePoint||(function(){var P=String.fromCharCode,T=Math.floor,K=function(){var j=16384,Be=[],yt,ft,wt=-1,Dt=arguments.length;if(!Dt)return"";for(var Ur="";++wt<Dt;){var Tt=Number(arguments[wt]);if(!isFinite(Tt)||Tt<0||Tt>1114111||T(Tt)!==Tt)throw RangeError("Invalid code point: "+Tt);Tt<=65535?Be.push(Tt):(Tt-=65536,yt=(Tt>>10)+55296,ft=Tt%1024+56320,Be.push(yt,ft)),(wt+1===Dt||Be.length>j)&&(Ur+=P.apply(null,Be),Be.length=0)}return Ur};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:K,configurable:!0,writable:!0}):String.fromCodePoint=K})()})(typeof Nx>"u"?Nx.sax={}:Nx)});var ade=E(bL=>{"use strict";(function(){"use strict";bL.stripBOM=function(e){return e[0]==="\uFEFF"?e.substring(1):e}}).call(bL)});var EL=E(nl=>{"use strict";(function(){"use strict";var e;e=new RegExp(/(?!xmlns)^.*:/),nl.normalize=function(t){return t.toLowerCase()},nl.firstCharLowerCase=function(t){return t.charAt(0).toLowerCase()+t.slice(1)},nl.stripPrefix=function(t){return t.replace(e,"")},nl.parseNumbers=function(t){return isNaN(t)||(t=t%1===0?parseInt(t,10):parseFloat(t)),t},nl.parseBooleans=function(t){return/^(?:true|false)$/i.test(t)&&(t=t.toLowerCase()==="true"),t}}).call(nl)});var cde=E(Zs=>{"use strict";(function(){"use strict";var e,t,r,n,i,o,s,a,c,u=function(h,f){return function(){return h.apply(f,arguments)}},l=function(h,f){for(var p in f)d.call(f,p)&&(h[p]=f[p]);function m(){this.constructor=h}return m.prototype=f.prototype,h.prototype=new m,h.__super__=f.prototype,h},d={}.hasOwnProperty;a=sde(),n=require("events"),e=ade(),s=EL(),c=require("timers").setImmediate,t=bx().defaults,i=function(h){return typeof h=="object"&&h!=null&&Object.keys(h).length===0},o=function(h,f,p){var m,_,w;for(m=0,_=h.length;m<_;m++)w=h[m],f=w(f,p);return f},r=function(h,f,p){var m;return m=Object.create(null),m.value=p,m.writable=!0,m.enumerable=!0,m.configurable=!0,Object.defineProperty(h,f,m)},Zs.Parser=(function(h){l(f,h);function f(p){this.parseStringPromise=u(this.parseStringPromise,this),this.parseString=u(this.parseString,this),this.reset=u(this.reset,this),this.assignOrPush=u(this.assignOrPush,this),this.processAsync=u(this.processAsync,this);var m,_,w;if(!(this instanceof Zs.Parser))return new Zs.Parser(p);this.options={},_=t["0.2"];for(m in _)d.call(_,m)&&(w=_[m],this.options[m]=w);for(m in p)d.call(p,m)&&(w=p[m],this.options[m]=w);this.options.xmlns&&(this.options.xmlnskey=this.options.attrkey+"ns"),this.options.normalizeTags&&(this.options.tagNameProcessors||(this.options.tagNameProcessors=[]),this.options.tagNameProcessors.unshift(s.normalize)),this.reset()}return f.prototype.processAsync=function(){var p,m;try{return this.remaining.length<=this.options.chunkSize?(p=this.remaining,this.remaining="",this.saxParser=this.saxParser.write(p),this.saxParser.close()):(p=this.remaining.substr(0,this.options.chunkSize),this.remaining=this.remaining.substr(this.options.chunkSize,this.remaining.length),this.saxParser=this.saxParser.write(p),c(this.processAsync))}catch(_){if(m=_,!this.saxParser.errThrown)return this.saxParser.errThrown=!0,this.emit(m)}},f.prototype.assignOrPush=function(p,m,_){return m in p?(p[m]instanceof Array||r(p,m,[p[m]]),p[m].push(_)):this.options.explicitArray?r(p,m,[_]):r(p,m,_)},f.prototype.reset=function(){var p,m,_,w;return this.removeAllListeners(),this.saxParser=a.parser(this.options.strict,{trim:!1,normalize:!1,xmlns:this.options.xmlns}),this.saxParser.errThrown=!1,this.saxParser.onerror=(function(R){return function(v){if(R.saxParser.resume(),!R.saxParser.errThrown)return R.saxParser.errThrown=!0,R.emit("error",v)}})(this),this.saxParser.onend=(function(R){return function(){if(!R.saxParser.ended)return R.saxParser.ended=!0,R.emit("end",R.resultObject)}})(this),this.saxParser.ended=!1,this.EXPLICIT_CHARKEY=this.options.explicitCharkey,this.resultObject=null,w=[],p=this.options.attrkey,m=this.options.charkey,this.saxParser.onopentag=(function(R){return function(v){var y,S,O,M,A;if(O={},O[m]="",!R.options.ignoreAttrs){A=v.attributes;for(y in A)d.call(A,y)&&(!(p in O)&&!R.options.mergeAttrs&&(O[p]={}),S=R.options.attrValueProcessors?o(R.options.attrValueProcessors,v.attributes[y],y):v.attributes[y],M=R.options.attrNameProcessors?o(R.options.attrNameProcessors,y):y,R.options.mergeAttrs?R.assignOrPush(O,M,S):r(O[p],M,S))}return O["#name"]=R.options.tagNameProcessors?o(R.options.tagNameProcessors,v.name):v.name,R.options.xmlns&&(O[R.options.xmlnskey]={uri:v.uri,local:v.local}),w.push(O)}})(this),this.saxParser.onclosetag=(function(R){return function(){var v,y,S,O,M,A,D,I,N,J;if(A=w.pop(),M=A["#name"],(!R.options.explicitChildren||!R.options.preserveChildrenOrder)&&delete A["#name"],A.cdata===!0&&(v=A.cdata,delete A.cdata),N=w[w.length-1],A[m].match(/^\s*$/)&&!v?(y=A[m],delete A[m]):(R.options.trim&&(A[m]=A[m].trim()),R.options.normalize&&(A[m]=A[m].replace(/\s{2,}/g," ").trim()),A[m]=R.options.valueProcessors?o(R.options.valueProcessors,A[m],M):A[m],Object.keys(A).length===1&&m in A&&!R.EXPLICIT_CHARKEY&&(A=A[m])),i(A)&&(typeof R.options.emptyTag=="function"?A=R.options.emptyTag():A=R.options.emptyTag!==""?R.options.emptyTag:y),R.options.validator!=null&&(J="/"+(function(){var U,ie,be;for(be=[],U=0,ie=w.length;U<ie;U++)O=w[U],be.push(O["#name"]);return be})().concat(M).join("/"),(function(){var U;try{return A=R.options.validator(J,N&&N[M],A)}catch(ie){return U=ie,R.emit("error",U)}})()),R.options.explicitChildren&&!R.options.mergeAttrs&&typeof A=="object"){if(!R.options.preserveChildrenOrder)O={},R.options.attrkey in A&&(O[R.options.attrkey]=A[R.options.attrkey],delete A[R.options.attrkey]),!R.options.charsAsChildren&&R.options.charkey in A&&(O[R.options.charkey]=A[R.options.charkey],delete A[R.options.charkey]),Object.getOwnPropertyNames(A).length>0&&(O[R.options.childkey]=A),A=O;else if(N){N[R.options.childkey]=N[R.options.childkey]||[],D={};for(S in A)d.call(A,S)&&r(D,S,A[S]);N[R.options.childkey].push(D),delete A["#name"],Object.keys(A).length===1&&m in A&&!R.EXPLICIT_CHARKEY&&(A=A[m])}}return w.length>0?R.assignOrPush(N,M,A):(R.options.explicitRoot&&(I=A,A={},r(A,M,I)),R.resultObject=A,R.saxParser.ended=!0,R.emit("end",R.resultObject))}})(this),_=(function(R){return function(v){var y,S;if(S=w[w.length-1],S)return S[m]+=v,R.options.explicitChildren&&R.options.preserveChildrenOrder&&R.options.charsAsChildren&&(R.options.includeWhiteChars||v.replace(/\\n/g,"").trim()!=="")&&(S[R.options.childkey]=S[R.options.childkey]||[],y={"#name":"__text__"},y[m]=v,R.options.normalize&&(y[m]=y[m].replace(/\s{2,}/g," ").trim()),S[R.options.childkey].push(y)),S}})(this),this.saxParser.ontext=_,this.saxParser.oncdata=(function(R){return function(v){var y;if(y=_(v),y)return y.cdata=!0}})(this)},f.prototype.parseString=function(p,m){var _;m!=null&&typeof m=="function"&&(this.on("end",function(w){return this.reset(),m(null,w)}),this.on("error",function(w){return this.reset(),m(w)}));try{return p=p.toString(),p.trim()===""?(this.emit("end",null),!0):(p=e.stripBOM(p),this.options.async?(this.remaining=p,c(this.processAsync),this.saxParser):this.saxParser.write(p).close())}catch(w){if(_=w,this.saxParser.errThrown||this.saxParser.ended){if(this.saxParser.ended)throw _}else return this.emit("error",_),this.saxParser.errThrown=!0}},f.prototype.parseStringPromise=function(p){return new Promise((function(m){return function(_,w){return m.parseString(p,function(R,v){return R?w(R):_(v)})}})(this))},f})(n),Zs.parseString=function(h,f,p){var m,_,w;return p!=null?(typeof p=="function"&&(m=p),typeof f=="object"&&(_=f)):(typeof f=="function"&&(m=f),_={}),w=new Zs.Parser(_),w.parseString(h,m)},Zs.parseStringPromise=function(h,f){var p,m;return typeof f=="object"&&(p=f),m=new Zs.Parser(p),m.parseStringPromise(h)}}).call(Zs)});var ude=E(ea=>{"use strict";(function(){"use strict";var e,t,r,n,i=function(s,a){for(var c in a)o.call(a,c)&&(s[c]=a[c]);function u(){this.constructor=s}return u.prototype=a.prototype,s.prototype=new u,s.__super__=a.prototype,s},o={}.hasOwnProperty;t=bx(),e=ode(),r=cde(),n=EL(),ea.defaults=t.defaults,ea.processors=n,ea.ValidationError=(function(s){i(a,s);function a(c){this.message=c}return a})(Error),ea.Builder=e.Builder,ea.Parser=r.Parser,ea.parseString=r.parseString,ea.parseStringPromise=r.parseStringPromise}).call(ea)});var eut={};Nn(eut,{ConnectorRunnerFile:()=>SL});module.exports=Ve(eut);var Jd=z(require("node:process")),Qg=class{#e="connector-runtime";#t;constructor(t,r){this.#t=r,Jd.default.on?Jd.default.on("message",n=>{n.cmd===this.#e&&r.logger.verbose(`${Jd.default.pid} Received message from parent process:`,n)}):r.logger.warn("IPC channel is not available. process.on is undefined."),Jd.default.send||r.logger.warn("IPC channel is not available. process.send is undefined."),t.actions?.forEach(n=>{if(n.config.templates===void 0)return;let i={};Object.entries(n.config.templates).forEach(([o,s])=>{try{i[o]=r.templating.compile(s)}catch(a){r.logger.error(`Error compiling template ${o} for action ${n.identifier}`,a)}}),n.config.parsedTemplates=i})}init=()=>Promise.resolve();start=()=>Promise.resolve();stop=()=>Promise.resolve();set callbackFunction(t){this.connectorSDK.receiver.registerCallback(this.#r(t))}get connectorSDK(){return this.#t}#r(t){return async r=>{let n=await this.#t.receiver.getActionConfig(r);return n?t(r,n):this.#t.receiver.responses.badRequest("Action not found")(r)}}};var hn=class{info(){}debug(){}error(){}warn(){}verbose(){}};var pde=z(require("node:events")),hde=z(require("node:path"));function Ao(e,t){if(!t.startsWith("file://"))return t;let r=e.pathAsDsn("/");if(t.startsWith(r))return t.slice(r.length-1);let n=r.slice(0,r.length-5);if(t.startsWith(n))return`../${t.slice(n.length)}`;throw new Error(`Local path must start with "${r}" or "${n}", got: "${t}"`)}var Qd=class{static TYPE="delete";#e;#t;#r;constructor(t,r,n=new hn){this.#e=t,this.#t=r,this.#r=n}async execute(t){let{remotePath:r,localPath:n}=t;if(!r&&!n)throw new Error("Missing required parameter: remotePath or localPath");if(r&&n)throw new Error("Choose one parameter: remotePath or localPath");this.#r.debug(`Deleting file at ${r??n}`);try{n?await this.#t.delete(Ao(this.#t,n)):r&&await this.#e.delete(r)}catch(i){throw this.#r.error(`Error deleting file at ${r??n}: ${i instanceof Error?i.message:"Unknown error"}`),i}}};var CL=z(require("crypto")),ey=new Uint8Array(256),Zg=ey.length;function Fx(){return Zg>ey.length-16&&(CL.default.randomFillSync(ey),Zg=0),ey.slice(Zg,Zg+=16)}var rn=[];for(let e=0;e<256;++e)rn.push((e+256).toString(16).slice(1));function xL(e,t=0){return rn[e[t+0]]+rn[e[t+1]]+rn[e[t+2]]+rn[e[t+3]]+"-"+rn[e[t+4]]+rn[e[t+5]]+"-"+rn[e[t+6]]+rn[e[t+7]]+"-"+rn[e[t+8]]+rn[e[t+9]]+"-"+rn[e[t+10]]+rn[e[t+11]]+rn[e[t+12]]+rn[e[t+13]]+rn[e[t+14]]+rn[e[t+15]]}var TL=z(require("crypto")),qx={randomUUID:TL.default.randomUUID};function Ede(e,t,r){if(qx.randomUUID&&!t&&!e)return qx.randomUUID();e=e||{};let n=e.random||(e.rng||Fx)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return xL(n)}var Zd=Ede;var ep=class{static TYPE="download";#e;#t;#r;constructor(t,r,n=new hn){this.#e=t,this.#t=r,this.#r=n}async execute(t){let{remotePath:r}=t;if(!r)throw new Error("Missing required parameter: remotePath");let n=r.split(".").pop(),i=`downloaded-${Zd()}.${n}`;this.#r.debug(`Reading file from ${r} and writing to ${i}`);let o;try{o=await this.#e.read(r),await this.#t.write(i,o)}catch(s){throw this.#r.error(`Error reading file from ${r}: ${s instanceof Error?s.message:"Unknown error"}`),s}finally{o?.close()}return{pathDsn:this.#t.pathAsDsn(i),path:i}}};var Xv=z(require("node:path"));var yJe=sne(),tg=class{static TYPE="extract-archive";#e;#t;constructor(t,r=new hn){this.#e=t,this.#t=r}async execute(t){let{localPath:r}=t;if(!r)throw new Error("Missing required parameter: localPath");if(!this.#n(r))throw new Error(`File ${r} is not a zip archive`);this.#t.debug(`Reading file from ${r}`);let n;try{let i=Ao(this.#e,r);return n=await this.#e.read(i),await this.#r(n.get(),`extracted-${Zd()}`)}catch(i){throw this.#t.error(`Error extracting archive from ${r}: ${i instanceof Error?i.message:"Unknown error"}`),i}finally{n?.close()}}async#r(t,r){let n=await yJe.Open.buffer(t),i=n.files.filter(c=>c.type==="Directory"),o=n.files.filter(c=>c.type!=="Directory"),s=await Promise.all(i.map(async c=>{let u=Xv.default.join(r,c.path),l=Xv.default.join(u,".keep");return await this.#e.write(l,Buffer.alloc(0)),await this.#e.delete(l),this.#t.debug(`Created directory: ${u}`),u})),a=await Promise.all(o.map(async c=>{let u=Xv.default.join(r,c.path),l=await c.buffer();return await this.#e.write(u,l),this.#t.debug(`Extracted file: ${u}`),u}));return this.#t.debug(`Extracted ${a.length} file(s) and ${s.length} directory/ies from zip archive`),{files:a,directories:s,outputPath:this.#e.pathAsDsn(r)}}#n(t){return t.toLowerCase().endsWith(".zip")}};var rg=class{static TYPE="list-directory";#e;#t;#r;constructor(t,r,n=new hn){this.#e=t,this.#t=r,this.#r=n}async execute(t){let{localPath:r,remotePath:n}=t;if(!r&&!n)throw new Error("Missing required parameter: localPath or remotePath");if(r&&n)throw new Error("Use either localPath or remotePath");this.#r.debug(`Reading file from ${r??n}`);let i;try{r?i=await this.#t.list(Ao(this.#t,r)):i=await this.#e.list(n)}catch(a){throw this.#r.error(`Error reading file from ${r??n}: ${a instanceof Error?a.message:"Unknown error"}`),a}let o=i.filter(a=>a.type==="FILE").map(a=>a.name),s=i.filter(a=>a.type==="DIRECTORY").map(a=>a.name);return{files:o,directories:s}}};var Mx=z(require("node:path")),lde=require("node:stream");var xo=z(require("node:process")),ti=z(pce()),hce=(o=>(o.error="error",o.warn="warn",o.info="info",o.http="http",o.debug="debug",o))(hce||{}),kg=class e{static instance;logger;#e;constructor(t="default",r="info"){this.logger=ti.default.createLogger({level:r,format:ti.default.format.combine(ti.default.format.label({label:t}),ti.default.format.timestamp(),ti.default.format.json(),ti.default.format.errors({stack:!0}))});let n=!1;(xo.default.env.NODE_ENV!=="production"||xo.default.env.LOG_TO_CONSOLE==="true")&&(n=!0,this.logger.add(new ti.default.transports.Console({format:ti.default.format.printf(({label:i,level:o,message:s})=>{let a=new Date().toLocaleString();return`[${i}] ${xo.default.pid} - ${a} ${o}: ${s}`})}))),xo.default.env.LOG_TO_FILE==="true"&&(n=!0,this.logger.add(new ti.default.transports.File({filename:"error.log",level:"error"})),this.logger.add(new ti.default.transports.File({filename:"combined.log"}))),n||this.logger.add(new ti.default.transports.Console({format:ti.default.format.printf(({label:i,level:o,message:s})=>`[${i}] ${o}: ${s}`)}))}static getInstance(t,r){return e.instance||(e.instance=new e(t??"default",e.#r(r))),e.instance}setDatadogTransport(t){let r=t?.apiKey??xo.default.env.DATADOG_API_KEY;if(!r)return this.debug("DATADOG_API_KEY is not set, cannot add Datadog transport"),this;let n=new URLSearchParams({"dd-api-key":r,ddsource:t?.source??xo.default.env.DD_SOURCE??"nodejs",service:t?.service??xo.default.env.DD_SERVICE??"unknown",env:t?.env??xo.default.env.DD_ENV??"prod"});t?.tags&&n.append("ddtags",Object.entries(t.tags).map(([o,s])=>`${o}:${s}`).join(","));let i={host:`http-intake.logs.${xo.default.env.DD_SITE??"datadoghq.eu"}`,path:`/api/v2/logs?${n.toString()}`,ssl:!0,batch:!0,format:ti.default.format.json(),level:"info"};return this.#e&&this.logger.remove(this.#e),this.#e=new ti.default.transports.Http(i),this.logger.add(this.#e),this}info(...t){this.#t(this.logger.info,...t)}static info(...t){this.getInstance().info(...t)}debug(...t){this.#t(this.logger.debug,...t)}static debug(...t){this.getInstance().debug(...t)}error(...t){this.#t(this.logger.error,...t)}static error(...t){this.getInstance().error(...t)}warn(...t){this.#t(this.logger.warn,...t)}static warn(...t){this.getInstance().warn(...t)}verbose(...t){this.#t(this.logger.verbose,...t)}static verbose(...t){this.getInstance().verbose(...t)}#t(t,...r){try{let n=r.map(i=>typeof i=="object"?JSON.stringify(i):String(i));t(n.join(" "),...r)}catch(n){console.error("unknown error in log, function",n)}}static#r=t=>{if(t!==void 0)return t;let r=xo.default.env.LOG_LEVEL||"info",i=!Object.values(hce).includes(r);return i&&(r="info"),i&&console.error(`Invalid log level: ${r} only allow; 'error', 'warn', 'info', 'debug', 'trace'. Using info as default.`),r}};var fde=z(jle()),dde=z(ude()),il=class e{#e;#t;constructor(t=void 0){this.#e=t,this.#t=kg.getInstance(),this.#t.info(`FileHandler initialized with delimiter: ${t}`)}async handleBuffer(t,r,n,i){let o;switch(e.getExtension(t)){case".csv":o=await this.parseCSV(r,n,i);break;default:return this.handle(t,r.toString(),n,i)}return o}async handle(t,r,n,i){let o;switch(e.getExtension(t)){case".xml":o=await this.parseXML(r,n);break;case".json":o=JSON.parse(r);break;default:kg.getInstance().error(`Unsupported file type: ${t}`)}return o}async parseXML(t,r){try{let n=await dde.default.parseStringPromise(t,{explicitArray:!1});return this.xmlOptions(n,r)}catch(n){throw new Error(`Error parsing XML content: ${n.message}`)}}async parseCSV(t,r,n){try{let i=lde.Readable.from(t),o=!0;return Object.keys(n??{}).includes("noHeader")&&(o=(n??{}).noHeader===!0),(0,fde.default)({delimiter:this.#e??",",noheader:o}).fromStream(i)}catch(i){throw this.#t.error(`Error parsing CSV: ${i.message}`),new Error(`Error parsing CSV content: ${i.message}`)}}xmlOptions(t,r){let n=i=>{if(typeof i=="object")for(let o of Object.keys(i)){let s=i[o];r.includes(o)?Array.isArray(s)||(i[o]=[s]):o!=="_text"&&(i[o]=n(s))}return i};return n(t)}csvOptions(t,r){let n;return Array.isArray(r)&&r.length>0?n={headers:r}:n=t.split(`
|
|
289
289
|
`)[0].trim().split(",").length>1?{headers:!0}:{noheader:!0},n}stringify(t){return JSON.stringify(t,null,2)}static getPath(t){return Mx.default.dirname(t)}static getFileName(t){return Mx.default.basename(t)}static getExtension(t){return Mx.default.extname(t).toLowerCase()}};var Vg=class{static TYPE="read";#e;#t;#r;#n;constructor(t,r,n=new hn){this.#e=t,this.#t=r,this.#r=n,this.#n=new il}async execute(t){let{localPath:r,remotePath:n}=t;if(!r&&!n)throw new Error("Missing required parameter: localPath or remotePath");if(r&&n)throw new Error("Use either localPath or remotePath");this.#r.debug(`Reading file from ${r??n}`);let i,o;try{r?i=await this.#t.read(Ao(this.#t,r)):i=await this.#e.read(n);let s=i.get();t.raw!==!0&&t.raw!=="true"?o=await this.#n.handleBuffer(r??n,s,[]):o=s.toString()}catch(s){throw this.#r.error(`Error reading file from ${r??n}: ${s instanceof Error?s.message:"Unknown error"}`),s}finally{i?.close()}return{contents:o}}};var Wg=class{static TYPE="upload";#e;#t;#r;constructor(t,r,n=new hn){this.#e=t,this.#t=r,this.#r=n}async execute(t){let{localPath:r,remotePath:n}=t;if(!r)throw new Error("Missing required parameter: localPath");if(!n)throw new Error("Missing required parameter: remotePath");this.#r.debug(`Writing file from ${r} to ${n}`);let i;try{i=await this.#t.read(Ao(this.#t,r));let o=await this.#e.exists(n);if(o&&t.overwrite!==!0&&t.overwrite!=="true")throw new Error(`File already exists at ${n}. Set overwrite to true to replace it.`);o&&await this.#e.delete(n).catch(()=>{}),await this.#e.write(n,i)}catch(o){throw this.#r.error(`Error writing file from ${r} to ${n}: ${o instanceof Error?o.message:"Unknown error"}`),o}finally{i?.close()}}};var Kg=class{static TYPE="write";#e;#t;constructor(t,r=new hn){this.#e=t,this.#t=r}async execute(t){let{contents:r,remotePath:n}=t;if(!r&&r!=="")throw new Error("Missing required parameter: contents");if(!n)throw new Error("Missing required parameter: remotePath");this.#t.debug(`Writing content to ${n}`);try{let i=await this.#e.exists(n);if(i&&t.overwrite!==!0&&t.overwrite!=="true")throw new Error(`File already exists at ${n}. Set overwrite to true to replace it.`);i&&await this.#e.delete(n).catch(()=>{}),await this.#e.write(n,r)}catch(i){throw this.#t.error(`Error writing content to ${n}: ${i instanceof Error?i.message:"Unknown error"}`),i}}};var Lx=class extends pde.default{#e;#t;constructor(t,r,n){super(),this.#e=t,n=n??this.#e.files(`file://${hde.default.join(process.env.RUNTIME_DIRECTORY??process.env.TRANSAI_TMP_DIR??"./tmp","connectors",t.config.datasourceIdentifier??"file")}`),this.#t={[ep.TYPE]:new ep(r,n,this.#e.logger),[Wg.TYPE]:new Wg(r,n,this.#e.logger),[Kg.TYPE]:new Kg(r,this.#e.logger),[Qd.TYPE]:new Qd(r,n,this.#e.logger),[Vg.TYPE]:new Vg(r,n,this.#e.logger),[rg.TYPE]:new rg(r,n,this.#e.logger),[tg.TYPE]:new tg(n,this.#e.logger)}}get callbackFunctionChain(){return this.#r(this.#e.receiver.emitEventType(this.#e.receiver.responses.ok()))}#r(t){return async(r,n)=>{let i=n.identifier.toLowerCase(),o=this.#t[i]||this.#t[i.replace(/^file[.-]/,"")]||this.#t[String(n.config.type)];if(!o)return this.#e.receiver.responses.badRequest(`Action ${i} does not exist.`)(r);try{let s=await o.execute(r.payload);this.#e.logger.debug(`Action ${i} executed successfully with pathDsn: ${JSON.stringify(s)}`);let a=r;return typeof s<"u"&&(a={...r,payload:s}),t(a)}catch(s){return this.#e.logger.error(`Error executing action ${i}: ${s instanceof Error?s.message:"Unknown error"}`),this.#e.receiver.responses.internalServerError(s instanceof Error?s.message:"Unknown error occurred")(r)}}}};var wL=z(require("path"));var Yg=class{static DEFAULT_INTERVAL_SECONDS=60;#e;#t;#r;#n;#o;#i;constructor(t,r,n){this.#e=t,this.#t=r,this.#r=n,this.#o=new il(r.delimiter);let{selector:i}=this.#t;if(this.#i=new RegExp(typeof i!="string"?i.pattern:i,typeof i!="string"&&i.flags?i.flags:"i"),this.#t.destinationDsn)this.#n=this.#e.files(this.#t.destinationDsn);else if(this.#t.action==="move")throw new Error(`Destination DSN must be provided for 'move' action in file selector: ${this.name}`)}get name(){let{selector:t}=this.#t;return`file-processor-${typeof t=="string"?t:t.pattern}`}async onRun(){let t=await this.#s();this.#e.telemetry.increment("files.processed.count",t)}async#s(t="/"){let r=await this.#r.list(t);return(await Promise.all(r.map(async i=>i.type==="FILE"?await this.#a(i,t)?1:0:this.#t.recursive===!0?this.#s(wL.default.join(t,i.name)):Promise.resolve(0)))).reduce((i,o)=>i+o,0)}async#a(t,r){let n=wL.default.join(r,t.name);if(!this.#i.test(n))return this.#e.logger.verbose(`Skipping file at path: ${n} as it does not match selector regex`),!1;this.#e.logger.debug(`Processing file at path: ${n}`);let i,o;try{if(i=await this.#r.read(n),o=await this.#o.handleBuffer(n,i.get(),this.#t.optionalHeaders??[],this.#t.optionalSettings),!o)return this.#e.logger.info(`Failed to parse file at path: ${n}`),i.close(),!1;this.#e.logger.debug(`Parsed file successfully at path: ${n}`)}catch(s){return this.#e.logger.error(`Error parsing file at path: ${n}, error: ${s}`),i?.close(),!1}try{let s={...o,_filename:il.getFileName(n)??t.name},a={keyField:"_filename",collection:`${this.#e.config.datasourceIdentifier??"file"}_${this.#t.identifier??this.#i.source??"default"}`};this.#t.action==="move"&&(s._fileDestination=this.#n?.pathAsDsn(t.name)),this.#t.type==="metric"?await this.#e.sender.metricsLegacy([s],a):await this.#e.sender.documents([s],a)}catch(s){return this.#e.logger.error(`Error sending parsed file from path: ${n}, error: ${s}`),i?.close(),!1}try{switch(this.#t.action){case"move":await this.#n?.write(t.name,i),await this.#r.delete(n),this.#e.logger.debug(`"Moved" file at path: ${n} to ${this.#n?.pathAsDsn(t.name)} after processing`);break;case"delete":await this.#r.delete(n),this.#e.logger.debug(`Deleted file at path: ${n} after processing`);break}}finally{i?.close()}return!0}};var SL=class extends Qg{#e;constructor(t,r){super(t,r);let{config:n}=this.connectorSDK;this.#e=this.connectorSDK.files(n.dsn);let i=new Lx(this.connectorSDK,this.#e);this.callbackFunction=i.callbackFunctionChain}init=async()=>{let{config:t}=this.connectorSDK;await Promise.all((t.fileSelectors??[]).map(async r=>{let n=new Yg(this.connectorSDK,r,this.#e);await this.connectorSDK.processing.registerInterval(r.intervalSeconds??Yg.DEFAULT_INTERVAL_SECONDS,n)}))}};0&&(module.exports={ConnectorRunnerFile});
|
|
290
290
|
/*! Bundled license information:
|
|
291
291
|
|