prpm-dbp 0.10.1 → 0.11.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/README.md +2 -0
- package/SKILL.md +20 -0
- package/bin/cli.js +9 -2
- package/package.json +1 -1
- package/src/prpm.js +15 -1
package/README.md
CHANGED
|
@@ -134,6 +134,8 @@ Pengguna kemudian menarik versi baharu dengan `npx skills update`.
|
|
|
134
134
|
|
|
135
135
|
Pilihan: `--refresh`, `--had <n>`, `--delay <ms>`, `--json`, `--cepat`, `--pedoman`.
|
|
136
136
|
|
|
137
|
+
`--luar-talian` tidak pernah menyentuh rangkaian. Wajib untuk laluan permintaan aplikasi: dokumen penuh dari cache mengambil 0.19 saat, manakala satu perkataan baharu daripada PRPM mengambil beberapa saat.
|
|
138
|
+
|
|
137
139
|
`--pedoman` membenarkan penjanaan imbuhan menurut peraturan DBP apabila kamus tiada jawapan. Ketepatannya diukur 88-98% terhadap 66,000 perkataan sebenar, jadi ia mati secara lalai dan hasilnya sentiasa ditanda.
|
|
138
140
|
|
|
139
141
|
## Guna sebagai library
|
package/SKILL.md
CHANGED
|
@@ -237,6 +237,26 @@ Dua puluh dua kes kabur yang tinggal itu sah: `قلقله` boleh dibaca `qalqala
|
|
|
237
237
|
| §12 serapan Inggeris | Kamus sudah meliputinya; tiada penjanaan diperlukan. |
|
|
238
238
|
| §16.2, §18 | Tidak memerlukan kod: perbezaannya sudah dikodkan dalam jarak teks Rumi. Ada ujian yang mengunci tingkah laku ini. |
|
|
239
239
|
|
|
240
|
+
## Menyambung ke aplikasi
|
|
241
|
+
|
|
242
|
+
Kelajuan diukur pada 406 perkataan:
|
|
243
|
+
|
|
244
|
+
| Keadaan | Masa |
|
|
245
|
+
|---|---|
|
|
246
|
+
| Semua dari cache | **0.19 saat** |
|
|
247
|
+
| Dua perkataan baharu (perlu rangkaian) | **30.7 saat** |
|
|
248
|
+
|
|
249
|
+
Perbezaan itu menentukan cara ia disambung. **Dalam laluan permintaan aplikasi, gunakan `--luar-talian` sentiasa.** Mod itu tidak pernah menyentuh rangkaian: perkataan yang tiada dalam cache dilaporkan belum disahkan, bukan diambil secara segerak sambil pengguna menunggu.
|
|
250
|
+
|
|
251
|
+
Urutan yang disyorkan:
|
|
252
|
+
|
|
253
|
+
1. **Panaskan cache di luar talian** daripada kosa kata projek anda: `npx prpm-dbp warm senarai.txt`
|
|
254
|
+
2. **Hantar cache itu bersama aplikasi** (salin `~/.cache/prpm-dbp/cache.json`, atau tetapkan `PRPM_CACHE`)
|
|
255
|
+
3. **Jalankan dengan `--luar-talian`** dalam laluan permintaan
|
|
256
|
+
4. **Kumpul medan `belumDisahkan`** dan panaskan cache secara berkala di luar talian
|
|
257
|
+
|
|
258
|
+
Dengan cara ini pengguna tidak pernah menunggu PRPM, dan PRPM tidak pernah menerima trafik daripada aplikasi anda.
|
|
259
|
+
|
|
240
260
|
## Rantai kepercayaan
|
|
241
261
|
|
|
242
262
|
Setiap ejaan Jawi yang dikeluarkan membawa asal-usulnya. Jangan runtuhkan lapisan ini.
|
package/bin/cli.js
CHANGED
|
@@ -34,7 +34,8 @@ const BANTUAN = `prpm-dbp — semak Bahasa Melayu dan Jawi terhadap PRPM DBP
|
|
|
34
34
|
npx prpm-dbp install [--link] pasang sebagai Claude Code skill
|
|
35
35
|
|
|
36
36
|
Pilihan: --refresh --had <n> --delay <ms> --json --cepat
|
|
37
|
-
--pedoman
|
|
37
|
+
--pedoman jana imbuhan ikut peraturan DBP (88-98% tepat, hasil ditanda)
|
|
38
|
+
--luar-talian jangan sentuh rangkaian langsung (wajib untuk laluan permintaan app)
|
|
38
39
|
|
|
39
40
|
Cache: ${CACHE_PATH}
|
|
40
41
|
`
|
|
@@ -49,6 +50,7 @@ function huraiArgs(argv) {
|
|
|
49
50
|
else if (a === '--link') pilihan.link = true
|
|
50
51
|
else if (a === '--cepat') pilihan.cepat = true
|
|
51
52
|
else if (a === '--pedoman') pilihan.pedoman = true
|
|
53
|
+
else if (a === '--luar-talian') pilihan.luarTalian = true
|
|
52
54
|
else if (a === '--jenis') pilihan.jenis = argv[++i]
|
|
53
55
|
else if (a === '--had') pilihan.had = Number(argv[++i])
|
|
54
56
|
else if (a === '--delay') pilihan.delay = Number(argv[++i])
|
|
@@ -79,7 +81,12 @@ async function main() {
|
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
const cache = await loadCache()
|
|
82
|
-
const opts = {
|
|
84
|
+
const opts = {
|
|
85
|
+
refresh: pilihan.refresh,
|
|
86
|
+
delay: pilihan.delay,
|
|
87
|
+
onProgress: progres,
|
|
88
|
+
luarTalian: pilihan.luarTalian,
|
|
89
|
+
}
|
|
83
90
|
|
|
84
91
|
switch (perintah) {
|
|
85
92
|
case 'lookup': {
|
package/package.json
CHANGED
package/src/prpm.js
CHANGED
|
@@ -130,11 +130,25 @@ export async function fetchPage(kata, { timeout = 20000 } = {}) {
|
|
|
130
130
|
|
|
131
131
|
const tidur = (ms) => new Promise((r) => setTimeout(r, ms))
|
|
132
132
|
|
|
133
|
-
export async function lookup(
|
|
133
|
+
export async function lookup(
|
|
134
|
+
kata,
|
|
135
|
+
cache,
|
|
136
|
+
{ refresh = false, delay = 400, perluPenuh = false, luarTalian = false } = {},
|
|
137
|
+
) {
|
|
134
138
|
const key = String(kata).trim().toLowerCase()
|
|
135
139
|
if (!key) return null
|
|
136
140
|
|
|
137
141
|
const simpanan = cache[key]
|
|
142
|
+
|
|
143
|
+
// Mod luar talian TIDAK PERNAH menyentuh rangkaian. Ini wajib untuk
|
|
144
|
+
// laluan permintaan aplikasi: satu perkataan yang belum dicache mengambil
|
|
145
|
+
// beberapa saat, manakala keseluruhan dokumen dari cache mengambil 0.2
|
|
146
|
+
// saat. Perkataan yang tiada dalam cache dilaporkan belum disahkan,
|
|
147
|
+
// bukan diambil secara segerak sambil pengguna menunggu.
|
|
148
|
+
if (luarTalian) {
|
|
149
|
+
if (simpanan) return { ...simpanan, dariCache: true }
|
|
150
|
+
return { kata: key, dijumpai: false, jawi: null, jawiVarian: [], entri: [], nota: 'tiada dalam cache (mod luar talian)', url: `${BASE_URL}?keyword=${encodeURIComponent(key)}` }
|
|
151
|
+
}
|
|
138
152
|
// Rekod benih membawa ejaan sahaja, tanpa definisi, supaya pakej kekal
|
|
139
153
|
// kecil. Bila pemanggil betul-betul perlukan definisi, ambil semula.
|
|
140
154
|
const cukup = simpanan && !(perluPenuh && simpanan.ringkas)
|