@onurege3467/zerohelper 10.2.6 → 11.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 (79) hide show
  1. package/README.md +9 -704
  2. package/dist/index.js +19 -44
  3. package/package.json +21 -70
  4. package/dist/bin/commands/cache.d.ts +0 -2
  5. package/dist/bin/commands/cache.js +0 -92
  6. package/dist/bin/commands/db-backup.d.ts +0 -3
  7. package/dist/bin/commands/db-backup.js +0 -118
  8. package/dist/bin/commands/db.d.ts +0 -2
  9. package/dist/bin/commands/db.js +0 -334
  10. package/dist/bin/commands/import-export.d.ts +0 -3
  11. package/dist/bin/commands/import-export.js +0 -123
  12. package/dist/bin/commands/init.d.ts +0 -2
  13. package/dist/bin/commands/init.js +0 -85
  14. package/dist/bin/commands/migrate.d.ts +0 -3
  15. package/dist/bin/commands/migrate.js +0 -167
  16. package/dist/bin/commands/repl.d.ts +0 -2
  17. package/dist/bin/commands/repl.js +0 -96
  18. package/dist/bin/commands/seed.d.ts +0 -2
  19. package/dist/bin/commands/seed.js +0 -76
  20. package/dist/bin/commands/zpack.d.ts +0 -2
  21. package/dist/bin/commands/zpack.js +0 -36
  22. package/dist/bin/index.d.ts +0 -2
  23. package/dist/bin/index.js +0 -28
  24. package/dist/bin/types.d.ts +0 -22
  25. package/dist/bin/types.js +0 -2
  26. package/dist/bin/utils/config.d.ts +0 -3
  27. package/dist/bin/utils/config.js +0 -78
  28. package/dist/bin/utils/prompts.d.ts +0 -3
  29. package/dist/bin/utils/prompts.js +0 -115
  30. package/dist/bin/zero.d.ts +0 -2
  31. package/dist/bin/zero.js +0 -849
  32. package/dist/database/IDatabase.d.ts +0 -71
  33. package/dist/database/IDatabase.js +0 -48
  34. package/dist/database/cacheWrapper.d.ts +0 -34
  35. package/dist/database/cacheWrapper.js +0 -214
  36. package/dist/database/index.d.ts +0 -12
  37. package/dist/database/index.js +0 -100
  38. package/dist/database/json.d.ts +0 -32
  39. package/dist/database/json.js +0 -208
  40. package/dist/database/migration.d.ts +0 -21
  41. package/dist/database/migration.js +0 -97
  42. package/dist/database/mongodb.d.ts +0 -26
  43. package/dist/database/mongodb.js +0 -145
  44. package/dist/database/mysql.d.ts +0 -29
  45. package/dist/database/mysql.js +0 -282
  46. package/dist/database/pg.d.ts +0 -28
  47. package/dist/database/pg.js +0 -200
  48. package/dist/database/redis.d.ts +0 -31
  49. package/dist/database/redis.js +0 -176
  50. package/dist/database/seeder.d.ts +0 -20
  51. package/dist/database/seeder.js +0 -37
  52. package/dist/database/sqlite.d.ts +0 -26
  53. package/dist/database/sqlite.js +0 -211
  54. package/dist/database/telemetry.d.ts +0 -35
  55. package/dist/database/telemetry.js +0 -41
  56. package/dist/database/toon.d.ts +0 -33
  57. package/dist/database/toon.js +0 -244
  58. package/dist/database/types.d.ts +0 -71
  59. package/dist/database/types.js +0 -2
  60. package/dist/database/zpack.d.ts +0 -75
  61. package/dist/database/zpack.js +0 -616
  62. package/dist/functions/index.d.ts +0 -199
  63. package/dist/functions/index.js +0 -682
  64. package/dist/functions/security.d.ts +0 -15
  65. package/dist/functions/security.js +0 -46
  66. package/dist/functions/toon.d.ts +0 -10
  67. package/dist/functions/toon.js +0 -214
  68. package/dist/functions/worker.d.ts +0 -5
  69. package/dist/functions/worker.js +0 -35
  70. package/dist/index.d.ts +0 -8
  71. package/dist/migrations/1767521950635_test_migration.d.ts +0 -3
  72. package/dist/migrations/1767521950635_test_migration.js +0 -11
  73. package/dist/migrations/1767522158826_create_users_table.d.ts +0 -2
  74. package/dist/migrations/1767522158826_create_users_table.js +0 -11
  75. package/dist/package.json +0 -79
  76. package/dist/tests/test.d.ts +0 -1
  77. package/dist/tests/test.js +0 -26
  78. package/dist/zero.config.d.ts +0 -10
  79. package/dist/zero.config.js +0 -13
package/dist/index.js CHANGED
@@ -1,45 +1,20 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.functions = exports.database = void 0;
37
- const database = __importStar(require("./database"));
38
- exports.database = database;
39
- const functions = __importStar(require("./functions"));
40
- exports.functions = functions;
41
- // For backward compatibility with require
42
- exports.default = {
43
- database,
44
- functions,
1
+ const core = require('@onurege3467/zerohelper-core');
2
+ const utils = require('zerohelper-utils');
3
+ const security = require('zerohelper-security');
4
+ const ai = require('zerohelper-ai');
5
+ const worker = require('zerohelper-worker');
6
+ const toon = require('zerohelper-toon');
7
+
8
+ module.exports = {
9
+ database: {
10
+ createDatabase: core.createDatabase,
11
+ IDatabase: core.IDatabase,
12
+ },
13
+ functions: {
14
+ ...utils,
15
+ ...security,
16
+ ...ai,
17
+ ...worker,
18
+ ...toon,
19
+ },
45
20
  };
package/package.json CHANGED
@@ -1,79 +1,30 @@
1
1
  {
2
2
  "name": "@onurege3467/zerohelper",
3
- "version": "10.2.6",
4
- "description": "ZeroHelper is a versatile high-performance utility library and database framework for Node.js, fully written in TypeScript.",
3
+ "version": "11.0.0",
4
+ "description": "ZeroHelper - Meta package re-exporting all modules",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
- "bin": {
8
- "zero": "./dist/bin/index.js"
9
- },
10
- "scripts": {
11
- "build": "tsc",
12
- "prepublishOnly": "npm run build",
13
- "test": "jest"
14
- },
15
- "files": [
16
- "dist"
17
- ],
18
- "keywords": [
19
- "helper",
20
- "zerohelper",
21
- "database",
22
- "uuid",
23
- "mongodb",
24
- "mysql",
25
- "jsondatabase",
26
- "sqlite3",
27
- "quick.db",
28
- "postgresql",
29
- "utility",
30
- "functions",
31
- "nodejs",
32
- "validation",
33
- "logger",
34
- "migration",
35
- "increment",
36
- "decrement",
37
- "zpack",
38
- "typescript",
39
- "cli",
40
- "worker"
41
- ],
7
+ "scripts": {},
8
+ "keywords": ["zerohelper", "database", "utility"],
42
9
  "author": "Onure9e",
43
10
  "license": "ISC",
44
11
  "dependencies": {
45
- "bcrypt": "^5.1.1",
46
- "chalk": "^4.1.2",
47
- "commander": "^11.1.0",
48
- "crypto": "^1.0.1",
49
- "csv": "^6.3.11",
50
- "dotenv": "^16.4.7",
51
- "fs": "^0.0.1-security",
52
- "inquirer": "^8.2.5",
53
- "js-yaml": "^4.1.0",
54
- "jsonwebtoken": "^9.0.2",
55
- "lodash": "^4.17.21",
56
- "lru-cache": "^10.0.0",
57
- "mongodb": "^6.12.0",
58
- "mysql2": "^3.14.1",
59
- "ora": "^5.4.1",
60
- "path": "^0.12.7",
61
- "pg": "^8.14.1",
62
- "promise-mysql": "^5.2.0",
63
- "redis": "^4.7.0",
64
- "sqlite3": "^5.1.7"
12
+ "@onurege3467/zerohelper-core": "^11.0.0",
13
+ "zerohelper-mysql-adapter": "^11.0.0",
14
+ "zerohelper-postgres-adapter": "^11.0.0",
15
+ "zerohelper-sqlite-adapter": "^11.0.0",
16
+ "zerohelper-mongodb-adapter": "^11.0.0",
17
+ "zerohelper-redis-adapter": "^11.0.0",
18
+ "zerohelper-json-adapter": "^11.0.0",
19
+ "zerohelper-zpack-adapter": "^11.0.0",
20
+ "zerohelper-toon-adapter": "^11.0.0",
21
+ "zerohelper-utils": "^11.0.0",
22
+ "zerohelper-security": "^11.0.0",
23
+ "zerohelper-ai": "^11.0.0",
24
+ "zerohelper-worker": "^11.0.0",
25
+ "zerohelper-toon": "^11.0.0"
65
26
  },
66
- "devDependencies": {
67
- "@types/bcrypt": "^5.0.2",
68
- "@types/inquirer": "^8.2.5",
69
- "@types/jest": "^29.5.14",
70
- "@types/js-yaml": "^4.0.9",
71
- "@types/jsonwebtoken": "^9.0.7",
72
- "@types/lodash": "^4.17.13",
73
- "@types/node": "^22.10.2",
74
- "@types/pg": "^8.11.10",
75
- "jest": "^29.7.0",
76
- "ts-jest": "^29.2.5",
77
- "typescript": "^5.7.2"
78
- }
27
+ "devDependencies": {},
28
+ "files": ["dist", "README.md"],
29
+ "publishConfig": { "access": "public" }
79
30
  }
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const cacheCommand: Command;
@@ -1,92 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.cacheCommand = void 0;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const ora_1 = __importDefault(require("ora"));
10
- const config_1 = require("../utils/config");
11
- exports.cacheCommand = new commander_1.Command().name('cache');
12
- exports.cacheCommand
13
- .command('clear')
14
- .description('Clear all cache')
15
- .option('-c, --config <path>', 'Path to config file', 'zero.config.ts')
16
- .action(async (options) => {
17
- const spinner = (0, ora_1.default)('Clearing cache...').start();
18
- try {
19
- const db = await (0, config_1.getDatabase)(options.config);
20
- const metrics = db.getMetrics();
21
- const beforeHits = metrics.cache?.hits || 0;
22
- const beforeMisses = metrics.cache?.misses || 0;
23
- await db.insert('_cache_clear', { timestamp: Date.now() });
24
- await db.delete('_cache_clear', { timestamp: Date.now() });
25
- const afterMetrics = db.getMetrics();
26
- const afterHits = afterMetrics.cache?.hits || 0;
27
- const afterMisses = afterMetrics.cache?.misses || 0;
28
- spinner.succeed(chalk_1.default.green('✅ Cache cleared'));
29
- console.log(chalk_1.default.gray(` Previous hits: ${beforeHits}`));
30
- console.log(chalk_1.default.gray(` Previous misses: ${beforeMisses}`));
31
- await db.close();
32
- }
33
- catch (error) {
34
- spinner.fail(chalk_1.default.red('❌ Cache clear failed'));
35
- console.error(chalk_1.default.red(error.message));
36
- process.exit(1);
37
- }
38
- });
39
- exports.cacheCommand
40
- .command('stats')
41
- .description('Show detailed cache statistics')
42
- .option('-c, --config <path>', 'Path to config file', 'zero.config.ts')
43
- .action(async (options) => {
44
- try {
45
- const db = await (0, config_1.getDatabase)(options.config);
46
- const metrics = db.getMetrics();
47
- console.log(chalk_1.default.bold('\n📊 Cache Statistics'));
48
- console.log(chalk_1.default.gray('─'.repeat(50)));
49
- if (!metrics.cache) {
50
- console.log(chalk_1.default.yellow(' No cache statistics available'));
51
- console.log(chalk_1.default.gray(' Cache may not be enabled for this adapter'));
52
- }
53
- else {
54
- const hits = metrics.cache.hits || 0;
55
- const misses = metrics.cache.misses || 0;
56
- const total = hits + misses;
57
- const hitRate = total > 0 ? (hits / total) * 100 : 0;
58
- console.log(chalk_1.default.cyan(' Cache Hits:'), chalk_1.default.green(hits.toLocaleString()));
59
- console.log(chalk_1.default.cyan(' Cache Misses:'), chalk_1.default.red(misses.toLocaleString()));
60
- console.log(chalk_1.default.cyan(' Total Requests:'), chalk_1.default.white(total.toLocaleString()));
61
- console.log(chalk_1.default.cyan(' Hit Rate:'), chalk_1.default.white(`${hitRate.toFixed(2)}%`));
62
- let healthStatus = '❌';
63
- let healthColor = chalk_1.default.red;
64
- if (hitRate >= 90) {
65
- healthStatus = '✅ Excellent';
66
- healthColor = chalk_1.default.green;
67
- }
68
- else if (hitRate >= 70) {
69
- healthStatus = '⚠️ Good';
70
- healthColor = chalk_1.default.yellow;
71
- }
72
- else if (hitRate >= 50) {
73
- healthStatus = '⚠️ Fair';
74
- healthColor = chalk_1.default.yellow;
75
- }
76
- else {
77
- healthStatus = '❌ Poor';
78
- healthColor = chalk_1.default.red;
79
- }
80
- console.log(chalk_1.default.cyan(' Health:'), healthColor(healthStatus));
81
- if (hitRate < 70) {
82
- console.log(chalk_1.default.gray('\n 💡 Tip: Consider increasing cache TTL for better hit rate'));
83
- }
84
- }
85
- console.log(chalk_1.default.gray('\n' + '─'.repeat(50)));
86
- await db.close();
87
- }
88
- catch (error) {
89
- console.error(chalk_1.default.red(`Error: ${error.message}`));
90
- process.exit(1);
91
- }
92
- });
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const dbBackupCommand: Command;
3
- export declare const dbRestoreCommand: Command;
@@ -1,118 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.dbRestoreCommand = exports.dbBackupCommand = void 0;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const ora_1 = __importDefault(require("ora"));
10
- const fs_1 = __importDefault(require("fs"));
11
- const path_1 = __importDefault(require("path"));
12
- const config_1 = require("../utils/config");
13
- const prompts_1 = require("../utils/prompts");
14
- exports.dbBackupCommand = new commander_1.Command().name('db');
15
- exports.dbBackupCommand
16
- .command('backup')
17
- .description('Backup database to timestamped file')
18
- .option('-c, --config <path>', 'Path to config file', 'zero.config.ts')
19
- .option('-o, --output <dir>', 'Output directory for backups', './backups')
20
- .action(async (options) => {
21
- const spinner = (0, ora_1.default)('Creating backup...').start();
22
- try {
23
- const db = await (0, config_1.getDatabase)(options.config);
24
- const config = (0, config_1.loadConfig)(options.config);
25
- const backupDir = path_1.default.resolve(process.cwd(), options.output);
26
- if (!fs_1.default.existsSync(backupDir)) {
27
- fs_1.default.mkdirSync(backupDir, { recursive: true });
28
- }
29
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5);
30
- const backupFile = path_1.default.join(backupDir, `backup_${timestamp}.zerohelper.json`);
31
- let tables = [];
32
- if (config.adapter === 'json' && config.config.path) {
33
- const dbPath = path_1.default.resolve(process.cwd(), config.config.path);
34
- if (fs_1.default.existsSync(dbPath)) {
35
- const dbContent = JSON.parse(fs_1.default.readFileSync(dbPath, 'utf-8'));
36
- tables = Object.keys(dbContent);
37
- }
38
- }
39
- else if (config.adapter === 'sqlite' && config.config.path) {
40
- tables = await db.tables?.() || [];
41
- }
42
- else if (config.adapter === 'zpack' && config.config.path) {
43
- tables = await db.tables?.() || [];
44
- }
45
- else {
46
- tables = ['users', 'products', 'orders', 'migrations', 'migration_test', 'test_backup'];
47
- }
48
- const backupData = {
49
- version: '10.2.5',
50
- timestamp: new Date().toISOString(),
51
- config: config,
52
- data: {}
53
- };
54
- for (const table of tables) {
55
- try {
56
- const records = await db.select(table);
57
- if (records.length > 0) {
58
- backupData.data[table] = records;
59
- }
60
- }
61
- catch (err) {
62
- // Table doesn't exist or can't be accessed
63
- }
64
- }
65
- fs_1.default.writeFileSync(backupFile, JSON.stringify(backupData, null, 2));
66
- const fileSize = fs_1.default.statSync(backupFile).size;
67
- spinner.succeed(chalk_1.default.green(`✅ Backup created: ${backupFile}`));
68
- console.log(chalk_1.default.gray(` Size: ${(0, config_1.formatBytes)(fileSize)}`));
69
- console.log(chalk_1.default.gray(` Tables: ${Object.keys(backupData.data).join(', ') || 'none'}`));
70
- await db.close();
71
- }
72
- catch (error) {
73
- spinner.fail(chalk_1.default.red('❌ Backup failed'));
74
- console.error(chalk_1.default.red(error.message));
75
- process.exit(1);
76
- }
77
- });
78
- exports.dbRestoreCommand = new commander_1.Command().name('db');
79
- exports.dbRestoreCommand
80
- .command('restore')
81
- .description('Restore database from backup file')
82
- .argument('<backup-file>', 'Path to backup file')
83
- .option('-c, --config <path>', 'Path to config file', 'zero.config.ts')
84
- .action(async (backupFile, options) => {
85
- if (!fs_1.default.existsSync(backupFile)) {
86
- console.error(chalk_1.default.red(`Error: Backup file not found: ${backupFile}`));
87
- process.exit(1);
88
- }
89
- const backupData = JSON.parse(fs_1.default.readFileSync(backupFile, 'utf-8'));
90
- const confirmed = await (0, prompts_1.confirmAction)(chalk_1.default.yellow(`⚠️ This will restore data from backup. Are you sure?`));
91
- if (!confirmed) {
92
- console.log(chalk_1.default.yellow('Restore cancelled'));
93
- return;
94
- }
95
- const spinner = (0, ora_1.default)('Restoring database...').start();
96
- try {
97
- const db = await (0, config_1.getDatabase)(options.config);
98
- for (const [table, records] of Object.entries(backupData.data)) {
99
- const rows = records;
100
- if (Array.isArray(rows) && rows.length > 0) {
101
- try {
102
- await db.bulkInsert(table, rows);
103
- spinner.text = `✅ ${table}: ${rows.length} records`;
104
- }
105
- catch (err) {
106
- spinner.text = `⚠️ ${table}: failed`;
107
- }
108
- }
109
- }
110
- spinner.succeed(chalk_1.default.green(`✅ Database restored from ${backupFile}`));
111
- await db.close();
112
- }
113
- catch (error) {
114
- spinner.fail(chalk_1.default.red('❌ Restore failed'));
115
- console.error(chalk_1.default.red(error.message));
116
- process.exit(1);
117
- }
118
- });
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const dbCommand: Command;