prpm-dbp 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/SKILL.md CHANGED
@@ -144,6 +144,12 @@ Kata sendi **tidak** dicantum apabila kata berikutnya belum disahkan, kerana has
144
144
 
145
145
  Pakej tidak perlu memilih antara dua ini. DBP sudah memilih, dan pilihan itu terkandung dalam ejaan yang dipulangkan PRPM. Ia didokumenkan supaya tiada siapa "membetulkan" `صلاة` kepada ejaan fonetik Melayu kemudian hari.
146
146
 
147
+ **§11.6 — alif maqsurah dikekalkan.** `takwa` تقوى, `fatwa` فتوى, `Musa`, `Isa`. Ia diganti dengan alif hanya apabila dibentuk kata terbitan: `ketakwaan`, `memfatwakan`, `pendakwaan`. Perbezaan itu membawa maklumat, jadi `ى` **tidak pernah dilipat** semasa perbandingan. Melipatnya akan membuat `تقوي` yang salah dibandingkan sama dengan `تقوى` yang betul.
148
+
149
+ **§10 — enam belas perkataan dikecualikan daripada aturan pola:** `ada`, `apa`, `beta`, `bin`, `binti`, `dari`, `daripada`, `ini`, `itu`, `jika`, `kepada`, `kita`, `lima`, `maka`, `pada`, `demikian`. Ejaannya mesti datang daripada kamus dan tidak boleh dibetulkan oleh mana-mana peraturan pola.
150
+
151
+ **§17.1 — kata ulang penuh menggunakan angka dua Arab `٢`**, bukan sempang: `rama-rama` menjadi `رام٢`. Sempang digunakan hanya apabila bahagian yang diulang berubah bentuk (§17.2).
152
+
147
153
  ## Rantai kepercayaan
148
154
 
149
155
  Setiap ejaan Jawi yang dikeluarkan membawa asal-usulnya. Jangan runtuhkan lapisan ini.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prpm-dbp",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Semak ejaan Bahasa Melayu dan Jawi terhadap PRPM Dewan Bahasa dan Pustaka. CLI dan skill untuk AI agent.",
5
5
  "keywords": [
6
6
  "bahasa-melayu",
package/src/kamus.js CHANGED
@@ -187,8 +187,7 @@ export async function cariKamus(kata, { timeout = 25000 } = {}) {
187
187
  const LIPATAN = new Map([
188
188
  ['ك', 'ک'], // ك Arabic Kaf -> ک Keheh
189
189
  ['ڪ', 'ک'], // ڪ Swash Kaf -> ک Keheh
190
- ['ی', 'ي'], // ی Farsi Yeh -> ي Arabic Yeh
191
- ['ى', 'ي'], // ى Alef Maksura -> ي Arabic Yeh
190
+ ['ی', 'ي'], // ی Farsi Yeh -> ي Arabic Yeh (varian bentuk semata-mata)
192
191
  ['ڬ', 'ݢ'], // ڬ Gaf varian -> ݢ Gaf Jawi Melayu
193
192
  ['ە', 'ه'], // ە Ae -> ه Ha
194
193
  ['ہ', 'ه'], // ہ Heh Goal -> ه Ha
@@ -204,6 +203,14 @@ export function normalisasiJawi(teks) {
204
203
  .trim()
205
204
  }
206
205
 
206
+ // SENGAJA TIDAK DILIPAT: ى (U+0649, alif maqsurah) kepada ي (U+064A).
207
+ // Pedoman DBP §11.6: alif maqsurah dalam ejaan asal Arab DIKEKALKAN dalam
208
+ // ejaan Jawi — takwa تقوى, fatwa فتوى, Musa, Isa. Melipatnya akan membuat
209
+ // تقوي (salah) dibandingkan sama dengan تقوى (betul), lalu menyembunyikan
210
+ // kesilapan sebenar. §11.6 juga menyatakan huruf itu diganti dengan alif
211
+ // apabila dibentuk kata terbitan (ketakwaan, memfatwakan), jadi perbezaan
212
+ // itu memang membawa maklumat.
213
+
207
214
  // SENGAJA TIDAK DILIPAT: پ (U+067E, pe Parsi) kepada ڽ (U+06BD, nya).
208
215
  // Sesetengah enjin transliterasi negeri mengeluarkan پ di tempat ڽ, tetapi
209
216
  // itu huruf yang SALAH, bukan varian bentuk. Melipatnya akan menyembunyikan
package/src/pedoman.js CHANGED
@@ -82,3 +82,31 @@ export function pisahSendi(jawi) {
82
82
  }
83
83
  return calon
84
84
  }
85
+
86
+ /**
87
+ * §10 — Senarai perkataan yang dikecualikan daripada beberapa aturan
88
+ * pengejaan biasa. Ejaannya tidak menurut pola suku kata, jadi ia mesti
89
+ * datang daripada kamus dan tidak boleh "dibetulkan" oleh mana-mana
90
+ * peraturan pola.
91
+ */
92
+ export const KECUALI_POLA = new Set([
93
+ 'ada', 'apa', 'beta', 'bin', 'binti', 'dari', 'daripada', 'ini', 'itu',
94
+ 'jika', 'kepada', 'kita', 'lima', 'maka', 'pada', 'demikian',
95
+ ])
96
+
97
+ /**
98
+ * §17.1 — Kata ulang penuh ditulis dengan tanda angka dua Arab (٢),
99
+ * bukan dengan sempang seperti dalam Rumi.
100
+ * rama-rama -> رام٢
101
+ * §17.2 — Apabila bahagian yang diulang berubah bentuk (kata ulang
102
+ * berimbuhan atau berentak), tanda sempang digunakan.
103
+ */
104
+ export const ANGKA_DUA = '\u0662'
105
+
106
+ /**
107
+ * §11.6 — Alif maqsurah dalam ejaan asal Arab dikekalkan (takwa تقوى,
108
+ * fatwa فتوى, Musa, Isa), TETAPI diganti dengan alif apabila dibentuk kata
109
+ * terbitan dengan akhiran atau partikel (ketakwaan, memfatwakan,
110
+ * pendakwaan). Kerana itu ia tidak boleh dilipat semasa perbandingan.
111
+ */
112
+ export const NOTA_MAQSURAH = 'Pedoman DBP §11.6'