@finsys/core 4.3.0 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/adapter-categories.json +254 -0
- package/dist/index.cjs +256 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +29 -2
- package/dist/index.d.ts +29 -2
- package/dist/index.js +256 -2
- package/dist/index.js.map +1 -1
- package/dist/schema/adapter-manifest.schema.json +9 -0
- package/package.json +1 -1
|
@@ -384,6 +384,260 @@
|
|
|
384
384
|
"description": "Agreement between the inferred home anchor and the applicant's registered residential address. 1 = same premises, 0 = different state (summary instance only)."
|
|
385
385
|
}
|
|
386
386
|
]
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"id": "ic",
|
|
390
|
+
"displayName": "Identity Document (IC / Passport)",
|
|
391
|
+
"description": "Identity fields extracted from a Malaysian IC (MyKad) or passport document. Produced by the host's document-extraction pipeline; one instance per identity document.",
|
|
392
|
+
"canonicalTable": "ihs_alt_data_ic",
|
|
393
|
+
"fields": [
|
|
394
|
+
{
|
|
395
|
+
"name": "icName",
|
|
396
|
+
"type": "string",
|
|
397
|
+
"description": "Full name as printed on the identity document."
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"name": "icNumber",
|
|
401
|
+
"type": "string",
|
|
402
|
+
"description": "IC (MyKad) number, or passport number for passport documents."
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"name": "icAddress",
|
|
406
|
+
"type": "string",
|
|
407
|
+
"description": "Registered address as printed on the document."
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"name": "icGender",
|
|
411
|
+
"type": "string",
|
|
412
|
+
"description": "Gender as stated on the document."
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"name": "icReligion",
|
|
416
|
+
"type": "string",
|
|
417
|
+
"description": "Religion as stated on the document (MyKad-only; absent on passports)."
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"name": "icDateOfBirth",
|
|
421
|
+
"type": "string",
|
|
422
|
+
"description": "Date of birth as stated on the document."
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"name": "icPlaceOfBirth",
|
|
426
|
+
"type": "string",
|
|
427
|
+
"description": "Place of birth as stated on the document."
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"name": "icNationality",
|
|
431
|
+
"type": "string",
|
|
432
|
+
"description": "Nationality as stated on the document."
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"name": "icRace",
|
|
436
|
+
"type": "string",
|
|
437
|
+
"description": "Race as stated on the document (MyKad-only; absent on passports)."
|
|
438
|
+
}
|
|
439
|
+
]
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"id": "finxtract-bank-statement",
|
|
443
|
+
"displayName": "Bank Statement (Document Extraction)",
|
|
444
|
+
"description": "Fields extracted from an uploaded bank-statement document by the host's extraction pipeline. One instance per statement document; each statement covers a single month. Distinct from the partner-API 'bank-statement' category: same real-world domain, different source and different canonical vocabulary.",
|
|
445
|
+
"canonicalTable": "ihsbankstatement",
|
|
446
|
+
"fields": [
|
|
447
|
+
{
|
|
448
|
+
"name": "bankName",
|
|
449
|
+
"type": "string",
|
|
450
|
+
"description": "Issuing bank's name as printed on the statement."
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"name": "accountHolderName",
|
|
454
|
+
"type": "string",
|
|
455
|
+
"description": "Account holder's name as printed on the statement."
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"name": "accountNumber",
|
|
459
|
+
"type": "string",
|
|
460
|
+
"description": "Bank account number as printed on the statement."
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
"name": "statementDate",
|
|
464
|
+
"type": "string",
|
|
465
|
+
"description": "Statement date, normalized to ISO YYYY-MM-DD."
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"name": "openingBalance",
|
|
469
|
+
"type": "number",
|
|
470
|
+
"unit": "MYR",
|
|
471
|
+
"description": "Opening balance for the statement period."
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"name": "bankBalance",
|
|
475
|
+
"type": "number",
|
|
476
|
+
"unit": "MYR",
|
|
477
|
+
"description": "Closing balance for the statement period."
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"name": "totalCredits",
|
|
481
|
+
"type": "number",
|
|
482
|
+
"unit": "MYR",
|
|
483
|
+
"description": "Sum of credit transactions in the statement period."
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"name": "totalDebits",
|
|
487
|
+
"type": "number",
|
|
488
|
+
"unit": "MYR",
|
|
489
|
+
"description": "Sum of debit transactions in the statement period."
|
|
490
|
+
}
|
|
491
|
+
]
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"id": "finxtract-epf",
|
|
495
|
+
"displayName": "EPF Statement (Document Extraction)",
|
|
496
|
+
"description": "Fields extracted from an uploaded EPF (KWSP) statement document by the host's extraction pipeline. One instance per statement document. Field names carry the 'epf' prefix — the same prefix-namespaced vocabulary the host's flat read path and the eval engine already use, which also keeps canonical names globally unique across categories.",
|
|
497
|
+
"canonicalTable": "ihsepfstatement",
|
|
498
|
+
"fields": [
|
|
499
|
+
{
|
|
500
|
+
"name": "epfAccountHolderName",
|
|
501
|
+
"type": "string",
|
|
502
|
+
"description": "Member's name as printed on the statement."
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"name": "epfAccountHolderAddress",
|
|
506
|
+
"type": "string",
|
|
507
|
+
"description": "Member's address as printed on the statement."
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"name": "epfStatementYear",
|
|
511
|
+
"type": "string",
|
|
512
|
+
"description": "The contribution year the statement covers."
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"name": "epfKwspMemberNumber",
|
|
516
|
+
"type": "string",
|
|
517
|
+
"description": "KWSP membership number."
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"name": "epfIcNumber",
|
|
521
|
+
"type": "string",
|
|
522
|
+
"description": "Member's IC number as printed on the statement."
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
"name": "epfEmployerNumber",
|
|
526
|
+
"type": "string",
|
|
527
|
+
"description": "Employer's KWSP reference number."
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"name": "epfDateOfStatement",
|
|
531
|
+
"type": "string",
|
|
532
|
+
"description": "Statement issue date, normalized to ISO YYYY-MM-DD."
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
"name": "epfTotalContribution",
|
|
536
|
+
"type": "number",
|
|
537
|
+
"unit": "MYR",
|
|
538
|
+
"description": "Cumulative EPF balance as at the statement date."
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
"name": "epfTotalCurrentContribution",
|
|
542
|
+
"type": "number",
|
|
543
|
+
"unit": "MYR",
|
|
544
|
+
"description": "Contributions made within the statement's coverage year."
|
|
545
|
+
}
|
|
546
|
+
]
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
"id": "finxtract-payslip",
|
|
550
|
+
"displayName": "Payslip (Document Extraction)",
|
|
551
|
+
"description": "Fields extracted from an uploaded payslip document by the host's extraction pipeline. One instance per payslip document; each payslip covers a single pay period. Field names carry the 'payslip' prefix — the same prefix-namespaced vocabulary the host's flat read path and the eval engine already use, which also keeps canonical names globally unique across categories.",
|
|
552
|
+
"canonicalTable": "ihspayslip",
|
|
553
|
+
"fields": [
|
|
554
|
+
{
|
|
555
|
+
"name": "payslipEmployerName",
|
|
556
|
+
"type": "string",
|
|
557
|
+
"description": "Employer's name as printed on the payslip."
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"name": "payslipEmployeeName",
|
|
561
|
+
"type": "string",
|
|
562
|
+
"description": "Employee's name as printed on the payslip."
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"name": "payslipPayPeriod",
|
|
566
|
+
"type": "string",
|
|
567
|
+
"description": "The pay period the payslip covers, as printed."
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"name": "payslipPayDate",
|
|
571
|
+
"type": "string",
|
|
572
|
+
"description": "Payment date, as printed."
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
"name": "payslipBasicPay",
|
|
576
|
+
"type": "number",
|
|
577
|
+
"unit": "MYR",
|
|
578
|
+
"description": "Basic salary for the period."
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"name": "payslipGrossPay",
|
|
582
|
+
"type": "number",
|
|
583
|
+
"unit": "MYR",
|
|
584
|
+
"description": "Gross pay for the period."
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"name": "payslipFixedAllowances",
|
|
588
|
+
"type": "number",
|
|
589
|
+
"unit": "MYR",
|
|
590
|
+
"description": "Fixed allowances for the period."
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"name": "payslipVariableIncome",
|
|
594
|
+
"type": "number",
|
|
595
|
+
"unit": "MYR",
|
|
596
|
+
"description": "Variable income (overtime, commission, bonus) for the period."
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"name": "payslipDeduction",
|
|
600
|
+
"type": "number",
|
|
601
|
+
"unit": "MYR",
|
|
602
|
+
"description": "Total statutory deductions for the period."
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"name": "payslipOtherDeduction",
|
|
606
|
+
"type": "number",
|
|
607
|
+
"unit": "MYR",
|
|
608
|
+
"description": "Other (non-statutory) deductions for the period."
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"name": "payslipEmployeeEpfContribution",
|
|
612
|
+
"type": "number",
|
|
613
|
+
"unit": "MYR",
|
|
614
|
+
"description": "Employee EPF contribution for the period."
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"name": "payslipEmployeeSocsoContribution",
|
|
618
|
+
"type": "number",
|
|
619
|
+
"unit": "MYR",
|
|
620
|
+
"description": "Employee SOCSO contribution for the period."
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
"name": "payslipEmployeeEisContribution",
|
|
624
|
+
"type": "number",
|
|
625
|
+
"unit": "MYR",
|
|
626
|
+
"description": "Employee EIS contribution for the period."
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
"name": "payslipEmployeeTax",
|
|
630
|
+
"type": "number",
|
|
631
|
+
"unit": "MYR",
|
|
632
|
+
"description": "Employee income-tax (PCB) deduction for the period."
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
"name": "payslipNetPay",
|
|
636
|
+
"type": "number",
|
|
637
|
+
"unit": "MYR",
|
|
638
|
+
"description": "Net pay for the period."
|
|
639
|
+
}
|
|
640
|
+
]
|
|
387
641
|
}
|
|
388
642
|
]
|
|
389
643
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -10706,6 +10706,260 @@ var adapter_categories_default = {
|
|
|
10706
10706
|
description: "Agreement between the inferred home anchor and the applicant's registered residential address. 1 = same premises, 0 = different state (summary instance only)."
|
|
10707
10707
|
}
|
|
10708
10708
|
]
|
|
10709
|
+
},
|
|
10710
|
+
{
|
|
10711
|
+
id: "ic",
|
|
10712
|
+
displayName: "Identity Document (IC / Passport)",
|
|
10713
|
+
description: "Identity fields extracted from a Malaysian IC (MyKad) or passport document. Produced by the host's document-extraction pipeline; one instance per identity document.",
|
|
10714
|
+
canonicalTable: "ihs_alt_data_ic",
|
|
10715
|
+
fields: [
|
|
10716
|
+
{
|
|
10717
|
+
name: "icName",
|
|
10718
|
+
type: "string",
|
|
10719
|
+
description: "Full name as printed on the identity document."
|
|
10720
|
+
},
|
|
10721
|
+
{
|
|
10722
|
+
name: "icNumber",
|
|
10723
|
+
type: "string",
|
|
10724
|
+
description: "IC (MyKad) number, or passport number for passport documents."
|
|
10725
|
+
},
|
|
10726
|
+
{
|
|
10727
|
+
name: "icAddress",
|
|
10728
|
+
type: "string",
|
|
10729
|
+
description: "Registered address as printed on the document."
|
|
10730
|
+
},
|
|
10731
|
+
{
|
|
10732
|
+
name: "icGender",
|
|
10733
|
+
type: "string",
|
|
10734
|
+
description: "Gender as stated on the document."
|
|
10735
|
+
},
|
|
10736
|
+
{
|
|
10737
|
+
name: "icReligion",
|
|
10738
|
+
type: "string",
|
|
10739
|
+
description: "Religion as stated on the document (MyKad-only; absent on passports)."
|
|
10740
|
+
},
|
|
10741
|
+
{
|
|
10742
|
+
name: "icDateOfBirth",
|
|
10743
|
+
type: "string",
|
|
10744
|
+
description: "Date of birth as stated on the document."
|
|
10745
|
+
},
|
|
10746
|
+
{
|
|
10747
|
+
name: "icPlaceOfBirth",
|
|
10748
|
+
type: "string",
|
|
10749
|
+
description: "Place of birth as stated on the document."
|
|
10750
|
+
},
|
|
10751
|
+
{
|
|
10752
|
+
name: "icNationality",
|
|
10753
|
+
type: "string",
|
|
10754
|
+
description: "Nationality as stated on the document."
|
|
10755
|
+
},
|
|
10756
|
+
{
|
|
10757
|
+
name: "icRace",
|
|
10758
|
+
type: "string",
|
|
10759
|
+
description: "Race as stated on the document (MyKad-only; absent on passports)."
|
|
10760
|
+
}
|
|
10761
|
+
]
|
|
10762
|
+
},
|
|
10763
|
+
{
|
|
10764
|
+
id: "finxtract-bank-statement",
|
|
10765
|
+
displayName: "Bank Statement (Document Extraction)",
|
|
10766
|
+
description: "Fields extracted from an uploaded bank-statement document by the host's extraction pipeline. One instance per statement document; each statement covers a single month. Distinct from the partner-API 'bank-statement' category: same real-world domain, different source and different canonical vocabulary.",
|
|
10767
|
+
canonicalTable: "ihsbankstatement",
|
|
10768
|
+
fields: [
|
|
10769
|
+
{
|
|
10770
|
+
name: "bankName",
|
|
10771
|
+
type: "string",
|
|
10772
|
+
description: "Issuing bank's name as printed on the statement."
|
|
10773
|
+
},
|
|
10774
|
+
{
|
|
10775
|
+
name: "accountHolderName",
|
|
10776
|
+
type: "string",
|
|
10777
|
+
description: "Account holder's name as printed on the statement."
|
|
10778
|
+
},
|
|
10779
|
+
{
|
|
10780
|
+
name: "accountNumber",
|
|
10781
|
+
type: "string",
|
|
10782
|
+
description: "Bank account number as printed on the statement."
|
|
10783
|
+
},
|
|
10784
|
+
{
|
|
10785
|
+
name: "statementDate",
|
|
10786
|
+
type: "string",
|
|
10787
|
+
description: "Statement date, normalized to ISO YYYY-MM-DD."
|
|
10788
|
+
},
|
|
10789
|
+
{
|
|
10790
|
+
name: "openingBalance",
|
|
10791
|
+
type: "number",
|
|
10792
|
+
unit: "MYR",
|
|
10793
|
+
description: "Opening balance for the statement period."
|
|
10794
|
+
},
|
|
10795
|
+
{
|
|
10796
|
+
name: "bankBalance",
|
|
10797
|
+
type: "number",
|
|
10798
|
+
unit: "MYR",
|
|
10799
|
+
description: "Closing balance for the statement period."
|
|
10800
|
+
},
|
|
10801
|
+
{
|
|
10802
|
+
name: "totalCredits",
|
|
10803
|
+
type: "number",
|
|
10804
|
+
unit: "MYR",
|
|
10805
|
+
description: "Sum of credit transactions in the statement period."
|
|
10806
|
+
},
|
|
10807
|
+
{
|
|
10808
|
+
name: "totalDebits",
|
|
10809
|
+
type: "number",
|
|
10810
|
+
unit: "MYR",
|
|
10811
|
+
description: "Sum of debit transactions in the statement period."
|
|
10812
|
+
}
|
|
10813
|
+
]
|
|
10814
|
+
},
|
|
10815
|
+
{
|
|
10816
|
+
id: "finxtract-epf",
|
|
10817
|
+
displayName: "EPF Statement (Document Extraction)",
|
|
10818
|
+
description: "Fields extracted from an uploaded EPF (KWSP) statement document by the host's extraction pipeline. One instance per statement document. Field names carry the 'epf' prefix \u2014 the same prefix-namespaced vocabulary the host's flat read path and the eval engine already use, which also keeps canonical names globally unique across categories.",
|
|
10819
|
+
canonicalTable: "ihsepfstatement",
|
|
10820
|
+
fields: [
|
|
10821
|
+
{
|
|
10822
|
+
name: "epfAccountHolderName",
|
|
10823
|
+
type: "string",
|
|
10824
|
+
description: "Member's name as printed on the statement."
|
|
10825
|
+
},
|
|
10826
|
+
{
|
|
10827
|
+
name: "epfAccountHolderAddress",
|
|
10828
|
+
type: "string",
|
|
10829
|
+
description: "Member's address as printed on the statement."
|
|
10830
|
+
},
|
|
10831
|
+
{
|
|
10832
|
+
name: "epfStatementYear",
|
|
10833
|
+
type: "string",
|
|
10834
|
+
description: "The contribution year the statement covers."
|
|
10835
|
+
},
|
|
10836
|
+
{
|
|
10837
|
+
name: "epfKwspMemberNumber",
|
|
10838
|
+
type: "string",
|
|
10839
|
+
description: "KWSP membership number."
|
|
10840
|
+
},
|
|
10841
|
+
{
|
|
10842
|
+
name: "epfIcNumber",
|
|
10843
|
+
type: "string",
|
|
10844
|
+
description: "Member's IC number as printed on the statement."
|
|
10845
|
+
},
|
|
10846
|
+
{
|
|
10847
|
+
name: "epfEmployerNumber",
|
|
10848
|
+
type: "string",
|
|
10849
|
+
description: "Employer's KWSP reference number."
|
|
10850
|
+
},
|
|
10851
|
+
{
|
|
10852
|
+
name: "epfDateOfStatement",
|
|
10853
|
+
type: "string",
|
|
10854
|
+
description: "Statement issue date, normalized to ISO YYYY-MM-DD."
|
|
10855
|
+
},
|
|
10856
|
+
{
|
|
10857
|
+
name: "epfTotalContribution",
|
|
10858
|
+
type: "number",
|
|
10859
|
+
unit: "MYR",
|
|
10860
|
+
description: "Cumulative EPF balance as at the statement date."
|
|
10861
|
+
},
|
|
10862
|
+
{
|
|
10863
|
+
name: "epfTotalCurrentContribution",
|
|
10864
|
+
type: "number",
|
|
10865
|
+
unit: "MYR",
|
|
10866
|
+
description: "Contributions made within the statement's coverage year."
|
|
10867
|
+
}
|
|
10868
|
+
]
|
|
10869
|
+
},
|
|
10870
|
+
{
|
|
10871
|
+
id: "finxtract-payslip",
|
|
10872
|
+
displayName: "Payslip (Document Extraction)",
|
|
10873
|
+
description: "Fields extracted from an uploaded payslip document by the host's extraction pipeline. One instance per payslip document; each payslip covers a single pay period. Field names carry the 'payslip' prefix \u2014 the same prefix-namespaced vocabulary the host's flat read path and the eval engine already use, which also keeps canonical names globally unique across categories.",
|
|
10874
|
+
canonicalTable: "ihspayslip",
|
|
10875
|
+
fields: [
|
|
10876
|
+
{
|
|
10877
|
+
name: "payslipEmployerName",
|
|
10878
|
+
type: "string",
|
|
10879
|
+
description: "Employer's name as printed on the payslip."
|
|
10880
|
+
},
|
|
10881
|
+
{
|
|
10882
|
+
name: "payslipEmployeeName",
|
|
10883
|
+
type: "string",
|
|
10884
|
+
description: "Employee's name as printed on the payslip."
|
|
10885
|
+
},
|
|
10886
|
+
{
|
|
10887
|
+
name: "payslipPayPeriod",
|
|
10888
|
+
type: "string",
|
|
10889
|
+
description: "The pay period the payslip covers, as printed."
|
|
10890
|
+
},
|
|
10891
|
+
{
|
|
10892
|
+
name: "payslipPayDate",
|
|
10893
|
+
type: "string",
|
|
10894
|
+
description: "Payment date, as printed."
|
|
10895
|
+
},
|
|
10896
|
+
{
|
|
10897
|
+
name: "payslipBasicPay",
|
|
10898
|
+
type: "number",
|
|
10899
|
+
unit: "MYR",
|
|
10900
|
+
description: "Basic salary for the period."
|
|
10901
|
+
},
|
|
10902
|
+
{
|
|
10903
|
+
name: "payslipGrossPay",
|
|
10904
|
+
type: "number",
|
|
10905
|
+
unit: "MYR",
|
|
10906
|
+
description: "Gross pay for the period."
|
|
10907
|
+
},
|
|
10908
|
+
{
|
|
10909
|
+
name: "payslipFixedAllowances",
|
|
10910
|
+
type: "number",
|
|
10911
|
+
unit: "MYR",
|
|
10912
|
+
description: "Fixed allowances for the period."
|
|
10913
|
+
},
|
|
10914
|
+
{
|
|
10915
|
+
name: "payslipVariableIncome",
|
|
10916
|
+
type: "number",
|
|
10917
|
+
unit: "MYR",
|
|
10918
|
+
description: "Variable income (overtime, commission, bonus) for the period."
|
|
10919
|
+
},
|
|
10920
|
+
{
|
|
10921
|
+
name: "payslipDeduction",
|
|
10922
|
+
type: "number",
|
|
10923
|
+
unit: "MYR",
|
|
10924
|
+
description: "Total statutory deductions for the period."
|
|
10925
|
+
},
|
|
10926
|
+
{
|
|
10927
|
+
name: "payslipOtherDeduction",
|
|
10928
|
+
type: "number",
|
|
10929
|
+
unit: "MYR",
|
|
10930
|
+
description: "Other (non-statutory) deductions for the period."
|
|
10931
|
+
},
|
|
10932
|
+
{
|
|
10933
|
+
name: "payslipEmployeeEpfContribution",
|
|
10934
|
+
type: "number",
|
|
10935
|
+
unit: "MYR",
|
|
10936
|
+
description: "Employee EPF contribution for the period."
|
|
10937
|
+
},
|
|
10938
|
+
{
|
|
10939
|
+
name: "payslipEmployeeSocsoContribution",
|
|
10940
|
+
type: "number",
|
|
10941
|
+
unit: "MYR",
|
|
10942
|
+
description: "Employee SOCSO contribution for the period."
|
|
10943
|
+
},
|
|
10944
|
+
{
|
|
10945
|
+
name: "payslipEmployeeEisContribution",
|
|
10946
|
+
type: "number",
|
|
10947
|
+
unit: "MYR",
|
|
10948
|
+
description: "Employee EIS contribution for the period."
|
|
10949
|
+
},
|
|
10950
|
+
{
|
|
10951
|
+
name: "payslipEmployeeTax",
|
|
10952
|
+
type: "number",
|
|
10953
|
+
unit: "MYR",
|
|
10954
|
+
description: "Employee income-tax (PCB) deduction for the period."
|
|
10955
|
+
},
|
|
10956
|
+
{
|
|
10957
|
+
name: "payslipNetPay",
|
|
10958
|
+
type: "number",
|
|
10959
|
+
unit: "MYR",
|
|
10960
|
+
description: "Net pay for the period."
|
|
10961
|
+
}
|
|
10962
|
+
]
|
|
10709
10963
|
}
|
|
10710
10964
|
]
|
|
10711
10965
|
};
|
|
@@ -10744,9 +10998,9 @@ function buildCategoryRegistry(raw) {
|
|
|
10744
10998
|
if (typeof cat.description !== "string" || cat.description.length === 0) {
|
|
10745
10999
|
throw new Error(`adapter category data: ${where} needs a non-empty description`);
|
|
10746
11000
|
}
|
|
10747
|
-
if (typeof cat.canonicalTable !== "string" || !/^
|
|
11001
|
+
if (typeof cat.canonicalTable !== "string" || !/^ihs[a-z0-9_]*$/.test(cat.canonicalTable)) {
|
|
10748
11002
|
throw new Error(
|
|
10749
|
-
`adapter category data: ${where} canonicalTable must
|
|
11003
|
+
`adapter category data: ${where} canonicalTable must be an "ihs"-prefixed table identifier (got "${cat.canonicalTable}")`
|
|
10750
11004
|
);
|
|
10751
11005
|
}
|
|
10752
11006
|
if (tables.has(cat.canonicalTable)) {
|