@transai/connector-runner-mkg 0.7.2 → 0.7.3

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/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import*as c from"node:process";var u=class{constructor(r,e){this.#e="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#t=e,c.on?c.on("message",t=>{t.cmd===this.#e&&e.logger.verbose(`${c.pid} Received message from parent process:`,t)}):e.logger.warn("IPC channel is not available. process.on is undefined."),c.send||e.logger.warn("IPC channel is not available. process.send is undefined."),r.actions?.forEach(t=>{if(t.config.templates===void 0)return;let o={};Object.entries(t.config.templates).forEach(([_,s])=>{try{o[_]=e.templating.compile(s)}catch(g){e.logger.error(`Error compiling template ${_} for action ${t.identifier}`,g)}}),t.config.parsedTemplates=o})}#e;#t;set callbackFunction(r){this.connectorSDK.receiver.registerCallback(this.#r(r))}get connectorSDK(){return this.#t}#r(r){return async e=>{let t=await this.#t.receiver.getActionConfig(e);return t?r(e,t):this.#t.receiver.responses.badRequest("Action not found")(e)}}};var T="mkg",M=3600,A="RowKey",K="sys_dat_wijzig",E=250,h="JSESSIONID",C=1800*1e3;var n=class i{constructor(r,e=[]){this.identifier=r.identifier,this.fields=r.fields,this.immediate=r.immediate!==!1,this.interval=r.interval??(this.fields.length>0?M:0),this.identifierField=r.identifierField??A,this.dateField=r.dateField??K,this.rows=r.rows??E,this.actions=e.map(t=>t.withParentTable(this))}cloneFromTableConfig(r){return r===!0||r.fields===void 0?this:new i({...this,fields:[...this.fields,...r.fields].filter((e,t,o)=>o.indexOf(e)===t)})}action(r){return this.actions.find(e=>e.identifier===r)}};var S=new n({identifier:"artg",fields:["artg_num","artg_rela","artg_cred","artg_oms","artg_inkoopofferte"]});var R=new n({identifier:"arti",interval:300,fields:["arti_actief","arti_code","arti_revisie","arti_oms_1","arti_tekening","arti_stlh_num","debi_num"]});var D=new n({identifier:"bwrg",fields:["bwrg_inkoopofferte","bwrg_memo","bwrg_oms","bwrg_num","bwrg_cred","bwrg_rela"]});var G=new n({identifier:"bwrk",interval:60,fields:["bwrk_actief","bwrk_oms","bwrk_num","bwrk_rsrc_instellen","bwrk_rsrc_bew","bwrk_onbemand"]});var I=new n({identifier:"clch",interval:60,fields:["arti_code","clch_num","clch_oms_1","prdt_num","clch_vofh_proj"]});var L=new n({identifier:"clcr",interval:60,fields:["arti_code","clch_num","clcr_oms_1","clcr_tekening","clcr_niveau","clcr_num","clcr_parent","stlh_num","clcr_revisie"]});var y=new n({identifier:"cprs",interval:300,fields:["cprs_actief","cprs_num","cprs_email","cprs_voornaam","cprs_voorletters","cprs_naam","cprs_telefoon","rela_num"]});var x=new n({identifier:"debi",fields:["debi_actief","debi_num","debi_kvk_num","debi_naam","rela_num","debi_btw_num"]});var $=new n({identifier:"magl",fields:["magl_memo","magl_oms_3","magl_shopfloor","magl_niet_autores","magl_oms_2","magl_code","magl_blok","magl_oms_1"]});var B=new n({identifier:"magz",fields:["magz_memo","magz_oms_1","magz_oms_2","magz_code","magz_oms_3","magz_niet_autores","magz_blok"]});var j=new n({identifier:"medw",fields:["medw_pensioenpremie_werkn","medw_spaarloon_rek","medw_betaling_per_bank","medw_premiesparen_naam","medw_ziekengeld_aanm","medw_betaling_per_rek_2","medw_auto_vd_zaak","medw_vrij_datum_5","medw_or","medw_premiesparen","medw_telefoon","medw_aanwezigheids_reg","medw_betaling_per_bank_naam","medw_postcode","medw_premiesparen_batch","medw_verschuiven","medw_onkosten","medw_pensioenpremie_werkg","medw_arbodienst_aanm","medw_lid_persver","medw_laatste_bwrk","medw_memo_contract","medw_premiesparen_iban","medw_vrij_datum_3","medw_nummer_2","medw_voornaam","medw_ziekengeld_afm","medw_mdrc","medw_spaarloon_bic","medw_spaarloon","medw_betaling_per_bank_oms_3","medw_spaarloon_iban","medw_prod_gereed_melden","medw_spaarloon_batch","medw_betaling_per_iban_2","medw_roepnaam","medw_vutpremie_werkg","medw_betaling_per_rek","medw_uren_per_dag","medw_plaats","medw_telefoon_2","medw_or_functie","medw_pensioenfonds","medw_schoenmaat","medw_naam_2","medw_spaarloon_oms1","medw_vutpremie","medw_ehbo","medw_vrij_datum_4","medw_email","medw_vrij_memo_1","medw_soort_contract","medw_vakantie_uren","medw_reiskosten","medw_vrij_veld_4","medw_waohiaat_werkg","medw_vrij_datum_2","medw_premiesparen_oms1","medw_salaris","medw_vrij_veld_3","medw_spaarloon_oms3","medw_planning","medw_raadplegen_uren","medw_spaarloon_naam","medw_vrij_veld_5","medw_ziekenfonds_aanm","medw_betaling_per_bank_2_naam","medw_partime_salaris","medw_premiesparen_oms2","medw_bedrijfsvereniging_afm","medw_betaling_per_bank_2_oms1","medw_betaling_per_bank_2","medw_betaling_per_bank_plaats","medw_tussenvoegsel","medw_instellen","medw_pensioenfonds_afm","medw_functietitel","medw_straat_2","medw_premiesparen_plaats","medw_betaling_per_bic_2","medw_betaling_per_kas_2","medw_betaling_per_bank_2_oms3","medw_premiesparen_oms3","medw_straat","medw_premiesparen_oms4","medw_dagen_per_week","medw_telefax","medw_afbeelding","medw_op_uren_pc","medw_direct_gereed"]});var a=class i{#e;constructor(r){this.identifier=r.identifier,this.method=r.method,this.fields=r.fields,this.optionalFields=r.optionalFields??[],this.path=r.path??(()=>this.#e.identifier)}withParentTable(r){let e=new i(this);return e.#e=r,e}fieldSet(r){let e=new Map;return this.fields.forEach(t=>{let o=r[t];if(!o)throw new Error(`Missing required field '${t}' for action '${this.identifier}'`);e.set(t,o)}),this.optionalFields.forEach(t=>{let o=r[t];o&&e.set(t,o)}),Object.fromEntries(e.entries())}};var ne=new a({identifier:"move",method:"PUT",fields:["admi_num","part_num","magl_code","t_doel_magl","t_doel_aantal","RowKey"],path:()=>"parl/0/Service/s_partij_verplaatsen"}),O=new n({identifier:"parl",fields:[]},[ne]);var oe=new a({identifier:"create",method:"POST",fields:["prdh_num","prdr_num","bwrk_num","plnb_dat_start","plnb_tijd_start"]}),P=new n({identifier:"plnb",interval:60,fields:["plnb_num","prdh_num","bwrk_num","rsrc_num","medw_num","plnb_dat_start","plnb_tijd_start","plnb_wk_start","plnb_dat_eind","plnb_tijd_eind","plnb_wk_eind","plnb_dat_gestart","plnb_tijd_gestart","plnb_wk_gestart","plnb_gestart","plnb_gereed","plnb_aantal","plnb_aantal_grd","plnb_aantal_per_uur","plnb_bijloop_aantal","plnb_uitb_aantal","plnb_volgorde"]},[oe]);var _e=new a({identifier:"create.prdh_prdr",method:"POST",fields:["bwrk_num","prbv_tijd_per_stuk"],path:i=>{let r=i.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=i.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prbv`}}),F=new n({identifier:"prbv",fields:[]},[_e]);var ie=new a({identifier:"create",method:"POST",fields:["prdh_oms_1"]}),z=new n({identifier:"prdh",interval:60,fields:["prdh_num","prdh_forecast","prdh_historisch","prdh_dat_planning","prdh_dat_order","t_klant","proj_num"]},[ie]);var se=new a({identifier:"create.prdh",method:"POST",fields:["prdr_oms_1","prdr_tot_aantal","prdr_id"],path:i=>{let r=i.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");return`prdh/${r}/prdh_eindproduct/`}}),N=new n({identifier:"prdr",fields:[]},[se]);var ae=new a({identifier:"create.prdh_prdr",method:"POST",fields:["prmv_oms_1","cred_num"],path:i=>{let r=i.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=i.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prmv`}}),H=new n({identifier:"prmv",fields:[]},[ae]);var U=new n({identifier:"proj",interval:300,fields:["admi_num","RowTime","proj_oms","proj_historisch","proj_prdh","RowKey","proj_num","proj_vorh","proj_zoeknaam"]});var q=new n({identifier:"rela",fields:["rela_num","rela_naam","rela_zoeknaam","rela_email","rela_actief","rela_plaats","rela_postcode","rela_www","rela_telefoon"]});var J=new n({identifier:"rgrs",interval:60,fields:["abnk_bizcuit_id","aant_vraag_oms","abnk_oms","adon_code","adon_oms","adop_code","arti_code","bwrg_oms","bwrk_oms","cert_code","gebr_code","kbdp_oms","kltn_code","kstg_oms","land_code","magw_code","medw_betaling_per_bank_2_naam","medw_betaling_per_bank_naam","medw_naam","medw_premiesparen_naam","medw_spaarloon_naam","rela_naam","reld_oms","rsrc_oms","rsrg_oms","spco_code","strd_oms","t_bwrk_num_oms","t_bwrk_oms","t_oms","t_omschrijving","aanr_datum","aanr_num","aans_num","aant_num","abnk_num","adma_num","admi_num","afdl_num","agtn_num","apia_num","bank_num","bwrf_num","bwrg_num","bwrk_num","clcb_num","clch_num","clch_vofh_num","clch_vofh_verk_num","clcm_num","clcr_num","clct_num","cred_num","debi_num","dgbk_num","fcth_num","geac_num","ifch_num","inkg_num","iofh_num"]});var V=new n({identifier:"rsrc",interval:300,fields:["rsrc_fcst_eindige_cap","rsrc_oms","rsrc_memo","rsrc_volgorde","rsrc_magl_in","rsrc_onbemand","rsrc_num","rsrc_calc_eindige_cap","rsrc_magl_uit","rsrc_aantal","rsrc_calc_bucket","rsrc_eindige_cap","rsrc_fcst_bucket","rsrc_bucket","rsrc_afbeelding"]});var X=new n({identifier:"rsrd",interval:300,fields:["rsrd_zo_p2_van","rsrd_za_p2_tot","rsrd_do_p1_tot","rsrd_di_p5_tot","rsrd_zo_p5_tot","rsrd_do_p3_tot","rsrd_ma_p4_tot","rsrd_wo_p3_van","rsrd_zo_p1_van","rsrd_fd_p1_van","rsrd_do_p5_van","rsrd_wo_p2_tot","rsrd_za_van","rsrd_vr_p3_van","rsrd_za_p4_van","rsrd_ma_p5_tot","rsrd_fd_p3_van","rsrd_wo_tot","rsrd_vr_tot","rsrd_ma_p1_tot","rsrd_wo_p1_tot","rsrd_zo_p4_tot","rsrd_di_p4_tot","rsrd_ma_p3_van","rsrd_ma_p5_van","rsrd_di_tot","rsrd_fd_p4_van","rsrd_vr_van","rsrd_za_p3_tot","rsrd_za_p1_van","rsrd_zo_p5_van","rsrd_fd_p2_tot","rsrd_vr_p5_van","rsrd_di_p4_van","rsrd_za_p5_tot","rsrd_di_p3_van","rsrd_ma_p2_tot","rsrd_di_van","rsrd_do_p1_van","rsrd_zo_p3_tot","rsrd_vr_p5_tot","rsrd_zo_p1_tot","rsrd_ma_van","rsrd_do_tot","rsrd_wo_p2_van","rsrd_vr_p3_tot","rsrd_di_p1_van","rsrd_za_p5_van","rsrd_fd_p5_van","rsrd_vr_p4_tot","rsrd_wo_p3_tot","rsrd_fd_p1_tot","rsrd_fd_p3_tot","rsrd_ma_p4_van","rsrd_di_p3_tot","rsrd_zo_p4_van","rsrd_do_p4_tot","rsrd_do_van","rsrd_do_p3_van","rsrd_wo_p1_van","rsrd_za_p4_tot","rsrd_zo_van","rsrd_do_p2_tot","rsrd_vr_p2_van","rsrd_vr_p2_tot","rsrd_vr_p1_tot","rsrd_do_p5_tot","rsrd_wo_van","rsrd_zo_tot","rsrd_za_p2_van","rsrd_oms","rsrd_zo_p3_van","rsrd_fd_p2_van","rsrd_do_p4_van","rsrd_di_p2_tot","rsrd_za_p3_van","rsrd_wo_p4_van","rsrd_vr_p4_van","rsrd_wo_p4_tot","rsrd_num","rsrd_ma_tot","rsrd_ma_p1_van","rsrd_di_p5_van","rsrd_fd_p5_tot","rsrd_vr_p1_van","rsrd_di_p2_van","rsrd_do_p2_van","rsrd_wo_p5_van","rsrd_za_tot","rsrd_ma_p3_tot"]});var W=new n({identifier:"rsrg",fields:["rsrg_num","rsrg_memo","rsrg_oms"]});var Y=new n({identifier:"stlh",interval:300,fields:["stlh_actief","arti_code","stlh_oms_1","stlh_num"]});var Z=new n({identifier:"stlm",interval:600,fields:["arti_code","stlm_rest_min","stlm_eenh","stlm_netto_prijs_uitb","stlm_lijst_9","stlm_oms_1","stlm_gewicht_netto","stlm_lijst_2","stlm_volume","stlm_tot_nettoprijs","stlm_oms_3","stlm_toegeleverd","stlm_netto_prijs_mat","stlm_plaat_magw","stlm_rest_hl","stlm_lijst_5","stlm_oppervlakte","stlm_num","stlm_parameter_2","stlm_parameter_1","stlm_gewicht_bruto","stlm_zaaglengte","stlm_revisie","stlm_lijst_4","stlm_eenh_nettoprijs","stlm_plaat_b","stlm_tekening","stlm_opspanlengte_hl","stlm_eenmalig","stlm_opspanlengte_pl","stlm_lijst_7","stlm_memo_extern","stlm_factor","stlm_parameter_3","stlm_aantal","stlm_gewicht_per_m","stlm_plaat_a","stlm_plaat_dx","stlm_behoefte_obv","stlm_netto_prijs_fictief","stlm_opspanlengte_hlzl","stlm_memo","stlm_io_aanvragen","stlm_opspanlengte","stlm_aantal_lengtes","stlm_volgorde","stlm_zaagsnede_lengte","stlm_lijst_8","stlm_netto_prijs_mach","stlm_pos","stlm_oms_2","stlm_eenh_bestel","stlm_netto_prijs_man","stlm_handelslengte","stlm_eigen_spec","stlm_cad","stlm_zaagsnede","stlm_netto_prijs","stlm_bestel_gezaagd","stlm_prijs_methode","stlm_rest_zl","stlm_parameter_5","stlm_plaat_dy","stlm_lijst_6","stlm_bestel_handelslengte","stlm_lengte","stlm_lijst_3","stlm_spec_prijs","stlm_lijst_1","stlm_files","stlm_parameter_4","stlm_plaat_k"]});var Q=new n({identifier:"stlr",interval:600,fields:["stlr_cad","stlr_parent_aantal","stlr_aantal","stlr_verh_oppv_aantal_grp","stlr_verh_gewicht_eenh_grp","stlr_verh_tijd_aantal_grp","stlr_verh_volume_aantal_grp","stlr_memo","stlr_stlr_herkomst","stlr_verh_aantal_eenh_grp","stlr_verh_gewicht_aantal_vrd","stlr_verh_aantal_aantal_vrd","stlr_seriegrootte","stlr_inherit_tekening","stlr_uitval","stlr_volgorde","stlr_eenmalig","stlr_oms_3","stlr_verh_volume_aantal_vrd","stlr_verh_tijd_aantal_vrd","stlr_files","stlr_oms_1","stlr_pos","stlr_verh_gewicht_aantal_grp","stlr_eindproduct_num","stlr_stlm_certificaat","stlr_verh_rest_aantal_vrd","stlr_niveau","stlr_tekening","stlr_verh_lengte_eenh_grp","stlr_prod_fase","stlr_revisie","stlr_verh_lengte_aantal_vrd","stlr_verh_volume_eenh_grp","stlr_verh_rest_aantal_grp","stlr_verh_oppv_eenh_grp","stlr_num","stlr_verh_tijd_eenh_grp","stlr_verwijzing","stlr_afronden_aant","stlr_verh_aantal_aantal_grp","stlr_oms_2","stlr_parent","stlr_verh_lengte_aantal_grp","stlr_verh_rest_eenh_grp","stlr_verw_stlh","stlr_stlh_herkomst","stlr_cad_revisie","stlr_verh_oppv_aantal_vrd","stlr_handlingstijd","stlr_tot_aantal","stlr_prod_aantal"]});var ee=new n({identifier:"vorh",interval:300,fields:["valu_code","vorh_ref_uw","debi_num","vorh_dat_levering","vorh_dat_gewenst","vorh_bestelcode_extern","vorh_historisch","taal_code","vorh_dat_order","vorh_ref_onze","rela_num","vorh_num"]});var re=new n({identifier:"vrdg",fields:["vrdg_grbk_pv_grd_uitb","vrdg_grbk_hw_grd_uitb","vrdg_grbk_grd_mat","vrdg_grbk_hw_grd_mat","vrdg_grbk_hw_grd_man","vrdg_grbk_vrd_mat","vrdg_grbk_hw_grd_mach","vrdg_grbk_grd_mach","vrdg_num","vrdg_grbk_pv_grd_mat","vrdg_grbk_kst_mach","vrdg_grbk_kst_mat","vrdg_grbk_pv_grd_mach","vrdg_grbk_kst_man","vrdg_grbk_kst_uitb","vrdg_oms","vrdg_grbk_grd_uitb","vrdg_grbk_pv_grd_man","vrdg_grbk_pv_vrd_mat","vrdg_grbk_grd_man"]});var de=[q,x,j,R,V,X,W,B,$,Y,Q,Z,z,G,D,I,re,J,P,S,N,H,F,O,L,y,U,ee],w=de.reduce((i,r)=>(i[r.identifier]=r,i),{});var b=class{#e;#t;constructor(r,e){this.#e=r,this.#t=e}get callbackFunctionChain(){return this.#r(this.#e.receiver.emitEventType(this.#e.receiver.responses.ok()))}#r(r){return async(e,t)=>{try{this.#e.logger.debug(`[MKG] Apply templates on payload: ${JSON.stringify(e.payload)}, action: ${JSON.stringify(t)}`);let o=e.payload.action,_=e.payload.data;if(typeof _=="string"&&(_=JSON.parse(_)),!o||!_){let m=`[MKG] Missing required action input parameters in message ${e.eventId}`;return this.#e.logger.warn(m),this.#e.receiver.responses.badRequest(m)(e)}this.#e.logger.debug(`[MKG] Parsed action: ${o}, params json: ${JSON.stringify(_)}`);let[s,...g]=o.split("."),d=g.join("."),l=w[s];if(!l)return this.#e.logger.warn(`[MKG] Unknown table identifier "${s}" in message ${e.eventId}`),this.#e.receiver.responses.badRequest(`[MKG] Unknown table identifier "${s}"`)(e);let p=l.action(d);if(!p){let m=`[MKG] Unknown action identifier "${d}" within table "${s}" in message ${e.eventId}`;return this.#e.logger.warn(m),this.#e.receiver.responses.badRequest(m)(e)}if(e.testRun)return this.#e.logger.info(`[MKG] Test run for ${e.eventId} to action ${o}`),r(e);try{let m=await this.#t.request(p.method,`/web/v3/MKG/Documents/${p.path(_)}`,{...["POST","PUT"].includes(p.method)?{data:{request:{InputData:{[s]:[p.fieldSet(_)]}}}}:{}});return this.#e.logger.debug(`[MKG] Got action "${d}" of table "${s}" response from MKG: ${JSON.stringify(m)}`),r({...e,payload:{status:m.status,data:m.data}})}catch(m){let k=`[MKG] Failed to perform action "${d}" of table "${s}": (${m?.status}) ${m?.error??m?.message}`;return this.#e.logger.error(k),this.#e.receiver.responses.unprocessableEntity(k)(e)}}catch(o){return this.#e.receiver.responses.internalServerError(o instanceof Error?o.message:"Unknown error occurred")(e)}}}};function f(i){let{config:r}=i;return`https://${r.server}:${r.port??443}/${(r.path??"/mkg").replace(/^\/+/,"")}`}var v=class{#e;#t;#r;#n;#o;constructor(r,e,t,o){this.#e=r,this.#t=e,this.#r=t,this.#n=o,this.#o=o.fields.join(",")}get name(){return`mkg-extractor-${this.#r}`}async onRun(){try{let r=new Date,e=await this.#e.offsetStore.getOffset(`offset_${this.#r}`),t=await this.#_(e);if(t.length===0){this.#e.logger.verbose(`[MKG] No new data found for ${this.#r}`);return}await this.#e.sender.documents(t,{keyField:this.#n.identifierField,collection:`${this.#e.config.datasourceIdentifier??T}_${this.#r}`}),this.#e.logger.debug(`[MKG] Processed ${t.length} records from ${this.#r}`),this.#e.offsetStore.setOffset({id:String(t[t.length-1]?.[this.#n.identifierField]??e.id),timestamp:r.getTime(),rawTimestamp:r.toISOString()},`offset_${this.#r}`)}catch(r){throw this.#e.logger.error("[MKG] Failed to retrieve and process data from OPC UA source service",{error:r}),r}}#_=async r=>{let e=new URLSearchParams;e.set("NumRows",String(this.#n.rows)),r.id!==0&&e.set("Filter",`${this.#n.dateField}>=${r.rawTimestamp}`),e.set("FieldList",`${this.#n.dateField},${this.#o}`);try{let t=`/web/v3/MKG/Documents/${this.#r}`;this.#e.logger.verbose(`[MKG] Fetching data from '${f(this.#e)}${t}'...`);let _=(await this.#t.get(`${t}?${e.toString()}`)).data?.response?.ResultData?.[0]?.[this.#r]??[];return this.#e.logger.verbose(`[MKG] Fetched ${_.length} records from '${f(this.#e)}${t}'`),_}catch(t){let o=`[MKG] Failed to fetch data from table "${this.#r}": (${t?.status}) ${t?.error??t?.message}`;this.#e.logger.error(o)}return[]}};var te=class extends u{constructor(e,t){super(e,t);this.init=async()=>{let{config:e}=this.connectorSDK;await this.#_(e.username,e.password).catch(t=>{throw this.connectorSDK.logger.error("[MKG] Error retrieving initial session cookie:",t),new Error("Failed to initialize connector due to authentication error.")}),Object.entries(e.tables??{}).forEach(([t,o])=>{let _=w[t];if(!_){this.connectorSDK.logger.warn(`[MKG] Unknown table identifier "${t}", skipping configuration.`);return}if(!_.interval||_.interval<=0){this.connectorSDK.logger.verbose(`[MKG] Table "${t}" does not have a valid interval configured, skipping registration.`);return}this.connectorSDK.processing.registerInterval(_.interval,new v(this.connectorSDK,this.#t,t,_.cloneFromTableConfig(o)),{immediate:_.immediate})})};this.#o=async e=>{let{config:t}=this.connectorSDK,o=await this.#_(t.username,t.password).catch(_=>{throw this.connectorSDK.logger.error("[MKG] Error retrieving session cookie:",_),_});return{...e,headers:{...e?.headers??{},...this.#i(o)}}};let o=f(this.connectorSDK);this.#r=this.connectorSDK.httpClient({baseUrl:o}),this.#t=this.connectorSDK.httpClient({baseUrl:o}).setRequestOptionsFormatter(this.#o),this.#e=new b(this.connectorSDK,this.#t),this.callbackFunction=this.#e.callbackFunctionChain}#e;#t;#r;#n;#o;async#_(e,t){let o=this.#n;if(o&&o.expiresAt>Date.now())return o.token;let _="/static/auth/j_spring_security_check";this.connectorSDK.logger.verbose(`[MKG] Retrieving session cookie from '${f(this.connectorSDK)}${_}' with 'j_username=${encodeURIComponent(e)}&j_password=${"*".repeat(t.length)}'`);let s=await this.#r.post(_,`j_username=${encodeURIComponent(e)}&j_password=${encodeURIComponent(t)}`,{headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"}});if(!s)throw new Error("Failed to authenticate and retrieve session cookie");let d=(s.headers?.["set-cookie"]??s.headers?.["Set-Cookie"]??[]).find(p=>p.startsWith(`${h}=`));if(!d)throw new Error("Session cookie not found in authentication response");let l=d.split(";")[0]?.substring(`${h}=`.length);return this.#n={token:l,expiresAt:Date.now()+C-1e3},this.connectorSDK.logger.debug(`[MKG] Session cookie fetched successfully for user '${e}', expires at ${new Date(this.#n.expiresAt).toISOString()}`),await this.#s(l),l}#i(e){let{config:t}=this.connectorSDK,{apiToken:o}=t;return this.connectorSDK.logger.verbose(`[MKG] Using api headers: ${h}=${"*".repeat(e.length)} & X-CustomerID=${"*".repeat(o.length)}`),{Cookie:`${h}=${e}`,"X-CustomerID":o}}async#s(e){let{config:t}=this.connectorSDK,{administration:o,fiscalYear:_,language:s}=t;if(!(o?.length||_?.length||s?.length)){this.connectorSDK.logger.verbose("[MKG] No administration settings to update.");return}let g="/web/v3/MKG/Settings",d=[];o&&d.push({t_name:"Administration",t_value:o}),_&&d.push({t_name:"FiscalYear",t_value:_}),s&&d.push({t_name:"Language",t_value:s}),this.connectorSDK.logger.verbose(`[MKG] Updating administration settings: ${JSON.stringify(d)}`),await this.#r.put(g,{request:{InputData:{t_setting:d}}},{headers:{Accept:"application/json","Content-Type":"application/json",...this.#i(e)}}).catch(l=>{throw this.connectorSDK.logger.error("[MKG] Error updating administration settings:",l),l}),this.connectorSDK.logger.debug("[MKG] Administration settings updated successfully.")}};export{te as ConnectorRunnerMkg};
1
+ import*as f from"node:process";var w=class{constructor(r,e){this.#e="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#t=e,f.on?f.on("message",t=>{t.cmd===this.#e&&e.logger.verbose(`${f.pid} Received message from parent process:`,t)}):e.logger.warn("IPC channel is not available. process.on is undefined."),f.send||e.logger.warn("IPC channel is not available. process.send is undefined."),r.actions?.forEach(t=>{if(t.config.templates===void 0)return;let o={};Object.entries(t.config.templates).forEach(([i,_])=>{try{o[i]=e.templating.compile(_)}catch(d){e.logger.error(`Error compiling template ${i} for action ${t.identifier}`,d)}}),t.config.parsedTemplates=o})}#e;#t;set callbackFunction(r){this.connectorSDK.receiver.registerCallback(this.#r(r))}get connectorSDK(){return this.#t}#r(r){return async e=>{let t=await this.#t.receiver.getActionConfig(e);return t?r(e,t):this.#t.receiver.responses.badRequest("Action not found")(e)}}};var M="mkg",R=3600,E="RowKey",y="sys_dat_wijzig",K=250,v="JSESSIONID",C=1800*1e3;var n=class s{constructor(r,e=[]){this.identifier=r.identifier,this.fields=r.fields,this.immediate=r.immediate!==!1,this.interval=r.interval??(this.fields.length>0?R:0),this.identifierField=r.identifierField??E,this.dateField=r.dateField??y,this.rows=r.rows??K,this.actions=e.map(t=>t.withParentTable(this))}cloneFromTableConfig(r){return r===!0||r.fields===void 0?this:new s({...this,fields:[...this.fields,...r.fields].filter((e,t,o)=>o.indexOf(e)===t)})}action(r){return this.actions.find(e=>e.identifier===r)}};var S=new n({identifier:"artg",fields:["artg_num","artg_rela","artg_cred","artg_oms","artg_inkoopofferte"]});var D=new n({identifier:"arti",interval:300,fields:["arti_actief","arti_code","arti_revisie","arti_oms_1","arti_tekening","arti_stlh_num","debi_num"]});var G=new n({identifier:"bwrg",fields:["bwrg_inkoopofferte","bwrg_memo","bwrg_oms","bwrg_num","bwrg_cred","bwrg_rela"]});var I=new n({identifier:"bwrk",interval:60,fields:["bwrk_actief","bwrk_oms","bwrk_num","bwrk_rsrc_instellen","bwrk_rsrc_bew","bwrk_onbemand"]});var L=new n({identifier:"clch",interval:60,fields:["arti_code","clch_num","clch_oms_1","prdt_num","clch_vofh_proj"]});var x=new n({identifier:"clcr",interval:60,fields:["arti_code","clch_num","clcr_oms_1","clcr_tekening","clcr_niveau","clcr_num","clcr_parent","stlh_num","clcr_revisie"]});var F=new n({identifier:"cprs",interval:300,fields:["cprs_actief","cprs_num","cprs_email","cprs_voornaam","cprs_voorletters","cprs_naam","cprs_telefoon","rela_num"]});var $=new n({identifier:"debi",fields:["debi_actief","debi_num","debi_kvk_num","debi_naam","rela_num","debi_btw_num"]});var B=new n({identifier:"magl",fields:["magl_memo","magl_oms_3","magl_shopfloor","magl_niet_autores","magl_oms_2","magl_code","magl_blok","magl_oms_1"]});var O=new n({identifier:"magz",fields:["magz_memo","magz_oms_1","magz_oms_2","magz_code","magz_oms_3","magz_niet_autores","magz_blok"]});var j=new n({identifier:"medw",fields:["medw_pensioenpremie_werkn","medw_spaarloon_rek","medw_betaling_per_bank","medw_premiesparen_naam","medw_ziekengeld_aanm","medw_betaling_per_rek_2","medw_auto_vd_zaak","medw_vrij_datum_5","medw_or","medw_premiesparen","medw_telefoon","medw_aanwezigheids_reg","medw_betaling_per_bank_naam","medw_postcode","medw_premiesparen_batch","medw_verschuiven","medw_onkosten","medw_pensioenpremie_werkg","medw_arbodienst_aanm","medw_lid_persver","medw_laatste_bwrk","medw_memo_contract","medw_premiesparen_iban","medw_vrij_datum_3","medw_nummer_2","medw_voornaam","medw_ziekengeld_afm","medw_mdrc","medw_spaarloon_bic","medw_spaarloon","medw_betaling_per_bank_oms_3","medw_spaarloon_iban","medw_prod_gereed_melden","medw_spaarloon_batch","medw_betaling_per_iban_2","medw_roepnaam","medw_vutpremie_werkg","medw_betaling_per_rek","medw_uren_per_dag","medw_plaats","medw_telefoon_2","medw_or_functie","medw_pensioenfonds","medw_schoenmaat","medw_naam_2","medw_spaarloon_oms1","medw_vutpremie","medw_ehbo","medw_vrij_datum_4","medw_email","medw_vrij_memo_1","medw_soort_contract","medw_vakantie_uren","medw_reiskosten","medw_vrij_veld_4","medw_waohiaat_werkg","medw_vrij_datum_2","medw_premiesparen_oms1","medw_salaris","medw_vrij_veld_3","medw_spaarloon_oms3","medw_planning","medw_raadplegen_uren","medw_spaarloon_naam","medw_vrij_veld_5","medw_ziekenfonds_aanm","medw_betaling_per_bank_2_naam","medw_partime_salaris","medw_premiesparen_oms2","medw_bedrijfsvereniging_afm","medw_betaling_per_bank_2_oms1","medw_betaling_per_bank_2","medw_betaling_per_bank_plaats","medw_tussenvoegsel","medw_instellen","medw_pensioenfonds_afm","medw_functietitel","medw_straat_2","medw_premiesparen_plaats","medw_betaling_per_bic_2","medw_betaling_per_kas_2","medw_betaling_per_bank_2_oms3","medw_premiesparen_oms3","medw_straat","medw_premiesparen_oms4","medw_dagen_per_week","medw_telefax","medw_afbeelding","medw_op_uren_pc","medw_direct_gereed"]});function P(s,r,e){let t=N(e,r),o={};for(let i of s.response.ResultData)for(let[_,d]of Object.entries(i)){let l=t[_];if(l)for(let m of d)for(let[c,g]of Object.entries(m))l.includes(c)&&(o[c]=g)}return o}function z(s,r,e){let t=N(e,r),o={};for(let[i,_]of Object.entries(s.ResultData)){let d=t[i];if(d)for(let l of _)for(let[m,c]of Object.entries(l))d.includes(m)&&(o[m]=c)}return o}function N(s,r){let e={};return s.forEach(t=>{let[o,i]=t.split(".");o&&i?(e[o]||(e[o]=[]),e[o].push(i)):o&&(e[r]||(e[r]=[]),e[r].push(o))}),e}var a=class s{#e;constructor(r){this.identifier=r.identifier,this.method=r.method,this.fields=r.fields,this.optionalFields=r.optionalFields??[],this.responseFields=r.responseFields??[],this.path=r.path??this.defaultPathFormatter,this.response=r.response??P}withParentTable(r){let e=new s(this);return e.#e=r,e}fieldSet(r){let e=new Map;return this.fields.forEach(t=>{let o=r[t];if(!o)throw new Error(`Missing required field '${t}' for action '${this.identifier}'`);e.set(t,o)}),this.optionalFields.forEach(t=>{let o=r[t];o&&e.set(t,o)}),Object.fromEntries(e.entries())}formatResponse(r){return this.response(r,this.#e.identifier,this.responseFields)}defaultPathFormatter(){return this.#e.identifier}};var de=new a({identifier:"move",method:"PUT",fields:["admi_num","part_num","magl_code","t_doel_magl","t_doel_aantal","RowKey"],path:()=>"parl/0/Service/s_partij_verplaatsen"}),U=new n({identifier:"parl",fields:[]},[de]);var me=new a({identifier:"create",method:"POST",fields:["prdh_num","prdr_num","bwrk_num","plnb_dat_start","plnb_tijd_start"]}),H=new n({identifier:"plnb",interval:60,fields:["plnb_num","prdh_num","bwrk_num","rsrc_num","medw_num","plnb_dat_start","plnb_tijd_start","plnb_wk_start","plnb_dat_eind","plnb_tijd_eind","plnb_wk_eind","plnb_dat_gestart","plnb_tijd_gestart","plnb_wk_gestart","plnb_gestart","plnb_gereed","plnb_aantal","plnb_aantal_grd","plnb_aantal_per_uur","plnb_bijloop_aantal","plnb_uitb_aantal","plnb_volgorde"]},[me]);var le=new a({identifier:"create.prdh_prdr",method:"POST",fields:["bwrk_num","prbv_tijd_per_stuk"],path:s=>{let r=s.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=s.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prbv`}}),q=new n({identifier:"prbv",fields:[]},[le]);var pe=new a({identifier:"create",method:"POST",fields:[],optionalFields:["prdh_oms_1","proj_num","prdh_dat_order","prdh_dat_planning"],responseFields:["prdh_num"]}),J=new n({identifier:"prdh",interval:300,fields:["prdh_num","prdh_forecast","prdh_historisch","prdh_dat_planning","prdh_dat_order","t_klant","proj_num","prdh_oms_1"]},[pe]);var ce=new a({identifier:"create-prdh-eindproduct",method:"POST",fields:["prdr_aantal","arti_code"],responseFields:["prdh_num","prdr_num"],path:s=>{let{prdh_num:r}=s;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");return`prdh/${r}/prdh_eindproduct/`}}),V=new n({identifier:"prdr",interval:300,fields:["prdh_num","prdr_num","prdr_aantal","arti_code","t_status_oms"]},[ce]);var ge=new a({identifier:"create.prdh_prdr",method:"POST",fields:["prmv_oms_1","cred_num"],path:s=>{let r=s.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=s.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prmv`}}),X=new n({identifier:"prmv",fields:[]},[ge]);var W=new n({identifier:"proj",interval:300,fields:["admi_num","RowTime","proj_oms","proj_historisch","proj_prdh","RowKey","proj_num","proj_vorh","proj_zoeknaam"]});var Y=new n({identifier:"rela",fields:["rela_num","rela_naam","rela_zoeknaam","rela_email","rela_actief","rela_plaats","rela_postcode","rela_www","rela_telefoon"]});var Z=new n({identifier:"rgrs",interval:60,fields:["abnk_bizcuit_id","aant_vraag_oms","abnk_oms","adon_code","adon_oms","adop_code","arti_code","bwrg_oms","bwrk_oms","cert_code","gebr_code","kbdp_oms","kltn_code","kstg_oms","land_code","magw_code","medw_betaling_per_bank_2_naam","medw_betaling_per_bank_naam","medw_naam","medw_premiesparen_naam","medw_spaarloon_naam","rela_naam","reld_oms","rsrc_oms","rsrg_oms","spco_code","strd_oms","t_bwrk_num_oms","t_bwrk_oms","t_oms","t_omschrijving","aanr_datum","aanr_num","aans_num","aant_num","abnk_num","adma_num","admi_num","afdl_num","agtn_num","apia_num","bank_num","bwrf_num","bwrg_num","bwrk_num","clcb_num","clch_num","clch_vofh_num","clch_vofh_verk_num","clcm_num","clcr_num","clct_num","cred_num","debi_num","dgbk_num","fcth_num","geac_num","ifch_num","inkg_num","iofh_num"]});var Q=new n({identifier:"rsrc",interval:300,fields:["rsrc_fcst_eindige_cap","rsrc_oms","rsrc_memo","rsrc_volgorde","rsrc_magl_in","rsrc_onbemand","rsrc_num","rsrc_calc_eindige_cap","rsrc_magl_uit","rsrc_aantal","rsrc_calc_bucket","rsrc_eindige_cap","rsrc_fcst_bucket","rsrc_bucket","rsrc_afbeelding"]});var ee=new n({identifier:"rsrd",interval:300,fields:["rsrd_zo_p2_van","rsrd_za_p2_tot","rsrd_do_p1_tot","rsrd_di_p5_tot","rsrd_zo_p5_tot","rsrd_do_p3_tot","rsrd_ma_p4_tot","rsrd_wo_p3_van","rsrd_zo_p1_van","rsrd_fd_p1_van","rsrd_do_p5_van","rsrd_wo_p2_tot","rsrd_za_van","rsrd_vr_p3_van","rsrd_za_p4_van","rsrd_ma_p5_tot","rsrd_fd_p3_van","rsrd_wo_tot","rsrd_vr_tot","rsrd_ma_p1_tot","rsrd_wo_p1_tot","rsrd_zo_p4_tot","rsrd_di_p4_tot","rsrd_ma_p3_van","rsrd_ma_p5_van","rsrd_di_tot","rsrd_fd_p4_van","rsrd_vr_van","rsrd_za_p3_tot","rsrd_za_p1_van","rsrd_zo_p5_van","rsrd_fd_p2_tot","rsrd_vr_p5_van","rsrd_di_p4_van","rsrd_za_p5_tot","rsrd_di_p3_van","rsrd_ma_p2_tot","rsrd_di_van","rsrd_do_p1_van","rsrd_zo_p3_tot","rsrd_vr_p5_tot","rsrd_zo_p1_tot","rsrd_ma_van","rsrd_do_tot","rsrd_wo_p2_van","rsrd_vr_p3_tot","rsrd_di_p1_van","rsrd_za_p5_van","rsrd_fd_p5_van","rsrd_vr_p4_tot","rsrd_wo_p3_tot","rsrd_fd_p1_tot","rsrd_fd_p3_tot","rsrd_ma_p4_van","rsrd_di_p3_tot","rsrd_zo_p4_van","rsrd_do_p4_tot","rsrd_do_van","rsrd_do_p3_van","rsrd_wo_p1_van","rsrd_za_p4_tot","rsrd_zo_van","rsrd_do_p2_tot","rsrd_vr_p2_van","rsrd_vr_p2_tot","rsrd_vr_p1_tot","rsrd_do_p5_tot","rsrd_wo_van","rsrd_zo_tot","rsrd_za_p2_van","rsrd_oms","rsrd_zo_p3_van","rsrd_fd_p2_van","rsrd_do_p4_van","rsrd_di_p2_tot","rsrd_za_p3_van","rsrd_wo_p4_van","rsrd_vr_p4_van","rsrd_wo_p4_tot","rsrd_num","rsrd_ma_tot","rsrd_ma_p1_van","rsrd_di_p5_van","rsrd_fd_p5_tot","rsrd_vr_p1_van","rsrd_di_p2_van","rsrd_do_p2_van","rsrd_wo_p5_van","rsrd_za_tot","rsrd_ma_p3_tot"]});var re=new n({identifier:"rsrg",fields:["rsrg_num","rsrg_memo","rsrg_oms"]});var te=new n({identifier:"stlh",interval:300,fields:["stlh_actief","arti_code","stlh_oms_1","stlh_num"]});var ne=new n({identifier:"stlm",interval:600,fields:["arti_code","stlm_rest_min","stlm_eenh","stlm_netto_prijs_uitb","stlm_lijst_9","stlm_oms_1","stlm_gewicht_netto","stlm_lijst_2","stlm_volume","stlm_tot_nettoprijs","stlm_oms_3","stlm_toegeleverd","stlm_netto_prijs_mat","stlm_plaat_magw","stlm_rest_hl","stlm_lijst_5","stlm_oppervlakte","stlm_num","stlm_parameter_2","stlm_parameter_1","stlm_gewicht_bruto","stlm_zaaglengte","stlm_revisie","stlm_lijst_4","stlm_eenh_nettoprijs","stlm_plaat_b","stlm_tekening","stlm_opspanlengte_hl","stlm_eenmalig","stlm_opspanlengte_pl","stlm_lijst_7","stlm_memo_extern","stlm_factor","stlm_parameter_3","stlm_aantal","stlm_gewicht_per_m","stlm_plaat_a","stlm_plaat_dx","stlm_behoefte_obv","stlm_netto_prijs_fictief","stlm_opspanlengte_hlzl","stlm_memo","stlm_io_aanvragen","stlm_opspanlengte","stlm_aantal_lengtes","stlm_volgorde","stlm_zaagsnede_lengte","stlm_lijst_8","stlm_netto_prijs_mach","stlm_pos","stlm_oms_2","stlm_eenh_bestel","stlm_netto_prijs_man","stlm_handelslengte","stlm_eigen_spec","stlm_cad","stlm_zaagsnede","stlm_netto_prijs","stlm_bestel_gezaagd","stlm_prijs_methode","stlm_rest_zl","stlm_parameter_5","stlm_plaat_dy","stlm_lijst_6","stlm_bestel_handelslengte","stlm_lengte","stlm_lijst_3","stlm_spec_prijs","stlm_lijst_1","stlm_files","stlm_parameter_4","stlm_plaat_k"]});var oe=new n({identifier:"stlr",interval:600,fields:["stlr_cad","stlr_parent_aantal","stlr_aantal","stlr_verh_oppv_aantal_grp","stlr_verh_gewicht_eenh_grp","stlr_verh_tijd_aantal_grp","stlr_verh_volume_aantal_grp","stlr_memo","stlr_stlr_herkomst","stlr_verh_aantal_eenh_grp","stlr_verh_gewicht_aantal_vrd","stlr_verh_aantal_aantal_vrd","stlr_seriegrootte","stlr_inherit_tekening","stlr_uitval","stlr_volgorde","stlr_eenmalig","stlr_oms_3","stlr_verh_volume_aantal_vrd","stlr_verh_tijd_aantal_vrd","stlr_files","stlr_oms_1","stlr_pos","stlr_verh_gewicht_aantal_grp","stlr_eindproduct_num","stlr_stlm_certificaat","stlr_verh_rest_aantal_vrd","stlr_niveau","stlr_tekening","stlr_verh_lengte_eenh_grp","stlr_prod_fase","stlr_revisie","stlr_verh_lengte_aantal_vrd","stlr_verh_volume_eenh_grp","stlr_verh_rest_aantal_grp","stlr_verh_oppv_eenh_grp","stlr_num","stlr_verh_tijd_eenh_grp","stlr_verwijzing","stlr_afronden_aant","stlr_verh_aantal_aantal_grp","stlr_oms_2","stlr_parent","stlr_verh_lengte_aantal_grp","stlr_verh_rest_eenh_grp","stlr_verw_stlh","stlr_stlh_herkomst","stlr_cad_revisie","stlr_verh_oppv_aantal_vrd","stlr_handlingstijd","stlr_tot_aantal","stlr_prod_aantal"]});var fe=new a({identifier:"create",method:"POST",fields:["debi_num"],optionalFields:["rela_num","proj_num","vorh_dat_levering","vorh_dat_gewenst","vorh_dat_order","vorh_ref_onze","vorh_ref_uw","verk_num","valu_code"],responseFields:["vorh_num"]}),ie=new n({identifier:"vorh",interval:300,fields:["valu_code","debi_num","vorh_dat_levering","vorh_dat_gewenst","vorh_dat_order","vorh_bestelcode_extern","vorh_historisch","vorh_ref_onze","vorh_ref_uw","taal_code","rela_num","vorh_num","proj_num","verk_num"]},[fe]);var he=new a({identifier:"create-vorh-line",method:"POST",fields:["arti_code"],optionalFields:["vorr_dat_gewenst","vorr_oms_1","vorr_oms_2","vorr_order_aantal","vrdg_num","vrkg_num"],path:s=>{let{vorh_num:r}=s;if(!r)throw new Error("Missing required field 'vorh_num' for action 'create'");return`vorh/${r}/vorh_vorr/`},responseFields:["vorh_num","vorr_num"]}),ue=new a({identifier:"create-prdh",method:"PUT",fields:[],path:(s,r)=>{let{vorh_num:e,vorr_num:t}=s;if(!e)throw new Error("Missing required field 'vorh_num' for action 'create-prdh'");if(!t)throw new Error("Missing required field 'vorr_num' for action 'create-prdh'");return`vorr/${r.administration}+${e}+${t}/Service/s_createproductionorder`},responseFields:["prdr.prdh_num","prdr.prdr_num"],response:z}),ve=new a({identifier:"create-backflush",method:"PUT",fields:[],path:(s,r)=>{let{vorh_num:e,vorr_num:t}=s;if(!e)throw new Error("Missing required field 'vorh_num' for action 'create-backflush'");if(!t)throw new Error("Missing required field 'vorr_num' for action 'create-backflush'");return`vorr/${r.administration}+${e}+${t}/Service/s_createbackflush`}}),se=new n({identifier:"vorr",interval:300,fields:["vorh_num","vorr_num","arti_code","vorr_dat_gewenst","vorr_oms_1","vorr_oms_2","vorr_order_aantal","vrdg_num","vrkg_num"]},[he,ue,ve]);var _e=new n({identifier:"vrdg",fields:["vrdg_grbk_pv_grd_uitb","vrdg_grbk_hw_grd_uitb","vrdg_grbk_grd_mat","vrdg_grbk_hw_grd_mat","vrdg_grbk_hw_grd_man","vrdg_grbk_vrd_mat","vrdg_grbk_hw_grd_mach","vrdg_grbk_grd_mach","vrdg_num","vrdg_grbk_pv_grd_mat","vrdg_grbk_kst_mach","vrdg_grbk_kst_mat","vrdg_grbk_pv_grd_mach","vrdg_grbk_kst_man","vrdg_grbk_kst_uitb","vrdg_oms","vrdg_grbk_grd_uitb","vrdg_grbk_pv_grd_man","vrdg_grbk_pv_vrd_mat","vrdg_grbk_grd_man"]});var we=[Y,$,j,D,Q,ee,re,O,B,te,oe,ne,J,I,G,L,_e,Z,H,S,V,X,q,U,x,F,W,ie,se],b=we.reduce((s,r)=>(s[r.identifier]=r,s),{});var k=class{#e;#t;constructor(r,e){this.#e=r,this.#t=e}get callbackFunctionChain(){return this.#r(this.#e.receiver.emitEventType(this.#e.receiver.responses.ok()))}#r(r){return async(e,t)=>{try{this.#e.logger.debug(`[MKG] Apply templates on payload: ${JSON.stringify(e.payload)}, action: ${JSON.stringify(t)}`);let o={administration:this.#e.config.administration??"1"},i=e.payload.action,_=e.payload.data;if(typeof _=="string"&&(_=JSON.parse(_)),!i||!_){let p=`[MKG] Missing required action input parameters in message ${e.eventId}`;return this.#e.logger.warn(p),this.#e.receiver.responses.badRequest(p)(e)}this.#e.logger.debug(`[MKG] Parsed action: ${i}, params json: ${JSON.stringify(_)}`);let[d,...l]=i.split("."),m=l.join("."),c=b[d];if(!c)return this.#e.logger.warn(`[MKG] Unknown table identifier "${d}" in message ${e.eventId}`),this.#e.receiver.responses.badRequest(`[MKG] Unknown table identifier "${d}"`)(e);let g=c.action(m);if(!g){let p=`[MKG] Unknown action identifier "${m}" within table "${d}" in message ${e.eventId}`;return this.#e.logger.warn(p),this.#e.receiver.responses.badRequest(p)(e)}if(e.testRun)return this.#e.logger.info(`[MKG] Test run for ${e.eventId} to action ${i}`),r(e);try{let p=g.fieldSet(_),h=await this.#t.request(g.method,`/web/v3/MKG/Documents/${g.path(_,o)}`,{...["POST","PUT"].includes(g.method)&&Object.keys(p).length>0?{data:{request:{InputData:{[d]:[p]}}}}:{}});this.#e.logger.debug(`[MKG] Got action "${m}" of table "${d}" response from MKG: ${JSON.stringify(h)}`);let A=g.formatResponse(h.data);return this.#e.logger.verbose(`[MKG] Formatted action "${m}" of table "${d}" response to ${Object.keys(A).length} fields`),r({...e,payload:{status:h.status,data:A}})}catch(p){let h=`[MKG] Failed to perform action "${m}" of table "${d}": (${p?.status}) ${p?.error??p?.message}`;return this.#e.logger.error(h),this.#e.receiver.responses.unprocessableEntity(h)(e)}}catch(o){return this.#e.receiver.responses.internalServerError(o instanceof Error?o.message:"Unknown error occurred")(e)}}}};function u(s){let{config:r}=s;return`https://${r.server}:${r.port??443}/${(r.path??"/mkg").replace(/^\/+/,"")}`}var T=class{#e;#t;#r;#n;#o;constructor(r,e,t,o){this.#e=r,this.#t=e,this.#r=t,this.#n=o,this.#o=o.fields.join(",")}get name(){return`mkg-extractor-${this.#r}`}async onRun(){try{let r=new Date,e=await this.#e.offsetStore.getOffset(`offset_${this.#r}`),t=await this.#i(e);if(t.length===0){this.#e.logger.verbose(`[MKG] No new data found for ${this.#r}`);return}await this.#e.sender.documents(t,{keyField:this.#n.identifierField,collection:`${this.#e.config.datasourceIdentifier??M}_${this.#r}`}),this.#e.logger.debug(`[MKG] Processed ${t.length} records from ${this.#r}`),this.#e.offsetStore.setOffset({id:String(t[t.length-1]?.[this.#n.identifierField]??e.id),timestamp:r.getTime(),rawTimestamp:r.toISOString()},`offset_${this.#r}`)}catch(r){throw this.#e.logger.error("[MKG] Failed to retrieve and process data from OPC UA source service",{error:r}),r}}#i=async r=>{let e=new URLSearchParams;e.set("NumRows",String(this.#n.rows)),r.id!==0&&e.set("Filter",`${this.#n.dateField}>=${r.rawTimestamp}`),e.set("FieldList",`${this.#n.dateField},${this.#o}`);try{let t=`/web/v3/MKG/Documents/${this.#r}`;this.#e.logger.verbose(`[MKG] Fetching data from '${u(this.#e)}${t}'...`);let i=(await this.#t.get(`${t}?${e.toString()}`)).data?.response?.ResultData?.[0]?.[this.#r]??[];return this.#e.logger.verbose(`[MKG] Fetched ${i.length} records from '${u(this.#e)}${t}'`),i}catch(t){let o=`[MKG] Failed to fetch data from table "${this.#r}": (${t?.status}) ${t?.error??t?.message}`;this.#e.logger.error(o)}return[]}};var ae=class extends w{constructor(e,t){super(e,t);this.init=async()=>{let{config:e}=this.connectorSDK;await this.#i(e.username,e.password).catch(t=>{throw this.connectorSDK.logger.error("[MKG] Error retrieving initial session cookie:",t),new Error("Failed to initialize connector due to authentication error.")}),Object.entries(e.tables??{}).forEach(([t,o])=>{let i=b[t];if(!i){this.connectorSDK.logger.warn(`[MKG] Unknown table identifier "${t}", skipping configuration.`);return}if(!i.interval||i.interval<=0){this.connectorSDK.logger.verbose(`[MKG] Table "${t}" does not have a valid interval configured, skipping registration.`);return}this.connectorSDK.processing.registerInterval(i.interval,new T(this.connectorSDK,this.#t,t,i.cloneFromTableConfig(o)),{immediate:i.immediate})})};this.#o=async e=>{let{config:t}=this.connectorSDK,o=await this.#i(t.username,t.password).catch(i=>{throw this.connectorSDK.logger.error("[MKG] Error retrieving session cookie:",i),i});return{...e,headers:{...e?.headers??{},...this.#s(o)}}};let o=u(this.connectorSDK);this.#r=this.connectorSDK.httpClient({baseUrl:o}),this.#t=this.connectorSDK.httpClient({baseUrl:o}).setRequestOptionsFormatter(this.#o),this.#e=new k(this.connectorSDK,this.#t),this.callbackFunction=this.#e.callbackFunctionChain}#e;#t;#r;#n;#o;async#i(e,t){let o=this.#n;if(o&&o.expiresAt>Date.now())return o.token;let i="/static/auth/j_spring_security_check";this.connectorSDK.logger.verbose(`[MKG] Retrieving session cookie from '${u(this.connectorSDK)}${i}' with 'j_username=${encodeURIComponent(e)}&j_password=${"*".repeat(t.length)}'`);let _=await this.#r.post(i,`j_username=${encodeURIComponent(e)}&j_password=${encodeURIComponent(t)}`,{headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"}});if(!_)throw new Error("Failed to authenticate and retrieve session cookie");let l=(_.headers?.["set-cookie"]??_.headers?.["Set-Cookie"]??[]).find(c=>c.startsWith(`${v}=`));if(!l)throw new Error("Session cookie not found in authentication response");let m=l.split(";")[0]?.substring(`${v}=`.length);return this.#n={token:m,expiresAt:Date.now()+C-1e3},this.connectorSDK.logger.debug(`[MKG] Session cookie fetched successfully for user '${e}', expires at ${new Date(this.#n.expiresAt).toISOString()}`),await this.#_(m),m}#s(e){let{config:t}=this.connectorSDK,{apiToken:o}=t;return this.connectorSDK.logger.verbose(`[MKG] Using api headers: ${v}=${"*".repeat(e.length)} & X-CustomerID=${"*".repeat(o.length)}`),{Cookie:`${v}=${e}`,"X-CustomerID":o}}async#_(e){let{config:t}=this.connectorSDK,{administration:o,fiscalYear:i,language:_}=t;if(!(o?.length||i?.length||_?.length)){this.connectorSDK.logger.verbose("[MKG] No administration settings to update.");return}let d="/web/v3/MKG/Settings",l=[];o&&l.push({t_name:"Administration",t_value:o}),i&&l.push({t_name:"FiscalYear",t_value:i}),_&&l.push({t_name:"Language",t_value:_}),this.connectorSDK.logger.verbose(`[MKG] Updating administration settings: ${JSON.stringify(l)}`),await this.#r.put(d,{request:{InputData:{t_setting:l}}},{headers:{Accept:"application/json","Content-Type":"application/json",...this.#s(e)}}).catch(m=>{throw this.connectorSDK.logger.error("[MKG] Error updating administration settings:",m),m}),this.connectorSDK.logger.debug("[MKG] Administration settings updated successfully.")}};export{ae as ConnectorRunnerMkg};
2
2
  //# sourceMappingURL=index.js.map