@transai/connector-runner-mkg 0.4.1 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/index.cjs +1 -1
- package/index.cjs.map +2 -2
- package/index.js +1 -1
- package/index.js.map +2 -2
- package/libs/connector-runtime-sdk/src/lib/sdk/receiver.sdk.interface.d.ts +1 -1
- package/libs/types/src/lib/management-api/workflow/workflow-run.d.ts +1 -5
- package/libs/types/src/lib/management-api/workflow/workflow.drawing.d.ts +1 -9
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## 0.5.0 (2025-12-05)
|
|
2
|
+
|
|
3
|
+
### 🧱 Updated Dependencies
|
|
4
|
+
|
|
5
|
+
- Updated @transai/connector-runtime-sdk to 0.4.0
|
|
6
|
+
|
|
7
|
+
## 0.4.1 (2025-12-02)
|
|
8
|
+
|
|
9
|
+
### 🧱 Updated Dependencies
|
|
10
|
+
|
|
11
|
+
- Updated @transai/connector-runtime-sdk to 0.3.1
|
|
12
|
+
|
|
1
13
|
## 0.4.0 (2025-11-26)
|
|
2
14
|
|
|
3
15
|
### 🚀 Features
|
package/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var te=Object.create;var f=Object.defineProperty;var _e=Object.getOwnPropertyDescriptor;var ie=Object.getOwnPropertyNames;var ne=Object.getPrototypeOf,ae=Object.prototype.hasOwnProperty;var oe=(n,r)=>{for(var e in r)f(n,e,{get:r[e],enumerable:!0})},E=(n,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of ie(r))!ae.call(n,i)&&i!==e&&f(n,i,{get:()=>r[i],enumerable:!(t=_e(r,i))||t.enumerable});return n};var se=(n,r,e)=>(e=n!=null?te(ne(n)):{},E(r||!n||!n.__esModule?f(e,"default",{value:n,enumerable:!0}):e,n)),de=n=>E(f({},"__esModule",{value:!0}),n);var be={};oe(be,{ConnectorRunnerMkg:()=>T});module.exports=de(be);var l=se(require("node:process")),h=class{constructor(r,e){this.#e="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#t=e,l.on?l.on("message",t=>{t.cmd===this.#e&&e.logger.verbose(`${l.pid} Received message from parent process:`,t)}):e.logger.warn("IPC channel is not available. process.on is undefined."),l.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 i={};Object.entries(t.config.templates).forEach(([a,p])=>{try{i[a]=e.templating.compile(p)}catch(d){e.logger.error(`Error compiling template ${a} for action ${t.identifier}`,d)}}),t.config.parsedTemplates=i})}#e;#t;set callbackFunction(r){this.connectorSDK.receiver.registerCallback(this.#r(r))}get connectorSDK(){return this.#t}#r(r){return async e=>{let t=this.#t.receiver.getActionConfig(e);return t?r(e,t):this.#t.receiver.responses.badRequest("Action not found")(e)}}};var j="mkg",K=3600,C="RowKey",S="sys_dat_wijzig",R=250,b="JSESSIONID",I=1800*1e3;var _=class n{constructor(r,e=[]){this.identifier=r.identifier,this.fields=r.fields,this.immediate=r.immediate!==!1,this.interval=r.interval??(this.fields.length>0?K:0),this.identifierField=r.identifierField??C,this.dateField=r.dateField??S,this.rows=r.rows??R,this.actions=e.map(t=>t.withParentTable(this))}cloneFromTableConfig(r){return r===!0||r.fields===void 0?this:new n({...this,fields:this.fields.filter(e=>r.fields?.includes(e))})}action(r){return this.actions.find(e=>e.identifier===r)}};var y=new _({identifier:"artg",fields:["artg_num","artg_rela","artg_cred","artg_oms","artg_inkoopofferte"]});var D=new _({identifier:"arti",interval:300,fields:["arti_parameter_2","arti_prijs_vast_man","arti_seriegrootte","arti_vrij_memo_1","arti_bestellen","arti_btw_aanpasbaar","arti_vrij_datum_1","arti_eenh_uitgifte","arti_eenh_prijs_inkoop","arti_partij_per_1","arti_partij","arti_voorraad_waarde_mach","arti_parameter_4","arti_eenh_ontvangst","arti_prijs_vast_mat","arti_verh_tijd_aantal_grp","arti_voorraad_aantal","arti_bestel_freq_eenh","arti_vrij_datum_4","arti_eenh_vrk","arti_trans_eenh","arti_kosten_artikel","arti_verh_tijd_aantal_vrd","arti_verh_volume_aantal_grp","arti_memo_verkoop_intern","arti_verh_volume_aantal_vrd","arti_vrij_memo_2","arti_zoeknaam","arti_blok_verkoop","arti_verh_aantal_aantal_vrd","arti_actief","arti_bestelcode","arti_locatie","arti_prijs_netto_mat","arti_prijs_vast","arti_vrij_veld_1","arti_parameter_1","arti_vrij_datum_2","arti_gewicht_per_m","arti_memo_inkoop_extern","arti_inkoopofferte","arti_prijs_gemiddeld_mat","arti_dienst_verkoop","arti_oms_2","arti_levertijd_inkoop","arti_verh_tijd_eenh_grp","arti_prijs_netto_uitb","arti_oppervlakte","arti_voorraadsysteem","arti_kostprijssysteem","arti_niet_autores","arti_wvp_obv_gvp","arti_vrij_memo_5","arti_prijs_inkoop","arti_levertijd_productie","arti_verh_gewicht_aantal_grp","arti_verh_gewicht_eenh_grp","arti_vrij_veld_2","arti_prijs_gemiddeld_mach","arti_lijst_3","arti_verh_gewicht_aantal_vrd","arti_parameter_3","arti_lijst_1","arti_prijs_vast_mach","arti_vrij_veld_5","arti_ict_fact_verkoop","arti_verh_lengte_aantal_vrd","arti_backflush","arti_vrij_datum_3","arti_vrd_aanvullen_tot","arti_inkoop_artikel","arti_verh_rest_aantal_grp","arti_eenh_vrd","arti_prijs_vast_uitb","arti_trans_gewicht","arti_memo_inkoop_intern","arti_vrij_memo_3","arti_prijs_netto","arti_mat_lengte","arti_bestelhoeveelheid","arti_eenh_bestelling","arti_verh_oppv_eenh_grp","arti_voorraad_artikel","arti_backflush_uitval","arti_lijst_9","arti_vrij_datum_5","arti_verh_oppv_aantal_grp","arti_prijs_gemiddeld_uitb","arti_prijs_verkoop_eenm","arti_oms_3","arti_oms_1"]});var L=new _({identifier:"bwrg",fields:["bwrg_inkoopofferte","bwrg_memo","bwrg_oms","bwrg_num","bwrg_cred","bwrg_rela"]});var G=new _({identifier:"bwrk",interval:60,fields:["bwrk_bwrf_instellen","bwrk_oms","bwrk_rela","bwrk_inkoopofferte","bwrk_reden_vroeg_laat","bwrk_tarief_netto_instel","bwrk_actief","bwrk_num","bwrk_grbk_direct_verantw","bwrk_actief_pauze","bwrk_memo","bwrk_aanloop_type","bwrk_medw_ovz","bwrk_grbk_indirect_kosten_mach","bwrk_niet_op_uren_pc","bwrk_memo_instel","bwrk_afloop_tijd","bwrk_magl_uit","bwrk_wachttijd_voor","bwrk_magl_in","bwrk_wegingsfactor_nc","bwrk_rsrc_instellen","bwrk_vspt_bew","bwrk_afloop_perc","bwrk_rsrc_bew","bwrk_afloop_type","bwrk_tarief_netto_mach","bwrk_memo_extern","bwrk_specificeren","bwrk_afbeelding","bwrk_wachttijd_na","bwrk_uitb_prijs","bwrk_man_per_machine","bwrk_aanloop_perc","bwrk_insteltijd","bwrk_tarief_calc_mach","bwrk_uitb_dagen","bwrk_grbk_direct_verantw_mach","bwrk_start_type","bwrk_volgorde","bwrk_grbk_indirect_kosten","bwrk_uitbesteding","bwrk_uitb_prijs_eenh","bwrk_eenmalig","bwrk_vspt_instel","bwrk_vspt_uitb","bwrk_sf_start_gereed","bwrk_tarief_calc_instel","bwrk_onbemand","bwrk_grbk_indirect_verantw","bwrk_grbk_indirect_verantw_mach","bwrk_aanloop_tijd"]});var x=new _({identifier:"clch",interval:60,fields:["clch_volgnummer","clch_op_dek_uit","clch_op_calc_mat","clch_vofh_verk_num","clch_op_calc_mach","clch_vofh_dat_antwoord","clch_kostprijs_methode_bew","clch_op_calc_man","clch_vofr_oms_1","clch_vofh_dat_levering","clch_lengte","clch_vofh_ref_onze","clch_calc_methode_mat","clch_op_calc_uit","clch_memo","clch_vofh_proj","clch_vofr_order_aantal","clch_calc_methode_bew","clch_op_dek_man","clch_op_dek_mach","clch_oms_1","clch_files","clch_num","clch_op_dek_mat","clch_vofh_rela","clch_vofh_num","clch_oms_3","clch_vofh_dat_aanvraag","clch_vofh_ref_uw","clch_vofr_arti","clch_oms_2","clch_boekjaar_afh","clch_vofr_eenh_order","clch_fase_planning"]});var B=new _({identifier:"debi",fields:["debi_actief","debi_email","debi_vrij_datum_4","debi_pkbh_verz_type","debi_vrij_memo_3","debi_vrij_memo_4","debi_zoeknaam","debi_bic","debi_kredietlimiet2","debi_deellev","debi_fcth_verz_type","debi_plaats_bank","debi_dat_btw_verificatie","debi_vrij_datum_1","debi_naam","debi_btw","debi_peppol_id","debi_kvk_num","debi_vrij_memo_2","debi_fact_naam_2","debi_docs","debi_bet_wijze","debi_blok","debi_vrij_datum_5","debi_bankcode","debi_memo_extern","debi_naam_2","debi_rekening","debi_aantal_fact","debi_num","debi_vrij_veld_2","debi_status_btw_verificatie","debi_deelfact","debi_comm_opslag","debi_naam_btw_verificatie","debi_vrij_veld_3","debi_vrij_veld_4","debi_incasso","debi_vrij_memo_1","debi_vrij_memo_5","debi_max_regels_pakb","debi_vrij_datum_3","debi_iban","debi_max_regels_fact","debi_toon_opslagen","debi_memo_kredietbewaking","debi_kredietlimiet","debi_debi_fact","debi_vrij_veld_5","debi_vrij_datum_2","debi_btw_num","debi_fact_naam","debi_vrij_veld_1","debi_memo_intern","debi_adres_btw_verificatie"]});var $=new _({identifier:"magl",fields:["magl_memo","magl_oms_3","magl_shopfloor","magl_niet_autores","magl_oms_2","magl_code","magl_blok","magl_oms_1"]});var z=new _({identifier:"magz",fields:["magz_memo","magz_oms_1","magz_oms_2","magz_code","magz_oms_3","magz_niet_autores","magz_blok"]});var O=new _({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 o=class n{#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 n(this);return e.#e=r,e}fieldSet(r){let e=new Map;return this.fields.forEach(t=>{let i=r[t];if(!i)throw new Error(`Missing required field '${t}' for action '${this.identifier}'`);e.set(t,i)}),this.optionalFields.forEach(t=>{let i=r[t];i&&e.set(t,i)}),Object.fromEntries(e.entries())}};var me=new o({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"}),P=new _({identifier:"parl",fields:[]},[me]);var le=new o({identifier:"create",method:"POST",fields:["prdh_num","prdr_num","bwrk_num","plnb_dat_start","plnb_tijd_start"]}),F=new _({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"]},[le]);var pe=new o({identifier:"create.prdh_prdr",method:"POST",fields:["bwrk_num","prbv_tijd_per_stuk"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=n.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prbv`}}),N=new _({identifier:"prbv",fields:[]},[pe]);var ce=new o({identifier:"create",method:"POST",fields:["prdh_oms_1"]}),H=new _({identifier:"prdh",interval:60,fields:["prdh_op_dek_mat","prdh_op_dek_uit","prdh_oms_1","prdh_wk_order","prdh_memo_extern","prdh_wk_gepland","prdh_files","prdh_op_vcnc_uit","prdh_oms_2","prdh_memo_intern","prdh_dat_order","prdh_op_vcnc_man","prdh_op_vcnc_mat","prdh_op_vcnc_mach","prdh_op_dek_man","prdh_fase_planning","prdh_wk_planning","prdh_kostprijs_methode_bew","prdh_calc_methode_mat","prdh_image","prdh_dat_gepland","prdh_calc_methode_bew","prdh_historisch","prdh_oms_3","prdh_op_dek_mach","prdh_dat_planning","prdh_forecast","prdh_num"]},[ce]);var ge=new o({identifier:"create.prdh",method:"POST",fields:["prdr_oms_1","prdr_tot_aantal","prdr_id"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");return`prdh/${r}/prdh_eindproduct/`}}),U=new _({identifier:"prdr",fields:[]},[ge]);var fe=new o({identifier:"create.prdh_prdr",method:"POST",fields:["prmv_oms_1","cred_num"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=n.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prmv`}}),q=new _({identifier:"prmv",fields:[]},[fe]);var J=new _({identifier:"rela",fields:["rela_vrij_datum_4","rela_naam","rela_vrij_datum_3","rela_vrij_datum_2","rela_postcode","rela_www","rela_vrij_datum_5","rela_vrij_datum_1","rela_vrij_veld_1","rela_email","rela_telefoon","rela_plaats","rela_moeder","rela_vrij_veld_3","rela_vrij_veld_5","rela_vrij_veld_2","rela_vrij_veld_4","rela_vrij_memo_1","rela_num","rela_resr","rela_memo","rela_vrij_memo_5","rela_naam_2","rela_zoeknaam","rela_vrij_memo_2","rela_plaats_2","rela_vrij_memo_3","rela_vrij_memo_4","rela_afbeelding","rela_files","rela_fax","rela_info","rela_actief"]});var W=new _({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 X=new _({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 V=new _({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 Y=new _({identifier:"rsrg",fields:["rsrg_num","rsrg_memo","rsrg_oms"]});var Z=new _({identifier:"stlh",interval:600,fields:["arti_code","stlh_teken","stlh_rev_lengte","stlh_bron","stlh_volgnummer","stlh_oms_2","stlh_oms_1","stlh_memo","stlh_revisie","stlh_rev_preview","stlh_actief","stlh_lengte","stlh_num","stlh_oms_3","stlh_files","stlh_prefix"]});var Q=new _({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 ee=new _({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 re=new _({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 he=[J,B,O,D,X,V,Y,z,$,Z,ee,Q,H,G,L,x,re,W,F,y,U,q,N,P],v=he.reduce((n,r)=>(n[r.identifier]=r,n),{});var w=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.created()))}#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 i=t.config.parsedTemplates,a=i.action({inputs:e.payload}).trim(),p=i.params({inputs:e.payload}).trim(),d=JSON.parse(p);this.#e.logger.debug(`[MKG] Parsed action: ${a}, params json: ${JSON.stringify(d)}`);let[s,...u]=a.split("."),g=u.join("."),M=v[s];if(!M)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 c=M.action(g);if(!c){let m=`[MKG] Unknown action identifier "${g}" 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} with payload ${p} to action ${a}`),r(e);try{let m=await this.#t.request(c.method,`/web/v3/MKG/Documents/${c.path(d)}`,{...["POST","PUT"].includes(c.method)?{data:{request:{InputData:{[s]:[c.fieldSet(d)]}}}}:{}});this.#e.logger.debug(`[MKG] Got action "${g}" of table "${s}" response from MKG: ${JSON.stringify(m)}`)}catch(m){let A=`[MKG] Failed to perform action "${g}" of table "${s}": (${m?.status}) ${m?.error??m?.message}`;return this.#e.logger.error(A),this.#e.receiver.responses.unprocessableEntity(A)(e)}return r(e)}catch(i){return this.#e.receiver.responses.internalServerError(i instanceof Error?i.message:"Unknown error occurred")(e)}}}};var k=class{#e;#t;#r;#_;#i;constructor(r,e,t,i){this.#e=r,this.#t=e,this.#r=t,this.#_=i,this.#i=i.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.#n(e);t.length>0&&await this.#e.sender.documents(t,{keyField:this.#_.identifierField,collection:`${this.#e.config.datasourceIdentifier??j}_${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.#_.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}}#n=async r=>{let e=new URLSearchParams;e.set("NumRows",String(this.#_.rows)),e.set("Filter",`${this.#_.dateField}>=${r.rawTimestamp}`),e.set("FieldList",`${this.#_.dateField},${this.#i}`);try{return(await this.#t.get(`/web/v3/MKG/Documents/${this.#r}?${e.toString()}`)).data?.response?.ResultData?.[0]?.[this.#r]??[]}catch(t){let i=`[MKG] Failed to fetch data from table "${this.#r}": (${t?.status}) ${t?.error??t?.message}`;this.#e.logger.error(i)}return[]}};var T=class extends h{constructor(e,t){super(e,t);this.init=async()=>{let{config:e}=this.connectorSDK;Object.entries(e.tables??{}).forEach(([t,i])=>{let a=v[t];if(!a){this.connectorSDK.logger.warn(`[MKG] Unknown table identifier "${t}", skipping configuration.`);return}if(!a.interval||a.interval<=0){this.connectorSDK.logger.verbose(`[MKG] Table "${t}" does not have a valid interval configured, skipping registration.`);return}this.connectorSDK.processing.registerInterval(a.interval,new k(this.connectorSDK,this.#t,t,a.cloneFromTableConfig(i)),{immediate:a.immediate})})};this.#i=async e=>{let{config:t}=this.connectorSDK;return{...e,headers:{...e?.headers??{},Cookie:`${b}=${await this.#n(t.username,t.password)}`,"X-CustomerID":t.apiToken}}};let{config:i}=this.connectorSDK;this.#r=this.connectorSDK.httpClient({baseUrl:`https://${i.server}:${i.port??443}/${(i.path??"/mkg").replace(/^\/+/,"")}`}),this.#t=this.connectorSDK.httpClient({baseUrl:`https://${i.server}:${i.port??443}/${(i.path??"/mkg").replace(/^\/+/,"")}`}).setRequestOptionsFormatter(this.#i),this.#e=new w(this.connectorSDK,this.#t),this.callbackFunction=this.#e.callbackFunctionChain}#e;#t;#r;#_;#i;async#n(e,t){let i=this.#_;if(i&&i.expiresAt>Date.now())return i.token;let a=await this.#r.post("/static/auth/j_spring_security_check",{j_username:e,j_password:t},{headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"}});if(!a)throw new Error("Failed to authenticate and retrieve session cookie");let d=(a.headers?.["set-cookie"]??a.headers?.["Set-Cookie"]??[]).find(u=>u.startsWith(`${b}=`));if(!d)throw new Error("Session cookie not found in authentication response");let s=d.split(";")[0]?.substring(`${b}=`.length);return this.#_={token:s,expiresAt:Date.now()+I-1e3},s}};0&&(module.exports={ConnectorRunnerMkg});
|
|
1
|
+
"use strict";var te=Object.create;var f=Object.defineProperty;var _e=Object.getOwnPropertyDescriptor;var ie=Object.getOwnPropertyNames;var ne=Object.getPrototypeOf,ae=Object.prototype.hasOwnProperty;var oe=(n,r)=>{for(var e in r)f(n,e,{get:r[e],enumerable:!0})},E=(n,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of ie(r))!ae.call(n,i)&&i!==e&&f(n,i,{get:()=>r[i],enumerable:!(t=_e(r,i))||t.enumerable});return n};var se=(n,r,e)=>(e=n!=null?te(ne(n)):{},E(r||!n||!n.__esModule?f(e,"default",{value:n,enumerable:!0}):e,n)),de=n=>E(f({},"__esModule",{value:!0}),n);var be={};oe(be,{ConnectorRunnerMkg:()=>T});module.exports=de(be);var l=se(require("node:process")),h=class{constructor(r,e){this.#e="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#t=e,l.on?l.on("message",t=>{t.cmd===this.#e&&e.logger.verbose(`${l.pid} Received message from parent process:`,t)}):e.logger.warn("IPC channel is not available. process.on is undefined."),l.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 i={};Object.entries(t.config.templates).forEach(([a,p])=>{try{i[a]=e.templating.compile(p)}catch(d){e.logger.error(`Error compiling template ${a} for action ${t.identifier}`,d)}}),t.config.parsedTemplates=i})}#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 j="mkg",K=3600,C="RowKey",S="sys_dat_wijzig",R=250,b="JSESSIONID",I=1800*1e3;var _=class n{constructor(r,e=[]){this.identifier=r.identifier,this.fields=r.fields,this.immediate=r.immediate!==!1,this.interval=r.interval??(this.fields.length>0?K:0),this.identifierField=r.identifierField??C,this.dateField=r.dateField??S,this.rows=r.rows??R,this.actions=e.map(t=>t.withParentTable(this))}cloneFromTableConfig(r){return r===!0||r.fields===void 0?this:new n({...this,fields:this.fields.filter(e=>r.fields?.includes(e))})}action(r){return this.actions.find(e=>e.identifier===r)}};var y=new _({identifier:"artg",fields:["artg_num","artg_rela","artg_cred","artg_oms","artg_inkoopofferte"]});var D=new _({identifier:"arti",interval:300,fields:["arti_parameter_2","arti_prijs_vast_man","arti_seriegrootte","arti_vrij_memo_1","arti_bestellen","arti_btw_aanpasbaar","arti_vrij_datum_1","arti_eenh_uitgifte","arti_eenh_prijs_inkoop","arti_partij_per_1","arti_partij","arti_voorraad_waarde_mach","arti_parameter_4","arti_eenh_ontvangst","arti_prijs_vast_mat","arti_verh_tijd_aantal_grp","arti_voorraad_aantal","arti_bestel_freq_eenh","arti_vrij_datum_4","arti_eenh_vrk","arti_trans_eenh","arti_kosten_artikel","arti_verh_tijd_aantal_vrd","arti_verh_volume_aantal_grp","arti_memo_verkoop_intern","arti_verh_volume_aantal_vrd","arti_vrij_memo_2","arti_zoeknaam","arti_blok_verkoop","arti_verh_aantal_aantal_vrd","arti_actief","arti_bestelcode","arti_locatie","arti_prijs_netto_mat","arti_prijs_vast","arti_vrij_veld_1","arti_parameter_1","arti_vrij_datum_2","arti_gewicht_per_m","arti_memo_inkoop_extern","arti_inkoopofferte","arti_prijs_gemiddeld_mat","arti_dienst_verkoop","arti_oms_2","arti_levertijd_inkoop","arti_verh_tijd_eenh_grp","arti_prijs_netto_uitb","arti_oppervlakte","arti_voorraadsysteem","arti_kostprijssysteem","arti_niet_autores","arti_wvp_obv_gvp","arti_vrij_memo_5","arti_prijs_inkoop","arti_levertijd_productie","arti_verh_gewicht_aantal_grp","arti_verh_gewicht_eenh_grp","arti_vrij_veld_2","arti_prijs_gemiddeld_mach","arti_lijst_3","arti_verh_gewicht_aantal_vrd","arti_parameter_3","arti_lijst_1","arti_prijs_vast_mach","arti_vrij_veld_5","arti_ict_fact_verkoop","arti_verh_lengte_aantal_vrd","arti_backflush","arti_vrij_datum_3","arti_vrd_aanvullen_tot","arti_inkoop_artikel","arti_verh_rest_aantal_grp","arti_eenh_vrd","arti_prijs_vast_uitb","arti_trans_gewicht","arti_memo_inkoop_intern","arti_vrij_memo_3","arti_prijs_netto","arti_mat_lengte","arti_bestelhoeveelheid","arti_eenh_bestelling","arti_verh_oppv_eenh_grp","arti_voorraad_artikel","arti_backflush_uitval","arti_lijst_9","arti_vrij_datum_5","arti_verh_oppv_aantal_grp","arti_prijs_gemiddeld_uitb","arti_prijs_verkoop_eenm","arti_oms_3","arti_oms_1"]});var L=new _({identifier:"bwrg",fields:["bwrg_inkoopofferte","bwrg_memo","bwrg_oms","bwrg_num","bwrg_cred","bwrg_rela"]});var G=new _({identifier:"bwrk",interval:60,fields:["bwrk_bwrf_instellen","bwrk_oms","bwrk_rela","bwrk_inkoopofferte","bwrk_reden_vroeg_laat","bwrk_tarief_netto_instel","bwrk_actief","bwrk_num","bwrk_grbk_direct_verantw","bwrk_actief_pauze","bwrk_memo","bwrk_aanloop_type","bwrk_medw_ovz","bwrk_grbk_indirect_kosten_mach","bwrk_niet_op_uren_pc","bwrk_memo_instel","bwrk_afloop_tijd","bwrk_magl_uit","bwrk_wachttijd_voor","bwrk_magl_in","bwrk_wegingsfactor_nc","bwrk_rsrc_instellen","bwrk_vspt_bew","bwrk_afloop_perc","bwrk_rsrc_bew","bwrk_afloop_type","bwrk_tarief_netto_mach","bwrk_memo_extern","bwrk_specificeren","bwrk_afbeelding","bwrk_wachttijd_na","bwrk_uitb_prijs","bwrk_man_per_machine","bwrk_aanloop_perc","bwrk_insteltijd","bwrk_tarief_calc_mach","bwrk_uitb_dagen","bwrk_grbk_direct_verantw_mach","bwrk_start_type","bwrk_volgorde","bwrk_grbk_indirect_kosten","bwrk_uitbesteding","bwrk_uitb_prijs_eenh","bwrk_eenmalig","bwrk_vspt_instel","bwrk_vspt_uitb","bwrk_sf_start_gereed","bwrk_tarief_calc_instel","bwrk_onbemand","bwrk_grbk_indirect_verantw","bwrk_grbk_indirect_verantw_mach","bwrk_aanloop_tijd"]});var x=new _({identifier:"clch",interval:60,fields:["clch_volgnummer","clch_op_dek_uit","clch_op_calc_mat","clch_vofh_verk_num","clch_op_calc_mach","clch_vofh_dat_antwoord","clch_kostprijs_methode_bew","clch_op_calc_man","clch_vofr_oms_1","clch_vofh_dat_levering","clch_lengte","clch_vofh_ref_onze","clch_calc_methode_mat","clch_op_calc_uit","clch_memo","clch_vofh_proj","clch_vofr_order_aantal","clch_calc_methode_bew","clch_op_dek_man","clch_op_dek_mach","clch_oms_1","clch_files","clch_num","clch_op_dek_mat","clch_vofh_rela","clch_vofh_num","clch_oms_3","clch_vofh_dat_aanvraag","clch_vofh_ref_uw","clch_vofr_arti","clch_oms_2","clch_boekjaar_afh","clch_vofr_eenh_order","clch_fase_planning"]});var B=new _({identifier:"debi",fields:["debi_actief","debi_email","debi_vrij_datum_4","debi_pkbh_verz_type","debi_vrij_memo_3","debi_vrij_memo_4","debi_zoeknaam","debi_bic","debi_kredietlimiet2","debi_deellev","debi_fcth_verz_type","debi_plaats_bank","debi_dat_btw_verificatie","debi_vrij_datum_1","debi_naam","debi_btw","debi_peppol_id","debi_kvk_num","debi_vrij_memo_2","debi_fact_naam_2","debi_docs","debi_bet_wijze","debi_blok","debi_vrij_datum_5","debi_bankcode","debi_memo_extern","debi_naam_2","debi_rekening","debi_aantal_fact","debi_num","debi_vrij_veld_2","debi_status_btw_verificatie","debi_deelfact","debi_comm_opslag","debi_naam_btw_verificatie","debi_vrij_veld_3","debi_vrij_veld_4","debi_incasso","debi_vrij_memo_1","debi_vrij_memo_5","debi_max_regels_pakb","debi_vrij_datum_3","debi_iban","debi_max_regels_fact","debi_toon_opslagen","debi_memo_kredietbewaking","debi_kredietlimiet","debi_debi_fact","debi_vrij_veld_5","debi_vrij_datum_2","debi_btw_num","debi_fact_naam","debi_vrij_veld_1","debi_memo_intern","debi_adres_btw_verificatie"]});var $=new _({identifier:"magl",fields:["magl_memo","magl_oms_3","magl_shopfloor","magl_niet_autores","magl_oms_2","magl_code","magl_blok","magl_oms_1"]});var z=new _({identifier:"magz",fields:["magz_memo","magz_oms_1","magz_oms_2","magz_code","magz_oms_3","magz_niet_autores","magz_blok"]});var O=new _({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 o=class n{#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 n(this);return e.#e=r,e}fieldSet(r){let e=new Map;return this.fields.forEach(t=>{let i=r[t];if(!i)throw new Error(`Missing required field '${t}' for action '${this.identifier}'`);e.set(t,i)}),this.optionalFields.forEach(t=>{let i=r[t];i&&e.set(t,i)}),Object.fromEntries(e.entries())}};var me=new o({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"}),P=new _({identifier:"parl",fields:[]},[me]);var le=new o({identifier:"create",method:"POST",fields:["prdh_num","prdr_num","bwrk_num","plnb_dat_start","plnb_tijd_start"]}),F=new _({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"]},[le]);var pe=new o({identifier:"create.prdh_prdr",method:"POST",fields:["bwrk_num","prbv_tijd_per_stuk"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=n.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prbv`}}),N=new _({identifier:"prbv",fields:[]},[pe]);var ce=new o({identifier:"create",method:"POST",fields:["prdh_oms_1"]}),H=new _({identifier:"prdh",interval:60,fields:["prdh_op_dek_mat","prdh_op_dek_uit","prdh_oms_1","prdh_wk_order","prdh_memo_extern","prdh_wk_gepland","prdh_files","prdh_op_vcnc_uit","prdh_oms_2","prdh_memo_intern","prdh_dat_order","prdh_op_vcnc_man","prdh_op_vcnc_mat","prdh_op_vcnc_mach","prdh_op_dek_man","prdh_fase_planning","prdh_wk_planning","prdh_kostprijs_methode_bew","prdh_calc_methode_mat","prdh_image","prdh_dat_gepland","prdh_calc_methode_bew","prdh_historisch","prdh_oms_3","prdh_op_dek_mach","prdh_dat_planning","prdh_forecast","prdh_num"]},[ce]);var ge=new o({identifier:"create.prdh",method:"POST",fields:["prdr_oms_1","prdr_tot_aantal","prdr_id"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");return`prdh/${r}/prdh_eindproduct/`}}),U=new _({identifier:"prdr",fields:[]},[ge]);var fe=new o({identifier:"create.prdh_prdr",method:"POST",fields:["prmv_oms_1","cred_num"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=n.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prmv`}}),q=new _({identifier:"prmv",fields:[]},[fe]);var J=new _({identifier:"rela",fields:["rela_vrij_datum_4","rela_naam","rela_vrij_datum_3","rela_vrij_datum_2","rela_postcode","rela_www","rela_vrij_datum_5","rela_vrij_datum_1","rela_vrij_veld_1","rela_email","rela_telefoon","rela_plaats","rela_moeder","rela_vrij_veld_3","rela_vrij_veld_5","rela_vrij_veld_2","rela_vrij_veld_4","rela_vrij_memo_1","rela_num","rela_resr","rela_memo","rela_vrij_memo_5","rela_naam_2","rela_zoeknaam","rela_vrij_memo_2","rela_plaats_2","rela_vrij_memo_3","rela_vrij_memo_4","rela_afbeelding","rela_files","rela_fax","rela_info","rela_actief"]});var W=new _({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 X=new _({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 V=new _({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 Y=new _({identifier:"rsrg",fields:["rsrg_num","rsrg_memo","rsrg_oms"]});var Z=new _({identifier:"stlh",interval:600,fields:["arti_code","stlh_teken","stlh_rev_lengte","stlh_bron","stlh_volgnummer","stlh_oms_2","stlh_oms_1","stlh_memo","stlh_revisie","stlh_rev_preview","stlh_actief","stlh_lengte","stlh_num","stlh_oms_3","stlh_files","stlh_prefix"]});var Q=new _({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 ee=new _({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 re=new _({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 he=[J,B,O,D,X,V,Y,z,$,Z,ee,Q,H,G,L,x,re,W,F,y,U,q,N,P],v=he.reduce((n,r)=>(n[r.identifier]=r,n),{});var w=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.created()))}#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 i=t.config.parsedTemplates,a=i.action({inputs:e.payload}).trim(),p=i.params({inputs:e.payload}).trim(),d=JSON.parse(p);this.#e.logger.debug(`[MKG] Parsed action: ${a}, params json: ${JSON.stringify(d)}`);let[s,...u]=a.split("."),g=u.join("."),M=v[s];if(!M)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 c=M.action(g);if(!c){let m=`[MKG] Unknown action identifier "${g}" 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} with payload ${p} to action ${a}`),r(e);try{let m=await this.#t.request(c.method,`/web/v3/MKG/Documents/${c.path(d)}`,{...["POST","PUT"].includes(c.method)?{data:{request:{InputData:{[s]:[c.fieldSet(d)]}}}}:{}});this.#e.logger.debug(`[MKG] Got action "${g}" of table "${s}" response from MKG: ${JSON.stringify(m)}`)}catch(m){let A=`[MKG] Failed to perform action "${g}" of table "${s}": (${m?.status}) ${m?.error??m?.message}`;return this.#e.logger.error(A),this.#e.receiver.responses.unprocessableEntity(A)(e)}return r(e)}catch(i){return this.#e.receiver.responses.internalServerError(i instanceof Error?i.message:"Unknown error occurred")(e)}}}};var k=class{#e;#t;#r;#_;#i;constructor(r,e,t,i){this.#e=r,this.#t=e,this.#r=t,this.#_=i,this.#i=i.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.#n(e);t.length>0&&await this.#e.sender.documents(t,{keyField:this.#_.identifierField,collection:`${this.#e.config.datasourceIdentifier??j}_${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.#_.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}}#n=async r=>{let e=new URLSearchParams;e.set("NumRows",String(this.#_.rows)),e.set("Filter",`${this.#_.dateField}>=${r.rawTimestamp}`),e.set("FieldList",`${this.#_.dateField},${this.#i}`);try{return(await this.#t.get(`/web/v3/MKG/Documents/${this.#r}?${e.toString()}`)).data?.response?.ResultData?.[0]?.[this.#r]??[]}catch(t){let i=`[MKG] Failed to fetch data from table "${this.#r}": (${t?.status}) ${t?.error??t?.message}`;this.#e.logger.error(i)}return[]}};var T=class extends h{constructor(e,t){super(e,t);this.init=async()=>{let{config:e}=this.connectorSDK;Object.entries(e.tables??{}).forEach(([t,i])=>{let a=v[t];if(!a){this.connectorSDK.logger.warn(`[MKG] Unknown table identifier "${t}", skipping configuration.`);return}if(!a.interval||a.interval<=0){this.connectorSDK.logger.verbose(`[MKG] Table "${t}" does not have a valid interval configured, skipping registration.`);return}this.connectorSDK.processing.registerInterval(a.interval,new k(this.connectorSDK,this.#t,t,a.cloneFromTableConfig(i)),{immediate:a.immediate})})};this.#i=async e=>{let{config:t}=this.connectorSDK;return{...e,headers:{...e?.headers??{},Cookie:`${b}=${await this.#n(t.username,t.password)}`,"X-CustomerID":t.apiToken}}};let{config:i}=this.connectorSDK;this.#r=this.connectorSDK.httpClient({baseUrl:`https://${i.server}:${i.port??443}/${(i.path??"/mkg").replace(/^\/+/,"")}`}),this.#t=this.connectorSDK.httpClient({baseUrl:`https://${i.server}:${i.port??443}/${(i.path??"/mkg").replace(/^\/+/,"")}`}).setRequestOptionsFormatter(this.#i),this.#e=new w(this.connectorSDK,this.#t),this.callbackFunction=this.#e.callbackFunctionChain}#e;#t;#r;#_;#i;async#n(e,t){let i=this.#_;if(i&&i.expiresAt>Date.now())return i.token;let a=await this.#r.post("/static/auth/j_spring_security_check",{j_username:e,j_password:t},{headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"}});if(!a)throw new Error("Failed to authenticate and retrieve session cookie");let d=(a.headers?.["set-cookie"]??a.headers?.["Set-Cookie"]??[]).find(u=>u.startsWith(`${b}=`));if(!d)throw new Error("Session cookie not found in authentication response");let s=d.split(";")[0]?.substring(`${b}=`.length);return this.#_={token:s,expiresAt:Date.now()+I-1e3},s}};0&&(module.exports={ConnectorRunnerMkg});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../libs/connector-runner-mkg/src/index.ts", "../../../libs/connector-runtime-sdk/src/lib/connector-runtime.ts", "../../../libs/connector-runner-mkg/src/lib/types.ts", "../../../libs/connector-runner-mkg/src/lib/tables/base/table.ts", "../../../libs/connector-runner-mkg/src/lib/tables/artg.ts", "../../../libs/connector-runner-mkg/src/lib/tables/arti.ts", "../../../libs/connector-runner-mkg/src/lib/tables/bwrg.ts", "../../../libs/connector-runner-mkg/src/lib/tables/bwrk.ts", "../../../libs/connector-runner-mkg/src/lib/tables/clch.ts", "../../../libs/connector-runner-mkg/src/lib/tables/debi.ts", "../../../libs/connector-runner-mkg/src/lib/tables/magl.ts", "../../../libs/connector-runner-mkg/src/lib/tables/magz.ts", "../../../libs/connector-runner-mkg/src/lib/tables/medw.ts", "../../../libs/connector-runner-mkg/src/lib/tables/base/action.ts", "../../../libs/connector-runner-mkg/src/lib/tables/parl.ts", "../../../libs/connector-runner-mkg/src/lib/tables/plnb.ts", "../../../libs/connector-runner-mkg/src/lib/tables/prbv.ts", "../../../libs/connector-runner-mkg/src/lib/tables/prdh.ts", "../../../libs/connector-runner-mkg/src/lib/tables/prdr.ts", "../../../libs/connector-runner-mkg/src/lib/tables/prmv.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rela.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rgrs.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rsrc.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rsrd.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rsrg.ts", "../../../libs/connector-runner-mkg/src/lib/tables/stlh.ts", "../../../libs/connector-runner-mkg/src/lib/tables/stlm.ts", "../../../libs/connector-runner-mkg/src/lib/tables/stlr.ts", "../../../libs/connector-runner-mkg/src/lib/tables/vrdg.ts", "../../../libs/connector-runner-mkg/src/lib/tables/_all.ts", "../../../libs/connector-runner-mkg/src/lib/actions-handler.ts", "../../../libs/connector-runner-mkg/src/lib/extractor.service.ts", "../../../libs/connector-runner-mkg/src/lib/connector-runner-mkg.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './lib/connector-runner-mkg';\n", "import * as process from 'node:process';\n\nimport {\n KafkaCallbackResponse,\n BaseConnectorConfig,\n ActionInterface,\n ConnectorInterface,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { ConnectorRuntimeInterface } from './connector-runtime.interface';\nimport { CompileDelegate, ConnectorSDKInterface } from './sdk';\n\nexport interface IpcMessage {\n cmd: string;\n message: string;\n}\n\nexport abstract class ConnectorRuntimeSDK<\n T extends BaseConnectorConfig = BaseConnectorConfig,\n> implements ConnectorRuntimeInterface\n{\n readonly #IPC_CHANNEL = 'connector-runtime';\n\n readonly #connectorSDK: ConnectorSDKInterface<T>;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK as ConnectorSDKInterface<T>;\n\n if (process.on) {\n process.on('message', (message: IpcMessage) => {\n if (message.cmd === this.#IPC_CHANNEL) {\n connectorSDK.logger.verbose(\n `${process.pid} Received message from parent process:`,\n message,\n );\n }\n });\n } else {\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.on is undefined.',\n );\n }\n\n if (!process.send) {\n // Check if process.send is available\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.send is undefined.',\n );\n }\n\n // eslint-disable-next-line no-restricted-syntax\n connector.actions?.forEach((action: ActionInterface) => {\n if (action.config['templates'] === undefined) {\n return;\n }\n\n const containers: {\n [key: string]: CompileDelegate;\n } = {};\n\n Object.entries(action.config['templates']).forEach(([key, value]) => {\n try {\n // eslint-disable-next-line security/detect-object-injection\n containers[key] = connectorSDK.templating.compile(value);\n } catch (error: unknown) {\n connectorSDK.logger.error(\n `Error compiling template ${key} for action ${action.identifier}`,\n error,\n );\n }\n });\n\n // eslint-disable-next-line no-param-reassign\n action.config['parsedTemplates'] = containers;\n });\n }\n\n public init: () => Promise<void> = () => Promise.resolve();\n\n public start: () => Promise<void> = () => Promise.resolve();\n\n public stop: () => Promise<void> = () => Promise.resolve();\n\n set callbackFunction(\n callback: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ) {\n this.connectorSDK.receiver.registerCallback(\n this.#enrichWithActionConfig(callback),\n );\n }\n\n protected get connectorSDK(): ConnectorSDKInterface<T> {\n return this.#connectorSDK;\n }\n\n #enrichWithActionConfig(\n callbackFunction: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ): (message: XodJobType) => Promise<KafkaCallbackResponse> {\n return async (message: XodJobType) => {\n const action = this.#connectorSDK.receiver.getActionConfig(message);\n if (!action) {\n return this.#connectorSDK.receiver.responses.badRequest(\n 'Action not found',\n )(message);\n }\n return callbackFunction(message, action);\n };\n }\n}\n", "import { BaseConnectorConfig } from '@xip-online-data/types';\n\nexport const DEFAULT_DATASOURCE = 'mkg';\n\nexport const DEFAULT_INTERVAL = 3_600;\n\nexport const DEFAULT_ROW_KEY_FIELD = 'RowKey';\n\nexport const DEFAULT_DATE_FIELD = 'sys_dat_wijzig';\n\nexport const DEFAULT_NUM_ROWS = 250;\n\nexport const SESSION_COOKIE_NAME = 'JSESSIONID';\n\n/**\n * Session expires in 30 minutes\n */\nexport const SESSION_EXPIRATION_SECONDS = 30 * 60 * 1000;\n\nexport interface TableConfig {\n fields?: Array<string>;\n}\n\nexport interface ConnectorConfig extends BaseConnectorConfig {\n server: 'saas*.mkg.eu' | string;\n port?: 443 | 8443 | number;\n path?: '/mkg' | '/mkgoefenclient' | string;\n\n username: string;\n password: string;\n apiToken: string;\n\n tables?: { [key: string]: TableConfig | true };\n}\n\nexport interface MkgTableInterface {\n identifier: string;\n fields: Array<string>;\n\n immediate?: boolean;\n interval?: number;\n identifierField?: string;\n dateField?: string;\n rows?: number;\n}\n", "import {\n DEFAULT_DATE_FIELD,\n DEFAULT_INTERVAL,\n DEFAULT_NUM_ROWS,\n DEFAULT_ROW_KEY_FIELD,\n MkgTableInterface,\n TableConfig,\n} from '../../types';\n\nimport { MkgAction } from './action';\n\nexport class MkgTable implements MkgTableInterface {\n readonly identifier: string;\n\n readonly fields: Array<string>;\n\n readonly immediate: boolean;\n\n readonly interval: number;\n\n readonly identifierField: string;\n\n readonly dateField: string;\n\n readonly rows: number;\n\n readonly actions: Array<MkgAction>;\n\n constructor(params: MkgTableInterface, actions: Array<MkgAction> = []) {\n this.identifier = params.identifier;\n this.fields = params.fields;\n this.immediate = params.immediate !== false;\n this.interval =\n params.interval ?? (this.fields.length > 0 ? DEFAULT_INTERVAL : 0);\n this.identifierField = params.identifierField ?? DEFAULT_ROW_KEY_FIELD;\n this.dateField = params.dateField ?? DEFAULT_DATE_FIELD;\n this.rows = params.rows ?? DEFAULT_NUM_ROWS;\n this.actions = actions.map((action) => action.withParentTable(this));\n }\n\n cloneFromTableConfig(tableConfig: TableConfig | true): MkgTable {\n if (tableConfig === true || tableConfig.fields === undefined) {\n return this;\n }\n\n return new MkgTable({\n ...this,\n fields: this.fields.filter((field) =>\n tableConfig.fields?.includes(field),\n ),\n });\n }\n\n action(identifier: string): MkgAction | undefined {\n return this.actions.find((a) => a.identifier === identifier);\n }\n}\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_ARTG = new MkgTable({\n identifier: 'artg',\n fields: [\n 'artg_num',\n 'artg_rela',\n 'artg_cred',\n 'artg_oms',\n 'artg_inkoopofferte',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_ARTI = new MkgTable({\n identifier: 'arti',\n interval: 300,\n fields: [\n 'arti_parameter_2',\n 'arti_prijs_vast_man',\n 'arti_seriegrootte',\n 'arti_vrij_memo_1',\n 'arti_bestellen',\n 'arti_btw_aanpasbaar',\n 'arti_vrij_datum_1',\n 'arti_eenh_uitgifte',\n 'arti_eenh_prijs_inkoop',\n 'arti_partij_per_1',\n 'arti_partij',\n 'arti_voorraad_waarde_mach',\n 'arti_parameter_4',\n 'arti_eenh_ontvangst',\n 'arti_prijs_vast_mat',\n 'arti_verh_tijd_aantal_grp',\n 'arti_voorraad_aantal',\n 'arti_bestel_freq_eenh',\n 'arti_vrij_datum_4',\n 'arti_eenh_vrk',\n 'arti_trans_eenh',\n 'arti_kosten_artikel',\n 'arti_verh_tijd_aantal_vrd',\n 'arti_verh_volume_aantal_grp',\n 'arti_memo_verkoop_intern',\n 'arti_verh_volume_aantal_vrd',\n 'arti_vrij_memo_2',\n 'arti_zoeknaam',\n 'arti_blok_verkoop',\n 'arti_verh_aantal_aantal_vrd',\n 'arti_actief',\n 'arti_bestelcode',\n 'arti_locatie',\n 'arti_prijs_netto_mat',\n 'arti_prijs_vast',\n 'arti_vrij_veld_1',\n 'arti_parameter_1',\n 'arti_vrij_datum_2',\n 'arti_gewicht_per_m',\n 'arti_memo_inkoop_extern',\n 'arti_inkoopofferte',\n 'arti_prijs_gemiddeld_mat',\n 'arti_dienst_verkoop',\n 'arti_oms_2',\n 'arti_levertijd_inkoop',\n 'arti_verh_tijd_eenh_grp',\n 'arti_prijs_netto_uitb',\n 'arti_oppervlakte',\n 'arti_voorraadsysteem',\n 'arti_kostprijssysteem',\n 'arti_niet_autores',\n 'arti_wvp_obv_gvp',\n 'arti_vrij_memo_5',\n 'arti_prijs_inkoop',\n 'arti_levertijd_productie',\n 'arti_verh_gewicht_aantal_grp',\n 'arti_verh_gewicht_eenh_grp',\n 'arti_vrij_veld_2',\n 'arti_prijs_gemiddeld_mach',\n 'arti_lijst_3',\n 'arti_verh_gewicht_aantal_vrd',\n 'arti_parameter_3',\n 'arti_lijst_1',\n 'arti_prijs_vast_mach',\n 'arti_vrij_veld_5',\n 'arti_ict_fact_verkoop',\n 'arti_verh_lengte_aantal_vrd',\n 'arti_backflush',\n 'arti_vrij_datum_3',\n 'arti_vrd_aanvullen_tot',\n 'arti_inkoop_artikel',\n 'arti_verh_rest_aantal_grp',\n 'arti_eenh_vrd',\n 'arti_prijs_vast_uitb',\n 'arti_trans_gewicht',\n 'arti_memo_inkoop_intern',\n 'arti_vrij_memo_3',\n 'arti_prijs_netto',\n 'arti_mat_lengte',\n 'arti_bestelhoeveelheid',\n 'arti_eenh_bestelling',\n 'arti_verh_oppv_eenh_grp',\n 'arti_voorraad_artikel',\n 'arti_backflush_uitval',\n 'arti_lijst_9',\n 'arti_vrij_datum_5',\n 'arti_verh_oppv_aantal_grp',\n 'arti_prijs_gemiddeld_uitb',\n 'arti_prijs_verkoop_eenm',\n 'arti_oms_3',\n 'arti_oms_1',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_BWRG = new MkgTable({\n identifier: 'bwrg',\n fields: [\n 'bwrg_inkoopofferte',\n 'bwrg_memo',\n 'bwrg_oms',\n 'bwrg_num',\n 'bwrg_cred',\n 'bwrg_rela',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_BWRK = new MkgTable({\n identifier: 'bwrk',\n interval: 60,\n fields: [\n 'bwrk_bwrf_instellen',\n 'bwrk_oms',\n 'bwrk_rela',\n 'bwrk_inkoopofferte',\n 'bwrk_reden_vroeg_laat',\n 'bwrk_tarief_netto_instel',\n 'bwrk_actief',\n 'bwrk_num',\n 'bwrk_grbk_direct_verantw',\n 'bwrk_actief_pauze',\n 'bwrk_memo',\n 'bwrk_aanloop_type',\n 'bwrk_medw_ovz',\n 'bwrk_grbk_indirect_kosten_mach',\n 'bwrk_niet_op_uren_pc',\n 'bwrk_memo_instel',\n 'bwrk_afloop_tijd',\n 'bwrk_magl_uit',\n 'bwrk_wachttijd_voor',\n 'bwrk_magl_in',\n 'bwrk_wegingsfactor_nc',\n 'bwrk_rsrc_instellen',\n 'bwrk_vspt_bew',\n 'bwrk_afloop_perc',\n 'bwrk_rsrc_bew',\n 'bwrk_afloop_type',\n 'bwrk_tarief_netto_mach',\n 'bwrk_memo_extern',\n 'bwrk_specificeren',\n 'bwrk_afbeelding',\n 'bwrk_wachttijd_na',\n 'bwrk_uitb_prijs',\n 'bwrk_man_per_machine',\n 'bwrk_aanloop_perc',\n 'bwrk_insteltijd',\n 'bwrk_tarief_calc_mach',\n 'bwrk_uitb_dagen',\n 'bwrk_grbk_direct_verantw_mach',\n 'bwrk_start_type',\n 'bwrk_volgorde',\n 'bwrk_grbk_indirect_kosten',\n 'bwrk_uitbesteding',\n 'bwrk_uitb_prijs_eenh',\n 'bwrk_eenmalig',\n 'bwrk_vspt_instel',\n 'bwrk_vspt_uitb',\n 'bwrk_sf_start_gereed',\n 'bwrk_tarief_calc_instel',\n 'bwrk_onbemand',\n 'bwrk_grbk_indirect_verantw',\n 'bwrk_grbk_indirect_verantw_mach',\n 'bwrk_aanloop_tijd',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_CLCH = new MkgTable({\n identifier: 'clch',\n interval: 60,\n fields: [\n 'clch_volgnummer',\n 'clch_op_dek_uit',\n 'clch_op_calc_mat',\n 'clch_vofh_verk_num',\n 'clch_op_calc_mach',\n 'clch_vofh_dat_antwoord',\n 'clch_kostprijs_methode_bew',\n 'clch_op_calc_man',\n 'clch_vofr_oms_1',\n 'clch_vofh_dat_levering',\n 'clch_lengte',\n 'clch_vofh_ref_onze',\n 'clch_calc_methode_mat',\n 'clch_op_calc_uit',\n 'clch_memo',\n 'clch_vofh_proj',\n 'clch_vofr_order_aantal',\n 'clch_calc_methode_bew',\n 'clch_op_dek_man',\n 'clch_op_dek_mach',\n 'clch_oms_1',\n 'clch_files',\n 'clch_num',\n 'clch_op_dek_mat',\n 'clch_vofh_rela',\n 'clch_vofh_num',\n 'clch_oms_3',\n 'clch_vofh_dat_aanvraag',\n 'clch_vofh_ref_uw',\n 'clch_vofr_arti',\n 'clch_oms_2',\n 'clch_boekjaar_afh',\n 'clch_vofr_eenh_order',\n 'clch_fase_planning',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_DEBI = new MkgTable({\n identifier: 'debi',\n fields: [\n 'debi_actief',\n 'debi_email',\n 'debi_vrij_datum_4',\n 'debi_pkbh_verz_type',\n 'debi_vrij_memo_3',\n 'debi_vrij_memo_4',\n 'debi_zoeknaam',\n 'debi_bic',\n 'debi_kredietlimiet2',\n 'debi_deellev',\n 'debi_fcth_verz_type',\n 'debi_plaats_bank',\n 'debi_dat_btw_verificatie',\n 'debi_vrij_datum_1',\n 'debi_naam',\n 'debi_btw',\n 'debi_peppol_id',\n 'debi_kvk_num',\n 'debi_vrij_memo_2',\n 'debi_fact_naam_2',\n 'debi_docs',\n 'debi_bet_wijze',\n 'debi_blok',\n 'debi_vrij_datum_5',\n 'debi_bankcode',\n 'debi_memo_extern',\n 'debi_naam_2',\n 'debi_rekening',\n 'debi_aantal_fact',\n 'debi_num',\n 'debi_vrij_veld_2',\n 'debi_status_btw_verificatie',\n 'debi_deelfact',\n 'debi_comm_opslag',\n 'debi_naam_btw_verificatie',\n 'debi_vrij_veld_3',\n 'debi_vrij_veld_4',\n 'debi_incasso',\n 'debi_vrij_memo_1',\n 'debi_vrij_memo_5',\n 'debi_max_regels_pakb',\n 'debi_vrij_datum_3',\n 'debi_iban',\n 'debi_max_regels_fact',\n 'debi_toon_opslagen',\n 'debi_memo_kredietbewaking',\n 'debi_kredietlimiet',\n 'debi_debi_fact',\n 'debi_vrij_veld_5',\n 'debi_vrij_datum_2',\n 'debi_btw_num',\n 'debi_fact_naam',\n 'debi_vrij_veld_1',\n 'debi_memo_intern',\n 'debi_adres_btw_verificatie',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MAGL = new MkgTable({\n identifier: 'magl',\n fields: [\n 'magl_memo',\n 'magl_oms_3',\n 'magl_shopfloor',\n 'magl_niet_autores',\n 'magl_oms_2',\n 'magl_code',\n 'magl_blok',\n 'magl_oms_1',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MAGZ = new MkgTable({\n identifier: 'magz',\n fields: [\n 'magz_memo',\n 'magz_oms_1',\n 'magz_oms_2',\n 'magz_code',\n 'magz_oms_3',\n 'magz_niet_autores',\n 'magz_blok',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MEDW = new MkgTable({\n identifier: 'medw',\n fields: [\n 'medw_pensioenpremie_werkn',\n 'medw_spaarloon_rek',\n 'medw_betaling_per_bank',\n 'medw_premiesparen_naam',\n 'medw_ziekengeld_aanm',\n 'medw_betaling_per_rek_2',\n 'medw_auto_vd_zaak',\n 'medw_vrij_datum_5',\n 'medw_or',\n 'medw_premiesparen',\n 'medw_telefoon',\n 'medw_aanwezigheids_reg',\n 'medw_betaling_per_bank_naam',\n 'medw_postcode',\n 'medw_premiesparen_batch',\n 'medw_verschuiven',\n 'medw_onkosten',\n 'medw_pensioenpremie_werkg',\n 'medw_arbodienst_aanm',\n 'medw_lid_persver',\n 'medw_laatste_bwrk',\n 'medw_memo_contract',\n 'medw_premiesparen_iban',\n 'medw_vrij_datum_3',\n 'medw_nummer_2',\n 'medw_voornaam',\n 'medw_ziekengeld_afm',\n 'medw_mdrc',\n 'medw_spaarloon_bic',\n 'medw_spaarloon',\n 'medw_betaling_per_bank_oms_3',\n 'medw_spaarloon_iban',\n 'medw_prod_gereed_melden',\n 'medw_spaarloon_batch',\n 'medw_betaling_per_iban_2',\n 'medw_roepnaam',\n 'medw_vutpremie_werkg',\n 'medw_betaling_per_rek',\n 'medw_uren_per_dag',\n 'medw_plaats',\n 'medw_telefoon_2',\n 'medw_or_functie',\n 'medw_pensioenfonds',\n 'medw_schoenmaat',\n 'medw_naam_2',\n 'medw_spaarloon_oms1',\n 'medw_vutpremie',\n 'medw_ehbo',\n 'medw_vrij_datum_4',\n 'medw_email',\n 'medw_vrij_memo_1',\n 'medw_soort_contract',\n 'medw_vakantie_uren',\n 'medw_reiskosten',\n 'medw_vrij_veld_4',\n 'medw_waohiaat_werkg',\n 'medw_vrij_datum_2',\n 'medw_premiesparen_oms1',\n 'medw_salaris',\n 'medw_vrij_veld_3',\n 'medw_spaarloon_oms3',\n 'medw_planning',\n 'medw_raadplegen_uren',\n 'medw_spaarloon_naam',\n 'medw_vrij_veld_5',\n 'medw_ziekenfonds_aanm',\n 'medw_betaling_per_bank_2_naam',\n 'medw_partime_salaris',\n 'medw_premiesparen_oms2',\n 'medw_bedrijfsvereniging_afm',\n 'medw_betaling_per_bank_2_oms1',\n 'medw_betaling_per_bank_2',\n 'medw_betaling_per_bank_plaats',\n 'medw_tussenvoegsel',\n 'medw_instellen',\n 'medw_pensioenfonds_afm',\n 'medw_functietitel',\n 'medw_straat_2',\n 'medw_premiesparen_plaats',\n 'medw_betaling_per_bic_2',\n 'medw_betaling_per_kas_2',\n 'medw_betaling_per_bank_2_oms3',\n 'medw_premiesparen_oms3',\n 'medw_straat',\n 'medw_premiesparen_oms4',\n 'medw_dagen_per_week',\n 'medw_telefax',\n 'medw_afbeelding',\n 'medw_op_uren_pc',\n 'medw_direct_gereed',\n ],\n});\n", "import { MkgTableInterface } from '../../types';\n\ntype MkgActionMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';\n\nexport interface MkgActionInterface {\n identifier: string;\n\n method: MkgActionMethod;\n\n fields: Array<string>;\n\n optionalFields?: Array<string>;\n\n path?: (inputData: Record<string, unknown>) => string;\n}\n\nexport class MkgAction implements MkgActionInterface {\n readonly identifier: string;\n\n readonly method: MkgActionMethod;\n\n readonly fields: Array<string>;\n\n readonly optionalFields: Array<string>;\n\n readonly path: (inputData: Record<string, unknown>) => string;\n\n #table!: MkgTableInterface;\n\n constructor(params: MkgActionInterface) {\n this.identifier = params.identifier;\n this.method = params.method;\n this.fields = params.fields;\n this.optionalFields = params.optionalFields ?? [];\n this.path = params.path ?? ((): string => this.#table.identifier);\n }\n\n withParentTable(table: MkgTableInterface): MkgAction {\n const action = new MkgAction(this);\n action.#table = table;\n\n return action;\n }\n\n fieldSet(inputData: Record<string, unknown>): Record<string, unknown> {\n const fieldData = new Map<string, unknown>();\n\n this.fields.forEach((field) => {\n // eslint-disable-next-line security/detect-object-injection\n const inputDataValue = inputData[field];\n if (!inputDataValue) {\n throw new Error(\n `Missing required field '${field}' for action '${this.identifier}'`,\n );\n }\n\n fieldData.set(field, inputDataValue);\n });\n\n this.optionalFields.forEach((field) => {\n // eslint-disable-next-line security/detect-object-injection\n const inputDataValue = inputData[field];\n if (inputDataValue) {\n fieldData.set(field, inputDataValue);\n }\n });\n\n return Object.fromEntries(fieldData.entries());\n }\n}\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_MOVE = new MkgAction({\n identifier: 'move',\n method: 'PUT',\n fields: [\n 'admi_num',\n 'part_num',\n 'magl_code',\n 't_doel_magl',\n 't_doel_aantal',\n 'RowKey',\n ],\n path: (): string => 'parl/0/Service/s_partij_verplaatsen',\n});\n\nexport const MKG_TABLE_PARL = new MkgTable(\n {\n identifier: 'parl',\n fields: [],\n },\n [ACTION_MOVE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create',\n method: 'POST',\n fields: [\n 'prdh_num',\n 'prdr_num',\n 'bwrk_num',\n 'plnb_dat_start',\n 'plnb_tijd_start',\n ],\n});\n\nexport const MKG_TABLE_PLNB = new MkgTable(\n {\n identifier: 'plnb',\n interval: 60,\n fields: [\n 'plnb_num',\n 'prdh_num',\n 'bwrk_num',\n 'rsrc_num',\n 'medw_num',\n 'plnb_dat_start',\n 'plnb_tijd_start',\n 'plnb_wk_start',\n 'plnb_dat_eind',\n 'plnb_tijd_eind',\n 'plnb_wk_eind',\n 'plnb_dat_gestart',\n 'plnb_tijd_gestart',\n 'plnb_wk_gestart',\n 'plnb_gestart',\n 'plnb_gereed',\n 'plnb_aantal',\n 'plnb_aantal_grd',\n 'plnb_aantal_per_uur',\n 'plnb_bijloop_aantal',\n 'plnb_uitb_aantal',\n 'plnb_volgorde',\n ],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh_prdr',\n method: 'POST',\n fields: ['bwrk_num', 'prbv_tijd_per_stuk'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const prdrNum = inputData['prdr_num'];\n if (!prdrNum) {\n throw new Error(`Missing required field 'prdr_num' for action 'create'`);\n }\n\n return `prdr/1+${prdhNum}+${prdrNum}/prdr_prbv`;\n },\n});\n\nexport const MKG_TABLE_PRBV = new MkgTable(\n {\n identifier: 'prbv',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create',\n method: 'POST',\n fields: ['prdh_oms_1'],\n});\n\nexport const MKG_TABLE_PRDH = new MkgTable(\n {\n identifier: 'prdh',\n interval: 60,\n fields: [\n 'prdh_op_dek_mat',\n 'prdh_op_dek_uit',\n 'prdh_oms_1',\n 'prdh_wk_order',\n 'prdh_memo_extern',\n 'prdh_wk_gepland',\n 'prdh_files',\n 'prdh_op_vcnc_uit',\n 'prdh_oms_2',\n 'prdh_memo_intern',\n 'prdh_dat_order',\n 'prdh_op_vcnc_man',\n 'prdh_op_vcnc_mat',\n 'prdh_op_vcnc_mach',\n 'prdh_op_dek_man',\n 'prdh_fase_planning',\n 'prdh_wk_planning',\n 'prdh_kostprijs_methode_bew',\n 'prdh_calc_methode_mat',\n 'prdh_image',\n 'prdh_dat_gepland',\n 'prdh_calc_methode_bew',\n 'prdh_historisch',\n 'prdh_oms_3',\n 'prdh_op_dek_mach',\n 'prdh_dat_planning',\n 'prdh_forecast',\n 'prdh_num',\n ],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh',\n method: 'POST',\n fields: ['prdr_oms_1', 'prdr_tot_aantal', 'prdr_id'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n return `prdh/${prdhNum}/prdh_eindproduct/`;\n },\n});\n\nexport const MKG_TABLE_PRDR = new MkgTable(\n {\n identifier: 'prdr',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh_prdr',\n method: 'POST',\n fields: ['prmv_oms_1', 'cred_num'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const prdrNum = inputData['prdr_num'];\n if (!prdrNum) {\n throw new Error(`Missing required field 'prdr_num' for action 'create'`);\n }\n\n return `prdr/1+${prdhNum}+${prdrNum}/prdr_prmv`;\n },\n});\n\nexport const MKG_TABLE_PRMV = new MkgTable(\n {\n identifier: 'prmv',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RELA = new MkgTable({\n identifier: 'rela',\n fields: [\n 'rela_vrij_datum_4',\n 'rela_naam',\n 'rela_vrij_datum_3',\n 'rela_vrij_datum_2',\n 'rela_postcode',\n 'rela_www',\n 'rela_vrij_datum_5',\n 'rela_vrij_datum_1',\n 'rela_vrij_veld_1',\n 'rela_email',\n 'rela_telefoon',\n 'rela_plaats',\n 'rela_moeder',\n 'rela_vrij_veld_3',\n 'rela_vrij_veld_5',\n 'rela_vrij_veld_2',\n 'rela_vrij_veld_4',\n 'rela_vrij_memo_1',\n 'rela_num',\n 'rela_resr',\n 'rela_memo',\n 'rela_vrij_memo_5',\n 'rela_naam_2',\n 'rela_zoeknaam',\n 'rela_vrij_memo_2',\n 'rela_plaats_2',\n 'rela_vrij_memo_3',\n 'rela_vrij_memo_4',\n 'rela_afbeelding',\n 'rela_files',\n 'rela_fax',\n 'rela_info',\n 'rela_actief',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RGRS = new MkgTable({\n identifier: 'rgrs',\n interval: 60,\n fields: [\n 'abnk_bizcuit_id',\n 'aant_vraag_oms',\n 'abnk_oms',\n 'adon_code',\n 'adon_oms',\n 'adop_code',\n 'arti_code',\n 'bwrg_oms',\n 'bwrk_oms',\n 'cert_code',\n 'gebr_code',\n 'kbdp_oms',\n 'kltn_code',\n 'kstg_oms',\n 'land_code',\n 'magw_code',\n 'medw_betaling_per_bank_2_naam',\n 'medw_betaling_per_bank_naam',\n 'medw_naam',\n 'medw_premiesparen_naam',\n 'medw_spaarloon_naam',\n 'rela_naam',\n 'reld_oms',\n 'rsrc_oms',\n 'rsrg_oms',\n 'spco_code',\n 'strd_oms',\n 't_bwrk_num_oms',\n 't_bwrk_oms',\n 't_oms',\n 't_omschrijving',\n 'aanr_datum',\n 'aanr_num',\n 'aans_num',\n 'aant_num',\n 'abnk_num',\n 'adma_num',\n 'admi_num',\n 'afdl_num',\n 'agtn_num',\n 'apia_num',\n 'bank_num',\n 'bwrf_num',\n 'bwrg_num',\n 'bwrk_num',\n 'clcb_num',\n 'clch_num',\n 'clch_vofh_num',\n 'clch_vofh_verk_num',\n 'clcm_num',\n 'clcr_num',\n 'clct_num',\n 'cred_num',\n 'debi_num',\n 'dgbk_num',\n 'fcth_num',\n 'geac_num',\n 'ifch_num',\n 'inkg_num',\n 'iofh_num',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRC = new MkgTable({\n identifier: 'rsrc',\n interval: 300,\n fields: [\n 'rsrc_fcst_eindige_cap',\n 'rsrc_oms',\n 'rsrc_memo',\n 'rsrc_volgorde',\n 'rsrc_magl_in',\n 'rsrc_onbemand',\n 'rsrc_num',\n 'rsrc_calc_eindige_cap',\n 'rsrc_magl_uit',\n 'rsrc_aantal',\n 'rsrc_calc_bucket',\n 'rsrc_eindige_cap',\n 'rsrc_fcst_bucket',\n 'rsrc_bucket',\n 'rsrc_afbeelding',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRD = new MkgTable({\n identifier: 'rsrd',\n interval: 300,\n fields: [\n 'rsrd_zo_p2_van',\n 'rsrd_za_p2_tot',\n 'rsrd_do_p1_tot',\n 'rsrd_di_p5_tot',\n 'rsrd_zo_p5_tot',\n 'rsrd_do_p3_tot',\n 'rsrd_ma_p4_tot',\n 'rsrd_wo_p3_van',\n 'rsrd_zo_p1_van',\n 'rsrd_fd_p1_van',\n 'rsrd_do_p5_van',\n 'rsrd_wo_p2_tot',\n 'rsrd_za_van',\n 'rsrd_vr_p3_van',\n 'rsrd_za_p4_van',\n 'rsrd_ma_p5_tot',\n 'rsrd_fd_p3_van',\n 'rsrd_wo_tot',\n 'rsrd_vr_tot',\n 'rsrd_ma_p1_tot',\n 'rsrd_wo_p1_tot',\n 'rsrd_zo_p4_tot',\n 'rsrd_di_p4_tot',\n 'rsrd_ma_p3_van',\n 'rsrd_ma_p5_van',\n 'rsrd_di_tot',\n 'rsrd_fd_p4_van',\n 'rsrd_vr_van',\n 'rsrd_za_p3_tot',\n 'rsrd_za_p1_van',\n 'rsrd_zo_p5_van',\n 'rsrd_fd_p2_tot',\n 'rsrd_vr_p5_van',\n 'rsrd_di_p4_van',\n 'rsrd_za_p5_tot',\n 'rsrd_di_p3_van',\n 'rsrd_ma_p2_tot',\n 'rsrd_di_van',\n 'rsrd_do_p1_van',\n 'rsrd_zo_p3_tot',\n 'rsrd_vr_p5_tot',\n 'rsrd_zo_p1_tot',\n 'rsrd_ma_van',\n 'rsrd_do_tot',\n 'rsrd_wo_p2_van',\n 'rsrd_vr_p3_tot',\n 'rsrd_di_p1_van',\n 'rsrd_za_p5_van',\n 'rsrd_fd_p5_van',\n 'rsrd_vr_p4_tot',\n 'rsrd_wo_p3_tot',\n 'rsrd_fd_p1_tot',\n 'rsrd_fd_p3_tot',\n 'rsrd_ma_p4_van',\n 'rsrd_di_p3_tot',\n 'rsrd_zo_p4_van',\n 'rsrd_do_p4_tot',\n 'rsrd_do_van',\n 'rsrd_do_p3_van',\n 'rsrd_wo_p1_van',\n 'rsrd_za_p4_tot',\n 'rsrd_zo_van',\n 'rsrd_do_p2_tot',\n 'rsrd_vr_p2_van',\n 'rsrd_vr_p2_tot',\n 'rsrd_vr_p1_tot',\n 'rsrd_do_p5_tot',\n 'rsrd_wo_van',\n 'rsrd_zo_tot',\n 'rsrd_za_p2_van',\n 'rsrd_oms',\n 'rsrd_zo_p3_van',\n 'rsrd_fd_p2_van',\n 'rsrd_do_p4_van',\n 'rsrd_di_p2_tot',\n 'rsrd_za_p3_van',\n 'rsrd_wo_p4_van',\n 'rsrd_vr_p4_van',\n 'rsrd_wo_p4_tot',\n 'rsrd_num',\n 'rsrd_ma_tot',\n 'rsrd_ma_p1_van',\n 'rsrd_di_p5_van',\n 'rsrd_fd_p5_tot',\n 'rsrd_vr_p1_van',\n 'rsrd_di_p2_van',\n 'rsrd_do_p2_van',\n 'rsrd_wo_p5_van',\n 'rsrd_za_tot',\n 'rsrd_ma_p3_tot',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRG = new MkgTable({\n identifier: 'rsrg',\n fields: ['rsrg_num', 'rsrg_memo', 'rsrg_oms'],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLH = new MkgTable({\n identifier: 'stlh',\n interval: 600,\n fields: [\n 'arti_code',\n 'stlh_teken',\n 'stlh_rev_lengte',\n 'stlh_bron',\n 'stlh_volgnummer',\n 'stlh_oms_2',\n 'stlh_oms_1',\n 'stlh_memo',\n 'stlh_revisie',\n 'stlh_rev_preview',\n 'stlh_actief',\n 'stlh_lengte',\n 'stlh_num',\n 'stlh_oms_3',\n 'stlh_files',\n 'stlh_prefix',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLM = new MkgTable({\n identifier: 'stlm',\n interval: 600,\n fields: [\n 'arti_code',\n 'stlm_rest_min',\n 'stlm_eenh',\n 'stlm_netto_prijs_uitb',\n 'stlm_lijst_9',\n 'stlm_oms_1',\n 'stlm_gewicht_netto',\n 'stlm_lijst_2',\n 'stlm_volume',\n 'stlm_tot_nettoprijs',\n 'stlm_oms_3',\n 'stlm_toegeleverd',\n 'stlm_netto_prijs_mat',\n 'stlm_plaat_magw',\n 'stlm_rest_hl',\n 'stlm_lijst_5',\n 'stlm_oppervlakte',\n 'stlm_num',\n 'stlm_parameter_2',\n 'stlm_parameter_1',\n 'stlm_gewicht_bruto',\n 'stlm_zaaglengte',\n 'stlm_revisie',\n 'stlm_lijst_4',\n 'stlm_eenh_nettoprijs',\n 'stlm_plaat_b',\n 'stlm_tekening',\n 'stlm_opspanlengte_hl',\n 'stlm_eenmalig',\n 'stlm_opspanlengte_pl',\n 'stlm_lijst_7',\n 'stlm_memo_extern',\n 'stlm_factor',\n 'stlm_parameter_3',\n 'stlm_aantal',\n 'stlm_gewicht_per_m',\n 'stlm_plaat_a',\n 'stlm_plaat_dx',\n 'stlm_behoefte_obv',\n 'stlm_netto_prijs_fictief',\n 'stlm_opspanlengte_hlzl',\n 'stlm_memo',\n 'stlm_io_aanvragen',\n 'stlm_opspanlengte',\n 'stlm_aantal_lengtes',\n 'stlm_volgorde',\n 'stlm_zaagsnede_lengte',\n 'stlm_lijst_8',\n 'stlm_netto_prijs_mach',\n 'stlm_pos',\n 'stlm_oms_2',\n 'stlm_eenh_bestel',\n 'stlm_netto_prijs_man',\n 'stlm_handelslengte',\n 'stlm_eigen_spec',\n 'stlm_cad',\n 'stlm_zaagsnede',\n 'stlm_netto_prijs',\n 'stlm_bestel_gezaagd',\n 'stlm_prijs_methode',\n 'stlm_rest_zl',\n 'stlm_parameter_5',\n 'stlm_plaat_dy',\n 'stlm_lijst_6',\n 'stlm_bestel_handelslengte',\n 'stlm_lengte',\n 'stlm_lijst_3',\n 'stlm_spec_prijs',\n 'stlm_lijst_1',\n 'stlm_files',\n 'stlm_parameter_4',\n 'stlm_plaat_k',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLR = new MkgTable({\n identifier: 'stlr',\n interval: 600,\n fields: [\n 'stlr_cad',\n 'stlr_parent_aantal',\n 'stlr_aantal',\n 'stlr_verh_oppv_aantal_grp',\n 'stlr_verh_gewicht_eenh_grp',\n 'stlr_verh_tijd_aantal_grp',\n 'stlr_verh_volume_aantal_grp',\n 'stlr_memo',\n 'stlr_stlr_herkomst',\n 'stlr_verh_aantal_eenh_grp',\n 'stlr_verh_gewicht_aantal_vrd',\n 'stlr_verh_aantal_aantal_vrd',\n 'stlr_seriegrootte',\n 'stlr_inherit_tekening',\n 'stlr_uitval',\n 'stlr_volgorde',\n 'stlr_eenmalig',\n 'stlr_oms_3',\n 'stlr_verh_volume_aantal_vrd',\n 'stlr_verh_tijd_aantal_vrd',\n 'stlr_files',\n 'stlr_oms_1',\n 'stlr_pos',\n 'stlr_verh_gewicht_aantal_grp',\n 'stlr_eindproduct_num',\n 'stlr_stlm_certificaat',\n 'stlr_verh_rest_aantal_vrd',\n 'stlr_niveau',\n 'stlr_tekening',\n 'stlr_verh_lengte_eenh_grp',\n 'stlr_prod_fase',\n 'stlr_revisie',\n 'stlr_verh_lengte_aantal_vrd',\n 'stlr_verh_volume_eenh_grp',\n 'stlr_verh_rest_aantal_grp',\n 'stlr_verh_oppv_eenh_grp',\n 'stlr_num',\n 'stlr_verh_tijd_eenh_grp',\n 'stlr_verwijzing',\n 'stlr_afronden_aant',\n 'stlr_verh_aantal_aantal_grp',\n 'stlr_oms_2',\n 'stlr_parent',\n 'stlr_verh_lengte_aantal_grp',\n 'stlr_verh_rest_eenh_grp',\n 'stlr_verw_stlh',\n 'stlr_stlh_herkomst',\n 'stlr_cad_revisie',\n 'stlr_verh_oppv_aantal_vrd',\n 'stlr_handlingstijd',\n 'stlr_tot_aantal',\n 'stlr_prod_aantal',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_VRDG = new MkgTable({\n identifier: 'vrdg',\n fields: [\n 'vrdg_grbk_pv_grd_uitb',\n 'vrdg_grbk_hw_grd_uitb',\n 'vrdg_grbk_grd_mat',\n 'vrdg_grbk_hw_grd_mat',\n 'vrdg_grbk_hw_grd_man',\n 'vrdg_grbk_vrd_mat',\n 'vrdg_grbk_hw_grd_mach',\n 'vrdg_grbk_grd_mach',\n 'vrdg_num',\n 'vrdg_grbk_pv_grd_mat',\n 'vrdg_grbk_kst_mach',\n 'vrdg_grbk_kst_mat',\n 'vrdg_grbk_pv_grd_mach',\n 'vrdg_grbk_kst_man',\n 'vrdg_grbk_kst_uitb',\n 'vrdg_oms',\n 'vrdg_grbk_grd_uitb',\n 'vrdg_grbk_pv_grd_man',\n 'vrdg_grbk_pv_vrd_mat',\n 'vrdg_grbk_grd_man',\n ],\n});\n", "import { MKG_TABLE_ARTG } from './artg';\nimport { MKG_TABLE_ARTI } from './arti';\nimport { MkgTable } from './base/table';\nimport { MKG_TABLE_BWRG } from './bwrg';\nimport { MKG_TABLE_BWRK } from './bwrk';\nimport { MKG_TABLE_CLCH } from './clch';\nimport { MKG_TABLE_DEBI } from './debi';\nimport { MKG_TABLE_MAGL } from './magl';\nimport { MKG_TABLE_MAGZ } from './magz';\nimport { MKG_TABLE_MEDW } from './medw';\nimport { MKG_TABLE_PARL } from './parl';\nimport { MKG_TABLE_PLNB } from './plnb';\nimport { MKG_TABLE_PRBV } from './prbv';\nimport { MKG_TABLE_PRDH } from './prdh';\nimport { MKG_TABLE_PRDR } from './prdr';\nimport { MKG_TABLE_PRMV } from './prmv';\nimport { MKG_TABLE_RELA } from './rela';\nimport { MKG_TABLE_RGRS } from './rgrs';\nimport { MKG_TABLE_RSRC } from './rsrc';\nimport { MKG_TABLE_RSRD } from './rsrd';\nimport { MKG_TABLE_RSRG } from './rsrg';\nimport { MKG_TABLE_STLH } from './stlh';\nimport { MKG_TABLE_STLM } from './stlm';\nimport { MKG_TABLE_STLR } from './stlr';\nimport { MKG_TABLE_VRDG } from './vrdg';\n\nconst tables = [\n MKG_TABLE_RELA,\n MKG_TABLE_DEBI,\n MKG_TABLE_MEDW,\n MKG_TABLE_ARTI,\n MKG_TABLE_RSRC,\n MKG_TABLE_RSRD,\n MKG_TABLE_RSRG,\n MKG_TABLE_MAGZ,\n MKG_TABLE_MAGL,\n MKG_TABLE_STLH,\n MKG_TABLE_STLR,\n MKG_TABLE_STLM,\n MKG_TABLE_PRDH,\n MKG_TABLE_BWRK,\n MKG_TABLE_BWRG,\n MKG_TABLE_CLCH,\n MKG_TABLE_VRDG,\n MKG_TABLE_RGRS,\n MKG_TABLE_PLNB,\n MKG_TABLE_ARTG,\n MKG_TABLE_PRDR,\n MKG_TABLE_PRMV,\n MKG_TABLE_PRBV,\n MKG_TABLE_PARL,\n];\n\nexport const MKG_TABLES: { [identifier: string]: MkgTable } = tables.reduce(\n (acc, table) => {\n acc[table.identifier] = table;\n return acc;\n },\n {} as { [identifier: string]: MkgTable },\n);\n", "import {\n CompileDelegate,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpError,\n} from '@transai/connector-runtime-sdk';\nimport {\n ActionInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { MKG_TABLES } from './tables/_all';\n\nexport class ActionsHandler {\n readonly #connectorSDK: ConnectorSDKInterface;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n connectorSDK: ConnectorSDKInterface,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK;\n this.#httpClient = httpClient;\n }\n\n get callbackFunctionChain(): (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse> {\n return this.#jobCallbackFunction(\n this.#connectorSDK.receiver.emitEventType(\n this.#connectorSDK.receiver.responses.created(),\n ),\n );\n }\n\n #jobCallbackFunction(\n callbackFunction: (message: XodJobType) => Promise<KafkaCallbackResponse>,\n ) {\n return async (\n message: XodJobType,\n action: ActionInterface,\n ): Promise<KafkaCallbackResponse> => {\n try {\n this.#connectorSDK.logger.debug(\n `[MKG] Apply templates on payload: ${JSON.stringify(message.payload)}, action: ${JSON.stringify(action)}`,\n );\n\n const handleBars = action.config['parsedTemplates'] as {\n action: CompileDelegate;\n params: CompileDelegate;\n };\n\n const parsedAction = handleBars\n .action({\n inputs: message.payload,\n })\n .trim();\n\n const parsedParams = handleBars\n .params({\n inputs: message.payload,\n })\n .trim();\n\n const parsedParamsJson = JSON.parse(parsedParams);\n this.#connectorSDK.logger.debug(\n `[MKG] Parsed action: ${parsedAction}, params json: ${JSON.stringify(parsedParamsJson)}`,\n );\n\n const [tableIdentifier, ...rest] = parsedAction.split('.');\n const actionIdentifier = rest.join('.');\n // eslint-disable-next-line security/detect-object-injection\n const mkgTable = MKG_TABLES[tableIdentifier];\n if (!mkgTable) {\n this.#connectorSDK.logger.warn(\n `[MKG] Unknown table identifier \"${tableIdentifier}\" in message ${message.eventId}`,\n );\n return this.#connectorSDK.receiver.responses.badRequest(\n `[MKG] Unknown table identifier \"${tableIdentifier}\"`,\n )(message);\n }\n\n const mkgAction = mkgTable.action(actionIdentifier);\n if (!mkgAction) {\n const logMessage = `[MKG] Unknown action identifier \"${actionIdentifier}\" within table \"${tableIdentifier}\" in message ${message.eventId}`;\n this.#connectorSDK.logger.warn(logMessage);\n return this.#connectorSDK.receiver.responses.badRequest(logMessage)(\n message,\n );\n }\n\n if (message.testRun) {\n this.#connectorSDK.logger.info(\n `[MKG] Test run for ${message.eventId} with payload ${parsedParams} to action ${parsedAction}`,\n );\n return callbackFunction(message);\n }\n\n try {\n const response = await this.#httpClient.request(\n mkgAction.method,\n `/web/v3/MKG/Documents/${mkgAction.path(parsedParamsJson)}`,\n {\n ...(['POST', 'PUT'].includes(mkgAction.method)\n ? {\n data: {\n request: {\n InputData: {\n [tableIdentifier]: [\n mkgAction.fieldSet(parsedParamsJson),\n ],\n },\n },\n },\n }\n : {}),\n },\n );\n\n this.#connectorSDK.logger.debug(\n `[MKG] Got action \"${actionIdentifier}\" of table \"${tableIdentifier}\" response from MKG: ${JSON.stringify(response)}`,\n );\n } catch (error: HttpError | unknown) {\n const logMessage = `[MKG] Failed to perform action \"${actionIdentifier}\" of table \"${tableIdentifier}\": (${(error as HttpError)?.status}) ${(error as HttpError)?.error ?? (error as Error)?.message}`;\n this.#connectorSDK.logger.error(logMessage);\n\n return this.#connectorSDK.receiver.responses.unprocessableEntity(\n logMessage,\n )(message);\n }\n\n return callbackFunction(message);\n } catch (error: unknown) {\n return this.#connectorSDK.receiver.responses.internalServerError(\n error instanceof Error ? error.message : 'Unknown error occurred',\n )(message);\n }\n };\n }\n}\n", "import {\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpError,\n IntervalHandler,\n StoredOffset,\n} from '@transai/connector-runtime-sdk';\n\nimport {\n ConnectorConfig,\n DEFAULT_DATASOURCE,\n MkgTableInterface,\n} from './types';\n\ntype FetchDataResponse<D> = {\n response: {\n ResultData: [\n {\n [key: string]: Array<D>;\n },\n ];\n };\n};\n\nexport class ExtractorService implements IntervalHandler {\n readonly #sdk: ConnectorSDKInterface<ConnectorConfig>;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n readonly #tableIdentifier: string;\n\n readonly #table: Required<MkgTableInterface>;\n\n readonly #fieldsList: string;\n\n constructor(\n sdk: ConnectorSDKInterface<ConnectorConfig>,\n httpClient: HttpClientSDKInterface,\n tableIdentifier: string,\n table: Required<MkgTableInterface>,\n ) {\n this.#sdk = sdk;\n this.#httpClient = httpClient;\n this.#tableIdentifier = tableIdentifier;\n this.#table = table;\n this.#fieldsList = table.fields.join(',');\n }\n\n get name(): string {\n return `mkg-extractor-${this.#tableIdentifier}`;\n }\n\n async onRun(): Promise<void> {\n try {\n const now = new Date();\n const latestOffset = await this.#sdk.offsetStore.getOffset(\n `offset_${this.#tableIdentifier}`,\n );\n\n const data = await this.#fetchData(latestOffset);\n if (data.length > 0) {\n await this.#sdk.sender.documents(data, {\n keyField: this.#table.identifierField,\n collection: `${this.#sdk.config.datasourceIdentifier ?? DEFAULT_DATASOURCE}_${this.#tableIdentifier}`,\n });\n }\n\n this.#sdk.logger.debug(\n `[MKG] Processed ${data.length} records from ${this.#tableIdentifier}`,\n );\n\n this.#sdk.offsetStore.setOffset(\n {\n id: String(\n data[data.length - 1]?.[this.#table.identifierField] ??\n latestOffset.id,\n ),\n timestamp: now.getTime(),\n rawTimestamp: now.toISOString(),\n },\n `offset_${this.#tableIdentifier}`,\n );\n } catch (error) {\n this.#sdk.logger.error(\n `[MKG] Failed to retrieve and process data from OPC UA source service`,\n { error },\n );\n throw error;\n }\n }\n\n #fetchData = async (\n latestOffset: StoredOffset,\n ): Promise<\n Array<{\n [key: string]: string | number | boolean;\n }>\n > => {\n const parameters = new URLSearchParams();\n parameters.set('NumRows', String(this.#table.rows));\n parameters.set(\n 'Filter',\n `${this.#table.dateField}>=${latestOffset.rawTimestamp}`,\n );\n parameters.set('FieldList', `${this.#table.dateField},${this.#fieldsList}`);\n\n try {\n const response = await this.#httpClient.get<\n FetchDataResponse<{\n [key: string]: string | number | boolean;\n }>\n >(\n `/web/v3/MKG/Documents/${this.#tableIdentifier}?${parameters.toString()}`,\n );\n\n return (\n response.data?.response?.ResultData?.[0]?.[this.#tableIdentifier] ?? []\n );\n } catch (error: HttpError | unknown) {\n const logMessage = `[MKG] Failed to fetch data from table \"${this.#tableIdentifier}\": (${(error as HttpError)?.status}) ${(error as HttpError)?.error ?? (error as Error)?.message}`;\n this.#sdk.logger.error(logMessage);\n }\n\n return [];\n };\n}\n", "/* eslint-disable camelcase,@typescript-eslint/naming-convention */\nimport {\n ConnectorRuntimeSDK,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpRequestOptions,\n} from '@transai/connector-runtime-sdk';\nimport { ConnectorInterface } from '@xip-online-data/types';\n\nimport { ActionsHandler } from './actions-handler';\nimport { ExtractorService } from './extractor.service';\nimport { MKG_TABLES } from './tables/_all';\nimport {\n ConnectorConfig,\n SESSION_COOKIE_NAME,\n SESSION_EXPIRATION_SECONDS,\n} from './types';\n\nexport class ConnectorRunnerMkg extends ConnectorRuntimeSDK<ConnectorConfig> {\n readonly #actionsHandler: ActionsHandler;\n\n readonly #mkgHttpClient: HttpClientSDKInterface;\n\n readonly #sessionTokenHttpClient: HttpClientSDKInterface;\n\n #sessionToken?: {\n token: string;\n expiresAt: number;\n };\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n super(connector, connectorSDK);\n\n const { config } = this.connectorSDK;\n\n this.#sessionTokenHttpClient = this.connectorSDK.httpClient({\n baseUrl: `https://${config.server}:${config.port ?? 443}/${(config.path ?? '/mkg').replace(/^\\/+/, '')}`,\n });\n this.#mkgHttpClient = this.connectorSDK\n .httpClient({\n baseUrl: `https://${config.server}:${config.port ?? 443}/${(config.path ?? '/mkg').replace(/^\\/+/, '')}`,\n })\n .setRequestOptionsFormatter(this.#requestOptionsFormatter);\n\n this.#actionsHandler = new ActionsHandler(\n this.connectorSDK,\n this.#mkgHttpClient,\n );\n\n this.callbackFunction = this.#actionsHandler.callbackFunctionChain;\n }\n\n override init = async (): Promise<void> => {\n const { config } = this.connectorSDK;\n\n Object.entries(config.tables ?? {}).forEach(\n ([tableIdentifier, configOrTrue]) => {\n // eslint-disable-next-line security/detect-object-injection\n const table = MKG_TABLES[tableIdentifier];\n if (!table) {\n this.connectorSDK.logger.warn(\n `[MKG] Unknown table identifier \"${tableIdentifier}\", skipping configuration.`,\n );\n return;\n }\n\n if (!table.interval || table.interval <= 0) {\n this.connectorSDK.logger.verbose(\n `[MKG] Table \"${tableIdentifier}\" does not have a valid interval configured, skipping registration.`,\n );\n return;\n }\n\n this.connectorSDK.processing.registerInterval(\n table.interval,\n new ExtractorService(\n this.connectorSDK,\n this.#mkgHttpClient,\n tableIdentifier,\n table.cloneFromTableConfig(configOrTrue),\n ),\n { immediate: table.immediate },\n );\n },\n );\n };\n\n #requestOptionsFormatter = async <D = string | object>(\n options: HttpRequestOptions<D>,\n ): Promise<HttpRequestOptions<D>> => {\n const { config } = this.connectorSDK;\n\n return {\n ...options,\n headers: {\n ...(options?.headers ?? {}),\n Cookie: `${SESSION_COOKIE_NAME}=${await this.#getSessionCookie(config.username, config.password)}`,\n 'X-CustomerID': config.apiToken,\n },\n };\n };\n\n async #getSessionCookie(\n j_username: string,\n j_password: string,\n ): Promise<string> {\n const token = this.#sessionToken;\n if (token && token.expiresAt > Date.now()) {\n return token.token;\n }\n\n const response = await this.#sessionTokenHttpClient.post(\n '/static/auth/j_spring_security_check',\n {\n j_username,\n j_password,\n },\n {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n },\n );\n\n if (!response) {\n throw new Error('Failed to authenticate and retrieve session cookie');\n }\n\n const cookies = (response.headers?.['set-cookie'] ??\n response.headers?.['Set-Cookie'] ??\n []) as Array<string>;\n const sessionCookie = cookies.find((cookie: string) =>\n cookie.startsWith(`${SESSION_COOKIE_NAME}=`),\n );\n\n if (!sessionCookie) {\n throw new Error('Session cookie not found in authentication response');\n }\n\n const sessionToken = sessionCookie\n .split(';')[0]\n ?.substring(`${SESSION_COOKIE_NAME}=`.length);\n\n this.#sessionToken = {\n token: sessionToken,\n expiresAt: Date.now() + SESSION_EXPIRATION_SECONDS - 1000,\n };\n\n return sessionToken;\n }\n}\n"],
|
|
5
|
-
"mappings": "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ACA,wBACA,eACA,oBACA,4BACA,4BACA,0BACA,aACA,YACF,CACF,CAAC,EChGM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,qBACA,YACA,WACA,WACA,YACA,WACF,CACF,CAAC,ECVM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,GACV,OAAQ,CACN,sBACA,WACA,YACA,qBACA,wBACA,2BACA,cACA,WACA,2BACA,oBACA,YACA,oBACA,gBACA,iCACA,uBACA,mBACA,mBACA,gBACA,sBACA,eACA,wBACA,sBACA,gBACA,mBACA,gBACA,mBACA,yBACA,mBACA,oBACA,kBACA,oBACA,kBACA,uBACA,oBACA,kBACA,wBACA,kBACA,gCACA,kBACA,gBACA,4BACA,oBACA,uBACA,gBACA,mBACA,iBACA,uBACA,0BACA,gBACA,6BACA,kCACA,mBACF,CACF,CAAC,ECzDM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,GACV,OAAQ,CACN,kBACA,kBACA,mBACA,qBACA,oBACA,yBACA,6BACA,mBACA,kBACA,yBACA,cACA,qBACA,wBACA,mBACA,YACA,iBACA,yBACA,wBACA,kBACA,mBACA,aACA,aACA,WACA,kBACA,iBACA,gBACA,aACA,yBACA,mBACA,iBACA,aACA,oBACA,uBACA,oBACF,CACF,CAAC,ECvCM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,cACA,aACA,oBACA,sBACA,mBACA,mBACA,gBACA,WACA,sBACA,eACA,sBACA,mBACA,2BACA,oBACA,YACA,WACA,iBACA,eACA,mBACA,mBACA,YACA,iBACA,YACA,oBACA,gBACA,mBACA,cACA,gBACA,mBACA,WACA,mBACA,8BACA,gBACA,mBACA,4BACA,mBACA,mBACA,eACA,mBACA,mBACA,uBACA,oBACA,YACA,uBACA,qBACA,4BACA,qBACA,iBACA,mBACA,oBACA,eACA,iBACA,mBACA,mBACA,4BACF,CACF,CAAC,EC3DM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,YACA,aACA,iBACA,oBACA,aACA,YACA,YACA,YACF,CACF,CAAC,ECZM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,YACA,aACA,aACA,YACA,aACA,oBACA,WACF,CACF,CAAC,ECXM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,4BACA,qBACA,yBACA,yBACA,uBACA,0BACA,oBACA,oBACA,UACA,oBACA,gBACA,yBACA,8BACA,gBACA,0BACA,mBACA,gBACA,4BACA,uBACA,mBACA,oBACA,qBACA,yBACA,oBACA,gBACA,gBACA,sBACA,YACA,qBACA,iBACA,+BACA,sBACA,0BACA,uBACA,2BACA,gBACA,uBACA,wBACA,oBACA,cACA,kBACA,kBACA,qBACA,kBACA,cACA,sBACA,iBACA,YACA,oBACA,aACA,mBACA,sBACA,qBACA,kBACA,mBACA,sBACA,oBACA,yBACA,eACA,mBACA,sBACA,gBACA,uBACA,sBACA,mBACA,wBACA,gCACA,uBACA,yBACA,8BACA,gCACA,2BACA,gCACA,qBACA,iBACA,yBACA,oBACA,gBACA,2BACA,0BACA,0BACA,gCACA,yBACA,cACA,yBACA,sBACA,eACA,kBACA,kBACA,oBACF,CACF,CAAC,EChFM,IAAMC,EAAN,MAAMC,CAAwC,CAWnDC,GAEA,YAAYC,EAA4B,CACtC,KAAK,WAAaA,EAAO,WACzB,KAAK,OAASA,EAAO,OACrB,KAAK,OAASA,EAAO,OACrB,KAAK,eAAiBA,EAAO,gBAAkB,CAAC,EAChD,KAAK,KAAOA,EAAO,OAAS,IAAc,KAAKD,GAAO,WACxD,CAEA,gBAAgBE,EAAqC,CACnD,IAAMC,EAAS,IAAIJ,EAAU,IAAI,EACjC,OAAAI,EAAOH,GAASE,EAETC,CACT,CAEA,SAASC,EAA6D,CACpE,IAAMC,EAAY,IAAI,IAEtB,YAAK,OAAO,QAASC,GAAU,CAE7B,IAAMC,EAAiBH,EAAUE,CAAK,EACtC,GAAI,CAACC,EACH,MA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YACA,YACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,gCACA,8BACA,YACA,yBACA,sBACA,YACA,WACA,WACA,WACA,YACA,WACA,iBACA,aACA,QACA,iBACA,aACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,gBACA,qBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACF,CACF,CAAC,ECjEM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,wBACA,WACA,YACA,gBACA,eACA,gBACA,WACA,wBACA,gBACA,cACA,mBACA,mBACA,mBACA,cACA,iBACF,CACF,CAAC,ECpBM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,WACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,WACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,gBACF,CACF,CAAC,EC/FM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CAAC,WAAY,YAAa,UAAU,CAC9C,CAAC,ECHM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,YACA,aACA,kBACA,YACA,kBACA,aACA,aACA,YACA,eACA,mBACA,cACA,cACA,WACA,aACA,aACA,aACF,CACF,CAAC,ECrBM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,YACA,gBACA,YACA,wBACA,eACA,aACA,qBACA,eACA,cACA,sBACA,aACA,mBACA,uBACA,kBACA,eACA,eACA,mBACA,WACA,mBACA,mBACA,qBACA,kBACA,eACA,eACA,uBACA,eACA,gBACA,uBACA,gBACA,uBACA,eACA,mBACA,cACA,mBACA,cACA,qBACA,eACA,gBACA,oBACA,2BACA,yBACA,YACA,oBACA,oBACA,sBACA,gBACA,wBACA,eACA,wBACA,WACA,aACA,mBACA,uBACA,qBACA,kBACA,WACA,iBACA,mBACA,sBACA,qBACA,eACA,mBACA,gBACA,eACA,4BACA,cACA,eACA,kBACA,eACA,aACA,mBACA,cACF,CACF,CAAC,EC7EM,IAAMC,GAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,WACA,qBACA,cACA,4BACA,6BACA,4BACA,8BACA,YACA,qBACA,4BACA,+BACA,8BACA,oBACA,wBACA,cACA,gBACA,gBACA,aACA,8BACA,4BACA,aACA,aACA,WACA,+BACA,uBACA,wBACA,4BACA,cACA,gBACA,4BACA,iBACA,eACA,8BACA,4BACA,4BACA,0BACA,WACA,0BACA,kBACA,qBACA,8BACA,aACA,cACA,8BACA,0BACA,iBACA,qBACA,mBACA,4BACA,qBACA,kBACA,kBACF,CACF,CAAC,ECzDM,IAAMC,GAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,wBACA,wBACA,oBACA,uBACA,uBACA,oBACA,wBACA,qBACA,WACA,uBACA,qBACA,oBACA,wBACA,oBACA,qBACA,WACA,qBACA,uBACA,uBACA,mBACF,CACF,CAAC,ECAD,IAAMC,GAAS,CACbC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,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",
|
|
4
|
+
"sourcesContent": ["export * from './lib/connector-runner-mkg';\n", "import * as process from 'node:process';\n\nimport {\n KafkaCallbackResponse,\n BaseConnectorConfig,\n ActionInterface,\n ConnectorInterface,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { ConnectorRuntimeInterface } from './connector-runtime.interface';\nimport { CompileDelegate, ConnectorSDKInterface } from './sdk';\n\nexport interface IpcMessage {\n cmd: string;\n message: string;\n}\n\nexport abstract class ConnectorRuntimeSDK<\n T extends BaseConnectorConfig = BaseConnectorConfig,\n> implements ConnectorRuntimeInterface {\n readonly #IPC_CHANNEL = 'connector-runtime';\n\n readonly #connectorSDK: ConnectorSDKInterface<T>;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK as ConnectorSDKInterface<T>;\n\n if (process.on) {\n process.on('message', (message: IpcMessage) => {\n if (message.cmd === this.#IPC_CHANNEL) {\n connectorSDK.logger.verbose(\n `${process.pid} Received message from parent process:`,\n message,\n );\n }\n });\n } else {\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.on is undefined.',\n );\n }\n\n if (!process.send) {\n // Check if process.send is available\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.send is undefined.',\n );\n }\n\n // eslint-disable-next-line no-restricted-syntax\n connector.actions?.forEach((action: ActionInterface) => {\n if (action.config['templates'] === undefined) {\n return;\n }\n\n const containers: {\n [key: string]: CompileDelegate;\n } = {};\n\n Object.entries(action.config['templates']).forEach(([key, value]) => {\n try {\n // eslint-disable-next-line security/detect-object-injection\n containers[key] = connectorSDK.templating.compile(value);\n } catch (error: unknown) {\n connectorSDK.logger.error(\n `Error compiling template ${key} for action ${action.identifier}`,\n error,\n );\n }\n });\n\n // eslint-disable-next-line no-param-reassign\n action.config['parsedTemplates'] = containers;\n });\n }\n\n public init: () => Promise<void> = () => Promise.resolve();\n\n public start: () => Promise<void> = () => Promise.resolve();\n\n public stop: () => Promise<void> = () => Promise.resolve();\n\n set callbackFunction(\n callback: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ) {\n this.connectorSDK.receiver.registerCallback(\n this.#enrichWithActionConfig(callback),\n );\n }\n\n protected get connectorSDK(): ConnectorSDKInterface<T> {\n return this.#connectorSDK;\n }\n\n #enrichWithActionConfig(\n callbackFunction: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ): (message: XodJobType) => Promise<KafkaCallbackResponse> {\n return async (message: XodJobType) => {\n const action = await this.#connectorSDK.receiver.getActionConfig(message);\n if (!action) {\n return this.#connectorSDK.receiver.responses.badRequest(\n 'Action not found',\n )(message);\n }\n return callbackFunction(message, action);\n };\n }\n}\n", "import { BaseConnectorConfig } from '@xip-online-data/types';\n\nexport const DEFAULT_DATASOURCE = 'mkg';\n\nexport const DEFAULT_INTERVAL = 3_600;\n\nexport const DEFAULT_ROW_KEY_FIELD = 'RowKey';\n\nexport const DEFAULT_DATE_FIELD = 'sys_dat_wijzig';\n\nexport const DEFAULT_NUM_ROWS = 250;\n\nexport const SESSION_COOKIE_NAME = 'JSESSIONID';\n\n/**\n * Session expires in 30 minutes\n */\nexport const SESSION_EXPIRATION_SECONDS = 30 * 60 * 1000;\n\nexport interface TableConfig {\n fields?: Array<string>;\n}\n\nexport interface ConnectorConfig extends BaseConnectorConfig {\n server: 'saas*.mkg.eu' | string;\n port?: 443 | 8443 | number;\n path?: '/mkg' | '/mkgoefenclient' | string;\n\n username: string;\n password: string;\n apiToken: string;\n\n tables?: { [key: string]: TableConfig | true };\n}\n\nexport interface MkgTableInterface {\n identifier: string;\n fields: Array<string>;\n\n immediate?: boolean;\n interval?: number;\n identifierField?: string;\n dateField?: string;\n rows?: number;\n}\n", "import {\n DEFAULT_DATE_FIELD,\n DEFAULT_INTERVAL,\n DEFAULT_NUM_ROWS,\n DEFAULT_ROW_KEY_FIELD,\n MkgTableInterface,\n TableConfig,\n} from '../../types';\n\nimport { MkgAction } from './action';\n\nexport class MkgTable implements MkgTableInterface {\n readonly identifier: string;\n\n readonly fields: Array<string>;\n\n readonly immediate: boolean;\n\n readonly interval: number;\n\n readonly identifierField: string;\n\n readonly dateField: string;\n\n readonly rows: number;\n\n readonly actions: Array<MkgAction>;\n\n constructor(params: MkgTableInterface, actions: Array<MkgAction> = []) {\n this.identifier = params.identifier;\n this.fields = params.fields;\n this.immediate = params.immediate !== false;\n this.interval =\n params.interval ?? (this.fields.length > 0 ? DEFAULT_INTERVAL : 0);\n this.identifierField = params.identifierField ?? DEFAULT_ROW_KEY_FIELD;\n this.dateField = params.dateField ?? DEFAULT_DATE_FIELD;\n this.rows = params.rows ?? DEFAULT_NUM_ROWS;\n this.actions = actions.map((action) => action.withParentTable(this));\n }\n\n cloneFromTableConfig(tableConfig: TableConfig | true): MkgTable {\n if (tableConfig === true || tableConfig.fields === undefined) {\n return this;\n }\n\n return new MkgTable({\n ...this,\n fields: this.fields.filter((field) =>\n tableConfig.fields?.includes(field),\n ),\n });\n }\n\n action(identifier: string): MkgAction | undefined {\n return this.actions.find((a) => a.identifier === identifier);\n }\n}\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_ARTG = new MkgTable({\n identifier: 'artg',\n fields: [\n 'artg_num',\n 'artg_rela',\n 'artg_cred',\n 'artg_oms',\n 'artg_inkoopofferte',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_ARTI = new MkgTable({\n identifier: 'arti',\n interval: 300,\n fields: [\n 'arti_parameter_2',\n 'arti_prijs_vast_man',\n 'arti_seriegrootte',\n 'arti_vrij_memo_1',\n 'arti_bestellen',\n 'arti_btw_aanpasbaar',\n 'arti_vrij_datum_1',\n 'arti_eenh_uitgifte',\n 'arti_eenh_prijs_inkoop',\n 'arti_partij_per_1',\n 'arti_partij',\n 'arti_voorraad_waarde_mach',\n 'arti_parameter_4',\n 'arti_eenh_ontvangst',\n 'arti_prijs_vast_mat',\n 'arti_verh_tijd_aantal_grp',\n 'arti_voorraad_aantal',\n 'arti_bestel_freq_eenh',\n 'arti_vrij_datum_4',\n 'arti_eenh_vrk',\n 'arti_trans_eenh',\n 'arti_kosten_artikel',\n 'arti_verh_tijd_aantal_vrd',\n 'arti_verh_volume_aantal_grp',\n 'arti_memo_verkoop_intern',\n 'arti_verh_volume_aantal_vrd',\n 'arti_vrij_memo_2',\n 'arti_zoeknaam',\n 'arti_blok_verkoop',\n 'arti_verh_aantal_aantal_vrd',\n 'arti_actief',\n 'arti_bestelcode',\n 'arti_locatie',\n 'arti_prijs_netto_mat',\n 'arti_prijs_vast',\n 'arti_vrij_veld_1',\n 'arti_parameter_1',\n 'arti_vrij_datum_2',\n 'arti_gewicht_per_m',\n 'arti_memo_inkoop_extern',\n 'arti_inkoopofferte',\n 'arti_prijs_gemiddeld_mat',\n 'arti_dienst_verkoop',\n 'arti_oms_2',\n 'arti_levertijd_inkoop',\n 'arti_verh_tijd_eenh_grp',\n 'arti_prijs_netto_uitb',\n 'arti_oppervlakte',\n 'arti_voorraadsysteem',\n 'arti_kostprijssysteem',\n 'arti_niet_autores',\n 'arti_wvp_obv_gvp',\n 'arti_vrij_memo_5',\n 'arti_prijs_inkoop',\n 'arti_levertijd_productie',\n 'arti_verh_gewicht_aantal_grp',\n 'arti_verh_gewicht_eenh_grp',\n 'arti_vrij_veld_2',\n 'arti_prijs_gemiddeld_mach',\n 'arti_lijst_3',\n 'arti_verh_gewicht_aantal_vrd',\n 'arti_parameter_3',\n 'arti_lijst_1',\n 'arti_prijs_vast_mach',\n 'arti_vrij_veld_5',\n 'arti_ict_fact_verkoop',\n 'arti_verh_lengte_aantal_vrd',\n 'arti_backflush',\n 'arti_vrij_datum_3',\n 'arti_vrd_aanvullen_tot',\n 'arti_inkoop_artikel',\n 'arti_verh_rest_aantal_grp',\n 'arti_eenh_vrd',\n 'arti_prijs_vast_uitb',\n 'arti_trans_gewicht',\n 'arti_memo_inkoop_intern',\n 'arti_vrij_memo_3',\n 'arti_prijs_netto',\n 'arti_mat_lengte',\n 'arti_bestelhoeveelheid',\n 'arti_eenh_bestelling',\n 'arti_verh_oppv_eenh_grp',\n 'arti_voorraad_artikel',\n 'arti_backflush_uitval',\n 'arti_lijst_9',\n 'arti_vrij_datum_5',\n 'arti_verh_oppv_aantal_grp',\n 'arti_prijs_gemiddeld_uitb',\n 'arti_prijs_verkoop_eenm',\n 'arti_oms_3',\n 'arti_oms_1',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_BWRG = new MkgTable({\n identifier: 'bwrg',\n fields: [\n 'bwrg_inkoopofferte',\n 'bwrg_memo',\n 'bwrg_oms',\n 'bwrg_num',\n 'bwrg_cred',\n 'bwrg_rela',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_BWRK = new MkgTable({\n identifier: 'bwrk',\n interval: 60,\n fields: [\n 'bwrk_bwrf_instellen',\n 'bwrk_oms',\n 'bwrk_rela',\n 'bwrk_inkoopofferte',\n 'bwrk_reden_vroeg_laat',\n 'bwrk_tarief_netto_instel',\n 'bwrk_actief',\n 'bwrk_num',\n 'bwrk_grbk_direct_verantw',\n 'bwrk_actief_pauze',\n 'bwrk_memo',\n 'bwrk_aanloop_type',\n 'bwrk_medw_ovz',\n 'bwrk_grbk_indirect_kosten_mach',\n 'bwrk_niet_op_uren_pc',\n 'bwrk_memo_instel',\n 'bwrk_afloop_tijd',\n 'bwrk_magl_uit',\n 'bwrk_wachttijd_voor',\n 'bwrk_magl_in',\n 'bwrk_wegingsfactor_nc',\n 'bwrk_rsrc_instellen',\n 'bwrk_vspt_bew',\n 'bwrk_afloop_perc',\n 'bwrk_rsrc_bew',\n 'bwrk_afloop_type',\n 'bwrk_tarief_netto_mach',\n 'bwrk_memo_extern',\n 'bwrk_specificeren',\n 'bwrk_afbeelding',\n 'bwrk_wachttijd_na',\n 'bwrk_uitb_prijs',\n 'bwrk_man_per_machine',\n 'bwrk_aanloop_perc',\n 'bwrk_insteltijd',\n 'bwrk_tarief_calc_mach',\n 'bwrk_uitb_dagen',\n 'bwrk_grbk_direct_verantw_mach',\n 'bwrk_start_type',\n 'bwrk_volgorde',\n 'bwrk_grbk_indirect_kosten',\n 'bwrk_uitbesteding',\n 'bwrk_uitb_prijs_eenh',\n 'bwrk_eenmalig',\n 'bwrk_vspt_instel',\n 'bwrk_vspt_uitb',\n 'bwrk_sf_start_gereed',\n 'bwrk_tarief_calc_instel',\n 'bwrk_onbemand',\n 'bwrk_grbk_indirect_verantw',\n 'bwrk_grbk_indirect_verantw_mach',\n 'bwrk_aanloop_tijd',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_CLCH = new MkgTable({\n identifier: 'clch',\n interval: 60,\n fields: [\n 'clch_volgnummer',\n 'clch_op_dek_uit',\n 'clch_op_calc_mat',\n 'clch_vofh_verk_num',\n 'clch_op_calc_mach',\n 'clch_vofh_dat_antwoord',\n 'clch_kostprijs_methode_bew',\n 'clch_op_calc_man',\n 'clch_vofr_oms_1',\n 'clch_vofh_dat_levering',\n 'clch_lengte',\n 'clch_vofh_ref_onze',\n 'clch_calc_methode_mat',\n 'clch_op_calc_uit',\n 'clch_memo',\n 'clch_vofh_proj',\n 'clch_vofr_order_aantal',\n 'clch_calc_methode_bew',\n 'clch_op_dek_man',\n 'clch_op_dek_mach',\n 'clch_oms_1',\n 'clch_files',\n 'clch_num',\n 'clch_op_dek_mat',\n 'clch_vofh_rela',\n 'clch_vofh_num',\n 'clch_oms_3',\n 'clch_vofh_dat_aanvraag',\n 'clch_vofh_ref_uw',\n 'clch_vofr_arti',\n 'clch_oms_2',\n 'clch_boekjaar_afh',\n 'clch_vofr_eenh_order',\n 'clch_fase_planning',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_DEBI = new MkgTable({\n identifier: 'debi',\n fields: [\n 'debi_actief',\n 'debi_email',\n 'debi_vrij_datum_4',\n 'debi_pkbh_verz_type',\n 'debi_vrij_memo_3',\n 'debi_vrij_memo_4',\n 'debi_zoeknaam',\n 'debi_bic',\n 'debi_kredietlimiet2',\n 'debi_deellev',\n 'debi_fcth_verz_type',\n 'debi_plaats_bank',\n 'debi_dat_btw_verificatie',\n 'debi_vrij_datum_1',\n 'debi_naam',\n 'debi_btw',\n 'debi_peppol_id',\n 'debi_kvk_num',\n 'debi_vrij_memo_2',\n 'debi_fact_naam_2',\n 'debi_docs',\n 'debi_bet_wijze',\n 'debi_blok',\n 'debi_vrij_datum_5',\n 'debi_bankcode',\n 'debi_memo_extern',\n 'debi_naam_2',\n 'debi_rekening',\n 'debi_aantal_fact',\n 'debi_num',\n 'debi_vrij_veld_2',\n 'debi_status_btw_verificatie',\n 'debi_deelfact',\n 'debi_comm_opslag',\n 'debi_naam_btw_verificatie',\n 'debi_vrij_veld_3',\n 'debi_vrij_veld_4',\n 'debi_incasso',\n 'debi_vrij_memo_1',\n 'debi_vrij_memo_5',\n 'debi_max_regels_pakb',\n 'debi_vrij_datum_3',\n 'debi_iban',\n 'debi_max_regels_fact',\n 'debi_toon_opslagen',\n 'debi_memo_kredietbewaking',\n 'debi_kredietlimiet',\n 'debi_debi_fact',\n 'debi_vrij_veld_5',\n 'debi_vrij_datum_2',\n 'debi_btw_num',\n 'debi_fact_naam',\n 'debi_vrij_veld_1',\n 'debi_memo_intern',\n 'debi_adres_btw_verificatie',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MAGL = new MkgTable({\n identifier: 'magl',\n fields: [\n 'magl_memo',\n 'magl_oms_3',\n 'magl_shopfloor',\n 'magl_niet_autores',\n 'magl_oms_2',\n 'magl_code',\n 'magl_blok',\n 'magl_oms_1',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MAGZ = new MkgTable({\n identifier: 'magz',\n fields: [\n 'magz_memo',\n 'magz_oms_1',\n 'magz_oms_2',\n 'magz_code',\n 'magz_oms_3',\n 'magz_niet_autores',\n 'magz_blok',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MEDW = new MkgTable({\n identifier: 'medw',\n fields: [\n 'medw_pensioenpremie_werkn',\n 'medw_spaarloon_rek',\n 'medw_betaling_per_bank',\n 'medw_premiesparen_naam',\n 'medw_ziekengeld_aanm',\n 'medw_betaling_per_rek_2',\n 'medw_auto_vd_zaak',\n 'medw_vrij_datum_5',\n 'medw_or',\n 'medw_premiesparen',\n 'medw_telefoon',\n 'medw_aanwezigheids_reg',\n 'medw_betaling_per_bank_naam',\n 'medw_postcode',\n 'medw_premiesparen_batch',\n 'medw_verschuiven',\n 'medw_onkosten',\n 'medw_pensioenpremie_werkg',\n 'medw_arbodienst_aanm',\n 'medw_lid_persver',\n 'medw_laatste_bwrk',\n 'medw_memo_contract',\n 'medw_premiesparen_iban',\n 'medw_vrij_datum_3',\n 'medw_nummer_2',\n 'medw_voornaam',\n 'medw_ziekengeld_afm',\n 'medw_mdrc',\n 'medw_spaarloon_bic',\n 'medw_spaarloon',\n 'medw_betaling_per_bank_oms_3',\n 'medw_spaarloon_iban',\n 'medw_prod_gereed_melden',\n 'medw_spaarloon_batch',\n 'medw_betaling_per_iban_2',\n 'medw_roepnaam',\n 'medw_vutpremie_werkg',\n 'medw_betaling_per_rek',\n 'medw_uren_per_dag',\n 'medw_plaats',\n 'medw_telefoon_2',\n 'medw_or_functie',\n 'medw_pensioenfonds',\n 'medw_schoenmaat',\n 'medw_naam_2',\n 'medw_spaarloon_oms1',\n 'medw_vutpremie',\n 'medw_ehbo',\n 'medw_vrij_datum_4',\n 'medw_email',\n 'medw_vrij_memo_1',\n 'medw_soort_contract',\n 'medw_vakantie_uren',\n 'medw_reiskosten',\n 'medw_vrij_veld_4',\n 'medw_waohiaat_werkg',\n 'medw_vrij_datum_2',\n 'medw_premiesparen_oms1',\n 'medw_salaris',\n 'medw_vrij_veld_3',\n 'medw_spaarloon_oms3',\n 'medw_planning',\n 'medw_raadplegen_uren',\n 'medw_spaarloon_naam',\n 'medw_vrij_veld_5',\n 'medw_ziekenfonds_aanm',\n 'medw_betaling_per_bank_2_naam',\n 'medw_partime_salaris',\n 'medw_premiesparen_oms2',\n 'medw_bedrijfsvereniging_afm',\n 'medw_betaling_per_bank_2_oms1',\n 'medw_betaling_per_bank_2',\n 'medw_betaling_per_bank_plaats',\n 'medw_tussenvoegsel',\n 'medw_instellen',\n 'medw_pensioenfonds_afm',\n 'medw_functietitel',\n 'medw_straat_2',\n 'medw_premiesparen_plaats',\n 'medw_betaling_per_bic_2',\n 'medw_betaling_per_kas_2',\n 'medw_betaling_per_bank_2_oms3',\n 'medw_premiesparen_oms3',\n 'medw_straat',\n 'medw_premiesparen_oms4',\n 'medw_dagen_per_week',\n 'medw_telefax',\n 'medw_afbeelding',\n 'medw_op_uren_pc',\n 'medw_direct_gereed',\n ],\n});\n", "import { MkgTableInterface } from '../../types';\n\ntype MkgActionMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';\n\nexport interface MkgActionInterface {\n identifier: string;\n\n method: MkgActionMethod;\n\n fields: Array<string>;\n\n optionalFields?: Array<string>;\n\n path?: (inputData: Record<string, unknown>) => string;\n}\n\nexport class MkgAction implements MkgActionInterface {\n readonly identifier: string;\n\n readonly method: MkgActionMethod;\n\n readonly fields: Array<string>;\n\n readonly optionalFields: Array<string>;\n\n readonly path: (inputData: Record<string, unknown>) => string;\n\n #table!: MkgTableInterface;\n\n constructor(params: MkgActionInterface) {\n this.identifier = params.identifier;\n this.method = params.method;\n this.fields = params.fields;\n this.optionalFields = params.optionalFields ?? [];\n this.path = params.path ?? ((): string => this.#table.identifier);\n }\n\n withParentTable(table: MkgTableInterface): MkgAction {\n const action = new MkgAction(this);\n action.#table = table;\n\n return action;\n }\n\n fieldSet(inputData: Record<string, unknown>): Record<string, unknown> {\n const fieldData = new Map<string, unknown>();\n\n this.fields.forEach((field) => {\n // eslint-disable-next-line security/detect-object-injection\n const inputDataValue = inputData[field];\n if (!inputDataValue) {\n throw new Error(\n `Missing required field '${field}' for action '${this.identifier}'`,\n );\n }\n\n fieldData.set(field, inputDataValue);\n });\n\n this.optionalFields.forEach((field) => {\n // eslint-disable-next-line security/detect-object-injection\n const inputDataValue = inputData[field];\n if (inputDataValue) {\n fieldData.set(field, inputDataValue);\n }\n });\n\n return Object.fromEntries(fieldData.entries());\n }\n}\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_MOVE = new MkgAction({\n identifier: 'move',\n method: 'PUT',\n fields: [\n 'admi_num',\n 'part_num',\n 'magl_code',\n 't_doel_magl',\n 't_doel_aantal',\n 'RowKey',\n ],\n path: (): string => 'parl/0/Service/s_partij_verplaatsen',\n});\n\nexport const MKG_TABLE_PARL = new MkgTable(\n {\n identifier: 'parl',\n fields: [],\n },\n [ACTION_MOVE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create',\n method: 'POST',\n fields: [\n 'prdh_num',\n 'prdr_num',\n 'bwrk_num',\n 'plnb_dat_start',\n 'plnb_tijd_start',\n ],\n});\n\nexport const MKG_TABLE_PLNB = new MkgTable(\n {\n identifier: 'plnb',\n interval: 60,\n fields: [\n 'plnb_num',\n 'prdh_num',\n 'bwrk_num',\n 'rsrc_num',\n 'medw_num',\n 'plnb_dat_start',\n 'plnb_tijd_start',\n 'plnb_wk_start',\n 'plnb_dat_eind',\n 'plnb_tijd_eind',\n 'plnb_wk_eind',\n 'plnb_dat_gestart',\n 'plnb_tijd_gestart',\n 'plnb_wk_gestart',\n 'plnb_gestart',\n 'plnb_gereed',\n 'plnb_aantal',\n 'plnb_aantal_grd',\n 'plnb_aantal_per_uur',\n 'plnb_bijloop_aantal',\n 'plnb_uitb_aantal',\n 'plnb_volgorde',\n ],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh_prdr',\n method: 'POST',\n fields: ['bwrk_num', 'prbv_tijd_per_stuk'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const prdrNum = inputData['prdr_num'];\n if (!prdrNum) {\n throw new Error(`Missing required field 'prdr_num' for action 'create'`);\n }\n\n return `prdr/1+${prdhNum}+${prdrNum}/prdr_prbv`;\n },\n});\n\nexport const MKG_TABLE_PRBV = new MkgTable(\n {\n identifier: 'prbv',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create',\n method: 'POST',\n fields: ['prdh_oms_1'],\n});\n\nexport const MKG_TABLE_PRDH = new MkgTable(\n {\n identifier: 'prdh',\n interval: 60,\n fields: [\n 'prdh_op_dek_mat',\n 'prdh_op_dek_uit',\n 'prdh_oms_1',\n 'prdh_wk_order',\n 'prdh_memo_extern',\n 'prdh_wk_gepland',\n 'prdh_files',\n 'prdh_op_vcnc_uit',\n 'prdh_oms_2',\n 'prdh_memo_intern',\n 'prdh_dat_order',\n 'prdh_op_vcnc_man',\n 'prdh_op_vcnc_mat',\n 'prdh_op_vcnc_mach',\n 'prdh_op_dek_man',\n 'prdh_fase_planning',\n 'prdh_wk_planning',\n 'prdh_kostprijs_methode_bew',\n 'prdh_calc_methode_mat',\n 'prdh_image',\n 'prdh_dat_gepland',\n 'prdh_calc_methode_bew',\n 'prdh_historisch',\n 'prdh_oms_3',\n 'prdh_op_dek_mach',\n 'prdh_dat_planning',\n 'prdh_forecast',\n 'prdh_num',\n ],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh',\n method: 'POST',\n fields: ['prdr_oms_1', 'prdr_tot_aantal', 'prdr_id'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n return `prdh/${prdhNum}/prdh_eindproduct/`;\n },\n});\n\nexport const MKG_TABLE_PRDR = new MkgTable(\n {\n identifier: 'prdr',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh_prdr',\n method: 'POST',\n fields: ['prmv_oms_1', 'cred_num'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const prdrNum = inputData['prdr_num'];\n if (!prdrNum) {\n throw new Error(`Missing required field 'prdr_num' for action 'create'`);\n }\n\n return `prdr/1+${prdhNum}+${prdrNum}/prdr_prmv`;\n },\n});\n\nexport const MKG_TABLE_PRMV = new MkgTable(\n {\n identifier: 'prmv',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RELA = new MkgTable({\n identifier: 'rela',\n fields: [\n 'rela_vrij_datum_4',\n 'rela_naam',\n 'rela_vrij_datum_3',\n 'rela_vrij_datum_2',\n 'rela_postcode',\n 'rela_www',\n 'rela_vrij_datum_5',\n 'rela_vrij_datum_1',\n 'rela_vrij_veld_1',\n 'rela_email',\n 'rela_telefoon',\n 'rela_plaats',\n 'rela_moeder',\n 'rela_vrij_veld_3',\n 'rela_vrij_veld_5',\n 'rela_vrij_veld_2',\n 'rela_vrij_veld_4',\n 'rela_vrij_memo_1',\n 'rela_num',\n 'rela_resr',\n 'rela_memo',\n 'rela_vrij_memo_5',\n 'rela_naam_2',\n 'rela_zoeknaam',\n 'rela_vrij_memo_2',\n 'rela_plaats_2',\n 'rela_vrij_memo_3',\n 'rela_vrij_memo_4',\n 'rela_afbeelding',\n 'rela_files',\n 'rela_fax',\n 'rela_info',\n 'rela_actief',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RGRS = new MkgTable({\n identifier: 'rgrs',\n interval: 60,\n fields: [\n 'abnk_bizcuit_id',\n 'aant_vraag_oms',\n 'abnk_oms',\n 'adon_code',\n 'adon_oms',\n 'adop_code',\n 'arti_code',\n 'bwrg_oms',\n 'bwrk_oms',\n 'cert_code',\n 'gebr_code',\n 'kbdp_oms',\n 'kltn_code',\n 'kstg_oms',\n 'land_code',\n 'magw_code',\n 'medw_betaling_per_bank_2_naam',\n 'medw_betaling_per_bank_naam',\n 'medw_naam',\n 'medw_premiesparen_naam',\n 'medw_spaarloon_naam',\n 'rela_naam',\n 'reld_oms',\n 'rsrc_oms',\n 'rsrg_oms',\n 'spco_code',\n 'strd_oms',\n 't_bwrk_num_oms',\n 't_bwrk_oms',\n 't_oms',\n 't_omschrijving',\n 'aanr_datum',\n 'aanr_num',\n 'aans_num',\n 'aant_num',\n 'abnk_num',\n 'adma_num',\n 'admi_num',\n 'afdl_num',\n 'agtn_num',\n 'apia_num',\n 'bank_num',\n 'bwrf_num',\n 'bwrg_num',\n 'bwrk_num',\n 'clcb_num',\n 'clch_num',\n 'clch_vofh_num',\n 'clch_vofh_verk_num',\n 'clcm_num',\n 'clcr_num',\n 'clct_num',\n 'cred_num',\n 'debi_num',\n 'dgbk_num',\n 'fcth_num',\n 'geac_num',\n 'ifch_num',\n 'inkg_num',\n 'iofh_num',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRC = new MkgTable({\n identifier: 'rsrc',\n interval: 300,\n fields: [\n 'rsrc_fcst_eindige_cap',\n 'rsrc_oms',\n 'rsrc_memo',\n 'rsrc_volgorde',\n 'rsrc_magl_in',\n 'rsrc_onbemand',\n 'rsrc_num',\n 'rsrc_calc_eindige_cap',\n 'rsrc_magl_uit',\n 'rsrc_aantal',\n 'rsrc_calc_bucket',\n 'rsrc_eindige_cap',\n 'rsrc_fcst_bucket',\n 'rsrc_bucket',\n 'rsrc_afbeelding',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRD = new MkgTable({\n identifier: 'rsrd',\n interval: 300,\n fields: [\n 'rsrd_zo_p2_van',\n 'rsrd_za_p2_tot',\n 'rsrd_do_p1_tot',\n 'rsrd_di_p5_tot',\n 'rsrd_zo_p5_tot',\n 'rsrd_do_p3_tot',\n 'rsrd_ma_p4_tot',\n 'rsrd_wo_p3_van',\n 'rsrd_zo_p1_van',\n 'rsrd_fd_p1_van',\n 'rsrd_do_p5_van',\n 'rsrd_wo_p2_tot',\n 'rsrd_za_van',\n 'rsrd_vr_p3_van',\n 'rsrd_za_p4_van',\n 'rsrd_ma_p5_tot',\n 'rsrd_fd_p3_van',\n 'rsrd_wo_tot',\n 'rsrd_vr_tot',\n 'rsrd_ma_p1_tot',\n 'rsrd_wo_p1_tot',\n 'rsrd_zo_p4_tot',\n 'rsrd_di_p4_tot',\n 'rsrd_ma_p3_van',\n 'rsrd_ma_p5_van',\n 'rsrd_di_tot',\n 'rsrd_fd_p4_van',\n 'rsrd_vr_van',\n 'rsrd_za_p3_tot',\n 'rsrd_za_p1_van',\n 'rsrd_zo_p5_van',\n 'rsrd_fd_p2_tot',\n 'rsrd_vr_p5_van',\n 'rsrd_di_p4_van',\n 'rsrd_za_p5_tot',\n 'rsrd_di_p3_van',\n 'rsrd_ma_p2_tot',\n 'rsrd_di_van',\n 'rsrd_do_p1_van',\n 'rsrd_zo_p3_tot',\n 'rsrd_vr_p5_tot',\n 'rsrd_zo_p1_tot',\n 'rsrd_ma_van',\n 'rsrd_do_tot',\n 'rsrd_wo_p2_van',\n 'rsrd_vr_p3_tot',\n 'rsrd_di_p1_van',\n 'rsrd_za_p5_van',\n 'rsrd_fd_p5_van',\n 'rsrd_vr_p4_tot',\n 'rsrd_wo_p3_tot',\n 'rsrd_fd_p1_tot',\n 'rsrd_fd_p3_tot',\n 'rsrd_ma_p4_van',\n 'rsrd_di_p3_tot',\n 'rsrd_zo_p4_van',\n 'rsrd_do_p4_tot',\n 'rsrd_do_van',\n 'rsrd_do_p3_van',\n 'rsrd_wo_p1_van',\n 'rsrd_za_p4_tot',\n 'rsrd_zo_van',\n 'rsrd_do_p2_tot',\n 'rsrd_vr_p2_van',\n 'rsrd_vr_p2_tot',\n 'rsrd_vr_p1_tot',\n 'rsrd_do_p5_tot',\n 'rsrd_wo_van',\n 'rsrd_zo_tot',\n 'rsrd_za_p2_van',\n 'rsrd_oms',\n 'rsrd_zo_p3_van',\n 'rsrd_fd_p2_van',\n 'rsrd_do_p4_van',\n 'rsrd_di_p2_tot',\n 'rsrd_za_p3_van',\n 'rsrd_wo_p4_van',\n 'rsrd_vr_p4_van',\n 'rsrd_wo_p4_tot',\n 'rsrd_num',\n 'rsrd_ma_tot',\n 'rsrd_ma_p1_van',\n 'rsrd_di_p5_van',\n 'rsrd_fd_p5_tot',\n 'rsrd_vr_p1_van',\n 'rsrd_di_p2_van',\n 'rsrd_do_p2_van',\n 'rsrd_wo_p5_van',\n 'rsrd_za_tot',\n 'rsrd_ma_p3_tot',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRG = new MkgTable({\n identifier: 'rsrg',\n fields: ['rsrg_num', 'rsrg_memo', 'rsrg_oms'],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLH = new MkgTable({\n identifier: 'stlh',\n interval: 600,\n fields: [\n 'arti_code',\n 'stlh_teken',\n 'stlh_rev_lengte',\n 'stlh_bron',\n 'stlh_volgnummer',\n 'stlh_oms_2',\n 'stlh_oms_1',\n 'stlh_memo',\n 'stlh_revisie',\n 'stlh_rev_preview',\n 'stlh_actief',\n 'stlh_lengte',\n 'stlh_num',\n 'stlh_oms_3',\n 'stlh_files',\n 'stlh_prefix',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLM = new MkgTable({\n identifier: 'stlm',\n interval: 600,\n fields: [\n 'arti_code',\n 'stlm_rest_min',\n 'stlm_eenh',\n 'stlm_netto_prijs_uitb',\n 'stlm_lijst_9',\n 'stlm_oms_1',\n 'stlm_gewicht_netto',\n 'stlm_lijst_2',\n 'stlm_volume',\n 'stlm_tot_nettoprijs',\n 'stlm_oms_3',\n 'stlm_toegeleverd',\n 'stlm_netto_prijs_mat',\n 'stlm_plaat_magw',\n 'stlm_rest_hl',\n 'stlm_lijst_5',\n 'stlm_oppervlakte',\n 'stlm_num',\n 'stlm_parameter_2',\n 'stlm_parameter_1',\n 'stlm_gewicht_bruto',\n 'stlm_zaaglengte',\n 'stlm_revisie',\n 'stlm_lijst_4',\n 'stlm_eenh_nettoprijs',\n 'stlm_plaat_b',\n 'stlm_tekening',\n 'stlm_opspanlengte_hl',\n 'stlm_eenmalig',\n 'stlm_opspanlengte_pl',\n 'stlm_lijst_7',\n 'stlm_memo_extern',\n 'stlm_factor',\n 'stlm_parameter_3',\n 'stlm_aantal',\n 'stlm_gewicht_per_m',\n 'stlm_plaat_a',\n 'stlm_plaat_dx',\n 'stlm_behoefte_obv',\n 'stlm_netto_prijs_fictief',\n 'stlm_opspanlengte_hlzl',\n 'stlm_memo',\n 'stlm_io_aanvragen',\n 'stlm_opspanlengte',\n 'stlm_aantal_lengtes',\n 'stlm_volgorde',\n 'stlm_zaagsnede_lengte',\n 'stlm_lijst_8',\n 'stlm_netto_prijs_mach',\n 'stlm_pos',\n 'stlm_oms_2',\n 'stlm_eenh_bestel',\n 'stlm_netto_prijs_man',\n 'stlm_handelslengte',\n 'stlm_eigen_spec',\n 'stlm_cad',\n 'stlm_zaagsnede',\n 'stlm_netto_prijs',\n 'stlm_bestel_gezaagd',\n 'stlm_prijs_methode',\n 'stlm_rest_zl',\n 'stlm_parameter_5',\n 'stlm_plaat_dy',\n 'stlm_lijst_6',\n 'stlm_bestel_handelslengte',\n 'stlm_lengte',\n 'stlm_lijst_3',\n 'stlm_spec_prijs',\n 'stlm_lijst_1',\n 'stlm_files',\n 'stlm_parameter_4',\n 'stlm_plaat_k',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLR = new MkgTable({\n identifier: 'stlr',\n interval: 600,\n fields: [\n 'stlr_cad',\n 'stlr_parent_aantal',\n 'stlr_aantal',\n 'stlr_verh_oppv_aantal_grp',\n 'stlr_verh_gewicht_eenh_grp',\n 'stlr_verh_tijd_aantal_grp',\n 'stlr_verh_volume_aantal_grp',\n 'stlr_memo',\n 'stlr_stlr_herkomst',\n 'stlr_verh_aantal_eenh_grp',\n 'stlr_verh_gewicht_aantal_vrd',\n 'stlr_verh_aantal_aantal_vrd',\n 'stlr_seriegrootte',\n 'stlr_inherit_tekening',\n 'stlr_uitval',\n 'stlr_volgorde',\n 'stlr_eenmalig',\n 'stlr_oms_3',\n 'stlr_verh_volume_aantal_vrd',\n 'stlr_verh_tijd_aantal_vrd',\n 'stlr_files',\n 'stlr_oms_1',\n 'stlr_pos',\n 'stlr_verh_gewicht_aantal_grp',\n 'stlr_eindproduct_num',\n 'stlr_stlm_certificaat',\n 'stlr_verh_rest_aantal_vrd',\n 'stlr_niveau',\n 'stlr_tekening',\n 'stlr_verh_lengte_eenh_grp',\n 'stlr_prod_fase',\n 'stlr_revisie',\n 'stlr_verh_lengte_aantal_vrd',\n 'stlr_verh_volume_eenh_grp',\n 'stlr_verh_rest_aantal_grp',\n 'stlr_verh_oppv_eenh_grp',\n 'stlr_num',\n 'stlr_verh_tijd_eenh_grp',\n 'stlr_verwijzing',\n 'stlr_afronden_aant',\n 'stlr_verh_aantal_aantal_grp',\n 'stlr_oms_2',\n 'stlr_parent',\n 'stlr_verh_lengte_aantal_grp',\n 'stlr_verh_rest_eenh_grp',\n 'stlr_verw_stlh',\n 'stlr_stlh_herkomst',\n 'stlr_cad_revisie',\n 'stlr_verh_oppv_aantal_vrd',\n 'stlr_handlingstijd',\n 'stlr_tot_aantal',\n 'stlr_prod_aantal',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_VRDG = new MkgTable({\n identifier: 'vrdg',\n fields: [\n 'vrdg_grbk_pv_grd_uitb',\n 'vrdg_grbk_hw_grd_uitb',\n 'vrdg_grbk_grd_mat',\n 'vrdg_grbk_hw_grd_mat',\n 'vrdg_grbk_hw_grd_man',\n 'vrdg_grbk_vrd_mat',\n 'vrdg_grbk_hw_grd_mach',\n 'vrdg_grbk_grd_mach',\n 'vrdg_num',\n 'vrdg_grbk_pv_grd_mat',\n 'vrdg_grbk_kst_mach',\n 'vrdg_grbk_kst_mat',\n 'vrdg_grbk_pv_grd_mach',\n 'vrdg_grbk_kst_man',\n 'vrdg_grbk_kst_uitb',\n 'vrdg_oms',\n 'vrdg_grbk_grd_uitb',\n 'vrdg_grbk_pv_grd_man',\n 'vrdg_grbk_pv_vrd_mat',\n 'vrdg_grbk_grd_man',\n ],\n});\n", "import { MKG_TABLE_ARTG } from './artg';\nimport { MKG_TABLE_ARTI } from './arti';\nimport { MkgTable } from './base/table';\nimport { MKG_TABLE_BWRG } from './bwrg';\nimport { MKG_TABLE_BWRK } from './bwrk';\nimport { MKG_TABLE_CLCH } from './clch';\nimport { MKG_TABLE_DEBI } from './debi';\nimport { MKG_TABLE_MAGL } from './magl';\nimport { MKG_TABLE_MAGZ } from './magz';\nimport { MKG_TABLE_MEDW } from './medw';\nimport { MKG_TABLE_PARL } from './parl';\nimport { MKG_TABLE_PLNB } from './plnb';\nimport { MKG_TABLE_PRBV } from './prbv';\nimport { MKG_TABLE_PRDH } from './prdh';\nimport { MKG_TABLE_PRDR } from './prdr';\nimport { MKG_TABLE_PRMV } from './prmv';\nimport { MKG_TABLE_RELA } from './rela';\nimport { MKG_TABLE_RGRS } from './rgrs';\nimport { MKG_TABLE_RSRC } from './rsrc';\nimport { MKG_TABLE_RSRD } from './rsrd';\nimport { MKG_TABLE_RSRG } from './rsrg';\nimport { MKG_TABLE_STLH } from './stlh';\nimport { MKG_TABLE_STLM } from './stlm';\nimport { MKG_TABLE_STLR } from './stlr';\nimport { MKG_TABLE_VRDG } from './vrdg';\n\nconst tables = [\n MKG_TABLE_RELA,\n MKG_TABLE_DEBI,\n MKG_TABLE_MEDW,\n MKG_TABLE_ARTI,\n MKG_TABLE_RSRC,\n MKG_TABLE_RSRD,\n MKG_TABLE_RSRG,\n MKG_TABLE_MAGZ,\n MKG_TABLE_MAGL,\n MKG_TABLE_STLH,\n MKG_TABLE_STLR,\n MKG_TABLE_STLM,\n MKG_TABLE_PRDH,\n MKG_TABLE_BWRK,\n MKG_TABLE_BWRG,\n MKG_TABLE_CLCH,\n MKG_TABLE_VRDG,\n MKG_TABLE_RGRS,\n MKG_TABLE_PLNB,\n MKG_TABLE_ARTG,\n MKG_TABLE_PRDR,\n MKG_TABLE_PRMV,\n MKG_TABLE_PRBV,\n MKG_TABLE_PARL,\n];\n\nexport const MKG_TABLES: { [identifier: string]: MkgTable } = tables.reduce(\n (acc, table) => {\n acc[table.identifier] = table;\n return acc;\n },\n {} as { [identifier: string]: MkgTable },\n);\n", "import {\n CompileDelegate,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpError,\n} from '@transai/connector-runtime-sdk';\nimport {\n ActionInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { MKG_TABLES } from './tables/_all';\n\nexport class ActionsHandler {\n readonly #connectorSDK: ConnectorSDKInterface;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n connectorSDK: ConnectorSDKInterface,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK;\n this.#httpClient = httpClient;\n }\n\n get callbackFunctionChain(): (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse> {\n return this.#jobCallbackFunction(\n this.#connectorSDK.receiver.emitEventType(\n this.#connectorSDK.receiver.responses.created(),\n ),\n );\n }\n\n #jobCallbackFunction(\n callbackFunction: (message: XodJobType) => Promise<KafkaCallbackResponse>,\n ) {\n return async (\n message: XodJobType,\n action: ActionInterface,\n ): Promise<KafkaCallbackResponse> => {\n try {\n this.#connectorSDK.logger.debug(\n `[MKG] Apply templates on payload: ${JSON.stringify(message.payload)}, action: ${JSON.stringify(action)}`,\n );\n\n const handleBars = action.config['parsedTemplates'] as {\n action: CompileDelegate;\n params: CompileDelegate;\n };\n\n const parsedAction = handleBars\n .action({\n inputs: message.payload,\n })\n .trim();\n\n const parsedParams = handleBars\n .params({\n inputs: message.payload,\n })\n .trim();\n\n const parsedParamsJson = JSON.parse(parsedParams);\n this.#connectorSDK.logger.debug(\n `[MKG] Parsed action: ${parsedAction}, params json: ${JSON.stringify(parsedParamsJson)}`,\n );\n\n const [tableIdentifier, ...rest] = parsedAction.split('.');\n const actionIdentifier = rest.join('.');\n // eslint-disable-next-line security/detect-object-injection\n const mkgTable = MKG_TABLES[tableIdentifier];\n if (!mkgTable) {\n this.#connectorSDK.logger.warn(\n `[MKG] Unknown table identifier \"${tableIdentifier}\" in message ${message.eventId}`,\n );\n return this.#connectorSDK.receiver.responses.badRequest(\n `[MKG] Unknown table identifier \"${tableIdentifier}\"`,\n )(message);\n }\n\n const mkgAction = mkgTable.action(actionIdentifier);\n if (!mkgAction) {\n const logMessage = `[MKG] Unknown action identifier \"${actionIdentifier}\" within table \"${tableIdentifier}\" in message ${message.eventId}`;\n this.#connectorSDK.logger.warn(logMessage);\n return this.#connectorSDK.receiver.responses.badRequest(logMessage)(\n message,\n );\n }\n\n if (message.testRun) {\n this.#connectorSDK.logger.info(\n `[MKG] Test run for ${message.eventId} with payload ${parsedParams} to action ${parsedAction}`,\n );\n return callbackFunction(message);\n }\n\n try {\n const response = await this.#httpClient.request(\n mkgAction.method,\n `/web/v3/MKG/Documents/${mkgAction.path(parsedParamsJson)}`,\n {\n ...(['POST', 'PUT'].includes(mkgAction.method)\n ? {\n data: {\n request: {\n InputData: {\n [tableIdentifier]: [\n mkgAction.fieldSet(parsedParamsJson),\n ],\n },\n },\n },\n }\n : {}),\n },\n );\n\n this.#connectorSDK.logger.debug(\n `[MKG] Got action \"${actionIdentifier}\" of table \"${tableIdentifier}\" response from MKG: ${JSON.stringify(response)}`,\n );\n } catch (error: HttpError | unknown) {\n const logMessage = `[MKG] Failed to perform action \"${actionIdentifier}\" of table \"${tableIdentifier}\": (${(error as HttpError)?.status}) ${(error as HttpError)?.error ?? (error as Error)?.message}`;\n this.#connectorSDK.logger.error(logMessage);\n\n return this.#connectorSDK.receiver.responses.unprocessableEntity(\n logMessage,\n )(message);\n }\n\n return callbackFunction(message);\n } catch (error: unknown) {\n return this.#connectorSDK.receiver.responses.internalServerError(\n error instanceof Error ? error.message : 'Unknown error occurred',\n )(message);\n }\n };\n }\n}\n", "import {\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpError,\n IntervalHandler,\n StoredOffset,\n} from '@transai/connector-runtime-sdk';\n\nimport {\n ConnectorConfig,\n DEFAULT_DATASOURCE,\n MkgTableInterface,\n} from './types';\n\ntype FetchDataResponse<D> = {\n response: {\n ResultData: [\n {\n [key: string]: Array<D>;\n },\n ];\n };\n};\n\nexport class ExtractorService implements IntervalHandler {\n readonly #sdk: ConnectorSDKInterface<ConnectorConfig>;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n readonly #tableIdentifier: string;\n\n readonly #table: Required<MkgTableInterface>;\n\n readonly #fieldsList: string;\n\n constructor(\n sdk: ConnectorSDKInterface<ConnectorConfig>,\n httpClient: HttpClientSDKInterface,\n tableIdentifier: string,\n table: Required<MkgTableInterface>,\n ) {\n this.#sdk = sdk;\n this.#httpClient = httpClient;\n this.#tableIdentifier = tableIdentifier;\n this.#table = table;\n this.#fieldsList = table.fields.join(',');\n }\n\n get name(): string {\n return `mkg-extractor-${this.#tableIdentifier}`;\n }\n\n async onRun(): Promise<void> {\n try {\n const now = new Date();\n const latestOffset = await this.#sdk.offsetStore.getOffset(\n `offset_${this.#tableIdentifier}`,\n );\n\n const data = await this.#fetchData(latestOffset);\n if (data.length > 0) {\n await this.#sdk.sender.documents(data, {\n keyField: this.#table.identifierField,\n collection: `${this.#sdk.config.datasourceIdentifier ?? DEFAULT_DATASOURCE}_${this.#tableIdentifier}`,\n });\n }\n\n this.#sdk.logger.debug(\n `[MKG] Processed ${data.length} records from ${this.#tableIdentifier}`,\n );\n\n this.#sdk.offsetStore.setOffset(\n {\n id: String(\n data[data.length - 1]?.[this.#table.identifierField] ??\n latestOffset.id,\n ),\n timestamp: now.getTime(),\n rawTimestamp: now.toISOString(),\n },\n `offset_${this.#tableIdentifier}`,\n );\n } catch (error) {\n this.#sdk.logger.error(\n `[MKG] Failed to retrieve and process data from OPC UA source service`,\n { error },\n );\n throw error;\n }\n }\n\n #fetchData = async (\n latestOffset: StoredOffset,\n ): Promise<\n Array<{\n [key: string]: string | number | boolean;\n }>\n > => {\n const parameters = new URLSearchParams();\n parameters.set('NumRows', String(this.#table.rows));\n parameters.set(\n 'Filter',\n `${this.#table.dateField}>=${latestOffset.rawTimestamp}`,\n );\n parameters.set('FieldList', `${this.#table.dateField},${this.#fieldsList}`);\n\n try {\n const response = await this.#httpClient.get<\n FetchDataResponse<{\n [key: string]: string | number | boolean;\n }>\n >(\n `/web/v3/MKG/Documents/${this.#tableIdentifier}?${parameters.toString()}`,\n );\n\n return (\n response.data?.response?.ResultData?.[0]?.[this.#tableIdentifier] ?? []\n );\n } catch (error: HttpError | unknown) {\n const logMessage = `[MKG] Failed to fetch data from table \"${this.#tableIdentifier}\": (${(error as HttpError)?.status}) ${(error as HttpError)?.error ?? (error as Error)?.message}`;\n this.#sdk.logger.error(logMessage);\n }\n\n return [];\n };\n}\n", "/* eslint-disable camelcase,@typescript-eslint/naming-convention */\nimport {\n ConnectorRuntimeSDK,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpRequestOptions,\n} from '@transai/connector-runtime-sdk';\nimport { ConnectorInterface } from '@xip-online-data/types';\n\nimport { ActionsHandler } from './actions-handler';\nimport { ExtractorService } from './extractor.service';\nimport { MKG_TABLES } from './tables/_all';\nimport {\n ConnectorConfig,\n SESSION_COOKIE_NAME,\n SESSION_EXPIRATION_SECONDS,\n} from './types';\n\nexport class ConnectorRunnerMkg extends ConnectorRuntimeSDK<ConnectorConfig> {\n readonly #actionsHandler: ActionsHandler;\n\n readonly #mkgHttpClient: HttpClientSDKInterface;\n\n readonly #sessionTokenHttpClient: HttpClientSDKInterface;\n\n #sessionToken?: {\n token: string;\n expiresAt: number;\n };\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n super(connector, connectorSDK);\n\n const { config } = this.connectorSDK;\n\n this.#sessionTokenHttpClient = this.connectorSDK.httpClient({\n baseUrl: `https://${config.server}:${config.port ?? 443}/${(config.path ?? '/mkg').replace(/^\\/+/, '')}`,\n });\n this.#mkgHttpClient = this.connectorSDK\n .httpClient({\n baseUrl: `https://${config.server}:${config.port ?? 443}/${(config.path ?? '/mkg').replace(/^\\/+/, '')}`,\n })\n .setRequestOptionsFormatter(this.#requestOptionsFormatter);\n\n this.#actionsHandler = new ActionsHandler(\n this.connectorSDK,\n this.#mkgHttpClient,\n );\n\n this.callbackFunction = this.#actionsHandler.callbackFunctionChain;\n }\n\n override init = async (): Promise<void> => {\n const { config } = this.connectorSDK;\n\n Object.entries(config.tables ?? {}).forEach(\n ([tableIdentifier, configOrTrue]) => {\n // eslint-disable-next-line security/detect-object-injection\n const table = MKG_TABLES[tableIdentifier];\n if (!table) {\n this.connectorSDK.logger.warn(\n `[MKG] Unknown table identifier \"${tableIdentifier}\", skipping configuration.`,\n );\n return;\n }\n\n if (!table.interval || table.interval <= 0) {\n this.connectorSDK.logger.verbose(\n `[MKG] Table \"${tableIdentifier}\" does not have a valid interval configured, skipping registration.`,\n );\n return;\n }\n\n this.connectorSDK.processing.registerInterval(\n table.interval,\n new ExtractorService(\n this.connectorSDK,\n this.#mkgHttpClient,\n tableIdentifier,\n table.cloneFromTableConfig(configOrTrue),\n ),\n { immediate: table.immediate },\n );\n },\n );\n };\n\n #requestOptionsFormatter = async <D = string | object>(\n options: HttpRequestOptions<D>,\n ): Promise<HttpRequestOptions<D>> => {\n const { config } = this.connectorSDK;\n\n return {\n ...options,\n headers: {\n ...(options?.headers ?? {}),\n Cookie: `${SESSION_COOKIE_NAME}=${await this.#getSessionCookie(config.username, config.password)}`,\n 'X-CustomerID': config.apiToken,\n },\n };\n };\n\n async #getSessionCookie(\n j_username: string,\n j_password: string,\n ): Promise<string> {\n const token = this.#sessionToken;\n if (token && token.expiresAt > Date.now()) {\n return token.token;\n }\n\n const response = await this.#sessionTokenHttpClient.post(\n '/static/auth/j_spring_security_check',\n {\n j_username,\n j_password,\n },\n {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n },\n );\n\n if (!response) {\n throw new Error('Failed to authenticate and retrieve session cookie');\n }\n\n const cookies = (response.headers?.['set-cookie'] ??\n response.headers?.['Set-Cookie'] ??\n []) as Array<string>;\n const sessionCookie = cookies.find((cookie: string) =>\n cookie.startsWith(`${SESSION_COOKIE_NAME}=`),\n );\n\n if (!sessionCookie) {\n throw new Error('Session cookie not found in authentication response');\n }\n\n const sessionToken = sessionCookie\n .split(';')[0]\n ?.substring(`${SESSION_COOKIE_NAME}=`.length);\n\n this.#sessionToken = {\n token: sessionToken,\n expiresAt: Date.now() + SESSION_EXPIRATION_SECONDS - 1000,\n };\n\n return sessionToken;\n }\n}\n"],
|
|
5
|
+
"mappings": "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BACA,wBACA,wBACA,eACA,oBACA,4BACA,4BACA,0BACA,aACA,YACF,CACF,CAAC,EChGM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,qBACA,YACA,WACA,WACA,YACA,WACF,CACF,CAAC,ECVM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,GACV,OAAQ,CACN,sBACA,WACA,YACA,qBACA,wBACA,2BACA,cACA,WACA,2BACA,oBACA,YACA,oBACA,gBACA,iCACA,uBACA,mBACA,mBACA,gBACA,sBACA,eACA,wBACA,sBACA,gBACA,mBACA,gBACA,mBACA,yBACA,mBACA,oBACA,kBACA,oBACA,kBACA,uBACA,oBACA,kBACA,wBACA,kBACA,gCACA,kBACA,gBACA,4BACA,oBACA,uBACA,gBACA,mBACA,iBACA,uBACA,0BACA,gBACA,6BACA,kCACA,mBACF,CACF,CAAC,ECzDM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,GACV,OAAQ,CACN,kBACA,kBACA,mBACA,qBACA,oBACA,yBACA,6BACA,mBACA,kBACA,yBACA,cACA,qBACA,wBACA,mBACA,YACA,iBACA,yBACA,wBACA,kBACA,mBACA,aACA,aACA,WACA,kBACA,iBACA,gBACA,aACA,yBACA,mBACA,iBACA,aACA,oBACA,uBACA,oBACF,CACF,CAAC,ECvCM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,cACA,aACA,oBACA,sBACA,mBACA,mBACA,gBACA,WACA,sBACA,eACA,sBACA,mBACA,2BACA,oBACA,YACA,WACA,iBACA,eACA,mBACA,mBACA,YACA,iBACA,YACA,oBACA,gBACA,mBACA,cACA,gBACA,mBACA,WACA,mBACA,8BACA,gBACA,mBACA,4BACA,mBACA,mBACA,eACA,mBACA,mBACA,uBACA,oBACA,YACA,uBACA,qBACA,4BACA,qBACA,iBACA,mBACA,oBACA,eACA,iBACA,mBACA,mBACA,4BACF,CACF,CAAC,EC3DM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,YACA,aACA,iBACA,oBACA,aACA,YACA,YACA,YACF,CACF,CAAC,ECZM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,YACA,aACA,aACA,YACA,aACA,oBACA,WACF,CACF,CAAC,ECXM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,4BACA,qBACA,yBACA,yBACA,uBACA,0BACA,oBACA,oBACA,UACA,oBACA,gBACA,yBACA,8BACA,gBACA,0BACA,mBACA,gBACA,4BACA,uBACA,mBACA,oBACA,qBACA,yBACA,oBACA,gBACA,gBACA,sBACA,YACA,qBACA,iBACA,+BACA,sBACA,0BACA,uBACA,2BACA,gBACA,uBACA,wBACA,oBACA,cACA,kBACA,kBACA,qBACA,kBACA,cACA,sBACA,iBACA,YACA,oBACA,aACA,mBACA,sBACA,qBACA,kBACA,mBACA,sBACA,oBACA,yBACA,eACA,mBACA,sBACA,gBACA,uBACA,sBACA,mBACA,wBACA,gCACA,uBACA,yBACA,8BACA,gCACA,2BACA,gCACA,qBACA,iBACA,yBACA,oBACA,gBACA,2BACA,0BACA,0BACA,gCACA,yBACA,cACA,yBACA,sBACA,eACA,kBACA,kBACA,oBACF,CACF,CAAC,EChFM,IAAMC,EAAN,MAAMC,CAAwC,CAWnDC,GAEA,YAAYC,EAA4B,CACtC,KAAK,WAAaA,EAAO,WACzB,KAAK,OAASA,EAAO,OACrB,KAAK,OAASA,EAAO,OACrB,KAAK,eAAiBA,EAAO,gBAAkB,CAAC,EAChD,KAAK,KAAOA,EAAO,OAAS,IAAc,KAAKD,GAAO,WACxD,CAEA,gBAAgBE,EAAqC,CACnD,IAAMC,EAAS,IAAIJ,EAAU,IAAI,EACjC,OAAAI,EAAOH,GAASE,EAETC,CACT,CAEA,SAASC,EAA6D,CACpE,IAAMC,EAAY,IAAI,IAEtB,YAAK,OAAO,QAASC,GAAU,CAE7B,IAAMC,EAAiBH,EAAUE,CAAK,EACtC,GAAI,CAACC,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A,WACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,gCACA,8BACA,YACA,yBACA,sBACA,YACA,WACA,WACA,WACA,YACA,WACA,iBACA,aACA,QACA,iBACA,aACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,gBACA,qBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACF,CACF,CAAC,ECjEM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,wBACA,WACA,YACA,gBACA,eACA,gBACA,WACA,wBACA,gBACA,cACA,mBACA,mBACA,mBACA,cACA,iBACF,CACF,CAAC,ECpBM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,WACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,WACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,gBACF,CACF,CAAC,EC/FM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CAAC,WAAY,YAAa,UAAU,CAC9C,CAAC,ECHM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,YACA,aACA,kBACA,YACA,kBACA,aACA,aACA,YACA,eACA,mBACA,cACA,cACA,WACA,aACA,aACA,aACF,CACF,CAAC,ECrBM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,YACA,gBACA,YACA,wBACA,eACA,aACA,qBACA,eACA,cACA,sBACA,aACA,mBACA,uBACA,kBACA,eACA,eACA,mBACA,WACA,mBACA,mBACA,qBACA,kBACA,eACA,eACA,uBACA,eACA,gBACA,uBACA,gBACA,uBACA,eACA,mBACA,cACA,mBACA,cACA,qBACA,eACA,gBACA,oBACA,2BACA,yBACA,YACA,oBACA,oBACA,sBACA,gBACA,wBACA,eACA,wBACA,WACA,aACA,mBACA,uBACA,qBACA,kBACA,WACA,iBACA,mBACA,sBACA,qBACA,eACA,mBACA,gBACA,eACA,4BACA,cACA,eACA,kBACA,eACA,aACA,mBACA,cACF,CACF,CAAC,EC7EM,IAAMC,GAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,WACA,qBACA,cACA,4BACA,6BACA,4BACA,8BACA,YACA,qBACA,4BACA,+BACA,8BACA,oBACA,wBACA,cACA,gBACA,gBACA,aACA,8BACA,4BACA,aACA,aACA,WACA,+BACA,uBACA,wBACA,4BACA,cACA,gBACA,4BACA,iBACA,eACA,8BACA,4BACA,4BACA,0BACA,WACA,0BACA,kBACA,qBACA,8BACA,aACA,cACA,8BACA,0BACA,iBACA,qBACA,mBACA,4BACA,qBACA,kBACA,kBACF,CACF,CAAC,ECzDM,IAAMC,GAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,wBACA,wBACA,oBACA,uBACA,uBACA,oBACA,wBACA,qBACA,WACA,uBACA,qBACA,oBACA,wBACA,oBACA,qBACA,WACA,qBACA,uBACA,uBACA,mBACF,CACF,CAAC,ECAD,IAAMC,GAAS,CACbC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC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",
|
|
6
6
|
"names": ["index_exports", "__export", "ConnectorRunnerMkg", "__toCommonJS", "process", "ConnectorRuntimeSDK", "connector", "connectorSDK", "#IPC_CHANNEL", "#connectorSDK", "message", "action", "containers", "key", "value", "error", "callback", "#enrichWithActionConfig", "callbackFunction", "DEFAULT_DATASOURCE", "DEFAULT_INTERVAL", "DEFAULT_ROW_KEY_FIELD", "DEFAULT_DATE_FIELD", "DEFAULT_NUM_ROWS", "SESSION_COOKIE_NAME", "SESSION_EXPIRATION_SECONDS", "MkgTable", "_MkgTable", "params", "actions", "DEFAULT_INTERVAL", "DEFAULT_ROW_KEY_FIELD", "DEFAULT_DATE_FIELD", "DEFAULT_NUM_ROWS", "action", "tableConfig", "field", "identifier", "a", "MKG_TABLE_ARTG", "MkgTable", "MKG_TABLE_ARTI", "MkgTable", "MKG_TABLE_BWRG", "MkgTable", "MKG_TABLE_BWRK", "MkgTable", "MKG_TABLE_CLCH", "MkgTable", "MKG_TABLE_DEBI", "MkgTable", "MKG_TABLE_MAGL", "MkgTable", "MKG_TABLE_MAGZ", "MkgTable", "MKG_TABLE_MEDW", "MkgTable", "MkgAction", "_MkgAction", "#table", "params", "table", "action", "inputData", "fieldData", "field", "inputDataValue", "ACTION_MOVE", "MkgAction", "MKG_TABLE_PARL", "MkgTable", "ACTION_CREATE", "MkgAction", "MKG_TABLE_PLNB", "MkgTable", "ACTION_CREATE", "MkgAction", "inputData", "prdhNum", "prdrNum", "MKG_TABLE_PRBV", "MkgTable", "ACTION_CREATE", "MkgAction", "MKG_TABLE_PRDH", "MkgTable", "ACTION_CREATE", "MkgAction", "inputData", "prdhNum", "MKG_TABLE_PRDR", "MkgTable", "ACTION_CREATE", "MkgAction", "inputData", "prdhNum", "prdrNum", "MKG_TABLE_PRMV", "MkgTable", "MKG_TABLE_RELA", "MkgTable", "MKG_TABLE_RGRS", "MkgTable", "MKG_TABLE_RSRC", "MkgTable", "MKG_TABLE_RSRD", "MkgTable", "MKG_TABLE_RSRG", "MkgTable", "MKG_TABLE_STLH", "MkgTable", "MKG_TABLE_STLM", "MkgTable", "MKG_TABLE_STLR", "MkgTable", "MKG_TABLE_VRDG", "MkgTable", "tables", "MKG_TABLE_RELA", "MKG_TABLE_DEBI", "MKG_TABLE_MEDW", "MKG_TABLE_ARTI", "MKG_TABLE_RSRC", "MKG_TABLE_RSRD", "MKG_TABLE_RSRG", "MKG_TABLE_MAGZ", "MKG_TABLE_MAGL", "MKG_TABLE_STLH", "MKG_TABLE_STLR", "MKG_TABLE_STLM", "MKG_TABLE_PRDH", "MKG_TABLE_BWRK", "MKG_TABLE_BWRG", "MKG_TABLE_CLCH", "MKG_TABLE_VRDG", "MKG_TABLE_RGRS", "MKG_TABLE_PLNB", "MKG_TABLE_ARTG", "MKG_TABLE_PRDR", "MKG_TABLE_PRMV", "MKG_TABLE_PRBV", "MKG_TABLE_PARL", "MKG_TABLES", "acc", "table", "ActionsHandler", "#connectorSDK", "#httpClient", "connectorSDK", "httpClient", "#jobCallbackFunction", "callbackFunction", "message", "action", "handleBars", "parsedAction", "parsedParams", "parsedParamsJson", "tableIdentifier", "rest", "actionIdentifier", "mkgTable", "MKG_TABLES", "mkgAction", "logMessage", "response", "error", "ExtractorService", "#sdk", "#httpClient", "#tableIdentifier", "#table", "#fieldsList", "sdk", "httpClient", "tableIdentifier", "table", "now", "latestOffset", "data", "#fetchData", "DEFAULT_DATASOURCE", "error", "parameters", "logMessage", "ConnectorRunnerMkg", "ConnectorRuntimeSDK", "connector", "connectorSDK", "config", "tableIdentifier", "configOrTrue", "table", "MKG_TABLES", "ExtractorService", "#mkgHttpClient", "#requestOptionsFormatter", "options", "SESSION_COOKIE_NAME", "#getSessionCookie", "#sessionTokenHttpClient", "#actionsHandler", "ActionsHandler", "#sessionToken", "j_username", "j_password", "token", "response", "sessionCookie", "cookie", "sessionToken", "SESSION_EXPIRATION_SECONDS"]
|
|
7
7
|
}
|
package/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as l from"node:process";var f=class{constructor(r,e){this.#e="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#t=e,l.on?l.on("message",_=>{_.cmd===this.#e&&e.logger.verbose(`${l.pid} Received message from parent process:`,_)}):e.logger.warn("IPC channel is not available. process.on is undefined."),l.send||e.logger.warn("IPC channel is not available. process.send is undefined."),r.actions?.forEach(_=>{if(_.config.templates===void 0)return;let i={};Object.entries(_.config.templates).forEach(([a,p])=>{try{i[a]=e.templating.compile(p)}catch(d){e.logger.error(`Error compiling template ${a} for action ${_.identifier}`,d)}}),_.config.parsedTemplates=i})}#e;#t;set callbackFunction(r){this.connectorSDK.receiver.registerCallback(this.#r(r))}get connectorSDK(){return this.#t}#r(r){return async e=>{let _=this.#t.receiver.getActionConfig(e);return _?r(e,_):this.#t.receiver.responses.badRequest("Action not found")(e)}}};var M="mkg",A=3600,E="RowKey",j="sys_dat_wijzig",K=250,h="JSESSIONID",C=1800*1e3;var t=class n{constructor(r,e=[]){this.identifier=r.identifier,this.fields=r.fields,this.immediate=r.immediate!==!1,this.interval=r.interval??(this.fields.length>0?A:0),this.identifierField=r.identifierField??E,this.dateField=r.dateField??j,this.rows=r.rows??K,this.actions=e.map(_=>_.withParentTable(this))}cloneFromTableConfig(r){return r===!0||r.fields===void 0?this:new n({...this,fields:this.fields.filter(e=>r.fields?.includes(e))})}action(r){return this.actions.find(e=>e.identifier===r)}};var S=new t({identifier:"artg",fields:["artg_num","artg_rela","artg_cred","artg_oms","artg_inkoopofferte"]});var R=new t({identifier:"arti",interval:300,fields:["arti_parameter_2","arti_prijs_vast_man","arti_seriegrootte","arti_vrij_memo_1","arti_bestellen","arti_btw_aanpasbaar","arti_vrij_datum_1","arti_eenh_uitgifte","arti_eenh_prijs_inkoop","arti_partij_per_1","arti_partij","arti_voorraad_waarde_mach","arti_parameter_4","arti_eenh_ontvangst","arti_prijs_vast_mat","arti_verh_tijd_aantal_grp","arti_voorraad_aantal","arti_bestel_freq_eenh","arti_vrij_datum_4","arti_eenh_vrk","arti_trans_eenh","arti_kosten_artikel","arti_verh_tijd_aantal_vrd","arti_verh_volume_aantal_grp","arti_memo_verkoop_intern","arti_verh_volume_aantal_vrd","arti_vrij_memo_2","arti_zoeknaam","arti_blok_verkoop","arti_verh_aantal_aantal_vrd","arti_actief","arti_bestelcode","arti_locatie","arti_prijs_netto_mat","arti_prijs_vast","arti_vrij_veld_1","arti_parameter_1","arti_vrij_datum_2","arti_gewicht_per_m","arti_memo_inkoop_extern","arti_inkoopofferte","arti_prijs_gemiddeld_mat","arti_dienst_verkoop","arti_oms_2","arti_levertijd_inkoop","arti_verh_tijd_eenh_grp","arti_prijs_netto_uitb","arti_oppervlakte","arti_voorraadsysteem","arti_kostprijssysteem","arti_niet_autores","arti_wvp_obv_gvp","arti_vrij_memo_5","arti_prijs_inkoop","arti_levertijd_productie","arti_verh_gewicht_aantal_grp","arti_verh_gewicht_eenh_grp","arti_vrij_veld_2","arti_prijs_gemiddeld_mach","arti_lijst_3","arti_verh_gewicht_aantal_vrd","arti_parameter_3","arti_lijst_1","arti_prijs_vast_mach","arti_vrij_veld_5","arti_ict_fact_verkoop","arti_verh_lengte_aantal_vrd","arti_backflush","arti_vrij_datum_3","arti_vrd_aanvullen_tot","arti_inkoop_artikel","arti_verh_rest_aantal_grp","arti_eenh_vrd","arti_prijs_vast_uitb","arti_trans_gewicht","arti_memo_inkoop_intern","arti_vrij_memo_3","arti_prijs_netto","arti_mat_lengte","arti_bestelhoeveelheid","arti_eenh_bestelling","arti_verh_oppv_eenh_grp","arti_voorraad_artikel","arti_backflush_uitval","arti_lijst_9","arti_vrij_datum_5","arti_verh_oppv_aantal_grp","arti_prijs_gemiddeld_uitb","arti_prijs_verkoop_eenm","arti_oms_3","arti_oms_1"]});var I=new t({identifier:"bwrg",fields:["bwrg_inkoopofferte","bwrg_memo","bwrg_oms","bwrg_num","bwrg_cred","bwrg_rela"]});var y=new t({identifier:"bwrk",interval:60,fields:["bwrk_bwrf_instellen","bwrk_oms","bwrk_rela","bwrk_inkoopofferte","bwrk_reden_vroeg_laat","bwrk_tarief_netto_instel","bwrk_actief","bwrk_num","bwrk_grbk_direct_verantw","bwrk_actief_pauze","bwrk_memo","bwrk_aanloop_type","bwrk_medw_ovz","bwrk_grbk_indirect_kosten_mach","bwrk_niet_op_uren_pc","bwrk_memo_instel","bwrk_afloop_tijd","bwrk_magl_uit","bwrk_wachttijd_voor","bwrk_magl_in","bwrk_wegingsfactor_nc","bwrk_rsrc_instellen","bwrk_vspt_bew","bwrk_afloop_perc","bwrk_rsrc_bew","bwrk_afloop_type","bwrk_tarief_netto_mach","bwrk_memo_extern","bwrk_specificeren","bwrk_afbeelding","bwrk_wachttijd_na","bwrk_uitb_prijs","bwrk_man_per_machine","bwrk_aanloop_perc","bwrk_insteltijd","bwrk_tarief_calc_mach","bwrk_uitb_dagen","bwrk_grbk_direct_verantw_mach","bwrk_start_type","bwrk_volgorde","bwrk_grbk_indirect_kosten","bwrk_uitbesteding","bwrk_uitb_prijs_eenh","bwrk_eenmalig","bwrk_vspt_instel","bwrk_vspt_uitb","bwrk_sf_start_gereed","bwrk_tarief_calc_instel","bwrk_onbemand","bwrk_grbk_indirect_verantw","bwrk_grbk_indirect_verantw_mach","bwrk_aanloop_tijd"]});var D=new t({identifier:"clch",interval:60,fields:["clch_volgnummer","clch_op_dek_uit","clch_op_calc_mat","clch_vofh_verk_num","clch_op_calc_mach","clch_vofh_dat_antwoord","clch_kostprijs_methode_bew","clch_op_calc_man","clch_vofr_oms_1","clch_vofh_dat_levering","clch_lengte","clch_vofh_ref_onze","clch_calc_methode_mat","clch_op_calc_uit","clch_memo","clch_vofh_proj","clch_vofr_order_aantal","clch_calc_methode_bew","clch_op_dek_man","clch_op_dek_mach","clch_oms_1","clch_files","clch_num","clch_op_dek_mat","clch_vofh_rela","clch_vofh_num","clch_oms_3","clch_vofh_dat_aanvraag","clch_vofh_ref_uw","clch_vofr_arti","clch_oms_2","clch_boekjaar_afh","clch_vofr_eenh_order","clch_fase_planning"]});var L=new t({identifier:"debi",fields:["debi_actief","debi_email","debi_vrij_datum_4","debi_pkbh_verz_type","debi_vrij_memo_3","debi_vrij_memo_4","debi_zoeknaam","debi_bic","debi_kredietlimiet2","debi_deellev","debi_fcth_verz_type","debi_plaats_bank","debi_dat_btw_verificatie","debi_vrij_datum_1","debi_naam","debi_btw","debi_peppol_id","debi_kvk_num","debi_vrij_memo_2","debi_fact_naam_2","debi_docs","debi_bet_wijze","debi_blok","debi_vrij_datum_5","debi_bankcode","debi_memo_extern","debi_naam_2","debi_rekening","debi_aantal_fact","debi_num","debi_vrij_veld_2","debi_status_btw_verificatie","debi_deelfact","debi_comm_opslag","debi_naam_btw_verificatie","debi_vrij_veld_3","debi_vrij_veld_4","debi_incasso","debi_vrij_memo_1","debi_vrij_memo_5","debi_max_regels_pakb","debi_vrij_datum_3","debi_iban","debi_max_regels_fact","debi_toon_opslagen","debi_memo_kredietbewaking","debi_kredietlimiet","debi_debi_fact","debi_vrij_veld_5","debi_vrij_datum_2","debi_btw_num","debi_fact_naam","debi_vrij_veld_1","debi_memo_intern","debi_adres_btw_verificatie"]});var G=new t({identifier:"magl",fields:["magl_memo","magl_oms_3","magl_shopfloor","magl_niet_autores","magl_oms_2","magl_code","magl_blok","magl_oms_1"]});var x=new t({identifier:"magz",fields:["magz_memo","magz_oms_1","magz_oms_2","magz_code","magz_oms_3","magz_niet_autores","magz_blok"]});var B=new t({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 o=class n{#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 n(this);return e.#e=r,e}fieldSet(r){let e=new Map;return this.fields.forEach(_=>{let i=r[_];if(!i)throw new Error(`Missing required field '${_}' for action '${this.identifier}'`);e.set(_,i)}),this.optionalFields.forEach(_=>{let i=r[_];i&&e.set(_,i)}),Object.fromEntries(e.entries())}};var ee=new o({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"}),$=new t({identifier:"parl",fields:[]},[ee]);var re=new o({identifier:"create",method:"POST",fields:["prdh_num","prdr_num","bwrk_num","plnb_dat_start","plnb_tijd_start"]}),z=new t({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"]},[re]);var te=new o({identifier:"create.prdh_prdr",method:"POST",fields:["bwrk_num","prbv_tijd_per_stuk"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=n.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prbv`}}),O=new t({identifier:"prbv",fields:[]},[te]);var _e=new o({identifier:"create",method:"POST",fields:["prdh_oms_1"]}),P=new t({identifier:"prdh",interval:60,fields:["prdh_op_dek_mat","prdh_op_dek_uit","prdh_oms_1","prdh_wk_order","prdh_memo_extern","prdh_wk_gepland","prdh_files","prdh_op_vcnc_uit","prdh_oms_2","prdh_memo_intern","prdh_dat_order","prdh_op_vcnc_man","prdh_op_vcnc_mat","prdh_op_vcnc_mach","prdh_op_dek_man","prdh_fase_planning","prdh_wk_planning","prdh_kostprijs_methode_bew","prdh_calc_methode_mat","prdh_image","prdh_dat_gepland","prdh_calc_methode_bew","prdh_historisch","prdh_oms_3","prdh_op_dek_mach","prdh_dat_planning","prdh_forecast","prdh_num"]},[_e]);var ie=new o({identifier:"create.prdh",method:"POST",fields:["prdr_oms_1","prdr_tot_aantal","prdr_id"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");return`prdh/${r}/prdh_eindproduct/`}}),F=new t({identifier:"prdr",fields:[]},[ie]);var ne=new o({identifier:"create.prdh_prdr",method:"POST",fields:["prmv_oms_1","cred_num"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=n.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prmv`}}),N=new t({identifier:"prmv",fields:[]},[ne]);var H=new t({identifier:"rela",fields:["rela_vrij_datum_4","rela_naam","rela_vrij_datum_3","rela_vrij_datum_2","rela_postcode","rela_www","rela_vrij_datum_5","rela_vrij_datum_1","rela_vrij_veld_1","rela_email","rela_telefoon","rela_plaats","rela_moeder","rela_vrij_veld_3","rela_vrij_veld_5","rela_vrij_veld_2","rela_vrij_veld_4","rela_vrij_memo_1","rela_num","rela_resr","rela_memo","rela_vrij_memo_5","rela_naam_2","rela_zoeknaam","rela_vrij_memo_2","rela_plaats_2","rela_vrij_memo_3","rela_vrij_memo_4","rela_afbeelding","rela_files","rela_fax","rela_info","rela_actief"]});var U=new t({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 t({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 J=new t({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 t({identifier:"rsrg",fields:["rsrg_num","rsrg_memo","rsrg_oms"]});var X=new t({identifier:"stlh",interval:600,fields:["arti_code","stlh_teken","stlh_rev_lengte","stlh_bron","stlh_volgnummer","stlh_oms_2","stlh_oms_1","stlh_memo","stlh_revisie","stlh_rev_preview","stlh_actief","stlh_lengte","stlh_num","stlh_oms_3","stlh_files","stlh_prefix"]});var V=new t({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 Y=new t({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 Z=new t({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 ae=[H,L,B,R,q,J,W,x,G,X,Y,V,P,y,I,D,Z,U,z,S,F,N,O,$],b=ae.reduce((n,r)=>(n[r.identifier]=r,n),{});var v=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.created()))}#r(r){return async(e,_)=>{try{this.#e.logger.debug(`[MKG] Apply templates on payload: ${JSON.stringify(e.payload)}, action: ${JSON.stringify(_)}`);let i=_.config.parsedTemplates,a=i.action({inputs:e.payload}).trim(),p=i.params({inputs:e.payload}).trim(),d=JSON.parse(p);this.#e.logger.debug(`[MKG] Parsed action: ${a}, params json: ${JSON.stringify(d)}`);let[s,...k]=a.split("."),g=k.join("."),u=b[s];if(!u)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 c=u.action(g);if(!c){let m=`[MKG] Unknown action identifier "${g}" 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} with payload ${p} to action ${a}`),r(e);try{let m=await this.#t.request(c.method,`/web/v3/MKG/Documents/${c.path(d)}`,{...["POST","PUT"].includes(c.method)?{data:{request:{InputData:{[s]:[c.fieldSet(d)]}}}}:{}});this.#e.logger.debug(`[MKG] Got action "${g}" of table "${s}" response from MKG: ${JSON.stringify(m)}`)}catch(m){let T=`[MKG] Failed to perform action "${g}" of table "${s}": (${m?.status}) ${m?.error??m?.message}`;return this.#e.logger.error(T),this.#e.receiver.responses.unprocessableEntity(T)(e)}return r(e)}catch(i){return this.#e.receiver.responses.internalServerError(i instanceof Error?i.message:"Unknown error occurred")(e)}}}};var w=class{#e;#t;#r;#_;#i;constructor(r,e,_,i){this.#e=r,this.#t=e,this.#r=_,this.#_=i,this.#i=i.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}`),_=await this.#n(e);_.length>0&&await this.#e.sender.documents(_,{keyField:this.#_.identifierField,collection:`${this.#e.config.datasourceIdentifier??M}_${this.#r}`}),this.#e.logger.debug(`[MKG] Processed ${_.length} records from ${this.#r}`),this.#e.offsetStore.setOffset({id:String(_[_.length-1]?.[this.#_.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}}#n=async r=>{let e=new URLSearchParams;e.set("NumRows",String(this.#_.rows)),e.set("Filter",`${this.#_.dateField}>=${r.rawTimestamp}`),e.set("FieldList",`${this.#_.dateField},${this.#i}`);try{return(await this.#t.get(`/web/v3/MKG/Documents/${this.#r}?${e.toString()}`)).data?.response?.ResultData?.[0]?.[this.#r]??[]}catch(_){let i=`[MKG] Failed to fetch data from table "${this.#r}": (${_?.status}) ${_?.error??_?.message}`;this.#e.logger.error(i)}return[]}};var Q=class extends f{constructor(e,_){super(e,_);this.init=async()=>{let{config:e}=this.connectorSDK;Object.entries(e.tables??{}).forEach(([_,i])=>{let a=b[_];if(!a){this.connectorSDK.logger.warn(`[MKG] Unknown table identifier "${_}", skipping configuration.`);return}if(!a.interval||a.interval<=0){this.connectorSDK.logger.verbose(`[MKG] Table "${_}" does not have a valid interval configured, skipping registration.`);return}this.connectorSDK.processing.registerInterval(a.interval,new w(this.connectorSDK,this.#t,_,a.cloneFromTableConfig(i)),{immediate:a.immediate})})};this.#i=async e=>{let{config:_}=this.connectorSDK;return{...e,headers:{...e?.headers??{},Cookie:`${h}=${await this.#n(_.username,_.password)}`,"X-CustomerID":_.apiToken}}};let{config:i}=this.connectorSDK;this.#r=this.connectorSDK.httpClient({baseUrl:`https://${i.server}:${i.port??443}/${(i.path??"/mkg").replace(/^\/+/,"")}`}),this.#t=this.connectorSDK.httpClient({baseUrl:`https://${i.server}:${i.port??443}/${(i.path??"/mkg").replace(/^\/+/,"")}`}).setRequestOptionsFormatter(this.#i),this.#e=new v(this.connectorSDK,this.#t),this.callbackFunction=this.#e.callbackFunctionChain}#e;#t;#r;#_;#i;async#n(e,_){let i=this.#_;if(i&&i.expiresAt>Date.now())return i.token;let a=await this.#r.post("/static/auth/j_spring_security_check",{j_username:e,j_password:_},{headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"}});if(!a)throw new Error("Failed to authenticate and retrieve session cookie");let d=(a.headers?.["set-cookie"]??a.headers?.["Set-Cookie"]??[]).find(k=>k.startsWith(`${h}=`));if(!d)throw new Error("Session cookie not found in authentication response");let s=d.split(";")[0]?.substring(`${h}=`.length);return this.#_={token:s,expiresAt:Date.now()+C-1e3},s}};export{Q as ConnectorRunnerMkg};
|
|
1
|
+
import*as l from"node:process";var f=class{constructor(r,e){this.#e="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#t=e,l.on?l.on("message",_=>{_.cmd===this.#e&&e.logger.verbose(`${l.pid} Received message from parent process:`,_)}):e.logger.warn("IPC channel is not available. process.on is undefined."),l.send||e.logger.warn("IPC channel is not available. process.send is undefined."),r.actions?.forEach(_=>{if(_.config.templates===void 0)return;let i={};Object.entries(_.config.templates).forEach(([a,p])=>{try{i[a]=e.templating.compile(p)}catch(d){e.logger.error(`Error compiling template ${a} for action ${_.identifier}`,d)}}),_.config.parsedTemplates=i})}#e;#t;set callbackFunction(r){this.connectorSDK.receiver.registerCallback(this.#r(r))}get connectorSDK(){return this.#t}#r(r){return async e=>{let _=await this.#t.receiver.getActionConfig(e);return _?r(e,_):this.#t.receiver.responses.badRequest("Action not found")(e)}}};var M="mkg",A=3600,E="RowKey",j="sys_dat_wijzig",K=250,h="JSESSIONID",C=1800*1e3;var t=class n{constructor(r,e=[]){this.identifier=r.identifier,this.fields=r.fields,this.immediate=r.immediate!==!1,this.interval=r.interval??(this.fields.length>0?A:0),this.identifierField=r.identifierField??E,this.dateField=r.dateField??j,this.rows=r.rows??K,this.actions=e.map(_=>_.withParentTable(this))}cloneFromTableConfig(r){return r===!0||r.fields===void 0?this:new n({...this,fields:this.fields.filter(e=>r.fields?.includes(e))})}action(r){return this.actions.find(e=>e.identifier===r)}};var S=new t({identifier:"artg",fields:["artg_num","artg_rela","artg_cred","artg_oms","artg_inkoopofferte"]});var R=new t({identifier:"arti",interval:300,fields:["arti_parameter_2","arti_prijs_vast_man","arti_seriegrootte","arti_vrij_memo_1","arti_bestellen","arti_btw_aanpasbaar","arti_vrij_datum_1","arti_eenh_uitgifte","arti_eenh_prijs_inkoop","arti_partij_per_1","arti_partij","arti_voorraad_waarde_mach","arti_parameter_4","arti_eenh_ontvangst","arti_prijs_vast_mat","arti_verh_tijd_aantal_grp","arti_voorraad_aantal","arti_bestel_freq_eenh","arti_vrij_datum_4","arti_eenh_vrk","arti_trans_eenh","arti_kosten_artikel","arti_verh_tijd_aantal_vrd","arti_verh_volume_aantal_grp","arti_memo_verkoop_intern","arti_verh_volume_aantal_vrd","arti_vrij_memo_2","arti_zoeknaam","arti_blok_verkoop","arti_verh_aantal_aantal_vrd","arti_actief","arti_bestelcode","arti_locatie","arti_prijs_netto_mat","arti_prijs_vast","arti_vrij_veld_1","arti_parameter_1","arti_vrij_datum_2","arti_gewicht_per_m","arti_memo_inkoop_extern","arti_inkoopofferte","arti_prijs_gemiddeld_mat","arti_dienst_verkoop","arti_oms_2","arti_levertijd_inkoop","arti_verh_tijd_eenh_grp","arti_prijs_netto_uitb","arti_oppervlakte","arti_voorraadsysteem","arti_kostprijssysteem","arti_niet_autores","arti_wvp_obv_gvp","arti_vrij_memo_5","arti_prijs_inkoop","arti_levertijd_productie","arti_verh_gewicht_aantal_grp","arti_verh_gewicht_eenh_grp","arti_vrij_veld_2","arti_prijs_gemiddeld_mach","arti_lijst_3","arti_verh_gewicht_aantal_vrd","arti_parameter_3","arti_lijst_1","arti_prijs_vast_mach","arti_vrij_veld_5","arti_ict_fact_verkoop","arti_verh_lengte_aantal_vrd","arti_backflush","arti_vrij_datum_3","arti_vrd_aanvullen_tot","arti_inkoop_artikel","arti_verh_rest_aantal_grp","arti_eenh_vrd","arti_prijs_vast_uitb","arti_trans_gewicht","arti_memo_inkoop_intern","arti_vrij_memo_3","arti_prijs_netto","arti_mat_lengte","arti_bestelhoeveelheid","arti_eenh_bestelling","arti_verh_oppv_eenh_grp","arti_voorraad_artikel","arti_backflush_uitval","arti_lijst_9","arti_vrij_datum_5","arti_verh_oppv_aantal_grp","arti_prijs_gemiddeld_uitb","arti_prijs_verkoop_eenm","arti_oms_3","arti_oms_1"]});var I=new t({identifier:"bwrg",fields:["bwrg_inkoopofferte","bwrg_memo","bwrg_oms","bwrg_num","bwrg_cred","bwrg_rela"]});var y=new t({identifier:"bwrk",interval:60,fields:["bwrk_bwrf_instellen","bwrk_oms","bwrk_rela","bwrk_inkoopofferte","bwrk_reden_vroeg_laat","bwrk_tarief_netto_instel","bwrk_actief","bwrk_num","bwrk_grbk_direct_verantw","bwrk_actief_pauze","bwrk_memo","bwrk_aanloop_type","bwrk_medw_ovz","bwrk_grbk_indirect_kosten_mach","bwrk_niet_op_uren_pc","bwrk_memo_instel","bwrk_afloop_tijd","bwrk_magl_uit","bwrk_wachttijd_voor","bwrk_magl_in","bwrk_wegingsfactor_nc","bwrk_rsrc_instellen","bwrk_vspt_bew","bwrk_afloop_perc","bwrk_rsrc_bew","bwrk_afloop_type","bwrk_tarief_netto_mach","bwrk_memo_extern","bwrk_specificeren","bwrk_afbeelding","bwrk_wachttijd_na","bwrk_uitb_prijs","bwrk_man_per_machine","bwrk_aanloop_perc","bwrk_insteltijd","bwrk_tarief_calc_mach","bwrk_uitb_dagen","bwrk_grbk_direct_verantw_mach","bwrk_start_type","bwrk_volgorde","bwrk_grbk_indirect_kosten","bwrk_uitbesteding","bwrk_uitb_prijs_eenh","bwrk_eenmalig","bwrk_vspt_instel","bwrk_vspt_uitb","bwrk_sf_start_gereed","bwrk_tarief_calc_instel","bwrk_onbemand","bwrk_grbk_indirect_verantw","bwrk_grbk_indirect_verantw_mach","bwrk_aanloop_tijd"]});var D=new t({identifier:"clch",interval:60,fields:["clch_volgnummer","clch_op_dek_uit","clch_op_calc_mat","clch_vofh_verk_num","clch_op_calc_mach","clch_vofh_dat_antwoord","clch_kostprijs_methode_bew","clch_op_calc_man","clch_vofr_oms_1","clch_vofh_dat_levering","clch_lengte","clch_vofh_ref_onze","clch_calc_methode_mat","clch_op_calc_uit","clch_memo","clch_vofh_proj","clch_vofr_order_aantal","clch_calc_methode_bew","clch_op_dek_man","clch_op_dek_mach","clch_oms_1","clch_files","clch_num","clch_op_dek_mat","clch_vofh_rela","clch_vofh_num","clch_oms_3","clch_vofh_dat_aanvraag","clch_vofh_ref_uw","clch_vofr_arti","clch_oms_2","clch_boekjaar_afh","clch_vofr_eenh_order","clch_fase_planning"]});var L=new t({identifier:"debi",fields:["debi_actief","debi_email","debi_vrij_datum_4","debi_pkbh_verz_type","debi_vrij_memo_3","debi_vrij_memo_4","debi_zoeknaam","debi_bic","debi_kredietlimiet2","debi_deellev","debi_fcth_verz_type","debi_plaats_bank","debi_dat_btw_verificatie","debi_vrij_datum_1","debi_naam","debi_btw","debi_peppol_id","debi_kvk_num","debi_vrij_memo_2","debi_fact_naam_2","debi_docs","debi_bet_wijze","debi_blok","debi_vrij_datum_5","debi_bankcode","debi_memo_extern","debi_naam_2","debi_rekening","debi_aantal_fact","debi_num","debi_vrij_veld_2","debi_status_btw_verificatie","debi_deelfact","debi_comm_opslag","debi_naam_btw_verificatie","debi_vrij_veld_3","debi_vrij_veld_4","debi_incasso","debi_vrij_memo_1","debi_vrij_memo_5","debi_max_regels_pakb","debi_vrij_datum_3","debi_iban","debi_max_regels_fact","debi_toon_opslagen","debi_memo_kredietbewaking","debi_kredietlimiet","debi_debi_fact","debi_vrij_veld_5","debi_vrij_datum_2","debi_btw_num","debi_fact_naam","debi_vrij_veld_1","debi_memo_intern","debi_adres_btw_verificatie"]});var G=new t({identifier:"magl",fields:["magl_memo","magl_oms_3","magl_shopfloor","magl_niet_autores","magl_oms_2","magl_code","magl_blok","magl_oms_1"]});var x=new t({identifier:"magz",fields:["magz_memo","magz_oms_1","magz_oms_2","magz_code","magz_oms_3","magz_niet_autores","magz_blok"]});var B=new t({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 o=class n{#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 n(this);return e.#e=r,e}fieldSet(r){let e=new Map;return this.fields.forEach(_=>{let i=r[_];if(!i)throw new Error(`Missing required field '${_}' for action '${this.identifier}'`);e.set(_,i)}),this.optionalFields.forEach(_=>{let i=r[_];i&&e.set(_,i)}),Object.fromEntries(e.entries())}};var ee=new o({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"}),$=new t({identifier:"parl",fields:[]},[ee]);var re=new o({identifier:"create",method:"POST",fields:["prdh_num","prdr_num","bwrk_num","plnb_dat_start","plnb_tijd_start"]}),z=new t({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"]},[re]);var te=new o({identifier:"create.prdh_prdr",method:"POST",fields:["bwrk_num","prbv_tijd_per_stuk"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=n.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prbv`}}),O=new t({identifier:"prbv",fields:[]},[te]);var _e=new o({identifier:"create",method:"POST",fields:["prdh_oms_1"]}),P=new t({identifier:"prdh",interval:60,fields:["prdh_op_dek_mat","prdh_op_dek_uit","prdh_oms_1","prdh_wk_order","prdh_memo_extern","prdh_wk_gepland","prdh_files","prdh_op_vcnc_uit","prdh_oms_2","prdh_memo_intern","prdh_dat_order","prdh_op_vcnc_man","prdh_op_vcnc_mat","prdh_op_vcnc_mach","prdh_op_dek_man","prdh_fase_planning","prdh_wk_planning","prdh_kostprijs_methode_bew","prdh_calc_methode_mat","prdh_image","prdh_dat_gepland","prdh_calc_methode_bew","prdh_historisch","prdh_oms_3","prdh_op_dek_mach","prdh_dat_planning","prdh_forecast","prdh_num"]},[_e]);var ie=new o({identifier:"create.prdh",method:"POST",fields:["prdr_oms_1","prdr_tot_aantal","prdr_id"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");return`prdh/${r}/prdh_eindproduct/`}}),F=new t({identifier:"prdr",fields:[]},[ie]);var ne=new o({identifier:"create.prdh_prdr",method:"POST",fields:["prmv_oms_1","cred_num"],path:n=>{let r=n.prdh_num;if(!r)throw new Error("Missing required field 'prdh_num' for action 'create'");let e=n.prdr_num;if(!e)throw new Error("Missing required field 'prdr_num' for action 'create'");return`prdr/1+${r}+${e}/prdr_prmv`}}),N=new t({identifier:"prmv",fields:[]},[ne]);var H=new t({identifier:"rela",fields:["rela_vrij_datum_4","rela_naam","rela_vrij_datum_3","rela_vrij_datum_2","rela_postcode","rela_www","rela_vrij_datum_5","rela_vrij_datum_1","rela_vrij_veld_1","rela_email","rela_telefoon","rela_plaats","rela_moeder","rela_vrij_veld_3","rela_vrij_veld_5","rela_vrij_veld_2","rela_vrij_veld_4","rela_vrij_memo_1","rela_num","rela_resr","rela_memo","rela_vrij_memo_5","rela_naam_2","rela_zoeknaam","rela_vrij_memo_2","rela_plaats_2","rela_vrij_memo_3","rela_vrij_memo_4","rela_afbeelding","rela_files","rela_fax","rela_info","rela_actief"]});var U=new t({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 t({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 J=new t({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 t({identifier:"rsrg",fields:["rsrg_num","rsrg_memo","rsrg_oms"]});var X=new t({identifier:"stlh",interval:600,fields:["arti_code","stlh_teken","stlh_rev_lengte","stlh_bron","stlh_volgnummer","stlh_oms_2","stlh_oms_1","stlh_memo","stlh_revisie","stlh_rev_preview","stlh_actief","stlh_lengte","stlh_num","stlh_oms_3","stlh_files","stlh_prefix"]});var V=new t({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 Y=new t({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 Z=new t({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 ae=[H,L,B,R,q,J,W,x,G,X,Y,V,P,y,I,D,Z,U,z,S,F,N,O,$],b=ae.reduce((n,r)=>(n[r.identifier]=r,n),{});var v=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.created()))}#r(r){return async(e,_)=>{try{this.#e.logger.debug(`[MKG] Apply templates on payload: ${JSON.stringify(e.payload)}, action: ${JSON.stringify(_)}`);let i=_.config.parsedTemplates,a=i.action({inputs:e.payload}).trim(),p=i.params({inputs:e.payload}).trim(),d=JSON.parse(p);this.#e.logger.debug(`[MKG] Parsed action: ${a}, params json: ${JSON.stringify(d)}`);let[s,...k]=a.split("."),g=k.join("."),u=b[s];if(!u)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 c=u.action(g);if(!c){let m=`[MKG] Unknown action identifier "${g}" 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} with payload ${p} to action ${a}`),r(e);try{let m=await this.#t.request(c.method,`/web/v3/MKG/Documents/${c.path(d)}`,{...["POST","PUT"].includes(c.method)?{data:{request:{InputData:{[s]:[c.fieldSet(d)]}}}}:{}});this.#e.logger.debug(`[MKG] Got action "${g}" of table "${s}" response from MKG: ${JSON.stringify(m)}`)}catch(m){let T=`[MKG] Failed to perform action "${g}" of table "${s}": (${m?.status}) ${m?.error??m?.message}`;return this.#e.logger.error(T),this.#e.receiver.responses.unprocessableEntity(T)(e)}return r(e)}catch(i){return this.#e.receiver.responses.internalServerError(i instanceof Error?i.message:"Unknown error occurred")(e)}}}};var w=class{#e;#t;#r;#_;#i;constructor(r,e,_,i){this.#e=r,this.#t=e,this.#r=_,this.#_=i,this.#i=i.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}`),_=await this.#n(e);_.length>0&&await this.#e.sender.documents(_,{keyField:this.#_.identifierField,collection:`${this.#e.config.datasourceIdentifier??M}_${this.#r}`}),this.#e.logger.debug(`[MKG] Processed ${_.length} records from ${this.#r}`),this.#e.offsetStore.setOffset({id:String(_[_.length-1]?.[this.#_.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}}#n=async r=>{let e=new URLSearchParams;e.set("NumRows",String(this.#_.rows)),e.set("Filter",`${this.#_.dateField}>=${r.rawTimestamp}`),e.set("FieldList",`${this.#_.dateField},${this.#i}`);try{return(await this.#t.get(`/web/v3/MKG/Documents/${this.#r}?${e.toString()}`)).data?.response?.ResultData?.[0]?.[this.#r]??[]}catch(_){let i=`[MKG] Failed to fetch data from table "${this.#r}": (${_?.status}) ${_?.error??_?.message}`;this.#e.logger.error(i)}return[]}};var Q=class extends f{constructor(e,_){super(e,_);this.init=async()=>{let{config:e}=this.connectorSDK;Object.entries(e.tables??{}).forEach(([_,i])=>{let a=b[_];if(!a){this.connectorSDK.logger.warn(`[MKG] Unknown table identifier "${_}", skipping configuration.`);return}if(!a.interval||a.interval<=0){this.connectorSDK.logger.verbose(`[MKG] Table "${_}" does not have a valid interval configured, skipping registration.`);return}this.connectorSDK.processing.registerInterval(a.interval,new w(this.connectorSDK,this.#t,_,a.cloneFromTableConfig(i)),{immediate:a.immediate})})};this.#i=async e=>{let{config:_}=this.connectorSDK;return{...e,headers:{...e?.headers??{},Cookie:`${h}=${await this.#n(_.username,_.password)}`,"X-CustomerID":_.apiToken}}};let{config:i}=this.connectorSDK;this.#r=this.connectorSDK.httpClient({baseUrl:`https://${i.server}:${i.port??443}/${(i.path??"/mkg").replace(/^\/+/,"")}`}),this.#t=this.connectorSDK.httpClient({baseUrl:`https://${i.server}:${i.port??443}/${(i.path??"/mkg").replace(/^\/+/,"")}`}).setRequestOptionsFormatter(this.#i),this.#e=new v(this.connectorSDK,this.#t),this.callbackFunction=this.#e.callbackFunctionChain}#e;#t;#r;#_;#i;async#n(e,_){let i=this.#_;if(i&&i.expiresAt>Date.now())return i.token;let a=await this.#r.post("/static/auth/j_spring_security_check",{j_username:e,j_password:_},{headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"}});if(!a)throw new Error("Failed to authenticate and retrieve session cookie");let d=(a.headers?.["set-cookie"]??a.headers?.["Set-Cookie"]??[]).find(k=>k.startsWith(`${h}=`));if(!d)throw new Error("Session cookie not found in authentication response");let s=d.split(";")[0]?.substring(`${h}=`.length);return this.#_={token:s,expiresAt:Date.now()+C-1e3},s}};export{Q as ConnectorRunnerMkg};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../libs/connector-runtime-sdk/src/lib/connector-runtime.ts", "../../../libs/connector-runner-mkg/src/lib/types.ts", "../../../libs/connector-runner-mkg/src/lib/tables/base/table.ts", "../../../libs/connector-runner-mkg/src/lib/tables/artg.ts", "../../../libs/connector-runner-mkg/src/lib/tables/arti.ts", "../../../libs/connector-runner-mkg/src/lib/tables/bwrg.ts", "../../../libs/connector-runner-mkg/src/lib/tables/bwrk.ts", "../../../libs/connector-runner-mkg/src/lib/tables/clch.ts", "../../../libs/connector-runner-mkg/src/lib/tables/debi.ts", "../../../libs/connector-runner-mkg/src/lib/tables/magl.ts", "../../../libs/connector-runner-mkg/src/lib/tables/magz.ts", "../../../libs/connector-runner-mkg/src/lib/tables/medw.ts", "../../../libs/connector-runner-mkg/src/lib/tables/base/action.ts", "../../../libs/connector-runner-mkg/src/lib/tables/parl.ts", "../../../libs/connector-runner-mkg/src/lib/tables/plnb.ts", "../../../libs/connector-runner-mkg/src/lib/tables/prbv.ts", "../../../libs/connector-runner-mkg/src/lib/tables/prdh.ts", "../../../libs/connector-runner-mkg/src/lib/tables/prdr.ts", "../../../libs/connector-runner-mkg/src/lib/tables/prmv.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rela.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rgrs.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rsrc.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rsrd.ts", "../../../libs/connector-runner-mkg/src/lib/tables/rsrg.ts", "../../../libs/connector-runner-mkg/src/lib/tables/stlh.ts", "../../../libs/connector-runner-mkg/src/lib/tables/stlm.ts", "../../../libs/connector-runner-mkg/src/lib/tables/stlr.ts", "../../../libs/connector-runner-mkg/src/lib/tables/vrdg.ts", "../../../libs/connector-runner-mkg/src/lib/tables/_all.ts", "../../../libs/connector-runner-mkg/src/lib/actions-handler.ts", "../../../libs/connector-runner-mkg/src/lib/extractor.service.ts", "../../../libs/connector-runner-mkg/src/lib/connector-runner-mkg.ts"],
|
|
4
|
-
"sourcesContent": ["import * as process from 'node:process';\n\nimport {\n KafkaCallbackResponse,\n BaseConnectorConfig,\n ActionInterface,\n ConnectorInterface,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { ConnectorRuntimeInterface } from './connector-runtime.interface';\nimport { CompileDelegate, ConnectorSDKInterface } from './sdk';\n\nexport interface IpcMessage {\n cmd: string;\n message: string;\n}\n\nexport abstract class ConnectorRuntimeSDK<\n T extends BaseConnectorConfig = BaseConnectorConfig,\n> implements ConnectorRuntimeInterface\n{\n readonly #IPC_CHANNEL = 'connector-runtime';\n\n readonly #connectorSDK: ConnectorSDKInterface<T>;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK as ConnectorSDKInterface<T>;\n\n if (process.on) {\n process.on('message', (message: IpcMessage) => {\n if (message.cmd === this.#IPC_CHANNEL) {\n connectorSDK.logger.verbose(\n `${process.pid} Received message from parent process:`,\n message,\n );\n }\n });\n } else {\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.on is undefined.',\n );\n }\n\n if (!process.send) {\n // Check if process.send is available\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.send is undefined.',\n );\n }\n\n // eslint-disable-next-line no-restricted-syntax\n connector.actions?.forEach((action: ActionInterface) => {\n if (action.config['templates'] === undefined) {\n return;\n }\n\n const containers: {\n [key: string]: CompileDelegate;\n } = {};\n\n Object.entries(action.config['templates']).forEach(([key, value]) => {\n try {\n // eslint-disable-next-line security/detect-object-injection\n containers[key] = connectorSDK.templating.compile(value);\n } catch (error: unknown) {\n connectorSDK.logger.error(\n `Error compiling template ${key} for action ${action.identifier}`,\n error,\n );\n }\n });\n\n // eslint-disable-next-line no-param-reassign\n action.config['parsedTemplates'] = containers;\n });\n }\n\n public init: () => Promise<void> = () => Promise.resolve();\n\n public start: () => Promise<void> = () => Promise.resolve();\n\n public stop: () => Promise<void> = () => Promise.resolve();\n\n set callbackFunction(\n callback: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ) {\n this.connectorSDK.receiver.registerCallback(\n this.#enrichWithActionConfig(callback),\n );\n }\n\n protected get connectorSDK(): ConnectorSDKInterface<T> {\n return this.#connectorSDK;\n }\n\n #enrichWithActionConfig(\n callbackFunction: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ): (message: XodJobType) => Promise<KafkaCallbackResponse> {\n return async (message: XodJobType) => {\n const action = this.#connectorSDK.receiver.getActionConfig(message);\n if (!action) {\n return this.#connectorSDK.receiver.responses.badRequest(\n 'Action not found',\n )(message);\n }\n return callbackFunction(message, action);\n };\n }\n}\n", "import { BaseConnectorConfig } from '@xip-online-data/types';\n\nexport const DEFAULT_DATASOURCE = 'mkg';\n\nexport const DEFAULT_INTERVAL = 3_600;\n\nexport const DEFAULT_ROW_KEY_FIELD = 'RowKey';\n\nexport const DEFAULT_DATE_FIELD = 'sys_dat_wijzig';\n\nexport const DEFAULT_NUM_ROWS = 250;\n\nexport const SESSION_COOKIE_NAME = 'JSESSIONID';\n\n/**\n * Session expires in 30 minutes\n */\nexport const SESSION_EXPIRATION_SECONDS = 30 * 60 * 1000;\n\nexport interface TableConfig {\n fields?: Array<string>;\n}\n\nexport interface ConnectorConfig extends BaseConnectorConfig {\n server: 'saas*.mkg.eu' | string;\n port?: 443 | 8443 | number;\n path?: '/mkg' | '/mkgoefenclient' | string;\n\n username: string;\n password: string;\n apiToken: string;\n\n tables?: { [key: string]: TableConfig | true };\n}\n\nexport interface MkgTableInterface {\n identifier: string;\n fields: Array<string>;\n\n immediate?: boolean;\n interval?: number;\n identifierField?: string;\n dateField?: string;\n rows?: number;\n}\n", "import {\n DEFAULT_DATE_FIELD,\n DEFAULT_INTERVAL,\n DEFAULT_NUM_ROWS,\n DEFAULT_ROW_KEY_FIELD,\n MkgTableInterface,\n TableConfig,\n} from '../../types';\n\nimport { MkgAction } from './action';\n\nexport class MkgTable implements MkgTableInterface {\n readonly identifier: string;\n\n readonly fields: Array<string>;\n\n readonly immediate: boolean;\n\n readonly interval: number;\n\n readonly identifierField: string;\n\n readonly dateField: string;\n\n readonly rows: number;\n\n readonly actions: Array<MkgAction>;\n\n constructor(params: MkgTableInterface, actions: Array<MkgAction> = []) {\n this.identifier = params.identifier;\n this.fields = params.fields;\n this.immediate = params.immediate !== false;\n this.interval =\n params.interval ?? (this.fields.length > 0 ? DEFAULT_INTERVAL : 0);\n this.identifierField = params.identifierField ?? DEFAULT_ROW_KEY_FIELD;\n this.dateField = params.dateField ?? DEFAULT_DATE_FIELD;\n this.rows = params.rows ?? DEFAULT_NUM_ROWS;\n this.actions = actions.map((action) => action.withParentTable(this));\n }\n\n cloneFromTableConfig(tableConfig: TableConfig | true): MkgTable {\n if (tableConfig === true || tableConfig.fields === undefined) {\n return this;\n }\n\n return new MkgTable({\n ...this,\n fields: this.fields.filter((field) =>\n tableConfig.fields?.includes(field),\n ),\n });\n }\n\n action(identifier: string): MkgAction | undefined {\n return this.actions.find((a) => a.identifier === identifier);\n }\n}\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_ARTG = new MkgTable({\n identifier: 'artg',\n fields: [\n 'artg_num',\n 'artg_rela',\n 'artg_cred',\n 'artg_oms',\n 'artg_inkoopofferte',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_ARTI = new MkgTable({\n identifier: 'arti',\n interval: 300,\n fields: [\n 'arti_parameter_2',\n 'arti_prijs_vast_man',\n 'arti_seriegrootte',\n 'arti_vrij_memo_1',\n 'arti_bestellen',\n 'arti_btw_aanpasbaar',\n 'arti_vrij_datum_1',\n 'arti_eenh_uitgifte',\n 'arti_eenh_prijs_inkoop',\n 'arti_partij_per_1',\n 'arti_partij',\n 'arti_voorraad_waarde_mach',\n 'arti_parameter_4',\n 'arti_eenh_ontvangst',\n 'arti_prijs_vast_mat',\n 'arti_verh_tijd_aantal_grp',\n 'arti_voorraad_aantal',\n 'arti_bestel_freq_eenh',\n 'arti_vrij_datum_4',\n 'arti_eenh_vrk',\n 'arti_trans_eenh',\n 'arti_kosten_artikel',\n 'arti_verh_tijd_aantal_vrd',\n 'arti_verh_volume_aantal_grp',\n 'arti_memo_verkoop_intern',\n 'arti_verh_volume_aantal_vrd',\n 'arti_vrij_memo_2',\n 'arti_zoeknaam',\n 'arti_blok_verkoop',\n 'arti_verh_aantal_aantal_vrd',\n 'arti_actief',\n 'arti_bestelcode',\n 'arti_locatie',\n 'arti_prijs_netto_mat',\n 'arti_prijs_vast',\n 'arti_vrij_veld_1',\n 'arti_parameter_1',\n 'arti_vrij_datum_2',\n 'arti_gewicht_per_m',\n 'arti_memo_inkoop_extern',\n 'arti_inkoopofferte',\n 'arti_prijs_gemiddeld_mat',\n 'arti_dienst_verkoop',\n 'arti_oms_2',\n 'arti_levertijd_inkoop',\n 'arti_verh_tijd_eenh_grp',\n 'arti_prijs_netto_uitb',\n 'arti_oppervlakte',\n 'arti_voorraadsysteem',\n 'arti_kostprijssysteem',\n 'arti_niet_autores',\n 'arti_wvp_obv_gvp',\n 'arti_vrij_memo_5',\n 'arti_prijs_inkoop',\n 'arti_levertijd_productie',\n 'arti_verh_gewicht_aantal_grp',\n 'arti_verh_gewicht_eenh_grp',\n 'arti_vrij_veld_2',\n 'arti_prijs_gemiddeld_mach',\n 'arti_lijst_3',\n 'arti_verh_gewicht_aantal_vrd',\n 'arti_parameter_3',\n 'arti_lijst_1',\n 'arti_prijs_vast_mach',\n 'arti_vrij_veld_5',\n 'arti_ict_fact_verkoop',\n 'arti_verh_lengte_aantal_vrd',\n 'arti_backflush',\n 'arti_vrij_datum_3',\n 'arti_vrd_aanvullen_tot',\n 'arti_inkoop_artikel',\n 'arti_verh_rest_aantal_grp',\n 'arti_eenh_vrd',\n 'arti_prijs_vast_uitb',\n 'arti_trans_gewicht',\n 'arti_memo_inkoop_intern',\n 'arti_vrij_memo_3',\n 'arti_prijs_netto',\n 'arti_mat_lengte',\n 'arti_bestelhoeveelheid',\n 'arti_eenh_bestelling',\n 'arti_verh_oppv_eenh_grp',\n 'arti_voorraad_artikel',\n 'arti_backflush_uitval',\n 'arti_lijst_9',\n 'arti_vrij_datum_5',\n 'arti_verh_oppv_aantal_grp',\n 'arti_prijs_gemiddeld_uitb',\n 'arti_prijs_verkoop_eenm',\n 'arti_oms_3',\n 'arti_oms_1',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_BWRG = new MkgTable({\n identifier: 'bwrg',\n fields: [\n 'bwrg_inkoopofferte',\n 'bwrg_memo',\n 'bwrg_oms',\n 'bwrg_num',\n 'bwrg_cred',\n 'bwrg_rela',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_BWRK = new MkgTable({\n identifier: 'bwrk',\n interval: 60,\n fields: [\n 'bwrk_bwrf_instellen',\n 'bwrk_oms',\n 'bwrk_rela',\n 'bwrk_inkoopofferte',\n 'bwrk_reden_vroeg_laat',\n 'bwrk_tarief_netto_instel',\n 'bwrk_actief',\n 'bwrk_num',\n 'bwrk_grbk_direct_verantw',\n 'bwrk_actief_pauze',\n 'bwrk_memo',\n 'bwrk_aanloop_type',\n 'bwrk_medw_ovz',\n 'bwrk_grbk_indirect_kosten_mach',\n 'bwrk_niet_op_uren_pc',\n 'bwrk_memo_instel',\n 'bwrk_afloop_tijd',\n 'bwrk_magl_uit',\n 'bwrk_wachttijd_voor',\n 'bwrk_magl_in',\n 'bwrk_wegingsfactor_nc',\n 'bwrk_rsrc_instellen',\n 'bwrk_vspt_bew',\n 'bwrk_afloop_perc',\n 'bwrk_rsrc_bew',\n 'bwrk_afloop_type',\n 'bwrk_tarief_netto_mach',\n 'bwrk_memo_extern',\n 'bwrk_specificeren',\n 'bwrk_afbeelding',\n 'bwrk_wachttijd_na',\n 'bwrk_uitb_prijs',\n 'bwrk_man_per_machine',\n 'bwrk_aanloop_perc',\n 'bwrk_insteltijd',\n 'bwrk_tarief_calc_mach',\n 'bwrk_uitb_dagen',\n 'bwrk_grbk_direct_verantw_mach',\n 'bwrk_start_type',\n 'bwrk_volgorde',\n 'bwrk_grbk_indirect_kosten',\n 'bwrk_uitbesteding',\n 'bwrk_uitb_prijs_eenh',\n 'bwrk_eenmalig',\n 'bwrk_vspt_instel',\n 'bwrk_vspt_uitb',\n 'bwrk_sf_start_gereed',\n 'bwrk_tarief_calc_instel',\n 'bwrk_onbemand',\n 'bwrk_grbk_indirect_verantw',\n 'bwrk_grbk_indirect_verantw_mach',\n 'bwrk_aanloop_tijd',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_CLCH = new MkgTable({\n identifier: 'clch',\n interval: 60,\n fields: [\n 'clch_volgnummer',\n 'clch_op_dek_uit',\n 'clch_op_calc_mat',\n 'clch_vofh_verk_num',\n 'clch_op_calc_mach',\n 'clch_vofh_dat_antwoord',\n 'clch_kostprijs_methode_bew',\n 'clch_op_calc_man',\n 'clch_vofr_oms_1',\n 'clch_vofh_dat_levering',\n 'clch_lengte',\n 'clch_vofh_ref_onze',\n 'clch_calc_methode_mat',\n 'clch_op_calc_uit',\n 'clch_memo',\n 'clch_vofh_proj',\n 'clch_vofr_order_aantal',\n 'clch_calc_methode_bew',\n 'clch_op_dek_man',\n 'clch_op_dek_mach',\n 'clch_oms_1',\n 'clch_files',\n 'clch_num',\n 'clch_op_dek_mat',\n 'clch_vofh_rela',\n 'clch_vofh_num',\n 'clch_oms_3',\n 'clch_vofh_dat_aanvraag',\n 'clch_vofh_ref_uw',\n 'clch_vofr_arti',\n 'clch_oms_2',\n 'clch_boekjaar_afh',\n 'clch_vofr_eenh_order',\n 'clch_fase_planning',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_DEBI = new MkgTable({\n identifier: 'debi',\n fields: [\n 'debi_actief',\n 'debi_email',\n 'debi_vrij_datum_4',\n 'debi_pkbh_verz_type',\n 'debi_vrij_memo_3',\n 'debi_vrij_memo_4',\n 'debi_zoeknaam',\n 'debi_bic',\n 'debi_kredietlimiet2',\n 'debi_deellev',\n 'debi_fcth_verz_type',\n 'debi_plaats_bank',\n 'debi_dat_btw_verificatie',\n 'debi_vrij_datum_1',\n 'debi_naam',\n 'debi_btw',\n 'debi_peppol_id',\n 'debi_kvk_num',\n 'debi_vrij_memo_2',\n 'debi_fact_naam_2',\n 'debi_docs',\n 'debi_bet_wijze',\n 'debi_blok',\n 'debi_vrij_datum_5',\n 'debi_bankcode',\n 'debi_memo_extern',\n 'debi_naam_2',\n 'debi_rekening',\n 'debi_aantal_fact',\n 'debi_num',\n 'debi_vrij_veld_2',\n 'debi_status_btw_verificatie',\n 'debi_deelfact',\n 'debi_comm_opslag',\n 'debi_naam_btw_verificatie',\n 'debi_vrij_veld_3',\n 'debi_vrij_veld_4',\n 'debi_incasso',\n 'debi_vrij_memo_1',\n 'debi_vrij_memo_5',\n 'debi_max_regels_pakb',\n 'debi_vrij_datum_3',\n 'debi_iban',\n 'debi_max_regels_fact',\n 'debi_toon_opslagen',\n 'debi_memo_kredietbewaking',\n 'debi_kredietlimiet',\n 'debi_debi_fact',\n 'debi_vrij_veld_5',\n 'debi_vrij_datum_2',\n 'debi_btw_num',\n 'debi_fact_naam',\n 'debi_vrij_veld_1',\n 'debi_memo_intern',\n 'debi_adres_btw_verificatie',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MAGL = new MkgTable({\n identifier: 'magl',\n fields: [\n 'magl_memo',\n 'magl_oms_3',\n 'magl_shopfloor',\n 'magl_niet_autores',\n 'magl_oms_2',\n 'magl_code',\n 'magl_blok',\n 'magl_oms_1',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MAGZ = new MkgTable({\n identifier: 'magz',\n fields: [\n 'magz_memo',\n 'magz_oms_1',\n 'magz_oms_2',\n 'magz_code',\n 'magz_oms_3',\n 'magz_niet_autores',\n 'magz_blok',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MEDW = new MkgTable({\n identifier: 'medw',\n fields: [\n 'medw_pensioenpremie_werkn',\n 'medw_spaarloon_rek',\n 'medw_betaling_per_bank',\n 'medw_premiesparen_naam',\n 'medw_ziekengeld_aanm',\n 'medw_betaling_per_rek_2',\n 'medw_auto_vd_zaak',\n 'medw_vrij_datum_5',\n 'medw_or',\n 'medw_premiesparen',\n 'medw_telefoon',\n 'medw_aanwezigheids_reg',\n 'medw_betaling_per_bank_naam',\n 'medw_postcode',\n 'medw_premiesparen_batch',\n 'medw_verschuiven',\n 'medw_onkosten',\n 'medw_pensioenpremie_werkg',\n 'medw_arbodienst_aanm',\n 'medw_lid_persver',\n 'medw_laatste_bwrk',\n 'medw_memo_contract',\n 'medw_premiesparen_iban',\n 'medw_vrij_datum_3',\n 'medw_nummer_2',\n 'medw_voornaam',\n 'medw_ziekengeld_afm',\n 'medw_mdrc',\n 'medw_spaarloon_bic',\n 'medw_spaarloon',\n 'medw_betaling_per_bank_oms_3',\n 'medw_spaarloon_iban',\n 'medw_prod_gereed_melden',\n 'medw_spaarloon_batch',\n 'medw_betaling_per_iban_2',\n 'medw_roepnaam',\n 'medw_vutpremie_werkg',\n 'medw_betaling_per_rek',\n 'medw_uren_per_dag',\n 'medw_plaats',\n 'medw_telefoon_2',\n 'medw_or_functie',\n 'medw_pensioenfonds',\n 'medw_schoenmaat',\n 'medw_naam_2',\n 'medw_spaarloon_oms1',\n 'medw_vutpremie',\n 'medw_ehbo',\n 'medw_vrij_datum_4',\n 'medw_email',\n 'medw_vrij_memo_1',\n 'medw_soort_contract',\n 'medw_vakantie_uren',\n 'medw_reiskosten',\n 'medw_vrij_veld_4',\n 'medw_waohiaat_werkg',\n 'medw_vrij_datum_2',\n 'medw_premiesparen_oms1',\n 'medw_salaris',\n 'medw_vrij_veld_3',\n 'medw_spaarloon_oms3',\n 'medw_planning',\n 'medw_raadplegen_uren',\n 'medw_spaarloon_naam',\n 'medw_vrij_veld_5',\n 'medw_ziekenfonds_aanm',\n 'medw_betaling_per_bank_2_naam',\n 'medw_partime_salaris',\n 'medw_premiesparen_oms2',\n 'medw_bedrijfsvereniging_afm',\n 'medw_betaling_per_bank_2_oms1',\n 'medw_betaling_per_bank_2',\n 'medw_betaling_per_bank_plaats',\n 'medw_tussenvoegsel',\n 'medw_instellen',\n 'medw_pensioenfonds_afm',\n 'medw_functietitel',\n 'medw_straat_2',\n 'medw_premiesparen_plaats',\n 'medw_betaling_per_bic_2',\n 'medw_betaling_per_kas_2',\n 'medw_betaling_per_bank_2_oms3',\n 'medw_premiesparen_oms3',\n 'medw_straat',\n 'medw_premiesparen_oms4',\n 'medw_dagen_per_week',\n 'medw_telefax',\n 'medw_afbeelding',\n 'medw_op_uren_pc',\n 'medw_direct_gereed',\n ],\n});\n", "import { MkgTableInterface } from '../../types';\n\ntype MkgActionMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';\n\nexport interface MkgActionInterface {\n identifier: string;\n\n method: MkgActionMethod;\n\n fields: Array<string>;\n\n optionalFields?: Array<string>;\n\n path?: (inputData: Record<string, unknown>) => string;\n}\n\nexport class MkgAction implements MkgActionInterface {\n readonly identifier: string;\n\n readonly method: MkgActionMethod;\n\n readonly fields: Array<string>;\n\n readonly optionalFields: Array<string>;\n\n readonly path: (inputData: Record<string, unknown>) => string;\n\n #table!: MkgTableInterface;\n\n constructor(params: MkgActionInterface) {\n this.identifier = params.identifier;\n this.method = params.method;\n this.fields = params.fields;\n this.optionalFields = params.optionalFields ?? [];\n this.path = params.path ?? ((): string => this.#table.identifier);\n }\n\n withParentTable(table: MkgTableInterface): MkgAction {\n const action = new MkgAction(this);\n action.#table = table;\n\n return action;\n }\n\n fieldSet(inputData: Record<string, unknown>): Record<string, unknown> {\n const fieldData = new Map<string, unknown>();\n\n this.fields.forEach((field) => {\n // eslint-disable-next-line security/detect-object-injection\n const inputDataValue = inputData[field];\n if (!inputDataValue) {\n throw new Error(\n `Missing required field '${field}' for action '${this.identifier}'`,\n );\n }\n\n fieldData.set(field, inputDataValue);\n });\n\n this.optionalFields.forEach((field) => {\n // eslint-disable-next-line security/detect-object-injection\n const inputDataValue = inputData[field];\n if (inputDataValue) {\n fieldData.set(field, inputDataValue);\n }\n });\n\n return Object.fromEntries(fieldData.entries());\n }\n}\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_MOVE = new MkgAction({\n identifier: 'move',\n method: 'PUT',\n fields: [\n 'admi_num',\n 'part_num',\n 'magl_code',\n 't_doel_magl',\n 't_doel_aantal',\n 'RowKey',\n ],\n path: (): string => 'parl/0/Service/s_partij_verplaatsen',\n});\n\nexport const MKG_TABLE_PARL = new MkgTable(\n {\n identifier: 'parl',\n fields: [],\n },\n [ACTION_MOVE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create',\n method: 'POST',\n fields: [\n 'prdh_num',\n 'prdr_num',\n 'bwrk_num',\n 'plnb_dat_start',\n 'plnb_tijd_start',\n ],\n});\n\nexport const MKG_TABLE_PLNB = new MkgTable(\n {\n identifier: 'plnb',\n interval: 60,\n fields: [\n 'plnb_num',\n 'prdh_num',\n 'bwrk_num',\n 'rsrc_num',\n 'medw_num',\n 'plnb_dat_start',\n 'plnb_tijd_start',\n 'plnb_wk_start',\n 'plnb_dat_eind',\n 'plnb_tijd_eind',\n 'plnb_wk_eind',\n 'plnb_dat_gestart',\n 'plnb_tijd_gestart',\n 'plnb_wk_gestart',\n 'plnb_gestart',\n 'plnb_gereed',\n 'plnb_aantal',\n 'plnb_aantal_grd',\n 'plnb_aantal_per_uur',\n 'plnb_bijloop_aantal',\n 'plnb_uitb_aantal',\n 'plnb_volgorde',\n ],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh_prdr',\n method: 'POST',\n fields: ['bwrk_num', 'prbv_tijd_per_stuk'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const prdrNum = inputData['prdr_num'];\n if (!prdrNum) {\n throw new Error(`Missing required field 'prdr_num' for action 'create'`);\n }\n\n return `prdr/1+${prdhNum}+${prdrNum}/prdr_prbv`;\n },\n});\n\nexport const MKG_TABLE_PRBV = new MkgTable(\n {\n identifier: 'prbv',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create',\n method: 'POST',\n fields: ['prdh_oms_1'],\n});\n\nexport const MKG_TABLE_PRDH = new MkgTable(\n {\n identifier: 'prdh',\n interval: 60,\n fields: [\n 'prdh_op_dek_mat',\n 'prdh_op_dek_uit',\n 'prdh_oms_1',\n 'prdh_wk_order',\n 'prdh_memo_extern',\n 'prdh_wk_gepland',\n 'prdh_files',\n 'prdh_op_vcnc_uit',\n 'prdh_oms_2',\n 'prdh_memo_intern',\n 'prdh_dat_order',\n 'prdh_op_vcnc_man',\n 'prdh_op_vcnc_mat',\n 'prdh_op_vcnc_mach',\n 'prdh_op_dek_man',\n 'prdh_fase_planning',\n 'prdh_wk_planning',\n 'prdh_kostprijs_methode_bew',\n 'prdh_calc_methode_mat',\n 'prdh_image',\n 'prdh_dat_gepland',\n 'prdh_calc_methode_bew',\n 'prdh_historisch',\n 'prdh_oms_3',\n 'prdh_op_dek_mach',\n 'prdh_dat_planning',\n 'prdh_forecast',\n 'prdh_num',\n ],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh',\n method: 'POST',\n fields: ['prdr_oms_1', 'prdr_tot_aantal', 'prdr_id'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n return `prdh/${prdhNum}/prdh_eindproduct/`;\n },\n});\n\nexport const MKG_TABLE_PRDR = new MkgTable(\n {\n identifier: 'prdr',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh_prdr',\n method: 'POST',\n fields: ['prmv_oms_1', 'cred_num'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const prdrNum = inputData['prdr_num'];\n if (!prdrNum) {\n throw new Error(`Missing required field 'prdr_num' for action 'create'`);\n }\n\n return `prdr/1+${prdhNum}+${prdrNum}/prdr_prmv`;\n },\n});\n\nexport const MKG_TABLE_PRMV = new MkgTable(\n {\n identifier: 'prmv',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RELA = new MkgTable({\n identifier: 'rela',\n fields: [\n 'rela_vrij_datum_4',\n 'rela_naam',\n 'rela_vrij_datum_3',\n 'rela_vrij_datum_2',\n 'rela_postcode',\n 'rela_www',\n 'rela_vrij_datum_5',\n 'rela_vrij_datum_1',\n 'rela_vrij_veld_1',\n 'rela_email',\n 'rela_telefoon',\n 'rela_plaats',\n 'rela_moeder',\n 'rela_vrij_veld_3',\n 'rela_vrij_veld_5',\n 'rela_vrij_veld_2',\n 'rela_vrij_veld_4',\n 'rela_vrij_memo_1',\n 'rela_num',\n 'rela_resr',\n 'rela_memo',\n 'rela_vrij_memo_5',\n 'rela_naam_2',\n 'rela_zoeknaam',\n 'rela_vrij_memo_2',\n 'rela_plaats_2',\n 'rela_vrij_memo_3',\n 'rela_vrij_memo_4',\n 'rela_afbeelding',\n 'rela_files',\n 'rela_fax',\n 'rela_info',\n 'rela_actief',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RGRS = new MkgTable({\n identifier: 'rgrs',\n interval: 60,\n fields: [\n 'abnk_bizcuit_id',\n 'aant_vraag_oms',\n 'abnk_oms',\n 'adon_code',\n 'adon_oms',\n 'adop_code',\n 'arti_code',\n 'bwrg_oms',\n 'bwrk_oms',\n 'cert_code',\n 'gebr_code',\n 'kbdp_oms',\n 'kltn_code',\n 'kstg_oms',\n 'land_code',\n 'magw_code',\n 'medw_betaling_per_bank_2_naam',\n 'medw_betaling_per_bank_naam',\n 'medw_naam',\n 'medw_premiesparen_naam',\n 'medw_spaarloon_naam',\n 'rela_naam',\n 'reld_oms',\n 'rsrc_oms',\n 'rsrg_oms',\n 'spco_code',\n 'strd_oms',\n 't_bwrk_num_oms',\n 't_bwrk_oms',\n 't_oms',\n 't_omschrijving',\n 'aanr_datum',\n 'aanr_num',\n 'aans_num',\n 'aant_num',\n 'abnk_num',\n 'adma_num',\n 'admi_num',\n 'afdl_num',\n 'agtn_num',\n 'apia_num',\n 'bank_num',\n 'bwrf_num',\n 'bwrg_num',\n 'bwrk_num',\n 'clcb_num',\n 'clch_num',\n 'clch_vofh_num',\n 'clch_vofh_verk_num',\n 'clcm_num',\n 'clcr_num',\n 'clct_num',\n 'cred_num',\n 'debi_num',\n 'dgbk_num',\n 'fcth_num',\n 'geac_num',\n 'ifch_num',\n 'inkg_num',\n 'iofh_num',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRC = new MkgTable({\n identifier: 'rsrc',\n interval: 300,\n fields: [\n 'rsrc_fcst_eindige_cap',\n 'rsrc_oms',\n 'rsrc_memo',\n 'rsrc_volgorde',\n 'rsrc_magl_in',\n 'rsrc_onbemand',\n 'rsrc_num',\n 'rsrc_calc_eindige_cap',\n 'rsrc_magl_uit',\n 'rsrc_aantal',\n 'rsrc_calc_bucket',\n 'rsrc_eindige_cap',\n 'rsrc_fcst_bucket',\n 'rsrc_bucket',\n 'rsrc_afbeelding',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRD = new MkgTable({\n identifier: 'rsrd',\n interval: 300,\n fields: [\n 'rsrd_zo_p2_van',\n 'rsrd_za_p2_tot',\n 'rsrd_do_p1_tot',\n 'rsrd_di_p5_tot',\n 'rsrd_zo_p5_tot',\n 'rsrd_do_p3_tot',\n 'rsrd_ma_p4_tot',\n 'rsrd_wo_p3_van',\n 'rsrd_zo_p1_van',\n 'rsrd_fd_p1_van',\n 'rsrd_do_p5_van',\n 'rsrd_wo_p2_tot',\n 'rsrd_za_van',\n 'rsrd_vr_p3_van',\n 'rsrd_za_p4_van',\n 'rsrd_ma_p5_tot',\n 'rsrd_fd_p3_van',\n 'rsrd_wo_tot',\n 'rsrd_vr_tot',\n 'rsrd_ma_p1_tot',\n 'rsrd_wo_p1_tot',\n 'rsrd_zo_p4_tot',\n 'rsrd_di_p4_tot',\n 'rsrd_ma_p3_van',\n 'rsrd_ma_p5_van',\n 'rsrd_di_tot',\n 'rsrd_fd_p4_van',\n 'rsrd_vr_van',\n 'rsrd_za_p3_tot',\n 'rsrd_za_p1_van',\n 'rsrd_zo_p5_van',\n 'rsrd_fd_p2_tot',\n 'rsrd_vr_p5_van',\n 'rsrd_di_p4_van',\n 'rsrd_za_p5_tot',\n 'rsrd_di_p3_van',\n 'rsrd_ma_p2_tot',\n 'rsrd_di_van',\n 'rsrd_do_p1_van',\n 'rsrd_zo_p3_tot',\n 'rsrd_vr_p5_tot',\n 'rsrd_zo_p1_tot',\n 'rsrd_ma_van',\n 'rsrd_do_tot',\n 'rsrd_wo_p2_van',\n 'rsrd_vr_p3_tot',\n 'rsrd_di_p1_van',\n 'rsrd_za_p5_van',\n 'rsrd_fd_p5_van',\n 'rsrd_vr_p4_tot',\n 'rsrd_wo_p3_tot',\n 'rsrd_fd_p1_tot',\n 'rsrd_fd_p3_tot',\n 'rsrd_ma_p4_van',\n 'rsrd_di_p3_tot',\n 'rsrd_zo_p4_van',\n 'rsrd_do_p4_tot',\n 'rsrd_do_van',\n 'rsrd_do_p3_van',\n 'rsrd_wo_p1_van',\n 'rsrd_za_p4_tot',\n 'rsrd_zo_van',\n 'rsrd_do_p2_tot',\n 'rsrd_vr_p2_van',\n 'rsrd_vr_p2_tot',\n 'rsrd_vr_p1_tot',\n 'rsrd_do_p5_tot',\n 'rsrd_wo_van',\n 'rsrd_zo_tot',\n 'rsrd_za_p2_van',\n 'rsrd_oms',\n 'rsrd_zo_p3_van',\n 'rsrd_fd_p2_van',\n 'rsrd_do_p4_van',\n 'rsrd_di_p2_tot',\n 'rsrd_za_p3_van',\n 'rsrd_wo_p4_van',\n 'rsrd_vr_p4_van',\n 'rsrd_wo_p4_tot',\n 'rsrd_num',\n 'rsrd_ma_tot',\n 'rsrd_ma_p1_van',\n 'rsrd_di_p5_van',\n 'rsrd_fd_p5_tot',\n 'rsrd_vr_p1_van',\n 'rsrd_di_p2_van',\n 'rsrd_do_p2_van',\n 'rsrd_wo_p5_van',\n 'rsrd_za_tot',\n 'rsrd_ma_p3_tot',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRG = new MkgTable({\n identifier: 'rsrg',\n fields: ['rsrg_num', 'rsrg_memo', 'rsrg_oms'],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLH = new MkgTable({\n identifier: 'stlh',\n interval: 600,\n fields: [\n 'arti_code',\n 'stlh_teken',\n 'stlh_rev_lengte',\n 'stlh_bron',\n 'stlh_volgnummer',\n 'stlh_oms_2',\n 'stlh_oms_1',\n 'stlh_memo',\n 'stlh_revisie',\n 'stlh_rev_preview',\n 'stlh_actief',\n 'stlh_lengte',\n 'stlh_num',\n 'stlh_oms_3',\n 'stlh_files',\n 'stlh_prefix',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLM = new MkgTable({\n identifier: 'stlm',\n interval: 600,\n fields: [\n 'arti_code',\n 'stlm_rest_min',\n 'stlm_eenh',\n 'stlm_netto_prijs_uitb',\n 'stlm_lijst_9',\n 'stlm_oms_1',\n 'stlm_gewicht_netto',\n 'stlm_lijst_2',\n 'stlm_volume',\n 'stlm_tot_nettoprijs',\n 'stlm_oms_3',\n 'stlm_toegeleverd',\n 'stlm_netto_prijs_mat',\n 'stlm_plaat_magw',\n 'stlm_rest_hl',\n 'stlm_lijst_5',\n 'stlm_oppervlakte',\n 'stlm_num',\n 'stlm_parameter_2',\n 'stlm_parameter_1',\n 'stlm_gewicht_bruto',\n 'stlm_zaaglengte',\n 'stlm_revisie',\n 'stlm_lijst_4',\n 'stlm_eenh_nettoprijs',\n 'stlm_plaat_b',\n 'stlm_tekening',\n 'stlm_opspanlengte_hl',\n 'stlm_eenmalig',\n 'stlm_opspanlengte_pl',\n 'stlm_lijst_7',\n 'stlm_memo_extern',\n 'stlm_factor',\n 'stlm_parameter_3',\n 'stlm_aantal',\n 'stlm_gewicht_per_m',\n 'stlm_plaat_a',\n 'stlm_plaat_dx',\n 'stlm_behoefte_obv',\n 'stlm_netto_prijs_fictief',\n 'stlm_opspanlengte_hlzl',\n 'stlm_memo',\n 'stlm_io_aanvragen',\n 'stlm_opspanlengte',\n 'stlm_aantal_lengtes',\n 'stlm_volgorde',\n 'stlm_zaagsnede_lengte',\n 'stlm_lijst_8',\n 'stlm_netto_prijs_mach',\n 'stlm_pos',\n 'stlm_oms_2',\n 'stlm_eenh_bestel',\n 'stlm_netto_prijs_man',\n 'stlm_handelslengte',\n 'stlm_eigen_spec',\n 'stlm_cad',\n 'stlm_zaagsnede',\n 'stlm_netto_prijs',\n 'stlm_bestel_gezaagd',\n 'stlm_prijs_methode',\n 'stlm_rest_zl',\n 'stlm_parameter_5',\n 'stlm_plaat_dy',\n 'stlm_lijst_6',\n 'stlm_bestel_handelslengte',\n 'stlm_lengte',\n 'stlm_lijst_3',\n 'stlm_spec_prijs',\n 'stlm_lijst_1',\n 'stlm_files',\n 'stlm_parameter_4',\n 'stlm_plaat_k',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLR = new MkgTable({\n identifier: 'stlr',\n interval: 600,\n fields: [\n 'stlr_cad',\n 'stlr_parent_aantal',\n 'stlr_aantal',\n 'stlr_verh_oppv_aantal_grp',\n 'stlr_verh_gewicht_eenh_grp',\n 'stlr_verh_tijd_aantal_grp',\n 'stlr_verh_volume_aantal_grp',\n 'stlr_memo',\n 'stlr_stlr_herkomst',\n 'stlr_verh_aantal_eenh_grp',\n 'stlr_verh_gewicht_aantal_vrd',\n 'stlr_verh_aantal_aantal_vrd',\n 'stlr_seriegrootte',\n 'stlr_inherit_tekening',\n 'stlr_uitval',\n 'stlr_volgorde',\n 'stlr_eenmalig',\n 'stlr_oms_3',\n 'stlr_verh_volume_aantal_vrd',\n 'stlr_verh_tijd_aantal_vrd',\n 'stlr_files',\n 'stlr_oms_1',\n 'stlr_pos',\n 'stlr_verh_gewicht_aantal_grp',\n 'stlr_eindproduct_num',\n 'stlr_stlm_certificaat',\n 'stlr_verh_rest_aantal_vrd',\n 'stlr_niveau',\n 'stlr_tekening',\n 'stlr_verh_lengte_eenh_grp',\n 'stlr_prod_fase',\n 'stlr_revisie',\n 'stlr_verh_lengte_aantal_vrd',\n 'stlr_verh_volume_eenh_grp',\n 'stlr_verh_rest_aantal_grp',\n 'stlr_verh_oppv_eenh_grp',\n 'stlr_num',\n 'stlr_verh_tijd_eenh_grp',\n 'stlr_verwijzing',\n 'stlr_afronden_aant',\n 'stlr_verh_aantal_aantal_grp',\n 'stlr_oms_2',\n 'stlr_parent',\n 'stlr_verh_lengte_aantal_grp',\n 'stlr_verh_rest_eenh_grp',\n 'stlr_verw_stlh',\n 'stlr_stlh_herkomst',\n 'stlr_cad_revisie',\n 'stlr_verh_oppv_aantal_vrd',\n 'stlr_handlingstijd',\n 'stlr_tot_aantal',\n 'stlr_prod_aantal',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_VRDG = new MkgTable({\n identifier: 'vrdg',\n fields: [\n 'vrdg_grbk_pv_grd_uitb',\n 'vrdg_grbk_hw_grd_uitb',\n 'vrdg_grbk_grd_mat',\n 'vrdg_grbk_hw_grd_mat',\n 'vrdg_grbk_hw_grd_man',\n 'vrdg_grbk_vrd_mat',\n 'vrdg_grbk_hw_grd_mach',\n 'vrdg_grbk_grd_mach',\n 'vrdg_num',\n 'vrdg_grbk_pv_grd_mat',\n 'vrdg_grbk_kst_mach',\n 'vrdg_grbk_kst_mat',\n 'vrdg_grbk_pv_grd_mach',\n 'vrdg_grbk_kst_man',\n 'vrdg_grbk_kst_uitb',\n 'vrdg_oms',\n 'vrdg_grbk_grd_uitb',\n 'vrdg_grbk_pv_grd_man',\n 'vrdg_grbk_pv_vrd_mat',\n 'vrdg_grbk_grd_man',\n ],\n});\n", "import { MKG_TABLE_ARTG } from './artg';\nimport { MKG_TABLE_ARTI } from './arti';\nimport { MkgTable } from './base/table';\nimport { MKG_TABLE_BWRG } from './bwrg';\nimport { MKG_TABLE_BWRK } from './bwrk';\nimport { MKG_TABLE_CLCH } from './clch';\nimport { MKG_TABLE_DEBI } from './debi';\nimport { MKG_TABLE_MAGL } from './magl';\nimport { MKG_TABLE_MAGZ } from './magz';\nimport { MKG_TABLE_MEDW } from './medw';\nimport { MKG_TABLE_PARL } from './parl';\nimport { MKG_TABLE_PLNB } from './plnb';\nimport { MKG_TABLE_PRBV } from './prbv';\nimport { MKG_TABLE_PRDH } from './prdh';\nimport { MKG_TABLE_PRDR } from './prdr';\nimport { MKG_TABLE_PRMV } from './prmv';\nimport { MKG_TABLE_RELA } from './rela';\nimport { MKG_TABLE_RGRS } from './rgrs';\nimport { MKG_TABLE_RSRC } from './rsrc';\nimport { MKG_TABLE_RSRD } from './rsrd';\nimport { MKG_TABLE_RSRG } from './rsrg';\nimport { MKG_TABLE_STLH } from './stlh';\nimport { MKG_TABLE_STLM } from './stlm';\nimport { MKG_TABLE_STLR } from './stlr';\nimport { MKG_TABLE_VRDG } from './vrdg';\n\nconst tables = [\n MKG_TABLE_RELA,\n MKG_TABLE_DEBI,\n MKG_TABLE_MEDW,\n MKG_TABLE_ARTI,\n MKG_TABLE_RSRC,\n MKG_TABLE_RSRD,\n MKG_TABLE_RSRG,\n MKG_TABLE_MAGZ,\n MKG_TABLE_MAGL,\n MKG_TABLE_STLH,\n MKG_TABLE_STLR,\n MKG_TABLE_STLM,\n MKG_TABLE_PRDH,\n MKG_TABLE_BWRK,\n MKG_TABLE_BWRG,\n MKG_TABLE_CLCH,\n MKG_TABLE_VRDG,\n MKG_TABLE_RGRS,\n MKG_TABLE_PLNB,\n MKG_TABLE_ARTG,\n MKG_TABLE_PRDR,\n MKG_TABLE_PRMV,\n MKG_TABLE_PRBV,\n MKG_TABLE_PARL,\n];\n\nexport const MKG_TABLES: { [identifier: string]: MkgTable } = tables.reduce(\n (acc, table) => {\n acc[table.identifier] = table;\n return acc;\n },\n {} as { [identifier: string]: MkgTable },\n);\n", "import {\n CompileDelegate,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpError,\n} from '@transai/connector-runtime-sdk';\nimport {\n ActionInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { MKG_TABLES } from './tables/_all';\n\nexport class ActionsHandler {\n readonly #connectorSDK: ConnectorSDKInterface;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n connectorSDK: ConnectorSDKInterface,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK;\n this.#httpClient = httpClient;\n }\n\n get callbackFunctionChain(): (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse> {\n return this.#jobCallbackFunction(\n this.#connectorSDK.receiver.emitEventType(\n this.#connectorSDK.receiver.responses.created(),\n ),\n );\n }\n\n #jobCallbackFunction(\n callbackFunction: (message: XodJobType) => Promise<KafkaCallbackResponse>,\n ) {\n return async (\n message: XodJobType,\n action: ActionInterface,\n ): Promise<KafkaCallbackResponse> => {\n try {\n this.#connectorSDK.logger.debug(\n `[MKG] Apply templates on payload: ${JSON.stringify(message.payload)}, action: ${JSON.stringify(action)}`,\n );\n\n const handleBars = action.config['parsedTemplates'] as {\n action: CompileDelegate;\n params: CompileDelegate;\n };\n\n const parsedAction = handleBars\n .action({\n inputs: message.payload,\n })\n .trim();\n\n const parsedParams = handleBars\n .params({\n inputs: message.payload,\n })\n .trim();\n\n const parsedParamsJson = JSON.parse(parsedParams);\n this.#connectorSDK.logger.debug(\n `[MKG] Parsed action: ${parsedAction}, params json: ${JSON.stringify(parsedParamsJson)}`,\n );\n\n const [tableIdentifier, ...rest] = parsedAction.split('.');\n const actionIdentifier = rest.join('.');\n // eslint-disable-next-line security/detect-object-injection\n const mkgTable = MKG_TABLES[tableIdentifier];\n if (!mkgTable) {\n this.#connectorSDK.logger.warn(\n `[MKG] Unknown table identifier \"${tableIdentifier}\" in message ${message.eventId}`,\n );\n return this.#connectorSDK.receiver.responses.badRequest(\n `[MKG] Unknown table identifier \"${tableIdentifier}\"`,\n )(message);\n }\n\n const mkgAction = mkgTable.action(actionIdentifier);\n if (!mkgAction) {\n const logMessage = `[MKG] Unknown action identifier \"${actionIdentifier}\" within table \"${tableIdentifier}\" in message ${message.eventId}`;\n this.#connectorSDK.logger.warn(logMessage);\n return this.#connectorSDK.receiver.responses.badRequest(logMessage)(\n message,\n );\n }\n\n if (message.testRun) {\n this.#connectorSDK.logger.info(\n `[MKG] Test run for ${message.eventId} with payload ${parsedParams} to action ${parsedAction}`,\n );\n return callbackFunction(message);\n }\n\n try {\n const response = await this.#httpClient.request(\n mkgAction.method,\n `/web/v3/MKG/Documents/${mkgAction.path(parsedParamsJson)}`,\n {\n ...(['POST', 'PUT'].includes(mkgAction.method)\n ? {\n data: {\n request: {\n InputData: {\n [tableIdentifier]: [\n mkgAction.fieldSet(parsedParamsJson),\n ],\n },\n },\n },\n }\n : {}),\n },\n );\n\n this.#connectorSDK.logger.debug(\n `[MKG] Got action \"${actionIdentifier}\" of table \"${tableIdentifier}\" response from MKG: ${JSON.stringify(response)}`,\n );\n } catch (error: HttpError | unknown) {\n const logMessage = `[MKG] Failed to perform action \"${actionIdentifier}\" of table \"${tableIdentifier}\": (${(error as HttpError)?.status}) ${(error as HttpError)?.error ?? (error as Error)?.message}`;\n this.#connectorSDK.logger.error(logMessage);\n\n return this.#connectorSDK.receiver.responses.unprocessableEntity(\n logMessage,\n )(message);\n }\n\n return callbackFunction(message);\n } catch (error: unknown) {\n return this.#connectorSDK.receiver.responses.internalServerError(\n error instanceof Error ? error.message : 'Unknown error occurred',\n )(message);\n }\n };\n }\n}\n", "import {\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpError,\n IntervalHandler,\n StoredOffset,\n} from '@transai/connector-runtime-sdk';\n\nimport {\n ConnectorConfig,\n DEFAULT_DATASOURCE,\n MkgTableInterface,\n} from './types';\n\ntype FetchDataResponse<D> = {\n response: {\n ResultData: [\n {\n [key: string]: Array<D>;\n },\n ];\n };\n};\n\nexport class ExtractorService implements IntervalHandler {\n readonly #sdk: ConnectorSDKInterface<ConnectorConfig>;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n readonly #tableIdentifier: string;\n\n readonly #table: Required<MkgTableInterface>;\n\n readonly #fieldsList: string;\n\n constructor(\n sdk: ConnectorSDKInterface<ConnectorConfig>,\n httpClient: HttpClientSDKInterface,\n tableIdentifier: string,\n table: Required<MkgTableInterface>,\n ) {\n this.#sdk = sdk;\n this.#httpClient = httpClient;\n this.#tableIdentifier = tableIdentifier;\n this.#table = table;\n this.#fieldsList = table.fields.join(',');\n }\n\n get name(): string {\n return `mkg-extractor-${this.#tableIdentifier}`;\n }\n\n async onRun(): Promise<void> {\n try {\n const now = new Date();\n const latestOffset = await this.#sdk.offsetStore.getOffset(\n `offset_${this.#tableIdentifier}`,\n );\n\n const data = await this.#fetchData(latestOffset);\n if (data.length > 0) {\n await this.#sdk.sender.documents(data, {\n keyField: this.#table.identifierField,\n collection: `${this.#sdk.config.datasourceIdentifier ?? DEFAULT_DATASOURCE}_${this.#tableIdentifier}`,\n });\n }\n\n this.#sdk.logger.debug(\n `[MKG] Processed ${data.length} records from ${this.#tableIdentifier}`,\n );\n\n this.#sdk.offsetStore.setOffset(\n {\n id: String(\n data[data.length - 1]?.[this.#table.identifierField] ??\n latestOffset.id,\n ),\n timestamp: now.getTime(),\n rawTimestamp: now.toISOString(),\n },\n `offset_${this.#tableIdentifier}`,\n );\n } catch (error) {\n this.#sdk.logger.error(\n `[MKG] Failed to retrieve and process data from OPC UA source service`,\n { error },\n );\n throw error;\n }\n }\n\n #fetchData = async (\n latestOffset: StoredOffset,\n ): Promise<\n Array<{\n [key: string]: string | number | boolean;\n }>\n > => {\n const parameters = new URLSearchParams();\n parameters.set('NumRows', String(this.#table.rows));\n parameters.set(\n 'Filter',\n `${this.#table.dateField}>=${latestOffset.rawTimestamp}`,\n );\n parameters.set('FieldList', `${this.#table.dateField},${this.#fieldsList}`);\n\n try {\n const response = await this.#httpClient.get<\n FetchDataResponse<{\n [key: string]: string | number | boolean;\n }>\n >(\n `/web/v3/MKG/Documents/${this.#tableIdentifier}?${parameters.toString()}`,\n );\n\n return (\n response.data?.response?.ResultData?.[0]?.[this.#tableIdentifier] ?? []\n );\n } catch (error: HttpError | unknown) {\n const logMessage = `[MKG] Failed to fetch data from table \"${this.#tableIdentifier}\": (${(error as HttpError)?.status}) ${(error as HttpError)?.error ?? (error as Error)?.message}`;\n this.#sdk.logger.error(logMessage);\n }\n\n return [];\n };\n}\n", "/* eslint-disable camelcase,@typescript-eslint/naming-convention */\nimport {\n ConnectorRuntimeSDK,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpRequestOptions,\n} from '@transai/connector-runtime-sdk';\nimport { ConnectorInterface } from '@xip-online-data/types';\n\nimport { ActionsHandler } from './actions-handler';\nimport { ExtractorService } from './extractor.service';\nimport { MKG_TABLES } from './tables/_all';\nimport {\n ConnectorConfig,\n SESSION_COOKIE_NAME,\n SESSION_EXPIRATION_SECONDS,\n} from './types';\n\nexport class ConnectorRunnerMkg extends ConnectorRuntimeSDK<ConnectorConfig> {\n readonly #actionsHandler: ActionsHandler;\n\n readonly #mkgHttpClient: HttpClientSDKInterface;\n\n readonly #sessionTokenHttpClient: HttpClientSDKInterface;\n\n #sessionToken?: {\n token: string;\n expiresAt: number;\n };\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n super(connector, connectorSDK);\n\n const { config } = this.connectorSDK;\n\n this.#sessionTokenHttpClient = this.connectorSDK.httpClient({\n baseUrl: `https://${config.server}:${config.port ?? 443}/${(config.path ?? '/mkg').replace(/^\\/+/, '')}`,\n });\n this.#mkgHttpClient = this.connectorSDK\n .httpClient({\n baseUrl: `https://${config.server}:${config.port ?? 443}/${(config.path ?? '/mkg').replace(/^\\/+/, '')}`,\n })\n .setRequestOptionsFormatter(this.#requestOptionsFormatter);\n\n this.#actionsHandler = new ActionsHandler(\n this.connectorSDK,\n this.#mkgHttpClient,\n );\n\n this.callbackFunction = this.#actionsHandler.callbackFunctionChain;\n }\n\n override init = async (): Promise<void> => {\n const { config } = this.connectorSDK;\n\n Object.entries(config.tables ?? {}).forEach(\n ([tableIdentifier, configOrTrue]) => {\n // eslint-disable-next-line security/detect-object-injection\n const table = MKG_TABLES[tableIdentifier];\n if (!table) {\n this.connectorSDK.logger.warn(\n `[MKG] Unknown table identifier \"${tableIdentifier}\", skipping configuration.`,\n );\n return;\n }\n\n if (!table.interval || table.interval <= 0) {\n this.connectorSDK.logger.verbose(\n `[MKG] Table \"${tableIdentifier}\" does not have a valid interval configured, skipping registration.`,\n );\n return;\n }\n\n this.connectorSDK.processing.registerInterval(\n table.interval,\n new ExtractorService(\n this.connectorSDK,\n this.#mkgHttpClient,\n tableIdentifier,\n table.cloneFromTableConfig(configOrTrue),\n ),\n { immediate: table.immediate },\n );\n },\n );\n };\n\n #requestOptionsFormatter = async <D = string | object>(\n options: HttpRequestOptions<D>,\n ): Promise<HttpRequestOptions<D>> => {\n const { config } = this.connectorSDK;\n\n return {\n ...options,\n headers: {\n ...(options?.headers ?? {}),\n Cookie: `${SESSION_COOKIE_NAME}=${await this.#getSessionCookie(config.username, config.password)}`,\n 'X-CustomerID': config.apiToken,\n },\n };\n };\n\n async #getSessionCookie(\n j_username: string,\n j_password: string,\n ): Promise<string> {\n const token = this.#sessionToken;\n if (token && token.expiresAt > Date.now()) {\n return token.token;\n }\n\n const response = await this.#sessionTokenHttpClient.post(\n '/static/auth/j_spring_security_check',\n {\n j_username,\n j_password,\n },\n {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n },\n );\n\n if (!response) {\n throw new Error('Failed to authenticate and retrieve session cookie');\n }\n\n const cookies = (response.headers?.['set-cookie'] ??\n response.headers?.['Set-Cookie'] ??\n []) as Array<string>;\n const sessionCookie = cookies.find((cookie: string) =>\n cookie.startsWith(`${SESSION_COOKIE_NAME}=`),\n );\n\n if (!sessionCookie) {\n throw new Error('Session cookie not found in authentication response');\n }\n\n const sessionToken = sessionCookie\n .split(';')[0]\n ?.substring(`${SESSION_COOKIE_NAME}=`.length);\n\n this.#sessionToken = {\n token: sessionToken,\n expiresAt: Date.now() + SESSION_EXPIRATION_SECONDS - 1000,\n };\n\n return sessionToken;\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,UAAYA,MAAa,eAkBlB,IAAeC,EAAf,KAGP,CAKE,YACEC,EACAC,EACA,CAPF,KAASC,GAAe,oBA2DxB,KAAO,KAA4B,IAAM,QAAQ,QAAQ,EAEzD,KAAO,MAA6B,IAAM,QAAQ,QAAQ,EAE1D,KAAO,KAA4B,IAAM,QAAQ,QAAQ,EAvDvD,KAAKC,GAAgBF,EAET,KACF,KAAG,UAAYG,GAAwB,CACzCA,EAAQ,MAAQ,KAAKF,IACvBD,EAAa,OAAO,QAClB,GAAW,KAAG,yCACdG,CACF,CAEJ,CAAC,EAEDH,EAAa,OAAO,KAClB,wDACF,EAGW,QAEXA,EAAa,OAAO,KAClB,0DACF,EAIFD,EAAU,SAAS,QAASK,GAA4B,CACtD,GAAIA,EAAO,OAAO,YAAiB,OACjC,OAGF,IAAMC,EAEF,CAAC,EAEL,OAAO,QAAQD,EAAO,OAAO,SAAY,EAAE,QAAQ,CAAC,CAACE,EAAKC,CAAK,IAAM,CACnE,GAAI,CAEFF,EAAWC,CAAG,EAAIN,EAAa,WAAW,QAAQO,CAAK,CACzD,OAASC,EAAgB,CACvBR,EAAa,OAAO,MAClB,4BAA4BM,CAAG,eAAeF,EAAO,UAAU,GAC/DI,CACF,CACF,CACF,CAAC,EAGDJ,EAAO,OAAO,gBAAqBC,CACrC,CAAC,CACH,CAzDSJ,GAEAC,GA+DT,IAAI,iBACFO,EAIA,CACA,KAAK,aAAa,SAAS,iBACzB,KAAKC,GAAwBD,CAAQ,CACvC,CACF,CAEA,IAAc,cAAyC,CACrD,OAAO,KAAKP,EACd,CAEAQ,GACEC,EAIyD,CACzD,MAAO,OAAOR,GAAwB,CACpC,IAAMC,EAAS,KAAKF,GAAc,SAAS,gBAAgBC,CAAO,EAClE,OAAKC,EAKEO,EAAiBR,EAASC,CAAM,EAJ9B,KAAKF,GAAc,SAAS,UAAU,WAC3C,kBACF,EAAEC,CAAO,CAGb,CACF,CACF,ECpHO,IAAMS,EAAqB,MAErBC,EAAmB,KAEnBC,EAAwB,SAExBC,EAAqB,iBAErBC,EAAmB,IAEnBC,EAAsB,aAKtBC,EAA6B,KAAU,ICN7C,IAAMC,EAAN,MAAMC,CAAsC,CAiBjD,YAAYC,EAA2BC,EAA4B,CAAC,EAAG,CACrE,KAAK,WAAaD,EAAO,WACzB,KAAK,OAASA,EAAO,OACrB,KAAK,UAAYA,EAAO,YAAc,GACtC,KAAK,SACHA,EAAO,WAAa,KAAK,OAAO,OAAS,EAAIE,EAAmB,GAClE,KAAK,gBAAkBF,EAAO,iBAAmBG,EACjD,KAAK,UAAYH,EAAO,WAAaI,EACrC,KAAK,KAAOJ,EAAO,MAAQK,EAC3B,KAAK,QAAUJ,EAAQ,IAAKK,GAAWA,EAAO,gBAAgB,IAAI,CAAC,CACrE,CAEA,qBAAqBC,EAA2C,CAC9D,OAAIA,IAAgB,IAAQA,EAAY,SAAW,OAC1C,KAGF,IAAIR,EAAS,CAClB,GAAG,KACH,OAAQ,KAAK,OAAO,OAAQS,GAC1BD,EAAY,QAAQ,SAASC,CAAK,CACpC,CACF,CAAC,CACH,CAEA,OAAOC,EAA2C,CAChD,OAAO,KAAK,QAAQ,KAAMC,GAAMA,EAAE,aAAeD,CAAU,CAC7D,CACF,ECtDO,IAAME,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,WACA,YACA,YACA,WACA,oBACF,CACF,CAAC,ECTM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,mBACA,sBACA,oBACA,mBACA,iBACA,sBACA,oBACA,qBACA,yBACA,oBACA,cACA,4BACA,mBACA,sBACA,sBACA,4BACA,uBACA,wBACA,oBACA,gBACA,kBACA,sBACA,4BACA,8BACA,2BACA,8BACA,mBACA,gBACA,oBACA,8BACA,cACA,kBACA,eACA,uBACA,kBACA,mBACA,mBACA,oBACA,qBACA,0BACA,qBACA,2BACA,sBACA,aACA,wBACA,0BACA,wBACA,mBACA,uBACA,wBACA,oBACA,mBACA,mBACA,oBACA,2BACA,+BACA,6BACA,mBACA,4BACA,eACA,+BACA,mBACA,eACA,uBACA,mBACA,wBACA,8BACA,iBACA,oBACA,yBACA,sBACA,4BACA,gBACA,uBACA,qBACA,0BACA,mBACA,mBACA,kBACA,yBACA,uBACA,0BACA,wBACA,wBACA,eACA,oBACA,4BACA,4BACA,0BACA,aACA,YACF,CACF,CAAC,EChGM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,qBACA,YACA,WACA,WACA,YACA,WACF,CACF,CAAC,ECVM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,GACV,OAAQ,CACN,sBACA,WACA,YACA,qBACA,wBACA,2BACA,cACA,WACA,2BACA,oBACA,YACA,oBACA,gBACA,iCACA,uBACA,mBACA,mBACA,gBACA,sBACA,eACA,wBACA,sBACA,gBACA,mBACA,gBACA,mBACA,yBACA,mBACA,oBACA,kBACA,oBACA,kBACA,uBACA,oBACA,kBACA,wBACA,kBACA,gCACA,kBACA,gBACA,4BACA,oBACA,uBACA,gBACA,mBACA,iBACA,uBACA,0BACA,gBACA,6BACA,kCACA,mBACF,CACF,CAAC,ECzDM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,GACV,OAAQ,CACN,kBACA,kBACA,mBACA,qBACA,oBACA,yBACA,6BACA,mBACA,kBACA,yBACA,cACA,qBACA,wBACA,mBACA,YACA,iBACA,yBACA,wBACA,kBACA,mBACA,aACA,aACA,WACA,kBACA,iBACA,gBACA,aACA,yBACA,mBACA,iBACA,aACA,oBACA,uBACA,oBACF,CACF,CAAC,ECvCM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,cACA,aACA,oBACA,sBACA,mBACA,mBACA,gBACA,WACA,sBACA,eACA,sBACA,mBACA,2BACA,oBACA,YACA,WACA,iBACA,eACA,mBACA,mBACA,YACA,iBACA,YACA,oBACA,gBACA,mBACA,cACA,gBACA,mBACA,WACA,mBACA,8BACA,gBACA,mBACA,4BACA,mBACA,mBACA,eACA,mBACA,mBACA,uBACA,oBACA,YACA,uBACA,qBACA,4BACA,qBACA,iBACA,mBACA,oBACA,eACA,iBACA,mBACA,mBACA,4BACF,CACF,CAAC,EC3DM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,YACA,aACA,iBACA,oBACA,aACA,YACA,YACA,YACF,CACF,CAAC,ECZM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,YACA,aACA,aACA,YACA,aACA,oBACA,WACF,CACF,CAAC,ECXM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,4BACA,qBACA,yBACA,yBACA,uBACA,0BACA,oBACA,oBACA,UACA,oBACA,gBACA,yBACA,8BACA,gBACA,0BACA,mBACA,gBACA,4BACA,uBACA,mBACA,oBACA,qBACA,yBACA,oBACA,gBACA,gBACA,sBACA,YACA,qBACA,iBACA,+BACA,sBACA,0BACA,uBACA,2BACA,gBACA,uBACA,wBACA,oBACA,cACA,kBACA,kBACA,qBACA,kBACA,cACA,sBACA,iBACA,YACA,oBACA,aACA,mBACA,sBACA,qBACA,kBACA,mBACA,sBACA,oBACA,yBACA,eACA,mBACA,sBACA,gBACA,uBACA,sBACA,mBACA,wBACA,gCACA,uBACA,yBACA,8BACA,gCACA,2BACA,gCACA,qBACA,iBACA,yBACA,oBACA,gBACA,2BACA,0BACA,0BACA,gCACA,yBACA,cACA,yBACA,sBACA,eACA,kBACA,kBACA,oBACF,CACF,CAAC,EChFM,IAAMC,EAAN,MAAMC,CAAwC,CAWnDC,GAEA,YAAYC,EAA4B,CACtC,KAAK,WAAaA,EAAO,WACzB,KAAK,OAASA,EAAO,OACrB,KAAK,OAASA,EAAO,OACrB,KAAK,eAAiBA,EAAO,gBAAkB,CAAC,EAChD,KAAK,KAAOA,EAAO,OAAS,IAAc,KAAKD,GAAO,WACxD,CAEA,gBAAgBE,EAAqC,CACnD,IAAMC,EAAS,IAAIJ,EAAU,IAAI,EACjC,OAAAI,EAAOH,GAASE,EAETC,CACT,CAEA,SAASC,EAA6D,CACpE,IAAMC,EAAY,IAAI,IAEtB,YAAK,OAAO,QAASC,GAAU,CAE7B,IAAMC,EAAiBH,EAAUE,CAAK,EACtC,GAAI,CAACC,EACH,MAAM,IAAI,MACR,2BAA2BD,CAAK,iBAAiB,KAAK,UAAU,GAClE,EAGFD,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gCACA,8BACA,YACA,yBACA,sBACA,YACA,WACA,WACA,WACA,YACA,WACA,iBACA,aACA,QACA,iBACA,aACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,gBACA,qBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACF,CACF,CAAC,ECjEM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,wBACA,WACA,YACA,gBACA,eACA,gBACA,WACA,wBACA,gBACA,cACA,mBACA,mBACA,mBACA,cACA,iBACF,CACF,CAAC,ECpBM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,WACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,WACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,gBACF,CACF,CAAC,EC/FM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CAAC,WAAY,YAAa,UAAU,CAC9C,CAAC,ECHM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,YACA,aACA,kBACA,YACA,kBACA,aACA,aACA,YACA,eACA,mBACA,cACA,cACA,WACA,aACA,aACA,aACF,CACF,CAAC,ECrBM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,YACA,gBACA,YACA,wBACA,eACA,aACA,qBACA,eACA,cACA,sBACA,aACA,mBACA,uBACA,kBACA,eACA,eACA,mBACA,WACA,mBACA,mBACA,qBACA,kBACA,eACA,eACA,uBACA,eACA,gBACA,uBACA,gBACA,uBACA,eACA,mBACA,cACA,mBACA,cACA,qBACA,eACA,gBACA,oBACA,2BACA,yBACA,YACA,oBACA,oBACA,sBACA,gBACA,wBACA,eACA,wBACA,WACA,aACA,mBACA,uBACA,qBACA,kBACA,WACA,iBACA,mBACA,sBACA,qBACA,eACA,mBACA,gBACA,eACA,4BACA,cACA,eACA,kBACA,eACA,aACA,mBACA,cACF,CACF,CAAC,EC7EM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,WACA,qBACA,cACA,4BACA,6BACA,4BACA,8BACA,YACA,qBACA,4BACA,+BACA,8BACA,oBACA,wBACA,cACA,gBACA,gBACA,aACA,8BACA,4BACA,aACA,aACA,WACA,+BACA,uBACA,wBACA,4BACA,cACA,gBACA,4BACA,iBACA,eACA,8BACA,4BACA,4BACA,0BACA,WACA,0BACA,kBACA,qBACA,8BACA,aACA,cACA,8BACA,0BACA,iBACA,qBACA,mBACA,4BACA,qBACA,kBACA,kBACF,CACF,CAAC,ECzDM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,wBACA,wBACA,oBACA,uBACA,uBACA,oBACA,wBACA,qBACA,WACA,uBACA,qBACA,oBACA,wBACA,oBACA,qBACA,WACA,qBACA,uBACA,uBACA,mBACF,CACF,CAAC,ECAD,IAAMC,GAAS,CACbC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,E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",
|
|
4
|
+
"sourcesContent": ["import * as process from 'node:process';\n\nimport {\n KafkaCallbackResponse,\n BaseConnectorConfig,\n ActionInterface,\n ConnectorInterface,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { ConnectorRuntimeInterface } from './connector-runtime.interface';\nimport { CompileDelegate, ConnectorSDKInterface } from './sdk';\n\nexport interface IpcMessage {\n cmd: string;\n message: string;\n}\n\nexport abstract class ConnectorRuntimeSDK<\n T extends BaseConnectorConfig = BaseConnectorConfig,\n> implements ConnectorRuntimeInterface {\n readonly #IPC_CHANNEL = 'connector-runtime';\n\n readonly #connectorSDK: ConnectorSDKInterface<T>;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK as ConnectorSDKInterface<T>;\n\n if (process.on) {\n process.on('message', (message: IpcMessage) => {\n if (message.cmd === this.#IPC_CHANNEL) {\n connectorSDK.logger.verbose(\n `${process.pid} Received message from parent process:`,\n message,\n );\n }\n });\n } else {\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.on is undefined.',\n );\n }\n\n if (!process.send) {\n // Check if process.send is available\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.send is undefined.',\n );\n }\n\n // eslint-disable-next-line no-restricted-syntax\n connector.actions?.forEach((action: ActionInterface) => {\n if (action.config['templates'] === undefined) {\n return;\n }\n\n const containers: {\n [key: string]: CompileDelegate;\n } = {};\n\n Object.entries(action.config['templates']).forEach(([key, value]) => {\n try {\n // eslint-disable-next-line security/detect-object-injection\n containers[key] = connectorSDK.templating.compile(value);\n } catch (error: unknown) {\n connectorSDK.logger.error(\n `Error compiling template ${key} for action ${action.identifier}`,\n error,\n );\n }\n });\n\n // eslint-disable-next-line no-param-reassign\n action.config['parsedTemplates'] = containers;\n });\n }\n\n public init: () => Promise<void> = () => Promise.resolve();\n\n public start: () => Promise<void> = () => Promise.resolve();\n\n public stop: () => Promise<void> = () => Promise.resolve();\n\n set callbackFunction(\n callback: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ) {\n this.connectorSDK.receiver.registerCallback(\n this.#enrichWithActionConfig(callback),\n );\n }\n\n protected get connectorSDK(): ConnectorSDKInterface<T> {\n return this.#connectorSDK;\n }\n\n #enrichWithActionConfig(\n callbackFunction: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ): (message: XodJobType) => Promise<KafkaCallbackResponse> {\n return async (message: XodJobType) => {\n const action = await this.#connectorSDK.receiver.getActionConfig(message);\n if (!action) {\n return this.#connectorSDK.receiver.responses.badRequest(\n 'Action not found',\n )(message);\n }\n return callbackFunction(message, action);\n };\n }\n}\n", "import { BaseConnectorConfig } from '@xip-online-data/types';\n\nexport const DEFAULT_DATASOURCE = 'mkg';\n\nexport const DEFAULT_INTERVAL = 3_600;\n\nexport const DEFAULT_ROW_KEY_FIELD = 'RowKey';\n\nexport const DEFAULT_DATE_FIELD = 'sys_dat_wijzig';\n\nexport const DEFAULT_NUM_ROWS = 250;\n\nexport const SESSION_COOKIE_NAME = 'JSESSIONID';\n\n/**\n * Session expires in 30 minutes\n */\nexport const SESSION_EXPIRATION_SECONDS = 30 * 60 * 1000;\n\nexport interface TableConfig {\n fields?: Array<string>;\n}\n\nexport interface ConnectorConfig extends BaseConnectorConfig {\n server: 'saas*.mkg.eu' | string;\n port?: 443 | 8443 | number;\n path?: '/mkg' | '/mkgoefenclient' | string;\n\n username: string;\n password: string;\n apiToken: string;\n\n tables?: { [key: string]: TableConfig | true };\n}\n\nexport interface MkgTableInterface {\n identifier: string;\n fields: Array<string>;\n\n immediate?: boolean;\n interval?: number;\n identifierField?: string;\n dateField?: string;\n rows?: number;\n}\n", "import {\n DEFAULT_DATE_FIELD,\n DEFAULT_INTERVAL,\n DEFAULT_NUM_ROWS,\n DEFAULT_ROW_KEY_FIELD,\n MkgTableInterface,\n TableConfig,\n} from '../../types';\n\nimport { MkgAction } from './action';\n\nexport class MkgTable implements MkgTableInterface {\n readonly identifier: string;\n\n readonly fields: Array<string>;\n\n readonly immediate: boolean;\n\n readonly interval: number;\n\n readonly identifierField: string;\n\n readonly dateField: string;\n\n readonly rows: number;\n\n readonly actions: Array<MkgAction>;\n\n constructor(params: MkgTableInterface, actions: Array<MkgAction> = []) {\n this.identifier = params.identifier;\n this.fields = params.fields;\n this.immediate = params.immediate !== false;\n this.interval =\n params.interval ?? (this.fields.length > 0 ? DEFAULT_INTERVAL : 0);\n this.identifierField = params.identifierField ?? DEFAULT_ROW_KEY_FIELD;\n this.dateField = params.dateField ?? DEFAULT_DATE_FIELD;\n this.rows = params.rows ?? DEFAULT_NUM_ROWS;\n this.actions = actions.map((action) => action.withParentTable(this));\n }\n\n cloneFromTableConfig(tableConfig: TableConfig | true): MkgTable {\n if (tableConfig === true || tableConfig.fields === undefined) {\n return this;\n }\n\n return new MkgTable({\n ...this,\n fields: this.fields.filter((field) =>\n tableConfig.fields?.includes(field),\n ),\n });\n }\n\n action(identifier: string): MkgAction | undefined {\n return this.actions.find((a) => a.identifier === identifier);\n }\n}\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_ARTG = new MkgTable({\n identifier: 'artg',\n fields: [\n 'artg_num',\n 'artg_rela',\n 'artg_cred',\n 'artg_oms',\n 'artg_inkoopofferte',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_ARTI = new MkgTable({\n identifier: 'arti',\n interval: 300,\n fields: [\n 'arti_parameter_2',\n 'arti_prijs_vast_man',\n 'arti_seriegrootte',\n 'arti_vrij_memo_1',\n 'arti_bestellen',\n 'arti_btw_aanpasbaar',\n 'arti_vrij_datum_1',\n 'arti_eenh_uitgifte',\n 'arti_eenh_prijs_inkoop',\n 'arti_partij_per_1',\n 'arti_partij',\n 'arti_voorraad_waarde_mach',\n 'arti_parameter_4',\n 'arti_eenh_ontvangst',\n 'arti_prijs_vast_mat',\n 'arti_verh_tijd_aantal_grp',\n 'arti_voorraad_aantal',\n 'arti_bestel_freq_eenh',\n 'arti_vrij_datum_4',\n 'arti_eenh_vrk',\n 'arti_trans_eenh',\n 'arti_kosten_artikel',\n 'arti_verh_tijd_aantal_vrd',\n 'arti_verh_volume_aantal_grp',\n 'arti_memo_verkoop_intern',\n 'arti_verh_volume_aantal_vrd',\n 'arti_vrij_memo_2',\n 'arti_zoeknaam',\n 'arti_blok_verkoop',\n 'arti_verh_aantal_aantal_vrd',\n 'arti_actief',\n 'arti_bestelcode',\n 'arti_locatie',\n 'arti_prijs_netto_mat',\n 'arti_prijs_vast',\n 'arti_vrij_veld_1',\n 'arti_parameter_1',\n 'arti_vrij_datum_2',\n 'arti_gewicht_per_m',\n 'arti_memo_inkoop_extern',\n 'arti_inkoopofferte',\n 'arti_prijs_gemiddeld_mat',\n 'arti_dienst_verkoop',\n 'arti_oms_2',\n 'arti_levertijd_inkoop',\n 'arti_verh_tijd_eenh_grp',\n 'arti_prijs_netto_uitb',\n 'arti_oppervlakte',\n 'arti_voorraadsysteem',\n 'arti_kostprijssysteem',\n 'arti_niet_autores',\n 'arti_wvp_obv_gvp',\n 'arti_vrij_memo_5',\n 'arti_prijs_inkoop',\n 'arti_levertijd_productie',\n 'arti_verh_gewicht_aantal_grp',\n 'arti_verh_gewicht_eenh_grp',\n 'arti_vrij_veld_2',\n 'arti_prijs_gemiddeld_mach',\n 'arti_lijst_3',\n 'arti_verh_gewicht_aantal_vrd',\n 'arti_parameter_3',\n 'arti_lijst_1',\n 'arti_prijs_vast_mach',\n 'arti_vrij_veld_5',\n 'arti_ict_fact_verkoop',\n 'arti_verh_lengte_aantal_vrd',\n 'arti_backflush',\n 'arti_vrij_datum_3',\n 'arti_vrd_aanvullen_tot',\n 'arti_inkoop_artikel',\n 'arti_verh_rest_aantal_grp',\n 'arti_eenh_vrd',\n 'arti_prijs_vast_uitb',\n 'arti_trans_gewicht',\n 'arti_memo_inkoop_intern',\n 'arti_vrij_memo_3',\n 'arti_prijs_netto',\n 'arti_mat_lengte',\n 'arti_bestelhoeveelheid',\n 'arti_eenh_bestelling',\n 'arti_verh_oppv_eenh_grp',\n 'arti_voorraad_artikel',\n 'arti_backflush_uitval',\n 'arti_lijst_9',\n 'arti_vrij_datum_5',\n 'arti_verh_oppv_aantal_grp',\n 'arti_prijs_gemiddeld_uitb',\n 'arti_prijs_verkoop_eenm',\n 'arti_oms_3',\n 'arti_oms_1',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_BWRG = new MkgTable({\n identifier: 'bwrg',\n fields: [\n 'bwrg_inkoopofferte',\n 'bwrg_memo',\n 'bwrg_oms',\n 'bwrg_num',\n 'bwrg_cred',\n 'bwrg_rela',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_BWRK = new MkgTable({\n identifier: 'bwrk',\n interval: 60,\n fields: [\n 'bwrk_bwrf_instellen',\n 'bwrk_oms',\n 'bwrk_rela',\n 'bwrk_inkoopofferte',\n 'bwrk_reden_vroeg_laat',\n 'bwrk_tarief_netto_instel',\n 'bwrk_actief',\n 'bwrk_num',\n 'bwrk_grbk_direct_verantw',\n 'bwrk_actief_pauze',\n 'bwrk_memo',\n 'bwrk_aanloop_type',\n 'bwrk_medw_ovz',\n 'bwrk_grbk_indirect_kosten_mach',\n 'bwrk_niet_op_uren_pc',\n 'bwrk_memo_instel',\n 'bwrk_afloop_tijd',\n 'bwrk_magl_uit',\n 'bwrk_wachttijd_voor',\n 'bwrk_magl_in',\n 'bwrk_wegingsfactor_nc',\n 'bwrk_rsrc_instellen',\n 'bwrk_vspt_bew',\n 'bwrk_afloop_perc',\n 'bwrk_rsrc_bew',\n 'bwrk_afloop_type',\n 'bwrk_tarief_netto_mach',\n 'bwrk_memo_extern',\n 'bwrk_specificeren',\n 'bwrk_afbeelding',\n 'bwrk_wachttijd_na',\n 'bwrk_uitb_prijs',\n 'bwrk_man_per_machine',\n 'bwrk_aanloop_perc',\n 'bwrk_insteltijd',\n 'bwrk_tarief_calc_mach',\n 'bwrk_uitb_dagen',\n 'bwrk_grbk_direct_verantw_mach',\n 'bwrk_start_type',\n 'bwrk_volgorde',\n 'bwrk_grbk_indirect_kosten',\n 'bwrk_uitbesteding',\n 'bwrk_uitb_prijs_eenh',\n 'bwrk_eenmalig',\n 'bwrk_vspt_instel',\n 'bwrk_vspt_uitb',\n 'bwrk_sf_start_gereed',\n 'bwrk_tarief_calc_instel',\n 'bwrk_onbemand',\n 'bwrk_grbk_indirect_verantw',\n 'bwrk_grbk_indirect_verantw_mach',\n 'bwrk_aanloop_tijd',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_CLCH = new MkgTable({\n identifier: 'clch',\n interval: 60,\n fields: [\n 'clch_volgnummer',\n 'clch_op_dek_uit',\n 'clch_op_calc_mat',\n 'clch_vofh_verk_num',\n 'clch_op_calc_mach',\n 'clch_vofh_dat_antwoord',\n 'clch_kostprijs_methode_bew',\n 'clch_op_calc_man',\n 'clch_vofr_oms_1',\n 'clch_vofh_dat_levering',\n 'clch_lengte',\n 'clch_vofh_ref_onze',\n 'clch_calc_methode_mat',\n 'clch_op_calc_uit',\n 'clch_memo',\n 'clch_vofh_proj',\n 'clch_vofr_order_aantal',\n 'clch_calc_methode_bew',\n 'clch_op_dek_man',\n 'clch_op_dek_mach',\n 'clch_oms_1',\n 'clch_files',\n 'clch_num',\n 'clch_op_dek_mat',\n 'clch_vofh_rela',\n 'clch_vofh_num',\n 'clch_oms_3',\n 'clch_vofh_dat_aanvraag',\n 'clch_vofh_ref_uw',\n 'clch_vofr_arti',\n 'clch_oms_2',\n 'clch_boekjaar_afh',\n 'clch_vofr_eenh_order',\n 'clch_fase_planning',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_DEBI = new MkgTable({\n identifier: 'debi',\n fields: [\n 'debi_actief',\n 'debi_email',\n 'debi_vrij_datum_4',\n 'debi_pkbh_verz_type',\n 'debi_vrij_memo_3',\n 'debi_vrij_memo_4',\n 'debi_zoeknaam',\n 'debi_bic',\n 'debi_kredietlimiet2',\n 'debi_deellev',\n 'debi_fcth_verz_type',\n 'debi_plaats_bank',\n 'debi_dat_btw_verificatie',\n 'debi_vrij_datum_1',\n 'debi_naam',\n 'debi_btw',\n 'debi_peppol_id',\n 'debi_kvk_num',\n 'debi_vrij_memo_2',\n 'debi_fact_naam_2',\n 'debi_docs',\n 'debi_bet_wijze',\n 'debi_blok',\n 'debi_vrij_datum_5',\n 'debi_bankcode',\n 'debi_memo_extern',\n 'debi_naam_2',\n 'debi_rekening',\n 'debi_aantal_fact',\n 'debi_num',\n 'debi_vrij_veld_2',\n 'debi_status_btw_verificatie',\n 'debi_deelfact',\n 'debi_comm_opslag',\n 'debi_naam_btw_verificatie',\n 'debi_vrij_veld_3',\n 'debi_vrij_veld_4',\n 'debi_incasso',\n 'debi_vrij_memo_1',\n 'debi_vrij_memo_5',\n 'debi_max_regels_pakb',\n 'debi_vrij_datum_3',\n 'debi_iban',\n 'debi_max_regels_fact',\n 'debi_toon_opslagen',\n 'debi_memo_kredietbewaking',\n 'debi_kredietlimiet',\n 'debi_debi_fact',\n 'debi_vrij_veld_5',\n 'debi_vrij_datum_2',\n 'debi_btw_num',\n 'debi_fact_naam',\n 'debi_vrij_veld_1',\n 'debi_memo_intern',\n 'debi_adres_btw_verificatie',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MAGL = new MkgTable({\n identifier: 'magl',\n fields: [\n 'magl_memo',\n 'magl_oms_3',\n 'magl_shopfloor',\n 'magl_niet_autores',\n 'magl_oms_2',\n 'magl_code',\n 'magl_blok',\n 'magl_oms_1',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MAGZ = new MkgTable({\n identifier: 'magz',\n fields: [\n 'magz_memo',\n 'magz_oms_1',\n 'magz_oms_2',\n 'magz_code',\n 'magz_oms_3',\n 'magz_niet_autores',\n 'magz_blok',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_MEDW = new MkgTable({\n identifier: 'medw',\n fields: [\n 'medw_pensioenpremie_werkn',\n 'medw_spaarloon_rek',\n 'medw_betaling_per_bank',\n 'medw_premiesparen_naam',\n 'medw_ziekengeld_aanm',\n 'medw_betaling_per_rek_2',\n 'medw_auto_vd_zaak',\n 'medw_vrij_datum_5',\n 'medw_or',\n 'medw_premiesparen',\n 'medw_telefoon',\n 'medw_aanwezigheids_reg',\n 'medw_betaling_per_bank_naam',\n 'medw_postcode',\n 'medw_premiesparen_batch',\n 'medw_verschuiven',\n 'medw_onkosten',\n 'medw_pensioenpremie_werkg',\n 'medw_arbodienst_aanm',\n 'medw_lid_persver',\n 'medw_laatste_bwrk',\n 'medw_memo_contract',\n 'medw_premiesparen_iban',\n 'medw_vrij_datum_3',\n 'medw_nummer_2',\n 'medw_voornaam',\n 'medw_ziekengeld_afm',\n 'medw_mdrc',\n 'medw_spaarloon_bic',\n 'medw_spaarloon',\n 'medw_betaling_per_bank_oms_3',\n 'medw_spaarloon_iban',\n 'medw_prod_gereed_melden',\n 'medw_spaarloon_batch',\n 'medw_betaling_per_iban_2',\n 'medw_roepnaam',\n 'medw_vutpremie_werkg',\n 'medw_betaling_per_rek',\n 'medw_uren_per_dag',\n 'medw_plaats',\n 'medw_telefoon_2',\n 'medw_or_functie',\n 'medw_pensioenfonds',\n 'medw_schoenmaat',\n 'medw_naam_2',\n 'medw_spaarloon_oms1',\n 'medw_vutpremie',\n 'medw_ehbo',\n 'medw_vrij_datum_4',\n 'medw_email',\n 'medw_vrij_memo_1',\n 'medw_soort_contract',\n 'medw_vakantie_uren',\n 'medw_reiskosten',\n 'medw_vrij_veld_4',\n 'medw_waohiaat_werkg',\n 'medw_vrij_datum_2',\n 'medw_premiesparen_oms1',\n 'medw_salaris',\n 'medw_vrij_veld_3',\n 'medw_spaarloon_oms3',\n 'medw_planning',\n 'medw_raadplegen_uren',\n 'medw_spaarloon_naam',\n 'medw_vrij_veld_5',\n 'medw_ziekenfonds_aanm',\n 'medw_betaling_per_bank_2_naam',\n 'medw_partime_salaris',\n 'medw_premiesparen_oms2',\n 'medw_bedrijfsvereniging_afm',\n 'medw_betaling_per_bank_2_oms1',\n 'medw_betaling_per_bank_2',\n 'medw_betaling_per_bank_plaats',\n 'medw_tussenvoegsel',\n 'medw_instellen',\n 'medw_pensioenfonds_afm',\n 'medw_functietitel',\n 'medw_straat_2',\n 'medw_premiesparen_plaats',\n 'medw_betaling_per_bic_2',\n 'medw_betaling_per_kas_2',\n 'medw_betaling_per_bank_2_oms3',\n 'medw_premiesparen_oms3',\n 'medw_straat',\n 'medw_premiesparen_oms4',\n 'medw_dagen_per_week',\n 'medw_telefax',\n 'medw_afbeelding',\n 'medw_op_uren_pc',\n 'medw_direct_gereed',\n ],\n});\n", "import { MkgTableInterface } from '../../types';\n\ntype MkgActionMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';\n\nexport interface MkgActionInterface {\n identifier: string;\n\n method: MkgActionMethod;\n\n fields: Array<string>;\n\n optionalFields?: Array<string>;\n\n path?: (inputData: Record<string, unknown>) => string;\n}\n\nexport class MkgAction implements MkgActionInterface {\n readonly identifier: string;\n\n readonly method: MkgActionMethod;\n\n readonly fields: Array<string>;\n\n readonly optionalFields: Array<string>;\n\n readonly path: (inputData: Record<string, unknown>) => string;\n\n #table!: MkgTableInterface;\n\n constructor(params: MkgActionInterface) {\n this.identifier = params.identifier;\n this.method = params.method;\n this.fields = params.fields;\n this.optionalFields = params.optionalFields ?? [];\n this.path = params.path ?? ((): string => this.#table.identifier);\n }\n\n withParentTable(table: MkgTableInterface): MkgAction {\n const action = new MkgAction(this);\n action.#table = table;\n\n return action;\n }\n\n fieldSet(inputData: Record<string, unknown>): Record<string, unknown> {\n const fieldData = new Map<string, unknown>();\n\n this.fields.forEach((field) => {\n // eslint-disable-next-line security/detect-object-injection\n const inputDataValue = inputData[field];\n if (!inputDataValue) {\n throw new Error(\n `Missing required field '${field}' for action '${this.identifier}'`,\n );\n }\n\n fieldData.set(field, inputDataValue);\n });\n\n this.optionalFields.forEach((field) => {\n // eslint-disable-next-line security/detect-object-injection\n const inputDataValue = inputData[field];\n if (inputDataValue) {\n fieldData.set(field, inputDataValue);\n }\n });\n\n return Object.fromEntries(fieldData.entries());\n }\n}\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_MOVE = new MkgAction({\n identifier: 'move',\n method: 'PUT',\n fields: [\n 'admi_num',\n 'part_num',\n 'magl_code',\n 't_doel_magl',\n 't_doel_aantal',\n 'RowKey',\n ],\n path: (): string => 'parl/0/Service/s_partij_verplaatsen',\n});\n\nexport const MKG_TABLE_PARL = new MkgTable(\n {\n identifier: 'parl',\n fields: [],\n },\n [ACTION_MOVE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create',\n method: 'POST',\n fields: [\n 'prdh_num',\n 'prdr_num',\n 'bwrk_num',\n 'plnb_dat_start',\n 'plnb_tijd_start',\n ],\n});\n\nexport const MKG_TABLE_PLNB = new MkgTable(\n {\n identifier: 'plnb',\n interval: 60,\n fields: [\n 'plnb_num',\n 'prdh_num',\n 'bwrk_num',\n 'rsrc_num',\n 'medw_num',\n 'plnb_dat_start',\n 'plnb_tijd_start',\n 'plnb_wk_start',\n 'plnb_dat_eind',\n 'plnb_tijd_eind',\n 'plnb_wk_eind',\n 'plnb_dat_gestart',\n 'plnb_tijd_gestart',\n 'plnb_wk_gestart',\n 'plnb_gestart',\n 'plnb_gereed',\n 'plnb_aantal',\n 'plnb_aantal_grd',\n 'plnb_aantal_per_uur',\n 'plnb_bijloop_aantal',\n 'plnb_uitb_aantal',\n 'plnb_volgorde',\n ],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh_prdr',\n method: 'POST',\n fields: ['bwrk_num', 'prbv_tijd_per_stuk'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const prdrNum = inputData['prdr_num'];\n if (!prdrNum) {\n throw new Error(`Missing required field 'prdr_num' for action 'create'`);\n }\n\n return `prdr/1+${prdhNum}+${prdrNum}/prdr_prbv`;\n },\n});\n\nexport const MKG_TABLE_PRBV = new MkgTable(\n {\n identifier: 'prbv',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create',\n method: 'POST',\n fields: ['prdh_oms_1'],\n});\n\nexport const MKG_TABLE_PRDH = new MkgTable(\n {\n identifier: 'prdh',\n interval: 60,\n fields: [\n 'prdh_op_dek_mat',\n 'prdh_op_dek_uit',\n 'prdh_oms_1',\n 'prdh_wk_order',\n 'prdh_memo_extern',\n 'prdh_wk_gepland',\n 'prdh_files',\n 'prdh_op_vcnc_uit',\n 'prdh_oms_2',\n 'prdh_memo_intern',\n 'prdh_dat_order',\n 'prdh_op_vcnc_man',\n 'prdh_op_vcnc_mat',\n 'prdh_op_vcnc_mach',\n 'prdh_op_dek_man',\n 'prdh_fase_planning',\n 'prdh_wk_planning',\n 'prdh_kostprijs_methode_bew',\n 'prdh_calc_methode_mat',\n 'prdh_image',\n 'prdh_dat_gepland',\n 'prdh_calc_methode_bew',\n 'prdh_historisch',\n 'prdh_oms_3',\n 'prdh_op_dek_mach',\n 'prdh_dat_planning',\n 'prdh_forecast',\n 'prdh_num',\n ],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh',\n method: 'POST',\n fields: ['prdr_oms_1', 'prdr_tot_aantal', 'prdr_id'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n return `prdh/${prdhNum}/prdh_eindproduct/`;\n },\n});\n\nexport const MKG_TABLE_PRDR = new MkgTable(\n {\n identifier: 'prdr',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgAction } from './base/action';\nimport { MkgTable } from './base/table';\n\nconst ACTION_CREATE = new MkgAction({\n identifier: 'create.prdh_prdr',\n method: 'POST',\n fields: ['prmv_oms_1', 'cred_num'],\n path: (inputData: Record<string, unknown>): string => {\n // eslint-disable-next-line security/detect-object-injection\n const prdhNum = inputData['prdh_num'];\n if (!prdhNum) {\n throw new Error(`Missing required field 'prdh_num' for action 'create'`);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const prdrNum = inputData['prdr_num'];\n if (!prdrNum) {\n throw new Error(`Missing required field 'prdr_num' for action 'create'`);\n }\n\n return `prdr/1+${prdhNum}+${prdrNum}/prdr_prmv`;\n },\n});\n\nexport const MKG_TABLE_PRMV = new MkgTable(\n {\n identifier: 'prmv',\n fields: [],\n },\n [ACTION_CREATE],\n);\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RELA = new MkgTable({\n identifier: 'rela',\n fields: [\n 'rela_vrij_datum_4',\n 'rela_naam',\n 'rela_vrij_datum_3',\n 'rela_vrij_datum_2',\n 'rela_postcode',\n 'rela_www',\n 'rela_vrij_datum_5',\n 'rela_vrij_datum_1',\n 'rela_vrij_veld_1',\n 'rela_email',\n 'rela_telefoon',\n 'rela_plaats',\n 'rela_moeder',\n 'rela_vrij_veld_3',\n 'rela_vrij_veld_5',\n 'rela_vrij_veld_2',\n 'rela_vrij_veld_4',\n 'rela_vrij_memo_1',\n 'rela_num',\n 'rela_resr',\n 'rela_memo',\n 'rela_vrij_memo_5',\n 'rela_naam_2',\n 'rela_zoeknaam',\n 'rela_vrij_memo_2',\n 'rela_plaats_2',\n 'rela_vrij_memo_3',\n 'rela_vrij_memo_4',\n 'rela_afbeelding',\n 'rela_files',\n 'rela_fax',\n 'rela_info',\n 'rela_actief',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RGRS = new MkgTable({\n identifier: 'rgrs',\n interval: 60,\n fields: [\n 'abnk_bizcuit_id',\n 'aant_vraag_oms',\n 'abnk_oms',\n 'adon_code',\n 'adon_oms',\n 'adop_code',\n 'arti_code',\n 'bwrg_oms',\n 'bwrk_oms',\n 'cert_code',\n 'gebr_code',\n 'kbdp_oms',\n 'kltn_code',\n 'kstg_oms',\n 'land_code',\n 'magw_code',\n 'medw_betaling_per_bank_2_naam',\n 'medw_betaling_per_bank_naam',\n 'medw_naam',\n 'medw_premiesparen_naam',\n 'medw_spaarloon_naam',\n 'rela_naam',\n 'reld_oms',\n 'rsrc_oms',\n 'rsrg_oms',\n 'spco_code',\n 'strd_oms',\n 't_bwrk_num_oms',\n 't_bwrk_oms',\n 't_oms',\n 't_omschrijving',\n 'aanr_datum',\n 'aanr_num',\n 'aans_num',\n 'aant_num',\n 'abnk_num',\n 'adma_num',\n 'admi_num',\n 'afdl_num',\n 'agtn_num',\n 'apia_num',\n 'bank_num',\n 'bwrf_num',\n 'bwrg_num',\n 'bwrk_num',\n 'clcb_num',\n 'clch_num',\n 'clch_vofh_num',\n 'clch_vofh_verk_num',\n 'clcm_num',\n 'clcr_num',\n 'clct_num',\n 'cred_num',\n 'debi_num',\n 'dgbk_num',\n 'fcth_num',\n 'geac_num',\n 'ifch_num',\n 'inkg_num',\n 'iofh_num',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRC = new MkgTable({\n identifier: 'rsrc',\n interval: 300,\n fields: [\n 'rsrc_fcst_eindige_cap',\n 'rsrc_oms',\n 'rsrc_memo',\n 'rsrc_volgorde',\n 'rsrc_magl_in',\n 'rsrc_onbemand',\n 'rsrc_num',\n 'rsrc_calc_eindige_cap',\n 'rsrc_magl_uit',\n 'rsrc_aantal',\n 'rsrc_calc_bucket',\n 'rsrc_eindige_cap',\n 'rsrc_fcst_bucket',\n 'rsrc_bucket',\n 'rsrc_afbeelding',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRD = new MkgTable({\n identifier: 'rsrd',\n interval: 300,\n fields: [\n 'rsrd_zo_p2_van',\n 'rsrd_za_p2_tot',\n 'rsrd_do_p1_tot',\n 'rsrd_di_p5_tot',\n 'rsrd_zo_p5_tot',\n 'rsrd_do_p3_tot',\n 'rsrd_ma_p4_tot',\n 'rsrd_wo_p3_van',\n 'rsrd_zo_p1_van',\n 'rsrd_fd_p1_van',\n 'rsrd_do_p5_van',\n 'rsrd_wo_p2_tot',\n 'rsrd_za_van',\n 'rsrd_vr_p3_van',\n 'rsrd_za_p4_van',\n 'rsrd_ma_p5_tot',\n 'rsrd_fd_p3_van',\n 'rsrd_wo_tot',\n 'rsrd_vr_tot',\n 'rsrd_ma_p1_tot',\n 'rsrd_wo_p1_tot',\n 'rsrd_zo_p4_tot',\n 'rsrd_di_p4_tot',\n 'rsrd_ma_p3_van',\n 'rsrd_ma_p5_van',\n 'rsrd_di_tot',\n 'rsrd_fd_p4_van',\n 'rsrd_vr_van',\n 'rsrd_za_p3_tot',\n 'rsrd_za_p1_van',\n 'rsrd_zo_p5_van',\n 'rsrd_fd_p2_tot',\n 'rsrd_vr_p5_van',\n 'rsrd_di_p4_van',\n 'rsrd_za_p5_tot',\n 'rsrd_di_p3_van',\n 'rsrd_ma_p2_tot',\n 'rsrd_di_van',\n 'rsrd_do_p1_van',\n 'rsrd_zo_p3_tot',\n 'rsrd_vr_p5_tot',\n 'rsrd_zo_p1_tot',\n 'rsrd_ma_van',\n 'rsrd_do_tot',\n 'rsrd_wo_p2_van',\n 'rsrd_vr_p3_tot',\n 'rsrd_di_p1_van',\n 'rsrd_za_p5_van',\n 'rsrd_fd_p5_van',\n 'rsrd_vr_p4_tot',\n 'rsrd_wo_p3_tot',\n 'rsrd_fd_p1_tot',\n 'rsrd_fd_p3_tot',\n 'rsrd_ma_p4_van',\n 'rsrd_di_p3_tot',\n 'rsrd_zo_p4_van',\n 'rsrd_do_p4_tot',\n 'rsrd_do_van',\n 'rsrd_do_p3_van',\n 'rsrd_wo_p1_van',\n 'rsrd_za_p4_tot',\n 'rsrd_zo_van',\n 'rsrd_do_p2_tot',\n 'rsrd_vr_p2_van',\n 'rsrd_vr_p2_tot',\n 'rsrd_vr_p1_tot',\n 'rsrd_do_p5_tot',\n 'rsrd_wo_van',\n 'rsrd_zo_tot',\n 'rsrd_za_p2_van',\n 'rsrd_oms',\n 'rsrd_zo_p3_van',\n 'rsrd_fd_p2_van',\n 'rsrd_do_p4_van',\n 'rsrd_di_p2_tot',\n 'rsrd_za_p3_van',\n 'rsrd_wo_p4_van',\n 'rsrd_vr_p4_van',\n 'rsrd_wo_p4_tot',\n 'rsrd_num',\n 'rsrd_ma_tot',\n 'rsrd_ma_p1_van',\n 'rsrd_di_p5_van',\n 'rsrd_fd_p5_tot',\n 'rsrd_vr_p1_van',\n 'rsrd_di_p2_van',\n 'rsrd_do_p2_van',\n 'rsrd_wo_p5_van',\n 'rsrd_za_tot',\n 'rsrd_ma_p3_tot',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_RSRG = new MkgTable({\n identifier: 'rsrg',\n fields: ['rsrg_num', 'rsrg_memo', 'rsrg_oms'],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLH = new MkgTable({\n identifier: 'stlh',\n interval: 600,\n fields: [\n 'arti_code',\n 'stlh_teken',\n 'stlh_rev_lengte',\n 'stlh_bron',\n 'stlh_volgnummer',\n 'stlh_oms_2',\n 'stlh_oms_1',\n 'stlh_memo',\n 'stlh_revisie',\n 'stlh_rev_preview',\n 'stlh_actief',\n 'stlh_lengte',\n 'stlh_num',\n 'stlh_oms_3',\n 'stlh_files',\n 'stlh_prefix',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLM = new MkgTable({\n identifier: 'stlm',\n interval: 600,\n fields: [\n 'arti_code',\n 'stlm_rest_min',\n 'stlm_eenh',\n 'stlm_netto_prijs_uitb',\n 'stlm_lijst_9',\n 'stlm_oms_1',\n 'stlm_gewicht_netto',\n 'stlm_lijst_2',\n 'stlm_volume',\n 'stlm_tot_nettoprijs',\n 'stlm_oms_3',\n 'stlm_toegeleverd',\n 'stlm_netto_prijs_mat',\n 'stlm_plaat_magw',\n 'stlm_rest_hl',\n 'stlm_lijst_5',\n 'stlm_oppervlakte',\n 'stlm_num',\n 'stlm_parameter_2',\n 'stlm_parameter_1',\n 'stlm_gewicht_bruto',\n 'stlm_zaaglengte',\n 'stlm_revisie',\n 'stlm_lijst_4',\n 'stlm_eenh_nettoprijs',\n 'stlm_plaat_b',\n 'stlm_tekening',\n 'stlm_opspanlengte_hl',\n 'stlm_eenmalig',\n 'stlm_opspanlengte_pl',\n 'stlm_lijst_7',\n 'stlm_memo_extern',\n 'stlm_factor',\n 'stlm_parameter_3',\n 'stlm_aantal',\n 'stlm_gewicht_per_m',\n 'stlm_plaat_a',\n 'stlm_plaat_dx',\n 'stlm_behoefte_obv',\n 'stlm_netto_prijs_fictief',\n 'stlm_opspanlengte_hlzl',\n 'stlm_memo',\n 'stlm_io_aanvragen',\n 'stlm_opspanlengte',\n 'stlm_aantal_lengtes',\n 'stlm_volgorde',\n 'stlm_zaagsnede_lengte',\n 'stlm_lijst_8',\n 'stlm_netto_prijs_mach',\n 'stlm_pos',\n 'stlm_oms_2',\n 'stlm_eenh_bestel',\n 'stlm_netto_prijs_man',\n 'stlm_handelslengte',\n 'stlm_eigen_spec',\n 'stlm_cad',\n 'stlm_zaagsnede',\n 'stlm_netto_prijs',\n 'stlm_bestel_gezaagd',\n 'stlm_prijs_methode',\n 'stlm_rest_zl',\n 'stlm_parameter_5',\n 'stlm_plaat_dy',\n 'stlm_lijst_6',\n 'stlm_bestel_handelslengte',\n 'stlm_lengte',\n 'stlm_lijst_3',\n 'stlm_spec_prijs',\n 'stlm_lijst_1',\n 'stlm_files',\n 'stlm_parameter_4',\n 'stlm_plaat_k',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_STLR = new MkgTable({\n identifier: 'stlr',\n interval: 600,\n fields: [\n 'stlr_cad',\n 'stlr_parent_aantal',\n 'stlr_aantal',\n 'stlr_verh_oppv_aantal_grp',\n 'stlr_verh_gewicht_eenh_grp',\n 'stlr_verh_tijd_aantal_grp',\n 'stlr_verh_volume_aantal_grp',\n 'stlr_memo',\n 'stlr_stlr_herkomst',\n 'stlr_verh_aantal_eenh_grp',\n 'stlr_verh_gewicht_aantal_vrd',\n 'stlr_verh_aantal_aantal_vrd',\n 'stlr_seriegrootte',\n 'stlr_inherit_tekening',\n 'stlr_uitval',\n 'stlr_volgorde',\n 'stlr_eenmalig',\n 'stlr_oms_3',\n 'stlr_verh_volume_aantal_vrd',\n 'stlr_verh_tijd_aantal_vrd',\n 'stlr_files',\n 'stlr_oms_1',\n 'stlr_pos',\n 'stlr_verh_gewicht_aantal_grp',\n 'stlr_eindproduct_num',\n 'stlr_stlm_certificaat',\n 'stlr_verh_rest_aantal_vrd',\n 'stlr_niveau',\n 'stlr_tekening',\n 'stlr_verh_lengte_eenh_grp',\n 'stlr_prod_fase',\n 'stlr_revisie',\n 'stlr_verh_lengte_aantal_vrd',\n 'stlr_verh_volume_eenh_grp',\n 'stlr_verh_rest_aantal_grp',\n 'stlr_verh_oppv_eenh_grp',\n 'stlr_num',\n 'stlr_verh_tijd_eenh_grp',\n 'stlr_verwijzing',\n 'stlr_afronden_aant',\n 'stlr_verh_aantal_aantal_grp',\n 'stlr_oms_2',\n 'stlr_parent',\n 'stlr_verh_lengte_aantal_grp',\n 'stlr_verh_rest_eenh_grp',\n 'stlr_verw_stlh',\n 'stlr_stlh_herkomst',\n 'stlr_cad_revisie',\n 'stlr_verh_oppv_aantal_vrd',\n 'stlr_handlingstijd',\n 'stlr_tot_aantal',\n 'stlr_prod_aantal',\n ],\n});\n", "import { MkgTable } from './base/table';\n\nexport const MKG_TABLE_VRDG = new MkgTable({\n identifier: 'vrdg',\n fields: [\n 'vrdg_grbk_pv_grd_uitb',\n 'vrdg_grbk_hw_grd_uitb',\n 'vrdg_grbk_grd_mat',\n 'vrdg_grbk_hw_grd_mat',\n 'vrdg_grbk_hw_grd_man',\n 'vrdg_grbk_vrd_mat',\n 'vrdg_grbk_hw_grd_mach',\n 'vrdg_grbk_grd_mach',\n 'vrdg_num',\n 'vrdg_grbk_pv_grd_mat',\n 'vrdg_grbk_kst_mach',\n 'vrdg_grbk_kst_mat',\n 'vrdg_grbk_pv_grd_mach',\n 'vrdg_grbk_kst_man',\n 'vrdg_grbk_kst_uitb',\n 'vrdg_oms',\n 'vrdg_grbk_grd_uitb',\n 'vrdg_grbk_pv_grd_man',\n 'vrdg_grbk_pv_vrd_mat',\n 'vrdg_grbk_grd_man',\n ],\n});\n", "import { MKG_TABLE_ARTG } from './artg';\nimport { MKG_TABLE_ARTI } from './arti';\nimport { MkgTable } from './base/table';\nimport { MKG_TABLE_BWRG } from './bwrg';\nimport { MKG_TABLE_BWRK } from './bwrk';\nimport { MKG_TABLE_CLCH } from './clch';\nimport { MKG_TABLE_DEBI } from './debi';\nimport { MKG_TABLE_MAGL } from './magl';\nimport { MKG_TABLE_MAGZ } from './magz';\nimport { MKG_TABLE_MEDW } from './medw';\nimport { MKG_TABLE_PARL } from './parl';\nimport { MKG_TABLE_PLNB } from './plnb';\nimport { MKG_TABLE_PRBV } from './prbv';\nimport { MKG_TABLE_PRDH } from './prdh';\nimport { MKG_TABLE_PRDR } from './prdr';\nimport { MKG_TABLE_PRMV } from './prmv';\nimport { MKG_TABLE_RELA } from './rela';\nimport { MKG_TABLE_RGRS } from './rgrs';\nimport { MKG_TABLE_RSRC } from './rsrc';\nimport { MKG_TABLE_RSRD } from './rsrd';\nimport { MKG_TABLE_RSRG } from './rsrg';\nimport { MKG_TABLE_STLH } from './stlh';\nimport { MKG_TABLE_STLM } from './stlm';\nimport { MKG_TABLE_STLR } from './stlr';\nimport { MKG_TABLE_VRDG } from './vrdg';\n\nconst tables = [\n MKG_TABLE_RELA,\n MKG_TABLE_DEBI,\n MKG_TABLE_MEDW,\n MKG_TABLE_ARTI,\n MKG_TABLE_RSRC,\n MKG_TABLE_RSRD,\n MKG_TABLE_RSRG,\n MKG_TABLE_MAGZ,\n MKG_TABLE_MAGL,\n MKG_TABLE_STLH,\n MKG_TABLE_STLR,\n MKG_TABLE_STLM,\n MKG_TABLE_PRDH,\n MKG_TABLE_BWRK,\n MKG_TABLE_BWRG,\n MKG_TABLE_CLCH,\n MKG_TABLE_VRDG,\n MKG_TABLE_RGRS,\n MKG_TABLE_PLNB,\n MKG_TABLE_ARTG,\n MKG_TABLE_PRDR,\n MKG_TABLE_PRMV,\n MKG_TABLE_PRBV,\n MKG_TABLE_PARL,\n];\n\nexport const MKG_TABLES: { [identifier: string]: MkgTable } = tables.reduce(\n (acc, table) => {\n acc[table.identifier] = table;\n return acc;\n },\n {} as { [identifier: string]: MkgTable },\n);\n", "import {\n CompileDelegate,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpError,\n} from '@transai/connector-runtime-sdk';\nimport {\n ActionInterface,\n KafkaCallbackResponse,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { MKG_TABLES } from './tables/_all';\n\nexport class ActionsHandler {\n readonly #connectorSDK: ConnectorSDKInterface;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n constructor(\n connectorSDK: ConnectorSDKInterface,\n httpClient: HttpClientSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK;\n this.#httpClient = httpClient;\n }\n\n get callbackFunctionChain(): (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse> {\n return this.#jobCallbackFunction(\n this.#connectorSDK.receiver.emitEventType(\n this.#connectorSDK.receiver.responses.created(),\n ),\n );\n }\n\n #jobCallbackFunction(\n callbackFunction: (message: XodJobType) => Promise<KafkaCallbackResponse>,\n ) {\n return async (\n message: XodJobType,\n action: ActionInterface,\n ): Promise<KafkaCallbackResponse> => {\n try {\n this.#connectorSDK.logger.debug(\n `[MKG] Apply templates on payload: ${JSON.stringify(message.payload)}, action: ${JSON.stringify(action)}`,\n );\n\n const handleBars = action.config['parsedTemplates'] as {\n action: CompileDelegate;\n params: CompileDelegate;\n };\n\n const parsedAction = handleBars\n .action({\n inputs: message.payload,\n })\n .trim();\n\n const parsedParams = handleBars\n .params({\n inputs: message.payload,\n })\n .trim();\n\n const parsedParamsJson = JSON.parse(parsedParams);\n this.#connectorSDK.logger.debug(\n `[MKG] Parsed action: ${parsedAction}, params json: ${JSON.stringify(parsedParamsJson)}`,\n );\n\n const [tableIdentifier, ...rest] = parsedAction.split('.');\n const actionIdentifier = rest.join('.');\n // eslint-disable-next-line security/detect-object-injection\n const mkgTable = MKG_TABLES[tableIdentifier];\n if (!mkgTable) {\n this.#connectorSDK.logger.warn(\n `[MKG] Unknown table identifier \"${tableIdentifier}\" in message ${message.eventId}`,\n );\n return this.#connectorSDK.receiver.responses.badRequest(\n `[MKG] Unknown table identifier \"${tableIdentifier}\"`,\n )(message);\n }\n\n const mkgAction = mkgTable.action(actionIdentifier);\n if (!mkgAction) {\n const logMessage = `[MKG] Unknown action identifier \"${actionIdentifier}\" within table \"${tableIdentifier}\" in message ${message.eventId}`;\n this.#connectorSDK.logger.warn(logMessage);\n return this.#connectorSDK.receiver.responses.badRequest(logMessage)(\n message,\n );\n }\n\n if (message.testRun) {\n this.#connectorSDK.logger.info(\n `[MKG] Test run for ${message.eventId} with payload ${parsedParams} to action ${parsedAction}`,\n );\n return callbackFunction(message);\n }\n\n try {\n const response = await this.#httpClient.request(\n mkgAction.method,\n `/web/v3/MKG/Documents/${mkgAction.path(parsedParamsJson)}`,\n {\n ...(['POST', 'PUT'].includes(mkgAction.method)\n ? {\n data: {\n request: {\n InputData: {\n [tableIdentifier]: [\n mkgAction.fieldSet(parsedParamsJson),\n ],\n },\n },\n },\n }\n : {}),\n },\n );\n\n this.#connectorSDK.logger.debug(\n `[MKG] Got action \"${actionIdentifier}\" of table \"${tableIdentifier}\" response from MKG: ${JSON.stringify(response)}`,\n );\n } catch (error: HttpError | unknown) {\n const logMessage = `[MKG] Failed to perform action \"${actionIdentifier}\" of table \"${tableIdentifier}\": (${(error as HttpError)?.status}) ${(error as HttpError)?.error ?? (error as Error)?.message}`;\n this.#connectorSDK.logger.error(logMessage);\n\n return this.#connectorSDK.receiver.responses.unprocessableEntity(\n logMessage,\n )(message);\n }\n\n return callbackFunction(message);\n } catch (error: unknown) {\n return this.#connectorSDK.receiver.responses.internalServerError(\n error instanceof Error ? error.message : 'Unknown error occurred',\n )(message);\n }\n };\n }\n}\n", "import {\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpError,\n IntervalHandler,\n StoredOffset,\n} from '@transai/connector-runtime-sdk';\n\nimport {\n ConnectorConfig,\n DEFAULT_DATASOURCE,\n MkgTableInterface,\n} from './types';\n\ntype FetchDataResponse<D> = {\n response: {\n ResultData: [\n {\n [key: string]: Array<D>;\n },\n ];\n };\n};\n\nexport class ExtractorService implements IntervalHandler {\n readonly #sdk: ConnectorSDKInterface<ConnectorConfig>;\n\n readonly #httpClient: HttpClientSDKInterface;\n\n readonly #tableIdentifier: string;\n\n readonly #table: Required<MkgTableInterface>;\n\n readonly #fieldsList: string;\n\n constructor(\n sdk: ConnectorSDKInterface<ConnectorConfig>,\n httpClient: HttpClientSDKInterface,\n tableIdentifier: string,\n table: Required<MkgTableInterface>,\n ) {\n this.#sdk = sdk;\n this.#httpClient = httpClient;\n this.#tableIdentifier = tableIdentifier;\n this.#table = table;\n this.#fieldsList = table.fields.join(',');\n }\n\n get name(): string {\n return `mkg-extractor-${this.#tableIdentifier}`;\n }\n\n async onRun(): Promise<void> {\n try {\n const now = new Date();\n const latestOffset = await this.#sdk.offsetStore.getOffset(\n `offset_${this.#tableIdentifier}`,\n );\n\n const data = await this.#fetchData(latestOffset);\n if (data.length > 0) {\n await this.#sdk.sender.documents(data, {\n keyField: this.#table.identifierField,\n collection: `${this.#sdk.config.datasourceIdentifier ?? DEFAULT_DATASOURCE}_${this.#tableIdentifier}`,\n });\n }\n\n this.#sdk.logger.debug(\n `[MKG] Processed ${data.length} records from ${this.#tableIdentifier}`,\n );\n\n this.#sdk.offsetStore.setOffset(\n {\n id: String(\n data[data.length - 1]?.[this.#table.identifierField] ??\n latestOffset.id,\n ),\n timestamp: now.getTime(),\n rawTimestamp: now.toISOString(),\n },\n `offset_${this.#tableIdentifier}`,\n );\n } catch (error) {\n this.#sdk.logger.error(\n `[MKG] Failed to retrieve and process data from OPC UA source service`,\n { error },\n );\n throw error;\n }\n }\n\n #fetchData = async (\n latestOffset: StoredOffset,\n ): Promise<\n Array<{\n [key: string]: string | number | boolean;\n }>\n > => {\n const parameters = new URLSearchParams();\n parameters.set('NumRows', String(this.#table.rows));\n parameters.set(\n 'Filter',\n `${this.#table.dateField}>=${latestOffset.rawTimestamp}`,\n );\n parameters.set('FieldList', `${this.#table.dateField},${this.#fieldsList}`);\n\n try {\n const response = await this.#httpClient.get<\n FetchDataResponse<{\n [key: string]: string | number | boolean;\n }>\n >(\n `/web/v3/MKG/Documents/${this.#tableIdentifier}?${parameters.toString()}`,\n );\n\n return (\n response.data?.response?.ResultData?.[0]?.[this.#tableIdentifier] ?? []\n );\n } catch (error: HttpError | unknown) {\n const logMessage = `[MKG] Failed to fetch data from table \"${this.#tableIdentifier}\": (${(error as HttpError)?.status}) ${(error as HttpError)?.error ?? (error as Error)?.message}`;\n this.#sdk.logger.error(logMessage);\n }\n\n return [];\n };\n}\n", "/* eslint-disable camelcase,@typescript-eslint/naming-convention */\nimport {\n ConnectorRuntimeSDK,\n ConnectorSDKInterface,\n HttpClientSDKInterface,\n HttpRequestOptions,\n} from '@transai/connector-runtime-sdk';\nimport { ConnectorInterface } from '@xip-online-data/types';\n\nimport { ActionsHandler } from './actions-handler';\nimport { ExtractorService } from './extractor.service';\nimport { MKG_TABLES } from './tables/_all';\nimport {\n ConnectorConfig,\n SESSION_COOKIE_NAME,\n SESSION_EXPIRATION_SECONDS,\n} from './types';\n\nexport class ConnectorRunnerMkg extends ConnectorRuntimeSDK<ConnectorConfig> {\n readonly #actionsHandler: ActionsHandler;\n\n readonly #mkgHttpClient: HttpClientSDKInterface;\n\n readonly #sessionTokenHttpClient: HttpClientSDKInterface;\n\n #sessionToken?: {\n token: string;\n expiresAt: number;\n };\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n super(connector, connectorSDK);\n\n const { config } = this.connectorSDK;\n\n this.#sessionTokenHttpClient = this.connectorSDK.httpClient({\n baseUrl: `https://${config.server}:${config.port ?? 443}/${(config.path ?? '/mkg').replace(/^\\/+/, '')}`,\n });\n this.#mkgHttpClient = this.connectorSDK\n .httpClient({\n baseUrl: `https://${config.server}:${config.port ?? 443}/${(config.path ?? '/mkg').replace(/^\\/+/, '')}`,\n })\n .setRequestOptionsFormatter(this.#requestOptionsFormatter);\n\n this.#actionsHandler = new ActionsHandler(\n this.connectorSDK,\n this.#mkgHttpClient,\n );\n\n this.callbackFunction = this.#actionsHandler.callbackFunctionChain;\n }\n\n override init = async (): Promise<void> => {\n const { config } = this.connectorSDK;\n\n Object.entries(config.tables ?? {}).forEach(\n ([tableIdentifier, configOrTrue]) => {\n // eslint-disable-next-line security/detect-object-injection\n const table = MKG_TABLES[tableIdentifier];\n if (!table) {\n this.connectorSDK.logger.warn(\n `[MKG] Unknown table identifier \"${tableIdentifier}\", skipping configuration.`,\n );\n return;\n }\n\n if (!table.interval || table.interval <= 0) {\n this.connectorSDK.logger.verbose(\n `[MKG] Table \"${tableIdentifier}\" does not have a valid interval configured, skipping registration.`,\n );\n return;\n }\n\n this.connectorSDK.processing.registerInterval(\n table.interval,\n new ExtractorService(\n this.connectorSDK,\n this.#mkgHttpClient,\n tableIdentifier,\n table.cloneFromTableConfig(configOrTrue),\n ),\n { immediate: table.immediate },\n );\n },\n );\n };\n\n #requestOptionsFormatter = async <D = string | object>(\n options: HttpRequestOptions<D>,\n ): Promise<HttpRequestOptions<D>> => {\n const { config } = this.connectorSDK;\n\n return {\n ...options,\n headers: {\n ...(options?.headers ?? {}),\n Cookie: `${SESSION_COOKIE_NAME}=${await this.#getSessionCookie(config.username, config.password)}`,\n 'X-CustomerID': config.apiToken,\n },\n };\n };\n\n async #getSessionCookie(\n j_username: string,\n j_password: string,\n ): Promise<string> {\n const token = this.#sessionToken;\n if (token && token.expiresAt > Date.now()) {\n return token.token;\n }\n\n const response = await this.#sessionTokenHttpClient.post(\n '/static/auth/j_spring_security_check',\n {\n j_username,\n j_password,\n },\n {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n },\n );\n\n if (!response) {\n throw new Error('Failed to authenticate and retrieve session cookie');\n }\n\n const cookies = (response.headers?.['set-cookie'] ??\n response.headers?.['Set-Cookie'] ??\n []) as Array<string>;\n const sessionCookie = cookies.find((cookie: string) =>\n cookie.startsWith(`${SESSION_COOKIE_NAME}=`),\n );\n\n if (!sessionCookie) {\n throw new Error('Session cookie not found in authentication response');\n }\n\n const sessionToken = sessionCookie\n .split(';')[0]\n ?.substring(`${SESSION_COOKIE_NAME}=`.length);\n\n this.#sessionToken = {\n token: sessionToken,\n expiresAt: Date.now() + SESSION_EXPIRATION_SECONDS - 1000,\n };\n\n return sessionToken;\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,UAAYA,MAAa,eAkBlB,IAAeC,EAAf,KAEgC,CAKrC,YACEC,EACAC,EACA,CAPF,KAASC,GAAe,oBA2DxB,KAAO,KAA4B,IAAM,QAAQ,QAAQ,EAEzD,KAAO,MAA6B,IAAM,QAAQ,QAAQ,EAE1D,KAAO,KAA4B,IAAM,QAAQ,QAAQ,EAvDvD,KAAKC,GAAgBF,EAET,KACF,KAAG,UAAYG,GAAwB,CACzCA,EAAQ,MAAQ,KAAKF,IACvBD,EAAa,OAAO,QAClB,GAAW,KAAG,yCACdG,CACF,CAEJ,CAAC,EAEDH,EAAa,OAAO,KAClB,wDACF,EAGW,QAEXA,EAAa,OAAO,KAClB,0DACF,EAIFD,EAAU,SAAS,QAASK,GAA4B,CACtD,GAAIA,EAAO,OAAO,YAAiB,OACjC,OAGF,IAAMC,EAEF,CAAC,EAEL,OAAO,QAAQD,EAAO,OAAO,SAAY,EAAE,QAAQ,CAAC,CAACE,EAAKC,CAAK,IAAM,CACnE,GAAI,CAEFF,EAAWC,CAAG,EAAIN,EAAa,WAAW,QAAQO,CAAK,CACzD,OAASC,EAAgB,CACvBR,EAAa,OAAO,MAClB,4BAA4BM,CAAG,eAAeF,EAAO,UAAU,GAC/DI,CACF,CACF,CACF,CAAC,EAGDJ,EAAO,OAAO,gBAAqBC,CACrC,CAAC,CACH,CAzDSJ,GAEAC,GA+DT,IAAI,iBACFO,EAIA,CACA,KAAK,aAAa,SAAS,iBACzB,KAAKC,GAAwBD,CAAQ,CACvC,CACF,CAEA,IAAc,cAAyC,CACrD,OAAO,KAAKP,EACd,CAEAQ,GACEC,EAIyD,CACzD,MAAO,OAAOR,GAAwB,CACpC,IAAMC,EAAS,MAAM,KAAKF,GAAc,SAAS,gBAAgBC,CAAO,EACxE,OAAKC,EAKEO,EAAiBR,EAASC,CAAM,EAJ9B,KAAKF,GAAc,SAAS,UAAU,WAC3C,kBACF,EAAEC,CAAO,CAGb,CACF,CACF,ECnHO,IAAMS,EAAqB,MAErBC,EAAmB,KAEnBC,EAAwB,SAExBC,EAAqB,iBAErBC,EAAmB,IAEnBC,EAAsB,aAKtBC,EAA6B,KAAU,ICN7C,IAAMC,EAAN,MAAMC,CAAsC,CAiBjD,YAAYC,EAA2BC,EAA4B,CAAC,EAAG,CACrE,KAAK,WAAaD,EAAO,WACzB,KAAK,OAASA,EAAO,OACrB,KAAK,UAAYA,EAAO,YAAc,GACtC,KAAK,SACHA,EAAO,WAAa,KAAK,OAAO,OAAS,EAAIE,EAAmB,GAClE,KAAK,gBAAkBF,EAAO,iBAAmBG,EACjD,KAAK,UAAYH,EAAO,WAAaI,EACrC,KAAK,KAAOJ,EAAO,MAAQK,EAC3B,KAAK,QAAUJ,EAAQ,IAAKK,GAAWA,EAAO,gBAAgB,IAAI,CAAC,CACrE,CAEA,qBAAqBC,EAA2C,CAC9D,OAAIA,IAAgB,IAAQA,EAAY,SAAW,OAC1C,KAGF,IAAIR,EAAS,CAClB,GAAG,KACH,OAAQ,KAAK,OAAO,OAAQS,GAC1BD,EAAY,QAAQ,SAASC,CAAK,CACpC,CACF,CAAC,CACH,CAEA,OAAOC,EAA2C,CAChD,OAAO,KAAK,QAAQ,KAAMC,GAAMA,EAAE,aAAeD,CAAU,CAC7D,CACF,ECtDO,IAAME,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,WACA,YACA,YACA,WACA,oBACF,CACF,CAAC,ECTM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,mBACA,sBACA,oBACA,mBACA,iBACA,sBACA,oBACA,qBACA,yBACA,oBACA,cACA,4BACA,mBACA,sBACA,sBACA,4BACA,uBACA,wBACA,oBACA,gBACA,kBACA,sBACA,4BACA,8BACA,2BACA,8BACA,mBACA,gBACA,oBACA,8BACA,cACA,kBACA,eACA,uBACA,kBACA,mBACA,mBACA,oBACA,qBACA,0BACA,qBACA,2BACA,sBACA,aACA,wBACA,0BACA,wBACA,mBACA,uBACA,wBACA,oBACA,mBACA,mBACA,oBACA,2BACA,+BACA,6BACA,mBACA,4BACA,eACA,+BACA,mBACA,eACA,uBACA,mBACA,wBACA,8BACA,iBACA,oBACA,yBACA,sBACA,4BACA,gBACA,uBACA,qBACA,0BACA,mBACA,mBACA,kBACA,yBACA,uBACA,0BACA,wBACA,wBACA,eACA,oBACA,4BACA,4BACA,0BACA,aACA,YACF,CACF,CAAC,EChGM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,qBACA,YACA,WACA,WACA,YACA,WACF,CACF,CAAC,ECVM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,GACV,OAAQ,CACN,sBACA,WACA,YACA,qBACA,wBACA,2BACA,cACA,WACA,2BACA,oBACA,YACA,oBACA,gBACA,iCACA,uBACA,mBACA,mBACA,gBACA,sBACA,eACA,wBACA,sBACA,gBACA,mBACA,gBACA,mBACA,yBACA,mBACA,oBACA,kBACA,oBACA,kBACA,uBACA,oBACA,kBACA,wBACA,kBACA,gCACA,kBACA,gBACA,4BACA,oBACA,uBACA,gBACA,mBACA,iBACA,uBACA,0BACA,gBACA,6BACA,kCACA,mBACF,CACF,CAAC,ECzDM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,GACV,OAAQ,CACN,kBACA,kBACA,mBACA,qBACA,oBACA,yBACA,6BACA,mBACA,kBACA,yBACA,cACA,qBACA,wBACA,mBACA,YACA,iBACA,yBACA,wBACA,kBACA,mBACA,aACA,aACA,WACA,kBACA,iBACA,gBACA,aACA,yBACA,mBACA,iBACA,aACA,oBACA,uBACA,oBACF,CACF,CAAC,ECvCM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,cACA,aACA,oBACA,sBACA,mBACA,mBACA,gBACA,WACA,sBACA,eACA,sBACA,mBACA,2BACA,oBACA,YACA,WACA,iBACA,eACA,mBACA,mBACA,YACA,iBACA,YACA,oBACA,gBACA,mBACA,cACA,gBACA,mBACA,WACA,mBACA,8BACA,gBACA,mBACA,4BACA,mBACA,mBACA,eACA,mBACA,mBACA,uBACA,oBACA,YACA,uBACA,qBACA,4BACA,qBACA,iBACA,mBACA,oBACA,eACA,iBACA,mBACA,mBACA,4BACF,CACF,CAAC,EC3DM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,YACA,aACA,iBACA,oBACA,aACA,YACA,YACA,YACF,CACF,CAAC,ECZM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,YACA,aACA,aACA,YACA,aACA,oBACA,WACF,CACF,CAAC,ECXM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,4BACA,qBACA,yBACA,yBACA,uBACA,0BACA,oBACA,oBACA,UACA,oBACA,gBACA,yBACA,8BACA,gBACA,0BACA,mBACA,gBACA,4BACA,uBACA,mBACA,oBACA,qBACA,yBACA,oBACA,gBACA,gBACA,sBACA,YACA,qBACA,iBACA,+BACA,sBACA,0BACA,uBACA,2BACA,gBACA,uBACA,wBACA,oBACA,cACA,kBACA,kBACA,qBACA,kBACA,cACA,sBACA,iBACA,YACA,oBACA,aACA,mBACA,sBACA,qBACA,kBACA,mBACA,sBACA,oBACA,yBACA,eACA,mBACA,sBACA,gBACA,uBACA,sBACA,mBACA,wBACA,gCACA,uBACA,yBACA,8BACA,gCACA,2BACA,gCACA,qBACA,iBACA,yBACA,oBACA,gBACA,2BACA,0BACA,0BACA,gCACA,yBACA,cACA,yBACA,sBACA,eACA,kBACA,kBACA,oBACF,CACF,CAAC,EChFM,IAAMC,EAAN,MAAMC,CAAwC,CAWnDC,GAEA,YAAYC,EAA4B,CACtC,KAAK,WAAaA,EAAO,WACzB,KAAK,OAASA,EAAO,OACrB,KAAK,OAASA,EAAO,OACrB,KAAK,eAAiBA,EAAO,gBAAkB,CAAC,EAChD,KAAK,KAAOA,EAAO,OAAS,IAAc,KAAKD,GAAO,WACxD,CAEA,gBAAgBE,EAAqC,CACnD,IAAMC,EAAS,IAAIJ,EAAU,IAAI,EACjC,OAAAI,EAAOH,GAASE,EAETC,CACT,CAEA,SAASC,EAA6D,CACpE,IAAMC,EAAY,IAAI,IAEtB,YAAK,OAAO,QAASC,GAAU,CAE7B,IAAMC,EAAiBH,EAAUE,CAAK,EACtC,GAAI,CAACC,EACH,MAAM,IAAI,MACR,2BAA2BD,CAAK,iBAAiB,KAAK,UAAU,GAClE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A,YACA,gCACA,8BACA,YACA,yBACA,sBACA,YACA,WACA,WACA,WACA,YACA,WACA,iBACA,aACA,QACA,iBACA,aACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,gBACA,qBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACF,CACF,CAAC,ECjEM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,wBACA,WACA,YACA,gBACA,eACA,gBACA,WACA,wBACA,gBACA,cACA,mBACA,mBACA,mBACA,cACA,iBACF,CACF,CAAC,ECpBM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,iBACA,WACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,WACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,gBACF,CACF,CAAC,EC/FM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CAAC,WAAY,YAAa,UAAU,CAC9C,CAAC,ECHM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,YACA,aACA,kBACA,YACA,kBACA,aACA,aACA,YACA,eACA,mBACA,cACA,cACA,WACA,aACA,aACA,aACF,CACF,CAAC,ECrBM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,YACA,gBACA,YACA,wBACA,eACA,aACA,qBACA,eACA,cACA,sBACA,aACA,mBACA,uBACA,kBACA,eACA,eACA,mBACA,WACA,mBACA,mBACA,qBACA,kBACA,eACA,eACA,uBACA,eACA,gBACA,uBACA,gBACA,uBACA,eACA,mBACA,cACA,mBACA,cACA,qBACA,eACA,gBACA,oBACA,2BACA,yBACA,YACA,oBACA,oBACA,sBACA,gBACA,wBACA,eACA,wBACA,WACA,aACA,mBACA,uBACA,qBACA,kBACA,WACA,iBACA,mBACA,sBACA,qBACA,eACA,mBACA,gBACA,eACA,4BACA,cACA,eACA,kBACA,eACA,aACA,mBACA,cACF,CACF,CAAC,EC7EM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,SAAU,IACV,OAAQ,CACN,WACA,qBACA,cACA,4BACA,6BACA,4BACA,8BACA,YACA,qBACA,4BACA,+BACA,8BACA,oBACA,wBACA,cACA,gBACA,gBACA,aACA,8BACA,4BACA,aACA,aACA,WACA,+BACA,uBACA,wBACA,4BACA,cACA,gBACA,4BACA,iBACA,eACA,8BACA,4BACA,4BACA,0BACA,WACA,0BACA,kBACA,qBACA,8BACA,aACA,cACA,8BACA,0BACA,iBACA,qBACA,mBACA,4BACA,qBACA,kBACA,kBACF,CACF,CAAC,ECzDM,IAAMC,EAAiB,IAAIC,EAAS,CACzC,WAAY,OACZ,OAAQ,CACN,wBACA,wBACA,oBACA,uBACA,uBACA,oBACA,wBACA,qBACA,WACA,uBACA,qBACA,oBACA,wBACA,oBACA,qBACA,WACA,qBACA,uBACA,uBACA,mBACF,CACF,CAAC,ECAD,IAAMC,GAAS,CACbC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,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",
|
|
6
6
|
"names": ["process", "ConnectorRuntimeSDK", "connector", "connectorSDK", "#IPC_CHANNEL", "#connectorSDK", "message", "action", "containers", "key", "value", "error", "callback", "#enrichWithActionConfig", "callbackFunction", "DEFAULT_DATASOURCE", "DEFAULT_INTERVAL", "DEFAULT_ROW_KEY_FIELD", "DEFAULT_DATE_FIELD", "DEFAULT_NUM_ROWS", "SESSION_COOKIE_NAME", "SESSION_EXPIRATION_SECONDS", "MkgTable", "_MkgTable", "params", "actions", "DEFAULT_INTERVAL", "DEFAULT_ROW_KEY_FIELD", "DEFAULT_DATE_FIELD", "DEFAULT_NUM_ROWS", "action", "tableConfig", "field", "identifier", "a", "MKG_TABLE_ARTG", "MkgTable", "MKG_TABLE_ARTI", "MkgTable", "MKG_TABLE_BWRG", "MkgTable", "MKG_TABLE_BWRK", "MkgTable", "MKG_TABLE_CLCH", "MkgTable", "MKG_TABLE_DEBI", "MkgTable", "MKG_TABLE_MAGL", "MkgTable", "MKG_TABLE_MAGZ", "MkgTable", "MKG_TABLE_MEDW", "MkgTable", "MkgAction", "_MkgAction", "#table", "params", "table", "action", "inputData", "fieldData", "field", "inputDataValue", "ACTION_MOVE", "MkgAction", "MKG_TABLE_PARL", "MkgTable", "ACTION_CREATE", "MkgAction", "MKG_TABLE_PLNB", "MkgTable", "ACTION_CREATE", "MkgAction", "inputData", "prdhNum", "prdrNum", "MKG_TABLE_PRBV", "MkgTable", "ACTION_CREATE", "MkgAction", "MKG_TABLE_PRDH", "MkgTable", "ACTION_CREATE", "MkgAction", "inputData", "prdhNum", "MKG_TABLE_PRDR", "MkgTable", "ACTION_CREATE", "MkgAction", "inputData", "prdhNum", "prdrNum", "MKG_TABLE_PRMV", "MkgTable", "MKG_TABLE_RELA", "MkgTable", "MKG_TABLE_RGRS", "MkgTable", "MKG_TABLE_RSRC", "MkgTable", "MKG_TABLE_RSRD", "MkgTable", "MKG_TABLE_RSRG", "MkgTable", "MKG_TABLE_STLH", "MkgTable", "MKG_TABLE_STLM", "MkgTable", "MKG_TABLE_STLR", "MkgTable", "MKG_TABLE_VRDG", "MkgTable", "tables", "MKG_TABLE_RELA", "MKG_TABLE_DEBI", "MKG_TABLE_MEDW", "MKG_TABLE_ARTI", "MKG_TABLE_RSRC", "MKG_TABLE_RSRD", "MKG_TABLE_RSRG", "MKG_TABLE_MAGZ", "MKG_TABLE_MAGL", "MKG_TABLE_STLH", "MKG_TABLE_STLR", "MKG_TABLE_STLM", "MKG_TABLE_PRDH", "MKG_TABLE_BWRK", "MKG_TABLE_BWRG", "MKG_TABLE_CLCH", "MKG_TABLE_VRDG", "MKG_TABLE_RGRS", "MKG_TABLE_PLNB", "MKG_TABLE_ARTG", "MKG_TABLE_PRDR", "MKG_TABLE_PRMV", "MKG_TABLE_PRBV", "MKG_TABLE_PARL", "MKG_TABLES", "acc", "table", "ActionsHandler", "#connectorSDK", "#httpClient", "connectorSDK", "httpClient", "#jobCallbackFunction", "callbackFunction", "message", "action", "handleBars", "parsedAction", "parsedParams", "parsedParamsJson", "tableIdentifier", "rest", "actionIdentifier", "mkgTable", "MKG_TABLES", "mkgAction", "logMessage", "response", "error", "ExtractorService", "#sdk", "#httpClient", "#tableIdentifier", "#table", "#fieldsList", "sdk", "httpClient", "tableIdentifier", "table", "now", "latestOffset", "data", "#fetchData", "DEFAULT_DATASOURCE", "error", "parameters", "logMessage", "ConnectorRunnerMkg", "ConnectorRuntimeSDK", "connector", "connectorSDK", "config", "tableIdentifier", "configOrTrue", "table", "MKG_TABLES", "ExtractorService", "#mkgHttpClient", "#requestOptionsFormatter", "options", "SESSION_COOKIE_NAME", "#getSessionCookie", "#sessionTokenHttpClient", "#actionsHandler", "ActionsHandler", "#sessionToken", "j_username", "j_password", "token", "response", "sessionCookie", "cookie", "sessionToken", "SESSION_EXPIRATION_SECONDS"]
|
|
7
7
|
}
|
|
@@ -9,6 +9,6 @@ export interface ReceiverSDKInterface {
|
|
|
9
9
|
readonly internalServerError: KafkaCallbackResponseType;
|
|
10
10
|
};
|
|
11
11
|
registerCallback<T extends XodJobType = XodJobType>(callbackFunction: (message: T) => Promise<KafkaCallbackResponse>, eventType?: string, identifier?: string): void;
|
|
12
|
-
getActionConfig(message: XodJobType): ActionInterface | null
|
|
12
|
+
getActionConfig(message: XodJobType): Promise<ActionInterface | null>;
|
|
13
13
|
emitEventType<T extends XodJobType = XodJobType>(callbackFunction: (message: T) => Promise<KafkaCallbackResponse>): (message: T) => Promise<KafkaCallbackResponse>;
|
|
14
14
|
}
|
|
@@ -25,7 +25,7 @@ export interface WorkflowRunInterface {
|
|
|
25
25
|
workflow: WorkflowDefinition;
|
|
26
26
|
drawing?: WorkflowDrawing;
|
|
27
27
|
trigger: EventInterface;
|
|
28
|
-
jobs: Array<ActionJob | ConditionalJob | ValidationJob
|
|
28
|
+
jobs: Array<ActionJob | ConditionalJob | ValidationJob>;
|
|
29
29
|
createdAt: Date;
|
|
30
30
|
updatedAt: Date;
|
|
31
31
|
testRun?: boolean;
|
|
@@ -53,10 +53,6 @@ export interface ActionJob extends WorkflowJobInterface {
|
|
|
53
53
|
type: NodeTypes.ACTION;
|
|
54
54
|
with: MessageMapper;
|
|
55
55
|
}
|
|
56
|
-
export interface AgentJob extends WorkflowJobInterface {
|
|
57
|
-
type: NodeTypes.AGENT;
|
|
58
|
-
with: MessageMapper;
|
|
59
|
-
}
|
|
60
56
|
export interface ConditionalJob extends WorkflowJobInterface {
|
|
61
57
|
type: NodeTypes.CONDITIONAL;
|
|
62
58
|
with: ConditionMapper;
|
|
@@ -3,7 +3,6 @@ import { ConditionMapper, MessageMapper } from './workflow-definition.interface'
|
|
|
3
3
|
export declare enum NodeTypes {
|
|
4
4
|
TRIGGER = "TRIGGER",
|
|
5
5
|
ACTION = "ACTION",
|
|
6
|
-
AGENT = "AGENT",
|
|
7
6
|
CONDITIONAL = "CONDITIONAL",
|
|
8
7
|
VALIDATION = "VALIDATION",
|
|
9
8
|
ANNOTATION = "ANNOTATION",
|
|
@@ -36,13 +35,6 @@ export interface ActionNode extends Node {
|
|
|
36
35
|
};
|
|
37
36
|
with: MessageMapper;
|
|
38
37
|
}
|
|
39
|
-
export interface AgentNode extends Node {
|
|
40
|
-
type: NodeTypes.AGENT;
|
|
41
|
-
agent: {
|
|
42
|
-
identifier: string;
|
|
43
|
-
};
|
|
44
|
-
with: MessageMapper;
|
|
45
|
-
}
|
|
46
38
|
export interface TriggerNode extends Node {
|
|
47
39
|
type: NodeTypes.TRIGGER;
|
|
48
40
|
trigger: {
|
|
@@ -72,7 +64,7 @@ export interface PlaceholderNode extends Node {
|
|
|
72
64
|
export interface InvisibleNode extends Node {
|
|
73
65
|
type: NodeTypes.INVISIBLE;
|
|
74
66
|
}
|
|
75
|
-
export type WorkflowNode = ActionNode |
|
|
67
|
+
export type WorkflowNode = ActionNode | ConditionalNode | AnnotationNode | PlaceholderNode | ValidationNode | EndNode | InvisibleNode;
|
|
76
68
|
export interface Edge {
|
|
77
69
|
id: string;
|
|
78
70
|
source: {
|