Implement parsing for Tokopedia "Pesanan Selesai" messages, including support for single and multi-item orders. Update rules to recognize Tokopedia order completion and enhance spending record mapping. Add tests to validate new functionality.
413 lines
8.0 KiB
JavaScript
413 lines
8.0 KiB
JavaScript
export const livinDirectBody = `Livin' by Mandiri
|
|
|
|
Pembayaran Berhasil
|
|
Halo NASYAROBBY NUGRAHA PUTRA,
|
|
|
|
Berikut adalah detail transaksi Anda dengan QR:
|
|
|
|
Penerima
|
|
|
|
SNACK BAROKAHJAKARTA BARAT - ID
|
|
|
|
Tanggal13 Sep 2026
|
|
|
|
|
|
Jam14:48:31 WIB
|
|
|
|
|
|
Nominal TransaksiRp 14.000,00
|
|
|
|
|
|
No. Referensi2609131121540314991
|
|
|
|
|
|
No. Ref. QRIS609532729372
|
|
|
|
|
|
Merchant PAN9360091436372513569
|
|
|
|
|
|
Customer PAN9360000822021345851
|
|
|
|
|
|
PengakuisisiGoPay
|
|
|
|
|
|
Terminal ID A01
|
|
|
|
Sumber Dana
|
|
|
|
Kartu Kredit - Mandiri Platinum ****4585
|
|
|
|
Simpan email ini sebagai ref`;
|
|
|
|
export const livinForwardedBody = `---------- Forwarded message ---------
|
|
From: Livin' <noreply.livin@bankmandiri.co.id>
|
|
Date: Sun, Sep 13, 2026 at 10:44 AM
|
|
Subject: Pembayaran Berhasil!
|
|
To: <nasyarobby@gmail.com>
|
|
|
|
|
|
[image: livinbymandiri]
|
|
Pembayaran Berhasil
|
|
|
|
Halo NASYAROBBY NUGRAHA PUTRA,
|
|
|
|
Berikut adalah detail transaksi Anda dengan QR:
|
|
|
|
Penerima
|
|
Eleven Chicken Cabang Gah
|
|
|
|
JAKARTA SELATAN - ID
|
|
|
|
Tanggal 13 Sep 2026
|
|
|
|
|
|
Jam 10:43:51 WIB
|
|
|
|
|
|
Nominal Transaksi Rp 22.000,00
|
|
|
|
|
|
No. Referensi 2609131121539559589`;
|
|
|
|
export const grabBody = `Bike Hemat
|
|
[image: Grab]
|
|
|
|
Hope you enjoyed your ride!
|
|
Picked up on 13 September 2026
|
|
Booking ID: A-9RXV4K2GWCLOAV
|
|
Total Paid
|
|
Rp16.600
|
|
Receipt issued by the driver Mahendra.
|
|
5.0 [image: stars]
|
|
Compliments for driver
|
|
Layanan Mantap
|
|
Breakdown
|
|
Fare
|
|
16.600
|
|
Fare
|
|
16.600
|
|
Total Paid
|
|
16.600
|
|
Passenger
|
|
Bintang
|
|
Profile
|
|
`;
|
|
|
|
export const grabForwardedBody = `---------- Forwarded message ---------
|
|
From: Grab <no-reply@grab.com>
|
|
Date: Sun, Sep 13, 2026 at 10:58 AM
|
|
Subject: Your Grab E-Receipt
|
|
To: <nasyarobby@gmail.com>
|
|
|
|
|
|
${grabBody}`;
|
|
|
|
export const grabTipForwardedBody = `---------- Forwarded message ---------
|
|
From: Grab <no-reply@grab.com>
|
|
Date: Sun, Sep 13, 2026 at 11:51 AM
|
|
Subject: Your Grab E-Receipt
|
|
To: <nasyarobby@gmail.com>
|
|
|
|
|
|
Bike Hemat
|
|
[image: Grab]
|
|
|
|
Thanks! Your tip goes a long way for your driver.
|
|
13 Sep 26 10:47 +0700
|
|
Total Paid
|
|
Rp2.000
|
|
Tip
|
|
From: Apartemen Kalibata City, Jl. Kalibata Raya No.1, Rawajati, Pancoran,
|
|
Kota Jakarta Selatan, DKI Jakarta, Indonesia, 12750
|
|
Booking ID: A-9RXV4K2GWCLOAV
|
|
`;
|
|
|
|
/** Minimal Grab ride HTML: pickup/dropoff times only exist here, not in plain text. */
|
|
export const grabRideHtml = `
|
|
<div>Picked up on 13 September 2026</div>
|
|
<div>Booking ID: A-9RXV4K2GWCLOAV</div>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<div>Gate II Apartemen Kalibata City</div>
|
|
<div style="font-weight:300">10:47AM</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div>Badan Koordinasi Penanaman Modal</div>
|
|
<div style="font-weight:300">10:58AM</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
`;
|
|
|
|
export const grabFoodForwardedBody = `---------- Forwarded message ---------
|
|
From: <no-reply@grab.com>
|
|
Date: Fri, Sep 11, 2026 at 7:01 PM
|
|
Subject: Your Grab E-Receipt
|
|
To: <nasyarobby@gmail.com>
|
|
|
|
|
|
[image: E-receipt]
|
|
Selamat menikmati makanan Anda!
|
|
TOTAL
|
|
IDR 49000 TANGGAL | WAKTU
|
|
11 Sep 26 18:24 +0700
|
|
Detail Pesanan
|
|
Jenis Kendaraan:
|
|
GrabFood
|
|
Diterbitkan untuk
|
|
Bintang
|
|
Pesanan ID
|
|
00112712674-C8EUEZDGEEAZTX
|
|
Pesanan Dari:
|
|
Doner Kebab - Kalibata City
|
|
Kalibata City, Foodcourt Teras Kuliner, Lt. Dasar Units Fb. 23 (Doner
|
|
Kebab), Jl. Raya Kalibata No. 1, Rawajati, Pancoran, Jakarta Selatan
|
|
Profil:
|
|
Personal
|
|
Detail Tagihan
|
|
Detail Pembayaran:
|
|
OVO Cash
|
|
Detail Pembayaran: Jumlah:
|
|
1x Fish n Chips IDR 45000
|
|
|
|
Subtotal IDR 45000
|
|
Restaurant packaging charge IDR 4000
|
|
TOTAL (INCL. TAX) IDR 49000
|
|
`;
|
|
|
|
export const briTransferDirectBody = `Halo,*NASYAROBBY NUGRAHA PUTRA*
|
|
Berikut ini adalah informasi transaksi yang telah Anda lakukan di Aplikasi
|
|
BRImo.
|
|
Transaksi Berhasil
|
|
Tanggal 13 September 2026 , 19:00:00 WIB
|
|
Nomor Referensi 212189333864
|
|
------------------------------
|
|
Sumber Dana NASYAROBBY NUGRAHA PUTRA
|
|
0121 **** **** 500
|
|
Jenis Transaksi Transfer Bank BRI
|
|
Bank Tujuan BANK BRI
|
|
Nomor Tujuan 1060 0100 2070 507
|
|
Nama Tujuan NELLY ARISANTI
|
|
Catatan -
|
|
------------------------------
|
|
Nominal Rp4.000.000
|
|
Biaya Admin Rp0
|
|
*Total* *Rp4.000.000*
|
|
|
|
|
|
Semoga informasi ini dapat bermanfaat bagi Anda.`;
|
|
|
|
export const briTransferForwardedBody = `Nasyarobby N. Putra
|
|
Boston University MSSD Program
|
|
|
|
---------- Forwarded message ---------
|
|
From: Bank BRI <BankBRI@bri.co.id>
|
|
Date: Sun, Sep 13, 2026, 7:00 PM
|
|
Subject: Pemindahan Dana Sesama Rekening BRI
|
|
To: <nsrb@bu.edu>
|
|
|
|
|
|
Halo,*NASYAROBBY NUGRAHA PUTRA*
|
|
Berikut ini adalah informasi transaksi yang telah Anda lakukan di Aplikasi
|
|
BRImo.
|
|
Transaksi Berhasil
|
|
Tanggal 13 September 2026 , 19:00:00 WIB
|
|
Nomor Referensi 212189333864
|
|
------------------------------
|
|
Sumber Dana NASYAROBBY NUGRAHA PUTRA
|
|
0121 **** **** 500
|
|
Jenis Transaksi Transfer Bank BRI
|
|
Bank Tujuan BANK BRI
|
|
Nomor Tujuan 1060 0100 2070 507
|
|
Nama Tujuan NELLY ARISANTI
|
|
Catatan -
|
|
------------------------------
|
|
Nominal Rp4.000.000
|
|
Biaya Admin Rp0
|
|
*Total* *Rp4.000.000*
|
|
`;
|
|
|
|
export const briQrisDirectBody = `Halo NASYAROBBY NUGRAHA PUTRA,
|
|
|
|
Berikut detail transaksi kamu di BRImo:
|
|
Total Transaksi
|
|
674.500
|
|
Tujuan
|
|
[image: Product.png]
|
|
|
|
Shopee Indonesia
|
|
|
|
QRIS Bayar
|
|
|
|
9360000210106600585
|
|
Nomor Referensi 185794483464
|
|
Tanggal Transaksi 30 Jul 2026, 19:21:34 WIB
|
|
Rekening Sumber Dana 0121 **** **** 500
|
|
Nama Sumber Dana NASYAROBBY NUGRAHA PUTRA
|
|
Jenis Transaksi QRIS Bayar
|
|
Nama Merchant Shopee Indonesia
|
|
Lokasi Merchant KOTA JAKARTA
|
|
Nama Penerbit BRI
|
|
Nama Pengakuisisi Shopeepay
|
|
Kode PAN Pelanggan 9360000210106600585
|
|
Merchant PAN 936009180021573212
|
|
ID Terminal 21573212
|
|
Catatan -
|
|
Nominal Rp674.500
|
|
Biaya Admin Rp0
|
|
|
|
*INFORMASI:*
|
|
`;
|
|
|
|
export const briQrisForwardedBody = `Nasyarobby N. Putra
|
|
Boston University MSSD Program
|
|
|
|
---------- Forwarded message ---------
|
|
From: Bank BRI <BankBRI@bri.co.id>
|
|
Date: Thu, Jul 30, 2026, 7:22 PM
|
|
Subject: Pembelian QRIS Berhasil
|
|
To: <nsrb@bu.edu>
|
|
|
|
|
|
[image: bri-white-logo.png]
|
|
|
|
Halo NASYAROBBY NUGRAHA PUTRA,
|
|
|
|
Berikut detail transaksi kamu di BRImo:
|
|
Total Transaksi
|
|
674.500
|
|
Tujuan
|
|
[image: Product.png]
|
|
|
|
Shopee Indonesia
|
|
|
|
QRIS Bayar
|
|
|
|
9360000210106600585
|
|
Nomor Referensi 185794483464
|
|
Tanggal Transaksi 30 Jul 2026, 19:21:34 WIB
|
|
Rekening Sumber Dana 0121 **** **** 500
|
|
Nama Sumber Dana NASYAROBBY NUGRAHA PUTRA
|
|
Jenis Transaksi QRIS Bayar
|
|
Nama Merchant Shopee Indonesia
|
|
Lokasi Merchant KOTA JAKARTA
|
|
Nama Penerbit BRI
|
|
Nama Pengakuisisi Shopeepay
|
|
Kode PAN Pelanggan 9360000210106600585
|
|
Merchant PAN 936009180021573212
|
|
ID Terminal 21573212
|
|
Catatan -
|
|
Nominal Rp674.500
|
|
Biaya Admin Rp0
|
|
`;
|
|
|
|
export const tokopediaSingleForwardedBody = `---------- Forwarded message ---------
|
|
From: Tokopedia <noreply@tokopedia.com>
|
|
Date: Sat, Sep 12, 2026 at 4:58 AM
|
|
Subject: Pesanan Selesai: “Mouse Pad Besar Anime Style...”
|
|
To: <nasyarobby@gmail.com>
|
|
|
|
Hai *Roby,*
|
|
Pesananmu selesai.
|
|
|
|
No.Invoice: 585871780568401286
|
|
<https://fapp1.tokopedia.com/example>
|
|
Toko: LuxePad.Creations
|
|
Mouse Pad Besar Anime Style Cute Black Kitten Premium Laptop Mouse Pad
|
|
Keyboard Mat Office Anti-Slip Desk Pad Thickened Locking Edge Anime Gaming
|
|
MousePad Long Aesthetic Desk Mat - 800mmX300mmX3mm-T4
|
|
|
|
1 x Rp88.750
|
|
Rp88.750
|
|
Subtotal harga produk
|
|
Diskon produk dari penjual
|
|
Voucher dari platform
|
|
Total ongkos kirim
|
|
Voucher ongkir platform
|
|
Asuransi pengiriman
|
|
Biaya jasa aplikasi
|
|
Rp88.750
|
|
-Rp38.850
|
|
-Rp2.495
|
|
Rp11.500
|
|
-Rp11.500
|
|
Rp400
|
|
Rp1.000
|
|
|
|
Total belanja
|
|
Rp48.805
|
|
Detail Kurir
|
|
|
|
Layanan Pengiriman
|
|
Standard
|
|
|
|
Nomor Resi
|
|
JY1590448249
|
|
|
|
Tanggal Terima
|
|
05 September 2026
|
|
Tujuan Pengiriman
|
|
|
|
Roby
|
|
`;
|
|
|
|
export const tokopediaMultiForwardedBody = `---------- Forwarded message ---------
|
|
From: Tokopedia <noreply@tokopedia.com>
|
|
Date: Fri, Aug 21, 2026 at 12:39 AM
|
|
Subject: Pesanan Selesai: “sandal jepit ANDA pria casual...” dan 1 Item Lainnya
|
|
To: <nasyarobby@gmail.com>
|
|
|
|
Hai *Roby,*
|
|
Pesananmu selesai.
|
|
|
|
No.Invoice: 585494052374283654
|
|
<https://fapp1.tokopedia.com/example>
|
|
Toko: NNcolection09
|
|
sandal jepit ANDA pria casual kombinasi warna simpel tebal anti licin -
|
|
ANDA PRIA KOMBINASI BIRU, 41
|
|
|
|
1 x Rp10.500
|
|
Rp10.500
|
|
|
|
sandal jepit ANDA pria casual kombinasi warna simpel tebal anti licin -
|
|
ANDA PRIA KOMBINASI MERAH, 40
|
|
|
|
1 x Rp10.500
|
|
Rp10.500
|
|
Subtotal harga produk
|
|
Total ongkos kirim
|
|
Voucher ongkir platform
|
|
Total proteksi produk
|
|
Asuransi pengiriman
|
|
Biaya jasa aplikasi
|
|
Biaya Layanan
|
|
Rp21.000
|
|
Rp11.500
|
|
-Rp11.500
|
|
Rp2.800
|
|
Rp200
|
|
Rp1.000
|
|
Rp1.000
|
|
|
|
Total belanja
|
|
Rp26.000
|
|
Detail Kurir
|
|
|
|
Layanan Pengiriman
|
|
Standard
|
|
|
|
Nomor Resi
|
|
JY1408468180
|
|
|
|
Tanggal Terima
|
|
14 Agustus 2026
|
|
Tujuan Pengiriman
|
|
|
|
Roby
|
|
`;
|