@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
package/package.json CHANGED
@@ -1,12 +1,17 @@
1
1
  {
2
2
  "name": "@intecoag/inteco-cli",
3
- "version": "1.11.7",
3
+ "version": "1.12.0-beta.1",
4
4
  "description": "CLI-Tools for Inteco",
5
- "main": "src/index.js",
5
+ "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "scripts": {
8
- "start": "node src/index.js",
9
- "prepare": "husky"
8
+ "clean": "node -e \"import('node:fs').then(fs=>fs.rmSync('dist',{recursive:true,force:true}))\"",
9
+ "build": "npm run clean && tsc && node scripts/copy-assets.mjs",
10
+ "typecheck": "tsc --noEmit",
11
+ "start": "node dist/index.js",
12
+ "dev": "tsx src/index.ts",
13
+ "prepare": "husky",
14
+ "prepublishOnly": "npm run build"
10
15
  },
11
16
  "author": "ah1",
12
17
  "license": "ISC",
@@ -25,7 +30,7 @@
25
30
  "fuzzysort": "^3.1.0",
26
31
  "graphql": "^17.0.1",
27
32
  "meow": "^14.1.0",
28
- "mysql-await": "^2.1.8",
33
+ "mysql2": "^3.22.5",
29
34
  "n-readlines": "^3.4.0",
30
35
  "node-7z": "^3.0.0",
31
36
  "ora": "^9.4.0",
@@ -36,17 +41,35 @@
36
41
  "yaml": "^2.9.0"
37
42
  },
38
43
  "bin": {
39
- "inteco": "src/index.js"
44
+ "inteco": "dist/index.js"
40
45
  },
46
+ "files": [
47
+ "dist",
48
+ "README.md"
49
+ ],
41
50
  "devDependencies": {
42
51
  "@commitlint/cli": "^21.0.2",
43
52
  "@commitlint/config-conventional": "^21.0.2",
53
+ "@types/node": "^24.1.0",
54
+ "@types/node-7z": "^2.1.11",
55
+ "@types/prompts": "^2.4.9",
56
+ "@types/properties-parser": "^0.3.3",
57
+ "@types/update-notifier": "^6.0.8",
44
58
  "husky": "^9.1.7",
45
- "semantic-release": "^25.0.5"
59
+ "semantic-release": "^25.0.5",
60
+ "tsx": "^4.20.6",
61
+ "typescript": "^5.9.2"
62
+ },
63
+ "engines": {
64
+ "node": ">=22"
46
65
  },
47
66
  "release": {
48
67
  "branches": [
49
- "main"
68
+ "main",
69
+ {
70
+ "name": "beta",
71
+ "prerelease": true
72
+ }
50
73
  ]
51
74
  }
52
75
  }
@@ -1,28 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: "github-actions"
4
- directory: "/"
5
- schedule:
6
- interval: "weekly"
7
- day: "monday"
8
- time: "03:00"
9
- timezone: "UTC"
10
- - package-ecosystem: "npm"
11
- directory: "/"
12
- versioning-strategy: increase
13
- schedule:
14
- interval: "weekly"
15
- day: "monday"
16
- time: "03:00"
17
- timezone: "UTC"
18
- labels:
19
- - "dependencies"
20
- groups:
21
- node-modules:
22
- patterns:
23
- - "*"
24
- open-pull-requests-limit: 10
25
- commit-message:
26
- prefix: fix
27
- prefix-development: chore
28
- include: scope
@@ -1,31 +0,0 @@
1
- name: Publish Package Inteco CLI
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
-
8
- permissions:
9
- id-token: write # Required for OIDC
10
- contents: write # To create releases
11
-
12
- jobs:
13
- publish:
14
- runs-on: ubuntu-latest
15
- steps:
16
- - name: Checkout
17
- uses: actions/checkout@v7
18
- with:
19
- fetch-depth: 0
20
- - name: Setup Node.js
21
- uses: actions/setup-node@v6
22
- with:
23
- node-version: "lts/*"
24
- - name: Install dependencies
25
- run: npm clean-install
26
- - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies
27
- run: npm audit signatures
28
- - name: Release
29
- env:
30
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31
- run: npx semantic-release
package/.husky/commit-msg DELETED
@@ -1 +0,0 @@
1
- npx --no-install commitlint --edit "$1"
@@ -1,6 +0,0 @@
1
- {
2
- "conventionalCommits.scopes": [
3
- "dependabot",
4
- "actions"
5
- ]
6
- }
@@ -1,4 +0,0 @@
1
- const config = {
2
- extends: ['@commitlint/config-conventional']
3
- };
4
- export default config;
package/src/index.js DELETED
@@ -1,130 +0,0 @@
1
- #!/usr/bin/env node
2
- import cliMeowHelp from 'cli-meow-help';
3
- import meow from 'meow';
4
- import adb_bridge from './modules/adbBridge.js';
5
- import adb_intent from './modules/adbIntentSender.js';
6
- import dumpTableToCSV from './modules/dumpTableToCSV.js';
7
- import importDB from './modules/importDB.js';
8
- import rewrite from './modules/rewriteConfig.js';
9
- import writeCLIConfig from './modules/setCLIConfig.js';
10
- import t003Rewrite from './modules/t003Rewrite.js';
11
- import graphqlSchemaExport from './modules/graphqlSchemaExport.js';
12
- import csvMerge from './modules/csvMerger.js';
13
- import {dumpDBMand, dumpDB } from './modules/dumpDB.js';
14
- import deleteDBMand from './modules/deleteDB.js';
15
- import showChangelog from './modules/changelog.js';
16
-
17
- import commands from "./ressources/cmds.json" with {type: 'json'};
18
- import packageJson from "../package.json" with {type: 'json'}
19
- import extdSearch from './modules/extdSearch.js';
20
- import t009Search from './modules/t009Search.js';
21
- import syncConfig from './modules/syncConfig.js';
22
- import configMutation from './modules/configMutation.js';
23
- import bundleProduct from './modules/bundleProduct.js';
24
- import { azureCreateSyncConfig, azurePush, azurePull } from './modules/azureSync.js';
25
- import githubSecurityAdvisories from './modules/githubSecurityAdvisories.js';
26
- import listGithubDeploymentKeys from './modules/githubDeploymentKeysList.js';
27
-
28
- import updateNotifier from 'update-notifier';
29
- import { addGithubDeploymentKey } from './modules/githubDeploymentKey.js';
30
-
31
- updateNotifier({
32
- pkg: {
33
- name: packageJson.name,
34
- version: packageJson.version
35
- },
36
- updateCheckInterval: 1000 * 60 * 60 * 24 // 24h
37
- }).notify();
38
-
39
-
40
- const helpText = cliMeowHelp({
41
- name: `inteco`,
42
- desc: "Version: "+packageJson.version,
43
- commands
44
- });
45
-
46
- const cli = meow(helpText, {
47
- importMeta: import.meta,
48
- });
49
-
50
- switch (cli.input[0]) {
51
- case "config_rewrite":
52
- rewrite(cli)
53
- break;
54
- case "import_db":
55
- importDB(cli)
56
- break;
57
- case "download_db":
58
- downloadDB(cli)
59
- break;
60
- case "t003_rewrite":
61
- t003Rewrite(cli)
62
- break;
63
- case "adb_bridge":
64
- adb_bridge()
65
- break;
66
- case "adb_intent":
67
- adb_intent()
68
- break;
69
- case "set_cli_config":
70
- writeCLIConfig()
71
- break;
72
- case "dump_table_to_csv":
73
- dumpTableToCSV()
74
- break;
75
- case "csv_merge":
76
- csvMerge();
77
- break;
78
- case "graphql_schema_export":
79
- graphqlSchemaExport();
80
- break;
81
- case "dump_db_mand":
82
- dumpDBMand(cli);
83
- break;
84
- case "dump_db":
85
- dumpDB(cli);
86
- break;
87
- case "delete_db_mand":
88
- deleteDBMand();
89
- break;
90
- case "extd_search":
91
- extdSearch();
92
- break;
93
- case "t009_search":
94
- t009Search();
95
- break;
96
- case "sync_config":
97
- syncConfig();
98
- break;
99
- case "config_mutation":
100
- configMutation();
101
- break;
102
- case "bundle_product":
103
- bundleProduct(cli);
104
- break;
105
- case "changelog":
106
- showChangelog();
107
- break;
108
- case "azure_sync_config":
109
- azureCreateSyncConfig();
110
- break;
111
- case "azure_sync_push":
112
- azurePush();
113
- break;
114
- case "azure_sync_pull":
115
- azurePull();
116
- break;
117
- case "github_security_advisories":
118
- githubSecurityAdvisories();
119
- break;
120
- case "github_add_deploy_key":
121
- addGithubDeploymentKey();
122
- break;
123
- case "github_list_deploy_keys":
124
- listGithubDeploymentKeys();
125
- break;
126
- default:
127
- cli.showHelp()
128
- break;
129
- }
130
-
@@ -1,52 +0,0 @@
1
- import adb from "adb-ts";
2
- import chalk from "chalk";
3
- import prompts from "prompts";
4
- import { Config } from "../utils/config/config.js";
5
-
6
-
7
- export default async function adb_bridge(cli){
8
-
9
- console.log()
10
-
11
- const config = await Config.getConfig();
12
-
13
- const adbClient = new adb.AdbClient({host: "127.0.0.1"})
14
-
15
- adbClient.listDevices()
16
- .then(async (devices) => {
17
- let success = true;
18
- const result = await prompts([
19
- {
20
- // Ordnerauswahl von vorhandenen Ordner in configIndividual
21
- type: 'autocomplete',
22
- name: 'device',
23
- message: 'Device?',
24
- choices: devices.map(dev => {return {title: dev.id+" ("+dev.model+")", value:dev}})
25
- },
26
- {
27
- // Ordnerauswahl von vorhandenen Ordner in configIndividual
28
- type: 'number',
29
- name: 'port',
30
- initial: "3000",
31
- message: 'Port?'
32
- }
33
- ],{
34
- onCancel: () => {
35
- console.log()
36
- console.log(chalk.red("Cancelled ADB Bridge!"))
37
- console.log()
38
- success = false
39
- }
40
- })
41
-
42
- if(success){
43
- await adbClient.reverse(result.device.id, "tcp:"+result.port, "tcp:"+result.port)
44
- console.log()
45
- console.log(chalk.green("ADB bridged!"))
46
- console.log()
47
- }
48
- });
49
-
50
-
51
-
52
- }
@@ -1,82 +0,0 @@
1
- import adb from "adb-ts";
2
- import chalk from "chalk";
3
- import prompts from "prompts";
4
- import { Config } from "../utils/config/config.js";
5
-
6
-
7
- export default async function adb_intent(cli){
8
-
9
- console.log()
10
-
11
- const config = await Config.getConfig();
12
-
13
-
14
-
15
- const adbClient = new adb.AdbClient({host: "127.0.0.1"})
16
-
17
- adbClient.listDevices()
18
- .then(async (devices) => {
19
- let success = true;
20
- const result = await prompts([
21
- {
22
- // Ordnerauswahl von vorhandenen Ordner in configIndividual
23
- type: 'autocomplete',
24
- name: 'device',
25
- message: 'Device?',
26
- choices: devices.map(dev => {return {title: dev.id+" ("+dev.model+")", value:dev}})
27
- },
28
- {
29
- // Ordnerauswahl von vorhandenen Ordner in configIndividual
30
- type: 'autocomplete',
31
- name: 'action',
32
- message: 'Action?',
33
- choices: [
34
- {
35
- "title":"BARCODE_DATA",
36
- "value": "ch.inteco.orderprep.action.BARCODE_DATA"
37
- },
38
- ]
39
- },
40
- {
41
- // Ordnerauswahl von vorhandenen Ordner in configIndividual
42
- type: 'text',
43
- name: 'data',
44
- message: 'Data?',
45
- initial:"1"
46
- },
47
- {
48
- // Ordnerauswahl von vorhandenen Ordner in configIndividual
49
- type: 'autocomplete',
50
- name: 'codeId',
51
- message: 'Code-Typ?',
52
- choices: [
53
- {
54
- "title":"QR-Code",
55
- "value": "s"
56
- },
57
- {
58
- "title":"EAN13",
59
- "value": "d"
60
- }
61
- ]
62
- }
63
- ],{
64
- onCancel: () => {
65
- console.log()
66
- console.log(chalk.red("Cancelled ADB Intent!"))
67
- console.log()
68
- success = false
69
- }
70
- })
71
-
72
- if(success){
73
- await adbClient.shell(result.device.id, "am broadcast -a "+result.action+" --ei version 1 --es codeId "+result.codeId+" --es data "+result.data)
74
- console.log()
75
- console.log(chalk.green("Intent sent!"))
76
- console.log()
77
- }
78
- });
79
-
80
-
81
-
82
- }
@@ -1,60 +0,0 @@
1
- import chalk from 'chalk';
2
-
3
- const OWNER = 'intecoag';
4
- const REPO = 'IntecoCLI';
5
-
6
- async function showChangelog() {
7
- const res = await fetch(
8
- `https://api.github.com/repos/${OWNER}/${REPO}/releases`,
9
- {
10
- headers: {
11
- 'Accept': 'application/vnd.github+json',
12
- 'User-Agent': `${REPO}-cli`
13
- }
14
- }
15
- );
16
-
17
- if (!res.ok) {
18
- console.error(chalk.red('Failed to fetch changelog'));
19
- return;
20
- }
21
-
22
- const releases = await res.json();
23
-
24
- // Reverse: oldest → newest
25
- releases.reverse();
26
-
27
- console.log(
28
- chalk.bold.cyan(`\n📦 Changelog for ${OWNER}/${REPO}\n`)
29
- );
30
-
31
- for (const r of releases) {
32
- const title = r.name || r.tag_name;
33
-
34
- console.log(
35
- chalk.bold.yellow(`\n▶ ${title}`)
36
- );
37
-
38
- if (!r.body) {
39
- console.log(chalk.gray(' No changelog provided'));
40
- continue;
41
- }
42
-
43
- // Light formatting for Markdown-like content
44
- const lines = r.body.split('\n');
45
-
46
- for (const line of lines) {
47
- if (line.startsWith('- ') || line.startsWith('* ')) {
48
- console.log(chalk.green(` • ${line.slice(2)}`));
49
- } else if (line.startsWith('### ')) {
50
- console.log(chalk.bold.magenta(`\n ${line.slice(4)}`));
51
- } else if (line.startsWith('## ')) {
52
- console.log(chalk.bold.blue(`\n${line.slice(3)}`));
53
- } else {
54
- console.log(chalk.gray(` ${line}`));
55
- }
56
- }
57
- }
58
- }
59
-
60
- export default showChangelog;
@@ -1,118 +0,0 @@
1
- import chalk from 'chalk';
2
- import csv from 'csv-parser';
3
- import fs from "fs";
4
- import prompts from "prompts";
5
-
6
- export default async function csvMerge() {
7
- console.log()
8
-
9
- let success = true;
10
-
11
- const promptResults = await prompts([
12
- {
13
- // Output-File
14
- type: 'text',
15
- name: 'output',
16
- message: 'Output-File?',
17
- initial: "results.csv"
18
- },
19
- {
20
- // Filterverwendung
21
- type: 'toggle',
22
- name: 'useFilter',
23
- message: 'Use Filter?',
24
- initial: false,
25
- active: 'yes',
26
- inactive: 'no'
27
- },
28
- {
29
- type: prev => prev == true ? "select" : null,
30
- name: 'filtertype',
31
- message: 'Filter type?',
32
- choices: [
33
- { title: 'Equal', value: 'eq' },
34
- { title: 'Non-Equal', value: 'neq' }
35
- ]
36
- },
37
- {
38
- type: prev => prev != "" ? "text" : null,
39
- name: 'filterfield',
40
- message: 'Filter field?'
41
- },
42
- {
43
- type: prev => prev != "" ? "text" : null,
44
- name: 'filtervalue',
45
- message: 'Filter value?'
46
- },
47
- ], {
48
- onCancel: () => {
49
- console.log()
50
- console.log(chalk.red("Cancelled CSV-Merge!"))
51
- console.log()
52
- success = false
53
- }
54
- })
55
-
56
-
57
- if (success) {
58
- console.log()
59
-
60
- let files = fs.readdirSync(process.cwd(), { withFileTypes: true }).filter(file => file.isFile && file.name.endsWith(".csv") && file.name != promptResults.output);
61
-
62
- let finalResult = [];
63
- let counter = 0;
64
-
65
- files.forEach(file => {
66
- const results = [];
67
-
68
- fs.createReadStream(process.cwd() + "/" + file.name)
69
- .pipe(csv({ separator: ";", quote: "'" }))
70
- .on('data', (data) => results.push(data))
71
- .on('end', () => {
72
- const filteredResults = results.map(row => {
73
- const newRow = {}
74
- Object.entries(row).forEach(entry => {
75
- newRow[entry[0].replaceAll("'", "").replaceAll("`", "")] = entry[1]
76
- })
77
- newRow.file = file.name
78
- return newRow
79
- }).filter(row => {
80
- if (promptResults.useFilter) {
81
- switch (promptResults.filtertype){
82
- case "neq":
83
- if(row[promptResults.filterfield] != promptResults.filtervalue){
84
- return true
85
- }
86
- return false;
87
- case "eq":
88
- if(row[promptResults.filterfield] == promptResults.filtervalue){
89
- return true
90
- }
91
- return false;
92
- }
93
- return false;
94
- }
95
- return true;
96
- })
97
-
98
- finalResult = finalResult.concat(filteredResults)
99
- counter = counter + filteredResults.length
100
-
101
- let firstLine = true;
102
- fs.writeFileSync(process.cwd() + "/" + promptResults.output, finalResult.map(row => {
103
- let prev = ""
104
- if (firstLine) {
105
- prev = Object.keys(row).map(entry => { return "\"" + entry + "\"" }).join(";") + "\n";
106
- firstLine = false;
107
- }
108
- return prev + Object.values(row).map(entry => { return "\"" + entry + "\"" }).join(";");
109
- }).join("\n"))
110
- console.log(chalk.green(file.name + " merged."))
111
- });
112
-
113
- })
114
- }
115
-
116
-
117
-
118
- }
@@ -1,84 +0,0 @@
1
- import prompts from "prompts"
2
- import { rmSync } from "fs";
3
- import ora from "ora";
4
- import { DB } from "../utils/db/DB.js";
5
- import chalk from "chalk";
6
- import path from "path";
7
-
8
-
9
- export default async function deleteDBMand(cli){
10
- console.log()
11
-
12
- const databaseNames = await DB.getDatabaseNames();
13
-
14
- let success = true;
15
-
16
- const results = await prompts([
17
- {
18
- // DB-Auswahl von DB
19
- type: 'autocomplete',
20
- name: 'dbName',
21
- message: 'DB-Name?',
22
- choices: databaseNames.map(name => { return { title: name.name } })
23
- },
24
- {
25
- type: 'number',
26
- name: 'mnr',
27
- message: 'Mandant?',
28
- initial: '1'
29
- }
30
- ],{
31
- onCancel: () => {
32
- console.log()
33
- console.log(chalk.red("Cancelled Import!"))
34
- console.log()
35
- success = false
36
- }
37
- })
38
-
39
- if(success){
40
- console.log()
41
-
42
- const spinner = ora('Deleting in DB').start();
43
-
44
- // Load table names
45
- let tables = await DB.executeQueryOnDB("SHOW TABLES;", results.dbName);
46
- const tableKey = Object.keys(tables[0])[0];
47
- tables = tables.map(row => row[tableKey])
48
-
49
- if(tables == null || tables.length == 0){
50
- spinner.fail("Database has no tables: "+results.dbName)
51
- }else{
52
- // Remove previous dump
53
- rmSync("."+path.sep+results.dumpName, {recursive:true, force:true})
54
- for(const table of tables){
55
- // Check if Mand-Column exists
56
- const tableSpinner = ora("Deleting data: "+table).start();
57
- const tableCol = table+"_mnr"
58
- const columnExists = await DB.executeQueryOnDB("SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = '"+results.dbName+"' AND table_name = '"+table+"' AND column_name = '"+tableCol+"';")
59
-
60
- if(columnExists [0]['COUNT(*)'] != 0){
61
- // Check if Mand-Data is present
62
- const dataExists = await DB.executeQueryOnDB("SELECT COUNT(*) FROM "+table+" WHERE "+tableCol+" = '"+results.mnr+"';", results.dbName);
63
-
64
- if(dataExists[0]['COUNT(*)'] != 0){
65
- await DB.executeQueryOnDB("DELETE FROM "+table+" WHERE "+tableCol+" = '"+results.mnr+"';", results.dbName)
66
- tableSpinner.succeed("Data deleted: "+table);
67
- }else{
68
- tableSpinner.info("No data present, Skipping table: "+table)
69
- }
70
- }else{
71
- tableSpinner.info("Column "+tableCol+" not found, Skipping table: "+table)
72
- }
73
- }
74
- // Dump mand-table (special field name)
75
- const tableSpinner = ora("Deleting mand (custom logic)")
76
- await DB.executeQueryOnDB("DELETE FROM mand WHERE mand_mandant = '"+results.mnr+"';", results.dbName)
77
- tableSpinner.succeed("Data deleted: mand")
78
- spinner.succeed("Mand deleted: "+results.mnr);
79
- }
80
-
81
-
82
- console.log();
83
- }
84
- }