@pipl-csui/sso-ui.js 0.0.0-stage → 0.0.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/dist/index.js ADDED
@@ -0,0 +1,2215 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var fastXmlParser = require('fast-xml-parser');
6
+
7
+ // src/index.ts
8
+
9
+ // src/endpoint.ts
10
+ var DEFAULT_CAS_URL = "https://sso.ui.ac.id/cas2";
11
+ function normalize(url) {
12
+ return (url || DEFAULT_CAS_URL).trim().replace(/\/+$/, "");
13
+ }
14
+ function LoginURL(casUrl, serviceUrl, options) {
15
+ const url = new URL(`${normalize(casUrl)}/login`);
16
+ const serv = options?.serviceUrl || serviceUrl;
17
+ if (serv) url.searchParams.set("service", serv);
18
+ if (options?.renew) url.searchParams.set("renew", "true");
19
+ if (options?.gateway) url.searchParams.set("gateway", "true");
20
+ return url.toString();
21
+ }
22
+ function LogoutURL(casUrl, options) {
23
+ const url = new URL(`${normalize(casUrl)}/logout`);
24
+ const redir = options?.url || options?.serviceUrl;
25
+ if (redir) {
26
+ url.searchParams.set("url", redir);
27
+ url.searchParams.set("service", redir);
28
+ }
29
+ return url.toString();
30
+ }
31
+ function ValidateURL(casUrl, serviceUrl, ticket, version = "2.0") {
32
+ let path = "/serviceValidate";
33
+ if (version === "1.0") path = "/validate";
34
+ else if (version === "3.0") path = "/p3/serviceValidate";
35
+ const url = new URL(`${normalize(casUrl)}${path}`);
36
+ url.searchParams.set("service", serviceUrl);
37
+ url.searchParams.set("ticket", ticket);
38
+ return url.toString();
39
+ }
40
+
41
+ // src/kd_org/codes.ts
42
+ var ORG_CODES = {
43
+ "04.00.01.01": {
44
+ "faculty": "Kedokteran",
45
+ "shortFaculty": "FK",
46
+ "major": "Pendidikan Dokter (Medical Science)",
47
+ "program": "S1 Reguler (Undergraduate Program)"
48
+ },
49
+ "05.00.01.01": {
50
+ "faculty": "Kedokteran",
51
+ "shortFaculty": "FK",
52
+ "major": "Pendidikan Dokter Kelas Khusus Internasional (Medical Science)",
53
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
54
+ },
55
+ "07.00.01.01": {
56
+ "faculty": "Kedokteran",
57
+ "shortFaculty": "FK",
58
+ "major": "Ilmu Biomedik (Biomedical Sciences)",
59
+ "program": "S2 (Graduate Program)"
60
+ },
61
+ "08.00.01.01": {
62
+ "faculty": "Kedokteran",
63
+ "shortFaculty": "FK",
64
+ "major": "Ilmu Gizi (Nutrition)",
65
+ "program": "S2 (Graduate Program)"
66
+ },
67
+ "09.00.01.01": {
68
+ "faculty": "Kedokteran",
69
+ "shortFaculty": "FK",
70
+ "major": "Kedokteran Kerja (Occupational Medicine)",
71
+ "program": "S2 (Graduate Program)"
72
+ },
73
+ "40.00.01.01": {
74
+ "faculty": "Kedokteran",
75
+ "shortFaculty": "FK",
76
+ "major": "Pendidikan Kedokteran (Medical Education)",
77
+ "program": "S2 (Graduate Program)"
78
+ },
79
+ "10.00.01.01": {
80
+ "faculty": "Kedokteran",
81
+ "shortFaculty": "FK",
82
+ "major": "Ilmu Biomedik (Biomedical Sciences)",
83
+ "program": "S3 (Doctoral Program)"
84
+ },
85
+ "11.00.01.01": {
86
+ "faculty": "Kedokteran",
87
+ "shortFaculty": "FK",
88
+ "major": "Ilmu Gizi (Nutrition)",
89
+ "program": "S3 (Doctoral Program)"
90
+ },
91
+ "12.00.01.01": {
92
+ "faculty": "Kedokteran",
93
+ "shortFaculty": "FK",
94
+ "major": "Ilmu Kedokteran (Medical Science)",
95
+ "program": "S3 (Doctoral Program)"
96
+ },
97
+ "01.00.01.01": {
98
+ "faculty": "Kedokteran",
99
+ "shortFaculty": "FK",
100
+ "major": "Perumahsakitan (Hospital Management)",
101
+ "program": "D3 (Diploma III)"
102
+ },
103
+ "02.00.01.01": {
104
+ "faculty": "Kedokteran",
105
+ "shortFaculty": "FK",
106
+ "major": "Rehabilitasi Medik ()",
107
+ "program": "D3 (Diploma III)"
108
+ },
109
+ "37.00.01.01": {
110
+ "faculty": "Kedokteran",
111
+ "shortFaculty": "FK",
112
+ "major": "Fisioterapi (Physiotherapy)",
113
+ "program": "D3 (Diploma III)"
114
+ },
115
+ "38.00.01.01": {
116
+ "faculty": "Kedokteran",
117
+ "shortFaculty": "FK",
118
+ "major": "Okupasi Terapi (Occupational Therapy)",
119
+ "program": "D3 (Diploma III)"
120
+ },
121
+ "06.00.01.01": {
122
+ "faculty": "Kedokteran",
123
+ "shortFaculty": "FK",
124
+ "major": "Profesi Dokter (Medical Doctor)",
125
+ "program": "Profesi (Profession Program)"
126
+ },
127
+ "13.00.01.01": {
128
+ "faculty": "Kedokteran",
129
+ "shortFaculty": "FK",
130
+ "major": "Anestesiologi (Anesthesiology)",
131
+ "program": "Spesialis I (Specialist Program)"
132
+ },
133
+ "14.00.01.01": {
134
+ "faculty": "Kedokteran",
135
+ "shortFaculty": "FK",
136
+ "major": "Ilmu Bedah (Surgery)",
137
+ "program": "Spesialis I (Specialist Program)"
138
+ },
139
+ "15.00.01.01": {
140
+ "faculty": "Kedokteran",
141
+ "shortFaculty": "FK",
142
+ "major": "Ilmu Penyakit Dalam (Internal Medicine)",
143
+ "program": "Spesialis I (Specialist Program)"
144
+ },
145
+ "16.00.01.01": {
146
+ "faculty": "Kedokteran",
147
+ "shortFaculty": "FK",
148
+ "major": "Ilmu Kesehatan Anak (Pediatrics)",
149
+ "program": "Spesialis I (Specialist Program)"
150
+ },
151
+ "17.00.01.01": {
152
+ "faculty": "Kedokteran",
153
+ "shortFaculty": "FK",
154
+ "major": "Obstetri & Ginekologi (Obstetrics & Gynecology)",
155
+ "program": "Spesialis I (Specialist Program)"
156
+ },
157
+ "18.00.01.01": {
158
+ "faculty": "Kedokteran",
159
+ "shortFaculty": "FK",
160
+ "major": "Ilmu Penyakit Saraf (Neurology)",
161
+ "program": "Spesialis I (Specialist Program)"
162
+ },
163
+ "19.00.01.01": {
164
+ "faculty": "Kedokteran",
165
+ "shortFaculty": "FK",
166
+ "major": "Ilmu Kedokteran Jiwa (Psychiatry)",
167
+ "program": "Spesialis I (Specialist Program)"
168
+ },
169
+ "20.00.01.01": {
170
+ "faculty": "Kedokteran",
171
+ "shortFaculty": "FK",
172
+ "major": "Ilmu Kesehatan Mata (Ophthalmology)",
173
+ "program": "Spesialis I (Specialist Program)"
174
+ },
175
+ "21.00.01.01": {
176
+ "faculty": "Kedokteran",
177
+ "shortFaculty": "FK",
178
+ "major": "Ilmu Kesehatan Kulit & Kelamin (Dermato & Venereology)",
179
+ "program": "Spesialis I (Specialist Program)"
180
+ },
181
+ "22.00.01.01": {
182
+ "faculty": "Kedokteran",
183
+ "shortFaculty": "FK",
184
+ "major": "Ilmu Penyakit Telinga, Hidung & Tenggorok (Otorhinolaryngology)",
185
+ "program": "Spesialis I (Specialist Program)"
186
+ },
187
+ "23.00.01.01": {
188
+ "faculty": "Kedokteran",
189
+ "shortFaculty": "FK",
190
+ "major": "Ilmu Penyakit Jantung & Pembuluh Darah (Cardiovascular Medicine)",
191
+ "program": "Spesialis I (Specialist Program)"
192
+ },
193
+ "24.00.01.01": {
194
+ "faculty": "Kedokteran",
195
+ "shortFaculty": "FK",
196
+ "major": "Pulmonologi dan Ilmu Kedokteran Respirasi (Respiratory)",
197
+ "program": "Spesialis I (Specialist Program)"
198
+ },
199
+ "25.00.01.01": {
200
+ "faculty": "Kedokteran",
201
+ "shortFaculty": "FK",
202
+ "major": "Radiologi (Radiology)",
203
+ "program": "Spesialis I (Specialist Program)"
204
+ },
205
+ "26.00.01.01": {
206
+ "faculty": "Kedokteran",
207
+ "shortFaculty": "FK",
208
+ "major": "Ilmu Kedokteran Forensik (Forensic Medicine)",
209
+ "program": "Spesialis I (Specialist Program)"
210
+ },
211
+ "27.00.01.01": {
212
+ "faculty": "Kedokteran",
213
+ "shortFaculty": "FK",
214
+ "major": "Patologi Anatomik (Anatomical Pathology)",
215
+ "program": "Spesialis I (Specialist Program)"
216
+ },
217
+ "28.00.01.01": {
218
+ "faculty": "Kedokteran",
219
+ "shortFaculty": "FK",
220
+ "major": "Patologi Klinik (Clinical Pathology)",
221
+ "program": "Spesialis I (Specialist Program)"
222
+ },
223
+ "29.00.01.01": {
224
+ "faculty": "Kedokteran",
225
+ "shortFaculty": "FK",
226
+ "major": "Ilmu Orthopaedi dan Traumatologi (Orthopaedic and Traumatology Surgery)",
227
+ "program": "Spesialis I (Specialist Program)"
228
+ },
229
+ "30.00.01.01": {
230
+ "faculty": "Kedokteran",
231
+ "shortFaculty": "FK",
232
+ "major": "Urologi (Urology)",
233
+ "program": "Spesialis I (Specialist Program)"
234
+ },
235
+ "31.00.01.01": {
236
+ "faculty": "Kedokteran",
237
+ "shortFaculty": "FK",
238
+ "major": "Ilmu Bedah Syaraf (Neurosurgery)",
239
+ "program": "Spesialis I (Specialist Program)"
240
+ },
241
+ "32.00.01.01": {
242
+ "faculty": "Kedokteran",
243
+ "shortFaculty": "FK",
244
+ "major": "Ilmu Rehabilitasi Medik (Medical Rehabilitation)",
245
+ "program": "Spesialis I (Specialist Program)"
246
+ },
247
+ "33.00.01.01": {
248
+ "faculty": "Kedokteran",
249
+ "shortFaculty": "FK",
250
+ "major": "Ilmu Bedah Plastik (Plastic Surgery)",
251
+ "program": "Spesialis I (Specialist Program)"
252
+ },
253
+ "34.00.01.01": {
254
+ "faculty": "Kedokteran",
255
+ "shortFaculty": "FK",
256
+ "major": "Ilmu Kedokteran Olahraga (Sports Medicine)",
257
+ "program": "Spesialis I (Specialist Program)"
258
+ },
259
+ "35.00.01.01": {
260
+ "faculty": "Kedokteran",
261
+ "shortFaculty": "FK",
262
+ "major": "Mikrobiologi Klinik (Clinical Microbiology)",
263
+ "program": "Spesialis I (Specialist Program)"
264
+ },
265
+ "36.00.01.01": {
266
+ "faculty": "Kedokteran",
267
+ "shortFaculty": "FK",
268
+ "major": "Farmakologi Klinik (Clinical Pharmacology)",
269
+ "program": "Spesialis I (Specialist Program)"
270
+ },
271
+ "39.00.01.01": {
272
+ "faculty": "Kedokteran",
273
+ "shortFaculty": "FK",
274
+ "major": "Kedokteran Okupasi (Occupational Medicine)",
275
+ "program": "Spesialis I (Specialist Program)"
276
+ },
277
+ "41.00.01.01": {
278
+ "faculty": "Kedokteran",
279
+ "shortFaculty": "FK",
280
+ "major": "Bedah Torak Kardiovaskular (Cardiovascular and Thoracic Surgery)",
281
+ "program": "Spesialis I (Specialist Program)"
282
+ },
283
+ "43.00.01.01": {
284
+ "faculty": "Kedokteran",
285
+ "shortFaculty": "FK",
286
+ "major": "Onkologi Radiasi (Radiation Oncology)",
287
+ "program": "Spesialis I (Specialist Program)"
288
+ },
289
+ "44.00.01.01": {
290
+ "faculty": "Kedokteran",
291
+ "shortFaculty": "FK",
292
+ "major": "Kedokteran Penerbangan (Aviation Medicine)",
293
+ "program": "Spesialis I (Specialist Program)"
294
+ },
295
+ "45.00.01.01": {
296
+ "faculty": "Kedokteran",
297
+ "shortFaculty": "FK",
298
+ "major": "Ilmu Gizi Klinik (Clinical Nutrition)",
299
+ "program": "Spesialis I (Specialist Program)"
300
+ },
301
+ "46.00.01.01": {
302
+ "faculty": "Kedokteran",
303
+ "shortFaculty": "FK",
304
+ "major": "Parasitologi Klinik (Clinical Parasitology)",
305
+ "program": "Spesialis I (Specialist Program)"
306
+ },
307
+ "47.00.01.01": {
308
+ "faculty": "Kedokteran",
309
+ "shortFaculty": "FK",
310
+ "major": "Akupuntur Medik (Acupuncture Medic)",
311
+ "program": "Spesialis I (Specialist Program)"
312
+ },
313
+ "03.00.01.01": {
314
+ "faculty": "Kedokteran",
315
+ "shortFaculty": "FK",
316
+ "major": "Ilmu Gizi ()",
317
+ "program": "D4 (Diploma IV)"
318
+ },
319
+ "01.00.02.01": {
320
+ "faculty": "Kedokteran Gigi",
321
+ "shortFaculty": "FKG",
322
+ "major": "Pendidikan Dokter Gigi (Dental Education)",
323
+ "program": "S1 Reguler (Undergraduate Program)"
324
+ },
325
+ "03.00.02.01": {
326
+ "faculty": "Kedokteran Gigi",
327
+ "shortFaculty": "FKG",
328
+ "major": "Ilmu Kedokteran Gigi Dasar (Basic Dental Science)",
329
+ "program": "S2 (Graduate Program)"
330
+ },
331
+ "04.00.02.01": {
332
+ "faculty": "Kedokteran Gigi",
333
+ "shortFaculty": "FKG",
334
+ "major": "Ilmu Kedokteran Gigi Komunitas (Community Dental Science)",
335
+ "program": "S2 (Graduate Program)"
336
+ },
337
+ "05.00.02.01": {
338
+ "faculty": "Kedokteran Gigi",
339
+ "shortFaculty": "FKG",
340
+ "major": "Ilmu Kedokteran Gigi (Dental Science)",
341
+ "program": "S3 (Doctoral Program)"
342
+ },
343
+ "02.00.02.01": {
344
+ "faculty": "Kedokteran Gigi",
345
+ "shortFaculty": "FKG",
346
+ "major": "Kedokteran Gigi (Dentistry)",
347
+ "program": "Profesi (Profession Program)"
348
+ },
349
+ "06.00.02.01": {
350
+ "faculty": "Kedokteran Gigi",
351
+ "shortFaculty": "FKG",
352
+ "major": "Ilmu Bedah Mulut (Oral & Maxillo Facial Surgery)",
353
+ "program": "Spesialis I (Specialist Program)"
354
+ },
355
+ "07.00.02.01": {
356
+ "faculty": "Kedokteran Gigi",
357
+ "shortFaculty": "FKG",
358
+ "major": "Ilmu Kesehatan Gigi Anak (Pediatric Dentistry)",
359
+ "program": "Spesialis I (Specialist Program)"
360
+ },
361
+ "08.00.02.01": {
362
+ "faculty": "Kedokteran Gigi",
363
+ "shortFaculty": "FKG",
364
+ "major": "Ilmu Konservasi Gigi (Conservative Dentistry)",
365
+ "program": "Spesialis I (Specialist Program)"
366
+ },
367
+ "09.00.02.01": {
368
+ "faculty": "Kedokteran Gigi",
369
+ "shortFaculty": "FKG",
370
+ "major": "Ilmu Penyakit Mulut (Oral Medicine)",
371
+ "program": "Spesialis I (Specialist Program)"
372
+ },
373
+ "10.00.02.01": {
374
+ "faculty": "Kedokteran Gigi",
375
+ "shortFaculty": "FKG",
376
+ "major": "Ortodonsia (Orthodontics)",
377
+ "program": "Spesialis I (Specialist Program)"
378
+ },
379
+ "11.00.02.01": {
380
+ "faculty": "Kedokteran Gigi",
381
+ "shortFaculty": "FKG",
382
+ "major": "Periodonsia (Periodontology)",
383
+ "program": "Spesialis I (Specialist Program)"
384
+ },
385
+ "12.00.02.01": {
386
+ "faculty": "Kedokteran Gigi",
387
+ "shortFaculty": "FKG",
388
+ "major": "Prostodonsia (Prosthetic Dentistry)",
389
+ "program": "Spesialis I (Specialist Program)"
390
+ },
391
+ "01.01.03.01": {
392
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
393
+ "shortFaculty": "FMIPA",
394
+ "major": "Matematika (Mathematics)",
395
+ "program": "S1 Reguler (Undergraduate Program)"
396
+ },
397
+ "01.04.03.01": {
398
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
399
+ "shortFaculty": "FMIPA",
400
+ "major": "Biologi (Biology)",
401
+ "program": "S1 Reguler (Undergraduate Program)"
402
+ },
403
+ "01.06.03.01": {
404
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
405
+ "shortFaculty": "FMIPA",
406
+ "major": "Geografi (Geography)",
407
+ "program": "S1 Reguler (Undergraduate Program)"
408
+ },
409
+ "02.02.03.01": {
410
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
411
+ "shortFaculty": "FMIPA",
412
+ "major": "Fisika (Physics)",
413
+ "program": "S1 Reguler (Undergraduate Program)"
414
+ },
415
+ "02.03.03.01": {
416
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
417
+ "shortFaculty": "FMIPA",
418
+ "major": "Kimia (Chemistry)",
419
+ "program": "S1 Reguler (Undergraduate Program)"
420
+ },
421
+ "02.01.03.01": {
422
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
423
+ "shortFaculty": "FMIPA",
424
+ "major": "Matematika (Mathematics)",
425
+ "program": "S2 (Graduate Program)"
426
+ },
427
+ "02.04.03.01": {
428
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
429
+ "shortFaculty": "FMIPA",
430
+ "major": "Biologi (Biology)",
431
+ "program": "S2 (Graduate Program)"
432
+ },
433
+ "02.06.03.01": {
434
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
435
+ "shortFaculty": "FMIPA",
436
+ "major": "Ilmu Geografi (Geography Science)",
437
+ "program": "S2 (Graduate Program)"
438
+ },
439
+ "03.04.03.01": {
440
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
441
+ "shortFaculty": "FMIPA",
442
+ "major": "Ilmu Kelautan (Nautical Science)",
443
+ "program": "S2 (Graduate Program)"
444
+ },
445
+ "03.06.03.01": {
446
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
447
+ "shortFaculty": "FMIPA",
448
+ "major": "Ilmu Bahan-bahan (Material Science)",
449
+ "program": "S2 (Graduate Program)"
450
+ },
451
+ "04.02.03.01": {
452
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
453
+ "shortFaculty": "FMIPA",
454
+ "major": "Ilmu Fisika (Physics Science)",
455
+ "program": "S2 (Graduate Program)"
456
+ },
457
+ "04.03.03.01": {
458
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
459
+ "shortFaculty": "FMIPA",
460
+ "major": "Ilmu Kimia (Chemistry Science)",
461
+ "program": "S2 (Graduate Program)"
462
+ },
463
+ "04.04.03.01": {
464
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
465
+ "shortFaculty": "FMIPA",
466
+ "major": "Biologi (Biology)",
467
+ "program": "S3 (Doctoral Program)"
468
+ },
469
+ "04.06.03.01": {
470
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
471
+ "shortFaculty": "FMIPA",
472
+ "major": "Ilmu Bahan-bahan (Material Science)",
473
+ "program": "S3 (Doctoral Program)"
474
+ },
475
+ "05.03.03.01": {
476
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
477
+ "shortFaculty": "FMIPA",
478
+ "major": "Ilmu Kimia (Chemistry Science)",
479
+ "program": "S3 (Doctoral Program)"
480
+ },
481
+ "03.01.03.01": {
482
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
483
+ "shortFaculty": "FMIPA",
484
+ "major": "Matematika (Mathematics)",
485
+ "program": "S1 Paralel (S1 Paralel)"
486
+ },
487
+ "05.02.03.01": {
488
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
489
+ "shortFaculty": "FMIPA",
490
+ "major": "Fisika (Physics)",
491
+ "program": "S1 Paralel (S1 Paralel)"
492
+ },
493
+ "05.04.03.01": {
494
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
495
+ "shortFaculty": "FMIPA",
496
+ "major": "Biologi (Biology)",
497
+ "program": "S1 Paralel (S1 Paralel)"
498
+ },
499
+ "05.06.03.01": {
500
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
501
+ "shortFaculty": "FMIPA",
502
+ "major": "Geografi (Geography)",
503
+ "program": "S1 Paralel (S1 Paralel)"
504
+ },
505
+ "06.03.03.01": {
506
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
507
+ "shortFaculty": "FMIPA",
508
+ "major": "Kimia (Chemistry)",
509
+ "program": "S1 Paralel (S1 Paralel)"
510
+ },
511
+ "01.01.04.01": {
512
+ "faculty": "Teknik",
513
+ "shortFaculty": "FT",
514
+ "major": "Teknik Sipil (Civil Engineering)",
515
+ "program": "S1 Reguler (Undergraduate Program)"
516
+ },
517
+ "01.02.04.01": {
518
+ "faculty": "Teknik",
519
+ "shortFaculty": "FT",
520
+ "major": "Teknik Mesin (Mechanical Engineering)",
521
+ "program": "S1 Reguler (Undergraduate Program)"
522
+ },
523
+ "01.03.04.01": {
524
+ "faculty": "Teknik",
525
+ "shortFaculty": "FT",
526
+ "major": "Teknik Elektro (Electrical Engineering)",
527
+ "program": "S1 Reguler (Undergraduate Program)"
528
+ },
529
+ "01.04.04.01": {
530
+ "faculty": "Teknik",
531
+ "shortFaculty": "FT",
532
+ "major": "Teknik Metalurgi & Material (Metalurgy & Material Engineering)",
533
+ "program": "S1 Reguler (Undergraduate Program)"
534
+ },
535
+ "01.05.04.01": {
536
+ "faculty": "Teknik",
537
+ "shortFaculty": "FT",
538
+ "major": "Arsitektur (Architecture)",
539
+ "program": "S1 Reguler (Undergraduate Program)"
540
+ },
541
+ "01.06.04.01": {
542
+ "faculty": "Teknik",
543
+ "shortFaculty": "FT",
544
+ "major": "Teknik Kimia (Chemical Engineering)",
545
+ "program": "S1 Reguler (Undergraduate Program)"
546
+ },
547
+ "01.07.04.01": {
548
+ "faculty": "Teknik",
549
+ "shortFaculty": "FT",
550
+ "major": "Teknik Industri (Industrial Engineering)",
551
+ "program": "S1 Reguler (Undergraduate Program)"
552
+ },
553
+ "02.01.04.01": {
554
+ "faculty": "Teknik",
555
+ "shortFaculty": "FT",
556
+ "major": "Teknik Lingkungan (Environment Engineering)",
557
+ "program": "S1 Reguler (Undergraduate Program)"
558
+ },
559
+ "02.02.04.01": {
560
+ "faculty": "Teknik",
561
+ "shortFaculty": "FT",
562
+ "major": "Teknik Perkapalan (Naval Engineering)",
563
+ "program": "S1 Reguler (Undergraduate Program)"
564
+ },
565
+ "02.03.04.01": {
566
+ "faculty": "Teknik",
567
+ "shortFaculty": "FT",
568
+ "major": "Teknik Komputer (Computer Engineering)",
569
+ "program": "S1 Reguler (Undergraduate Program)"
570
+ },
571
+ "05.05.04.01": {
572
+ "faculty": "Teknik",
573
+ "shortFaculty": "FT",
574
+ "major": "Arsitektur Interior (Interior Architechture)",
575
+ "program": "S1 Reguler (Undergraduate Program)"
576
+ },
577
+ "06.06.04.01": {
578
+ "faculty": "Teknik",
579
+ "shortFaculty": "FT",
580
+ "major": "Teknologi Bioproses (Bioprocess Technology)",
581
+ "program": "S1 Reguler (Undergraduate Program)"
582
+ },
583
+ "02.04.04.01": {
584
+ "faculty": "Teknik",
585
+ "shortFaculty": "FT",
586
+ "major": "Teknik Metalurgi & Material - Ekstensi (Metalurgy & Material Engineering - Ext)",
587
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
588
+ },
589
+ "02.05.04.01": {
590
+ "faculty": "Teknik",
591
+ "shortFaculty": "FT",
592
+ "major": "Arsitektur - Ekstensi (Architecture - Ext)",
593
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
594
+ },
595
+ "02.06.04.01": {
596
+ "faculty": "Teknik",
597
+ "shortFaculty": "FT",
598
+ "major": "Teknik Kimia - Ekstensi (Chemical Engineering - Ext)",
599
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
600
+ },
601
+ "02.07.04.01": {
602
+ "faculty": "Teknik",
603
+ "shortFaculty": "FT",
604
+ "major": "Teknik Industri - Ekstensi (Industrial Engineering - Ext)",
605
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
606
+ },
607
+ "03.01.04.01": {
608
+ "faculty": "Teknik",
609
+ "shortFaculty": "FT",
610
+ "major": "Teknik Sipil - Ekstensi (Civil Engineering - Ext)",
611
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
612
+ },
613
+ "03.02.04.01": {
614
+ "faculty": "Teknik",
615
+ "shortFaculty": "FT",
616
+ "major": "Teknik Mesin - Ekstensi (Mechanical Engineering - Ext)",
617
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
618
+ },
619
+ "03.03.04.01": {
620
+ "faculty": "Teknik",
621
+ "shortFaculty": "FT",
622
+ "major": "Teknik Elektro - Ekstensi (Electrical Engineering - Ext)",
623
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
624
+ },
625
+ "03.04.04.01": {
626
+ "faculty": "Teknik",
627
+ "shortFaculty": "FT",
628
+ "major": "Teknik Metalurgi - Intl (Metalurgy Engineering - Intl)",
629
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
630
+ },
631
+ "03.06.04.01": {
632
+ "faculty": "Teknik",
633
+ "shortFaculty": "FT",
634
+ "major": "Teknik Kimia - Intl (Chemical Engineering - Intl)",
635
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
636
+ },
637
+ "04.01.04.01": {
638
+ "faculty": "Teknik",
639
+ "shortFaculty": "FT",
640
+ "major": "Teknik Sipil - Intl (Civil Engineering - Intl)",
641
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
642
+ },
643
+ "04.02.04.01": {
644
+ "faculty": "Teknik",
645
+ "shortFaculty": "FT",
646
+ "major": "Teknik Mesin - Intl (Mechanical Engineering - Intl)",
647
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
648
+ },
649
+ "04.03.04.01": {
650
+ "faculty": "Teknik",
651
+ "shortFaculty": "FT",
652
+ "major": "Teknik Elektro - Intl (Electrical Engineering - Intl)",
653
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
654
+ },
655
+ "04.05.04.01": {
656
+ "faculty": "Teknik",
657
+ "shortFaculty": "FT",
658
+ "major": "Arsitektur - Intl (Architecture - Intl)",
659
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
660
+ },
661
+ "03.05.04.01": {
662
+ "faculty": "Teknik",
663
+ "shortFaculty": "FT",
664
+ "major": "Arsitektur (Architecture)",
665
+ "program": "S2 (Graduate Program)"
666
+ },
667
+ "03.07.04.01": {
668
+ "faculty": "Teknik",
669
+ "shortFaculty": "FT",
670
+ "major": "Teknik Industri (Industrial Engineering)",
671
+ "program": "S2 (Graduate Program)"
672
+ },
673
+ "04.04.04.01": {
674
+ "faculty": "Teknik",
675
+ "shortFaculty": "FT",
676
+ "major": "Teknik Metalurgi & Material (Metalurgy & Material Engineering)",
677
+ "program": "S2 (Graduate Program)"
678
+ },
679
+ "04.06.04.01": {
680
+ "faculty": "Teknik",
681
+ "shortFaculty": "FT",
682
+ "major": "Teknik Kimia (Chemical Engineering)",
683
+ "program": "S2 (Graduate Program)"
684
+ },
685
+ "05.01.04.01": {
686
+ "faculty": "Teknik",
687
+ "shortFaculty": "FT",
688
+ "major": "Teknik Sipil (Civil Engineering - Graduate)",
689
+ "program": "S2 (Graduate Program)"
690
+ },
691
+ "05.02.04.01": {
692
+ "faculty": "Teknik",
693
+ "shortFaculty": "FT",
694
+ "major": "Teknik Mesin (Mechanical Engineering)",
695
+ "program": "S2 (Graduate Program)"
696
+ },
697
+ "05.03.04.01": {
698
+ "faculty": "Teknik",
699
+ "shortFaculty": "FT",
700
+ "major": "Teknik Elektro (Electrical Engineering)",
701
+ "program": "S2 (Graduate Program)"
702
+ },
703
+ "06.03.04.01": {
704
+ "faculty": "Teknik",
705
+ "shortFaculty": "FT",
706
+ "major": "Opto Elektroteknika & Aplikasi Laser (Optoelectronics & Laser Application)",
707
+ "program": "S2 (Graduate Program)"
708
+ },
709
+ "05.04.04.01": {
710
+ "faculty": "Teknik",
711
+ "shortFaculty": "FT",
712
+ "major": "Teknik Metalurgi & Material (Metalurgy & Material Engineering)",
713
+ "program": "S3 (Doctoral Program)"
714
+ },
715
+ "05.06.04.01": {
716
+ "faculty": "Teknik",
717
+ "shortFaculty": "FT",
718
+ "major": "Teknik Kimia (Chemical Engineering)",
719
+ "program": "S3 (Doctoral Program)"
720
+ },
721
+ "06.01.04.01": {
722
+ "faculty": "Teknik",
723
+ "shortFaculty": "FT",
724
+ "major": "Teknik Sipil (Civil Engineering)",
725
+ "program": "S3 (Doctoral Program)"
726
+ },
727
+ "06.02.04.01": {
728
+ "faculty": "Teknik",
729
+ "shortFaculty": "FT",
730
+ "major": "Teknik Mesin (Mechanical Engineering)",
731
+ "program": "S3 (Doctoral Program)"
732
+ },
733
+ "06.05.04.01": {
734
+ "faculty": "Teknik",
735
+ "shortFaculty": "FT",
736
+ "major": "Arsitektur (Architecture)",
737
+ "program": "S3 (Doctoral Program)"
738
+ },
739
+ "07.03.04.01": {
740
+ "faculty": "Teknik",
741
+ "shortFaculty": "FT",
742
+ "major": "Opto Elektroteknika & Aplikasi Laser (Optoelectronics & Laser Application)",
743
+ "program": "S3 (Doctoral Program)"
744
+ },
745
+ "08.03.04.01": {
746
+ "faculty": "Teknik",
747
+ "shortFaculty": "FT",
748
+ "major": "Teknik Elektro (Electrical Engineering)",
749
+ "program": "S3 (Doctoral Program)"
750
+ },
751
+ "07.05.04.01": {
752
+ "faculty": "Teknik",
753
+ "shortFaculty": "FT",
754
+ "major": "Pendidikan Profesi Arsitek (Architect)",
755
+ "program": "Profesi (Profession Program)"
756
+ },
757
+ "09.03.04.01": {
758
+ "faculty": "Teknik",
759
+ "shortFaculty": "FT",
760
+ "major": "Teknik Elektro - Intl (Electrical Engineering - Intl)",
761
+ "program": "S2 Kls Internasional (Intl. Class Graduate Program)"
762
+ },
763
+ "04.07.04.01": {
764
+ "faculty": "Teknik",
765
+ "shortFaculty": "FT",
766
+ "major": "Teknik Industri (Industrial Engineering)",
767
+ "program": "S1 Paralel (S1 Paralel)"
768
+ },
769
+ "06.04.04.01": {
770
+ "faculty": "Teknik",
771
+ "shortFaculty": "FT",
772
+ "major": "Teknik Metalurgi & Material (Metalurgy & Material Engineering)",
773
+ "program": "S1 Paralel (S1 Paralel)"
774
+ },
775
+ "07.01.04.01": {
776
+ "faculty": "Teknik",
777
+ "shortFaculty": "FT",
778
+ "major": "Teknik Sipil (Civil Engineering)",
779
+ "program": "S1 Paralel (S1 Paralel)"
780
+ },
781
+ "07.02.04.01": {
782
+ "faculty": "Teknik",
783
+ "shortFaculty": "FT",
784
+ "major": "Teknik Mesin (Mechanical Engineering)",
785
+ "program": "S1 Paralel (S1 Paralel)"
786
+ },
787
+ "07.06.04.01": {
788
+ "faculty": "Teknik",
789
+ "shortFaculty": "FT",
790
+ "major": "Teknik Kimia (Chemical Engineering)",
791
+ "program": "S1 Paralel (S1 Paralel)"
792
+ },
793
+ "08.05.04.01": {
794
+ "faculty": "Teknik",
795
+ "shortFaculty": "FT",
796
+ "major": "Arsitektur (Architecture)",
797
+ "program": "S1 Paralel (S1 Paralel)"
798
+ },
799
+ "10.03.04.01": {
800
+ "faculty": "Teknik",
801
+ "shortFaculty": "FT",
802
+ "major": "Teknik Elektro (Electrical Engineering)",
803
+ "program": "S1 Paralel (S1 Paralel)"
804
+ },
805
+ "01.00.05.01": {
806
+ "faculty": "Hukum",
807
+ "shortFaculty": "FH",
808
+ "major": "Ilmu Hukum (Law)",
809
+ "program": "S1 Reguler (Undergraduate Program)"
810
+ },
811
+ "02.00.05.01": {
812
+ "faculty": "Hukum",
813
+ "shortFaculty": "FH",
814
+ "major": "Ilmu Hukum - Ekstensi (Law)",
815
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
816
+ },
817
+ "07.00.05.01": {
818
+ "faculty": "Hukum",
819
+ "shortFaculty": "FH",
820
+ "major": "Ilmu Hukum (Law - Intl)",
821
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
822
+ },
823
+ "03.00.05.01": {
824
+ "faculty": "Hukum",
825
+ "shortFaculty": "FH",
826
+ "major": "Ilmu Hukum (Law)",
827
+ "program": "S2 (Graduate Program)"
828
+ },
829
+ "04.00.05.01": {
830
+ "faculty": "Hukum",
831
+ "shortFaculty": "FH",
832
+ "major": "Kenotariatan (Notary)",
833
+ "program": "S2 (Graduate Program)"
834
+ },
835
+ "05.00.05.01": {
836
+ "faculty": "Hukum",
837
+ "shortFaculty": "FH",
838
+ "major": "Ilmu Hukum (Law)",
839
+ "program": "S3 (Doctoral Program)"
840
+ },
841
+ "06.00.05.01": {
842
+ "faculty": "Hukum",
843
+ "shortFaculty": "FH",
844
+ "major": "Ilmu Hukum (Law)",
845
+ "program": "S1 Paralel (S1 Paralel)"
846
+ },
847
+ "01.01.06.01": {
848
+ "faculty": "Ekonomi",
849
+ "shortFaculty": "FEB",
850
+ "major": "Ilmu Ekonomi (Economics)",
851
+ "program": "S1 Reguler (Undergraduate Program)"
852
+ },
853
+ "01.02.06.01": {
854
+ "faculty": "Ekonomi",
855
+ "shortFaculty": "FEB",
856
+ "major": "Manajemen (Management)",
857
+ "program": "S1 Reguler (Undergraduate Program)"
858
+ },
859
+ "02.03.06.01": {
860
+ "faculty": "Ekonomi",
861
+ "shortFaculty": "FEB",
862
+ "major": "Akuntansi (Accounting)",
863
+ "program": "S1 Reguler (Undergraduate Program)"
864
+ },
865
+ "07.01.06.01": {
866
+ "faculty": "Ekonomi",
867
+ "shortFaculty": "FEB",
868
+ "major": "Ilmu Ekonomi Islam (Islam Economic Science)",
869
+ "program": "S1 Reguler (Undergraduate Program)"
870
+ },
871
+ "08.01.06.01": {
872
+ "faculty": "Ekonomi",
873
+ "shortFaculty": "FEB",
874
+ "major": "Bisnis Islam (Islam Business)",
875
+ "program": "S1 Reguler (Undergraduate Program)"
876
+ },
877
+ "03.02.06.01": {
878
+ "faculty": "Ekonomi",
879
+ "shortFaculty": "FEB",
880
+ "major": "Manajemen - Ekstensi (Management)",
881
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
882
+ },
883
+ "03.03.06.01": {
884
+ "faculty": "Ekonomi",
885
+ "shortFaculty": "FEB",
886
+ "major": "Akuntansi - Ekstensi (Accounting)",
887
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
888
+ },
889
+ "02.01.06.01": {
890
+ "faculty": "Ekonomi",
891
+ "shortFaculty": "FEB",
892
+ "major": "Ilmu Ekonomi (Economics International)",
893
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
894
+ },
895
+ "02.02.06.01": {
896
+ "faculty": "Ekonomi",
897
+ "shortFaculty": "FEB",
898
+ "major": "Manajemen (Management - Intl)",
899
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
900
+ },
901
+ "04.03.06.01": {
902
+ "faculty": "Ekonomi",
903
+ "shortFaculty": "FEB",
904
+ "major": "Akuntansi (Accounting - Intl)",
905
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
906
+ },
907
+ "03.01.06.01": {
908
+ "faculty": "Ekonomi",
909
+ "shortFaculty": "FEB",
910
+ "major": "Ilmu Ekonomi (Economics)",
911
+ "program": "S2 (Graduate Program)"
912
+ },
913
+ "04.01.06.01": {
914
+ "faculty": "Ekonomi",
915
+ "shortFaculty": "FEB",
916
+ "major": "Perencanaan & Kebijakan Publik (MPKP) (Planning & Public Policy)",
917
+ "program": "S2 (Graduate Program)"
918
+ },
919
+ "04.02.06.01": {
920
+ "faculty": "Ekonomi",
921
+ "shortFaculty": "FEB",
922
+ "major": "Ilmu Manajemen (Management)",
923
+ "program": "S2 (Graduate Program)"
924
+ },
925
+ "05.02.06.01": {
926
+ "faculty": "Ekonomi",
927
+ "shortFaculty": "FEB",
928
+ "major": "Magister Manajemen (Master of Management)",
929
+ "program": "S2 (Graduate Program)"
930
+ },
931
+ "06.03.06.01": {
932
+ "faculty": "Ekonomi",
933
+ "shortFaculty": "FEB",
934
+ "major": "Magister Akuntansi (Master Of Accounting Program)",
935
+ "program": "S2 (Graduate Program)"
936
+ },
937
+ "07.02.06.01": {
938
+ "faculty": "Ekonomi",
939
+ "shortFaculty": "FEB",
940
+ "major": "Magister Manajemen (Master of Management)",
941
+ "program": "S2 (Graduate Program)"
942
+ },
943
+ "07.03.06.01": {
944
+ "faculty": "Ekonomi",
945
+ "shortFaculty": "FEB",
946
+ "major": "Ilmu Akuntansi (Accounting)",
947
+ "program": "S2 (Graduate Program)"
948
+ },
949
+ "09.03.06.01": {
950
+ "faculty": "Ekonomi",
951
+ "shortFaculty": "FEB",
952
+ "major": "Magister Akuntansi (Master of Accounting Program)",
953
+ "program": "S2 (Graduate Program)"
954
+ },
955
+ "05.01.06.01": {
956
+ "faculty": "Ekonomi",
957
+ "shortFaculty": "FEB",
958
+ "major": "Ilmu Ekonomi (Economics)",
959
+ "program": "S3 (Doctoral Program)"
960
+ },
961
+ "06.02.06.01": {
962
+ "faculty": "Ekonomi",
963
+ "shortFaculty": "FEB",
964
+ "major": "Ilmu Manajemen (Management)",
965
+ "program": "S3 (Doctoral Program)"
966
+ },
967
+ "08.03.06.01": {
968
+ "faculty": "Ekonomi",
969
+ "shortFaculty": "FEB",
970
+ "major": "Ilmu Akuntansi (Accounting)",
971
+ "program": "S3 (Doctoral Program)"
972
+ },
973
+ "01.03.06.01": {
974
+ "faculty": "Ekonomi",
975
+ "shortFaculty": "FEB",
976
+ "major": "Akuntansi (Accounting)",
977
+ "program": "D3 (Diploma III)"
978
+ },
979
+ "05.03.06.01": {
980
+ "faculty": "Ekonomi",
981
+ "shortFaculty": "FEB",
982
+ "major": "Pendidikan Profesi Akuntansi (PPAk) (Accounting Profession Education)",
983
+ "program": "Profesi (Profession Program)"
984
+ },
985
+ "06.01.06.01": {
986
+ "faculty": "Ekonomi",
987
+ "shortFaculty": "FEB",
988
+ "major": "Ilmu Ekonomi ()",
989
+ "program": "S2 Kls Internasional (Intl. Class Graduate Program)"
990
+ },
991
+ "10.03.06.01": {
992
+ "faculty": "Ekonomi",
993
+ "shortFaculty": "FEB",
994
+ "major": "Akuntansi (Accounting)",
995
+ "program": "S1 Paralel (S1 Paralel)"
996
+ },
997
+ "01.01.07.01": {
998
+ "faculty": "Ilmu Pengetahuan Budaya",
999
+ "shortFaculty": "FIB",
1000
+ "major": "Arkeologi (Archaeology)",
1001
+ "program": "S1 Reguler (Undergraduate Program)"
1002
+ },
1003
+ "01.02.07.01": {
1004
+ "faculty": "Ilmu Pengetahuan Budaya",
1005
+ "shortFaculty": "FIB",
1006
+ "major": "Ilmu Filsafat (Philosophy)",
1007
+ "program": "S1 Reguler (Undergraduate Program)"
1008
+ },
1009
+ "01.06.07.01": {
1010
+ "faculty": "Ilmu Pengetahuan Budaya",
1011
+ "shortFaculty": "FIB",
1012
+ "major": "Ilmu Sejarah (History)",
1013
+ "program": "S1 Reguler (Undergraduate Program)"
1014
+ },
1015
+ "02.03.07.01": {
1016
+ "faculty": "Ilmu Pengetahuan Budaya",
1017
+ "shortFaculty": "FIB",
1018
+ "major": "Ilmu Perpustakaan (Library Science)",
1019
+ "program": "S1 Reguler (Undergraduate Program)"
1020
+ },
1021
+ "08.00.07.01": {
1022
+ "faculty": "Ilmu Pengetahuan Budaya",
1023
+ "shortFaculty": "FIB",
1024
+ "major": "Sastra Arab (Arabic)",
1025
+ "program": "S1 Reguler (Undergraduate Program)"
1026
+ },
1027
+ "09.00.07.01": {
1028
+ "faculty": "Ilmu Pengetahuan Budaya",
1029
+ "shortFaculty": "FIB",
1030
+ "major": "Sastra Indonesia (Indonesian)",
1031
+ "program": "S1 Reguler (Undergraduate Program)"
1032
+ },
1033
+ "10.00.07.01": {
1034
+ "faculty": "Ilmu Pengetahuan Budaya",
1035
+ "shortFaculty": "FIB",
1036
+ "major": "Sastra Daerah untuk Sastra Jawa (Javanese)",
1037
+ "program": "S1 Reguler (Undergraduate Program)"
1038
+ },
1039
+ "11.00.07.01": {
1040
+ "faculty": "Ilmu Pengetahuan Budaya",
1041
+ "shortFaculty": "FIB",
1042
+ "major": "Sastra Cina (Chinese)",
1043
+ "program": "S1 Reguler (Undergraduate Program)"
1044
+ },
1045
+ "12.00.07.01": {
1046
+ "faculty": "Ilmu Pengetahuan Budaya",
1047
+ "shortFaculty": "FIB",
1048
+ "major": "Sastra Jepang (Japanese)",
1049
+ "program": "S1 Reguler (Undergraduate Program)"
1050
+ },
1051
+ "13.00.07.01": {
1052
+ "faculty": "Ilmu Pengetahuan Budaya",
1053
+ "shortFaculty": "FIB",
1054
+ "major": "Sastra Inggris (English)",
1055
+ "program": "S1 Reguler (Undergraduate Program)"
1056
+ },
1057
+ "14.00.07.01": {
1058
+ "faculty": "Ilmu Pengetahuan Budaya",
1059
+ "shortFaculty": "FIB",
1060
+ "major": "Sastra Perancis (French)",
1061
+ "program": "S1 Reguler (Undergraduate Program)"
1062
+ },
1063
+ "15.00.07.01": {
1064
+ "faculty": "Ilmu Pengetahuan Budaya",
1065
+ "shortFaculty": "FIB",
1066
+ "major": "Sastra Jerman (German)",
1067
+ "program": "S1 Reguler (Undergraduate Program)"
1068
+ },
1069
+ "16.00.07.01": {
1070
+ "faculty": "Ilmu Pengetahuan Budaya",
1071
+ "shortFaculty": "FIB",
1072
+ "major": "Sastra Rusia (Russian)",
1073
+ "program": "S1 Reguler (Undergraduate Program)"
1074
+ },
1075
+ "17.00.07.01": {
1076
+ "faculty": "Ilmu Pengetahuan Budaya",
1077
+ "shortFaculty": "FIB",
1078
+ "major": "Sastra Belanda (Dutch)",
1079
+ "program": "S1 Reguler (Undergraduate Program)"
1080
+ },
1081
+ "18.00.07.01": {
1082
+ "faculty": "Ilmu Pengetahuan Budaya",
1083
+ "shortFaculty": "FIB",
1084
+ "major": "Bahasa dan Kebudayaan Korea (Korean)",
1085
+ "program": "S1 Reguler (Undergraduate Program)"
1086
+ },
1087
+ "01.05.07.01": {
1088
+ "faculty": "Ilmu Pengetahuan Budaya",
1089
+ "shortFaculty": "FIB",
1090
+ "major": "Ilmu Susastra (Sastra) (Literature)",
1091
+ "program": "S2 (Graduate Program)"
1092
+ },
1093
+ "02.01.07.01": {
1094
+ "faculty": "Ilmu Pengetahuan Budaya",
1095
+ "shortFaculty": "FIB",
1096
+ "major": "Arkeologi (Archaeology)",
1097
+ "program": "S2 (Graduate Program)"
1098
+ },
1099
+ "02.02.07.01": {
1100
+ "faculty": "Ilmu Pengetahuan Budaya",
1101
+ "shortFaculty": "FIB",
1102
+ "major": "Ilmu Filsafat (Philosophy)",
1103
+ "program": "S2 (Graduate Program)"
1104
+ },
1105
+ "02.06.07.01": {
1106
+ "faculty": "Ilmu Pengetahuan Budaya",
1107
+ "shortFaculty": "FIB",
1108
+ "major": "Ilmu Sejarah (History Science - Graduate)",
1109
+ "program": "S2 (Graduate Program)"
1110
+ },
1111
+ "03.03.07.01": {
1112
+ "faculty": "Ilmu Pengetahuan Budaya",
1113
+ "shortFaculty": "FIB",
1114
+ "major": "Ilmu Perpustakaan (Library Science)",
1115
+ "program": "S2 (Graduate Program)"
1116
+ },
1117
+ "04.04.07.01": {
1118
+ "faculty": "Ilmu Pengetahuan Budaya",
1119
+ "shortFaculty": "FIB",
1120
+ "major": "Ilmu Linguistik (Linguistics)",
1121
+ "program": "S2 (Graduate Program)"
1122
+ },
1123
+ "28.00.07.01": {
1124
+ "faculty": "Ilmu Pengetahuan Budaya",
1125
+ "shortFaculty": "FIB",
1126
+ "major": "Asia Tenggara (Southeast Asia)",
1127
+ "program": "S2 (Graduate Program)"
1128
+ },
1129
+ "02.05.07.01": {
1130
+ "faculty": "Ilmu Pengetahuan Budaya",
1131
+ "shortFaculty": "FIB",
1132
+ "major": "Ilmu Susastra (Sastra) (Literature)",
1133
+ "program": "S3 (Doctoral Program)"
1134
+ },
1135
+ "03.01.07.01": {
1136
+ "faculty": "Ilmu Pengetahuan Budaya",
1137
+ "shortFaculty": "FIB",
1138
+ "major": "Arkeologi (Archaeology)",
1139
+ "program": "S3 (Doctoral Program)"
1140
+ },
1141
+ "03.02.07.01": {
1142
+ "faculty": "Ilmu Pengetahuan Budaya",
1143
+ "shortFaculty": "FIB",
1144
+ "major": "Ilmu Filsafat (Philosophy)",
1145
+ "program": "S3 (Doctoral Program)"
1146
+ },
1147
+ "03.06.07.01": {
1148
+ "faculty": "Ilmu Pengetahuan Budaya",
1149
+ "shortFaculty": "FIB",
1150
+ "major": "Ilmu Sejarah (History)",
1151
+ "program": "S3 (Doctoral Program)"
1152
+ },
1153
+ "05.04.07.01": {
1154
+ "faculty": "Ilmu Pengetahuan Budaya",
1155
+ "shortFaculty": "FIB",
1156
+ "major": "Ilmu Linguistik (Linguistics)",
1157
+ "program": "S3 (Doctoral Program)"
1158
+ },
1159
+ "01.04.07.01": {
1160
+ "faculty": "Ilmu Pengetahuan Budaya",
1161
+ "shortFaculty": "FIB",
1162
+ "major": "Penerjemahan Bahasa Arab (Arabic Translation)",
1163
+ "program": "Spesialis I (Specialist Program)"
1164
+ },
1165
+ "02.04.07.01": {
1166
+ "faculty": "Ilmu Pengetahuan Budaya",
1167
+ "shortFaculty": "FIB",
1168
+ "major": "Penerjemahan Bahasa Inggris (English Translation)",
1169
+ "program": "Spesialis I (Specialist Program)"
1170
+ },
1171
+ "03.04.07.01": {
1172
+ "faculty": "Ilmu Pengetahuan Budaya",
1173
+ "shortFaculty": "FIB",
1174
+ "major": "Penerjemahan Bahasa Perancis (French Translation)",
1175
+ "program": "Spesialis I (Specialist Program)"
1176
+ },
1177
+ "05.03.07.01": {
1178
+ "faculty": "Ilmu Pengetahuan Budaya",
1179
+ "shortFaculty": "FIB",
1180
+ "major": "Ilmu Perpustakaan (Library Science)",
1181
+ "program": "S1 Paralel (S1 Paralel)"
1182
+ },
1183
+ "19.00.07.01": {
1184
+ "faculty": "Ilmu Pengetahuan Budaya",
1185
+ "shortFaculty": "FIB",
1186
+ "major": "Sastra Cina (Chinese)",
1187
+ "program": "S1 Paralel (S1 Paralel)"
1188
+ },
1189
+ "20.00.07.01": {
1190
+ "faculty": "Ilmu Pengetahuan Budaya",
1191
+ "shortFaculty": "FIB",
1192
+ "major": "Sastra Arab (Arabic)",
1193
+ "program": "S1 Paralel (S1 Paralel)"
1194
+ },
1195
+ "21.00.07.01": {
1196
+ "faculty": "Ilmu Pengetahuan Budaya",
1197
+ "shortFaculty": "FIB",
1198
+ "major": "Sastra Jepang (Japanese)",
1199
+ "program": "S1 Paralel (S1 Paralel)"
1200
+ },
1201
+ "22.00.07.01": {
1202
+ "faculty": "Ilmu Pengetahuan Budaya",
1203
+ "shortFaculty": "FIB",
1204
+ "major": "Sastra Inggris (English)",
1205
+ "program": "S1 Paralel (S1 Paralel)"
1206
+ },
1207
+ "23.00.07.01": {
1208
+ "faculty": "Ilmu Pengetahuan Budaya",
1209
+ "shortFaculty": "FIB",
1210
+ "major": "Sastra Perancis (French)",
1211
+ "program": "S1 Paralel (S1 Paralel)"
1212
+ },
1213
+ "24.00.07.01": {
1214
+ "faculty": "Ilmu Pengetahuan Budaya",
1215
+ "shortFaculty": "FIB",
1216
+ "major": "Sastra Jerman (German)",
1217
+ "program": "S1 Paralel (S1 Paralel)"
1218
+ },
1219
+ "26.00.07.01": {
1220
+ "faculty": "Ilmu Pengetahuan Budaya",
1221
+ "shortFaculty": "FIB",
1222
+ "major": "Sastra Belanda (Dutch)",
1223
+ "program": "S1 Paralel (S1 Paralel)"
1224
+ },
1225
+ "27.00.07.01": {
1226
+ "faculty": "Ilmu Pengetahuan Budaya",
1227
+ "shortFaculty": "FIB",
1228
+ "major": "Bahasa dan Kebudayaan Korea (Korean)",
1229
+ "program": "S1 Paralel (S1 Paralel)"
1230
+ },
1231
+ "01.00.08.01": {
1232
+ "faculty": "Psikologi",
1233
+ "shortFaculty": "FPsi",
1234
+ "major": "Psikologi (Psychology)",
1235
+ "program": "S1 Reguler (Undergraduate Program)"
1236
+ },
1237
+ "02.00.08.01": {
1238
+ "faculty": "Psikologi",
1239
+ "shortFaculty": "FPsi",
1240
+ "major": "Psikologi (Psychology)",
1241
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
1242
+ },
1243
+ "04.00.08.01": {
1244
+ "faculty": "Psikologi",
1245
+ "shortFaculty": "FPsi",
1246
+ "major": "Ilmu Psikologi (Psychology)",
1247
+ "program": "S2 (Graduate Program)"
1248
+ },
1249
+ "06.00.08.01": {
1250
+ "faculty": "Psikologi",
1251
+ "shortFaculty": "FPsi",
1252
+ "major": "Psikologi Profesi (Psychology)",
1253
+ "program": "S2 (Graduate Program)"
1254
+ },
1255
+ "05.00.08.01": {
1256
+ "faculty": "Psikologi",
1257
+ "shortFaculty": "FPsi",
1258
+ "major": "Psikologi (Psychology)",
1259
+ "program": "S3 (Doctoral Program)"
1260
+ },
1261
+ "07.00.08.01": {
1262
+ "faculty": "Psikologi",
1263
+ "shortFaculty": "FPsi",
1264
+ "major": "Psikologi (Psychology)",
1265
+ "program": "S1 Paralel (S1 Paralel)"
1266
+ },
1267
+ "01.02.09.01": {
1268
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1269
+ "shortFaculty": "FISIP",
1270
+ "major": "Ilmu Politik (Political Science)",
1271
+ "program": "S1 Reguler (Undergraduate Program)"
1272
+ },
1273
+ "01.04.09.01": {
1274
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1275
+ "shortFaculty": "FISIP",
1276
+ "major": "Sosiologi (Sociology)",
1277
+ "program": "S1 Reguler (Undergraduate Program)"
1278
+ },
1279
+ "01.05.09.01": {
1280
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1281
+ "shortFaculty": "FISIP",
1282
+ "major": "Kriminologi (Criminology)",
1283
+ "program": "S1 Reguler (Undergraduate Program)"
1284
+ },
1285
+ "01.06.09.01": {
1286
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1287
+ "shortFaculty": "FISIP",
1288
+ "major": "Ilmu Kesejahteraan Sosial (Social Welfare)",
1289
+ "program": "S1 Reguler (Undergraduate Program)"
1290
+ },
1291
+ "01.08.09.01": {
1292
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1293
+ "shortFaculty": "FISIP",
1294
+ "major": "Ilmu Hubungan Internasional (International Relations)",
1295
+ "program": "S1 Reguler (Undergraduate Program)"
1296
+ },
1297
+ "02.01.09.01": {
1298
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1299
+ "shortFaculty": "FISIP",
1300
+ "major": "Ilmu Komunikasi (Communication)",
1301
+ "program": "S1 Reguler (Undergraduate Program)"
1302
+ },
1303
+ "02.07.09.01": {
1304
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1305
+ "shortFaculty": "FISIP",
1306
+ "major": "Antropologi Sosial (Social Anthropology)",
1307
+ "program": "S1 Reguler (Undergraduate Program)"
1308
+ },
1309
+ "05.03.09.01": {
1310
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1311
+ "shortFaculty": "FISIP",
1312
+ "major": "Ilmu Administrasi Fiskal (Fiscal Administration)",
1313
+ "program": "S1 Reguler (Undergraduate Program)"
1314
+ },
1315
+ "06.03.09.01": {
1316
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1317
+ "shortFaculty": "FISIP",
1318
+ "major": "Ilmu Administrasi Negara (Public Administration)",
1319
+ "program": "S1 Reguler (Undergraduate Program)"
1320
+ },
1321
+ "07.03.09.01": {
1322
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1323
+ "shortFaculty": "FISIP",
1324
+ "major": "Ilmu Administrasi Niaga (Business Administration)",
1325
+ "program": "S1 Reguler (Undergraduate Program)"
1326
+ },
1327
+ "02.02.09.01": {
1328
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1329
+ "shortFaculty": "FISIP",
1330
+ "major": "Ilmu Politik - Ekstensi (Political Science - Ext)",
1331
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1332
+ },
1333
+ "02.05.09.01": {
1334
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1335
+ "shortFaculty": "FISIP",
1336
+ "major": "Kriminologi - Ekstensi (Criminology - Ext)",
1337
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1338
+ },
1339
+ "08.03.09.01": {
1340
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1341
+ "shortFaculty": "FISIP",
1342
+ "major": "Ilmu Administrasi Fiskal - Ekstensi (Fiscal Administration - Ext)",
1343
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1344
+ },
1345
+ "09.03.09.01": {
1346
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1347
+ "shortFaculty": "FISIP",
1348
+ "major": "Ilmu Administrasi Negara - Ekstensi (Public Administration - Ext)",
1349
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1350
+ },
1351
+ "10.03.09.01": {
1352
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1353
+ "shortFaculty": "FISIP",
1354
+ "major": "Ilmu Administrasi Niaga - Ekstensi (Business Administration - Ext)",
1355
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1356
+ },
1357
+ "07.01.09.01": {
1358
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1359
+ "shortFaculty": "FISIP",
1360
+ "major": "Ilmu Komunikasi (Communication - Intl)",
1361
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
1362
+ },
1363
+ "02.04.09.01": {
1364
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1365
+ "shortFaculty": "FISIP",
1366
+ "major": "Sosiologi (Sociology)",
1367
+ "program": "S2 (Graduate Program)"
1368
+ },
1369
+ "02.06.09.01": {
1370
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1371
+ "shortFaculty": "FISIP",
1372
+ "major": "Ilmu Kesejahteraan Sosial (Social Welfare)",
1373
+ "program": "S2 (Graduate Program)"
1374
+ },
1375
+ "02.08.09.01": {
1376
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1377
+ "shortFaculty": "FISIP",
1378
+ "major": "Ilmu Hub Internasional (International Relations)",
1379
+ "program": "S2 (Graduate Program)"
1380
+ },
1381
+ "03.02.09.01": {
1382
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1383
+ "shortFaculty": "FISIP",
1384
+ "major": "Ilmu Politik (Political Science)",
1385
+ "program": "S2 (Graduate Program)"
1386
+ },
1387
+ "03.05.09.01": {
1388
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1389
+ "shortFaculty": "FISIP",
1390
+ "major": "Kriminologi (Criminology)",
1391
+ "program": "S2 (Graduate Program)"
1392
+ },
1393
+ "03.07.09.01": {
1394
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1395
+ "shortFaculty": "FISIP",
1396
+ "major": "Antropologi (Anthropology)",
1397
+ "program": "S2 (Graduate Program)"
1398
+ },
1399
+ "03.08.09.01": {
1400
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1401
+ "shortFaculty": "FISIP",
1402
+ "major": "Kajian Terorisme dalam Keamanan Internasional ()",
1403
+ "program": "S2 (Graduate Program)"
1404
+ },
1405
+ "04.01.09.01": {
1406
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1407
+ "shortFaculty": "FISIP",
1408
+ "major": "Ilmu Komunikasi (Communication)",
1409
+ "program": "S2 (Graduate Program)"
1410
+ },
1411
+ "11.03.09.01": {
1412
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1413
+ "shortFaculty": "FISIP",
1414
+ "major": "Ilmu Administrasi (Administration)",
1415
+ "program": "S2 (Graduate Program)"
1416
+ },
1417
+ "03.04.09.01": {
1418
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1419
+ "shortFaculty": "FISIP",
1420
+ "major": "Sosiologi (Sociology)",
1421
+ "program": "S3 (Doctoral Program)"
1422
+ },
1423
+ "03.06.09.01": {
1424
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1425
+ "shortFaculty": "FISIP",
1426
+ "major": "Ilmu Kesejahteraan Sosial (Social Welfare)",
1427
+ "program": "S3 (Doctoral Program)"
1428
+ },
1429
+ "04.02.09.01": {
1430
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1431
+ "shortFaculty": "FISIP",
1432
+ "major": "Ilmu Politik (Political Science)",
1433
+ "program": "S3 (Doctoral Program)"
1434
+ },
1435
+ "04.05.09.01": {
1436
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1437
+ "shortFaculty": "FISIP",
1438
+ "major": "Kriminologi (Criminology)",
1439
+ "program": "S3 (Doctoral Program)"
1440
+ },
1441
+ "04.07.09.01": {
1442
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1443
+ "shortFaculty": "FISIP",
1444
+ "major": "Antropologi (Anthropology)",
1445
+ "program": "S3 (Doctoral Program)"
1446
+ },
1447
+ "05.01.09.01": {
1448
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1449
+ "shortFaculty": "FISIP",
1450
+ "major": "Ilmu Komunikasi (Communication)",
1451
+ "program": "S3 (Doctoral Program)"
1452
+ },
1453
+ "12.03.09.01": {
1454
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1455
+ "shortFaculty": "FISIP",
1456
+ "major": "Ilmu Administrasi (Administration)",
1457
+ "program": "S3 (Doctoral Program)"
1458
+ },
1459
+ "05.02.09.01": {
1460
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1461
+ "shortFaculty": "FISIP",
1462
+ "major": "Ilmu Politik (Political Science)",
1463
+ "program": "S1 Paralel (S1 Paralel)"
1464
+ },
1465
+ "05.05.09.01": {
1466
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1467
+ "shortFaculty": "FISIP",
1468
+ "major": "Kriminologi (Criminology)",
1469
+ "program": "S1 Paralel (S1 Paralel)"
1470
+ },
1471
+ "06.01.09.01": {
1472
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1473
+ "shortFaculty": "FISIP",
1474
+ "major": "Ilmu Komunikasi (Communication)",
1475
+ "program": "S1 Paralel (S1 Paralel)"
1476
+ },
1477
+ "13.03.09.01": {
1478
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1479
+ "shortFaculty": "FISIP",
1480
+ "major": "Ilmu Administrasi Fiskal (Fiscal Administration)",
1481
+ "program": "S1 Paralel (S1 Paralel)"
1482
+ },
1483
+ "14.03.09.01": {
1484
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1485
+ "shortFaculty": "FISIP",
1486
+ "major": "Ilmu Administrasi Negara (Public Administration)",
1487
+ "program": "S1 Paralel (S1 Paralel)"
1488
+ },
1489
+ "15.03.09.01": {
1490
+ "faculty": "Ilmu Sosial & Ilmu Politik",
1491
+ "shortFaculty": "FISIP",
1492
+ "major": "Ilmu Administrasi Niaga (Business Administration)",
1493
+ "program": "S1 Paralel (S1 Paralel)"
1494
+ },
1495
+ "01.00.10.01": {
1496
+ "faculty": "Kesehatan Masyarakat",
1497
+ "shortFaculty": "FKM",
1498
+ "major": "Kesehatan Masyarakat (Public Health)",
1499
+ "program": "S1 Reguler (Undergraduate Program)"
1500
+ },
1501
+ "01.04.10.01": {
1502
+ "faculty": "Kesehatan Masyarakat",
1503
+ "shortFaculty": "FKM",
1504
+ "major": "Studi Gizi (Nutrition)",
1505
+ "program": "S1 Reguler (Undergraduate Program)"
1506
+ },
1507
+ "06.00.10.01": {
1508
+ "faculty": "Kesehatan Masyarakat",
1509
+ "shortFaculty": "FKM",
1510
+ "major": "Kesehatan Lingkungan (Kesehatan Lingkungan)",
1511
+ "program": "S1 Reguler (Undergraduate Program)"
1512
+ },
1513
+ "xx.00.10.01": {
1514
+ "faculty": "Kesehatan Masyarakat",
1515
+ "shortFaculty": "FKM",
1516
+ "major": "Keselamatan dan Kesehatan Kerja (Keselamatan dan Kesehatan Kerja)",
1517
+ "program": "S1 Reguler (Undergraduate Program)"
1518
+ },
1519
+ "02.00.10.01": {
1520
+ "faculty": "Kesehatan Masyarakat",
1521
+ "shortFaculty": "FKM",
1522
+ "major": "Kesehatan Masyarakat - Ekstensi (Public Health)",
1523
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1524
+ },
1525
+ "01.03.10.01": {
1526
+ "faculty": "Kesehatan Masyarakat",
1527
+ "shortFaculty": "FKM",
1528
+ "major": "Epidemiologi (Epidemiology)",
1529
+ "program": "S2 (Graduate Program)"
1530
+ },
1531
+ "02.06.10.01": {
1532
+ "faculty": "Kesehatan Masyarakat",
1533
+ "shortFaculty": "FKM",
1534
+ "major": "Keselamatan & Kesehatan Kerja (Occupational Health & Safety)",
1535
+ "program": "S2 (Graduate Program)"
1536
+ },
1537
+ "03.00.10.01": {
1538
+ "faculty": "Kesehatan Masyarakat",
1539
+ "shortFaculty": "FKM",
1540
+ "major": "Ilmu Kesehatan Masyarakat (Public Health Science)",
1541
+ "program": "S2 (Graduate Program)"
1542
+ },
1543
+ "04.01.10.01": {
1544
+ "faculty": "Kesehatan Masyarakat",
1545
+ "shortFaculty": "FKM",
1546
+ "major": "Administrasi Rumah Sakit (Hospital Administration)",
1547
+ "program": "S2 (Graduate Program)"
1548
+ },
1549
+ "02.03.10.01": {
1550
+ "faculty": "Kesehatan Masyarakat",
1551
+ "shortFaculty": "FKM",
1552
+ "major": "Epidemiologi (Epidemiology)",
1553
+ "program": "S3 (Doctoral Program)"
1554
+ },
1555
+ "05.00.10.01": {
1556
+ "faculty": "Kesehatan Masyarakat",
1557
+ "shortFaculty": "FKM",
1558
+ "major": "Ilmu Kesehatan Masyarakat (Public Health Science)",
1559
+ "program": "S3 (Doctoral Program)"
1560
+ },
1561
+ "01.01.10.01": {
1562
+ "faculty": "Kesehatan Masyarakat",
1563
+ "shortFaculty": "FKM",
1564
+ "major": "Asuransi Kesehatan (Health Insurance)",
1565
+ "program": "D3 (Diploma III)"
1566
+ },
1567
+ "01.06.10.01": {
1568
+ "faculty": "Kesehatan Masyarakat",
1569
+ "shortFaculty": "FKM",
1570
+ "major": "Keselamatan & Kesehatan Kerja (Occupational Health & Safety)",
1571
+ "program": "D3 (Diploma III)"
1572
+ },
1573
+ "01.07.10.01": {
1574
+ "faculty": "Kesehatan Masyarakat",
1575
+ "shortFaculty": "FKM",
1576
+ "major": "Kehumasan Pelayanan Kesehatan (Public Relation in Health Care)",
1577
+ "program": "D3 (Diploma III)"
1578
+ },
1579
+ "02.01.10.01": {
1580
+ "faculty": "Kesehatan Masyarakat",
1581
+ "shortFaculty": "FKM",
1582
+ "major": "Manajemen Informasi Kesehatan & Rekam Medis (Health Information Management & Medical Record)",
1583
+ "program": "D3 (Diploma III)"
1584
+ },
1585
+ "02.07.10.01": {
1586
+ "faculty": "Kesehatan Masyarakat",
1587
+ "shortFaculty": "FKM",
1588
+ "major": "Promosi & Pendidikan Kesehatan (Health Education & Promotion)",
1589
+ "program": "D3 (Diploma III)"
1590
+ },
1591
+ "03.01.10.01": {
1592
+ "faculty": "Kesehatan Masyarakat",
1593
+ "shortFaculty": "FKM",
1594
+ "major": "Manajemen Pelayanan Rumah Sakit (Hospital Services Management)",
1595
+ "program": "D3 (Diploma III)"
1596
+ },
1597
+ "04.00.10.01": {
1598
+ "faculty": "Kesehatan Masyarakat",
1599
+ "shortFaculty": "FKM",
1600
+ "major": "Ilmu Kesehatan Masyarakat (Public Health Science)",
1601
+ "program": "S2 Kls Internasional (Intl. Class Graduate Program)"
1602
+ },
1603
+ "01.00.12.01": {
1604
+ "faculty": "Ilmu Komputer",
1605
+ "shortFaculty": "Fasilkom",
1606
+ "major": "Ilmu Komputer (Computer Science)",
1607
+ "program": "S1 Reguler (Undergraduate Program)"
1608
+ },
1609
+ "06.00.12.01": {
1610
+ "faculty": "Ilmu Komputer",
1611
+ "shortFaculty": "Fasilkom",
1612
+ "major": "Sistem Informasi (Information System)",
1613
+ "program": "S1 Reguler (Undergraduate Program)"
1614
+ },
1615
+ "07.00.12.01": {
1616
+ "faculty": "Ilmu Komputer",
1617
+ "shortFaculty": "Fasilkom",
1618
+ "major": "Sistem Informasi - Ekstensi (Information Systems - Ext)",
1619
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1620
+ },
1621
+ "02.00.12.01": {
1622
+ "faculty": "Ilmu Komputer",
1623
+ "shortFaculty": "Fasilkom",
1624
+ "major": "Ilmu Komputer (Computer Science - Intl)",
1625
+ "program": "S1 Kls Internasional (Intl. Class Undergraduate Program)"
1626
+ },
1627
+ "03.00.12.01": {
1628
+ "faculty": "Ilmu Komputer",
1629
+ "shortFaculty": "Fasilkom",
1630
+ "major": "Ilmu Komputer (Computer Science)",
1631
+ "program": "S2 (Graduate Program)"
1632
+ },
1633
+ "04.00.12.01": {
1634
+ "faculty": "Ilmu Komputer",
1635
+ "shortFaculty": "Fasilkom",
1636
+ "major": "Teknologi Informasi (Information Technology)",
1637
+ "program": "S2 (Graduate Program)"
1638
+ },
1639
+ "05.00.12.01": {
1640
+ "faculty": "Ilmu Komputer",
1641
+ "shortFaculty": "Fasilkom",
1642
+ "major": "Ilmu Komputer (Computer Science)",
1643
+ "program": "S3 (Doctoral Program)"
1644
+ },
1645
+ "08.00.12.01": {
1646
+ "faculty": "Ilmu Komputer",
1647
+ "shortFaculty": "Fasilkom",
1648
+ "major": "Sistem Informasi (Information System)",
1649
+ "program": "S1 Paralel (S1 Paralel)"
1650
+ },
1651
+ "09.00.12.01": {
1652
+ "faculty": "Ilmu Komputer",
1653
+ "shortFaculty": "Fasilkom",
1654
+ "major": "Ilmu Komputer (Computer Science)",
1655
+ "program": "S1 Paralel (S1 Paralel)"
1656
+ },
1657
+ "01.00.13.01": {
1658
+ "faculty": "Ilmu Keperawatan",
1659
+ "shortFaculty": "FIK",
1660
+ "major": "Ilmu Keperawatan (Nursing Science)",
1661
+ "program": "S1 Reguler (Undergraduate Program)"
1662
+ },
1663
+ "02.00.13.01": {
1664
+ "faculty": "Ilmu Keperawatan",
1665
+ "shortFaculty": "FIK",
1666
+ "major": "Ilmu Keperawatan - Ekstensi (Nursing Science - Ext)",
1667
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1668
+ },
1669
+ "04.00.13.01": {
1670
+ "faculty": "Ilmu Keperawatan",
1671
+ "shortFaculty": "FIK",
1672
+ "major": "Ilmu Keperawatan (Nursing)",
1673
+ "program": "S2 (Graduate Program)"
1674
+ },
1675
+ "09.00.13.01": {
1676
+ "faculty": "Ilmu Keperawatan",
1677
+ "shortFaculty": "FIK",
1678
+ "major": "Ilmu Keperawatan (Nursing)",
1679
+ "program": "S3 (Doctoral Program)"
1680
+ },
1681
+ "03.00.13.01": {
1682
+ "faculty": "Ilmu Keperawatan",
1683
+ "shortFaculty": "FIK",
1684
+ "major": "Profesi Keperawatan (Bachelor of Nursing)",
1685
+ "program": "Profesi (Profession Program)"
1686
+ },
1687
+ "05.00.13.01": {
1688
+ "faculty": "Ilmu Keperawatan",
1689
+ "shortFaculty": "FIK",
1690
+ "major": "Ners Spesialis Keperawatan Komunitas (Community Nursing Spesialist)",
1691
+ "program": "Spesialis I (Specialist Program)"
1692
+ },
1693
+ "06.00.13.01": {
1694
+ "faculty": "Ilmu Keperawatan",
1695
+ "shortFaculty": "FIK",
1696
+ "major": "Ners Spesialis Keperawatan Maternitas (Maternity Nursing Spesialist)",
1697
+ "program": "Spesialis I (Specialist Program)"
1698
+ },
1699
+ "07.00.13.01": {
1700
+ "faculty": "Ilmu Keperawatan",
1701
+ "shortFaculty": "FIK",
1702
+ "major": "Ners Spesialis Keperawatan Medikal Bedah (Surgery Medical Nursing Spesialist)",
1703
+ "program": "Spesialis I (Specialist Program)"
1704
+ },
1705
+ "08.00.13.01": {
1706
+ "faculty": "Ilmu Keperawatan",
1707
+ "shortFaculty": "FIK",
1708
+ "major": "Ners Spesialis Keperawatan Jiwa (Mental Care Nursing Spesialist)",
1709
+ "program": "Spesialis I (Specialist Program)"
1710
+ },
1711
+ "10.00.13.01": {
1712
+ "faculty": "Ilmu Keperawatan",
1713
+ "shortFaculty": "FIK",
1714
+ "major": "Ners Spesialis Keperawatan Anak (Child Nursing Specialist)",
1715
+ "program": "Spesialis I (Specialist Program)"
1716
+ },
1717
+ "01.00.14.01": {
1718
+ "faculty": "Pascasarjana",
1719
+ "shortFaculty": "Pascasarjana",
1720
+ "major": "Kajian Ilmu Kepolisian (Police Studies)",
1721
+ "program": "S2 (Graduate Program)"
1722
+ },
1723
+ "02.00.14.01": {
1724
+ "faculty": "Pascasarjana",
1725
+ "shortFaculty": "Pascasarjana",
1726
+ "major": "Kajian Ilmu Lingkungan (Environmental Studies)",
1727
+ "program": "S2 (Graduate Program)"
1728
+ },
1729
+ "03.00.14.01": {
1730
+ "faculty": "Pascasarjana",
1731
+ "shortFaculty": "Pascasarjana",
1732
+ "major": "Kajian Kependudukan & Ketenagaan Kerja (Population & Manpower Studies)",
1733
+ "program": "S2 (Graduate Program)"
1734
+ },
1735
+ "04.00.14.01": {
1736
+ "faculty": "Pascasarjana",
1737
+ "shortFaculty": "Pascasarjana",
1738
+ "major": "Kajian Ketahanan Nasional (National Resilience)",
1739
+ "program": "S2 (Graduate Program)"
1740
+ },
1741
+ "05.00.14.01": {
1742
+ "faculty": "Pascasarjana",
1743
+ "shortFaculty": "Pascasarjana",
1744
+ "major": "Kajian Pengembangan Perkotaan (Urban Studies)",
1745
+ "program": "S2 (Graduate Program)"
1746
+ },
1747
+ "06.00.14.01": {
1748
+ "faculty": "Pascasarjana",
1749
+ "shortFaculty": "Pascasarjana",
1750
+ "major": "Kajian Gender (Gender Studies)",
1751
+ "program": "S2 (Graduate Program)"
1752
+ },
1753
+ "07.00.14.01": {
1754
+ "faculty": "Pascasarjana",
1755
+ "shortFaculty": "Pascasarjana",
1756
+ "major": "Kajian Wilayah Amerika (American Studies)",
1757
+ "program": "S2 (Graduate Program)"
1758
+ },
1759
+ "08.00.14.01": {
1760
+ "faculty": "Pascasarjana",
1761
+ "shortFaculty": "Pascasarjana",
1762
+ "major": "Kajian Wilayah Eropa (European Studies)",
1763
+ "program": "S2 (Graduate Program)"
1764
+ },
1765
+ "09.00.14.01": {
1766
+ "faculty": "Pascasarjana",
1767
+ "shortFaculty": "Pascasarjana",
1768
+ "major": "Kajian Wilayah Jepang (Japanese Studies)",
1769
+ "program": "S2 (Graduate Program)"
1770
+ },
1771
+ "10.00.14.01": {
1772
+ "faculty": "Pascasarjana",
1773
+ "shortFaculty": "Pascasarjana",
1774
+ "major": "Kajian Wilayah Timur Tengah Islam (Islamics & Middle Eastern Studies)",
1775
+ "program": "S2 (Graduate Program)"
1776
+ },
1777
+ "12.00.14.01": {
1778
+ "faculty": "Pascasarjana",
1779
+ "shortFaculty": "Pascasarjana",
1780
+ "major": "Teknologi Biomedis (Biomedical Engineering)",
1781
+ "program": "S2 (Graduate Program)"
1782
+ },
1783
+ "11.00.14.01": {
1784
+ "faculty": "Pascasarjana",
1785
+ "shortFaculty": "Pascasarjana",
1786
+ "major": "Ilmu Lingkungan (Environmental Studies)",
1787
+ "program": "S3 (Doctoral Program)"
1788
+ },
1789
+ "01.00.15.01": {
1790
+ "faculty": "Vokasi",
1791
+ "shortFaculty": "Vokasi",
1792
+ "major": "Perumahsakitan (Hospital Management)",
1793
+ "program": "D3 (Diploma III)"
1794
+ },
1795
+ "02.00.15.01": {
1796
+ "faculty": "Vokasi",
1797
+ "shortFaculty": "Vokasi",
1798
+ "major": "Fisioterapi (Physiotherapy)",
1799
+ "program": "D3 (Diploma III)"
1800
+ },
1801
+ "03.00.15.01": {
1802
+ "faculty": "Vokasi",
1803
+ "shortFaculty": "Vokasi",
1804
+ "major": "Okupasi Terapi (Occupational Therapy)",
1805
+ "program": "D3 (Diploma III)"
1806
+ },
1807
+ "04.00.15.01": {
1808
+ "faculty": "Vokasi",
1809
+ "shortFaculty": "Vokasi",
1810
+ "major": "Akuntansi (Accounting)",
1811
+ "program": "D3 (Diploma III)"
1812
+ },
1813
+ "05.00.15.01": {
1814
+ "faculty": "Vokasi",
1815
+ "shortFaculty": "Vokasi",
1816
+ "major": "Manajemen Informasi & Dokumen (Management of Information & Document)",
1817
+ "program": "D3 (Diploma III)"
1818
+ },
1819
+ "06.00.15.01": {
1820
+ "faculty": "Vokasi",
1821
+ "shortFaculty": "Vokasi",
1822
+ "major": "Komunikasi (Communication)",
1823
+ "program": "D3 (Diploma III)"
1824
+ },
1825
+ "07.00.15.01": {
1826
+ "faculty": "Vokasi",
1827
+ "shortFaculty": "Vokasi",
1828
+ "major": "Administrasi Asuransi & Aktuaria (Insurance & Actuarial Program)",
1829
+ "program": "D3 (Diploma III)"
1830
+ },
1831
+ "08.00.15.01": {
1832
+ "faculty": "Vokasi",
1833
+ "shortFaculty": "Vokasi",
1834
+ "major": "Administrasi Keuangan & Perbankan (Finance & Banking Program)",
1835
+ "program": "D3 (Diploma III)"
1836
+ },
1837
+ "09.00.15.01": {
1838
+ "faculty": "Vokasi",
1839
+ "shortFaculty": "Vokasi",
1840
+ "major": "Administrasi Perkantoran & Sekretari (Office & Secretarial Program)",
1841
+ "program": "D3 (Diploma III)"
1842
+ },
1843
+ "10.00.15.01": {
1844
+ "faculty": "Vokasi",
1845
+ "shortFaculty": "Vokasi",
1846
+ "major": "Administrasi Perpajakan (Taxation Program)",
1847
+ "program": "D3 (Diploma III)"
1848
+ },
1849
+ "11.00.15.01": {
1850
+ "faculty": "Vokasi",
1851
+ "shortFaculty": "Vokasi",
1852
+ "major": "Pariwisata (Cultural Tourism)",
1853
+ "program": "D3 (Diploma III)"
1854
+ },
1855
+ "01.00.16.01": {
1856
+ "faculty": "Perolehan Kredit",
1857
+ "shortFaculty": "Perolehan Kredit",
1858
+ "major": "Pertukaran Mahasiswa (Student Exchange)",
1859
+ "program": "S1 Reguler (Undergraduate Program)"
1860
+ },
1861
+ "02.00.16.01": {
1862
+ "faculty": "Perolehan Kredit",
1863
+ "shortFaculty": "Perolehan Kredit",
1864
+ "major": "Pertukaran Mahasiswa (Student Exchange)",
1865
+ "program": "S2 (Graduate Program)"
1866
+ },
1867
+ "03.00.16.01": {
1868
+ "faculty": "Perolehan Kredit",
1869
+ "shortFaculty": "Perolehan Kredit",
1870
+ "major": "Pertukaran Mahasiswa (Student Exchange)",
1871
+ "program": "S3 (Doctoral Program)"
1872
+ },
1873
+ "03.HC.16.01": {
1874
+ "faculty": "Perolehan Kredit",
1875
+ "shortFaculty": "Perolehan Kredit",
1876
+ "major": "Honoris Causa (Honoris Causa)",
1877
+ "program": "S3 (Doctoral Program)"
1878
+ },
1879
+ "01.00.17.01": {
1880
+ "faculty": "Farmasi",
1881
+ "shortFaculty": "FF",
1882
+ "major": "Farmasi (Pharmacy)",
1883
+ "program": "S1 Reguler (Undergraduate Program)"
1884
+ },
1885
+ "04.00.17.01": {
1886
+ "faculty": "Farmasi",
1887
+ "shortFaculty": "FF",
1888
+ "major": "Ilmu Kefarmasian (Pharmaceutical Science)",
1889
+ "program": "S2 (Graduate Program)"
1890
+ },
1891
+ "05.00.17.01": {
1892
+ "faculty": "Farmasi",
1893
+ "shortFaculty": "FF",
1894
+ "major": "Herbal (Herbal)",
1895
+ "program": "S2 (Graduate Program)"
1896
+ },
1897
+ "06.00.17.01": {
1898
+ "faculty": "Farmasi",
1899
+ "shortFaculty": "FF",
1900
+ "major": "Farmasi (Pharmacy)",
1901
+ "program": "S3 (Doctoral Program)"
1902
+ },
1903
+ "03.00.17.01": {
1904
+ "faculty": "Farmasi",
1905
+ "shortFaculty": "FF",
1906
+ "major": "Apoteker (Apothecary)",
1907
+ "program": "Profesi (Profession Program)"
1908
+ },
1909
+ "02.00.17.01": {
1910
+ "faculty": "Farmasi",
1911
+ "shortFaculty": "FF",
1912
+ "major": "Farmasi (Pharmacy)",
1913
+ "program": "S1 Paralel (S1 Paralel)"
1914
+ },
1915
+ "01.00.18.01": {
1916
+ "faculty": "Ilmu Administrasi",
1917
+ "shortFaculty": "FIA",
1918
+ "major": "Ilmu Administrasi Fiskal (Fiscal Administration)",
1919
+ "program": "S1 Reguler (Undergraduate Program)"
1920
+ },
1921
+ "02.00.18.01": {
1922
+ "faculty": "Ilmu Administrasi",
1923
+ "shortFaculty": "FIA",
1924
+ "major": "Ilmu Administrasi Negara (Public Administration)",
1925
+ "program": "S1 Reguler (Undergraduate Program)"
1926
+ },
1927
+ "03.00.18.01": {
1928
+ "faculty": "Ilmu Administrasi",
1929
+ "shortFaculty": "FIA",
1930
+ "major": "Ilmu Administrasi Niaga (Business Administration)",
1931
+ "program": "S1 Reguler (Undergraduate Program)"
1932
+ },
1933
+ "04.00.18.01": {
1934
+ "faculty": "Ilmu Administrasi",
1935
+ "shortFaculty": "FIA",
1936
+ "major": "Ilmu Administrasi Fiskal (Fiscal Administration)",
1937
+ "program": "S1 Paralel (S1 Paralel)"
1938
+ },
1939
+ "05.00.18.01": {
1940
+ "faculty": "Ilmu Administrasi",
1941
+ "shortFaculty": "FIA",
1942
+ "major": "Ilmu Administrasi Negara (Public Administration)",
1943
+ "program": "S1 Paralel (S1 Paralel)"
1944
+ },
1945
+ "06.00.18.01": {
1946
+ "faculty": "Ilmu Administrasi",
1947
+ "shortFaculty": "FIA",
1948
+ "major": "Ilmu Administrasi Niaga (Business Administration)",
1949
+ "program": "S1 Paralel (S1 Paralel)"
1950
+ },
1951
+ "07.00.18.01:": {
1952
+ "faculty": "Ilmu Administrasi",
1953
+ "shortFaculty": "FIA",
1954
+ "major": "Ilmu Administrasi Fiskal - Ekstensi (Fiscal Administration - Ext)",
1955
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1956
+ },
1957
+ "08.00.18.01": {
1958
+ "faculty": "Ilmu Administrasi",
1959
+ "shortFaculty": "FIA",
1960
+ "major": "Ilmu Administrasi Negara - Ekstensi (Public Administration - Ext)",
1961
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1962
+ },
1963
+ "09.00.18.01": {
1964
+ "faculty": "Ilmu Administrasi",
1965
+ "shortFaculty": "FIA",
1966
+ "major": "Ilmu Administrasi Niaga - Ekstensi (Business Administration - Ext)",
1967
+ "program": "S1 Ekstensi (Extended Undergraduate Program)"
1968
+ },
1969
+ "10.00.18.01": {
1970
+ "faculty": "Ilmu Administrasi",
1971
+ "shortFaculty": "FIA",
1972
+ "major": "Ilmu Administrasi (Administration)",
1973
+ "program": "S2 (Graduate Program)"
1974
+ },
1975
+ "11.00.18.01": {
1976
+ "faculty": "Ilmu Administrasi",
1977
+ "shortFaculty": "FIA",
1978
+ "major": "Ilmu Administrasi (Administration)",
1979
+ "program": "S3 (Doctoral Program)"
1980
+ },
1981
+ "07.02.03.01": {
1982
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
1983
+ "shortFaculty": "FMIPA",
1984
+ "major": "Geologi (Geology)",
1985
+ "program": "S1 Reguler (Undergraduate Program)"
1986
+ },
1987
+ "06.02.03.01": {
1988
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
1989
+ "shortFaculty": "FMIPA",
1990
+ "major": "Geofisika (Geophysics)",
1991
+ "program": "S1 Reguler (Undergraduate Program)"
1992
+ },
1993
+ "04.01.03.01": {
1994
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
1995
+ "shortFaculty": "FMIPA",
1996
+ "major": "Statistika (Statistics)",
1997
+ "program": "S1 Reguler (Undergraduate Program)"
1998
+ },
1999
+ "05.01.03.01": {
2000
+ "faculty": "Matematika & Ilmu Pengetahuan Alam",
2001
+ "shortFaculty": "FMIPA",
2002
+ "major": "Aktuaria (Actuarial Science)",
2003
+ "program": "S1 Reguler (Undergraduate Program)"
2004
+ }
2005
+ };
2006
+
2007
+ // src/kd_org/code.ts
2008
+ var FACULTY_EN_MAP = {
2009
+ "Kedokteran": { en: "Faculty of Medicine", fac: "FK" },
2010
+ "Kedokteran Gigi": { en: "Faculty of Dentistry", fac: "FKG" },
2011
+ "Matematika & Ilmu Pengetahuan Alam": { en: "Faculty of Mathematics and Natural Sciences", fac: "SCI" },
2012
+ "Teknik": { en: "Faculty of Engineering", fac: "ENG" },
2013
+ "Hukum": { en: "Faculty of Law", fac: "LAW" },
2014
+ "Ekonomi": { en: "Faculty of Economics and Business", fac: "FEB" },
2015
+ "Ekonomi & Bisnis": { en: "Faculty of Economics and Business", fac: "FEB" },
2016
+ "Ilmu Pengetahuan Budaya": { en: "Faculty of Humanities", fac: "HUM" },
2017
+ "Psikologi": { en: "Faculty of Psychology", fac: "FPSI" },
2018
+ "Ilmu Sosial & Ilmu Politik": { en: "Faculty of Social and Political Sciences", fac: "FISIP" },
2019
+ "Kesehatan Masyarakat": { en: "Faculty of Public Health", fac: "FKM" },
2020
+ "Ilmu Komputer": { en: "Faculty of Computer Science", fac: "CS" },
2021
+ "Ilmu Keperawatan": { en: "Faculty of Nursing", fac: "FIK" },
2022
+ "Farmasi": { en: "Faculty of Pharmacy", fac: "PHARM" },
2023
+ "Ilmu Administrasi": { en: "Faculty of Administrative Sciences", fac: "FIA" },
2024
+ "Program Pendidikan Vokasi": { en: "Vocational Education Program", fac: "VOKASI" },
2025
+ "Sekolah Ilmu Lingkungan": { en: "School of Environmental Science", fac: "SIL" },
2026
+ "Sekolah Kajian Stratejik & Global": { en: "School of Strategic and Global Studies", fac: "SKSG" }
2027
+ };
2028
+ function lookupOrgCode(code) {
2029
+ if (!code) return void 0;
2030
+ const raw = ORG_CODES[code.trim()];
2031
+ if (!raw) return void 0;
2032
+ const facultyId = raw.faculty;
2033
+ const fak = raw.shortFaculty || "";
2034
+ const meta = FACULTY_EN_MAP[facultyId] || { en: `Faculty of ${facultyId}`, fac: fak };
2035
+ const majorMatch = raw.major.match(/^(.*?)(?:\s*\((.*?)\))?$/);
2036
+ const prodiId = majorMatch ? majorMatch[1].trim() : raw.major;
2037
+ const majorEn = majorMatch && majorMatch[2] ? majorMatch[2].trim() : prodiId;
2038
+ return {
2039
+ fakultas: facultyId.startsWith("Fakultas") || facultyId.startsWith("Sekolah") || facultyId.startsWith("Program") ? facultyId : `Fakultas ${facultyId}`,
2040
+ faculty: meta.en,
2041
+ fak,
2042
+ fac: meta.fac,
2043
+ departemen: facultyId,
2044
+ department: meta.en,
2045
+ dep: fak,
2046
+ prodi: prodiId,
2047
+ major: majorEn,
2048
+ studyProgram: raw.major,
2049
+ educationalProgram: raw.program
2050
+ };
2051
+ }
2052
+
2053
+ // src/index.ts
2054
+ var xmlParser = new fastXmlParser.XMLParser({
2055
+ removeNSPrefix: true,
2056
+ trimValues: true,
2057
+ parseTagValue: false
2058
+ });
2059
+ function parseResponse(body, version = "2.0") {
2060
+ if (version === "1.0") {
2061
+ const lines = body.split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
2062
+ if (lines[0]?.toLowerCase() === "yes" && lines[1]) {
2063
+ return {
2064
+ username: lines[1],
2065
+ name: lines[1],
2066
+ role: "unknown",
2067
+ rawAttributes: { username: lines[1] }
2068
+ };
2069
+ }
2070
+ throw new Error(lines[0]?.toLowerCase() === "no" ? "CAS 1.0 ticket validation failed" : `Invalid CAS 1.0 response: ${body}`);
2071
+ }
2072
+ const trimmed = body.trim();
2073
+ if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
2074
+ const data = JSON.parse(trimmed);
2075
+ const sResp2 = data.serviceResponse || data;
2076
+ if (sResp2.authenticationFailure) {
2077
+ throw new Error(`SSO validation failed: ${sResp2.authenticationFailure.description || sResp2.authenticationFailure.code}`);
2078
+ }
2079
+ const success2 = sResp2.authenticationSuccess;
2080
+ if (!success2?.user) {
2081
+ throw new Error("Missing authenticationSuccess in CAS JSON response");
2082
+ }
2083
+ const attrs2 = {};
2084
+ if (success2.attributes) {
2085
+ for (const [k, v] of Object.entries(success2.attributes)) {
2086
+ attrs2[k] = String(Array.isArray(v) ? v[0] : v).trim();
2087
+ }
2088
+ }
2089
+ return buildUser(String(success2.user).trim(), attrs2);
2090
+ }
2091
+ const parsed = xmlParser.parse(trimmed);
2092
+ const sResp = parsed?.serviceResponse || parsed;
2093
+ if (sResp?.authenticationFailure) {
2094
+ const fail = sResp.authenticationFailure;
2095
+ const code = typeof fail === "object" ? fail["@_code"] : void 0;
2096
+ const desc = typeof fail === "object" ? fail["#text"] || JSON.stringify(fail) : fail;
2097
+ throw new Error(`SSO validation failed (${code || "FAILED"}): ${desc}`);
2098
+ }
2099
+ const success = sResp?.authenticationSuccess;
2100
+ if (!success?.user) {
2101
+ throw new Error("Missing authenticationSuccess in CAS XML response");
2102
+ }
2103
+ const username = String(success.user).trim();
2104
+ const rawAttrs = success.attributes || {};
2105
+ const attrs = {};
2106
+ for (const [k, v] of Object.entries(rawAttrs)) {
2107
+ if (!k.startsWith("@_")) {
2108
+ attrs[k] = String(Array.isArray(v) ? v[0] : v).trim();
2109
+ }
2110
+ }
2111
+ for (const [k, v] of Object.entries(success)) {
2112
+ if (k !== "user" && k !== "attributes" && !k.startsWith("@_") && typeof v !== "object") {
2113
+ if (!attrs[k]) attrs[k] = String(v).trim();
2114
+ }
2115
+ }
2116
+ return buildUser(username, attrs);
2117
+ }
2118
+ function buildUser(username, attrs) {
2119
+ const role = (attrs.peran_user || attrs.role || "unknown").toLowerCase();
2120
+ const orgCode = attrs.kd_org || attrs.org_code || void 0;
2121
+ return {
2122
+ username,
2123
+ name: attrs.nama || attrs.name || attrs.ldap_cn || username,
2124
+ role,
2125
+ npm: attrs.npm || void 0,
2126
+ nip: attrs.nip || void 0,
2127
+ orgCode,
2128
+ organization: lookupOrgCode(orgCode),
2129
+ ldapCn: attrs.ldap_cn || void 0,
2130
+ rawAttributes: attrs
2131
+ };
2132
+ }
2133
+ var SSO = class {
2134
+ casUrl;
2135
+ serviceUrl;
2136
+ version;
2137
+ timeoutMs;
2138
+ fetchFn;
2139
+ constructor(config = {}) {
2140
+ this.casUrl = normalize(config.casUrl || DEFAULT_CAS_URL);
2141
+ this.serviceUrl = config.serviceUrl;
2142
+ this.version = config.version || "2.0";
2143
+ this.timeoutMs = config.timeoutMs ?? 1e4;
2144
+ this.fetchFn = config.fetch || globalThis.fetch;
2145
+ }
2146
+ loginUrl(serviceUrl, options) {
2147
+ return LoginURL(this.casUrl, serviceUrl || this.serviceUrl, options);
2148
+ }
2149
+ logoutUrl(options) {
2150
+ if (typeof options === "string") {
2151
+ return LogoutURL(this.casUrl, {
2152
+ url: options
2153
+ });
2154
+ }
2155
+ return LogoutURL(this.casUrl, {
2156
+ serviceUrl: this.serviceUrl,
2157
+ ...options
2158
+ });
2159
+ }
2160
+ async validate(ticket, options) {
2161
+ if (!ticket) throw new Error("Ticket is required");
2162
+ const serviceUrl = typeof options === "string" ? options : options?.serviceUrl || this.serviceUrl;
2163
+ if (!serviceUrl) throw new Error("serviceUrl is required for ticket validation");
2164
+ const version = typeof options === "object" && options?.version || this.version;
2165
+ const url = ValidateURL(this.casUrl, serviceUrl, ticket.trim(), version);
2166
+ const controller = new AbortController();
2167
+ const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
2168
+ if (typeof options === "object" && options?.signal) {
2169
+ options.signal.addEventListener("abort", () => controller.abort(options.signal?.reason), { once: true });
2170
+ }
2171
+ try {
2172
+ const resp = await this.fetchFn(url, {
2173
+ method: "GET",
2174
+ signal: controller.signal,
2175
+ headers: {
2176
+ Accept: version === "3.0" ? "application/json, application/xml, text/xml, */*" : "application/xml, text/xml, */*",
2177
+ ...typeof options === "object" ? options?.fetchOptions?.headers : {}
2178
+ },
2179
+ ...typeof options === "object" ? options?.fetchOptions : {}
2180
+ });
2181
+ const text = await resp.text();
2182
+ return parseResponse(text, version);
2183
+ } finally {
2184
+ clearTimeout(timeout);
2185
+ }
2186
+ }
2187
+ async validateSafe(ticket, options) {
2188
+ try {
2189
+ const user = await this.validate(ticket, options);
2190
+ return {
2191
+ success: true,
2192
+ user
2193
+ };
2194
+ } catch (err) {
2195
+ return {
2196
+ success: false,
2197
+ error: err instanceof Error ? err : new Error(String(err))
2198
+ };
2199
+ }
2200
+ }
2201
+ };
2202
+ var index_default = SSO;
2203
+
2204
+ exports.DEFAULT_CAS_URL = DEFAULT_CAS_URL;
2205
+ exports.LoginURL = LoginURL;
2206
+ exports.LogoutURL = LogoutURL;
2207
+ exports.ORG_CODES = ORG_CODES;
2208
+ exports.SSO = SSO;
2209
+ exports.ValidateURL = ValidateURL;
2210
+ exports.default = index_default;
2211
+ exports.lookupOrgCode = lookupOrgCode;
2212
+ exports.normalize = normalize;
2213
+ exports.parseResponse = parseResponse;
2214
+ //# sourceMappingURL=index.js.map
2215
+ //# sourceMappingURL=index.js.map