@onurege3467/zerohelper 8.0.0 → 9.0.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 (48) hide show
  1. package/README.md +292 -612
  2. package/dist/database/IDatabase.d.ts +77 -0
  3. package/dist/database/IDatabase.js +10 -0
  4. package/dist/database/cacheWrapper.d.ts +31 -0
  5. package/dist/database/cacheWrapper.js +228 -0
  6. package/dist/database/index.d.ts +11 -0
  7. package/dist/database/index.js +94 -0
  8. package/dist/database/json.d.ts +32 -0
  9. package/dist/database/json.js +210 -0
  10. package/dist/database/migration.d.ts +21 -0
  11. package/dist/database/migration.js +97 -0
  12. package/dist/database/mongodb.d.ts +24 -0
  13. package/dist/database/mongodb.js +153 -0
  14. package/dist/database/mysql.d.ts +31 -0
  15. package/dist/database/mysql.js +385 -0
  16. package/dist/database/pg.d.ts +30 -0
  17. package/dist/database/pg.js +300 -0
  18. package/dist/database/redis.d.ts +23 -0
  19. package/dist/database/redis.js +157 -0
  20. package/dist/database/sqlite.d.ts +25 -0
  21. package/dist/database/sqlite.js +273 -0
  22. package/dist/database/types.d.ts +76 -0
  23. package/dist/database/types.js +2 -0
  24. package/dist/database/zpack.d.ts +59 -0
  25. package/dist/database/zpack.js +462 -0
  26. package/dist/functions/index.d.ts +183 -0
  27. package/dist/functions/index.js +636 -0
  28. package/dist/functions/temp_isphone.d.ts +1 -0
  29. package/dist/functions/temp_isphone.js +7 -0
  30. package/dist/index.d.ts +8 -0
  31. package/dist/index.js +45 -0
  32. package/dist/test.d.ts +1 -0
  33. package/dist/test.js +55 -0
  34. package/dist/test_zpack.d.ts +1 -0
  35. package/dist/test_zpack.js +64 -0
  36. package/package.json +23 -6
  37. package/database/IDatabase.js +0 -92
  38. package/database/cacheWrapper.js +0 -585
  39. package/database/index.js +0 -72
  40. package/database/json.js +0 -281
  41. package/database/migration.js +0 -227
  42. package/database/mongodb.js +0 -203
  43. package/database/mysql.js +0 -526
  44. package/database/pg.js +0 -527
  45. package/database/redis.js +0 -342
  46. package/database/sqlite.js +0 -551
  47. package/functions/index.js +0 -705
  48. package/index.js +0 -7
package/dist/test.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // test.ts
4
+ const index_1 = require("./index");
5
+ async function runTest() {
6
+ console.log("🚀 ZeroHelper TypeScript Test Başlatılıyor...\n");
7
+ // --- 1. Yardımcı Fonksiyonlar Testi ---
8
+ console.log("🛠️ Helper Functions:");
9
+ console.log("- Unique ID:", index_1.functions.random_module.makeUniqueId());
10
+ console.log("- Random Text (10):", index_1.functions.random_module.randomText(10));
11
+ console.log("- Slug:", index_1.functions.string_module.generateSlug("TypeScript Test Case"));
12
+ console.log("- Formatted Date:", index_1.functions.date_module.formatDate(new Date(), "YYYY-MM-DD HH:mm:ss"));
13
+ const numbers = [10, 20, 30, 40, 50];
14
+ console.log("- Mean of numbers:", index_1.functions.math_module.mean(numbers));
15
+ // --- 2. Veritabanı Testi (JSON Adaptörü) ---
16
+ console.log("\n💾 Database Test (JSON Adapter):");
17
+ // Veri Ekleme (Insert)
18
+ const db = index_1.database.createDatabase({
19
+ adapter: 'json',
20
+ config: {
21
+ filePath: './test-db.json'
22
+ },
23
+ });
24
+ const table = 'users';
25
+ try {
26
+ // Veri Ekleme (Insert)
27
+ const userId = await db.insert(table, {
28
+ name: 'Onur Ege',
29
+ role: 'Developer',
30
+ level: 1
31
+ });
32
+ console.log(`✅ Kayıt eklendi, ID: ${userId}`);
33
+ // Veri Seçme (Select One)
34
+ const user = await db.selectOne(table, { _id: userId });
35
+ console.log("🔍 Seçilen Veri:", user);
36
+ // Veri Güncelleme (Update)
37
+ await db.update(table, { role: 'Senior Developer' }, { _id: userId });
38
+ console.log("📝 Veri güncellendi.");
39
+ // Sayısal Değer Artırma (Increment)
40
+ await db.increment(table, { level: 5 }, { _id: userId });
41
+ const finalUser = await db.selectOne(table, { _id: userId });
42
+ console.log("📈 Increment sonrası veri:", finalUser);
43
+ // Veri Silme (Delete)
44
+ const deletedCount = await db.delete(table, { _id: userId });
45
+ console.log(`🗑️ Silinen kayıt sayısı: ${deletedCount}`);
46
+ console.log("\n✨ Tüm testler başarıyla tamamlandı!");
47
+ }
48
+ catch (error) {
49
+ console.error("❌ Test sırasında hata oluştu:", error);
50
+ }
51
+ finally {
52
+ await db.close();
53
+ }
54
+ }
55
+ runTest().catch(console.error);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // test_zpack.ts
4
+ const index_1 = require("./index");
5
+ async function runZPackTest() {
6
+ console.log("📦 ZPack Database TypeScript Testi Başlatılıyor...\n");
7
+ // 1. Veritabanı Kurulumu
8
+ // Autocomplete burada 'filePath' ve 'autoFlush' seçeneklerini sunacaktır.
9
+ const db = index_1.database.createDatabase({
10
+ adapter: 'zpack',
11
+ config: {
12
+ filePath: './test_data.zpack',
13
+ autoFlush: true
14
+ }
15
+ });
16
+ const table = 'products';
17
+ try {
18
+ // 2. Veri Ekleme (Insert)
19
+ console.log("📥 Veri ekleniyor...");
20
+ const productId = await db.insert(table, {
21
+ name: 'Gaming Mouse',
22
+ price: 150,
23
+ stock: 50,
24
+ category: 'Electronics'
25
+ });
26
+ console.log(`✅ Ürün eklendi, logical_id: ${productId}`);
27
+ // 3. Tekil Veri Seçme (Select One)
28
+ console.log("\n🔍 Ürün sorgulanıyor...");
29
+ const product = await db.selectOne(table, { _id: productId });
30
+ console.log("Bulunan Ürün:", product);
31
+ // 4. Toplu Veri Ekleme (Bulk Insert)
32
+ console.log("\n📥 Toplu veri ekleniyor...");
33
+ await db.bulkInsert(table, [
34
+ { name: 'Keyboard', price: 300, stock: 20 },
35
+ { name: 'Monitor', price: 1200, stock: 10 }
36
+ ]);
37
+ // 5. Filtreleme ile Seçme (Select)
38
+ console.log("\n📂 Tüm ürünler listeleniyor...");
39
+ const allProducts = await db.select(table);
40
+ console.log(`Toplam ürün sayısı: ${allProducts.length}`);
41
+ allProducts.forEach(p => console.log(`- ${p.name}: ${p.price} TL (Stok: ${p.stock})`));
42
+ // 6. Güncelleme (Update)
43
+ console.log("\n📝 Fiyat güncellemesi yapılıyor...");
44
+ await db.update(table, { price: 175 }, { name: 'Gaming Mouse' });
45
+ // 7. Sayısal İşlemler (Increment/Decrement)
46
+ console.log("\n📈 Stok artırılıyor...");
47
+ await db.increment(table, { stock: 10 }, { name: 'Gaming Mouse' });
48
+ const updatedProduct = await db.selectOne(table, { name: 'Gaming Mouse' });
49
+ console.log("Güncel Veri:", updatedProduct);
50
+ // 8. Silme (Delete)
51
+ console.log("\n🗑️ Monitor siliniyor...");
52
+ await db.delete(table, { name: 'Monitor' });
53
+ const finalCount = await db.select(table);
54
+ console.log(`Kalan ürün sayısı: ${finalCount.length}`);
55
+ console.log("\n✨ ZPack testi başarıyla tamamlandı!");
56
+ }
57
+ catch (error) {
58
+ console.error("❌ ZPack hatası:", error);
59
+ }
60
+ finally {
61
+ await db.close();
62
+ }
63
+ }
64
+ runZPackTest().catch(console.error);
package/package.json CHANGED
@@ -1,10 +1,17 @@
1
1
  {
2
2
  "name": "@onurege3467/zerohelper",
3
- "version": "8.0.0",
4
- "main": "index.js",
3
+ "version": "9.0.0",
4
+ "description": "ZeroHelper is a versatile high-performance utility library and database framework for Node.js, fully written in TypeScript.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
5
7
  "scripts": {
6
- "test": "node test.js"
8
+ "build": "tsc",
9
+ "prepublishOnly": "npm run build",
10
+ "test": "node test.zpack.spec.js"
7
11
  },
12
+ "files": [
13
+ "dist"
14
+ ],
8
15
  "keywords": [
9
16
  "helper",
10
17
  "zerohelper",
@@ -23,11 +30,12 @@
23
30
  "logger",
24
31
  "migration",
25
32
  "increment",
26
- "decrement"
33
+ "decrement",
34
+ "zpack",
35
+ "typescript"
27
36
  ],
28
37
  "author": "Onure9e",
29
38
  "license": "ISC",
30
- "description": "ZeroHelper is a versatile JavaScript library offering helper functions, validation, logging, database utilities and migration system for developers. It supports MongoDB, MySQL, SQLite, Redis, and PostgreSQL with increment/decrement operations.",
31
39
  "dependencies": {
32
40
  "bcrypt": "^5.1.1",
33
41
  "crypto": "^1.0.1",
@@ -43,7 +51,16 @@
43
51
  "path": "^0.12.7",
44
52
  "pg": "^8.14.1",
45
53
  "promise-mysql": "^5.2.0",
46
- "redis": "^5.8.2",
54
+ "redis": "^4.7.0",
47
55
  "sqlite3": "^5.1.7"
56
+ },
57
+ "devDependencies": {
58
+ "@types/bcrypt": "^5.0.2",
59
+ "@types/js-yaml": "^4.0.9",
60
+ "@types/jsonwebtoken": "^9.0.7",
61
+ "@types/lodash": "^4.17.13",
62
+ "@types/node": "^22.10.2",
63
+ "@types/pg": "^8.11.10",
64
+ "typescript": "^5.7.2"
48
65
  }
49
66
  }
@@ -1,92 +0,0 @@
1
- /**
2
- * Tüm veritabanı adaptörlerinin uyması gereken ortak arayüzü tanımlar.
3
- * @interface
4
- */
5
- class IDatabase {
6
- /**
7
- * Belirtilen koşullara göre birden çok kayıt seçer.
8
- * @param {string} table - Verinin seçileceği tablo veya koleksiyonun adı.
9
- * @param {object} [where] - (Opsiyonel) Kayıtları filtrelemek için kullanılacak koşul nesnesi.
10
- * @returns {Promise<Array<object>>} Koşullara uyan kayıtların bir dizisini içeren bir Promise.
11
- */
12
- select(table, where) {}
13
-
14
- /**
15
- * Belirtilen koşullara göre tek bir kayıt seçer.
16
- * @param {string} table - Verinin seçileceği tablo veya koleksiyonun adı.
17
- * @param {object} [where] - (Opsiyonel) Kaydı filtrelemek için kullanılacak koşul nesnesi.
18
- * @returns {Promise<object|null>} Koşula uyan ilk kaydı veya bulunamazsa `null` içeren bir Promise.
19
- */
20
- selectOne(table, where) {}
21
-
22
- /**
23
- * Yeni bir kayıt ekler.
24
- * @param {string} table - Verinin ekleneceği tablo veya koleksiyonun adı.
25
- * @param {object} data - Eklenecek veriyi içeren nesne.
26
- * @returns {Promise<number|string|object>} Eklenen yeni kaydın ID'sini içeren bir Promise.
27
- */
28
- insert(table, data) {}
29
-
30
- /**
31
- * Belirtilen koşullara uyan kayıtları günceller.
32
- * @param {string} table - Verinin güncelleneceği tablo veya koleksiyonun adı.
33
- * @param {object} data - Güncellenecek yeni verileri içeren nesne.
34
- * @param {object} where - Hangi kayıtların güncelleneceğini belirleyen koşul nesnesi.
35
- * @returns {Promise<number>} Etkilenen (güncellenen) kayıt sayısını içeren bir Promise.
36
- */
37
- update(table, data, where) {}
38
-
39
- /**
40
- * Bir kaydı günceller veya yoksa yeni bir kayıt olarak ekler (Upsert).
41
- * @param {string} table - İşlem yapılacak tablo veya koleksiyonun adı.
42
- * @param {object} data - Ayarlanacak veya güncellenecek veriyi içeren nesne.
43
- * @param {object} where - Kaydın varlığını kontrol etmek ve güncellemek için kullanılacak koşul nesnesi.
44
- * @returns {Promise<any>} Ekleme durumunda yeni ID'yi, güncelleme durumunda etkilenen satır sayısını içeren bir Promise.
45
- */
46
- set(table, data, where) {}
47
-
48
- /**
49
- * Belirtilen koşullara uyan kayıtları siler.
50
- * @param {string} table - Verinin silineceği tablo veya koleksiyonun adı.
51
- * @param {object} where - Hangi kayıtların silineceğini belirleyen koşul nesnesi.
52
- * @returns {Promise<number>} Silinen kayıt sayısını içeren bir Promise.
53
- */
54
- delete(table, where) {}
55
-
56
- /**
57
- * Birden çok kaydı toplu olarak ekler.
58
- * @param {string} table - Verilerin ekleneceği tablo veya koleksiyonun adı.
59
- * @param {Array<object>} dataArray - Eklenecek kayıtları içeren bir dizi.
60
- * @returns {Promise<number>} Eklenen kayıt sayısını içeren bir Promise.
61
- */
62
- bulkInsert(table, dataArray) {}
63
-
64
- /**
65
- * Numerik alanları artırır (increment).
66
- * @param {string} table - Verinin güncelleneceği tablo veya koleksiyonun adı.
67
- * @param {object} increments - Artırılacak alanlar ve miktarları (örn: { views: 1, likes: 2 }).
68
- * @param {object} where - Hangi kayıtların güncelleneceğini belirleyen koşul nesnesi.
69
- * @returns {Promise<number>} Etkilenen kayıt sayısını içeren bir Promise.
70
- */
71
- increment(table, increments, where) {}
72
-
73
- /**
74
- * Numerik alanları azaltır (decrement).
75
- * @param {string} table - Verinin güncelleneceği tablo veya koleksiyonun adı.
76
- * @param {object} decrements - Azaltılacak alanlar ve miktarları (örn: { stock: 1, count: 5 }).
77
- * @param {object} where - Hangi kayıtların güncelleneceğini belirleyen koşul nesnesi.
78
- * @returns {Promise<number>} Etkilenen kayıt sayısını içeren bir Promise.
79
- */
80
- decrement(table, decrements, where) {}
81
-
82
- /**
83
- * Veritabanı bağlantısını güvenli bir şekilde sonlandırır.
84
- * @returns {Promise<void>}
85
- */
86
- close() {}
87
-
88
- // Diğer metotları da buraya ekleyebilirsiniz (updateOne, deleteOne, ensureTable vb.)
89
- }
90
-
91
- // Bu dosyanın bir modül olarak tanınması ve tipin export edilmesi için bu satır önemli.
92
- module.exports = IDatabase;