JavaScript Wrapper
v0.0.11nxgate adalah wrapper resmi untuk Node.js (v20.11.0 ke atas). Mendukung TypeScript, ESM, CJS, dan async/await. Cocok untuk backend Node.js yang butuh verifikasi lisensi sederhana.
Instalasi
# npmnpm install nxgate# yarnyarn add nxgate# pnpmpnpm add nxgate
axios — otomatis terinstall. Node.js minimum v20.11.0.Penggunaan Dasar
1// CommonJS2const NxGate = require('nxgate').default;3const { ValidationType } = require('nxgate');45// ESM / TypeScript6import NxGate, { ValidationType } from 'nxgate';78async function checkLicense() {9 const gate = new NxGate('YOUR_USER_ID');1011 const result = await gate.verify('XXXX-XXXX-XXXX-XXXX');1213 if (result === ValidationType.VALID) {14 console.log('Lisensi valid!');15 } else {16 console.log('Lisensi tidak valid. Alasan:', result);17 }18}1920checkLicense().catch(console.error);
Penggunaan Lanjutan
Gunakan constructor 2 argumen untuk mengaktifkan RSA challenge otomatis, lalu gunakan verify(key, scope?, metadata?) dengan full switch-case pada ValidationType:
1import NxGate, { ValidationType } from 'nxgate';23const gate = new NxGate('YOUR_USER_ID', 'YOUR_PUBLIC_RSA_KEY'); // RSA challenge otomatis aktif45// Verifikasi dengan scope dan metadata6const result = await gate.verify(7 'XXXX-XXXX-XXXX-XXXX',8 'production', // scope (opsional)9 'hostname=my-server' // metadata string (opsional)10);1112switch (result) {13 case ValidationType.VALID:14 console.log('✓ Lisensi valid');15 break;16 case ValidationType.NOT_FOUND:17 console.error('✗ License key tidak ditemukan');18 break;19 case ValidationType.NOT_ACTIVE:20 console.error('✗ License belum diaktifkan');21 break;22 case ValidationType.EXPIRED:23 console.error('✗ License sudah expired');24 break;25 case ValidationType.LICENSE_SCOPE_FAILED:26 console.error('✗ Scope tidak cocok');27 break;28 case ValidationType.IP_LIMIT_EXCEEDED:29 console.error('✗ Batas IP terlampaui');30 break;31 case ValidationType.RATE_LIMIT_EXCEEDED:32 console.warn('⚠Rate limit, coba lagi nanti');33 break;34 case ValidationType.FAILED_CHALLENGE:35 console.error('✗ RSA challenge gagal — public key salah?');36 break;37 case ValidationType.CONNECTION_ERROR:38 console.error('✗ Tidak dapat terhubung ke server NxGate');39 break;40 case ValidationType.SERVER_ERROR:41 console.error('✗ Server NxGate mengembalikan response invalid');42 break;43}
verifySimple()
Jika hanya butuh boolean tanpa perlu tahu alasan kegagalannya:
1import NxGate from 'nxgate';23const gate = new NxGate('YOUR_USER_ID');45// Return boolean — true jika VALID, false untuk semua hasil lain6const isValid = await gate.verifySimple('XXXX-XXXX-XXXX-XXXX');7const isValidScoped = await gate.verifySimple('XXXX-XXXX-XXXX-XXXX', 'production');
Custom Server & Debug
1import NxGate, { ValidationType } from 'nxgate';23const gate = new NxGate('YOUR_USER_ID')4 .setValidationServer('https://your-self-hosted-server.com')5 .debug(); // print log request/response ke console67const result = await gate.verify('XXXX-XXXX-XXXX-XXXX');
API Reference
| Method | Return | Deskripsi |
|---|---|---|
| new NxGate(userId, rsaKey?) | NxGate | Buat instance. RSA challenge aktif jika rsaKey diberikan. |
| .setValidationServer(url) | NxGate | Ganti URL server (untuk self-hosted). Default: api.nxgate.noxlydev.xyz |
| .setPublicRsaKey(key) | NxGate | Set public RSA key setelah konstruksi. |
| .useChallenges() | NxGate | Aktifkan RSA challenge secara manual. |
| .debug() | NxGate | Print log request & response ke console. |
| .verify(key, scope?, meta?) | Promise<ValidationType> | Verifikasi license key. Return enum ValidationType. |
| .verifySimple(key, scope?, meta?) | Promise<boolean> | Shorthand — true jika VALID, false untuk semua lainnya. |
Tidak ada offline cache
JS wrapper tidak memiliki fitur offline grace period atau heartbeat seperti HardenedNxGate di Java. Jika server NxGate tidak bisa dihubungi, hasil langsung CONNECTION_ERROR. Pastikan implementasi kamu menangani kondisi ini dengan baik.
Tips
Wrapper ini cocok untuk backend Node.js yang kamu kontrol sendiri. Jangan gunakan di sisi client/browser karena userId dan RSA key akan terekspos. Untuk plugin Minecraft, gunakan HardenedNxGate dari Java library.