ambalabs
v0.1.1
Published
Small TypeScript/JavaScript library for masking sensitive data.
Downloads
201
Maintainers
Readme
AmbaLabs
ambalabs adalah library kecil TypeScript/JavaScript untuk menyamarkan data sensitif seperti email, nomor telepon, nama, nomor kartu, dan kata tertentu di dalam teks.
- npm:
ambalabs - GitHub:
Arito8382/Pkg-AmbaLabs - Versi saat ini:
0.1.0 - Runtime minimum:
Node.js >= 18
Install
npm install ambalabsJika ingin mengunci ke versi awal:
npm install [email protected]Import
Package ini dipublish sebagai ESM.
import {
maskCard,
maskCustom,
maskEmail,
maskName,
maskPhone,
maskText
} from "ambalabs";Jika dipakai dari CommonJS, gunakan dynamic import:
const {
maskCard,
maskCustom,
maskEmail,
maskName,
maskPhone,
maskText
} = await import("ambalabs");Fitur
maskCustom()maskEmail()maskPhone()maskName()maskCard()maskText()
Contoh Penggunaan
import {
maskCard,
maskCustom,
maskEmail,
maskName,
maskPhone,
maskText
} from "ambalabs";
maskEmail("[email protected]");
// i***[email protected]
maskPhone("081234567890");
// 0812****7890
maskPhone("+62 812-3456-7890");
// +62 81*-****-7890
maskCustom("ABCD1234", { preserveStart: 2, preserveEnd: 2 });
// AB****34
maskName("Intan Putri");
// I**** P****
maskCard("4111 1111 1111 1111");
// **** **** **** 1111
maskText("Nomor KTP Intan adalah 123456", ["Intan", "123456"]);
// Nomor KTP ***** adalah ******API
maskCustom(value, options?)
Menyamarkan string apa pun dengan mempertahankan sebagian karakter awal dan akhir.
maskCustom("RAHASIA", { preserveStart: 1, preserveEnd: 1 });
// R*****AOpsi:
preserveStart?: numberjumlah karakter awal yang tetap terlihat.preserveEnd?: numberjumlah karakter akhir yang tetap terlihat.maskChar?: stringkarakter masking. Jika lebih dari satu karakter, hanya karakter pertama yang dipakai.
maskEmail(email, options?)
Menyamarkan bagian local-part email. Domain tetap terlihat.
maskEmail("[email protected]");
// i***[email protected]Opsi mengikuti maskCustom():
preserveStart?: numberpreserveEnd?: numbermaskChar?: string
maskPhone(phone, options?)
Menyamarkan digit tengah nomor telepon sambil mempertahankan format non-digit seperti spasi, +, atau -.
maskPhone("081234567890");
// 0812****7890Opsi:
preserveStartDigits?: numberdefault4preserveEndDigits?: numberdefault4maskChar?: string
maskName(name, options?)
Menyamarkan setiap kata pada nama dengan mempertahankan huruf pertama tiap kata.
maskName("Intan Putri");
// I**** P****Opsi:
maskChar?: string
maskCard(card, options?)
Menyamarkan digit nomor kartu dan mempertahankan 4 digit terakhir.
maskCard("4111 1111 1111 1111");
// **** **** **** 1111Opsi:
preserveStartDigits?: numberdefault0preserveEndDigits?: numberdefault4maskChar?: string
maskText(text, terms, options?)
Menyamarkan kata atau frasa tertentu di dalam teks.
maskText("Email Intan adalah [email protected]", ["Intan", "[email protected]"]);
// Email ***** adalah *****************Opsi:
caseSensitive?: booleandefaultfalsewholeWord?: booleandefaultfalsemaskChar?: string
Perilaku Penting
- Input
nullatauundefinedakan menghasilkan string kosong. maskPhone()danmaskCard()hanya menyamarkan digit, bukan separator.maskText()menerimastringtunggal atau array string.- Jika
maskCharberisi lebih dari satu karakter, library hanya memakai karakter pertama.
TypeScript
Type definition sudah ikut dipublish. Tidak perlu install package tipe terpisah.
Development
npm install
npm run build
npm testValidasi Package
npm run checkPerintah ini akan:
- build TypeScript ke
dist/ - menjalankan test
- menjalankan
npm pack --dry-run
Publish
Publish package dilakukan dengan:
npm publish --access publicUntuk publish lewat GitHub Actions, repository membutuhkan secret NPM_TOKEN.
