@intecoag/inteco-cli 1.11.7 → 1.12.0-beta.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 +12 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +158 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/adbBridge.d.ts +2 -0
- package/dist/modules/adbBridge.d.ts.map +1 -0
- package/dist/modules/adbBridge.js +40 -0
- package/dist/modules/adbBridge.js.map +1 -0
- package/dist/modules/adbIntentSender.d.ts +2 -0
- package/dist/modules/adbIntentSender.d.ts.map +1 -0
- package/dist/modules/adbIntentSender.js +67 -0
- package/dist/modules/adbIntentSender.js.map +1 -0
- package/dist/modules/azureSync.d.ts +4 -0
- package/dist/modules/azureSync.d.ts.map +1 -0
- package/{src → dist}/modules/azureSync.js +50 -131
- package/dist/modules/azureSync.js.map +1 -0
- package/dist/modules/bundleProduct.d.ts +2 -0
- package/dist/modules/bundleProduct.d.ts.map +1 -0
- package/{src → dist}/modules/bundleProduct.js +41 -80
- package/dist/modules/bundleProduct.js.map +1 -0
- package/dist/modules/changelog.d.ts +3 -0
- package/dist/modules/changelog.d.ts.map +1 -0
- package/dist/modules/changelog.js +45 -0
- package/dist/modules/changelog.js.map +1 -0
- package/dist/modules/configMutation.d.ts +2 -0
- package/dist/modules/configMutation.d.ts.map +1 -0
- package/{src → dist}/modules/configMutation.js +54 -101
- package/dist/modules/configMutation.js.map +1 -0
- package/dist/modules/csvMerger.d.ts +2 -0
- package/dist/modules/csvMerger.d.ts.map +1 -0
- package/dist/modules/csvMerger.js +104 -0
- package/dist/modules/csvMerger.js.map +1 -0
- package/dist/modules/deleteDB.d.ts +2 -0
- package/dist/modules/deleteDB.d.ts.map +1 -0
- package/dist/modules/deleteDB.js +75 -0
- package/dist/modules/deleteDB.js.map +1 -0
- package/dist/modules/dumpDB.d.ts +3 -0
- package/dist/modules/dumpDB.d.ts.map +1 -0
- package/{src → dist}/modules/dumpDB.js +64 -89
- package/dist/modules/dumpDB.js.map +1 -0
- package/dist/modules/dumpTableToCSV.d.ts +2 -0
- package/dist/modules/dumpTableToCSV.d.ts.map +1 -0
- package/dist/modules/dumpTableToCSV.js +128 -0
- package/dist/modules/dumpTableToCSV.js.map +1 -0
- package/dist/modules/extdSearch.d.ts +2 -0
- package/dist/modules/extdSearch.d.ts.map +1 -0
- package/{src → dist}/modules/extdSearch.js +60 -60
- package/dist/modules/extdSearch.js.map +1 -0
- package/dist/modules/githubDeploymentKey.d.ts +3 -0
- package/dist/modules/githubDeploymentKey.d.ts.map +1 -0
- package/dist/modules/githubDeploymentKey.js +241 -0
- package/dist/modules/githubDeploymentKey.js.map +1 -0
- package/dist/modules/githubDeploymentKeysList.d.ts +6 -0
- package/dist/modules/githubDeploymentKeysList.d.ts.map +1 -0
- package/dist/modules/githubDeploymentKeysList.js +185 -0
- package/dist/modules/githubDeploymentKeysList.js.map +1 -0
- package/dist/modules/githubSecurityAdvisories.d.ts +3 -0
- package/dist/modules/githubSecurityAdvisories.d.ts.map +1 -0
- package/dist/modules/githubSecurityAdvisories.js +145 -0
- package/dist/modules/githubSecurityAdvisories.js.map +1 -0
- package/dist/modules/graphqlSchemaExport.d.ts +2 -0
- package/dist/modules/graphqlSchemaExport.d.ts.map +1 -0
- package/dist/modules/graphqlSchemaExport.js +59 -0
- package/dist/modules/graphqlSchemaExport.js.map +1 -0
- package/dist/modules/importDB.d.ts +2 -0
- package/dist/modules/importDB.d.ts.map +1 -0
- package/{src → dist}/modules/importDB.js +48 -66
- package/dist/modules/importDB.js.map +1 -0
- package/dist/modules/rewriteConfig.d.ts +3 -0
- package/dist/modules/rewriteConfig.d.ts.map +1 -0
- package/dist/modules/rewriteConfig.js +75 -0
- package/dist/modules/rewriteConfig.js.map +1 -0
- package/dist/modules/setCLIConfig.d.ts +2 -0
- package/dist/modules/setCLIConfig.d.ts.map +1 -0
- package/dist/modules/setCLIConfig.js +29 -0
- package/dist/modules/setCLIConfig.js.map +1 -0
- package/dist/modules/syncConfig.d.ts +2 -0
- package/dist/modules/syncConfig.d.ts.map +1 -0
- package/{src → dist}/modules/syncConfig.js +74 -127
- package/dist/modules/syncConfig.js.map +1 -0
- package/dist/modules/t003Rewrite.d.ts +2 -0
- package/dist/modules/t003Rewrite.d.ts.map +1 -0
- package/dist/modules/t003Rewrite.js +53 -0
- package/dist/modules/t003Rewrite.js.map +1 -0
- package/dist/modules/t009Search.d.ts +2 -0
- package/dist/modules/t009Search.d.ts.map +1 -0
- package/dist/modules/t009Search.js +30 -0
- package/dist/modules/t009Search.js.map +1 -0
- package/{src → dist}/ressources/cmds.json +3 -0
- package/dist/utils/azure/azure.d.ts +24 -0
- package/dist/utils/azure/azure.d.ts.map +1 -0
- package/{src → dist}/utils/azure/azure.js +14 -21
- package/dist/utils/azure/azure.js.map +1 -0
- package/dist/utils/config/config.d.ts +27 -0
- package/dist/utils/config/config.d.ts.map +1 -0
- package/dist/utils/config/config.js +74 -0
- package/dist/utils/config/config.js.map +1 -0
- package/dist/utils/db/DB.d.ts +14 -0
- package/dist/utils/db/DB.d.ts.map +1 -0
- package/dist/utils/db/DB.js +61 -0
- package/dist/utils/db/DB.js.map +1 -0
- package/dist/utils/fs/FS.d.ts +15 -0
- package/dist/utils/fs/FS.d.ts.map +1 -0
- package/{src → dist}/utils/fs/FS.js +31 -45
- package/dist/utils/fs/FS.js.map +1 -0
- package/dist/utils/github/github.d.ts +29 -0
- package/dist/utils/github/github.d.ts.map +1 -0
- package/dist/utils/github/github.js +96 -0
- package/dist/utils/github/github.js.map +1 -0
- package/dist/utils/shell/DatabaseShell.d.ts +77 -0
- package/dist/utils/shell/DatabaseShell.d.ts.map +1 -0
- package/{src → dist}/utils/shell/DatabaseShell.js +73 -87
- package/dist/utils/shell/DatabaseShell.js.map +1 -0
- package/dist/utils/shell/DatabaseShellBuilder.d.ts +67 -0
- package/dist/utils/shell/DatabaseShellBuilder.d.ts.map +1 -0
- package/{src → dist}/utils/shell/DatabaseShellBuilder.js +50 -59
- package/dist/utils/shell/DatabaseShellBuilder.js.map +1 -0
- package/dist/utils/shell/Shell.d.ts +30 -0
- package/dist/utils/shell/Shell.d.ts.map +1 -0
- package/{src → dist}/utils/shell/Shell.js +14 -19
- package/dist/utils/shell/Shell.js.map +1 -0
- package/dist/utils/shell/ShellBuilder.d.ts +60 -0
- package/dist/utils/shell/ShellBuilder.d.ts.map +1 -0
- package/{src → dist}/utils/shell/ShellBuilder.js +23 -44
- package/dist/utils/shell/ShellBuilder.js.map +1 -0
- package/package.json +31 -8
- package/.github/dependabot.yml +0 -28
- package/.github/workflows/publish.yml +0 -31
- package/.husky/commit-msg +0 -1
- package/.vscode/settings.json +0 -6
- package/commitlint.config.mjs +0 -4
- package/src/index.js +0 -130
- package/src/modules/adbBridge.js +0 -52
- package/src/modules/adbIntentSender.js +0 -82
- package/src/modules/changelog.js +0 -60
- package/src/modules/csvMerger.js +0 -118
- package/src/modules/deleteDB.js +0 -84
- package/src/modules/dumpTableToCSV.js +0 -154
- package/src/modules/githubDeploymentKey.js +0 -265
- package/src/modules/githubDeploymentKeysList.js +0 -199
- package/src/modules/githubSecurityAdvisories.js +0 -162
- package/src/modules/graphqlSchemaExport.js +0 -61
- package/src/modules/rewriteConfig.js +0 -93
- package/src/modules/setCLIConfig.js +0 -33
- package/src/modules/t003Rewrite.js +0 -64
- package/src/modules/t009Search.js +0 -34
- package/src/utils/config/config.js +0 -70
- package/src/utils/db/DB.js +0 -54
- package/src/utils/github/github.js +0 -102
- /package/{src → dist}/ressources/wegas_p.ico +0 -0
- /package/{src → dist}/utils/config/default.json +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Shell } from "./Shell.js";
|
|
2
|
+
import { type TableConfig, type TableSource } from "./DatabaseShellBuilder.js";
|
|
3
|
+
export type TableRow = Record<string, unknown> & {
|
|
4
|
+
table: string;
|
|
5
|
+
};
|
|
6
|
+
type EditableColumn = {
|
|
7
|
+
title: string;
|
|
8
|
+
column: string;
|
|
9
|
+
default?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare class DatabaseShell {
|
|
12
|
+
currentTables: string[];
|
|
13
|
+
currentConfig: TableConfig | null;
|
|
14
|
+
db: string | null;
|
|
15
|
+
data: TableRow[];
|
|
16
|
+
tables: TableSource[];
|
|
17
|
+
shell: Shell | null;
|
|
18
|
+
constructor();
|
|
19
|
+
/**
|
|
20
|
+
* Configures the database shell and runs the underlying shell
|
|
21
|
+
*/
|
|
22
|
+
run(): Promise<void>;
|
|
23
|
+
private requireDb;
|
|
24
|
+
/**
|
|
25
|
+
* Searches for a string based on the current shell state and prints the results to the console.
|
|
26
|
+
* @param {string} query The search string
|
|
27
|
+
*/
|
|
28
|
+
executeSearch(query: string): void;
|
|
29
|
+
deleteRow(row: TableRow): Promise<void>;
|
|
30
|
+
insertRow(row: TableRow): Promise<void>;
|
|
31
|
+
updateRow(row: TableRow, whereRow: TableRow): Promise<void>;
|
|
32
|
+
editRow(data: TableRow, columns: EditableColumn[], requiredFields: string[], optionalFields: string[]): Promise<TableRow | null>;
|
|
33
|
+
selectRow(columns: EditableColumn[], requiredColumns: string[]): Promise<TableRow | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Loads the rows from the currently active tables into the shell
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
loadData(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Loads all rows from a table of the currently active database
|
|
41
|
+
* @param {string} table The table name
|
|
42
|
+
* @returns {Promise<any>}
|
|
43
|
+
* @private
|
|
44
|
+
*/
|
|
45
|
+
getTableData(table: string): Promise<Array<Record<string, unknown>>>;
|
|
46
|
+
/**
|
|
47
|
+
* Removes the table name prefix from the individual rows
|
|
48
|
+
* @param {object[]} entries The rows of the table
|
|
49
|
+
* @param {string} tableName The name of the table where the data is from
|
|
50
|
+
* @returns {object[]}
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
cleanData(entries: Array<Record<string, unknown>>, tableName: string): TableRow[];
|
|
54
|
+
/**
|
|
55
|
+
* Executes a query on the currently loaded table using fuzzysearch
|
|
56
|
+
* @param {string} query The search query
|
|
57
|
+
* @returns {object[]}
|
|
58
|
+
* @private
|
|
59
|
+
*/
|
|
60
|
+
fuzzySearch(query: string): Array<TableRow & {
|
|
61
|
+
score?: number;
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Renders a table in the console using the currently active config
|
|
65
|
+
* @param {object[]} tableData The table data to render
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
renderTable(tableData: Array<TableRow & {
|
|
69
|
+
score?: number;
|
|
70
|
+
}>): void;
|
|
71
|
+
/**
|
|
72
|
+
* Prompts the user for the database and search type
|
|
73
|
+
*/
|
|
74
|
+
configure(): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=DatabaseShell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseShell.d.ts","sourceRoot":"","sources":["../../../src/utils/shell/DatabaseShell.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAMnC,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE/E,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACnE,KAAK,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,qBAAa,aAAa;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;;IA2CpB;;OAEG;IACG,GAAG;IAQT,OAAO,CAAC,SAAS;IAQjB;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK5B,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAuBhI,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAyC/F;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B;;;;;OAKG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAK1E;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE;IAajF;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAchE;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAalE;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAwBnC"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { Shell } from "./shell.js";
|
|
3
2
|
import { DB } from "../db/DB.js";
|
|
4
3
|
import fuzzysort from "fuzzysort";
|
|
5
4
|
import CliTable3 from "cli-table3";
|
|
6
5
|
import prompts from "prompts";
|
|
7
|
-
import { TableConfig } from "./DatabaseShellBuilder.js";
|
|
8
|
-
|
|
9
6
|
export class DatabaseShell {
|
|
10
|
-
|
|
7
|
+
currentTables;
|
|
8
|
+
currentConfig;
|
|
9
|
+
db;
|
|
10
|
+
data;
|
|
11
|
+
tables;
|
|
12
|
+
shell;
|
|
11
13
|
constructor() {
|
|
12
14
|
/**
|
|
13
15
|
* The currently active tables to load the data from
|
|
@@ -15,48 +17,50 @@ export class DatabaseShell {
|
|
|
15
17
|
* @private
|
|
16
18
|
*/
|
|
17
19
|
this.currentTables = [];
|
|
18
|
-
|
|
19
20
|
/**
|
|
20
21
|
* The currently active config
|
|
21
22
|
* @type {TableConfig}
|
|
22
23
|
*/
|
|
23
24
|
this.currentConfig = null;
|
|
24
|
-
|
|
25
25
|
/**
|
|
26
26
|
* The active database
|
|
27
27
|
* @type {string}
|
|
28
28
|
* @private
|
|
29
29
|
*/
|
|
30
30
|
this.db = null;
|
|
31
|
-
|
|
32
31
|
/**
|
|
33
32
|
* The cached data of the active table
|
|
34
33
|
* @type {object[]}
|
|
35
34
|
* @private
|
|
36
35
|
*/
|
|
37
36
|
this.data = [];
|
|
38
|
-
|
|
39
37
|
/**
|
|
40
38
|
* The tables the user can select to use
|
|
41
39
|
* @type {object[]}
|
|
42
40
|
*/
|
|
43
41
|
this.tables = [];
|
|
44
|
-
|
|
45
42
|
/**
|
|
46
43
|
* The underlying shell to handle user input
|
|
47
44
|
* @type {Shell}
|
|
48
45
|
*/
|
|
49
46
|
this.shell = null;
|
|
50
47
|
}
|
|
51
|
-
|
|
52
48
|
/**
|
|
53
49
|
* Configures the database shell and runs the underlying shell
|
|
54
50
|
*/
|
|
55
51
|
async run() {
|
|
56
52
|
await this.configure();
|
|
53
|
+
if (!this.shell) {
|
|
54
|
+
throw new Error("Shell is not initialized");
|
|
55
|
+
}
|
|
57
56
|
await this.shell.run();
|
|
58
57
|
}
|
|
59
|
-
|
|
58
|
+
requireDb() {
|
|
59
|
+
if (!this.db) {
|
|
60
|
+
throw new Error("Database is not configured");
|
|
61
|
+
}
|
|
62
|
+
return this.db;
|
|
63
|
+
}
|
|
60
64
|
/**
|
|
61
65
|
* Searches for a string based on the current shell state and prints the results to the console.
|
|
62
66
|
* @param {string} query The search string
|
|
@@ -65,111 +69,95 @@ export class DatabaseShell {
|
|
|
65
69
|
const results = this.fuzzySearch(query);
|
|
66
70
|
this.renderTable(results);
|
|
67
71
|
}
|
|
68
|
-
|
|
69
72
|
async deleteRow(row) {
|
|
70
73
|
const table = row.table;
|
|
71
|
-
const where = Object.entries(row).filter(([k
|
|
74
|
+
const where = Object.entries(row).filter(([k]) => k !== "table").map(([k, v]) => `\`${table}_${k}\`='${String(v).replaceAll("'", "\\'")}'`).join(' AND ');
|
|
72
75
|
const sql = `DELETE FROM \`${table}\` WHERE ${where}`;
|
|
73
|
-
await DB.executeQueryOnDB(sql, this.
|
|
76
|
+
await DB.executeQueryOnDB(sql, this.requireDb());
|
|
74
77
|
await this.loadData();
|
|
75
78
|
}
|
|
76
|
-
|
|
77
79
|
async insertRow(row) {
|
|
78
80
|
const table = row.table;
|
|
79
|
-
const kvPairs = Object.entries(row).filter(([k
|
|
80
|
-
const sql = `INSERT INTO \`${table}\` (${kvPairs.map(([k
|
|
81
|
-
await DB.executeQueryOnDB(sql, this.
|
|
81
|
+
const kvPairs = Object.entries(row).filter(([k]) => k !== "table");
|
|
82
|
+
const sql = `INSERT INTO \`${table}\` (${kvPairs.map(([k]) => `\`${table}_${k}\``).join(', ')}) VALUES (${kvPairs.map(([, v]) => `'${String(v).replaceAll("'", "\\'")}'`)});`;
|
|
83
|
+
await DB.executeQueryOnDB(sql, this.requireDb());
|
|
82
84
|
await this.loadData();
|
|
83
85
|
}
|
|
84
|
-
|
|
85
86
|
async updateRow(row, whereRow) {
|
|
86
87
|
const table = whereRow.table;
|
|
87
|
-
const set = Object.entries(row).filter(([k
|
|
88
|
-
const where = Object.entries(whereRow).filter(([k
|
|
88
|
+
const set = Object.entries(row).filter(([k]) => k !== "table").map(([k, v]) => `\`${table}_${k}\`='${String(v).replaceAll("'", "\\'")}'`).join(', ');
|
|
89
|
+
const where = Object.entries(whereRow).filter(([k]) => k !== "table").map(([k, v]) => `\`${table}_${k}\`='${String(v).replaceAll("'", "\\'")}'`).join(' AND ');
|
|
89
90
|
const sql = `UPDATE \`${table}\` SET ${set} WHERE ${where};`;
|
|
90
|
-
await DB.executeQueryOnDB(sql, this.
|
|
91
|
+
await DB.executeQueryOnDB(sql, this.requireDb());
|
|
91
92
|
await this.loadData();
|
|
92
93
|
}
|
|
93
|
-
|
|
94
94
|
async editRow(data, columns, requiredFields, optionalFields) {
|
|
95
95
|
let cancelled = false;
|
|
96
96
|
const questions = [...requiredFields, ...optionalFields]
|
|
97
|
-
.filter(f => Object.hasOwn(data, f))
|
|
98
|
-
.map(f => ({
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
97
|
+
.filter((f) => Object.hasOwn(data, f))
|
|
98
|
+
.map((f) => ({
|
|
99
|
+
type: 'text',
|
|
100
|
+
message: columns.find((c) => c.column === f)?.title ?? f,
|
|
101
|
+
name: f,
|
|
102
|
+
initial: String(columns.find((c) => c.column === f)?.default ?? data[f] ?? "")
|
|
103
|
+
}));
|
|
104
104
|
const responses = await prompts(questions, { onCancel: () => { cancelled = true; return false; } });
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
if (cancelled)
|
|
106
|
+
return null;
|
|
108
107
|
const newData = {
|
|
109
108
|
...data,
|
|
110
109
|
...responses
|
|
111
110
|
};
|
|
112
|
-
|
|
113
|
-
|
|
114
111
|
return newData;
|
|
115
112
|
}
|
|
116
|
-
|
|
117
113
|
async selectRow(columns, requiredColumns) {
|
|
118
114
|
let cancelled = false;
|
|
119
|
-
const questions = requiredColumns.map(f => ({
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
115
|
+
const questions = requiredColumns.map((f) => ({
|
|
116
|
+
type: 'text',
|
|
117
|
+
message: columns.find((c) => c.column === f)?.title ?? f,
|
|
118
|
+
name: f,
|
|
119
|
+
initial: columns.find((c) => c.column === f)?.default
|
|
120
|
+
}));
|
|
126
121
|
const responses = await prompts(questions, { onCancel: () => { cancelled = true; return false; } });
|
|
127
|
-
if(cancelled)
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
if(results.length == 0) {
|
|
122
|
+
if (cancelled)
|
|
123
|
+
return null;
|
|
124
|
+
const results = this.data.filter((d) => Object.entries(responses).every(([k, v]) => d[k] == v));
|
|
125
|
+
if (results.length == 0) {
|
|
131
126
|
console.log(chalk.red("No results found."));
|
|
132
127
|
return null;
|
|
133
128
|
}
|
|
134
|
-
|
|
135
|
-
if(results.length > 1) {
|
|
129
|
+
if (results.length > 1) {
|
|
136
130
|
console.log(chalk.red("Multiple results found. Please select one from the list..."));
|
|
137
131
|
const selection = await prompts({
|
|
138
132
|
type: 'autocomplete',
|
|
139
|
-
choices: results.map(r => ({
|
|
133
|
+
choices: results.map((r) => ({
|
|
140
134
|
title: Object.entries(r)
|
|
141
|
-
.filter(([k
|
|
142
|
-
.map(([k, v]) => `${k === "table" ? "Table" : columns.find(c => c.column === k)
|
|
135
|
+
.filter(([k]) => k === "table" || columns.some((c) => c.column === k))
|
|
136
|
+
.map(([k, v]) => `${k === "table" ? "Table" : columns.find((c) => c.column === k)?.title ?? k}: ${v}`)
|
|
143
137
|
.join(", "),
|
|
144
138
|
value: r
|
|
145
139
|
})),
|
|
146
140
|
message: "Select Row",
|
|
147
141
|
name: 'result'
|
|
148
142
|
}, { onCancel: () => { cancelled = true; return false; } });
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
return selection.result;
|
|
143
|
+
if (cancelled)
|
|
144
|
+
return null;
|
|
145
|
+
return selection.result ?? null;
|
|
153
146
|
}
|
|
154
|
-
|
|
155
|
-
return results[0];
|
|
147
|
+
return results[0] ?? null;
|
|
156
148
|
}
|
|
157
|
-
|
|
158
149
|
/**
|
|
159
150
|
* Loads the rows from the currently active tables into the shell
|
|
160
151
|
* @private
|
|
161
152
|
*/
|
|
162
153
|
async loadData() {
|
|
163
154
|
const data = [];
|
|
164
|
-
|
|
165
|
-
for(let i = 0; i < this.currentTables.length; i++) {
|
|
155
|
+
for (let i = 0; i < this.currentTables.length; i++) {
|
|
166
156
|
const tableData = await this.getTableData(this.currentTables[i]);
|
|
167
157
|
data.push(...this.cleanData(tableData, this.currentTables[i]));
|
|
168
158
|
}
|
|
169
|
-
|
|
170
159
|
this.data = data;
|
|
171
160
|
}
|
|
172
|
-
|
|
173
161
|
/**
|
|
174
162
|
* Loads all rows from a table of the currently active database
|
|
175
163
|
* @param {string} table The table name
|
|
@@ -178,9 +166,8 @@ export class DatabaseShell {
|
|
|
178
166
|
*/
|
|
179
167
|
async getTableData(table) {
|
|
180
168
|
const query = `SELECT * FROM ${table};`;
|
|
181
|
-
return await DB.executeQueryOnDB(query, this.
|
|
169
|
+
return await DB.executeQueryOnDB(query, this.requireDb());
|
|
182
170
|
}
|
|
183
|
-
|
|
184
171
|
/**
|
|
185
172
|
* Removes the table name prefix from the individual rows
|
|
186
173
|
* @param {object[]} entries The rows of the table
|
|
@@ -189,18 +176,14 @@ export class DatabaseShell {
|
|
|
189
176
|
* @private
|
|
190
177
|
*/
|
|
191
178
|
cleanData(entries, tableName) {
|
|
192
|
-
return entries.map(entry => {
|
|
193
|
-
const stripped = Object.fromEntries(
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
])
|
|
198
|
-
);
|
|
199
|
-
|
|
179
|
+
return entries.map((entry) => {
|
|
180
|
+
const stripped = Object.fromEntries(Object.entries(entry).map(([k, v]) => [
|
|
181
|
+
k.replace(new RegExp(`^${tableName}_`), ''),
|
|
182
|
+
v
|
|
183
|
+
]));
|
|
200
184
|
return { ...stripped, table: tableName };
|
|
201
185
|
});
|
|
202
186
|
}
|
|
203
|
-
|
|
204
187
|
/**
|
|
205
188
|
* Executes a query on the currently loaded table using fuzzysearch
|
|
206
189
|
* @param {string} query The search query
|
|
@@ -208,53 +191,56 @@ export class DatabaseShell {
|
|
|
208
191
|
* @private
|
|
209
192
|
*/
|
|
210
193
|
fuzzySearch(query) {
|
|
211
|
-
if(!query)
|
|
212
|
-
|
|
194
|
+
if (!query)
|
|
195
|
+
return this.data.slice(0, 1000);
|
|
196
|
+
if (!this.currentConfig) {
|
|
197
|
+
return this.data.slice(0, 1000);
|
|
198
|
+
}
|
|
213
199
|
return fuzzysort.go(query, this.data, {
|
|
214
200
|
keys: this.currentConfig.searchKeys,
|
|
215
201
|
limit: 1000,
|
|
216
202
|
threshold: this.currentConfig.threshold
|
|
217
|
-
}).map(r => ({ ...r.obj, score: r.score }));
|
|
203
|
+
}).map((r) => ({ ...r.obj, score: r.score }));
|
|
218
204
|
}
|
|
219
|
-
|
|
220
205
|
/**
|
|
221
206
|
* Renders a table in the console using the currently active config
|
|
222
207
|
* @param {object[]} tableData The table data to render
|
|
223
208
|
* @private
|
|
224
209
|
*/
|
|
225
210
|
renderTable(tableData) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
211
|
+
if (!this.currentConfig) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const currentConfig = this.currentConfig;
|
|
215
|
+
const table = new CliTable3({ head: currentConfig.tableHeader });
|
|
216
|
+
tableData.forEach((row) => {
|
|
217
|
+
table.push(currentConfig.tableFormatter(row));
|
|
229
218
|
});
|
|
230
219
|
console.log(table.toString());
|
|
231
220
|
}
|
|
232
|
-
|
|
233
221
|
/**
|
|
234
222
|
* Prompts the user for the database and search type
|
|
235
223
|
*/
|
|
236
224
|
async configure() {
|
|
237
225
|
console.log();
|
|
238
226
|
const databaseNames = await DB.getDatabaseNames();
|
|
239
|
-
|
|
240
227
|
const results = await prompts([
|
|
241
228
|
{
|
|
242
229
|
type: 'autocomplete',
|
|
243
230
|
name: 'dbName',
|
|
244
231
|
message: 'DB-Name?',
|
|
245
|
-
choices: databaseNames.map(db => ({ title: db.name }))
|
|
232
|
+
choices: databaseNames.map((db) => ({ title: db.name }))
|
|
246
233
|
},
|
|
247
234
|
{
|
|
248
235
|
type: 'select',
|
|
249
236
|
name: 'tables',
|
|
250
237
|
message: 'Search-Type?',
|
|
251
|
-
choices: this.tables.map(t => ({ title: t.name, value: t.tables }))
|
|
238
|
+
choices: this.tables.map((t) => ({ title: t.name, value: t.tables }))
|
|
252
239
|
}
|
|
253
240
|
]);
|
|
254
|
-
|
|
255
241
|
this.db = results.dbName;
|
|
256
242
|
this.currentTables = results.tables;
|
|
257
|
-
|
|
258
243
|
await this.loadData();
|
|
259
244
|
}
|
|
260
245
|
}
|
|
246
|
+
//# sourceMappingURL=DatabaseShell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseShell.js","sourceRoot":"","sources":["../../../src/utils/shell/DatabaseShell.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { DatabaseShell } from "./DatabaseShell.js";
|
|
2
|
+
export type TableSource = {
|
|
3
|
+
name: string;
|
|
4
|
+
tables: string[];
|
|
5
|
+
};
|
|
6
|
+
export type EditColumn = {
|
|
7
|
+
title: string;
|
|
8
|
+
column: string;
|
|
9
|
+
default?: string;
|
|
10
|
+
};
|
|
11
|
+
type EditTools = {
|
|
12
|
+
columns: EditColumn[];
|
|
13
|
+
requiredSelectors: string[];
|
|
14
|
+
requiredValues: string[];
|
|
15
|
+
optionalValues: string[];
|
|
16
|
+
};
|
|
17
|
+
export type TableFormatterRow = Record<string, unknown>;
|
|
18
|
+
export declare class DatabaseShellBuilder {
|
|
19
|
+
configs: TableConfig[];
|
|
20
|
+
tables: TableSource[];
|
|
21
|
+
editTools: EditTools | null;
|
|
22
|
+
constructor();
|
|
23
|
+
/**
|
|
24
|
+
* Adds a table config to the shell
|
|
25
|
+
* @param {TableConfig} tableConfig The config to add
|
|
26
|
+
* @returns {DatabaseShellBuilder}
|
|
27
|
+
*/
|
|
28
|
+
withConfig(tableConfig: TableConfig): DatabaseShellBuilder;
|
|
29
|
+
/**
|
|
30
|
+
* Adds a source table to the shell
|
|
31
|
+
* @param {string} name The name displayed in the selection
|
|
32
|
+
* @param {string[]} tables The names of the tables where to load the data from
|
|
33
|
+
* @returns {DatabaseShellBuilder}
|
|
34
|
+
*/
|
|
35
|
+
withTables(name: string, tables: string[]): DatabaseShellBuilder;
|
|
36
|
+
/**
|
|
37
|
+
* Enables edit tools with the specified selectors and values
|
|
38
|
+
* @param {{title: string, column: string, default: string}[]} columns The colums that are used in the editor
|
|
39
|
+
* @param {string[]} requiredSelectors The columns that are required to be filled in to select an entry to edit
|
|
40
|
+
* @param {string[]} requiredValues The columns that are required to be filled to update an entry
|
|
41
|
+
* @param {string[]} optionalValues The columns that can be optionally updated
|
|
42
|
+
* @returns {DatabaseShellBuilder}
|
|
43
|
+
*/
|
|
44
|
+
withEditTools(columns: EditColumn[], requiredSelectors: string[], requiredValues: string[], optionalValues: string[]): DatabaseShellBuilder;
|
|
45
|
+
/**
|
|
46
|
+
* Builds the Shell
|
|
47
|
+
* @returns {DatabaseShell}
|
|
48
|
+
*/
|
|
49
|
+
build(): DatabaseShell;
|
|
50
|
+
}
|
|
51
|
+
export declare class TableConfig {
|
|
52
|
+
name: string;
|
|
53
|
+
cmdShortcut: string;
|
|
54
|
+
searchKeys: string[];
|
|
55
|
+
threshold: number;
|
|
56
|
+
tableHeader: string[];
|
|
57
|
+
tableFormatter: (row: TableFormatterRow) => Array<string | number | boolean | null | undefined>;
|
|
58
|
+
constructor();
|
|
59
|
+
withName(name: string): TableConfig;
|
|
60
|
+
withShortcut(shortcut: string): TableConfig;
|
|
61
|
+
withSearchKeys(keys: string[]): TableConfig;
|
|
62
|
+
withThreshold(threshold: number): TableConfig;
|
|
63
|
+
withHeader(tableHeader: string[]): TableConfig;
|
|
64
|
+
withFormatter(formatter: (row: TableFormatterRow) => Array<string | number | boolean | null | undefined>): TableConfig;
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=DatabaseShellBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseShellBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/shell/DatabaseShellBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAiB,MAAM,oBAAoB,CAAC;AAElE,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,SAAS,GAAG;IACb,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD,qBAAa,oBAAoB;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;;IAoB5B;;;;OAIG;IACH,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,oBAAoB;IAK1D;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB;IAKhE;;;;;;;OAOG;IACH,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,oBAAoB;IAW3I;;;OAGG;IACH,KAAK,IAAI,aAAa;CAgEzB;AAED,qBAAa,WAAW;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;;IAWhG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAKnC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAK3C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW;IAK3C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAK7C,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW;IAK9C,aAAa,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,WAAW;CAIzH"}
|