@intecoag/inteco-cli 1.11.8 → 1.12.0-beta.2

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 (272) hide show
  1. package/README.md +13 -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/adbBridge.test.d.ts +2 -0
  11. package/dist/modules/adbBridge.test.d.ts.map +1 -0
  12. package/dist/modules/adbBridge.test.js +39 -0
  13. package/dist/modules/adbBridge.test.js.map +1 -0
  14. package/dist/modules/adbIntentSender.d.ts +2 -0
  15. package/dist/modules/adbIntentSender.d.ts.map +1 -0
  16. package/dist/modules/adbIntentSender.js +67 -0
  17. package/dist/modules/adbIntentSender.js.map +1 -0
  18. package/dist/modules/adbIntentSender.test.d.ts +2 -0
  19. package/dist/modules/adbIntentSender.test.d.ts.map +1 -0
  20. package/dist/modules/adbIntentSender.test.js +48 -0
  21. package/dist/modules/adbIntentSender.test.js.map +1 -0
  22. package/dist/modules/azureSync.d.ts +16 -0
  23. package/dist/modules/azureSync.d.ts.map +1 -0
  24. package/{src → dist}/modules/azureSync.js +55 -136
  25. package/dist/modules/azureSync.js.map +1 -0
  26. package/dist/modules/azureSync.test.d.ts +2 -0
  27. package/dist/modules/azureSync.test.d.ts.map +1 -0
  28. package/dist/modules/azureSync.test.js +69 -0
  29. package/dist/modules/azureSync.test.js.map +1 -0
  30. package/dist/modules/bundleProduct.d.ts +2 -0
  31. package/dist/modules/bundleProduct.d.ts.map +1 -0
  32. package/{src → dist}/modules/bundleProduct.js +41 -80
  33. package/dist/modules/bundleProduct.js.map +1 -0
  34. package/dist/modules/bundleProduct.test.d.ts +2 -0
  35. package/dist/modules/bundleProduct.test.d.ts.map +1 -0
  36. package/dist/modules/bundleProduct.test.js +75 -0
  37. package/dist/modules/bundleProduct.test.js.map +1 -0
  38. package/dist/modules/changelog.d.ts +3 -0
  39. package/dist/modules/changelog.d.ts.map +1 -0
  40. package/dist/modules/changelog.js +45 -0
  41. package/dist/modules/changelog.js.map +1 -0
  42. package/dist/modules/changelog.test.d.ts +2 -0
  43. package/dist/modules/changelog.test.d.ts.map +1 -0
  44. package/dist/modules/changelog.test.js +33 -0
  45. package/dist/modules/changelog.test.js.map +1 -0
  46. package/dist/modules/configMutation.d.ts +5 -0
  47. package/dist/modules/configMutation.d.ts.map +1 -0
  48. package/{src → dist}/modules/configMutation.js +57 -104
  49. package/dist/modules/configMutation.js.map +1 -0
  50. package/dist/modules/configMutation.test.d.ts +2 -0
  51. package/dist/modules/configMutation.test.d.ts.map +1 -0
  52. package/dist/modules/configMutation.test.js +28 -0
  53. package/dist/modules/configMutation.test.js.map +1 -0
  54. package/dist/modules/csvMerger.d.ts +2 -0
  55. package/dist/modules/csvMerger.d.ts.map +1 -0
  56. package/dist/modules/csvMerger.js +104 -0
  57. package/dist/modules/csvMerger.js.map +1 -0
  58. package/dist/modules/csvMerger.test.d.ts +2 -0
  59. package/dist/modules/csvMerger.test.d.ts.map +1 -0
  60. package/dist/modules/csvMerger.test.js +76 -0
  61. package/dist/modules/csvMerger.test.js.map +1 -0
  62. package/dist/modules/deleteDB.d.ts +2 -0
  63. package/dist/modules/deleteDB.d.ts.map +1 -0
  64. package/dist/modules/deleteDB.js +75 -0
  65. package/dist/modules/deleteDB.js.map +1 -0
  66. package/dist/modules/deleteDB.test.d.ts +2 -0
  67. package/dist/modules/deleteDB.test.d.ts.map +1 -0
  68. package/dist/modules/deleteDB.test.js +78 -0
  69. package/dist/modules/deleteDB.test.js.map +1 -0
  70. package/dist/modules/dumpDB.d.ts +3 -0
  71. package/dist/modules/dumpDB.d.ts.map +1 -0
  72. package/{src → dist}/modules/dumpDB.js +64 -89
  73. package/dist/modules/dumpDB.js.map +1 -0
  74. package/dist/modules/dumpDB.test.d.ts +2 -0
  75. package/dist/modules/dumpDB.test.d.ts.map +1 -0
  76. package/dist/modules/dumpDB.test.js +104 -0
  77. package/dist/modules/dumpDB.test.js.map +1 -0
  78. package/dist/modules/dumpTableToCSV.d.ts +4 -0
  79. package/dist/modules/dumpTableToCSV.d.ts.map +1 -0
  80. package/dist/modules/dumpTableToCSV.js +135 -0
  81. package/dist/modules/dumpTableToCSV.js.map +1 -0
  82. package/dist/modules/dumpTableToCSV.test.d.ts +2 -0
  83. package/dist/modules/dumpTableToCSV.test.d.ts.map +1 -0
  84. package/dist/modules/dumpTableToCSV.test.js +15 -0
  85. package/dist/modules/dumpTableToCSV.test.js.map +1 -0
  86. package/dist/modules/extdSearch.d.ts +2 -0
  87. package/dist/modules/extdSearch.d.ts.map +1 -0
  88. package/{src → dist}/modules/extdSearch.js +60 -60
  89. package/dist/modules/extdSearch.js.map +1 -0
  90. package/dist/modules/extdSearch.test.d.ts +2 -0
  91. package/dist/modules/extdSearch.test.d.ts.map +1 -0
  92. package/dist/modules/extdSearch.test.js +114 -0
  93. package/dist/modules/extdSearch.test.js.map +1 -0
  94. package/dist/modules/githubDeploymentKey.d.ts +3 -0
  95. package/dist/modules/githubDeploymentKey.d.ts.map +1 -0
  96. package/dist/modules/githubDeploymentKey.js +241 -0
  97. package/dist/modules/githubDeploymentKey.js.map +1 -0
  98. package/dist/modules/githubDeploymentKey.test.d.ts +2 -0
  99. package/dist/modules/githubDeploymentKey.test.d.ts.map +1 -0
  100. package/dist/modules/githubDeploymentKey.test.js +50 -0
  101. package/dist/modules/githubDeploymentKey.test.js.map +1 -0
  102. package/dist/modules/githubDeploymentKeysList.d.ts +6 -0
  103. package/dist/modules/githubDeploymentKeysList.d.ts.map +1 -0
  104. package/dist/modules/githubDeploymentKeysList.js +185 -0
  105. package/dist/modules/githubDeploymentKeysList.js.map +1 -0
  106. package/dist/modules/githubDeploymentKeysList.test.d.ts +2 -0
  107. package/dist/modules/githubDeploymentKeysList.test.d.ts.map +1 -0
  108. package/dist/modules/githubDeploymentKeysList.test.js +70 -0
  109. package/dist/modules/githubDeploymentKeysList.test.js.map +1 -0
  110. package/dist/modules/githubSecurityAdvisories.d.ts +3 -0
  111. package/dist/modules/githubSecurityAdvisories.d.ts.map +1 -0
  112. package/dist/modules/githubSecurityAdvisories.js +145 -0
  113. package/dist/modules/githubSecurityAdvisories.js.map +1 -0
  114. package/dist/modules/githubSecurityAdvisories.test.d.ts +2 -0
  115. package/dist/modules/githubSecurityAdvisories.test.d.ts.map +1 -0
  116. package/dist/modules/githubSecurityAdvisories.test.js +67 -0
  117. package/dist/modules/githubSecurityAdvisories.test.js.map +1 -0
  118. package/dist/modules/graphqlSchemaExport.d.ts +2 -0
  119. package/dist/modules/graphqlSchemaExport.d.ts.map +1 -0
  120. package/dist/modules/graphqlSchemaExport.js +59 -0
  121. package/dist/modules/graphqlSchemaExport.js.map +1 -0
  122. package/dist/modules/graphqlSchemaExport.test.d.ts +2 -0
  123. package/dist/modules/graphqlSchemaExport.test.d.ts.map +1 -0
  124. package/dist/modules/graphqlSchemaExport.test.js +61 -0
  125. package/dist/modules/graphqlSchemaExport.test.js.map +1 -0
  126. package/dist/modules/importDB.d.ts +2 -0
  127. package/dist/modules/importDB.d.ts.map +1 -0
  128. package/{src → dist}/modules/importDB.js +48 -66
  129. package/dist/modules/importDB.js.map +1 -0
  130. package/dist/modules/importDB.test.d.ts +2 -0
  131. package/dist/modules/importDB.test.d.ts.map +1 -0
  132. package/dist/modules/importDB.test.js +65 -0
  133. package/dist/modules/importDB.test.js.map +1 -0
  134. package/dist/modules/rewriteConfig.d.ts +3 -0
  135. package/dist/modules/rewriteConfig.d.ts.map +1 -0
  136. package/dist/modules/rewriteConfig.js +75 -0
  137. package/dist/modules/rewriteConfig.js.map +1 -0
  138. package/dist/modules/rewriteConfig.test.d.ts +2 -0
  139. package/dist/modules/rewriteConfig.test.d.ts.map +1 -0
  140. package/dist/modules/rewriteConfig.test.js +62 -0
  141. package/dist/modules/rewriteConfig.test.js.map +1 -0
  142. package/dist/modules/setCLIConfig.d.ts +2 -0
  143. package/dist/modules/setCLIConfig.d.ts.map +1 -0
  144. package/dist/modules/setCLIConfig.js +29 -0
  145. package/dist/modules/setCLIConfig.js.map +1 -0
  146. package/dist/modules/setCLIConfig.test.d.ts +2 -0
  147. package/dist/modules/setCLIConfig.test.d.ts.map +1 -0
  148. package/dist/modules/setCLIConfig.test.js +40 -0
  149. package/dist/modules/setCLIConfig.test.js.map +1 -0
  150. package/dist/modules/syncConfig.d.ts +4 -0
  151. package/dist/modules/syncConfig.d.ts.map +1 -0
  152. package/{src → dist}/modules/syncConfig.js +76 -129
  153. package/dist/modules/syncConfig.js.map +1 -0
  154. package/dist/modules/syncConfig.test.d.ts +2 -0
  155. package/dist/modules/syncConfig.test.d.ts.map +1 -0
  156. package/dist/modules/syncConfig.test.js +71 -0
  157. package/dist/modules/syncConfig.test.js.map +1 -0
  158. package/dist/modules/t003Rewrite.d.ts +2 -0
  159. package/dist/modules/t003Rewrite.d.ts.map +1 -0
  160. package/dist/modules/t003Rewrite.js +53 -0
  161. package/dist/modules/t003Rewrite.js.map +1 -0
  162. package/dist/modules/t003Rewrite.test.d.ts +2 -0
  163. package/dist/modules/t003Rewrite.test.d.ts.map +1 -0
  164. package/dist/modules/t003Rewrite.test.js +43 -0
  165. package/dist/modules/t003Rewrite.test.js.map +1 -0
  166. package/dist/modules/t009Search.d.ts +2 -0
  167. package/dist/modules/t009Search.d.ts.map +1 -0
  168. package/dist/modules/t009Search.js +30 -0
  169. package/dist/modules/t009Search.js.map +1 -0
  170. package/dist/modules/t009Search.test.d.ts +2 -0
  171. package/dist/modules/t009Search.test.d.ts.map +1 -0
  172. package/dist/modules/t009Search.test.js +83 -0
  173. package/dist/modules/t009Search.test.js.map +1 -0
  174. package/{src → dist}/ressources/cmds.json +3 -0
  175. package/dist/utils/azure/azure.d.ts +24 -0
  176. package/dist/utils/azure/azure.d.ts.map +1 -0
  177. package/{src → dist}/utils/azure/azure.js +14 -21
  178. package/dist/utils/azure/azure.js.map +1 -0
  179. package/dist/utils/azure/azure.test.d.ts +2 -0
  180. package/dist/utils/azure/azure.test.d.ts.map +1 -0
  181. package/dist/utils/azure/azure.test.js +98 -0
  182. package/dist/utils/azure/azure.test.js.map +1 -0
  183. package/dist/utils/config/config.d.ts +27 -0
  184. package/dist/utils/config/config.d.ts.map +1 -0
  185. package/dist/utils/config/config.js +74 -0
  186. package/dist/utils/config/config.js.map +1 -0
  187. package/dist/utils/config/config.test.d.ts +2 -0
  188. package/dist/utils/config/config.test.d.ts.map +1 -0
  189. package/dist/utils/config/config.test.js +64 -0
  190. package/dist/utils/config/config.test.js.map +1 -0
  191. package/dist/utils/db/DB.d.ts +14 -0
  192. package/dist/utils/db/DB.d.ts.map +1 -0
  193. package/dist/utils/db/DB.js +61 -0
  194. package/dist/utils/db/DB.js.map +1 -0
  195. package/dist/utils/db/DB.test.d.ts +2 -0
  196. package/dist/utils/db/DB.test.d.ts.map +1 -0
  197. package/dist/utils/db/DB.test.js +73 -0
  198. package/dist/utils/db/DB.test.js.map +1 -0
  199. package/dist/utils/fs/FS.d.ts +15 -0
  200. package/dist/utils/fs/FS.d.ts.map +1 -0
  201. package/{src → dist}/utils/fs/FS.js +31 -45
  202. package/dist/utils/fs/FS.js.map +1 -0
  203. package/dist/utils/fs/FS.test.d.ts +2 -0
  204. package/dist/utils/fs/FS.test.d.ts.map +1 -0
  205. package/dist/utils/fs/FS.test.js +124 -0
  206. package/dist/utils/fs/FS.test.js.map +1 -0
  207. package/dist/utils/github/github.d.ts +29 -0
  208. package/dist/utils/github/github.d.ts.map +1 -0
  209. package/dist/utils/github/github.js +96 -0
  210. package/dist/utils/github/github.js.map +1 -0
  211. package/dist/utils/github/github.test.d.ts +2 -0
  212. package/dist/utils/github/github.test.d.ts.map +1 -0
  213. package/dist/utils/github/github.test.js +83 -0
  214. package/dist/utils/github/github.test.js.map +1 -0
  215. package/dist/utils/shell/DatabaseShell.d.ts +77 -0
  216. package/dist/utils/shell/DatabaseShell.d.ts.map +1 -0
  217. package/{src → dist}/utils/shell/DatabaseShell.js +73 -87
  218. package/dist/utils/shell/DatabaseShell.js.map +1 -0
  219. package/dist/utils/shell/DatabaseShell.test.d.ts +2 -0
  220. package/dist/utils/shell/DatabaseShell.test.d.ts.map +1 -0
  221. package/dist/utils/shell/DatabaseShell.test.js +78 -0
  222. package/dist/utils/shell/DatabaseShell.test.js.map +1 -0
  223. package/dist/utils/shell/DatabaseShellBuilder.d.ts +67 -0
  224. package/dist/utils/shell/DatabaseShellBuilder.d.ts.map +1 -0
  225. package/{src → dist}/utils/shell/DatabaseShellBuilder.js +50 -59
  226. package/dist/utils/shell/DatabaseShellBuilder.js.map +1 -0
  227. package/dist/utils/shell/DatabaseShellBuilder.test.d.ts +2 -0
  228. package/dist/utils/shell/DatabaseShellBuilder.test.d.ts.map +1 -0
  229. package/dist/utils/shell/DatabaseShellBuilder.test.js +55 -0
  230. package/dist/utils/shell/DatabaseShellBuilder.test.js.map +1 -0
  231. package/dist/utils/shell/Shell.d.ts +30 -0
  232. package/dist/utils/shell/Shell.d.ts.map +1 -0
  233. package/{src → dist}/utils/shell/Shell.js +14 -19
  234. package/dist/utils/shell/Shell.js.map +1 -0
  235. package/dist/utils/shell/Shell.test.d.ts +2 -0
  236. package/dist/utils/shell/Shell.test.d.ts.map +1 -0
  237. package/dist/utils/shell/Shell.test.js +65 -0
  238. package/dist/utils/shell/Shell.test.js.map +1 -0
  239. package/dist/utils/shell/ShellBuilder.d.ts +60 -0
  240. package/dist/utils/shell/ShellBuilder.d.ts.map +1 -0
  241. package/{src → dist}/utils/shell/ShellBuilder.js +23 -44
  242. package/dist/utils/shell/ShellBuilder.js.map +1 -0
  243. package/dist/utils/shell/ShellBuilder.test.d.ts +2 -0
  244. package/dist/utils/shell/ShellBuilder.test.d.ts.map +1 -0
  245. package/dist/utils/shell/ShellBuilder.test.js +39 -0
  246. package/dist/utils/shell/ShellBuilder.test.js.map +1 -0
  247. package/package.json +39 -11
  248. package/.github/dependabot.yml +0 -28
  249. package/.github/workflows/publish.yml +0 -31
  250. package/.husky/commit-msg +0 -1
  251. package/.vscode/settings.json +0 -6
  252. package/commitlint.config.mjs +0 -4
  253. package/src/index.js +0 -130
  254. package/src/modules/adbBridge.js +0 -52
  255. package/src/modules/adbIntentSender.js +0 -82
  256. package/src/modules/changelog.js +0 -60
  257. package/src/modules/csvMerger.js +0 -118
  258. package/src/modules/deleteDB.js +0 -84
  259. package/src/modules/dumpTableToCSV.js +0 -154
  260. package/src/modules/githubDeploymentKey.js +0 -265
  261. package/src/modules/githubDeploymentKeysList.js +0 -199
  262. package/src/modules/githubSecurityAdvisories.js +0 -162
  263. package/src/modules/graphqlSchemaExport.js +0 -61
  264. package/src/modules/rewriteConfig.js +0 -93
  265. package/src/modules/setCLIConfig.js +0 -33
  266. package/src/modules/t003Rewrite.js +0 -64
  267. package/src/modules/t009Search.js +0 -34
  268. package/src/utils/config/config.js +0 -70
  269. package/src/utils/db/DB.js +0 -54
  270. package/src/utils/github/github.js +0 -102
  271. /package/{src → dist}/ressources/wegas_p.ico +0 -0
  272. /package/{src → dist}/utils/config/default.json +0 -0
@@ -1,25 +1,21 @@
1
1
  import prompts from "prompts";
2
2
  import chalk from "chalk";
3
3
  import { Config } from "../utils/config/config.js";
4
- import FS from "fs"
4
+ import FS from "fs";
5
5
  import * as CliFS from "../utils/fs/FS.js";
6
6
  import YAML from "yaml";
7
7
  import { YAMLMap, YAMLSeq } from "yaml";
8
8
  import fg from "fast-glob";
9
9
  import path from "path";
10
-
11
10
  export default async function mutateConfig() {
12
- console.log()
13
-
11
+ console.log();
14
12
  const config = await Config.getConfig();
15
13
  const configDirectories = [
16
14
  { title: '[Update all]', value: '*' },
17
15
  ...FS.readdirSync(config.configIndividualPathEclipse, { withFileTypes: true }).filter(dirent => dirent.isDirectory())
18
- .map(dirent => { return { title: dirent.name, value: dirent.name } })
19
- ]
20
-
16
+ .map(dirent => { return { title: dirent.name, value: dirent.name }; })
17
+ ];
21
18
  let success = true;
22
-
23
19
  const responses = await prompts([
24
20
  {
25
21
  type: 'select',
@@ -35,7 +31,7 @@ export default async function mutateConfig() {
35
31
  type: 'toggle',
36
32
  name: 'mergeClients',
37
33
  message: 'Include Mand? (Apply changes to 1_, 2_, ...)',
38
- active: false
34
+ initial: false,
39
35
  },
40
36
  {
41
37
  type: 'autocomplete',
@@ -59,16 +55,11 @@ export default async function mutateConfig() {
59
55
  success = false;
60
56
  }
61
57
  });
62
-
63
-
64
58
  if (success) {
65
- const sourceConfigs = await CliFS.FS.filePicker(path.join(path.dirname(config.configIndividualPathEclipse), "config", "yaml"),
66
- path.join(path.dirname(config.configIndividualPathEclipse), "config", "yaml"));
67
-
59
+ const sourceConfigs = await CliFS.FS.filePicker(path.join(path.dirname(config.configIndividualPathEclipse), "config", "yaml"), path.join(path.dirname(config.configIndividualPathEclipse), "config", "yaml"));
68
60
  const configsToUpdate = responses.configDest == '*'
69
61
  ? FS.readdirSync(config.configIndividualPathEclipse, { withFileTypes: true }).filter(f => f.isDirectory()).map(f => f.name)
70
62
  : [responses.configDest];
71
-
72
63
  switch (responses.mergeType) {
73
64
  case 'only_create':
74
65
  await processAddMissing(sourceConfigs, config.configIndividualPathEclipse, configsToUpdate, responses.mergeClients, responses.dryRun);
@@ -80,9 +71,8 @@ export default async function mutateConfig() {
80
71
  await processMergeOverwrite(sourceConfigs, config.configIndividualPathEclipse, configsToUpdate, responses.mergeClients, responses.dryRun);
81
72
  break;
82
73
  }
83
-
84
74
  if (responses.dryRun) {
85
- console.log()
75
+ console.log();
86
76
  const confirmationResults = await prompts([
87
77
  {
88
78
  type: 'confirm',
@@ -97,9 +87,8 @@ export default async function mutateConfig() {
97
87
  console.log();
98
88
  success = false;
99
89
  }
100
- })
101
-
102
- if(confirmationResults.confirmation){
90
+ });
91
+ if (confirmationResults.confirmation) {
103
92
  switch (responses.mergeType) {
104
93
  case 'only_create':
105
94
  await processAddMissing(sourceConfigs, config.configIndividualPathEclipse, configsToUpdate, responses.mergeClients, false);
@@ -116,65 +105,53 @@ export default async function mutateConfig() {
116
105
  console.log();
117
106
  }
118
107
  }
119
-
120
108
  async function processMergeOverwrite(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun) {
121
- await processInEachFile(filesToUpdate, configIndividualPathEclipse,
122
- configsToUpdate, mergeClients, dryRun, mergeOverwriteNodes);
109
+ await processInEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, mergeOverwriteNodes);
123
110
  }
124
-
125
111
  async function processRemoveMissing(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun) {
126
- await processInEachFile(filesToUpdate, configIndividualPathEclipse,
127
- configsToUpdate, mergeClients, dryRun, removeMissingNodes);
112
+ await processInEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, removeMissingNodes);
128
113
  }
129
-
130
114
  async function processAddMissing(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun) {
131
- await processInEachFile(filesToUpdate, configIndividualPathEclipse,
132
- configsToUpdate, mergeClients, dryRun, addMissingNodes);
115
+ await processInEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, addMissingNodes);
133
116
  }
134
-
135
117
  async function processEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, processAction) {
136
118
  let updatedFiles = 0;
137
119
  const globalConfig = path.join(path.dirname(configIndividualPathEclipse), "config");
138
- for(const file of filesToUpdate) {
139
- for(const c of configsToUpdate) {
120
+ for (const file of filesToUpdate) {
121
+ for (const c of configsToUpdate) {
140
122
  const individualConfigPath = path.join(configIndividualPathEclipse, c, "yaml", file);
141
123
  const relatedConfigsForFile = await getRelatedConfigs(individualConfigPath, mergeClients);
142
- for(const config of relatedConfigsForFile) {
124
+ for (const config of relatedConfigsForFile) {
143
125
  const hasUpdates = processAction(path.join(globalConfig, "yaml", file), config, dryRun);
144
- if(hasUpdates) updatedFiles++;
126
+ if (hasUpdates)
127
+ updatedFiles++;
145
128
  }
146
129
  }
147
130
  }
148
-
149
131
  console.log();
150
132
  console.log(chalk.green(`Summary: Updated ${updatedFiles} files.`));
151
133
  if (dryRun) {
152
- console.log(chalk.yellow("Dry run complete no changes were made."));
153
- } else {
134
+ console.log(chalk.yellow("Dry run complete - no changes were made."));
135
+ }
136
+ else {
154
137
  console.log(chalk.green("Config mutate completed successfully."));
155
138
  }
156
139
  }
157
-
158
140
  // Loop through each file in filesToUpdate and executes processAction
159
141
  async function processInEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, processAction) {
160
- return await processEachFile(filesToUpdate, configIndividualPathEclipse,
161
- configsToUpdate, mergeClients, dryRun,
162
- (globalConfig, individualConfig, dryRun) => processInFile(globalConfig, individualConfig, dryRun, processAction));
142
+ return await processEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, (globalConfig, individualConfig, dryRunFlag) => processInFile(globalConfig, individualConfig, dryRunFlag, processAction));
163
143
  }
164
-
165
144
  // Executes processAction for a yaml config file
166
145
  function processInFile(compareFrom, compareTo, dryRun, processAction) {
167
146
  try {
168
- if(!FS.existsSync(compareFrom) || !FS.existsSync(compareTo)) return;
147
+ if (!FS.existsSync(compareFrom) || !FS.existsSync(compareTo))
148
+ return false;
169
149
  const fromDocument = YAML.parseDocument(FS.readFileSync(compareFrom, "utf-8"));
170
150
  const toDocument = YAML.parseDocument(FS.readFileSync(compareTo, "utf-8"));
171
-
172
151
  const hasChanges = processAction(fromDocument.contents, toDocument.contents);
173
152
  const resultText = toDocument.toString();
174
-
175
-
176
- if(hasChanges) {
177
- if(dryRun) {
153
+ if (hasChanges) {
154
+ if (dryRun) {
178
155
  console.debug(chalk.gray(`[Debug] From file ${compareFrom}`));
179
156
  console.log(chalk.green(`[DryRun] Would Update file: ${compareTo}`));
180
157
  }
@@ -185,73 +162,62 @@ function processInFile(compareFrom, compareTo, dryRun, processAction) {
185
162
  }
186
163
  return hasChanges;
187
164
  }
188
- catch(error) {
189
- if(dryRun) {
190
- console.log(chalk.red(`[DryRun] Error in file: ${compareFrom} <-> ${compareTo}: ${error.message}`));
165
+ catch (error) {
166
+ const message = error instanceof Error ? error.message : String(error);
167
+ if (dryRun) {
168
+ console.log(chalk.red(`[DryRun] Error in file: ${compareFrom} <-> ${compareTo}: ${message}`));
191
169
  }
192
170
  else {
193
- console.log(chalk.red(`Could not update file ${compareFrom} <-> ${compareTo}: ${error.message}`));
171
+ console.log(chalk.red(`Could not update file ${compareFrom} <-> ${compareTo}: ${message}`));
194
172
  }
195
173
  return false;
196
174
  }
197
175
  }
198
-
199
176
  // Returns related configs for a base config file (config.yaml, 1_config.yaml, 2_config.yaml, ...)
200
177
  async function getRelatedConfigs(file, withClients) {
201
178
  const dir = path.dirname(file);
202
179
  const ext = path.extname(file);
203
180
  const name = path.basename(file, ext);
204
-
205
181
  let patterns = [
206
182
  path.join(dir, `${name}${ext}`), // name.yaml
207
183
  ];
208
-
209
- if(withClients)
184
+ if (withClients)
210
185
  patterns.push(path.join(dir, `*_${name}${ext}`)); // *_name.yaml (für mandanten)
211
-
212
186
  patterns = patterns.map(p => p.replaceAll(path.sep, '/'));
213
-
214
187
  return (await fg(patterns, {
215
188
  onlyFiles: true,
216
189
  unique: true
217
190
  })).map(f => f.replaceAll('/', path.sep));
218
191
  }
219
-
220
192
  // only_create
221
- function addMissingNodes(fromNode, toNode) {
193
+ export function addMissingNodes(fromNode, toNode) {
222
194
  let hasChanges = false;
223
-
224
- if (!fromNode || !toNode) return;
225
-
195
+ if (!fromNode || !toNode)
196
+ return false;
226
197
  if (fromNode instanceof YAMLMap && toNode instanceof YAMLMap) {
227
198
  for (const pair of fromNode.items) {
228
199
  const keyNode = pair.key;
229
200
  const fromVal = pair.value;
230
-
231
201
  if (!toNode.has(keyNode)) {
232
202
  toNode.items.push(pair);
233
203
  hasChanges = true;
234
204
  continue;
235
205
  }
236
-
237
206
  const toVal = toNode.get(keyNode, true);
238
- hasChanges |= addMissingNodes(fromVal, toVal);
207
+ hasChanges = hasChanges || addMissingNodes(fromVal, toVal);
239
208
  }
240
209
  return hasChanges;
241
210
  }
242
-
243
211
  if (fromNode instanceof YAMLSeq && toNode instanceof YAMLSeq) {
244
212
  for (const fromItem of fromNode.items) {
245
213
  const fromJson = nodeToJs(fromItem);
246
214
  let exists = false;
247
-
248
215
  for (const toItem of toNode.items) {
249
216
  if (deepEqual(fromJson, nodeToJs(toItem))) {
250
217
  exists = true;
251
218
  break;
252
219
  }
253
220
  }
254
-
255
221
  if (!exists) {
256
222
  toNode.items.push(fromItem);
257
223
  hasChanges = true;
@@ -259,36 +225,31 @@ function addMissingNodes(fromNode, toNode) {
259
225
  }
260
226
  return hasChanges;
261
227
  }
228
+ return hasChanges;
262
229
  }
263
-
264
230
  // remove_missing
265
- function removeMissingNodes(fromNode, toNode) {
231
+ export function removeMissingNodes(fromNode, toNode) {
266
232
  let hasChanges = false;
267
-
268
- if (!fromNode || !toNode) return false;
269
-
233
+ if (!fromNode || !toNode)
234
+ return false;
270
235
  if (fromNode instanceof YAMLMap && toNode instanceof YAMLMap) {
271
236
  for (let i = toNode.items.length - 1; i >= 0; i--) {
272
237
  const toPair = toNode.items[i];
273
238
  const keyNode = toPair.key;
274
-
275
239
  if (!fromNode.has(keyNode)) {
276
240
  toNode.items.splice(i, 1);
277
241
  hasChanges = true;
278
242
  continue;
279
243
  }
280
-
281
244
  const fromVal = fromNode.get(keyNode, true);
282
- hasChanges |= removeMissingNodes(fromVal, toPair.value);
245
+ hasChanges = hasChanges || removeMissingNodes(fromVal, toPair.value);
283
246
  }
284
247
  return hasChanges;
285
248
  }
286
-
287
249
  if (fromNode instanceof YAMLSeq && toNode instanceof YAMLSeq) {
288
250
  for (let i = toNode.items.length - 1; i >= 0; i--) {
289
251
  const toItem = toNode.items[i];
290
252
  const toJson = nodeToJs(toItem);
291
-
292
253
  let exists = false;
293
254
  for (const fromItem of fromNode.items) {
294
255
  if (deepEqual(toJson, nodeToJs(fromItem))) {
@@ -296,7 +257,6 @@ function removeMissingNodes(fromNode, toNode) {
296
257
  break;
297
258
  }
298
259
  }
299
-
300
260
  if (!exists) {
301
261
  toNode.items.splice(i, 1);
302
262
  hasChanges = true;
@@ -304,57 +264,50 @@ function removeMissingNodes(fromNode, toNode) {
304
264
  }
305
265
  return hasChanges;
306
266
  }
307
-
308
267
  return false;
309
268
  }
310
-
311
269
  // create_update_overwrite
312
- function mergeOverwriteNodes(fromNode, toNode) {
270
+ export function mergeOverwriteNodes(fromNode, toNode) {
313
271
  let hasChanges = false;
314
-
315
- if (!fromNode || !toNode) return false;
316
-
272
+ if (!fromNode || !toNode)
273
+ return false;
317
274
  if (fromNode instanceof YAMLMap && toNode instanceof YAMLMap) {
318
275
  for (const fromPair of fromNode.items) {
319
276
  const keyNode = fromPair.key;
320
277
  const fromVal = fromPair.value;
321
-
322
278
  if (!toNode.has(keyNode)) {
323
279
  toNode.items.push(fromPair);
324
280
  hasChanges = true;
325
281
  continue;
326
282
  }
327
-
328
283
  const toVal = toNode.get(keyNode, true);
329
-
330
- if (
331
- fromVal?.constructor === toVal?.constructor &&
332
- (fromVal instanceof YAMLMap || fromVal instanceof YAMLSeq)
333
- ) {
334
- hasChanges |= mergeOverwriteNodes(fromVal, toVal);
335
- } else {
284
+ if (fromVal?.constructor === toVal?.constructor &&
285
+ (fromVal instanceof YAMLMap || fromVal instanceof YAMLSeq)) {
286
+ hasChanges = hasChanges || mergeOverwriteNodes(fromVal, toVal);
287
+ }
288
+ else {
336
289
  toNode.set(keyNode, fromVal);
337
290
  hasChanges = true;
338
291
  }
339
292
  }
340
293
  return hasChanges;
341
294
  }
342
-
343
295
  if (fromNode instanceof YAMLSeq && toNode instanceof YAMLSeq) {
344
296
  toNode.items = [...fromNode.items];
345
297
  return true;
346
298
  }
347
-
348
299
  return false;
349
300
  }
350
-
351
-
352
301
  function nodeToJs(node) {
353
- return node && typeof node.toJSON === "function"
354
- ? node.toJSON()
355
- : node;
302
+ if (node && typeof node === "object") {
303
+ const withToJson = node;
304
+ if (typeof withToJson.toJSON === "function") {
305
+ return withToJson.toJSON();
306
+ }
307
+ }
308
+ return node;
356
309
  }
357
-
358
310
  function deepEqual(a, b) {
359
311
  return JSON.stringify(a) === JSON.stringify(b);
360
- }
312
+ }
313
+ //# sourceMappingURL=configMutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configMutation.js","sourceRoot":"","sources":["../../src/modules/configMutation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=configMutation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configMutation.test.d.ts","sourceRoot":"","sources":["../../src/modules/configMutation.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import YAML from "yaml";
3
+ import { addMissingNodes, mergeOverwriteNodes, removeMissingNodes } from "./configMutation.js";
4
+ describe("configMutation merge helpers", () => {
5
+ it("addMissingNodes adds missing map keys", () => {
6
+ const from = YAML.parseDocument("a: 1\nb: 2");
7
+ const to = YAML.parseDocument("a: 1");
8
+ const changed = addMissingNodes(from.contents, to.contents);
9
+ expect(changed).toBe(true);
10
+ expect(String(to.toString())).toContain("b: 2");
11
+ });
12
+ it("removeMissingNodes removes keys absent from source", () => {
13
+ const from = YAML.parseDocument("a: 1");
14
+ const to = YAML.parseDocument("a: 1\nb: 2");
15
+ const changed = removeMissingNodes(from.contents, to.contents);
16
+ expect(changed).toBe(true);
17
+ expect(String(to.toString())).not.toContain("b:");
18
+ });
19
+ it("mergeOverwriteNodes overwrites scalar values", () => {
20
+ const from = YAML.parseDocument("a: 2\nlist:\n - x\n - y");
21
+ const to = YAML.parseDocument("a: 1\nlist:\n - z");
22
+ const changed = mergeOverwriteNodes(from.contents, to.contents);
23
+ expect(changed).toBe(true);
24
+ const out = String(to.toString());
25
+ expect(out).toContain("a: 2");
26
+ });
27
+ });
28
+ //# sourceMappingURL=configMutation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configMutation.test.js","sourceRoot":"","sources":["../../src/modules/configMutation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE/F,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;QAE5D,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;QAE/D,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;QAEhE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default function csvMerge(): Promise<void>;
2
+ //# sourceMappingURL=csvMerger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csvMerger.d.ts","sourceRoot":"","sources":["../../src/modules/csvMerger.ts"],"names":[],"mappings":"AAKA,wBAA8B,QAAQ,kBAgHrC"}
@@ -0,0 +1,104 @@
1
+ import chalk from 'chalk';
2
+ import csv from 'csv-parser';
3
+ import fs from "fs";
4
+ import prompts from "prompts";
5
+ export default async function csvMerge() {
6
+ console.log();
7
+ let success = true;
8
+ const promptResults = await prompts([
9
+ {
10
+ // Output-File
11
+ type: 'text',
12
+ name: 'output',
13
+ message: 'Output-File?',
14
+ initial: "results.csv"
15
+ },
16
+ {
17
+ // Filterverwendung
18
+ type: 'toggle',
19
+ name: 'useFilter',
20
+ message: 'Use Filter?',
21
+ initial: false,
22
+ active: 'yes',
23
+ inactive: 'no'
24
+ },
25
+ {
26
+ type: (prev) => prev == true ? "select" : null,
27
+ name: 'filtertype',
28
+ message: 'Filter type?',
29
+ choices: [
30
+ { title: 'Equal', value: 'eq' },
31
+ { title: 'Non-Equal', value: 'neq' }
32
+ ]
33
+ },
34
+ {
35
+ type: (prev) => prev != "" ? "text" : null,
36
+ name: 'filterfield',
37
+ message: 'Filter field?'
38
+ },
39
+ {
40
+ type: (prev) => prev != "" ? "text" : null,
41
+ name: 'filtervalue',
42
+ message: 'Filter value?'
43
+ },
44
+ ], {
45
+ onCancel: () => {
46
+ console.log();
47
+ console.log(chalk.red("Cancelled CSV-Merge!"));
48
+ console.log();
49
+ success = false;
50
+ }
51
+ });
52
+ if (success) {
53
+ console.log();
54
+ const files = fs.readdirSync(process.cwd(), { withFileTypes: true }).filter((file) => file.isFile() && file.name.endsWith(".csv") && file.name != promptResults.output);
55
+ let finalResult = [];
56
+ files.forEach(file => {
57
+ const results = [];
58
+ fs.createReadStream(process.cwd() + "/" + file.name)
59
+ .pipe(csv({ separator: ";", quote: "'" }))
60
+ .on('data', (data) => results.push(data))
61
+ .on('end', () => {
62
+ const filteredResults = results.map((row) => {
63
+ const newRow = {};
64
+ Object.entries(row).forEach((entry) => {
65
+ newRow[entry[0].replaceAll("'", "").replaceAll("`", "")] = entry[1];
66
+ });
67
+ newRow.file = file.name;
68
+ return newRow;
69
+ }).filter((row) => {
70
+ if (promptResults.useFilter) {
71
+ const filterField = promptResults.filterfield ?? "";
72
+ const filterValue = promptResults.filtervalue ?? "";
73
+ switch (promptResults.filtertype) {
74
+ case "neq":
75
+ if (row[filterField] != filterValue) {
76
+ return true;
77
+ }
78
+ return false;
79
+ case "eq":
80
+ if (row[filterField] == filterValue) {
81
+ return true;
82
+ }
83
+ return false;
84
+ }
85
+ return false;
86
+ }
87
+ return true;
88
+ });
89
+ finalResult = finalResult.concat(filteredResults);
90
+ let firstLine = true;
91
+ fs.writeFileSync(process.cwd() + "/" + promptResults.output, finalResult.map((row) => {
92
+ let prev = "";
93
+ if (firstLine) {
94
+ prev = Object.keys(row).map((entry) => { return "\"" + entry + "\""; }).join(";") + "\n";
95
+ firstLine = false;
96
+ }
97
+ return prev + Object.values(row).map((entry) => { return "\"" + String(entry) + "\""; }).join(";");
98
+ }).join("\n"));
99
+ console.log(chalk.green(file.name + " merged."));
100
+ });
101
+ });
102
+ }
103
+ }
104
+ //# sourceMappingURL=csvMerger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csvMerger.js","sourceRoot":"","sources":["../../src/modules/csvMerger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=csvMerger.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csvMerger.test.d.ts","sourceRoot":"","sources":["../../src/modules/csvMerger.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ const mocks = vi.hoisted(() => ({
3
+ prompts: vi.fn(),
4
+ readdirSync: vi.fn(),
5
+ createReadStream: vi.fn(),
6
+ writeFileSync: vi.fn(),
7
+ csvParser: vi.fn()
8
+ }));
9
+ vi.mock("prompts", () => ({
10
+ default: mocks.prompts
11
+ }));
12
+ vi.mock("csv-parser", () => ({
13
+ default: mocks.csvParser
14
+ }));
15
+ vi.mock("fs", () => ({
16
+ default: {
17
+ readdirSync: mocks.readdirSync,
18
+ createReadStream: mocks.createReadStream,
19
+ writeFileSync: mocks.writeFileSync
20
+ }
21
+ }));
22
+ import csvMerge from "./csvMerger.js";
23
+ function mockCsvRows(rows) {
24
+ const piped = {
25
+ on: vi.fn((event, cb) => {
26
+ if (event === "data") {
27
+ rows.forEach((row) => cb(row));
28
+ }
29
+ if (event === "end") {
30
+ cb();
31
+ }
32
+ return piped;
33
+ })
34
+ };
35
+ mocks.createReadStream.mockReturnValue({
36
+ pipe: vi.fn(() => piped)
37
+ });
38
+ }
39
+ describe("csvMerger", () => {
40
+ beforeEach(() => {
41
+ vi.clearAllMocks();
42
+ mocks.csvParser.mockReturnValue({});
43
+ });
44
+ it("stops when prompt flow is cancelled", async () => {
45
+ mocks.prompts.mockImplementation(async (_questions, options) => {
46
+ options?.onCancel?.();
47
+ return {};
48
+ });
49
+ await csvMerge();
50
+ expect(mocks.readdirSync).not.toHaveBeenCalled();
51
+ expect(mocks.writeFileSync).not.toHaveBeenCalled();
52
+ });
53
+ it("writes merged and filtered output", async () => {
54
+ mocks.prompts.mockResolvedValue({
55
+ output: "results.csv",
56
+ useFilter: true,
57
+ filtertype: "eq",
58
+ filterfield: "status",
59
+ filtervalue: "ok"
60
+ });
61
+ mocks.readdirSync.mockReturnValue([
62
+ { isFile: () => true, name: "input.csv" }
63
+ ]);
64
+ mockCsvRows([
65
+ { "'status'": "ok", "`id`": "1" },
66
+ { "'status'": "no", "`id`": "2" }
67
+ ]);
68
+ await csvMerge();
69
+ expect(mocks.writeFileSync).toHaveBeenCalledTimes(1);
70
+ const [, output] = mocks.writeFileSync.mock.calls[0];
71
+ expect(output).toContain('"status";"id";"file"');
72
+ expect(output).toContain('"ok";"1";"input.csv"');
73
+ expect(output).not.toContain('"no";"2";"input.csv"');
74
+ });
75
+ });
76
+ //# sourceMappingURL=csvMerger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csvMerger.test.js","sourceRoot":"","sources":["../../src/modules/csvMerger.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export default function deleteDBMand(_cli: unknown): Promise<void>;
2
+ //# sourceMappingURL=deleteDB.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteDB.d.ts","sourceRoot":"","sources":["../../src/modules/deleteDB.ts"],"names":[],"mappings":"AAYA,wBAA8B,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EvE"}