│ ├── rules.json # Sumber kebenaran aturan deteksi
│ ├── rules.scema.json # JSON Schema (nama file typo, belum dipakai)
│ └── whitelist.json # Path/prefix/IP yang dilewatkan
│ └── build-rules.cjs # Validasi + kompilasi rules
│ ├── index.js # Entry point Worker
│ ├── rules.compiled.json # Artefak build (jangan diedit)
│ ├── scanner.js # Kompilasi regex + evaluasi skor
│ ├── ratelimit.js # Circuit breaker berbasis KV
│ ├── watermark.js # Derivasi hash + resolusi salt
│ ├── logger.js # Logging Analytics Engine
│ └── utils.js # Helper passthrough, decode, sanitasi
│ └── index.ts # Entry point package npm
├── docs/ # Situs dokumentasi (Astro Starlight)
│ ├── content/docs/ # Semua halaman dokumentasi
│ └── deploy-docs.yml # Deploy dokumentasi ke Cloudflare Pages
├── dist/ # Output build npm package (ignored)
└── .wrangler/ # State lokal Wrangler (ignored)
File
Fungsi
README.md
Dokumentasi utama proyek dan changelog
PRD.md
Product Requirements Document versi Beta
package.json
Script Worker, package npm, dan dependency
wrangler.toml
Konfigurasi deploy Worker dan binding Cloudflare
tsconfig.json
Konfigurasi TypeScript untuk publish/ dan src/
File
Fungsi
rules.json
Threshold, sinyal, skor, combo bonus, roast, fake payload
rules.scema.json
Skema JSON untuk validasi (belum dibaca oleh build)
whitelist.json
Exact path, prefix, dan IP yang dilewatkan
File
Fungsi
build-rules.cjs
Membaca, memvalidasi, dan mengompilasi rules ke src/rules.compiled.json
rotate-salt.cjs tidak ada
package.json mendefinisikan salt:rotate yang menunjuk ke scripts/rotate-salt.cjs,
tetapi file tersebut tidak ada di repository. Perintah npm run salt:rotate akan gagal.
File
Fungsi
index.js
Orkestrasi request: whitelist, scoring, circuit breaker, response
scanner.js
compileRules() dan evaluateThreat()
ratelimit.js
checkCircuitBreaker() dan recordStrike()
watermark.js
resolveSalt(), resolveSaltCandidates(), generateWatermark()
logger.js
logEventBestEffort() dengan sampling
utils.js
Decode, whitelist, baca body, sanitasi, passthrough, template
rules.compiled.json
Artefak build; jangan diedit manual
File
Fungsi
index.ts
Fungsi bangkShield() untuk konsumsi package npm
File
Fungsi
astro.config.mjs
Konfigurasi Starlight, sidebar, dan URL situs
src/content/docs/
Konten dokumentasi berbahasa Indonesia
src/styles/custom.css
Tema warna dan penyesuaian tampilan
public/favicon.svg
Ikon situs
.gitignore mengabaikan:
src/rules.compiled.json tidak di-ignore, sehingga artefak build ikut ter-commit. Ini
memudahkan deploy yang tidak menjalankan predeploy, tetapi berarti artefak harus diperbarui
setiap kali config/rules.json berubah.
Build
Perintah
Output
Dipakai untuk
Worker
npm run deploy
Tidak menghasilkan folder build; Wrangler membundel src/index.js
Honeypot
Package npm
npm run build
dist/index.js, dist/index.d.ts
Library
Dokumentasi
npm run docs:build
docs/dist/
Cloudflare Pages
Jangan tertukar: dist/ di root adalah output package, sedangkan docs/dist/ adalah output
situs dokumentasi.