admindb 2.1.0 → 2.1.1
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.
- package/README.md +1 -1
- package/dist/app.d.ts +1 -69
- package/dist/app.js +1 -257
- package/dist/auth/config.d.ts +1 -19
- package/dist/auth/config.js +1 -147
- package/dist/auth/crypto.d.ts +1 -27
- package/dist/auth/crypto.js +1 -133
- package/dist/auth/index.d.ts +1 -5
- package/dist/auth/index.js +1 -22
- package/dist/auth/middleware.d.ts +1 -14
- package/dist/auth/middleware.js +1 -100
- package/dist/auth/routes.d.ts +1 -7
- package/dist/auth/routes.js +1 -78
- package/dist/auth/types.d.ts +1 -35
- package/dist/auth/types.js +1 -11
- package/dist/cli/args.d.ts +1 -45
- package/dist/cli/args.js +1 -328
- package/dist/cli/config.d.ts +1 -56
- package/dist/cli/config.js +1 -133
- package/dist/cli/index.d.ts +1 -4
- package/dist/cli/index.js +1 -21
- package/dist/cli/runner.d.ts +1 -1
- package/dist/cli/runner.js +1 -222
- package/dist/cli.d.ts +1 -2
- package/dist/cli.js +1 -5
- package/dist/data/datasets.d.ts +1 -17
- package/dist/data/datasets.js +1 -133
- package/dist/data/detector.d.ts +1 -30
- package/dist/data/detector.js +1 -472
- package/dist/data/engine.d.ts +1 -10
- package/dist/data/engine.js +1 -211
- package/dist/data/index.d.ts +1 -5
- package/dist/data/index.js +1 -22
- package/dist/data/strategies.d.ts +1 -30
- package/dist/data/strategies.js +1 -343
- package/dist/data/types.d.ts +1 -73
- package/dist/data/types.js +1 -8
- package/dist/db/database.d.ts +1 -119
- package/dist/db/database.js +1 -471
- package/dist/db/export.d.ts +1 -12
- package/dist/db/export.js +1 -42
- package/dist/db/filters.d.ts +1 -22
- package/dist/db/filters.js +1 -158
- package/dist/db/index.d.ts +1 -8
- package/dist/db/index.js +1 -25
- package/dist/db/introspection.d.ts +1 -6
- package/dist/db/introspection.js +1 -172
- package/dist/db/manager.d.ts +1 -81
- package/dist/db/manager.js +1 -397
- package/dist/db/migrations.d.ts +1 -5
- package/dist/db/migrations.js +1 -110
- package/dist/db/postgres.d.ts +1 -85
- package/dist/db/postgres.js +1 -745
- package/dist/db/types.d.ts +1 -206
- package/dist/db/types.js +1 -7
- package/dist/index.d.ts +1 -23
- package/dist/index.js +1 -66
- package/dist/public/js/api.js +1 -47
- package/dist/public/js/app.js +1 -262
- package/dist/public/js/browse.js +1 -1371
- package/dist/public/js/databases.js +1 -235
- package/dist/public/js/designer.js +1 -258
- package/dist/public/js/forms.js +1 -826
- package/dist/public/js/icons.js +1 -51
- package/dist/public/js/inspector.js +1 -638
- package/dist/public/js/query.js +1 -322
- package/dist/public/js/schema.js +1 -447
- package/dist/public/js/seed.js +1 -1090
- package/dist/routes/api/helpers.d.ts +1 -42
- package/dist/routes/api/helpers.js +1 -133
- package/dist/routes/api/import-export.d.ts +1 -3
- package/dist/routes/api/import-export.js +1 -85
- package/dist/routes/api/index.d.ts +1 -4
- package/dist/routes/api/index.js +1 -37
- package/dist/routes/api/query.d.ts +1 -3
- package/dist/routes/api/query.js +1 -76
- package/dist/routes/api/rows.d.ts +1 -3
- package/dist/routes/api/rows.js +1 -373
- package/dist/routes/api/seed.d.ts +1 -3
- package/dist/routes/api/seed.js +1 -82
- package/dist/routes/api/tables.d.ts +1 -3
- package/dist/routes/api/tables.js +1 -160
- package/dist/routes/databases.d.ts +1 -26
- package/dist/routes/databases.js +1 -230
- package/dist/routes/index.d.ts +1 -3
- package/dist/routes/index.js +1 -20
- package/dist/routes/pages.d.ts +1 -9
- package/dist/routes/pages.js +1 -390
- package/dist/serverless.d.ts +1 -40
- package/dist/serverless.js +1 -210
- package/dist/sql/classifier.d.ts +1 -19
- package/dist/sql/classifier.js +1 -37
- package/dist/sql/generator.d.ts +1 -81
- package/dist/sql/generator.js +1 -348
- package/dist/sql/index.d.ts +1 -2
- package/dist/sql/index.js +1 -19
- package/dist/types/api.d.ts +1 -412
- package/dist/types/api.js +1 -9
- package/dist/utils/colors.d.ts +1 -40
- package/dist/utils/colors.js +1 -64
- package/dist/utils/common.d.ts +1 -50
- package/dist/utils/common.js +1 -229
- package/dist/utils/csv.d.ts +1 -15
- package/dist/utils/csv.js +1 -80
- package/dist/utils/datatype.d.ts +1 -49
- package/dist/utils/datatype.js +1 -222
- package/dist/utils/icons.d.ts +1 -11
- package/dist/utils/icons.js +1 -72
- package/dist/utils/index.d.ts +1 -4
- package/dist/utils/index.js +1 -21
- package/dist/utils/logger.d.ts +1 -10
- package/dist/utils/logger.js +1 -40
- package/dist/views/layouts/main.hbs +0 -4
- package/dist/views/pages/databases.hbs +0 -18
- package/dist/views/pages/designer.hbs +0 -10
- package/dist/views/pages/error.hbs +0 -2
- package/dist/views/pages/form.hbs +0 -5
- package/dist/views/pages/home.hbs +0 -8
- package/dist/views/pages/login.hbs +0 -13
- package/dist/views/pages/query.hbs +0 -9
- package/dist/views/pages/schema.hbs +0 -20
- package/dist/views/pages/seed.hbs +0 -31
- package/dist/views/pages/table.hbs +0 -14
- package/dist/views/partials/icon.hbs +0 -1
- package/dist/views/partials/navbar.hbs +0 -6
- package/dist/views/partials/sidebar.hbs +0 -8
- package/package.json +3 -2
- package/dist/app.js.map +0 -1
- package/dist/auth/config.js.map +0 -1
- package/dist/auth/crypto.js.map +0 -1
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/middleware.js.map +0 -1
- package/dist/auth/routes.js.map +0 -1
- package/dist/auth/types.js.map +0 -1
- package/dist/cli/args.js.map +0 -1
- package/dist/cli/config.js.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/runner.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/data/datasets.js.map +0 -1
- package/dist/data/detector.js.map +0 -1
- package/dist/data/engine.js.map +0 -1
- package/dist/data/index.js.map +0 -1
- package/dist/data/strategies.js.map +0 -1
- package/dist/data/types.js.map +0 -1
- package/dist/db/database.js.map +0 -1
- package/dist/db/export.js.map +0 -1
- package/dist/db/filters.js.map +0 -1
- package/dist/db/index.js.map +0 -1
- package/dist/db/introspection.js.map +0 -1
- package/dist/db/manager.js.map +0 -1
- package/dist/db/migrations.js.map +0 -1
- package/dist/db/postgres.js.map +0 -1
- package/dist/db/types.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/public/css/input.css +0 -302
- package/dist/routes/api/helpers.js.map +0 -1
- package/dist/routes/api/import-export.js.map +0 -1
- package/dist/routes/api/index.js.map +0 -1
- package/dist/routes/api/query.js.map +0 -1
- package/dist/routes/api/rows.js.map +0 -1
- package/dist/routes/api/seed.js.map +0 -1
- package/dist/routes/api/tables.js.map +0 -1
- package/dist/routes/databases.js.map +0 -1
- package/dist/routes/index.js.map +0 -1
- package/dist/routes/pages.js.map +0 -1
- package/dist/serverless.js.map +0 -1
- package/dist/sql/classifier.js.map +0 -1
- package/dist/sql/generator.js.map +0 -1
- package/dist/sql/index.js.map +0 -1
- package/dist/types/api.js.map +0 -1
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/common.js.map +0 -1
- package/dist/utils/csv.js.map +0 -1
- package/dist/utils/datatype.js.map +0 -1
- package/dist/utils/icons.js.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.js.map +0 -1
package/dist/cli/runner.js
CHANGED
|
@@ -1,222 +1 @@
|
|
|
1
|
-
"use
|
|
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.runCli = runCli;
|
|
7
|
-
const express_1 = __importDefault(require("express"));
|
|
8
|
-
const node_os_1 = __importDefault(require("node:os"));
|
|
9
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
-
const app_1 = require("../app");
|
|
11
|
-
const config_1 = require("./config");
|
|
12
|
-
const logger_1 = require("../utils/logger");
|
|
13
|
-
const manager_1 = require("../db/manager");
|
|
14
|
-
const args_1 = require("./args");
|
|
15
|
-
const auth_1 = require("../auth");
|
|
16
|
-
const colors_1 = require("../utils/colors");
|
|
17
|
-
function runCli() {
|
|
18
|
-
const env = (0, config_1.loadConfig)();
|
|
19
|
-
const parsed = (0, args_1.parseArgs)(process.argv.slice(2));
|
|
20
|
-
if (parsed.error) {
|
|
21
|
-
console.error(colors_1.c.red(colors_1.c.bold(`Error: ${parsed.error}`)));
|
|
22
|
-
console.error();
|
|
23
|
-
console.error((0, args_1.helpText)());
|
|
24
|
-
process.exit(1);
|
|
25
|
-
}
|
|
26
|
-
const args = parsed.args;
|
|
27
|
-
if (args.help) {
|
|
28
|
-
console.log((0, args_1.helpText)());
|
|
29
|
-
process.exit(0);
|
|
30
|
-
}
|
|
31
|
-
if (args.version) {
|
|
32
|
-
console.log((0, args_1.versionText)());
|
|
33
|
-
process.exit(0);
|
|
34
|
-
}
|
|
35
|
-
// Merge CLI flags over environment variables.
|
|
36
|
-
const authEnabled = args.auth !== undefined ? args.auth : env.auth;
|
|
37
|
-
const authUsername = args.authUsername ?? env.authUsername ?? 'admin';
|
|
38
|
-
const authPassword = args.authPassword ?? env.authPassword;
|
|
39
|
-
const authSecret = args.authSecret ?? env.authSecret;
|
|
40
|
-
const serverless = args.serverless !== undefined ? args.serverless : env.serverless;
|
|
41
|
-
const readonly = serverless || args.readonly || env.readonly;
|
|
42
|
-
const connections = args.connections ?? env.connections;
|
|
43
|
-
const hasConnections = Boolean(connections && Object.keys(connections).length > 0);
|
|
44
|
-
const config = {
|
|
45
|
-
host: args.host ?? env.host,
|
|
46
|
-
port: args.port ?? env.port,
|
|
47
|
-
dbPath: args.dbPath ?? env.dbPath,
|
|
48
|
-
connection: args.connection ?? env.connection,
|
|
49
|
-
connections,
|
|
50
|
-
dbDir: args.dbDir ?? env.dbDir,
|
|
51
|
-
dbFiles: args.dbFiles ?? env.dbFiles,
|
|
52
|
-
basePath: (args.basePath ?? env.basePath).replace(/\/+$/, ''),
|
|
53
|
-
logLevel: args.logLevel ?? env.logLevel,
|
|
54
|
-
readonly,
|
|
55
|
-
serverless,
|
|
56
|
-
auth: authEnabled
|
|
57
|
-
? {
|
|
58
|
-
enabled: true,
|
|
59
|
-
username: authUsername,
|
|
60
|
-
password: authPassword,
|
|
61
|
-
secret: authSecret,
|
|
62
|
-
}
|
|
63
|
-
: false,
|
|
64
|
-
};
|
|
65
|
-
const logger = (0, logger_1.createLogger)(config.logLevel, 'admindb');
|
|
66
|
-
const app = (0, express_1.default)();
|
|
67
|
-
app.disable('x-powered-by');
|
|
68
|
-
// Mode selection:
|
|
69
|
-
// - Multiple database connections from JSON config -> Manager mode.
|
|
70
|
-
// - A specific single file / connection without multiple connections -> single-database mode.
|
|
71
|
-
// - Otherwise -> manager mode.
|
|
72
|
-
const hasDir = Boolean(config.dbDir);
|
|
73
|
-
const hasFiles = Boolean(config.dbFiles && config.dbFiles.length > 0);
|
|
74
|
-
const explicitFile = args.connection ??
|
|
75
|
-
config.connection ??
|
|
76
|
-
args.dbPath ??
|
|
77
|
-
(process.env.ADMINDB_DB_PATH || process.env.ADMINDB_PATH || process.env.DB_PATH ? config.dbPath : undefined);
|
|
78
|
-
const isPg = Boolean(explicitFile && (explicitFile.startsWith('postgres://') || explicitFile.startsWith('postgresql://')));
|
|
79
|
-
const singleFileOnly = !hasConnections && (Boolean(explicitFile) || isPg) && !hasDir && !hasFiles;
|
|
80
|
-
const useManager = !singleFileOnly;
|
|
81
|
-
const managerFiles = [...(config.dbFiles ?? [])];
|
|
82
|
-
if (useManager && explicitFile && !hasConnections)
|
|
83
|
-
managerFiles.push(explicitFile);
|
|
84
|
-
const managerDir = hasDir ? config.dbDir : hasFiles || explicitFile || hasConnections ? undefined : process.cwd();
|
|
85
|
-
const allowBrowse = useManager && (hasDir || (!hasFiles && !explicitFile && !hasConnections));
|
|
86
|
-
const browseRoot = hasDir ? node_path_1.default.resolve(config.dbDir) : undefined;
|
|
87
|
-
const router = useManager
|
|
88
|
-
? (0, app_1.createRouter)({
|
|
89
|
-
manager: new manager_1.DbManager({ dir: managerDir, files: managerFiles, connections, readonly: config.readonly }, logger),
|
|
90
|
-
basePath: config.basePath,
|
|
91
|
-
logger,
|
|
92
|
-
readonly: config.readonly,
|
|
93
|
-
serverless: config.serverless,
|
|
94
|
-
allowBrowse,
|
|
95
|
-
browseRoot,
|
|
96
|
-
auth: config.auth,
|
|
97
|
-
})
|
|
98
|
-
: (0, app_1.createRouter)({
|
|
99
|
-
dbPath: explicitFile,
|
|
100
|
-
connection: explicitFile,
|
|
101
|
-
basePath: config.basePath,
|
|
102
|
-
logger,
|
|
103
|
-
readonly: config.readonly,
|
|
104
|
-
serverless: config.serverless,
|
|
105
|
-
auth: config.auth,
|
|
106
|
-
});
|
|
107
|
-
app.use(config.basePath || '/', router);
|
|
108
|
-
function getNetworkIp() {
|
|
109
|
-
try {
|
|
110
|
-
const nets = node_os_1.default.networkInterfaces();
|
|
111
|
-
for (const name of Object.keys(nets)) {
|
|
112
|
-
for (const net of nets[name] ?? []) {
|
|
113
|
-
if (net.family === 'IPv4' && !net.internal) {
|
|
114
|
-
return net.address;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
catch {
|
|
120
|
-
/* ignore */
|
|
121
|
-
}
|
|
122
|
-
return undefined;
|
|
123
|
-
}
|
|
124
|
-
const server = app.listen(config.port, config.host, () => {
|
|
125
|
-
const v = (0, args_1.getPackageVersion)();
|
|
126
|
-
const versionStr = v ? ` v${v}` : '';
|
|
127
|
-
const isAnyHost = config.host === '0.0.0.0' || config.host === '::' || config.host === '';
|
|
128
|
-
const localHost = isAnyHost ? 'localhost' : config.host;
|
|
129
|
-
const localUrl = `http://${localHost}:${config.port}${config.basePath}/`;
|
|
130
|
-
console.log();
|
|
131
|
-
console.log(` ${colors_1.c.cyan(colors_1.c.bold('⚡ AdminDB'))}${colors_1.c.dim(versionStr)}`);
|
|
132
|
-
console.log();
|
|
133
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Local:')} ${colors_1.c.cyan(localUrl)}`);
|
|
134
|
-
if (isAnyHost) {
|
|
135
|
-
const netIp = getNetworkIp();
|
|
136
|
-
if (netIp) {
|
|
137
|
-
const netUrl = `http://${netIp}:${config.port}${config.basePath}/`;
|
|
138
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Network:')} ${colors_1.c.cyan(netUrl)}`);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
// Mode & Target Info
|
|
142
|
-
if (useManager) {
|
|
143
|
-
const modeDesc = config.serverless
|
|
144
|
-
? 'Manager [Serverless Read-Only]'
|
|
145
|
-
: config.readonly
|
|
146
|
-
? 'Manager [Read-Only]'
|
|
147
|
-
: 'Manager';
|
|
148
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Mode:')} ${modeDesc}`);
|
|
149
|
-
if (args.configPath) {
|
|
150
|
-
const count = Object.keys(connections ?? {}).length;
|
|
151
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Config:')} ${colors_1.c.cyan(args.configPath)}${count ? ` (${count} connection(s))` : ''}`);
|
|
152
|
-
}
|
|
153
|
-
if (hasConnections) {
|
|
154
|
-
for (const [name, target] of Object.entries(connections)) {
|
|
155
|
-
const sanitized = target.replace(/:([^@]+)@/, ':****@');
|
|
156
|
-
const isTargetPg = target.startsWith('postgres://') || target.startsWith('postgresql://');
|
|
157
|
-
const engine = isTargetPg ? 'PostgreSQL' : 'SQLite';
|
|
158
|
-
console.log(` ${colors_1.c.dim('•')} ${colors_1.c.bold(name)}: ${colors_1.c.cyan(engine)} ${colors_1.c.dim(sanitized)}`);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
else if (managerDir) {
|
|
162
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Directory:')}${colors_1.c.dim(` ${managerDir}`)}`);
|
|
163
|
-
}
|
|
164
|
-
if (!allowBrowse) {
|
|
165
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Browse:')} ${colors_1.c.dim('Disabled (configured databases only)')}`);
|
|
166
|
-
}
|
|
167
|
-
else if (browseRoot) {
|
|
168
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Browse:')} ${colors_1.c.dim(`Limited to ${browseRoot}`)}`);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
const modeDesc = config.serverless
|
|
173
|
-
? 'Single DB [Serverless Read-Only]'
|
|
174
|
-
: config.readonly
|
|
175
|
-
? 'Single DB [Read-Only]'
|
|
176
|
-
: 'Single DB';
|
|
177
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Mode:')} ${modeDesc}`);
|
|
178
|
-
if (args.configPath) {
|
|
179
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Config:')} ${colors_1.c.cyan(args.configPath)}`);
|
|
180
|
-
}
|
|
181
|
-
if (isPg) {
|
|
182
|
-
const sanitized = explicitFile?.replace(/:([^@]+)@/, ':****@');
|
|
183
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Engine:')} ${colors_1.c.cyan('PostgreSQL')}`);
|
|
184
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Database:')} ${sanitized}`);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Engine:')} ${colors_1.c.cyan('SQLite')}`);
|
|
188
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Database:')} ${explicitFile}`);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
// Auth Status
|
|
192
|
-
if (authEnabled) {
|
|
193
|
-
const isDefaultPass = authUsername === 'admin' &&
|
|
194
|
-
(!authPassword || authPassword === 'admin' || authPassword === auth_1.DEFAULT_PASSWORD_HASH);
|
|
195
|
-
if (isDefaultPass) {
|
|
196
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Auth:')} User: ${colors_1.c.bold(authUsername)} ${colors_1.c.yellow('(default password)')}`);
|
|
197
|
-
console.log();
|
|
198
|
-
console.log(` ${colors_1.c.yellow('⚠')} ${colors_1.c.yellow('Default password in use (admin).')} Generate a secure hash with:`);
|
|
199
|
-
console.log(` ${colors_1.c.dim('npm run generatehash')} and set ${colors_1.c.cyan('ADMINDB_PASSWORD')} or ${colors_1.c.cyan('-P <hash>')}`);
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
console.log(` ${colors_1.c.green('➜')} ${colors_1.c.bold('Auth:')} User: ${colors_1.c.bold(authUsername)}`);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
console.log(` ${colors_1.c.yellow('➜')} ${colors_1.c.bold('Auth:')} ${colors_1.c.yellow('Disabled (--no-auth)')}`);
|
|
207
|
-
console.log(` ${colors_1.c.dim('Warning: Anyone with network access can view and modify databases.')}`);
|
|
208
|
-
}
|
|
209
|
-
console.log();
|
|
210
|
-
});
|
|
211
|
-
const shutdown = (signal) => {
|
|
212
|
-
console.log(`\n ${colors_1.c.dim(`Received ${signal}, shutting down…`)}`);
|
|
213
|
-
server.close(() => {
|
|
214
|
-
console.log(` ${colors_1.c.green('✓')} ${colors_1.c.dim('AdminDB stopped.')}\n`);
|
|
215
|
-
process.exit(0);
|
|
216
|
-
});
|
|
217
|
-
setTimeout(() => process.exit(0), 2000).unref();
|
|
218
|
-
};
|
|
219
|
-
process.on('SIGINT', () => shutdown('SIGINT'));
|
|
220
|
-
process.on('SIGTERM', () => shutdown('SIGTERM'));
|
|
221
|
-
}
|
|
222
|
-
//# sourceMappingURL=runner.js.map
|
|
1
|
+
var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.runCli=function(){const env=(0,config_1.loadConfig)(),parsed=(0,args_1.parseArgs)(process.argv.slice(2));parsed.error&&(console.error(colors_1.c.red(colors_1.c.bold(`Error: ${parsed.error}`))),console.error(),console.error((0,args_1.helpText)()),process.exit(1));const args=parsed.args;args.help&&(console.log((0,args_1.helpText)()),process.exit(0));args.version&&(console.log((0,args_1.versionText)()),process.exit(0));const authEnabled=void 0!==args.auth?args.auth:env.auth,authUsername=args.authUsername??env.authUsername??"admin",authPassword=args.authPassword??env.authPassword,authSecret=args.authSecret??env.authSecret,serverless=void 0!==args.serverless?args.serverless:env.serverless,readonly=serverless||args.readonly||env.readonly,connections=args.connections??env.connections,hasConnections=Boolean(connections&&Object.keys(connections).length>0),config={host:args.host??env.host,port:args.port??env.port,dbPath:args.dbPath??env.dbPath,connection:args.connection??env.connection,connections:connections,dbDir:args.dbDir??env.dbDir,dbFiles:args.dbFiles??env.dbFiles,basePath:(args.basePath??env.basePath).replace(/\/+$/,""),logLevel:args.logLevel??env.logLevel,readonly:readonly,serverless:serverless,auth:!!authEnabled&&{enabled:!0,username:authUsername,password:authPassword,secret:authSecret}},logger=(0,logger_1.createLogger)(config.logLevel,"admindb"),app=(0,express_1.default)();app.disable("x-powered-by");const hasDir=Boolean(config.dbDir),hasFiles=Boolean(config.dbFiles&&config.dbFiles.length>0),explicitFile=args.connection??config.connection??args.dbPath??(process.env.ADMINDB_DB_PATH||process.env.ADMINDB_PATH||process.env.DB_PATH?config.dbPath:void 0),isPg=Boolean(explicitFile&&(explicitFile.startsWith("postgres://")||explicitFile.startsWith("postgresql://"))),useManager=!(!hasConnections&&(Boolean(explicitFile)||isPg)&&!hasDir&&!hasFiles),managerFiles=[...config.dbFiles??[]];useManager&&explicitFile&&!hasConnections&&managerFiles.push(explicitFile);const managerDir=hasDir?config.dbDir:hasFiles||explicitFile||hasConnections?void 0:process.cwd(),allowBrowse=useManager&&(hasDir||!hasFiles&&!explicitFile&&!hasConnections),browseRoot=hasDir?node_path_1.default.resolve(config.dbDir):void 0,router=useManager?(0,app_1.createRouter)({manager:new manager_1.DbManager({dir:managerDir,files:managerFiles,connections:connections,readonly:config.readonly},logger),basePath:config.basePath,logger:logger,readonly:config.readonly,serverless:config.serverless,allowBrowse:allowBrowse,browseRoot:browseRoot,auth:config.auth}):(0,app_1.createRouter)({dbPath:explicitFile,connection:explicitFile,basePath:config.basePath,logger:logger,readonly:config.readonly,serverless:config.serverless,auth:config.auth});app.use(config.basePath||"/",router);const server=app.listen(config.port,config.host,()=>{const v=(0,args_1.getPackageVersion)(),versionStr=v?` v${v}`:"",isAnyHost="0.0.0.0"===config.host||"::"===config.host||""===config.host,localUrl=`http://${isAnyHost?"localhost":config.host}:${config.port}${config.basePath}/`;if(console.log(),console.log(` ${colors_1.c.cyan(colors_1.c.bold("⚡ AdminDB"))}${colors_1.c.dim(versionStr)}`),console.log(),console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Local:")} ${colors_1.c.cyan(localUrl)}`),isAnyHost){const netIp=function(){try{const nets=node_os_1.default.networkInterfaces();for(const name of Object.keys(nets))for(const net of nets[name]??[])if("IPv4"===net.family&&!net.internal)return net.address}catch{}}();if(netIp){const netUrl=`http://${netIp}:${config.port}${config.basePath}/`;console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Network:")} ${colors_1.c.cyan(netUrl)}`)}}if(useManager){const modeDesc=config.serverless?"Manager [Serverless Read-Only]":config.readonly?"Manager [Read-Only]":"Manager";if(console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Mode:")} ${modeDesc}`),args.configPath){const count=Object.keys(connections??{}).length;console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Config:")} ${colors_1.c.cyan(args.configPath)}${count?` (${count} connection(s))`:""}`)}if(hasConnections)for(const[name,target]of Object.entries(connections)){const sanitized=target.replace(/:([^@]+)@/,":****@"),engine=target.startsWith("postgres://")||target.startsWith("postgresql://")?"PostgreSQL":"SQLite";console.log(` ${colors_1.c.dim("•")} ${colors_1.c.bold(name)}: ${colors_1.c.cyan(engine)} ${colors_1.c.dim(sanitized)}`)}else managerDir&&console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Directory:")}${colors_1.c.dim(` ${managerDir}`)}`);allowBrowse?browseRoot&&console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Browse:")} ${colors_1.c.dim(`Limited to ${browseRoot}`)}`):console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Browse:")} ${colors_1.c.dim("Disabled (configured databases only)")}`)}else{const modeDesc=config.serverless?"Single DB [Serverless Read-Only]":config.readonly?"Single DB [Read-Only]":"Single DB";if(console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Mode:")} ${modeDesc}`),args.configPath&&console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Config:")} ${colors_1.c.cyan(args.configPath)}`),isPg){const sanitized=explicitFile?.replace(/:([^@]+)@/,":****@");console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Engine:")} ${colors_1.c.cyan("PostgreSQL")}`),console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Database:")} ${sanitized}`)}else console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Engine:")} ${colors_1.c.cyan("SQLite")}`),console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Database:")} ${explicitFile}`)}if(authEnabled){"admin"===authUsername&&(!authPassword||"admin"===authPassword||authPassword===auth_1.DEFAULT_PASSWORD_HASH)?(console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Auth:")} User: ${colors_1.c.bold(authUsername)} ${colors_1.c.yellow("(default password)")}`),console.log(),console.log(` ${colors_1.c.yellow("⚠")} ${colors_1.c.yellow("Default password in use (admin).")} Generate a secure hash with:`),console.log(` ${colors_1.c.dim("npm run generatehash")} and set ${colors_1.c.cyan("ADMINDB_PASSWORD")} or ${colors_1.c.cyan("-P <hash>")}`)):console.log(` ${colors_1.c.green("➜")} ${colors_1.c.bold("Auth:")} User: ${colors_1.c.bold(authUsername)}`)}else console.log(` ${colors_1.c.yellow("➜")} ${colors_1.c.bold("Auth:")} ${colors_1.c.yellow("Disabled (--no-auth)")}`),console.log(` ${colors_1.c.dim("Warning: Anyone with network access can view and modify databases.")}`);console.log()}),shutdown=signal=>{console.log(`\n ${colors_1.c.dim(`Received ${signal}, shutting down…`)}`),server.close(()=>{console.log(` ${colors_1.c.green("✓")} ${colors_1.c.dim("AdminDB stopped.")}\n`),process.exit(0)}),setTimeout(()=>process.exit(0),2e3).unref()};process.on("SIGINT",()=>shutdown("SIGINT")),process.on("SIGTERM",()=>shutdown("SIGTERM"))};const express_1=__importDefault(require("express")),node_os_1=__importDefault(require("node:os")),node_path_1=__importDefault(require("node:path")),app_1=require("../app"),config_1=require("./config"),logger_1=require("../utils/logger"),manager_1=require("../db/manager"),args_1=require("./args"),auth_1=require("../auth"),colors_1=require("../utils/colors");
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
export {};
|
|
1
|
+
#!/usr/bin/env node export{};
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const runner_1 = require("./cli/runner");
|
|
5
|
-
(0, runner_1.runCli)();
|
|
6
|
-
//# sourceMappingURL=cli.js.map
|
|
2
|
+
Object.defineProperty(exports,"__esModule",{value:!0});(0,require("./cli/runner").runCli)();
|
package/dist/data/datasets.d.ts
CHANGED
|
@@ -1,17 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Curated static datasets and wordlists used by the data generator.
|
|
3
|
-
*/
|
|
4
|
-
export declare const FIRST_NAMES: string[];
|
|
5
|
-
export declare const LAST_NAMES: string[];
|
|
6
|
-
export declare const CITIES: string[];
|
|
7
|
-
export declare const COUNTRIES: string[];
|
|
8
|
-
export declare const DOMAINS: string[];
|
|
9
|
-
export declare const LOREM_WORDS: string[];
|
|
10
|
-
export declare const COMPANIES: string[];
|
|
11
|
-
export declare const JOB_TITLES: string[];
|
|
12
|
-
export declare const US_STATES: string[];
|
|
13
|
-
export declare const CURRENCIES: string[];
|
|
14
|
-
export declare const COUNTRY_CODES: string[];
|
|
15
|
-
export declare const STATUSES: string[];
|
|
16
|
-
export declare const HEX_COLORS: string[];
|
|
17
|
-
export declare const NAMED_COLORS: string[];
|
|
1
|
+
export declare const FIRST_NAMES:string[];export declare const LAST_NAMES:string[];export declare const CITIES:string[];export declare const COUNTRIES:string[];export declare const DOMAINS:string[];export declare const LOREM_WORDS:string[];export declare const COMPANIES:string[];export declare const JOB_TITLES:string[];export declare const US_STATES:string[];export declare const CURRENCIES:string[];export declare const COUNTRY_CODES:string[];export declare const STATUSES:string[];export declare const HEX_COLORS:string[];export declare const NAMED_COLORS:string[];
|
package/dist/data/datasets.js
CHANGED
|
@@ -1,133 +1 @@
|
|
|
1
|
-
"
|
|
2
|
-
/**
|
|
3
|
-
* Curated static datasets and wordlists used by the data generator.
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NAMED_COLORS = exports.HEX_COLORS = exports.STATUSES = exports.COUNTRY_CODES = exports.CURRENCIES = exports.US_STATES = exports.JOB_TITLES = exports.COMPANIES = exports.LOREM_WORDS = exports.DOMAINS = exports.COUNTRIES = exports.CITIES = exports.LAST_NAMES = exports.FIRST_NAMES = void 0;
|
|
7
|
-
exports.FIRST_NAMES = [
|
|
8
|
-
"Sombat", "Ting", "Rajan", "Minh", "Hiroshi", "William", "Made", "Ravi", "John", "Kiran",
|
|
9
|
-
"Raj", "Wayan", "Chaiwat", "Aarav", "Sita", "Zara", "Ratna", "Ananya", "Ha-eun", "Siti",
|
|
10
|
-
"Seo-yeon", "Mary", "Priyanka", "Xu", "Ali", "Priya", "Sakura", "Ken", "Ketut", "Soo-hyun",
|
|
11
|
-
"Wang", "Guido", "Deepa", "Fang", "James", "Mei", "Binh", "Takeshi", "Leela", "Thuy",
|
|
12
|
-
"Dewi", "Layla", "Vijay", "Samir", "Meera", "Jessica", "Linda", "Malee", "Qiang", "Yuna",
|
|
13
|
-
"Richard", "Margaret", "Ming", "Vikram", "Mai", "Rahul", "Van", "Jennifer", "Suresh", "Yui",
|
|
14
|
-
"Pan", "Barbara", "Tim", "Lu", "Liang", "Robert", "Fatima", "Imran", "Ajay", "Ren",
|
|
15
|
-
"Liu", "Dennis", "Lin", "Kavya", "Agus", "Katherine", "Anita", "Grace", "Linus", "Jun",
|
|
16
|
-
"Alan", "Tarun", "Omar", "Michael", "Dung", "Ahmad", "Hoa", "Hui", "Susan", "Shinji",
|
|
17
|
-
"Zhou", "Linh", "Ngoc", "Xin", "Hassan", "Nisha", "Patricia", "Li", "Lei", "Sunita",
|
|
18
|
-
"Chen", "Anh", "Jia", "Xiao", "Yang", "Ji-hoon", "Jing", "Hedy", "Elizabeth", "Zhang",
|
|
19
|
-
"Arjun", "Yuki", "Ada", "Edsger", "Nong", "Lynn", "Anjali", "Nguyen", "Sora", "Mieko",
|
|
20
|
-
"Nyoman", "Jin", "Aisha", "Bayu", "Tariq", "Daiki", "David", "Rani", "Tran", "Haruki",
|
|
21
|
-
"Dae-hyun", "Dao", "Rama", "Aiko", "Min-jun", "Zhu", "Radia", "Wei", "Sophia", "Lucas",
|
|
22
|
-
"Emma", "Liam", "Olivia", "Noah", "Elena", "Mateo", "Chloe", "Alexander", "Aria", "Leo"
|
|
23
|
-
];
|
|
24
|
-
exports.LAST_NAMES = [
|
|
25
|
-
"Chen", "Smith", "Thompson", "Shah", "Thai", "Perlman", "Brown", "Hsu", "Turing", "Sharma",
|
|
26
|
-
"Purnama", "Lopez", "Williams", "Davis", "Liao", "Xu", "Martin", "Dhawan", "Yoon", "Tan",
|
|
27
|
-
"Yamamoto", "Iyer", "Phung", "Gonzalez", "Huang", "Hu", "Vo", "Shetty", "Le", "Wijaya",
|
|
28
|
-
"Jackson", "Ly", "Anderson", "Pratama", "Lovelace", "Martinez", "Dang", "Ma", "Hopper", "Naidu",
|
|
29
|
-
"Goh", "Hamilton", "Duong", "Taylor", "Song", "Surya", "Singh", "Jiang", "Cho", "Zhang",
|
|
30
|
-
"Pham", "Teo", "van Rossum", "Patel", "Lam", "Jang", "Rodriguez", "Miller", "Torvalds", "Hidayat",
|
|
31
|
-
"Menon", "Thomas", "Hernandez", "Reddy", "Wong", "Tripathi", "Lim", "Kumar", "Bhaskar", "Rajan",
|
|
32
|
-
"Chang", "Ong", "Vu", "Nair", "Sun", "Do", "Bhatia", "Garcia", "Mishra", "Rao",
|
|
33
|
-
"Choi", "Phan", "Zhu", "Nguyen", "Kim", "Putra", "Malhotra", "Nakamura", "Kang", "Wilson",
|
|
34
|
-
"Huynh", "Tanaka", "Kusuma", "Jung", "Mehta", "Perez", "Arora", "Chu", "Moore", "Li",
|
|
35
|
-
"Yang", "Park", "Ko", "Watanabe", "Bui", "Liu", "Ninh", "Jones", "Johnson", "Guo",
|
|
36
|
-
"Ngo", "Ito", "Takahashi", "Grover", "Shen", "Yeh", "Lee", "Gupta", "Wang", "Wu",
|
|
37
|
-
"Verma", "Suzuki", "White", "Lu", "Pillai", "Lin", "Joshi", "Tran", "Chawla", "Zhou", "Desai"
|
|
38
|
-
];
|
|
39
|
-
exports.CITIES = [
|
|
40
|
-
"Hyderabad", "Yangon", "Medan", "Minneapolis", "Faisalabad", "Yokohama", "Nha Trang",
|
|
41
|
-
"Hong Kong", "Phoenix", "Delhi", "Chennai", "Denver", "Guangzhou", "Davao City",
|
|
42
|
-
"Chiang Mai", "Atlanta", "Manila", "Naypyidaw", "Sylhet", "Phuket", "Incheon",
|
|
43
|
-
"New York", "Daejeon", "Yogyakarta", "Colombo", "Kanpur", "Portland", "Vientiane",
|
|
44
|
-
"Dublin", "Mandalay", "Hat Yai", "Chengdu", "Lisbon", "Paris", "Bandung",
|
|
45
|
-
"Kathmandu", "Karachi", "Qingdao", "Da Nang", "Seoul", "Hanoi", "Berlin",
|
|
46
|
-
"Chicago", "Sydney", "Quezon City", "Mumbai", "Vizag", "Coimbatore", "Lahore",
|
|
47
|
-
"Dhaka", "Shenzhen", "Phnom Penh", "Navi Mumbai", "Fuzhou", "Kuala Lumpur", "Taipei",
|
|
48
|
-
"Zurich", "Bangkok", "Makati", "Chittagong", "Daegu", "Jaipur", "Oslo",
|
|
49
|
-
"Islamabad", "Dalian", "Kolkata", "Penang", "Johor Bahru", "Singapore", "Ulsan",
|
|
50
|
-
"Macau", "Pune", "Pattaya", "Siem Reap", "Cebu City", "Lucknow", "Rome",
|
|
51
|
-
"Surabaya", "Stockholm", "Los Angeles", "Osaka", "Sapporo", "Fukuoka", "Rajshahi",
|
|
52
|
-
"Tokyo", "Vancouver", "San Francisco", "Nagoya", "Busan", "Jakarta", "Guangxi",
|
|
53
|
-
"London", "Kaohsiung", "Xiamen", "Male", "Nashville", "Warsaw", "Madrid",
|
|
54
|
-
"Indore", "Boston", "Amsterdam", "Shanghai", "Taichung", "Raleigh", "Miami",
|
|
55
|
-
"Jeju", "Cheongju", "Bangalore", "Ahmedabad", "Haiphong", "Ho Chi Minh City", "Gwangju",
|
|
56
|
-
"Rawalpindi", "Toronto", "Seville", "Kyoto", "Austin", "Suwon", "Seattle",
|
|
57
|
-
"Beijing", "Nakhon Ratchasima", "Nagpur"
|
|
58
|
-
];
|
|
59
|
-
exports.COUNTRIES = [
|
|
60
|
-
"Japan", "United States", "Bhutan", "Belgium", "Myanmar", "Kazakhstan", "Mexico",
|
|
61
|
-
"Bangladesh", "United Kingdom", "South Africa", "Indonesia", "Vietnam", "South Korea", "Germany",
|
|
62
|
-
"Romania", "Italy", "Spain", "China", "India", "Taiwan", "Philippines",
|
|
63
|
-
"Singapore", "Canada", "Pakistan", "Hungary", "Maldives", "Switzerland", "Macau",
|
|
64
|
-
"Portugal", "Sri Lanka", "Malaysia", "Netherlands", "Turkmenistan", "Brunei", "Brazil",
|
|
65
|
-
"Greece", "Uzbekistan", "Cambodia", "France", "Australia", "Mongolia", "Poland",
|
|
66
|
-
"Kyrgyzstan", "Tajikistan", "Norway", "Sweden", "Ireland", "Austria", "Denmark",
|
|
67
|
-
"Laos", "Nepal", "Thailand", "Finland", "Hong Kong", "Czech Republic", "Timor-Leste", "New Zealand"
|
|
68
|
-
];
|
|
69
|
-
exports.DOMAINS = [
|
|
70
|
-
"outlook.com", "nus.edu.sg", "ust.hk", "iitb.ac.in", "acme.io", "ac.sg", "mail.ru", "163.com",
|
|
71
|
-
"outlook.kr", "tech.asia", "startup.io", "proton.me", "sohu.com", "gmail.com", "kyoto-u.ac.jp",
|
|
72
|
-
"example.com", "naver.com", "protonmail.com", "hanmail.net", "globex.org", "tudelft.nl", "company.com",
|
|
73
|
-
"yahoo.com", "126.com", "daum.net", "initech.net", "hkbu.edu.hk", "yahoo.co.jp", "qq.com", "nthu.edu.tw",
|
|
74
|
-
"sina.com", "innovate.sg", "zoho.com"
|
|
75
|
-
];
|
|
76
|
-
exports.LOREM_WORDS = [
|
|
77
|
-
"schema", "nu", "worker", "alpha", "cache", "edge", "async", "chi", "service", "packet",
|
|
78
|
-
"scale", "upsilon", "scrum", "node", "peace", "deploy", "epsilon", "lambda", "record", "pi",
|
|
79
|
-
"column", "module", "omicron", "query", "buffer", "persistence", "comet", "joy", "integrity", "galaxy",
|
|
80
|
-
"token", "spirit", "socket", "devops", "harmony", "backup", "agile", "render", "await", "field",
|
|
81
|
-
"aurora", "nature", "gamma", "cloud", "omega", "mu", "orbit", "delta", "kindness", "tau",
|
|
82
|
-
"row", "compassion", "theta", "beta", "balance", "wisdom", "rho", "kanban", "kappa", "session",
|
|
83
|
-
"compile", "phi", "stream", "queue", "event", "pixel", "resilience", "nebula", "iota", "index",
|
|
84
|
-
"cluster", "xi", "eta", "signal", "zeta", "fetch", "sigma", "psi", "prism", "nexus"
|
|
85
|
-
];
|
|
86
|
-
exports.COMPANIES = [
|
|
87
|
-
"Apex Solutions", "Vortex Digital", "Nexus Systems", "Horizon Labs", "Zenith Global",
|
|
88
|
-
"Quantum Dynamics", "Starlight Media", "Alpha Robotics", "Pinnacle Financial", "BlueWave Tech",
|
|
89
|
-
"Elevate Innovations", "Pulse Health", "Echo Stream", "Stratum Capital", "Beacon Analytics",
|
|
90
|
-
"Solaris Energy", "Vertex Cloud", "Catalyst Corp", "Synergy Ventures", "Omega Group",
|
|
91
|
-
"Hyperion Logic", "Aegis Security", "Terra Industries", "Prism Data", "Spectra Works",
|
|
92
|
-
"Novus Labs", "Orbit Software", "Forge Interactive", "Crestline Global", "Ironclad Partners",
|
|
93
|
-
"Acme Corp", "Globex Corporation", "Initech LLC", "Soylent Industries", "Umbrella Tech"
|
|
94
|
-
];
|
|
95
|
-
exports.JOB_TITLES = [
|
|
96
|
-
"Software Engineer", "Product Manager", "UX/UI Designer", "DevOps Specialist",
|
|
97
|
-
"Data Scientist", "Engineering Manager", "Account Executive", "Marketing Director",
|
|
98
|
-
"Content Strategist", "Customer Success Lead", "Financial Analyst", "Operations Lead",
|
|
99
|
-
"HR Generalist", "QA Automation Engineer", "Solutions Architect", "Security Specialist",
|
|
100
|
-
"Chief Technology Officer", "VP of Product", "Database Administrator", "Scrum Master",
|
|
101
|
-
"Technical Writer", "Brand Manager", "Legal Counsel", "Research Scientist", "Sales Director"
|
|
102
|
-
];
|
|
103
|
-
exports.US_STATES = [
|
|
104
|
-
"California", "New York", "Texas", "Florida", "Washington", "Illinois", "Pennsylvania",
|
|
105
|
-
"Ohio", "Georgia", "North Carolina", "Michigan", "New Jersey", "Virginia", "Colorado",
|
|
106
|
-
"Arizona", "Massachusetts", "Tennessee", "Indiana", "Missouri", "Maryland", "Wisconsin",
|
|
107
|
-
"Minnesota", "Oregon", "South Carolina", "Alabama", "Louisiana", "Kentucky", "Utah"
|
|
108
|
-
];
|
|
109
|
-
exports.CURRENCIES = [
|
|
110
|
-
"USD", "EUR", "GBP", "JPY", "CAD", "AUD", "CHF", "CNY", "INR", "SGD",
|
|
111
|
-
"NZD", "BRL", "SEK", "KRW", "MXN", "ZAR", "HKD", "NOK", "AED", "SAR"
|
|
112
|
-
];
|
|
113
|
-
exports.COUNTRY_CODES = [
|
|
114
|
-
"US", "GB", "CA", "DE", "FR", "JP", "AU", "IN", "BR", "SG",
|
|
115
|
-
"NL", "IT", "ES", "SE", "CH", "KR", "MX", "NZ", "ZA", "AE",
|
|
116
|
-
"SA", "NO", "DK", "FI", "IE", "PL", "PT", "BE", "AT", "ID"
|
|
117
|
-
];
|
|
118
|
-
exports.STATUSES = [
|
|
119
|
-
"active", "inactive", "pending", "completed", "cancelled",
|
|
120
|
-
"archived", "suspended", "draft", "processing", "approved", "rejected"
|
|
121
|
-
];
|
|
122
|
-
exports.HEX_COLORS = [
|
|
123
|
-
"#3b82f6", "#10b981", "#ef4444", "#f59e0b", "#8b5cf6",
|
|
124
|
-
"#ec4899", "#06b6d4", "#6366f1", "#14b8a6", "#f97316",
|
|
125
|
-
"#84cc16", "#a855f7", "#0ea5e9", "#64748b", "#d946ef",
|
|
126
|
-
"#1e293b", "#047857", "#b91c1c", "#1d4ed8", "#4338ca"
|
|
127
|
-
];
|
|
128
|
-
exports.NAMED_COLORS = [
|
|
129
|
-
"Emerald", "Indigo", "Amber", "Rose", "Cyan", "Violet",
|
|
130
|
-
"Sky", "Slate", "Teal", "Fuchsia", "Crimson", "Navy",
|
|
131
|
-
"Coral", "Bronze", "Charcoal", "Mint", "Lavender", "Ruby", "Cobalt"
|
|
132
|
-
];
|
|
133
|
-
//# sourceMappingURL=datasets.js.map
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.NAMED_COLORS=exports.HEX_COLORS=exports.STATUSES=exports.COUNTRY_CODES=exports.CURRENCIES=exports.US_STATES=exports.JOB_TITLES=exports.COMPANIES=exports.LOREM_WORDS=exports.DOMAINS=exports.COUNTRIES=exports.CITIES=exports.LAST_NAMES=exports.FIRST_NAMES=void 0,exports.FIRST_NAMES=["Sombat","Ting","Rajan","Minh","Hiroshi","William","Made","Ravi","John","Kiran","Raj","Wayan","Chaiwat","Aarav","Sita","Zara","Ratna","Ananya","Ha-eun","Siti","Seo-yeon","Mary","Priyanka","Xu","Ali","Priya","Sakura","Ken","Ketut","Soo-hyun","Wang","Guido","Deepa","Fang","James","Mei","Binh","Takeshi","Leela","Thuy","Dewi","Layla","Vijay","Samir","Meera","Jessica","Linda","Malee","Qiang","Yuna","Richard","Margaret","Ming","Vikram","Mai","Rahul","Van","Jennifer","Suresh","Yui","Pan","Barbara","Tim","Lu","Liang","Robert","Fatima","Imran","Ajay","Ren","Liu","Dennis","Lin","Kavya","Agus","Katherine","Anita","Grace","Linus","Jun","Alan","Tarun","Omar","Michael","Dung","Ahmad","Hoa","Hui","Susan","Shinji","Zhou","Linh","Ngoc","Xin","Hassan","Nisha","Patricia","Li","Lei","Sunita","Chen","Anh","Jia","Xiao","Yang","Ji-hoon","Jing","Hedy","Elizabeth","Zhang","Arjun","Yuki","Ada","Edsger","Nong","Lynn","Anjali","Nguyen","Sora","Mieko","Nyoman","Jin","Aisha","Bayu","Tariq","Daiki","David","Rani","Tran","Haruki","Dae-hyun","Dao","Rama","Aiko","Min-jun","Zhu","Radia","Wei","Sophia","Lucas","Emma","Liam","Olivia","Noah","Elena","Mateo","Chloe","Alexander","Aria","Leo"],exports.LAST_NAMES=["Chen","Smith","Thompson","Shah","Thai","Perlman","Brown","Hsu","Turing","Sharma","Purnama","Lopez","Williams","Davis","Liao","Xu","Martin","Dhawan","Yoon","Tan","Yamamoto","Iyer","Phung","Gonzalez","Huang","Hu","Vo","Shetty","Le","Wijaya","Jackson","Ly","Anderson","Pratama","Lovelace","Martinez","Dang","Ma","Hopper","Naidu","Goh","Hamilton","Duong","Taylor","Song","Surya","Singh","Jiang","Cho","Zhang","Pham","Teo","van Rossum","Patel","Lam","Jang","Rodriguez","Miller","Torvalds","Hidayat","Menon","Thomas","Hernandez","Reddy","Wong","Tripathi","Lim","Kumar","Bhaskar","Rajan","Chang","Ong","Vu","Nair","Sun","Do","Bhatia","Garcia","Mishra","Rao","Choi","Phan","Zhu","Nguyen","Kim","Putra","Malhotra","Nakamura","Kang","Wilson","Huynh","Tanaka","Kusuma","Jung","Mehta","Perez","Arora","Chu","Moore","Li","Yang","Park","Ko","Watanabe","Bui","Liu","Ninh","Jones","Johnson","Guo","Ngo","Ito","Takahashi","Grover","Shen","Yeh","Lee","Gupta","Wang","Wu","Verma","Suzuki","White","Lu","Pillai","Lin","Joshi","Tran","Chawla","Zhou","Desai"],exports.CITIES=["Hyderabad","Yangon","Medan","Minneapolis","Faisalabad","Yokohama","Nha Trang","Hong Kong","Phoenix","Delhi","Chennai","Denver","Guangzhou","Davao City","Chiang Mai","Atlanta","Manila","Naypyidaw","Sylhet","Phuket","Incheon","New York","Daejeon","Yogyakarta","Colombo","Kanpur","Portland","Vientiane","Dublin","Mandalay","Hat Yai","Chengdu","Lisbon","Paris","Bandung","Kathmandu","Karachi","Qingdao","Da Nang","Seoul","Hanoi","Berlin","Chicago","Sydney","Quezon City","Mumbai","Vizag","Coimbatore","Lahore","Dhaka","Shenzhen","Phnom Penh","Navi Mumbai","Fuzhou","Kuala Lumpur","Taipei","Zurich","Bangkok","Makati","Chittagong","Daegu","Jaipur","Oslo","Islamabad","Dalian","Kolkata","Penang","Johor Bahru","Singapore","Ulsan","Macau","Pune","Pattaya","Siem Reap","Cebu City","Lucknow","Rome","Surabaya","Stockholm","Los Angeles","Osaka","Sapporo","Fukuoka","Rajshahi","Tokyo","Vancouver","San Francisco","Nagoya","Busan","Jakarta","Guangxi","London","Kaohsiung","Xiamen","Male","Nashville","Warsaw","Madrid","Indore","Boston","Amsterdam","Shanghai","Taichung","Raleigh","Miami","Jeju","Cheongju","Bangalore","Ahmedabad","Haiphong","Ho Chi Minh City","Gwangju","Rawalpindi","Toronto","Seville","Kyoto","Austin","Suwon","Seattle","Beijing","Nakhon Ratchasima","Nagpur"],exports.COUNTRIES=["Japan","United States","Bhutan","Belgium","Myanmar","Kazakhstan","Mexico","Bangladesh","United Kingdom","South Africa","Indonesia","Vietnam","South Korea","Germany","Romania","Italy","Spain","China","India","Taiwan","Philippines","Singapore","Canada","Pakistan","Hungary","Maldives","Switzerland","Macau","Portugal","Sri Lanka","Malaysia","Netherlands","Turkmenistan","Brunei","Brazil","Greece","Uzbekistan","Cambodia","France","Australia","Mongolia","Poland","Kyrgyzstan","Tajikistan","Norway","Sweden","Ireland","Austria","Denmark","Laos","Nepal","Thailand","Finland","Hong Kong","Czech Republic","Timor-Leste","New Zealand"],exports.DOMAINS=["outlook.com","nus.edu.sg","ust.hk","iitb.ac.in","acme.io","ac.sg","mail.ru","163.com","outlook.kr","tech.asia","startup.io","proton.me","sohu.com","gmail.com","kyoto-u.ac.jp","example.com","naver.com","protonmail.com","hanmail.net","globex.org","tudelft.nl","company.com","yahoo.com","126.com","daum.net","initech.net","hkbu.edu.hk","yahoo.co.jp","qq.com","nthu.edu.tw","sina.com","innovate.sg","zoho.com"],exports.LOREM_WORDS=["schema","nu","worker","alpha","cache","edge","async","chi","service","packet","scale","upsilon","scrum","node","peace","deploy","epsilon","lambda","record","pi","column","module","omicron","query","buffer","persistence","comet","joy","integrity","galaxy","token","spirit","socket","devops","harmony","backup","agile","render","await","field","aurora","nature","gamma","cloud","omega","mu","orbit","delta","kindness","tau","row","compassion","theta","beta","balance","wisdom","rho","kanban","kappa","session","compile","phi","stream","queue","event","pixel","resilience","nebula","iota","index","cluster","xi","eta","signal","zeta","fetch","sigma","psi","prism","nexus"],exports.COMPANIES=["Apex Solutions","Vortex Digital","Nexus Systems","Horizon Labs","Zenith Global","Quantum Dynamics","Starlight Media","Alpha Robotics","Pinnacle Financial","BlueWave Tech","Elevate Innovations","Pulse Health","Echo Stream","Stratum Capital","Beacon Analytics","Solaris Energy","Vertex Cloud","Catalyst Corp","Synergy Ventures","Omega Group","Hyperion Logic","Aegis Security","Terra Industries","Prism Data","Spectra Works","Novus Labs","Orbit Software","Forge Interactive","Crestline Global","Ironclad Partners","Acme Corp","Globex Corporation","Initech LLC","Soylent Industries","Umbrella Tech"],exports.JOB_TITLES=["Software Engineer","Product Manager","UX/UI Designer","DevOps Specialist","Data Scientist","Engineering Manager","Account Executive","Marketing Director","Content Strategist","Customer Success Lead","Financial Analyst","Operations Lead","HR Generalist","QA Automation Engineer","Solutions Architect","Security Specialist","Chief Technology Officer","VP of Product","Database Administrator","Scrum Master","Technical Writer","Brand Manager","Legal Counsel","Research Scientist","Sales Director"],exports.US_STATES=["California","New York","Texas","Florida","Washington","Illinois","Pennsylvania","Ohio","Georgia","North Carolina","Michigan","New Jersey","Virginia","Colorado","Arizona","Massachusetts","Tennessee","Indiana","Missouri","Maryland","Wisconsin","Minnesota","Oregon","South Carolina","Alabama","Louisiana","Kentucky","Utah"],exports.CURRENCIES=["USD","EUR","GBP","JPY","CAD","AUD","CHF","CNY","INR","SGD","NZD","BRL","SEK","KRW","MXN","ZAR","HKD","NOK","AED","SAR"],exports.COUNTRY_CODES=["US","GB","CA","DE","FR","JP","AU","IN","BR","SG","NL","IT","ES","SE","CH","KR","MX","NZ","ZA","AE","SA","NO","DK","FI","IE","PL","PT","BE","AT","ID"],exports.STATUSES=["active","inactive","pending","completed","cancelled","archived","suspended","draft","processing","approved","rejected"],exports.HEX_COLORS=["#3b82f6","#10b981","#ef4444","#f59e0b","#8b5cf6","#ec4899","#06b6d4","#6366f1","#14b8a6","#f97316","#84cc16","#a855f7","#0ea5e9","#64748b","#d946ef","#1e293b","#047857","#b91c1c","#1d4ed8","#4338ca"],exports.NAMED_COLORS=["Emerald","Indigo","Amber","Rose","Cyan","Violet","Sky","Slate","Teal","Fuchsia","Crimson","Navy","Coral","Bronze","Charcoal","Mint","Lavender","Ruby","Cobalt"];
|
package/dist/data/detector.d.ts
CHANGED
|
@@ -1,30 +1 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { type ColumnGeneratorConfig, type ColumnPlan } from './types';
|
|
3
|
-
export interface OrderingConstraint {
|
|
4
|
-
after?: {
|
|
5
|
-
column: string;
|
|
6
|
-
orEqual: boolean;
|
|
7
|
-
};
|
|
8
|
-
before?: {
|
|
9
|
-
column: string;
|
|
10
|
-
orEqual: boolean;
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
export interface NumericConstraint {
|
|
14
|
-
min?: number;
|
|
15
|
-
max?: number;
|
|
16
|
-
}
|
|
17
|
-
export interface CheckInfo {
|
|
18
|
-
columnAllowed: Map<string, string[]>;
|
|
19
|
-
columnRange: Map<string, NumericConstraint>;
|
|
20
|
-
jsonAllowed: Map<string, Map<string, string[]>>;
|
|
21
|
-
ordering: Map<string, OrderingConstraint>;
|
|
22
|
-
}
|
|
23
|
-
export declare const normName: (s: string) => string;
|
|
24
|
-
export declare function isTimestampName(name: string): boolean;
|
|
25
|
-
export declare function findInMap<T>(map: Map<string, T>, colName: string): T | undefined;
|
|
26
|
-
export declare function extractCheckExprs(sql: string): string[];
|
|
27
|
-
export declare function parseChecks(sql: string | null): CheckInfo;
|
|
28
|
-
export declare function detectPlan(col: ColumnInfo, fk: ForeignKeyInfo | null): ColumnPlan;
|
|
29
|
-
export declare function buildColumnConfigs(info: TableInfoData): ColumnGeneratorConfig[];
|
|
30
|
-
export declare function sanitizeColumnPlan(raw: unknown): ColumnPlan | null;
|
|
1
|
+
import type {ColumnInfo,ForeignKeyInfo,TableInfoData} from '../db/index';import{type ColumnGeneratorConfig,type ColumnPlan} from './types';export interface OrderingConstraint{after?:{column:string;orEqual:boolean;};before?:{column:string;orEqual:boolean;};}export interface NumericConstraint{min?:number;max?:number;}export interface CheckInfo{columnAllowed:Map<string,string[]>;columnRange:Map<string,NumericConstraint>;jsonAllowed:Map<string,Map<string,string[]>>;ordering:Map<string,OrderingConstraint>;}export declare const normName:(s:string)=>string;export declare function isTimestampName(name:string):boolean;export declare function findInMap<T>(map:Map<string,T>,colName:string):T|undefined;export declare function extractCheckExprs(sql:string):string[];export declare function parseChecks(sql:string|null):CheckInfo;export declare function detectPlan(col:ColumnInfo,fk:ForeignKeyInfo|null):ColumnPlan;export declare function buildColumnConfigs(info:TableInfoData):ColumnGeneratorConfig[];export declare function sanitizeColumnPlan(raw:unknown):ColumnPlan|null;
|