devcode-canavar-pro 3.5.3 → 3.6.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.
Files changed (3) hide show
  1. package/README.md +135 -53
  2. package/lib/Dashboard.js +74 -30
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,82 +1,164 @@
1
- # 🦖 DevCode MONSTER: ULTRA-SECURE PRO (v3.3)
2
-
3
- ```text
4
- ██████╗ ███████╗██╗ ██╗ ██████╗ ██████╗ ██████╗ ███████╗
5
- ██╔══██╗██╔════╝██║ ██║██╔════╝ ██╔═══██╗██╔══██╗██╔════╝
6
- ██║ ██║█████╗ ██║ ██║██║ ██║ ██║██║ ██║█████╗
7
- ██║ ██║██╔══╝ ╚██╗ ██╔╝██║ ██║ ██║██║ ██║██╔══╝
8
- ██████╔╝███████╗ ╚████╔╝ ╚██████╗ ╚██████╔╝██████╔╝███████╗
9
- ╚═════╝ ╚══════╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝
10
- [ THE ULTIMATE SAFE CLOUD DATABASE ]
11
- ```
1
+ # 🦖 DevCode MONSTER PRO: SYSTEMATIC COMMAND CENTER
2
+ *The Ultimate, Zero-Config, Real-Time Embedded Database Experience.*
12
3
 
13
- [![NPM Version](https://img.shields.io/npm/v/devcode-canavar?style=for-the-badge&color=blue)](https://www.npmjs.com/package/devcode-canavar-pro)
14
- [![NPM Downloads](https://img.shields.io/npm/dt/devcode-canavar?style=for-the-badge&color=green)](https://www.npmjs.com/package/devcode-canavar-pro)
15
- [![Security](https://img.shields.io/badge/Security-Armored--Bulletproof-red?style=for-the-badge)]()
16
- [![Status](https://img.shields.io/badge/Status-100%25--Rock--Solid-success?style=for-the-badge)]()
4
+ [![NPM Version](https://img.shields.io/npm/v/devcode-canavar-pro?style=for-the-badge&color=blue)](https://www.npmjs.com/package/devcode-canavar-pro)
5
+ [![Status](https://img.shields.io/badge/Status-Ultra%20Stable-success?style=for-the-badge)]()
17
6
 
18
7
  ---
19
8
 
20
- ## 🛡️ "Dünyanın En Güvenli Veri Depolama Sistemi"
9
+ ## 🌟 Nedir Bu DevCode Monster Pro?
21
10
 
22
- DevCode Monster Pro, sadece bir veritabanı değil; verileriniz için **kurşun geçirmez bir zırhdır.** Sıradan JSON veritabanlarının aksine DevCode, kurumsal düzeyde veri güvenliği ve fiziksel izolasyon sağlar. **Sıfır risk, maksimum koruma.**
11
+ DevCode Monster Pro, özellikle **Discord Bot Geliştiricileri**, **Oyun Sunucuları** ve **Hızlı Proje Üretenler** için tasarlanmış, kurulum gerektirmeyen, **kendi VDS'inizde (Sanal Sunucunuzda)** çalışan ultra hızlı bir veritabanı sistemidir.
23
12
 
24
- | Güvenlik Katmanı | Standart Veritabanları | 🦖 DevCode Monster Pro |
25
- | :--- | :---: | :---: |
26
- | **Veri Bütünlüğü** | ❌ Bozulmaya Açık | **✅ Ultra-Atomic (Sıfır Bozulma)** |
27
- | **Fiziksel Güvenlik** | ❌ Herkese Açık Dosya | **✅ VDS Zırhı (Görünmez Veri)** |
28
- | **Bağlantı Güvenliği** | ❌ Savunmasız | **✅ Secret-Key & IP Shield** |
29
- | **Saldırı Koruması** | ❌ Korumasız | **✅ Pro Rate-Limit Kalkanı** |
30
- | **Veri Akış Garantisi** | ❌ Hatalı Kesinti | **✅ Resilience Pro (Tam Teslim)** |
13
+ MongoDB veya SQL kurmakla uğraşmanıza gerek kalmaz. Saniyeler içinde kendi sunucunuzu ayağa kaldırır ve kendi bilgisayarınızdan (veya botunuzun içinden) bu sunucuya güvenle bağlanırsınız. Üstelik her şeyi muazzam bir **"Command Center OS" (Yönetim Üssü)** arayüzünden canlı olarak izleyebilirsiniz!
31
14
 
32
15
  ---
33
16
 
34
- ## 💎 Kurumsal Düzey "God-Mode" Güvenlik
17
+ ## 🚀 3 Adımda Sistem Kurulumu (Çok Basit!)
35
18
 
36
- ### **Kurşun Geçirmez Veri Akışı (The Fortress)**
37
- Veri yazılırken ASLA bozulmaz. **Atomic Write** teknolojimiz, veriyi önce güvenli bir tampon bölgede hazırlar ve ancak %100 doğrulandığında sisteme işler. Elektrik kesintisi, sunucu çökmesi veya ağ hatası; veriniz her zaman güvende.
19
+ Sistemi kullanmak inanilmaz derecede kolaydır. Sadece iki aşama var: **1. VDS (Sunucu) Kurulumu** ve **2. Kendi Kodunuza Bağlama**.
38
20
 
39
- ### 🛡️ **VDS Zırhlı Kalkanı (The Shield)**
40
- Sunucunuz artık bir kale. Yerleşik **Rate Limiting** ve **IP Whitelisting** desteği sayesinde sadece sizin izin verdiğiniz "Trusted" (Güvenilir) IP adresleri verilerinize erişebilir. Kalan tüm saldırılar daha kapıdan girmeden engellenir.
21
+ ### 🛠️ ADIM 1: VDS'nizde Server'ı Başlatın (Sadece 1 Kere Yapılır)
22
+ Sanal sunucunuza (VDS/VPS) girin ve terminale şu komutları yazın:
41
23
 
42
- ### ⚡ **Ultra-Fast & Safe Indexing**
43
- Hızdan ödün vermeden güvenlik sağlıyoruz. **Auto-Indexing** teknolojisi sayesinde verileriniz devasa boyutlara ulaşsa bile sorgularınız Turbo hızında ve stabil bir şekilde yanıtlanır.
24
+ ```bash
25
+ # 1. DevCode'u Tüm Sisteme Kurun
26
+ npm install -g devcode-canavar-pro@latest
44
27
 
45
- ### 🎨 **Elite Pro Dashboard**
46
- Kendi VDS verilerinizi kendi PC'nizden yönetin. Premium Glassmorphism arayüzü ile sunucunuzun sağlığını, aktif bağlantıları ve güvenlik metriklerini anlık olarak izleyin.
28
+ # 2. Server'ı Başlatın! (Şifrenizi kimseyle paylaşmayın!)
29
+ devcode server --port 4242 --dashboard 3000 --secret BENIM_GIZLI_SIFREM_123
30
+ ```
31
+ *🎉 Tebrikler! Artık 4242 portundan veri kabul eden ve 3000 portundan yönetilebilen bir veritabanı sunucunuz var.*
47
32
 
48
33
  ---
49
34
 
50
- ## 🚀 Fırlatma Protokolü (The Launch Sequence)
51
-
52
- ### 1️⃣ **VDS: Kaleyi İnşa Edin**
53
- VDS sunucunuzda sadece şunu çalıştırın:
35
+ ### 💻 ADIM 2: Kendi Botunuza/Projenize Bağlayın
36
+ Kendi bilgisayarınızda veya botunuzun olduğu klasörde paketi yükleyin:
54
37
  ```bash
55
- # Tek komutla kurumsal bulut sunucunuzu başlatın
56
- npm install -g devcode-canavar-pro
57
- devcode server --port 4242 --secret sizin_max_guvenli_anahtarınız
38
+ npm install devcode-canavar-pro
58
39
  ```
59
40
 
60
- ### 2️⃣ **Projeniz: Zırhlı Bağlantı**
41
+ Sonra kodunuzun içine şu şekilde ekleyin:
61
42
  ```javascript
62
- const db = require('devcode-canavar-pro')('sizin_max_guvenli_anahtarınız');
43
+ // Sunucudaki şifrenizi, VDS İP adresinizi ve portunu buraya girin:
44
+ const db = require('devcode-canavar-pro')('BENIM_GIZLI_SIFREM_123', 'http://VDS_IP_ADRESINIZ:4242');
45
+
46
+ // Artık veritabanını kullanmaya başlayabilirsiniz!
47
+ const users = db.use('AnaVeritabani').collection('Kullanicilar');
48
+
49
+ async function test() {
50
+ // 💾 Veri Ekleme (Anında VDS'e gider)
51
+ await users.insert({ isim: 'Baran', rütbe: 'Kurucu', puan: 9999 });
63
52
 
64
- // 📊 Güvenlik Panelini yerelinizde başlatın
65
- db.startDashboard(3000);
53
+ // 🔍 Veri Çekme
54
+ const baran = await users.find({ isim: 'Baran' });
55
+ console.log("Bulunan Kullanıcı:", baran);
56
+ }
66
57
 
67
- // 💾 Veriler anında şifreli ve izole bir şekilde VDS'e akar
68
- const users = db.use('Private').collection('users');
69
- await users.insert({ username: 'Baran', access: 'Admin' });
58
+ test();
70
59
  ```
71
60
 
72
61
  ---
73
62
 
74
- ## 🛡️ Neden DevCode Monster Pro?
75
- - **Namespace Isolation**: Her anahtar için tamamen izole edilmiş veri dünyaları.
76
- - **Memory Caching Pro**: Hızlı ama güvenli veri okuma garantisi.
77
- - **No-Disk footprint**: İstemci bilgisayarında iz bırakmaz, veriler sadece merkezde.
63
+ ### 🏰 ADIM 3: Command Center'ı Görüntüleyin (Mükemmel Panel)
64
+
65
+ Verilerinizin nereye gittiğini, sistemin ne kadar RAM harcadığını ve kimin ne işlem yaptığını görmek ister misiniz?
66
+
67
+ Tarayıcınızı açın ve VDS adresinize gidin:
68
+ 👉 `http://VDS_IP_ADRESINIZ:3000`
69
+
70
+ Karşınıza karanlık temalı, profesyonel bir **İşletim Sistemi Arayüzü** çıkacak.
71
+ 1. `BENIM_GIZLI_SIFREM_123` yazarak giriş yapın.
72
+ 2. Anlık (Canlı) log akışını, RAM durumunu ve tüm verilerinizi görsel olarak yönetin!
78
73
 
79
74
  ---
80
75
 
81
- ## 📜 Lisans ve Elite Destek
82
- MIT © 2026 [Baran](https://github.com/baran) - **Building Bulletproof Solutions.**
76
+ ## 💡 Temel Kullanım Rehberi (Geliştiriciler İçin)
77
+
78
+ DevCode'un kullanımı MongoDB'ye çok benzer ama çok daha basittir.
79
+
80
+ ### 📚 Veritabanı ve Koleksiyon Seçme
81
+ ```javascript
82
+ // 'EkoSistemi' adlı veritabanındaki 'Banka' koleksiyonuna bağlan
83
+ const banka_db = db.use('EkoSistemi').collection('Banka');
84
+ ```
85
+
86
+ ### ➕ Veri Ekleme (Insert)
87
+ ```javascript
88
+ await banka_db.insert({ userID: "12345", bakiye: 500, envanter: ["Kılıç"] });
89
+ ```
90
+
91
+ ### 🔍 Veri Çekme / Arama (Find & FindOne)
92
+ ```javascript
93
+ // Hepsini getir
94
+ const zenginler = await banka_db.find({ bakiye: { $gt: 100 } });
95
+
96
+ // Sadece o kişiyi getir
97
+ const kullanici = await banka_db.findOne({ userID: "12345" });
98
+ ```
99
+
100
+ ### ✏️ Veri Güncelleme (Update)
101
+ ```javascript
102
+ // Bakiyesine +100 ekle, envanterine 'Kalkan' pushla
103
+ await banka_db.update(
104
+ { userID: "12345" },
105
+ {
106
+ $inc: { bakiye: 100 },
107
+ $push: { envanter: "Kalkan" }
108
+ }
109
+ );
110
+ ```
111
+
112
+ ### 🗑️ Veri Silme (Delete)
113
+ ```javascript
114
+ await banka_db.delete({ userID: "12345" });
115
+ ```
116
+
117
+ ---
118
+
119
+ ## 💎 Neden DevCode Monster Pro Kullanmalısınız?
120
+
121
+ 1. **🚀 Kurulum Derdi Yok:** MongoDB kurarken yaşanan envai çeşit hatayla asla karşılaşmazsınız. Node.js yüklüyse, DevCode çalışır.
122
+ 2. **🛡️ Ultra Güvenli:** Verileriniz yerel bilgisayarınızda (bot klasörünüzde) barınmaz. Her şey şifreli bir şekilde doğrudan VDS'inize akar. Bilgisayarınız çökse bile verileriniz asla kaybolmaz.
123
+ 3. **🏎️ Auto-Index Motoru:** Veritabanınız ne kadar büyürse büyüsün, arama hızınız düşmez. Sistem otomatik olarak Index (fihrist) oluşturarak aranan veriyi anında bulur.
124
+ 4. **📉 Düşük Bellek Tüketimi:** Tamamen optimize edilmiştir, VDS'inizi yormaz.
125
+ 5. **✨ Premium Dashboard:** Gerçek zamanlı loglar ve sistem metrikleri ile sunucunuz sizin kontrolünüzde.
126
+
127
+ ---
128
+
129
+ ## 🛠️ Detaylı Gelişmiş Sorgular (Query Operators)
130
+ Şu operatörleri arama (`find`) işlemlerinizde kullanabilirsiniz:
131
+ * `$eq` : Eşittir
132
+ * `$ne` : Eşit Değildir
133
+ * `$gt` : Büyüktür
134
+ * `$gte`: Büyük Eşittir
135
+ * `$lt` : Küçüktür
136
+ * `$lte`: Küçük Eşittir
137
+ * `$in` : İçinde geçiyorsa (Dizi)
138
+ * `$nin`: İçinde geçmiyorsa (Dizi)
139
+ * `$regex`: Belirli bir kelime kalıbı arama
140
+
141
+ **Örnek:**
142
+ ```javascript
143
+ // İsmi 'A' ile başlayan VE bakiyesi 500'den büyük olanlar
144
+ await db.find({
145
+ isim: { $regex: "^A" },
146
+ bakiye: { $gt: 500 }
147
+ });
148
+ ```
149
+
150
+ ---
151
+
152
+ ## ⚠️ Sıkça Sorulan Sorular (SSS)
153
+
154
+ **S: Verilerim nerede tutuluyor?**
155
+ *C: Sadece `devcode server` komutunu çalıştırdığınız ana makinede (VDS) tutulur. Botunuz/Projeniz bu makineye internet üzerinden güvenli uçtan uca istek atar.*
156
+
157
+ **S: Şifremi (Secret) başkası bulursa ne olur?**
158
+ *C: Şifreniz (Secret) sizin anahtarınızdır. VDS IP adresinizi ve şifrenizi bilen biri verilerinize erişebilir. Şifrenizi karmaşık yapın ve kodlarınızda gizli alanlarda (örn: `.env` dosyasında) saklayın.*
159
+
160
+ **S: Uygulama çökerse veri kaybı yaşar mıyım?**
161
+ *C: Hayır. DevCode, yazma işlemlerini bellekte güvene almadan önce diske yazar ("Journaling" mantığı). Sistem aniden elektrik kesintisine uğrasa dahi veri bütünlüğü (corruption olmadan) korunur.*
162
+
163
+ ---
164
+ *MIT License © 2026 DevCode Technologies | Tasarım ve Geliştirme: [Baran]*
package/lib/Dashboard.js CHANGED
@@ -4,8 +4,9 @@ const path = require('path');
4
4
  const os = require('os');
5
5
 
6
6
  /**
7
- * DevCode SYSTEMATIC COMMAND CENTER - v3.5.2
7
+ * DevCode SYSTEMATIC COMMAND CENTER - v3.5.7
8
8
  * The ultimate VDS management experience.
9
+ * FIXED: Removed all backticks from inner script tags to prevent syntax errors on varied Node versions.
9
10
  */
10
11
  class Dashboard {
11
12
  constructor(core, port = 3000) {
@@ -209,21 +210,37 @@ class Dashboard {
209
210
  </main>
210
211
  </div>
211
212
  <script>
212
- let secret = localStorage.getItem('dc_cc_key');
213
+ var secret = localStorage.getItem('dc_cc_key');
213
214
  if (secret) init();
214
- async function api(p, m='GET', b=null) {
215
- const r = await fetch(p, { method: m, headers: { 'Content-Type': 'application/json', 'x-dashboard-secret': secret }, body: b ? JSON.stringify(b) : null });
216
- if (r.status === 401) logout();
217
- return await r.json();
215
+
216
+ function api(p, m, b) {
217
+ return fetch(p, {
218
+ method: m || 'GET',
219
+ headers: { 'Content-Type': 'application/json', 'x-dashboard-secret': secret },
220
+ body: b ? JSON.stringify(b) : null
221
+ }).then(function(r) {
222
+ if (r.status === 401) logout();
223
+ return r.json();
224
+ });
218
225
  }
219
- async function login() {
220
- const v = document.getElementById('gate-key').value;
221
- const res = await fetch('/api/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ secret: v }) });
222
- const d = await res.json();
223
- if (d.success) { secret = v; localStorage.setItem('dc_cc_key', v); init(); } else { document.getElementById('login-err').style.display = 'block'; }
226
+
227
+ function login() {
228
+ var v = document.getElementById('gate-key').value;
229
+ fetch('/api/login', {
230
+ method: 'POST',
231
+ headers: { 'Content-Type': 'application/json' },
232
+ body: JSON.stringify({ secret: v })
233
+ }).then(function(res) {
234
+ return res.json();
235
+ }).then(function(d) {
236
+ if (d.success) { secret = v; localStorage.setItem('dc_cc_key', v); init(); }
237
+ else { document.getElementById('login-err').style.display = 'block'; }
238
+ });
224
239
  }
240
+
225
241
  function logout() { localStorage.removeItem('dc_cc_key'); location.reload(); }
226
- async function init() {
242
+
243
+ function init() {
227
244
  document.getElementById('login-gate').style.display = 'none';
228
245
  document.getElementById('ui-wrapper').classList.add('ready');
229
246
  document.getElementById('m-ip').innerText = location.hostname;
@@ -231,28 +248,55 @@ class Dashboard {
231
248
  setInterval(refresh, 5000);
232
249
  setInterval(loadLogs, 2000);
233
250
  }
234
- async function refresh() {
235
- const d = await api('/api/stats');
236
- document.getElementById('m-ram').innerText = d.memory.used + ' / ' + d.memory.total + ' GB';
237
- document.getElementById('m-up').innerText = d.uptime + 's';
238
- const list = document.getElementById('tenant-list');
239
- list.innerHTML = d.databases.map(db => `< div class="tenant-btn" onclick = "selectDB('${db.name}', '${db.ns}')" ><div style="font-size: 1.5rem">💠</div><div style="display: flex; flex-direction: column"><span style="font-weight: 700;">${db.name}</span><span style="font-size: 0.6rem; opacity: 0.4">${db.ns.substring(0,10)}...</span></div></div > `).join('');
251
+
252
+ function refresh() {
253
+ api('/api/stats').then(function(d) {
254
+ document.getElementById('m-ram').innerText = d.memory.used + ' / ' + d.memory.total + ' GB';
255
+ document.getElementById('m-up').innerText = d.uptime + 's';
256
+ var list = document.getElementById('tenant-list');
257
+ var html = '';
258
+ d.databases.forEach(function(db) {
259
+ html += '<div class="tenant-btn" onclick="selectDB(\\'' + db.name + '\\', \\'' + db.ns + '\\')">' +
260
+ '<div style="font-size: 1.5rem">💠</div>' +
261
+ '<div style="display: flex; flex-direction: column">' +
262
+ '<span style="font-weight: 700;">' + db.name + '</span>' +
263
+ '<span style="font-size: 0.6rem; opacity: 0.4">' + db.ns.substring(0,10) + '...</span>' +
264
+ '</div></div>';
265
+ });
266
+ list.innerHTML = html;
267
+ });
240
268
  }
241
- async function loadLogs() {
242
- const d = await api('/api/logs');
243
- if (!d.logs) return;
244
- document.getElementById('audit-stream').innerHTML = d.logs.map(l => `< div class="log-entry" ><span>[${l.time}]</span> <u>${l.ns}</u> <b>${l.action}</b> <i>${l.db}.${l.col}</i></div > `).join('');
269
+
270
+ function loadLogs() {
271
+ api('/api/logs').then(function(d) {
272
+ if (!d || !d.logs) return;
273
+ var html = '';
274
+ d.logs.forEach(function(l) {
275
+ html += '<div class="log-entry"><span>[' + l.time + ']</span> <u>' + l.ns + '</u> <b>' + l.action + '</b> <i>' + l.db + '.' + l.col + '</i></div>';
276
+ });
277
+ document.getElementById('audit-stream').innerHTML = html;
278
+ });
245
279
  }
246
- async function selectDB(name, ns) {
280
+
281
+ function selectDB(name, ns) {
247
282
  document.getElementById('view-title').innerText = name;
248
- const data = await api(\`/api/db/\${name}/ns/\${ns}\`);
249
- document.getElementById('col-pills').innerHTML = data.collections.map(c => `< div class="badge" onclick = "selectCol('\${name}', '\${ns}', '\${c}')" >\${ c }</div > `).join('');
283
+ api('/api/db/' + encodeURIComponent(name) + '/ns/' + encodeURIComponent(ns)).then(function(data) {
284
+ var html = '';
285
+ data.collections.forEach(function(c) {
286
+ html += '<div class="badge" onclick="selectCol(\\'' + name + '\\', \\'' + ns + '\\', \\'' + c + '\\')">' + c + '</div>';
287
+ });
288
+ document.getElementById('col-pills').innerHTML = html;
289
+ });
250
290
  }
251
- async function selectCol(db, ns, col) {
252
- const data = await api(\`/api/db/\${db}/ns/\${ns}/col/\${col}\`);
253
- let html = '<table><thead><tr><th>Payload</th></tr></thead><tbody>';
254
- data.docs.forEach(doc => { html += \`<tr><td><pre>\${JSON.stringify(doc, null, 2)}</pre></td></tr>\`; });
255
- document.getElementById('data-area').innerHTML = html + '</tbody></table>';
291
+
292
+ function selectCol(db, ns, col) {
293
+ api('/api/db/' + encodeURIComponent(db) + '/ns/' + encodeURIComponent(ns) + '/col/' + encodeURIComponent(col)).then(function(data) {
294
+ var html = '<table><thead><tr><th>Payload</th></tr></thead><tbody>';
295
+ data.docs.forEach(function(doc) {
296
+ html += '<tr><td><pre>' + JSON.stringify(doc, null, 2) + '</pre></td></tr>';
297
+ });
298
+ document.getElementById('data-area').innerHTML = html + '</tbody></table>';
299
+ });
256
300
  }
257
301
  </script>
258
302
  </body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devcode-canavar-pro",
3
- "version": "3.5.3",
3
+ "version": "3.6.0",
4
4
  "description": "Monster Edition: Ultra-fast, zero-config, embedded document database with Visual Dashboard and Interactive CLI.",
5
5
  "main": "index.js",
6
6
  "bin": {