@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.
Files changed (152) hide show
  1. package/README.md +12 -1
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +158 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/modules/adbBridge.d.ts +2 -0
  7. package/dist/modules/adbBridge.d.ts.map +1 -0
  8. package/dist/modules/adbBridge.js +40 -0
  9. package/dist/modules/adbBridge.js.map +1 -0
  10. package/dist/modules/adbIntentSender.d.ts +2 -0
  11. package/dist/modules/adbIntentSender.d.ts.map +1 -0
  12. package/dist/modules/adbIntentSender.js +67 -0
  13. package/dist/modules/adbIntentSender.js.map +1 -0
  14. package/dist/modules/azureSync.d.ts +4 -0
  15. package/dist/modules/azureSync.d.ts.map +1 -0
  16. package/{src → dist}/modules/azureSync.js +50 -131
  17. package/dist/modules/azureSync.js.map +1 -0
  18. package/dist/modules/bundleProduct.d.ts +2 -0
  19. package/dist/modules/bundleProduct.d.ts.map +1 -0
  20. package/{src → dist}/modules/bundleProduct.js +41 -80
  21. package/dist/modules/bundleProduct.js.map +1 -0
  22. package/dist/modules/changelog.d.ts +3 -0
  23. package/dist/modules/changelog.d.ts.map +1 -0
  24. package/dist/modules/changelog.js +45 -0
  25. package/dist/modules/changelog.js.map +1 -0
  26. package/dist/modules/configMutation.d.ts +2 -0
  27. package/dist/modules/configMutation.d.ts.map +1 -0
  28. package/{src → dist}/modules/configMutation.js +54 -101
  29. package/dist/modules/configMutation.js.map +1 -0
  30. package/dist/modules/csvMerger.d.ts +2 -0
  31. package/dist/modules/csvMerger.d.ts.map +1 -0
  32. package/dist/modules/csvMerger.js +104 -0
  33. package/dist/modules/csvMerger.js.map +1 -0
  34. package/dist/modules/deleteDB.d.ts +2 -0
  35. package/dist/modules/deleteDB.d.ts.map +1 -0
  36. package/dist/modules/deleteDB.js +75 -0
  37. package/dist/modules/deleteDB.js.map +1 -0
  38. package/dist/modules/dumpDB.d.ts +3 -0
  39. package/dist/modules/dumpDB.d.ts.map +1 -0
  40. package/{src → dist}/modules/dumpDB.js +64 -89
  41. package/dist/modules/dumpDB.js.map +1 -0
  42. package/dist/modules/dumpTableToCSV.d.ts +2 -0
  43. package/dist/modules/dumpTableToCSV.d.ts.map +1 -0
  44. package/dist/modules/dumpTableToCSV.js +128 -0
  45. package/dist/modules/dumpTableToCSV.js.map +1 -0
  46. package/dist/modules/extdSearch.d.ts +2 -0
  47. package/dist/modules/extdSearch.d.ts.map +1 -0
  48. package/{src → dist}/modules/extdSearch.js +60 -60
  49. package/dist/modules/extdSearch.js.map +1 -0
  50. package/dist/modules/githubDeploymentKey.d.ts +3 -0
  51. package/dist/modules/githubDeploymentKey.d.ts.map +1 -0
  52. package/dist/modules/githubDeploymentKey.js +241 -0
  53. package/dist/modules/githubDeploymentKey.js.map +1 -0
  54. package/dist/modules/githubDeploymentKeysList.d.ts +6 -0
  55. package/dist/modules/githubDeploymentKeysList.d.ts.map +1 -0
  56. package/dist/modules/githubDeploymentKeysList.js +185 -0
  57. package/dist/modules/githubDeploymentKeysList.js.map +1 -0
  58. package/dist/modules/githubSecurityAdvisories.d.ts +3 -0
  59. package/dist/modules/githubSecurityAdvisories.d.ts.map +1 -0
  60. package/dist/modules/githubSecurityAdvisories.js +145 -0
  61. package/dist/modules/githubSecurityAdvisories.js.map +1 -0
  62. package/dist/modules/graphqlSchemaExport.d.ts +2 -0
  63. package/dist/modules/graphqlSchemaExport.d.ts.map +1 -0
  64. package/dist/modules/graphqlSchemaExport.js +59 -0
  65. package/dist/modules/graphqlSchemaExport.js.map +1 -0
  66. package/dist/modules/importDB.d.ts +2 -0
  67. package/dist/modules/importDB.d.ts.map +1 -0
  68. package/{src → dist}/modules/importDB.js +48 -66
  69. package/dist/modules/importDB.js.map +1 -0
  70. package/dist/modules/rewriteConfig.d.ts +3 -0
  71. package/dist/modules/rewriteConfig.d.ts.map +1 -0
  72. package/dist/modules/rewriteConfig.js +75 -0
  73. package/dist/modules/rewriteConfig.js.map +1 -0
  74. package/dist/modules/setCLIConfig.d.ts +2 -0
  75. package/dist/modules/setCLIConfig.d.ts.map +1 -0
  76. package/dist/modules/setCLIConfig.js +29 -0
  77. package/dist/modules/setCLIConfig.js.map +1 -0
  78. package/dist/modules/syncConfig.d.ts +2 -0
  79. package/dist/modules/syncConfig.d.ts.map +1 -0
  80. package/{src → dist}/modules/syncConfig.js +74 -127
  81. package/dist/modules/syncConfig.js.map +1 -0
  82. package/dist/modules/t003Rewrite.d.ts +2 -0
  83. package/dist/modules/t003Rewrite.d.ts.map +1 -0
  84. package/dist/modules/t003Rewrite.js +53 -0
  85. package/dist/modules/t003Rewrite.js.map +1 -0
  86. package/dist/modules/t009Search.d.ts +2 -0
  87. package/dist/modules/t009Search.d.ts.map +1 -0
  88. package/dist/modules/t009Search.js +30 -0
  89. package/dist/modules/t009Search.js.map +1 -0
  90. package/{src → dist}/ressources/cmds.json +3 -0
  91. package/dist/utils/azure/azure.d.ts +24 -0
  92. package/dist/utils/azure/azure.d.ts.map +1 -0
  93. package/{src → dist}/utils/azure/azure.js +14 -21
  94. package/dist/utils/azure/azure.js.map +1 -0
  95. package/dist/utils/config/config.d.ts +27 -0
  96. package/dist/utils/config/config.d.ts.map +1 -0
  97. package/dist/utils/config/config.js +74 -0
  98. package/dist/utils/config/config.js.map +1 -0
  99. package/dist/utils/db/DB.d.ts +14 -0
  100. package/dist/utils/db/DB.d.ts.map +1 -0
  101. package/dist/utils/db/DB.js +61 -0
  102. package/dist/utils/db/DB.js.map +1 -0
  103. package/dist/utils/fs/FS.d.ts +15 -0
  104. package/dist/utils/fs/FS.d.ts.map +1 -0
  105. package/{src → dist}/utils/fs/FS.js +31 -45
  106. package/dist/utils/fs/FS.js.map +1 -0
  107. package/dist/utils/github/github.d.ts +29 -0
  108. package/dist/utils/github/github.d.ts.map +1 -0
  109. package/dist/utils/github/github.js +96 -0
  110. package/dist/utils/github/github.js.map +1 -0
  111. package/dist/utils/shell/DatabaseShell.d.ts +77 -0
  112. package/dist/utils/shell/DatabaseShell.d.ts.map +1 -0
  113. package/{src → dist}/utils/shell/DatabaseShell.js +73 -87
  114. package/dist/utils/shell/DatabaseShell.js.map +1 -0
  115. package/dist/utils/shell/DatabaseShellBuilder.d.ts +67 -0
  116. package/dist/utils/shell/DatabaseShellBuilder.d.ts.map +1 -0
  117. package/{src → dist}/utils/shell/DatabaseShellBuilder.js +50 -59
  118. package/dist/utils/shell/DatabaseShellBuilder.js.map +1 -0
  119. package/dist/utils/shell/Shell.d.ts +30 -0
  120. package/dist/utils/shell/Shell.d.ts.map +1 -0
  121. package/{src → dist}/utils/shell/Shell.js +14 -19
  122. package/dist/utils/shell/Shell.js.map +1 -0
  123. package/dist/utils/shell/ShellBuilder.d.ts +60 -0
  124. package/dist/utils/shell/ShellBuilder.d.ts.map +1 -0
  125. package/{src → dist}/utils/shell/ShellBuilder.js +23 -44
  126. package/dist/utils/shell/ShellBuilder.js.map +1 -0
  127. package/package.json +31 -8
  128. package/.github/dependabot.yml +0 -28
  129. package/.github/workflows/publish.yml +0 -31
  130. package/.husky/commit-msg +0 -1
  131. package/.vscode/settings.json +0 -6
  132. package/commitlint.config.mjs +0 -4
  133. package/src/index.js +0 -130
  134. package/src/modules/adbBridge.js +0 -52
  135. package/src/modules/adbIntentSender.js +0 -82
  136. package/src/modules/changelog.js +0 -60
  137. package/src/modules/csvMerger.js +0 -118
  138. package/src/modules/deleteDB.js +0 -84
  139. package/src/modules/dumpTableToCSV.js +0 -154
  140. package/src/modules/githubDeploymentKey.js +0 -265
  141. package/src/modules/githubDeploymentKeysList.js +0 -199
  142. package/src/modules/githubSecurityAdvisories.js +0 -162
  143. package/src/modules/graphqlSchemaExport.js +0 -61
  144. package/src/modules/rewriteConfig.js +0 -93
  145. package/src/modules/setCLIConfig.js +0 -33
  146. package/src/modules/t003Rewrite.js +0 -64
  147. package/src/modules/t009Search.js +0 -34
  148. package/src/utils/config/config.js +0 -70
  149. package/src/utils/db/DB.js +0 -54
  150. package/src/utils/github/github.js +0 -102
  151. /package/{src → dist}/ressources/wegas_p.ico +0 -0
  152. /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, v]) => k !== "table").map(([k, v]) => `\`${table}_${k}\`='${String(v).replaceAll("'", "\\'")}'`).join(' AND ');
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.db);
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, v]) => k !== "table");
80
- const sql = `INSERT INTO \`${table}\` (${kvPairs.map(([k, v]) => `\`${table}_${k}\``).join(', ')}) VALUES (${kvPairs.map(([k, v]) => `'${String(v).replaceAll("'", "\\'")}'`)});`;
81
- await DB.executeQueryOnDB(sql, this.db);
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, v]) => k !== "table").map(([k, v]) => `\`${table}_${k}\`='${String(v).replaceAll("'", "\\'")}'`).join(', ');
88
- const where = Object.entries(whereRow).filter(([k, v]) => k !== "table").map(([k, v]) => `\`${table}_${k}\`='${String(v).replaceAll("'", "\\'")}'`).join(' AND ');
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.db);
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
- type: 'text',
100
- message: columns.find(c => c.column === f).title,
101
- name: f,
102
- initial: columns.find(c => c.column === f).default ?? data[f]}));
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
- if(cancelled) return null;
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
- type: 'text',
121
- message: columns.find(c => c.column === f).title,
122
- name: f,
123
- initial: columns.find(c => c.column === f).default
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) return null;
128
- const results = this.data.filter(d => Object.entries(responses).every(([k, v]) => d[k] == v));
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, v]) => k === "table" || columns.some(c => c.column === k))
142
- .map(([k, v]) => `${k === "table" ? "Table" : columns.find(c => c.column === k).title}: ${v}`)
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
- if(cancelled) return null;
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.db);
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
- Object.entries(entry).map(([k, v]) => [
195
- k.replace(new RegExp(`^${tableName}_`), ''),
196
- v
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) return this.data.slice(0, 1000);
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
- const table = new CliTable3({ head: this.currentConfig.tableHeader });
227
- tableData.forEach(row => {
228
- table.push(this.currentConfig.tableFormatter(row));
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"}