@obe-loms/coms-parser 1.4.7 → 1.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/bundle.js
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as
|
|
1
|
+
import _0x356038 from 'papaparse';
|
|
2
|
+
import * as _0x1be57f from 'xlsx';
|
|
3
3
|
|
|
4
|
-
function parseCurriculum(
|
|
4
|
+
function parseCurriculum(_0x25e63a){let _0x1dce83='',_0x25d523='',_0x40756f=0x0,_0x24c608=null;const _0x827cda=[];return _0x356038['parse'](_0x25e63a,{'skipEmptyLines':!![],'complete':_0x34f196=>{_0x34f196['data']['forEach'](_0x31be00=>{const _0x61c628=_0x31be00['map'](_0x18748d=>(_0x18748d??'')['toString']()['trim']()),_0x2a3a77=_0x61c628[0x0]??'';if(_0x2a3a77['includes']('Rev#')){const _0x4de2b8=_0x2a3a77['match'](/([A-Z0-9]+)\s*-\s*.*:\s*(.*?)\s+Rev#\s*(\d+)/i);_0x4de2b8&&(_0x1dce83=_0x4de2b8[0x1]?.['trim']()??'',_0x25d523=_0x4de2b8[0x2]?.['trim']()??'',_0x40756f=parseInt(_0x4de2b8[0x3]??'0',0xa));return;}if(/FIRST YEAR/i['test'](_0x2a3a77)){_0x24c608=0x1;return;}if(/SECOND YEAR/i['test'](_0x2a3a77)){_0x24c608=0x2;return;}if(/THIRD YEAR/i['test'](_0x2a3a77)){_0x24c608=0x3;return;}if(/FOURTH YEAR/i['test'](_0x2a3a77)){_0x24c608=0x4;return;}if(/FIFTH YEAR/i['test'](_0x2a3a77)){_0x24c608=0x5;return;}if(/First Semester/i['test'](_0x2a3a77)||/Second Semester/i['test'](_0x2a3a77)||/Summer/i['test'](_0x2a3a77))return;const _0x507509=[{'sem':0x1,'offset':0x0},{'sem':0x2,'offset':0x6},{'sem':0x3,'offset':0xc}];_0x507509['forEach'](({sem:_0x3cf990,offset:_0x40a880})=>{const _0xebda12=_0x61c628[_0x40a880]??'',_0x47b730=_0x61c628[_0x40a880+0x1]??'',_0x42037e=_0x61c628[_0x40a880+0x2]??'',_0x47dcc1=_0x61c628[_0x40a880+0x3]??'',_0x122c8a=_0x61c628[_0x40a880+0x4]??'';_0xebda12&&_0x24c608&&_0x827cda['push']({'curr_id':_0x1dce83,'program_name':_0x25d523,'revision_no':_0x40756f,'year_level':_0x24c608,'sem':_0x3cf990,'course_id':_0xebda12,'course_desc':_0x47b730,'total_units':_0x42037e,'lec_unit':_0x47dcc1,'lab_unit':_0x122c8a});});});}}),_0x827cda;}
|
|
5
5
|
|
|
6
|
-
function convertToCSVFile(
|
|
6
|
+
function convertToCSVFile(_0x4b0626,_0x13b96a){return new Promise((_0x348835,_0x25f84a)=>{const _0x571925=new FileReader();_0x571925['onload']=_0x4a4b75=>{const _0x25b35f=_0x4a4b75['target']?.['result'];if(!_0x25b35f){_0x25f84a(new Error('Failed\x20to\x20read\x20file'));return;}try{const _0x1f305c=_0x1be57f['read'](_0x25b35f,{'type':'array'});!_0x13b96a&&(_0x13b96a=_0x1f305c['SheetNames'][0x0]);if(!_0x13b96a){_0x25f84a(new Error('No\x20sheets\x20found\x20in\x20workbook'));return;}const _0x3d35dc=_0x1f305c['Sheets'][_0x13b96a];if(!_0x3d35dc){_0x25f84a(new Error('No\x20sheets\x20found\x20in\x20worksheet'));return;}const _0x2ac75d=_0x1be57f['utils']['sheet_to_csv'](_0x3d35dc,{'strip':!![]}),_0x25091e=_0x4b0626['name']['replace'](/\.[^/.]+$/,'.csv'),_0x28cfaf=new File([_0x2ac75d],_0x25091e,{'type':'text/csv','lastModified':Date['now']()});_0x348835(_0x28cfaf);}catch(_0x931804){_0x25f84a(_0x931804);}},_0x571925['onerror']=()=>{_0x25f84a(new Error('File\x20reading\x20failed'));},_0x571925['readAsArrayBuffer'](_0x4b0626);});}
|
|
7
7
|
|
|
8
|
-
async function uploadCurriculum(
|
|
8
|
+
async function uploadCurriculum(_0x5693a2,_0x326251){try{const _0x319cda=await convertToCSVFile(_0x326251),_0x17d1ea=await _0x319cda['text'](),_0x5655f9=parseCurriculum(_0x17d1ea),_0x3e4bcf=_0x356038['unparse'](_0x5655f9),_0x2a26ea=new File([_0x3e4bcf],_0x319cda['name'],{'type':'text/csv'}),_0x1ef081=new FormData();_0x1ef081['append']('csvFile',_0x2a26ea);const _0x45d545=await fetch(_0x5693a2+'/curr-courses/upload',{'method':'POST','body':_0x1ef081});if(!_0x45d545['ok']){const _0x17633f=await _0x45d545['json']();throw _0x17633f;}return _0x45d545['json']();}catch(_0x4f3c2a){throw _0x4f3c2a;}}
|
|
9
9
|
|
|
10
|
-
function parseCourseOffering(
|
|
10
|
+
function parseCourseOffering(_0x9b9ee5){let _0x350341='',_0x6b29a1='';const _0x5db252=[],_0x4ed52d=_0x356038['parse'](_0x9b9ee5,{'header':![],'skipEmptyLines':!![],'delimiter':','}),_0x506b6d=_0x4ed52d['data'];for(let _0x3393f4=0x0;_0x3393f4<Math['min'](0x5,_0x506b6d['length']);_0x3393f4++){const _0x112cbb=_0x506b6d[_0x3393f4];if(_0x112cbb&&_0x112cbb['length']>0x0){const _0x5c2384=_0x112cbb[0x0]?.['toString']()||'',_0x206667=_0x5c2384['match'](/(First|Second)\s+Sem\s+S\/Y\s+(\d{4}-\d{4})/i);if(_0x206667){_0x350341=_0x206667[0x1]?.['toLowerCase']()==='first'?'1':'2';if(_0x206667[0x2]){const _0x2eb19b=_0x206667[0x2]['match'](/(\d{2})(\d{2})-(\d{2})(\d{2})/);_0x2eb19b&&_0x2eb19b[0x2]&&_0x2eb19b[0x4]&&(_0x6b29a1=_0x2eb19b[0x2]+_0x2eb19b[0x4]);}}}}let _0x39250e=-1;for(let _0x4d3508=0x0;_0x4d3508<_0x506b6d['length'];_0x4d3508++){const _0x4b0356=_0x506b6d[_0x4d3508];if(_0x4b0356&&_0x4b0356['some'](_0x43cb81=>_0x43cb81?.['toString']()['toUpperCase']()['includes']('CODE'))){_0x39250e=_0x4d3508;break;}}if(_0x39250e===-1)throw new Error('Could\x20not\x20find\x20header\x20row\x20in\x20CSV\x20data');let _0x27450c={'code':'','description':'','unit':0x0};for(let _0x2e7d16=_0x39250e+0x1;_0x2e7d16<_0x506b6d['length'];_0x2e7d16++){const _0x303586=_0x506b6d[_0x2e7d16];if(!_0x303586||_0x303586['length']<0x8)continue;const _0x45dc71=_0x303586[0x1]?.['toString']()['trim']()||'',_0x555dce=_0x303586[0x4]?.['toString']()['trim']()||'',_0x2424ea=_0x303586[0x5]?.['toString']()['trim']()||'',_0x1e7691=_0x303586[0x6]?.['toString']()['trim']()||'',_0x4dd43d=_0x303586[0x7]?.['toString']()['trim']()||'',_0x2e661a=_0x303586[0x3]?.['toString']()['trim']()||'';let _0x17cecf=_0x303586[0x0]?.['toString']()['trim']()||'',_0xbafe84=_0x303586[0x2]?.['toString']()['trim']()||'';if(!_0x45dc71)continue;if(!_0x17cecf)_0x17cecf=_0x27450c['code'];if(!_0xbafe84)_0xbafe84=_0x27450c['description'];let _0x5e1844=_0x27450c['unit'];if(_0x2e661a){const _0x38e07a=_0x2e661a['match'](/(\d+)/);_0x38e07a&&_0x38e07a[0x1]&&(_0x5e1844=parseInt(_0x38e07a[0x1],0xa));}const _0x4398e6={'sem':_0x350341,'school_year':_0x6b29a1,'code':_0x17cecf,'course_no':_0x45dc71,'course_desc':_0xbafe84,'unit':_0x5e1844,'time':_0x555dce,'days':_0x2424ea,'faculty':_0x1e7691,'room':_0x4dd43d};_0x27450c['code']=_0x17cecf,_0x27450c['description']=_0xbafe84,_0x27450c['unit']=_0x5e1844,_0x5db252['push'](_0x4398e6);}return _0x5db252;}
|
|
11
11
|
|
|
12
|
-
async function uploadCourseOffering(
|
|
12
|
+
async function uploadCourseOffering(_0x1edd26,_0x271ceb){try{const _0x3b4c1a=await convertToCSVFile(_0x271ceb),_0xbfcdd9=await _0x3b4c1a['text'](),_0x514c95=parseCourseOffering(_0xbfcdd9),_0x40e10f=_0x356038['unparse'](_0x514c95),_0x77f442=new File([_0x40e10f],_0x3b4c1a['name'],{'type':'text/csv'}),_0x1c6f84=new FormData();_0x1c6f84['append']('csvFile',_0x77f442);const _0x20fb63=await fetch(_0x1edd26+'/course-offerings/upload',{'method':'POST','body':_0x1c6f84});if(!_0x20fb63['ok']){const _0x19e1b7=await _0x20fb63['json']();throw _0x19e1b7;}return _0x20fb63['json']();}catch(_0x27987d){throw _0x27987d;}}
|
|
13
13
|
|
|
14
|
-
function performaceTarget(
|
|
14
|
+
function performaceTarget(_0x1d1780){if(!_0x1d1780)return {'performance_target':null,'passing_score':null};const _0x48cc42=_0x1d1780['match'](/\d+/g);return {'performance_target':_0x48cc42?.[0x0]?parseInt(_0x48cc42[0x0],0xa):null,'passing_score':_0x48cc42?.[0x1]?parseInt(_0x48cc42[0x1],0xa):null};}
|
|
15
15
|
|
|
16
|
-
function
|
|
16
|
+
const HEADERS$1={'co':['course\x20outcome','co\x20statement','outcome\x20statement'],'ilo':['intended\x20learning','ilo','learning\x20outcome'],'assessTool':['assessment\x20tool','assessment\x20method','tool'],'perfTarget':['performance\x20target','target','passing']};function getCoaepHeader(_0x397e58){let _0x323a20={'headerRowIndex':-1,'coIdx':-1,'iloIdx':-1,'assessToolIdx':-1,'perfTargetIdx':-1};for(let _0x56720e=0x0;_0x56720e<Math['min'](_0x397e58['length'],0x14);_0x56720e++){const _0x39f84a=(_0x397e58[_0x56720e]??[])['map'](_0x15fb3c=>_0x15fb3c['toLowerCase']()['trim']()),_0xf07bf0=_0x39f84a['findIndex'](_0x429a44=>HEADERS$1['co']['some'](_0x4b04e2=>_0x429a44['includes'](_0x4b04e2))),_0x297b3a=_0x39f84a['findIndex'](_0x5114a5=>HEADERS$1['ilo']['some'](_0x3c03a4=>_0x5114a5['includes'](_0x3c03a4))),_0x249cc9=_0x39f84a['findIndex'](_0x39918e=>HEADERS$1['assessTool']['some'](_0x136280=>_0x39918e['includes'](_0x136280))),_0x2a5c3e=_0x39f84a['findIndex'](_0x23cac8=>HEADERS$1['perfTarget']['some'](_0x43e4b3=>_0x23cac8['includes'](_0x43e4b3))),_0x5d84af=[_0xf07bf0,_0x297b3a,_0x249cc9,_0x2a5c3e]['filter'](_0x44854e=>_0x44854e!==-1)['length'];if(_0x5d84af>=0x3){_0x323a20={'headerRowIndex':_0x56720e,'coIdx':_0xf07bf0,'iloIdx':_0x297b3a,'assessToolIdx':_0x249cc9,'perfTargetIdx':_0x2a5c3e};break;}}return _0x323a20;}
|
|
17
17
|
|
|
18
|
-
const
|
|
18
|
+
function extractFromObjective(_0x56352c){const _0x1f999e={'cognitive_level':null,'taxonomy_level':null,'verb':null},_0x424ddb=/(?:\(([IED])\))?\s*(\w+)\s*:\s*(\w+)/,_0x5c27bf=_0x56352c['match'](_0x424ddb);if(_0x5c27bf){if(_0x5c27bf[0x1])_0x1f999e['cognitive_level']=_0x5c27bf[0x1];if(_0x5c27bf[0x2])_0x1f999e['taxonomy_level']=_0x5c27bf[0x2]['toLowerCase']();if(_0x5c27bf[0x3])_0x1f999e['verb']=_0x5c27bf[0x3]['toLowerCase']();}return _0x1f999e;}
|
|
19
19
|
|
|
20
|
-
function parseCOAEP(
|
|
20
|
+
function parseCOAEP(_0x11faa5){const _0x1b4e90=_0x356038['parse'](_0x11faa5,{'skipEmptyLines':![]})['data'],_0xfa7fff={'COAEP':{'faculty':null,'course':null,'sy':null,'semester':null,'co':[]}},{headerRowIndex:_0x3f3345,coIdx:_0x20e4fc,iloIdx:_0x43d752,assessToolIdx:_0x323f36,perfTargetIdx:_0xa6e197}=getCoaepHeader(_0x1b4e90);if(_0x3f3345===-1)return {'error':'Could\x20not\x20auto-detect\x20header\x20row.','message':'Please\x20ensure\x20the\x20CSV\x20file\x20is\x20in\x20the\x20correct\x20COAEP\x20format.'};_0x1b4e90['forEach'](_0x273470=>{const _0x5e13af=_0x273470['indexOf']('Name\x20of\x20Faculty:'),_0x538599=_0x273470['indexOf']('School\x20Year'),_0x3e5d07=_0x273470['indexOf']('Course:'),_0x4e8a60=_0x273470['indexOf']('Semester');_0x5e13af!==-1&&(_0xfa7fff['COAEP']['faculty']=_0x273470[_0x5e13af+0x1]?.['trim']()||_0xfa7fff['COAEP']['faculty']);_0x538599!==-1&&(_0xfa7fff['COAEP']['sy']=_0x273470[_0x538599+0x1]?.['trim']()||_0xfa7fff['COAEP']['sy']);_0x3e5d07!==-1&&(_0xfa7fff['COAEP']['course']=_0x273470[_0x3e5d07+0x1]?.['trim']()||_0xfa7fff['COAEP']['course']);if(_0x4e8a60!==-1){const _0x579ccb=_0x273470[_0x4e8a60+0x1]?.['trim']()||'',_0x446c45=_0x579ccb['match'](/\d+/)?.[0x0];_0xfa7fff['COAEP']['semester']=_0x446c45?parseInt(_0x446c45,0xa):_0xfa7fff['COAEP']['semester'];}});let _0x315b25=null;return _0x1b4e90['forEach']((_0xe09207,_0x1e812e)=>{if(_0x1e812e<=_0x3f3345)return;let _0x136a31=_0xe09207[_0x20e4fc-0x1]?.['trim']()||'',_0x500d82=_0xe09207[_0x20e4fc]?.['trim']()||'';/^\d+$/['test'](_0xe09207[_0x20e4fc]?.['trim']()||'')&&(_0x136a31=_0xe09207[_0x20e4fc]?.['trim']()||'',_0x500d82=_0xe09207[_0x20e4fc+0x1]?.['trim']()||'');const _0x38a8bf=_0xe09207[_0x43d752]?.['trim']()||'',_0x35670=_0xe09207[_0x323f36]?.['replace'](/^ILO\d+[:.]?\s*/,'')['trim']()||'',_0x3b5c89=_0xe09207[_0xa6e197]?.['replace'](/\s+/g,'\x20')['trim']()||'';if(_0x136a31&&/^\d+$/['test'](_0x136a31)){_0x315b25&&_0xfa7fff['COAEP']['co']['push'](_0x315b25);const _0x3450fc=_0x500d82,{verb:_0x25a13e,cognitive_level:_0x818c7d,taxonomy_level:_0x57a12e}=extractFromObjective(_0x3450fc);_0x315b25={'statement':_0x3450fc,'ilo':[],'verb':_0x25a13e,'cognitive_level':_0x818c7d,'taxonomy_level':_0x57a12e};}if(_0x315b25&&_0x38a8bf&&_0x3b5c89){const _0x39072c=_0x38a8bf['replace'](/^ILO\d+[:.]?\s*/,'');if(_0x39072c['match'](/^(Revision|Prepared|Date|Approved|Effectivity|Page)/i)||_0x39072c['length']<0xa)return;let _0x316bc2=_0x35670;if(!_0x316bc2&&_0x39072c['includes'](':')){const _0x56b699=_0x39072c['match'](/^ILO\d+:\s*(.+?)(?:\s*\(|$)/);_0x56b699&&(_0x316bc2=_0x56b699[0x1]?.['trim']()||'');}const {performance_target:_0xaa680c,passing_score:_0x35f5dd}=performaceTarget(_0x3b5c89),{verb:_0x4e974c,cognitive_level:_0x38e237,taxonomy_level:_0x401dc6}=extractFromObjective(_0x39072c);_0x315b25['ilo']['push']({'statement':_0x39072c,'assessment_tool':_0x316bc2,'performance_target':_0xaa680c,'passing_score':_0x35f5dd,'verb':_0x4e974c,'cognitive_level':_0x38e237,'taxonomy_level':_0x401dc6});}}),_0x315b25&&_0xfa7fff['COAEP']['co']['push'](_0x315b25),_0xfa7fff;}
|
|
21
21
|
|
|
22
|
-
async function uploadCOAEP(
|
|
22
|
+
async function uploadCOAEP(_0x4412b8,_0x32882f,_0x31e8dd){try{const _0x4012d1=await convertToCSVFile(_0x32882f),_0x3e6281=await _0x4012d1['text'](),_0x43cbf3=parseCOAEP(_0x3e6281);console['log'](_0x43cbf3);const _0x29f031=await fetch(_0x4412b8+'/coaeps/upload?course_id='+_0x31e8dd,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x43cbf3)});if(!_0x29f031['ok']){const _0x127731=await _0x29f031['json']();throw _0x127731;}return _0x29f031['json']();}catch(_0x54aa08){throw _0x54aa08;}}
|
|
23
23
|
|
|
24
|
-
async function uploadEnrolledStudent(
|
|
24
|
+
async function uploadEnrolledStudent(_0x8e0c72,_0x2217c6){try{const _0x872736=await convertToCSVFile(_0x2217c6),_0x1f794f=new FormData();_0x1f794f['append']('csvFile',_0x872736);const _0x5827b2=await fetch(_0x8e0c72+'/enrolled-students/upload',{'method':'POST','body':_0x1f794f});if(!_0x5827b2['ok']){const _0x1f9530=await _0x5827b2['json']();throw _0x1f9530;}return _0x5827b2['json']();}catch(_0x8acc74){throw _0x8acc74;}}
|
|
25
25
|
|
|
26
|
-
function parseClassList(
|
|
26
|
+
function parseClassList(_0x1c1115){const _0x4a544d=_0x356038['parse'](_0x1c1115,{'skipEmptyLines':!![]})['data'];let _0x533406='',_0x2b2e64='',_0x15e10b='';const _0x539999=[];return _0x4a544d['forEach'](_0xd9fb53=>{const _0x115c82=_0xd9fb53['map'](_0x493558=>(_0x493558??'')['toString']()['trim']()),_0x20e627=_0x115c82[0x0]??'';if(_0x20e627['startsWith']('Course\x20No:')){const _0x5aa272=_0x20e627['replace']('Course\x20No:','')['trim'](),_0x41841f=_0x5aa272['split'](/\s+/);_0x15e10b=_0x41841f[0x0]??'';const [_0x137844,_0x5f1909]=(_0x41841f[0x1]??'')['split']('-');_0x2b2e64=_0x137844??'';const _0x142ef7=(_0x5f1909??'')['match'](/[a-z]$/);_0x533406=_0x142ef7?_0x142ef7[0x0]:'';}if(/^\d+$/['test'](_0x20e627)){const _0x1af11f=_0x115c82[0x2]??'';_0x539999['push']({'subj_code':_0x15e10b,'student_no':_0x1af11f,'course_id':_0x2b2e64,'section':_0x533406});}}),{'enrolledCourses':_0x539999};}
|
|
27
27
|
|
|
28
|
-
async function uploadClassList(
|
|
28
|
+
async function uploadClassList(_0x2c9f94,_0x5770a2,_0x5f2adf,_0x95cf99){try{const _0x584485=await convertToCSVFile(_0x5770a2),_0x362d28=await _0x584485['text'](),_0x4d30da=parseClassList(_0x362d28),_0x142f1d='subj_code='+_0x5f2adf+'&period_id='+_0x95cf99,_0x3dab69=await fetch(_0x2c9f94+'/enrolled-courses/upload?'+_0x142f1d,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4d30da)});if(!_0x3dab69['ok']){const _0x2a5af3=await _0x3dab69['json']();throw _0x2a5af3;}return _0x3dab69['json']();}catch(_0x4e568d){throw _0x4e568d;}}
|
|
29
29
|
|
|
30
|
-
function parseAssessmentCsv(
|
|
30
|
+
function parseAssessmentCsv(_0x25d76a){const {data:_0xe4824c}=_0x356038['parse'](_0x25d76a,{'skipEmptyLines':!![]}),_0xe64030=_0xe4824c['filter'](_0xdc7ff7=>_0xdc7ff7['length']>0x0),_0x3ffaa3=_0xe64030['find'](_0x18bd13=>_0x18bd13['some'](_0xc86165=>_0xc86165?.['includes']('Faculty'))),_0x530676=_0x3ffaa3?_0x3ffaa3['findIndex'](_0x345587=>_0x345587?.['includes']('Faculty')):-1,_0x3d51c0=_0x530676!==-1&&_0x3ffaa3?_0x3ffaa3[_0x530676+0x2]?.['replace'](/"/g,'')['trim']()??'':'',_0x48ad40=_0xe64030['find'](_0x8bc86a=>_0x8bc86a['some'](_0x33477f=>_0x33477f?.['includes']('Semester'))),_0x3e86bd=_0x48ad40?_0x48ad40['findIndex'](_0x46860a=>_0x46860a?.['includes']('Semester')):-1,_0x511e25=_0x3e86bd!==-1&&_0x48ad40?_0x48ad40[_0x3e86bd+0x2]?.['trim']()??'':'',_0x271dde=_0x511e25['includes']('1st')?0x1:_0x511e25['includes']('2nd')?0x2:0x0,_0x5cd031=_0xe64030['find'](_0xa7621d=>_0xa7621d['some'](_0x4a3b38=>_0x4a3b38?.['includes']('Course\x20&\x20Sec'))),_0x197512=_0x5cd031?_0x5cd031['findIndex'](_0x2b1074=>_0x2b1074?.['includes']('Course\x20&\x20Sec')):-1,_0x1daf2f=_0x197512!==-1&&_0x5cd031?_0x5cd031[_0x197512+0x2]?.['trim']()??'':'';let _0x36950d='',_0x393e83='';if(_0x1daf2f){const _0x596f40=_0x1daf2f['match'](/^([A-Za-z0-9]+)-?([A-Za-z]+)?/);_0x596f40&&(_0x36950d=_0x596f40[0x1]??'',_0x596f40[0x2]&&(_0x393e83=_0x596f40[0x2]['replace'](/^OC/i,'')));}const _0x532f8f=_0xe64030['find'](_0x3c7e34=>_0x3c7e34['some'](_0x9194b3=>_0x9194b3?.['includes']('School\x20Year'))),_0xb5aad5=_0x532f8f?_0x532f8f['findIndex'](_0x5b4fe8=>_0x5b4fe8?.['includes']('School\x20Year')):-1,_0x53572a=_0xb5aad5!==-1&&_0x532f8f?_0x532f8f[_0xb5aad5+0x2]?.['trim']()??'':'';let _0x156b43=0x0;if(_0x53572a){const _0xc5dbd2=_0x53572a['match'](/(\d{4})-(\d{4})/);if(_0xc5dbd2){const _0xcafac6=(_0xc5dbd2[0x1]??'')['slice'](0x2),_0x53ffc8=(_0xc5dbd2[0x2]??'')['slice'](0x2);_0x156b43=parseInt(_0xcafac6+_0x53ffc8,0xa);}}const _0x4b059b={'faculty':_0x3d51c0,'course':_0x36950d,'section':_0x393e83,'semester':_0x271dde,'sy':_0x156b43},_0x26a4cc=_0xe64030['findIndex'](_0x7e73d6=>_0x7e73d6['some'](_0x558d75=>_0x558d75?.['trim']()==='CO\x20#'));if(_0x26a4cc===-1)throw new Error('CO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x2c87cf=_0xe64030[_0x26a4cc+0x1];if(!_0x2c87cf)throw new Error('ILO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x1abab0={};let _0x4ec131=0x1,_0x58900e=0x1;for(let _0x2c9a67=0x3;_0x2c9a67<_0x2c87cf['length'];_0x2c9a67++){const _0x1c6343=_0x2c87cf[_0x2c9a67];if(!_0x1c6343)continue;const _0x159004='co'+_0x4ec131;if(!_0x1abab0[_0x159004])_0x1abab0[_0x159004]=[];_0x1abab0[_0x159004]['push']('ilo'+_0x58900e),_0x58900e++,_0x58900e>0x3&&(_0x4ec131++,_0x58900e=0x1);}const _0xe46d34=_0xe64030['findIndex'](_0x2ab5a3=>_0x2ab5a3['includes']('Name\x20of\x20Students'));if(_0xe46d34===-1)throw new Error('Student\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x209976=_0xe64030[_0xe46d34];if(!_0x209976)throw new Error('Student\x20header\x20row\x20is\x20missing');const _0x46f1c5=_0x209976['findIndex'](_0x58e01b=>_0x58e01b?.['includes']('Name\x20of\x20Students'));if(_0x46f1c5===-1)throw new Error('Name\x20of\x20Students\x20column\x20not\x20found\x20in\x20CSV');const _0x2594cf=_0x46f1c5+0x2,_0x1d7f7d=[];for(let _0x30ea36=_0xe46d34+0x1;_0x30ea36<_0xe64030['length'];_0x30ea36++){const _0x531d45=_0xe64030[_0x30ea36];if(!_0x531d45)continue;if(_0x531d45['some'](_0x394ff1=>_0x394ff1?.['toUpperCase']()['includes']('TOTAL\x20STUDENTS')||_0x394ff1?.['toUpperCase']()['includes']('ACHIEVED\x20THE\x20MINIMUM')||_0x394ff1?.['toUpperCase']()['includes']('INACTIVE')||_0x394ff1?.['toUpperCase']()['includes']('AVERAGE')))continue;if(!_0x531d45[_0x46f1c5])continue;const _0x1c39ab=_0x531d45[_0x46f1c5]['replace'](/"/g,'')['trim'](),_0x366f4a=_0x531d45['slice'](_0x2594cf)['map'](_0xedfb41=>_0xedfb41===null?null:!isNaN(Number(_0xedfb41))?parseFloat(_0xedfb41):0x0);let _0x4fd23e=0x0;const _0x149e1f={};Object['entries'](_0x1abab0)['forEach'](([_0x1d8b78,_0x2526e9])=>{const _0x143db4={};_0x2526e9['forEach'](_0x573694=>{_0x143db4[_0x573694]=_0x366f4a[_0x4fd23e]??0x0,_0x4fd23e++;}),_0x149e1f[_0x1d8b78]={'transmuted_score':_0x143db4};}),_0x1d7f7d['push']({'student_name':_0x1c39ab,'coaep':_0x149e1f});}const _0x569c23=_0xe64030['find'](_0x2f1eea=>_0x2f1eea['some'](_0x41dad0=>_0x41dad0?.['includes']('ACHIEVED\x20THE\x20MINIMUM'))),_0x28c103=_0xe64030['find'](_0x435730=>_0x435730['some'](_0x49efe7=>_0x49efe7?.['includes']('AVERAGE'))),_0x8941e4=_0x569c23?_0x569c23['slice'](_0x2594cf)['map'](_0x124e4f=>_0x124e4f&&!isNaN(Number(_0x124e4f))?parseInt(_0x124e4f):0x0):[],_0x37e15b=_0x28c103?_0x28c103['slice'](_0x2594cf)['map'](_0x5c96ab=>_0x5c96ab&&_0x5c96ab!=='#DIV/0!'&&!isNaN(Number(_0x5c96ab))?parseInt(_0x5c96ab):0x0):[],_0x186c77={};let _0xeaa60c=0x0;return Object['entries'](_0x1abab0)['forEach'](([_0x1e171e,_0x5ed336])=>{if(!_0x186c77[_0x1e171e])_0x186c77[_0x1e171e]={};_0x5ed336['forEach'](_0xd46aac=>{_0x186c77[_0x1e171e][_0xd46aac]={'achievedMinimum':_0x8941e4[_0xeaa60c]??0x0,'average':_0x37e15b[_0xeaa60c]??0x0},_0xeaa60c++;});}),{'assessmentData':{'classAssignment':_0x4b059b,'student':_0x1d7f7d,'total':_0x186c77}};}
|
|
31
31
|
|
|
32
|
-
async function uploadAssessmentData(
|
|
32
|
+
async function uploadAssessmentData(_0x5c7814,_0x2958d0){try{const _0x14f897=await convertToCSVFile(_0x2958d0),_0x236004=await _0x14f897['text'](),_0x545fda=parseAssessmentCsv(_0x236004),_0x58695a=await fetch(_0x5c7814+'/assessment-data/upload',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x545fda)});if(!_0x58695a['ok']){const _0x103bea=await _0x58695a['json']();throw _0x103bea;}return _0x58695a['json']();}catch(_0xbaa903){throw _0xbaa903;}}
|
|
33
33
|
|
|
34
|
-
async function uploadDeptFaculty(
|
|
34
|
+
async function uploadDeptFaculty(_0x2085d9,_0x169459){try{const _0x7d6b20=await convertToCSVFile(_0x169459),_0x188c8c=new FormData();_0x188c8c['append']('csvFile',_0x7d6b20);const _0x11693b=await fetch(_0x2085d9+'/dept-faculties/upload',{'method':'POST','body':_0x188c8c});if(!_0x11693b['ok']){const _0x5e656a=await _0x11693b['json']();throw _0x5e656a;}return _0x11693b['json']();}catch(_0x34b297){throw _0x34b297;}}
|
|
35
35
|
|
|
36
|
-
const HEADERS={'po':['program\x20outcome','po\x20statement','outcome\x20statement'],'tl':['taxonomy','level'],'pi':['performance\x20indicator'],'fc':['formative'],'sc':['summative'],'at':['assessment\x20tool','assessment\x20method','tool'],'pt':['performance\x20target','target','passing']};function getPoaepHeader(
|
|
36
|
+
const HEADERS={'po':['program\x20outcome','po\x20statement','outcome\x20statement'],'tl':['taxonomy','level'],'pi':['performance\x20indicator'],'fc':['formative'],'sc':['summative'],'at':['assessment\x20tool','assessment\x20method','tool'],'pt':['performance\x20target','target','passing']};function getPoaepHeader(_0x9885ef){let _0x27f4c3={'headerIdx':-1,'poIdx':-1,'tlIdx':-1,'piIdx':-1,'fcIdx':-1,'scIdx':-1,'atIdx':-1,'ptIdx':-1};for(let _0x4327eb=0x0;_0x4327eb<Math['min'](_0x9885ef['length'],0x14);_0x4327eb++){const _0x1f8555=(_0x9885ef[_0x4327eb]??[])['map'](_0x422610=>_0x422610['toLowerCase']()['trim']()),_0x3ae8b0=_0x1f8555['findIndex'](_0x23eb92=>HEADERS['po']['some'](_0x5572ce=>_0x23eb92['toLowerCase']()['includes'](_0x5572ce))),_0x1f34e6=_0x1f8555['findIndex'](_0x14a6c7=>HEADERS['tl']['some'](_0x2ed180=>_0x14a6c7['toLowerCase']()['includes'](_0x2ed180))),_0x5730f9=_0x1f8555['findIndex'](_0x265921=>HEADERS['pi']['some'](_0x23a392=>_0x265921['toLowerCase']()['includes'](_0x23a392))),_0x22758c=_0x1f8555['findIndex'](_0x2db339=>HEADERS['fc']['some'](_0x3787b8=>_0x2db339['toLowerCase']()['includes'](_0x3787b8))),_0x1d940f=_0x1f8555['findIndex'](_0x1bd960=>HEADERS['sc']['some'](_0x266fd0=>_0x1bd960['toLowerCase']()['includes'](_0x266fd0))),_0x25b472=_0x1f8555['findIndex'](_0x2b2444=>HEADERS['at']['some'](_0x4306a0=>_0x2b2444['toLowerCase']()['includes'](_0x4306a0))),_0x53870b=_0x1f8555['findIndex'](_0x4c7f87=>HEADERS['pt']['some'](_0x2c5ae7=>_0x4c7f87['toLowerCase']()['includes'](_0x2c5ae7))),_0x51fe20=[_0x3ae8b0,_0x1f34e6,_0x5730f9,_0x22758c,_0x1d940f,_0x25b472,_0x53870b]['filter'](_0xb37e6b=>_0xb37e6b!==-1)['length'];if(_0x51fe20>=0x3){_0x27f4c3={'headerIdx':_0x4327eb,'poIdx':_0x3ae8b0,'tlIdx':_0x1f34e6,'piIdx':_0x5730f9,'fcIdx':_0x22758c,'scIdx':_0x1d940f,'atIdx':_0x25b472,'ptIdx':_0x53870b};break;}}if(_0x27f4c3['headerIdx']===-1)throw new Error('No\x20valid\x20headers\x20found\x20in\x20POAEP\x20file.');return _0x27f4c3;}
|
|
37
37
|
|
|
38
|
-
const parseFormativeCourses=
|
|
38
|
+
const parseFormativeCourses=_0x3e81d3=>{let _0x4f4e65=_0x3e81d3['split'](',')['reduce']((_0x3d05ef,_0x58dea1)=>{const _0xb25148=_0x58dea1['trim']();if(_0xb25148)_0x3d05ef['push'](_0xb25148);return _0x3d05ef;},[]);return _0x4f4e65;};
|
|
39
39
|
|
|
40
|
-
const parsePOAEP=
|
|
40
|
+
const parsePOAEP=_0x5757d2=>{try{const _0x257348=_0x356038['parse'](_0x5757d2,{'skipEmptyLines':![]})['data'],{headerIdx:_0x5ad871,poIdx:_0x33c672,tlIdx:_0x244bf4,piIdx:_0x470586,fcIdx:_0x316c49,scIdx:_0x413b4c,atIdx:_0x443d48,ptIdx:_0x3eac0a}=getPoaepHeader(_0x257348),_0x42bbaa=[];let _0x4643db={'po_desc':'','seq_no':0x0,'PerfIndicators':[]},_0x21f6cb='',_0x4182cc='',_0x487d19='';for(let _0x1b0c7a=_0x5ad871+0x1;_0x1b0c7a<_0x257348['length'];_0x1b0c7a++){const _0x48c40c=_0x257348[_0x1b0c7a];if(!_0x48c40c)break;const _0x4d6385=_0x48c40c[_0x33c672]?.['trim']()||'';_0x4d6385!==''&&(_0x4643db={'po_desc':_0x4d6385,'seq_no':_0x4643db['seq_no']+0x1,'PerfIndicators':[]},_0x42bbaa['push'](_0x4643db),_0x21f6cb='',_0x4182cc='',_0x487d19='');if(_0x4643db['po_desc']==='')throw new Error('Invalid\x20Program\x20Outcome\x20at\x20row\x20'+_0x1b0c7a+'.');const _0x4c1dc7=_0x48c40c[_0x470586]?.['trim']()||'';if(_0x4c1dc7==='')break;const _0x3b6933=_0x48c40c[_0x316c49]?.['trim']()||'';if(_0x3b6933==='')throw new Error('Empty\x20Formative\x20Courses\x20at\x20row\x20'+_0x1b0c7a+'.');const _0x4ad520=_0x48c40c[_0x413b4c]?.['trim']()||_0x21f6cb;if(_0x4ad520==='')throw new Error('Empty\x20Summative\x20Course\x20at\x20row\x20'+_0x1b0c7a+'.');_0x21f6cb=_0x4ad520;const _0x23938b=_0x48c40c[_0x443d48]?.['trim']()||_0x4182cc;if(_0x23938b==='')throw new Error('Empty\x20Assessment\x20Tool\x20at\x20row\x20'+_0x1b0c7a+'.');_0x4182cc=_0x23938b;const _0x515d5e=_0x48c40c[_0x3eac0a]?.['trim']()||_0x487d19;if(_0x515d5e==='')throw new Error('Empty\x20Performance\x20Target\x20at\x20row\x20'+_0x1b0c7a+'.');_0x487d19=_0x515d5e;const _0x36cca1=parseFormativeCourses(_0x3b6933);if(_0x36cca1['length']===0x0)throw new Error('Invalid\x20Formative\x20Courses\x20format\x20at\x20row\x20'+_0x1b0c7a+'.');const _0x4b9c62=performaceTarget(_0x515d5e);if(!_0x4b9c62['performance_target']||!_0x4b9c62['passing_score'])throw new Error('Invalid\x20Performance\x20Targets\x20format\x20at\x20row\x20'+_0x1b0c7a+'.');const _0x2a9ed4={'pi_desc':_0x4c1dc7,'FormativeCourses':_0x36cca1['map'](_0x526a9f=>({'course_id':_0x526a9f,'cognitive_level':0x0})),'SummativeCourse':{'course_id':_0x4ad520},'AssessmentTool':{'at_desc':_0x23938b},'PerformanceTargets':{'target_percent':_0x4b9c62['performance_target'],'min_score':_0x4b9c62['passing_score']}};_0x4643db['PerfIndicators']['push'](_0x2a9ed4);}return {'success':!![],'message':'Successfully\x20parsed\x20POAEP\x20file.','data':{'POAEP':_0x42bbaa}};}catch(_0x1357ce){return {'success':![],'error':_0x1357ce instanceof Error?_0x1357ce['message']:_0x1357ce,'message':'Please\x20ensure\x20the\x20file\x20follows\x20the\x20POAEP\x20template.'};}};
|
|
41
41
|
|
|
42
|
-
async function uploadPOAEP(
|
|
42
|
+
async function uploadPOAEP(_0x3f1925,_0x5b8bfb,_0x48ac6c,_0x20edd4,_0x554525){try{const _0x149865=await convertToCSVFile(_0x5b8bfb),_0x3ae8b1=await _0x149865['text'](),_0x29c39a=parsePOAEP(_0x3ae8b1),_0x2012ad=await fetch(_0x3f1925+'/program-outcomes/poaep/upload?curr_id='+_0x20edd4+'&period_id='+_0x554525,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x48ac6c},'credentials':'include','body':JSON['stringify'](_0x29c39a)});if(!_0x2012ad['ok']){const _0x24c520=await _0x2012ad['json']();throw _0x24c520;}return _0x2012ad['json']();}catch(_0x4b9740){throw _0x4b9740;}}
|
|
43
43
|
|
|
44
|
-
const getAssessmentData=async
|
|
44
|
+
const getAssessmentData=async _0x973289=>{try{const _0x4686e4=await convertToCSVFile(_0x973289),_0x5e5f7=await _0x4686e4['text'](),_0xa8743c=parseAssessmentCsv(_0x5e5f7),_0x307f08={'success':!![],'message':'Successfully\x20parsed\x20Assessment\x20Data.','data':_0xa8743c};return Promise['resolve'](_0x307f08);}catch(_0x36b9c7){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Assessment\x20Data.','error':_0x36b9c7});}};
|
|
45
45
|
|
|
46
|
-
const getClassList=async
|
|
46
|
+
const getClassList=async _0x25e86f=>{try{const _0x28dd12=await convertToCSVFile(_0x25e86f),_0x882092=await _0x28dd12['text'](),_0x5185bf=parseClassList(_0x882092),_0x244048={'success':!![],'message':'Successfully\x20parsed\x20Class\x20List.','data':_0x5185bf};return Promise['resolve'](_0x244048);}catch(_0x54362c){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Assessment\x20Data.','error':_0x54362c});}};
|
|
47
47
|
|
|
48
|
-
async function getCOAEP(
|
|
48
|
+
async function getCOAEP(_0x4ca74c){try{const _0x4b8ce8=await convertToCSVFile(_0x4ca74c),_0x3da803=await _0x4b8ce8['text'](),_0x31e170=parseCOAEP(_0x3da803);if('error'in _0x31e170)return Promise['reject']({'success':![],'message':_0x31e170['message'],'error':_0x31e170['error']});const _0x52f658={'success':!![],'message':'Successfully\x20parsed\x20COAEP\x20Data.','data':_0x31e170};return Promise['resolve'](_0x52f658);}catch(_0x4f8132){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20COAEP\x20Data.','error':_0x4f8132});}}
|
|
49
49
|
|
|
50
|
-
const getCourseOffering=async
|
|
50
|
+
const getCourseOffering=async _0x5b1dba=>{try{const _0x3dcedd=await convertToCSVFile(_0x5b1dba),_0x17f876=await _0x3dcedd['text'](),_0x48f09f=parseCourseOffering(_0x17f876),_0x49818b={'success':!![],'message':'Successfully\x20parsed\x20Course\x20Offering.','data':{'courseOfferings':_0x48f09f}};return Promise['resolve'](_0x49818b);}catch(_0x40e6ec){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Course\x20Offering.','error':_0x40e6ec});}};
|
|
51
51
|
|
|
52
|
-
const getCurriculum=async
|
|
52
|
+
const getCurriculum=async _0x196748=>{try{const _0x1b932c=await convertToCSVFile(_0x196748),_0x10fe07=await _0x1b932c['text'](),_0x30c42c=parseCurriculum(_0x10fe07),_0x4c6eff={'success':!![],'message':'Successfully\x20parsed\x20Curriculum.','data':{'curriculums':_0x30c42c}};return Promise['resolve'](_0x4c6eff);}catch(_0x18ff2a){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Curriculum.','error':_0x18ff2a});}};
|
|
53
53
|
|
|
54
|
-
const getPOAEP=async
|
|
54
|
+
const getPOAEP=async _0x320628=>{try{const _0x115cc0=await convertToCSVFile(_0x320628),_0x307971=await _0x115cc0['text'](),_0x485289=parsePOAEP(_0x307971);if(!_0x485289['success'])return Promise['reject'](_0x485289);return Promise['resolve'](_0x485289);}catch(_0x5ddab1){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20POAEP.','error':_0x5ddab1});}};
|
|
55
55
|
|
|
56
|
-
const getDeptFaculty=async
|
|
56
|
+
const getDeptFaculty=async _0x580eb7=>{try{const _0x1d84b8=await convertToCSVFile(_0x580eb7),_0x4a054f=new FormData();_0x4a054f['append']('csvFile',_0x1d84b8);const _0x17e517={'success':!![],'message':'Successfully\x20parsed\x20Dept\x20Faculty.','data':{'body':_0x4a054f}};return Promise['resolve'](_0x17e517);}catch(_0x457d90){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Dept\x20Faculty.','error':_0x457d90});}};
|
|
57
57
|
|
|
58
|
-
const getEnrolledStudents=async
|
|
58
|
+
const getEnrolledStudents=async _0x4ef13b=>{try{const _0x4a9b0b=await convertToCSVFile(_0x4ef13b),_0xa0ece2=new FormData();_0xa0ece2['append']('csvFile',_0x4a9b0b);const _0x28e718={'success':!![],'message':'Successfully\x20parsed\x20Enrolled\x20Students.','data':{'body':_0xa0ece2}};return Promise['resolve'](_0x28e718);}catch(_0x2b159d){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Enrolled\x20Students.','error':_0x2b159d});}};
|
|
59
59
|
|
|
60
|
-
class Client{['BASE_URL'];constructor(
|
|
60
|
+
class Client{['BASE_URL'];constructor(_0x59b2e3){this['BASE_URL']=_0x59b2e3;}['Parser'](){return {'curriculum':async _0x39d632=>{const _0x11454f=await uploadCurriculum(this['BASE_URL'],_0x39d632);return _0x11454f;},'courseOffering':async _0x273886=>{const _0x5aba77=await uploadCourseOffering(this['BASE_URL'],_0x273886);return _0x5aba77;},'coaep':async(_0x5e0003,_0x7a2375)=>{const _0x1c721e=await uploadCOAEP(this['BASE_URL'],_0x5e0003,_0x7a2375);return _0x1c721e;},'enrolledStudent':async _0x5d3cdc=>{const _0x46e0ed=await uploadEnrolledStudent(this['BASE_URL'],_0x5d3cdc);return _0x46e0ed;},'classlist':async(_0x5d7235,_0xf1cdaf,_0x1fbca6)=>{const _0x2679f3=await uploadClassList(this['BASE_URL'],_0x5d7235,_0xf1cdaf,_0x1fbca6);return _0x2679f3;},'assessmentData':async _0x8d4ae3=>{const _0x189c3b=await uploadAssessmentData(this['BASE_URL'],_0x8d4ae3);return _0x189c3b;},'deptFaculty':async _0x12f530=>{const _0x1f8956=await uploadDeptFaculty(this['BASE_URL'],_0x12f530);return _0x1f8956;},'poaep':async(_0x5a3904,_0x24db99,_0x5c2532,_0x1dbef2)=>{const _0x3ca87e=await uploadPOAEP(this['BASE_URL'],_0x5a3904,_0x24db99,_0x5c2532,_0x1dbef2);return _0x3ca87e;},'getAssessmentData':getAssessmentData,'getClassList':getClassList,'getCOAEP':getCOAEP,'getCourseOffering':getCourseOffering,'getCurriculum':getCurriculum,'getPOAEP':getPOAEP,'getDeptFaculty':getDeptFaculty,'getEnrolledStudents':getEnrolledStudents};}}
|
|
61
61
|
|
|
62
62
|
export { Client as default };
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/types/coaep.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
export interface ILO {
|
|
2
2
|
statement: string;
|
|
3
|
-
verb: string;
|
|
4
3
|
assessment_tool: string;
|
|
5
4
|
performance_target: number | null;
|
|
6
5
|
passing_score: number | null;
|
|
6
|
+
taxonomy_level: string | null;
|
|
7
|
+
cognitive_level: "I" | "E" | "D" | null;
|
|
8
|
+
verb: string | null;
|
|
7
9
|
}
|
|
8
10
|
export interface CO {
|
|
9
11
|
statement: string;
|
|
10
|
-
verb: string;
|
|
11
12
|
ilo: ILO[];
|
|
13
|
+
taxonomy_level: string | null;
|
|
14
|
+
cognitive_level: "I" | "E" | "D" | null;
|
|
15
|
+
verb: string | null;
|
|
12
16
|
}
|
|
13
17
|
export interface COAEP {
|
|
14
18
|
faculty: string | null;
|