tnp-helpers 19.0.35 → 19.0.37

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 (197) hide show
  1. package/browser/README.md +24 -24
  2. package/browser/fesm2022/tnp-helpers.mjs +441 -68
  3. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  4. package/browser/lib/base/classes/base-command-line-feature.d.ts +48 -0
  5. package/browser/lib/base/classes/base-git.d.ts +1 -1
  6. package/browser/lib/base/classes/base-project.d.ts +1 -1
  7. package/browser/lib/base/classes/base-vscode.d.ts +4 -0
  8. package/browser/lib/base/classes/index.d.ts +2 -1
  9. package/browser/lib/base/core-project.d.ts +4 -4
  10. package/browser/lib/build-info._auto-generated_.d.ts +1 -1
  11. package/browser/lib/models.d.ts +40 -1
  12. package/browser/lib/utils.d.ts +15 -1
  13. package/browser/package.json +1 -1
  14. package/index.js.map +1 -1
  15. package/lib/base/classes/base-bower-json.js.map +1 -1
  16. package/lib/base/classes/base-cli-worker/base-cli-worker-config.js.map +1 -1
  17. package/lib/base/classes/base-cli-worker/base-cli-worker-controller.js.map +1 -1
  18. package/lib/base/classes/base-cli-worker/base-cli-worker-terminal-ui.js.map +1 -1
  19. package/lib/base/classes/base-cli-worker/base-cli-worker.js.map +1 -1
  20. package/lib/base/classes/base-cli-worker/index.js.map +1 -1
  21. package/lib/base/classes/base-command-line-feature.backend.d.ts +3 -3
  22. package/lib/base/classes/base-command-line-feature.backend.js.map +1 -1
  23. package/lib/base/classes/base-command-line-feature.d.ts +47 -0
  24. package/lib/base/classes/base-command-line-feature.js +147 -0
  25. package/lib/base/classes/base-command-line-feature.js.map +1 -0
  26. package/lib/base/classes/base-compiler-for-project.js.map +1 -1
  27. package/lib/base/classes/base-db.js.map +1 -1
  28. package/lib/base/classes/base-debounce-compiler-for-project.js.map +1 -1
  29. package/lib/base/classes/base-feature-for-project.js.map +1 -1
  30. package/lib/base/classes/base-git.d.ts +1 -1
  31. package/lib/base/classes/base-git.js +5 -2
  32. package/lib/base/classes/base-git.js.map +1 -1
  33. package/lib/base/classes/base-global-command-line.backend.d.ts +9 -2
  34. package/lib/base/classes/base-global-command-line.backend.js +218 -21
  35. package/lib/base/classes/base-global-command-line.backend.js.map +1 -1
  36. package/lib/base/classes/base-ignore-hide.js.map +1 -1
  37. package/lib/base/classes/base-json-file-reader.js.map +1 -1
  38. package/lib/base/classes/base-library-build.js.map +1 -1
  39. package/lib/base/classes/base-linked-projects.js +16 -3
  40. package/lib/base/classes/base-linked-projects.js.map +1 -1
  41. package/lib/base/classes/base-node-modules.js.map +1 -1
  42. package/lib/base/classes/base-npm-helpers.js.map +1 -1
  43. package/lib/base/classes/base-package-json.js.map +1 -1
  44. package/lib/base/classes/base-powershell.js.map +1 -1
  45. package/lib/base/classes/base-process-manager.js.map +1 -1
  46. package/lib/base/classes/base-project-resolver.js.map +1 -1
  47. package/lib/base/classes/base-project.d.ts +1 -1
  48. package/lib/base/classes/base-project.js +3 -3
  49. package/lib/base/classes/base-project.js.map +1 -1
  50. package/lib/base/classes/base-quick-fixes.js.map +1 -1
  51. package/lib/base/classes/base-release-process.js.map +1 -1
  52. package/lib/base/classes/base-start-config.backend.js.map +1 -1
  53. package/lib/base/classes/base-static-pages.js.map +1 -1
  54. package/lib/base/classes/base-vscode.d.ts +4 -0
  55. package/lib/base/classes/base-vscode.js +13 -4
  56. package/lib/base/classes/base-vscode.js.map +1 -1
  57. package/lib/base/classes/index.d.ts +1 -1
  58. package/lib/base/classes/index.js +1 -1
  59. package/lib/base/classes/index.js.map +1 -1
  60. package/lib/base/commit-data.js.map +1 -1
  61. package/lib/base/config-database.js.map +1 -1
  62. package/lib/base/core-project.d.ts +4 -4
  63. package/lib/base/core-project.js.map +1 -1
  64. package/lib/base/gh-temp-code.js.map +1 -1
  65. package/lib/base/index-rebuilder.backend.js.map +1 -1
  66. package/lib/base/index.js.map +1 -1
  67. package/lib/base/linked-project.js +19 -0
  68. package/lib/base/linked-project.js.map +1 -1
  69. package/lib/base/project-database.js.map +1 -1
  70. package/lib/base/tcp-udp-ports/index.js.map +1 -1
  71. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -2
  72. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -1
  73. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -1
  74. package/lib/base/tcp-udp-ports/ports.entity.d.ts +1 -1
  75. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -1
  76. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +2 -2
  77. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -1
  78. package/lib/base/tcp-udp-ports/tcp-upd-ports-terminal-ui.js.map +1 -1
  79. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -1
  80. package/lib/base/translate.js.map +1 -1
  81. package/lib/build-info._auto-generated_.d.ts +1 -1
  82. package/lib/build-info._auto-generated_.js +1 -1
  83. package/lib/build-info._auto-generated_.js.map +1 -1
  84. package/lib/env/env.angular-node-app.d.ts +6 -0
  85. package/lib/env/env.angular-node-app.js +8 -2
  86. package/lib/env/env.angular-node-app.js.map +1 -1
  87. package/lib/env/env.docs-webapp.d.ts +6 -0
  88. package/lib/env/env.docs-webapp.js +8 -2
  89. package/lib/env/env.docs-webapp.js.map +1 -1
  90. package/lib/env/env.electron-app.d.ts +6 -0
  91. package/lib/env/env.electron-app.js +8 -2
  92. package/lib/env/env.electron-app.js.map +1 -1
  93. package/lib/env/env.mobile-app.d.ts +6 -0
  94. package/lib/env/env.mobile-app.js +8 -2
  95. package/lib/env/env.mobile-app.js.map +1 -1
  96. package/lib/env/env.npm-lib-and-cli-tool.d.ts +6 -0
  97. package/lib/env/env.npm-lib-and-cli-tool.js +8 -2
  98. package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
  99. package/lib/env/env.vscode-plugin.d.ts +6 -0
  100. package/lib/env/env.vscode-plugin.js +8 -2
  101. package/lib/env/env.vscode-plugin.js.map +1 -1
  102. package/lib/env/index.js.map +1 -1
  103. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  104. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  105. package/lib/helpers/for-backend/helpers-dependencies.backend.js.map +1 -1
  106. package/lib/helpers/for-backend/helpers-file-folders.js.map +1 -1
  107. package/lib/helpers/for-backend/helpers-git.backend.js +27 -1
  108. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  109. package/lib/helpers/for-backend/helpers-network.backend.js.map +1 -1
  110. package/lib/helpers/for-backend/helpers-npm.backend.js.map +1 -1
  111. package/lib/helpers/for-backend/helpers-path.backend.js.map +1 -1
  112. package/lib/helpers/for-backend/helpers-process.js.map +1 -1
  113. package/lib/helpers/for-backend/helpers-system-terminal.backend.js.map +1 -1
  114. package/lib/helpers/for-backend/helpers-vscode.backend.js.map +1 -1
  115. package/lib/helpers/for-browser/angular.helper.js +2 -2
  116. package/lib/helpers/for-browser/angular.helper.js.map +1 -1
  117. package/lib/helpers/for-browser/helpers-browser.js.map +1 -1
  118. package/lib/helpers/helpers-array-obj.js.map +1 -1
  119. package/lib/helpers/helpers-json5.backend.js.map +1 -1
  120. package/lib/helpers/helpers-numbers.js.map +1 -1
  121. package/lib/helpers/helpers-strings-regexes.js.map +1 -1
  122. package/lib/helpers/helpers-strings.js.map +1 -1
  123. package/lib/helpers/helpers.d.ts +0 -2
  124. package/lib/helpers/helpers.js +4 -4
  125. package/lib/helpers/helpers.js.map +1 -1
  126. package/lib/index._auto-generated_.js.map +1 -1
  127. package/lib/index.js.map +1 -1
  128. package/lib/lowdb/adapters/Memory.js.map +1 -1
  129. package/lib/lowdb/adapters/browser/LocalStorage.js.map +1 -1
  130. package/lib/lowdb/adapters/browser/SessionStorage.js.map +1 -1
  131. package/lib/lowdb/adapters/browser/WebStorage.js.map +1 -1
  132. package/lib/lowdb/adapters/node/DataFile.js.map +1 -1
  133. package/lib/lowdb/adapters/node/JSONFile.js.map +1 -1
  134. package/lib/lowdb/adapters/node/TextFile.js.map +1 -1
  135. package/lib/lowdb/adapters/node/steno.js.map +1 -1
  136. package/lib/lowdb/browser.js.map +1 -1
  137. package/lib/lowdb/core/Low.js.map +1 -1
  138. package/lib/lowdb/examples/browser.js.map +1 -1
  139. package/lib/lowdb/examples/cli.js.map +1 -1
  140. package/lib/lowdb/examples/in-memory.js.map +1 -1
  141. package/lib/lowdb/examples/server.js.map +1 -1
  142. package/lib/lowdb/index.js.map +1 -1
  143. package/lib/lowdb/node.js.map +1 -1
  144. package/lib/lowdb/presets/browser.js.map +1 -1
  145. package/lib/lowdb/presets/node.js.map +1 -1
  146. package/lib/models.d.ts +40 -1
  147. package/lib/models.js.map +1 -1
  148. package/lib/old/base-component.js +2 -2
  149. package/lib/old/base-component.js.map +1 -1
  150. package/lib/old/base-formly-component.js +2 -2
  151. package/lib/old/base-formly-component.js.map +1 -1
  152. package/lib/old/condition-wait.js.map +1 -1
  153. package/lib/old/dual-component-ctrl.js +2 -2
  154. package/lib/old/dual-component-ctrl.js.map +1 -1
  155. package/lib/old/execute-command.js.map +1 -1
  156. package/lib/old/helpers.js.map +1 -1
  157. package/lib/old/models.js.map +1 -1
  158. package/lib/utils.d.ts +15 -1
  159. package/lib/utils.js +179 -40
  160. package/lib/utils.js.map +1 -1
  161. package/lib/validators/validators-firedev.js.map +1 -1
  162. package/lib/validators/validators-git.js.map +1 -1
  163. package/lib/validators/validators-network.js.map +1 -1
  164. package/lib/validators/validators.js.map +1 -1
  165. package/migrations/1736198527297_init.js +1 -0
  166. package/migrations/1736198527297_init.js.map +1 -1
  167. package/migrations/1736199486472_addingNotAssignablePorts.js +1 -0
  168. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -1
  169. package/migrations/1736454437350_addFreePorts.js +1 -0
  170. package/migrations/1736454437350_addFreePorts.js.map +1 -1
  171. package/migrations/index.js.map +1 -1
  172. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  173. package/package.json +1 -1
  174. package/websql/README.md +24 -24
  175. package/websql/fesm2022/tnp-helpers.mjs +361 -7
  176. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  177. package/websql/lib/base/classes/base-command-line-feature.d.ts +48 -0
  178. package/websql/lib/base/classes/base-git.d.ts +1 -1
  179. package/websql/lib/base/classes/base-project.d.ts +1 -1
  180. package/websql/lib/base/classes/base-vscode.d.ts +4 -0
  181. package/websql/lib/base/classes/index.d.ts +2 -1
  182. package/websql/lib/base/core-project.d.ts +4 -4
  183. package/websql/lib/build-info._auto-generated_.d.ts +1 -1
  184. package/websql/lib/models.d.ts +40 -1
  185. package/websql/lib/utils.d.ts +15 -1
  186. package/websql/package.json +1 -1
  187. package/lib/env-backend._auto-generated_.d.ts +0 -34
  188. package/lib/env-backend._auto-generated_.js +0 -38
  189. package/lib/env-backend._auto-generated_.js.map +0 -1
  190. package/lib/env-browser._auto-generated_.d.ts +0 -34
  191. package/lib/env-browser._auto-generated_.js +0 -38
  192. package/lib/env-browser._auto-generated_.js.map +0 -1
  193. package/lib/env.backend.d.ts +0 -34
  194. package/lib/env.backend.js +0 -40
  195. package/lib/env.backend.js.map +0 -1
  196. package/lib/env.browser.d.ts +0 -34
  197. package/tmp-environment.json +0 -33
package/lib/utils.d.ts CHANGED
@@ -50,7 +50,10 @@ export declare namespace UtilsTypescript {
50
50
  /**
51
51
  * Attempts to set or add an exported const with given name and value.
52
52
  */
53
- export const setValueToVariableInTsFile: (tsAbsFilePath: string, variableName: string, valueOfVariable: any, addIfNotExists?: boolean) => void;
53
+ export const setValueToVariableInTsFile: (tsAbsFilePath: string, variableName: string, valueOfVariable: any, options?: {
54
+ skipAddIfNotExists?: boolean;
55
+ useRawStringValue?: boolean;
56
+ }) => void;
54
57
  export class TsImportExport {
55
58
  /**
56
59
  * for external modification
@@ -153,6 +156,17 @@ export declare namespace UtilsVSCode {
153
156
  const generateFancyColor: () => string;
154
157
  const vscodeImport: () => typeof vscodeType;
155
158
  }
159
+ export declare namespace UtilsDotFile {
160
+ const setValueToDotFile: (dotFileAbsPath: string | string[], value: string, key: string | number | boolean) => void;
161
+ const getValueFromDotFile: (dotFileAbsPath: string | string[], key: string) => string | number | boolean;
162
+ const setValuesKeysFromObject: (dotFileAbsPath: string | string[], obj: Record<string, string | number | boolean>, options?: {
163
+ /**
164
+ * if true, it will overwrite existing keys
165
+ */
166
+ setAsNewFile?: boolean;
167
+ }) => void;
168
+ const getValuesKeysAsJsonObject: <T = Record<string, string | number | boolean>>(dotFileAbsPath: string | string[]) => T;
169
+ }
156
170
  export declare namespace UtilsZipBrowser {
157
171
  const zipDirBrowser: (fileList: FileList) => Promise<Blob>;
158
172
  const unzipArchiveBrowser: (zipBlob: Blob) => Promise<Map<string, Blob>>;
package/lib/utils.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UtilsZip = exports.UtilsZipBrowser = exports.UtilsVSCode = exports.UtilsQuickFixes = exports.UtilsMd = exports.UtilsHttp = exports.UtilsTypescript = exports.UtilsNpm = void 0;
3
+ exports.UtilsZip = exports.UtilsZipBrowser = exports.UtilsDotFile = exports.UtilsVSCode = exports.UtilsQuickFixes = exports.UtilsMd = exports.UtilsHttp = exports.UtilsTypescript = exports.UtilsNpm = void 0;
4
4
  //#region imports
5
- const lib_1 = require("tnp-core/lib");
5
+ const lib_1 = require("tnp-config/lib");
6
6
  const lib_2 = require("tnp-core/lib");
7
+ const lib_3 = require("tnp-core/lib");
7
8
  const typescript_1 = require("typescript");
8
9
  const index_1 = require("./index");
9
10
  //#endregion
@@ -12,7 +13,7 @@ var UtilsNpm;
12
13
  (function (UtilsNpm) {
13
14
  //#region is special version
14
15
  UtilsNpm.isSpecialVersion = (version) => {
15
- return lib_2.CoreModels.NpmSpecialVersions.includes(version);
16
+ return lib_3.CoreModels.NpmSpecialVersions.includes(version);
16
17
  };
17
18
  //#endregion
18
19
  //#region clear version
@@ -23,7 +24,7 @@ var UtilsNpm;
23
24
  }
24
25
  version = (version || '')
25
26
  .trim()
26
- .replace(new RegExp(lib_2.Utils.escapeStringForRegEx('undefined'), 'g'), '0');
27
+ .replace(new RegExp(lib_3.Utils.escapeStringForRegEx('undefined'), 'g'), '0');
27
28
  if (removePrefixes) {
28
29
  version = version.replace('^', '').replace('~', '');
29
30
  }
@@ -41,7 +42,7 @@ var UtilsNpm;
41
42
  }
42
43
  version = (version || '')
43
44
  .trim()
44
- .replace(new RegExp(lib_2.Utils.escapeStringForRegEx('undefined'), 'g'), '0');
45
+ .replace(new RegExp(lib_3.Utils.escapeStringForRegEx('undefined'), 'g'), '0');
45
46
  const splited = version.split('.');
46
47
  let [major, minor, patch, alphaOrBetaOrRc] = splited;
47
48
  if (splited.length === 1) {
@@ -286,13 +287,13 @@ var UtilsTypescript;
286
287
  //#region format file(s) with prettier
287
288
  UtilsTypescript.formatFile = (absPathToFile) => {
288
289
  //#region @backendFunc
289
- absPathToFile = (0, lib_1.crossPlatformPath)(absPathToFile);
290
+ absPathToFile = (0, lib_2.crossPlatformPath)(absPathToFile);
290
291
  if (index_1.Helpers.exists(absPathToFile)) {
291
292
  const { execSync } = require('child_process');
292
293
  index_1.Helpers.logInfo(`Formatting file: ${absPathToFile}`);
293
294
  try {
294
- execSync(`prettier --write ${lib_1.path.basename(absPathToFile)}`, {
295
- cwd: lib_1.path.dirname(absPathToFile),
295
+ execSync(`prettier --write ${lib_2.path.basename(absPathToFile)}`, {
296
+ cwd: lib_2.path.dirname(absPathToFile),
296
297
  });
297
298
  }
298
299
  catch (error) {
@@ -322,13 +323,13 @@ var UtilsTypescript;
322
323
  //#region lint file(s) with eslint
323
324
  UtilsTypescript.eslintFixFile = (absPathToFile) => {
324
325
  //#region @backendFunc
325
- absPathToFile = (0, lib_1.crossPlatformPath)(absPathToFile);
326
+ absPathToFile = (0, lib_2.crossPlatformPath)(absPathToFile);
326
327
  if (index_1.Helpers.exists(absPathToFile)) {
327
328
  const { execSync } = require('child_process');
328
329
  index_1.Helpers.logInfo(`Fixing file with eslint: ${absPathToFile}`);
329
330
  try {
330
- execSync(`npx --yes eslint --fix ${lib_1.path.basename(absPathToFile)}`, {
331
- cwd: lib_1.path.dirname(absPathToFile),
331
+ execSync(`npx --yes eslint --fix ${lib_2.path.basename(absPathToFile)}`, {
332
+ cwd: lib_2.path.dirname(absPathToFile),
332
333
  });
333
334
  }
334
335
  catch (error) { }
@@ -338,7 +339,7 @@ var UtilsTypescript;
338
339
  };
339
340
  UtilsTypescript.eslintFixAllFilesInsideFolder = (absPathToFolder) => {
340
341
  //#region @backendFunc
341
- absPathToFolder = (0, lib_1.crossPlatformPath)(absPathToFolder);
342
+ absPathToFolder = (0, lib_2.crossPlatformPath)(absPathToFolder);
342
343
  if (index_1.Helpers.exists(absPathToFolder)) {
343
344
  index_1.Helpers.info(`Fixing files with eslint in: ${absPathToFolder}`);
344
345
  const lintFixFn = () => {
@@ -450,7 +451,7 @@ var UtilsTypescript;
450
451
  //#region wrap one line with comment
451
452
  UtilsTypescript.wrapWithComment = (oneLineComment, absDestFilePath) => {
452
453
  //#region @backendFunc
453
- const ext = lib_1.path.extname(absDestFilePath).toLowerCase();
454
+ const ext = lib_2.path.extname(absDestFilePath).toLowerCase();
454
455
  let commentSyntax;
455
456
  switch (ext) {
456
457
  case '.ts':
@@ -487,11 +488,13 @@ var UtilsTypescript;
487
488
  /**
488
489
  * Attempts to set or add an exported const with given name and value.
489
490
  */
490
- UtilsTypescript.setValueToVariableInTsFile = (tsAbsFilePath, variableName, valueOfVariable, addIfNotExists = true) => {
491
+ UtilsTypescript.setValueToVariableInTsFile = (tsAbsFilePath, variableName, valueOfVariable, options) => {
491
492
  //#region @backendFunc
492
493
  const sourceText = index_1.Helpers.readFile(tsAbsFilePath);
493
494
  const sourceFile = (0, typescript_1.createSourceFile)(tsAbsFilePath, sourceText, typescript_1.ScriptTarget.Latest,
494
495
  /*setParentNodes */ true);
496
+ options = options || {};
497
+ const addIfNotExists = !options.skipAddIfNotExists;
495
498
  // We'll build an AST transformer that modifies or inserts our variable declaration
496
499
  const transformer = (context) => {
497
500
  const { factory } = context;
@@ -510,7 +513,12 @@ var UtilsTypescript;
510
513
  // we wrap it with quotes; otherwise, create a numeric or object literal.
511
514
  let initializer;
512
515
  if (typeof valueOfVariable === 'string') {
513
- initializer = factory.createStringLiteral(valueOfVariable);
516
+ if (options.useRawStringValue) {
517
+ initializer = factory.createIdentifier(valueOfVariable);
518
+ }
519
+ else {
520
+ initializer = factory.createStringLiteral(valueOfVariable);
521
+ }
514
522
  }
515
523
  else if (typeof valueOfVariable === 'number') {
516
524
  initializer = factory.createNumericLiteral(valueOfVariable);
@@ -677,14 +685,17 @@ var UtilsTypescript;
677
685
  //#endregion
678
686
  //#region helpers / get quote type
679
687
  const getQuoteType = (text) => {
688
+ //#region @websqlFunc
680
689
  if (text.startsWith('`'))
681
690
  return 'tics';
682
691
  if (text.startsWith("'"))
683
692
  return 'single';
684
693
  return 'double';
694
+ //#endregion
685
695
  };
686
696
  //#endregion
687
697
  const extractImportExportElements = (node) => {
698
+ //#region @websqlFunc
688
699
  const elements = [];
689
700
  if ((0, typescript_1.isImportDeclaration)(node) && node.importClause) {
690
701
  // Check if there are named imports inside { }
@@ -700,6 +711,7 @@ var UtilsTypescript;
700
711
  }
701
712
  }
702
713
  return elements;
714
+ //#endregion
703
715
  };
704
716
  UtilsTypescript.recognizeImportsFromFile = (fileAbsPAth) => {
705
717
  //#region @backendFunc
@@ -824,9 +836,9 @@ var UtilsTypescript;
824
836
  index_1.Helpers.taskStarted(`(before prettier) Fixing HTML templates in`);
825
837
  const files = index_1.Helpers.filesFrom(directoryPath, true, false);
826
838
  for (const fullPath of files) {
827
- const file = lib_1.path.basename(fullPath);
839
+ const file = lib_2.path.basename(fullPath);
828
840
  if (index_1.Helpers.exists(fullPath)) {
829
- const stat = lib_1.fse.statSync(fullPath);
841
+ const stat = lib_2.fse.statSync(fullPath);
830
842
  if (file.endsWith('.html')) {
831
843
  const original = index_1.Helpers.readFile(fullPath);
832
844
  const fixed = escapeAtInHtmlText(original);
@@ -843,13 +855,14 @@ var UtilsTypescript;
843
855
  //#endregion
844
856
  //#region remove tagged imports/exports
845
857
  function removeTaggedImportExport(tsFileContent, tags) {
858
+ //#region @websqlFunc
846
859
  const sourceFile = (0, typescript_1.createSourceFile)('temp.ts', tsFileContent, typescript_1.ScriptTarget.Latest, true, typescript_1.ScriptKind.TS);
847
860
  // debug && console.log(tsFileContent);
848
861
  const lines = tsFileContent.split(/\r?\n/);
849
862
  const tagRegex = new RegExp(tags
850
863
  .map(t => (Array.isArray(t) ? t[0] : t))
851
864
  .filter(Boolean)
852
- .map(lib_2.Utils.escapeStringForRegEx)
865
+ .map(lib_3.Utils.escapeStringForRegEx)
853
866
  .join('|'), 'i');
854
867
  let a = 0;
855
868
  for (const statement of sourceFile.statements) {
@@ -883,6 +896,7 @@ var UtilsTypescript;
883
896
  const result = lines.join('\n');
884
897
  // debug && console.log(result)
885
898
  return result;
899
+ //#endregion
886
900
  }
887
901
  UtilsTypescript.removeTaggedImportExport = removeTaggedImportExport;
888
902
  //#endregion
@@ -1142,8 +1156,8 @@ var UtilsQuickFixes;
1142
1156
  UtilsQuickFixes.replaceElectronWithNothing = (jsContent, packageName) => {
1143
1157
  //#region @backendFunc
1144
1158
  return jsContent
1145
- .replace(new RegExp(lib_2.Utils.escapeStringForRegEx(`mod${'ule.exports'} = ${'requ' + 'ire'}("${packageName}");`), 'g'), `/* --- replaced ${packageName} --- */`)
1146
- .replace(new RegExp(lib_2.Utils.escapeStringForRegEx(`var ${lib_2._.snakeCase(packageName)}_1 = ${'req' + 'uire'}("${packageName}");`), 'g'), `/* --- replaced ${packageName} --- */`);
1159
+ .replace(new RegExp(lib_3.Utils.escapeStringForRegEx(`mod${'ule.exports'} = ${'requ' + 'ire'}("${packageName}");`), 'g'), `/* --- replaced ${packageName} --- */`)
1160
+ .replace(new RegExp(lib_3.Utils.escapeStringForRegEx(`var ${lib_3._.snakeCase(packageName)}_1 = ${'req' + 'uire'}("${packageName}");`), 'g'), `/* --- replaced ${packageName} --- */`);
1147
1161
  // var electron_1 = require("electron");
1148
1162
  //#endregion
1149
1163
  };
@@ -1214,7 +1228,7 @@ var UtilsVSCode;
1214
1228
  };
1215
1229
  UtilsVSCode.vscodeImport = () => {
1216
1230
  //#region @backendFunc
1217
- if (!lib_1.UtilsOs.isRunningInVscodeExtension()) {
1231
+ if (!lib_2.UtilsOs.isRunningInVscodeExtension()) {
1218
1232
  return {};
1219
1233
  }
1220
1234
  const vscode = require('vsc' + 'ode');
@@ -1223,6 +1237,128 @@ var UtilsVSCode;
1223
1237
  };
1224
1238
  })(UtilsVSCode || (exports.UtilsVSCode = UtilsVSCode = {}));
1225
1239
  //#endregion
1240
+ //#region utils dot file
1241
+ var UtilsDotFile;
1242
+ (function (UtilsDotFile) {
1243
+ //#region parse value from dot file util
1244
+ const parseValue = (rawValue) => {
1245
+ const val = rawValue.trim().replace(/^"|"$/g, '');
1246
+ // Try boolean
1247
+ if (val.toLowerCase() === 'true')
1248
+ return true;
1249
+ if (val.toLowerCase() === 'false')
1250
+ return false;
1251
+ // Try number
1252
+ if (!isNaN(Number(val)) && val !== '')
1253
+ return Number(val);
1254
+ return val;
1255
+ };
1256
+ //#endregion
1257
+ //#region set value to/from dot file
1258
+ UtilsDotFile.setValueToDotFile = (dotFileAbsPath, value, key) => {
1259
+ //#region @backendFunc
1260
+ dotFileAbsPath = (0, lib_2.crossPlatformPath)(dotFileAbsPath);
1261
+ let envContent = '';
1262
+ if (lib_2.fse.existsSync(dotFileAbsPath)) {
1263
+ envContent = index_1.Helpers.readFile(dotFileAbsPath, '');
1264
+ }
1265
+ else {
1266
+ // Create file if it doesn't exist
1267
+ index_1.Helpers.writeFile(dotFileAbsPath, '');
1268
+ index_1.Helpers.logInfo(`[${lib_1.config.frameworkName}-helpers] Created ${lib_2.path.basename(dotFileAbsPath)}`);
1269
+ envContent = '';
1270
+ }
1271
+ const regex = new RegExp(`^${key}=.*$`, 'm');
1272
+ if (regex.test(envContent)) {
1273
+ // Replace existing
1274
+ envContent = envContent.replace(regex, `${key}=${value}`);
1275
+ }
1276
+ else {
1277
+ // Append new
1278
+ if (envContent.length > 0 && !envContent.endsWith('\n')) {
1279
+ envContent += '\n';
1280
+ }
1281
+ envContent += `${key}=${value}\n`;
1282
+ }
1283
+ index_1.Helpers.writeFile(dotFileAbsPath, envContent);
1284
+ index_1.Helpers.info(`[${lib_1.config.frameworkName}-helpers] Updated ${lib_2.path.basename(dotFileAbsPath)}: ${key}=${value}`);
1285
+ //#endregion
1286
+ };
1287
+ //#endregion
1288
+ //#region get value from dot file
1289
+ UtilsDotFile.getValueFromDotFile = (dotFileAbsPath, key) => {
1290
+ //#region @backendFunc
1291
+ dotFileAbsPath = (0, lib_2.crossPlatformPath)(dotFileAbsPath);
1292
+ if (!lib_2.fse.existsSync(dotFileAbsPath)) {
1293
+ index_1.Helpers.warn(`[${lib_1.config.frameworkName}-helpers] File ${lib_2.path.basename(dotFileAbsPath)} does not exist.`);
1294
+ return;
1295
+ }
1296
+ const envContent = lib_2.fse.readFileSync(dotFileAbsPath, 'utf-8');
1297
+ // Parse line by line
1298
+ const lines = envContent.split(/\r?\n/);
1299
+ for (const line of lines) {
1300
+ const trimmed = line.trim();
1301
+ if (!trimmed || trimmed.startsWith('#'))
1302
+ continue;
1303
+ const [k, ...rest] = trimmed.split('=');
1304
+ if (k === key) {
1305
+ return parseValue(rest.join('='));
1306
+ }
1307
+ }
1308
+ //#endregion
1309
+ };
1310
+ //#endregion
1311
+ //#region set values keys from object
1312
+ UtilsDotFile.setValuesKeysFromObject = (dotFileAbsPath, obj, options) => {
1313
+ //#region @backendFunc
1314
+ dotFileAbsPath = (0, lib_2.crossPlatformPath)(dotFileAbsPath);
1315
+ options = options || {};
1316
+ let envContent = options.setAsNewFile
1317
+ ? ''
1318
+ : index_1.Helpers.readFile(dotFileAbsPath, '');
1319
+ for (const [key, value] of Object.entries(obj)) {
1320
+ const stringValue = String(value);
1321
+ const regex = new RegExp(`^${key}=.*$`, 'm');
1322
+ if (regex.test(envContent)) {
1323
+ envContent = envContent.replace(regex, `${key}=${stringValue}`);
1324
+ }
1325
+ else {
1326
+ if (envContent.length > 0 && !envContent.endsWith('\n')) {
1327
+ envContent += '\n';
1328
+ }
1329
+ envContent += `${key}=${stringValue}\n`;
1330
+ }
1331
+ }
1332
+ index_1.Helpers.writeFile(dotFileAbsPath, envContent);
1333
+ //#endregion
1334
+ };
1335
+ //#endregion
1336
+ //#region get values keys as json object
1337
+ UtilsDotFile.getValuesKeysAsJsonObject = (dotFileAbsPath) => {
1338
+ //#region @backendFunc
1339
+ dotFileAbsPath = (0, lib_2.crossPlatformPath)(dotFileAbsPath);
1340
+ if (!index_1.Helpers.exists(dotFileAbsPath)) {
1341
+ return {};
1342
+ }
1343
+ const envContent = index_1.Helpers.readFile(dotFileAbsPath, '');
1344
+ const result = {};
1345
+ const lines = envContent.split(/\r?\n/);
1346
+ for (const line of lines) {
1347
+ const trimmed = line.trim();
1348
+ if (!trimmed || trimmed.startsWith('#'))
1349
+ continue;
1350
+ const [key, ...rest] = trimmed.split('=');
1351
+ if (key) {
1352
+ result[key] = parseValue(rest.join('='));
1353
+ }
1354
+ }
1355
+ return result;
1356
+ //#endregion
1357
+ };
1358
+ //#endregion
1359
+ })(UtilsDotFile || (exports.UtilsDotFile = UtilsDotFile = {}));
1360
+ //#endregion
1361
+ //#region utils zip browser
1226
1362
  var UtilsZipBrowser;
1227
1363
  (function (UtilsZipBrowser) {
1228
1364
  // <input type="file" id="folderInput" webkitdirectory />
@@ -1278,21 +1414,23 @@ var UtilsZipBrowser;
1278
1414
  return void 0;
1279
1415
  };
1280
1416
  })(UtilsZipBrowser || (exports.UtilsZipBrowser = UtilsZipBrowser = {}));
1417
+ //#endregion
1418
+ //#region utils zip node
1281
1419
  var UtilsZip;
1282
1420
  (function (UtilsZip) {
1283
1421
  //#region split zip file
1284
1422
  UtilsZip.splitFile7Zip = async (inputPath, partSizeMB = 99) => {
1285
1423
  //#region @backendFunc
1286
- const stat = lib_1.fse.statSync(inputPath);
1424
+ const stat = lib_2.fse.statSync(inputPath);
1287
1425
  const partSize = partSizeMB * 1024 * 1024;
1288
1426
  if (stat.size <= partSize) {
1289
1427
  console.log('File is smaller than part size — no split needed.');
1290
1428
  return 0;
1291
1429
  }
1292
1430
  const { path7za } = await Promise.resolve().then(() => require('7zip-bin'));
1293
- const baseName = lib_1.path.basename(inputPath, lib_1.path.extname(inputPath));
1294
- const dirname = lib_1.path.dirname(inputPath);
1295
- const output7zPath = lib_1.path.join(dirname, `${baseName}.7z`);
1431
+ const baseName = lib_2.path.basename(inputPath, lib_2.path.extname(inputPath));
1432
+ const dirname = lib_2.path.dirname(inputPath);
1433
+ const output7zPath = lib_2.path.join(dirname, `${baseName}.7z`);
1296
1434
  return new Promise((resolve, reject) => {
1297
1435
  const args = [
1298
1436
  'a', // Add to archive
@@ -1301,12 +1439,12 @@ var UtilsZip;
1301
1439
  `-v${partSizeMB}m`, // ✅ Volume split flag
1302
1440
  '-mx=0', // No compression (optional: speeds it up)
1303
1441
  ];
1304
- const proc = lib_1.child_process.spawn(path7za, args, { stdio: 'inherit' });
1442
+ const proc = lib_2.child_process.spawn(path7za, args, { stdio: 'inherit' });
1305
1443
  proc.on('close', async (code) => {
1306
1444
  if (code !== 0)
1307
1445
  return reject(new Error(`7za failed with code ${code}`));
1308
1446
  try {
1309
- const files = await lib_1.fse.readdir(dirname);
1447
+ const files = await lib_2.fse.readdir(dirname);
1310
1448
  const partFiles = files.filter(f => f.startsWith(`${baseName}.7z.`) &&
1311
1449
  /^[0-9]{3}$/.test(f.split('.').pop() || ''));
1312
1450
  const count = partFiles.length;
@@ -1326,26 +1464,26 @@ var UtilsZip;
1326
1464
  */
1327
1465
  UtilsZip.splitFile = async (inputPath, partSizeMB = 99) => {
1328
1466
  //#region @backendFunc
1329
- const stat = lib_1.fse.statSync(inputPath);
1467
+ const stat = lib_2.fse.statSync(inputPath);
1330
1468
  const partSize = partSizeMB * 1024 * 1024;
1331
1469
  if (stat.size <= partSize) {
1332
1470
  console.log('File is smaller than part size — no split needed.');
1333
1471
  return 0;
1334
1472
  }
1335
1473
  return await new Promise((resolve, reject) => {
1336
- const baseName = lib_1.path.basename(inputPath);
1337
- const dirname = lib_1.path.dirname(inputPath);
1338
- const input = lib_1.fse.createReadStream(inputPath);
1474
+ const baseName = lib_2.path.basename(inputPath);
1475
+ const dirname = lib_2.path.dirname(inputPath);
1476
+ const input = lib_2.fse.createReadStream(inputPath);
1339
1477
  let partIndex = 0;
1340
1478
  let written = 0;
1341
- let currentStream = lib_1.fse.createWriteStream(`${baseName}.part${partIndex}`);
1479
+ let currentStream = lib_2.fse.createWriteStream(`${baseName}.part${partIndex}`);
1342
1480
  input.on('data', chunk => {
1343
1481
  let offset = 0;
1344
1482
  while (offset < chunk.length) {
1345
1483
  if (written >= partSize) {
1346
1484
  currentStream.end();
1347
1485
  partIndex++;
1348
- currentStream = lib_1.fse.createWriteStream((0, lib_1.crossPlatformPath)([dirname, `${baseName}.part${partIndex}`]));
1486
+ currentStream = lib_2.fse.createWriteStream((0, lib_2.crossPlatformPath)([dirname, `${baseName}.part${partIndex}`]));
1349
1487
  written = 0;
1350
1488
  }
1351
1489
  const toWrite = Math.min(partSize - written, chunk.length - offset);
@@ -1373,10 +1511,10 @@ var UtilsZip;
1373
1511
  const zipPath = `${absPathToDir}.zip`;
1374
1512
  const zipfile = new yazl.ZipFile();
1375
1513
  const addDirectoryToZip = async (dir, basePath) => {
1376
- const entries = await lib_1.fse.promises.readdir(dir, { withFileTypes: true });
1514
+ const entries = await lib_2.fse.promises.readdir(dir, { withFileTypes: true });
1377
1515
  for (const entry of entries) {
1378
- const fullPath = lib_1.path.join(dir, entry.name);
1379
- const relPath = lib_1.path.relative(basePath, fullPath).replace(/\\/g, '/');
1516
+ const fullPath = lib_2.path.join(dir, entry.name);
1517
+ const relPath = lib_2.path.relative(basePath, fullPath).replace(/\\/g, '/');
1380
1518
  if (entry.isDirectory()) {
1381
1519
  await addDirectoryToZip(fullPath, basePath);
1382
1520
  }
@@ -1387,7 +1525,7 @@ var UtilsZip;
1387
1525
  };
1388
1526
  await addDirectoryToZip(absPathToDir, absPathToDir);
1389
1527
  zipfile.end();
1390
- await pipeline(zipfile.outputStream, lib_1.fse.createWriteStream(zipPath));
1528
+ await pipeline(zipfile.outputStream, lib_2.fse.createWriteStream(zipPath));
1391
1529
  //#endregion;
1392
1530
  };
1393
1531
  // Unzip: `/some/path/folder.zip` → `/some/path/folder`
@@ -1404,17 +1542,17 @@ var UtilsZip;
1404
1542
  return reject(err);
1405
1543
  zipfile.readEntry();
1406
1544
  zipfile.on('entry', async (entry) => {
1407
- const filePath = lib_1.path.join(extractTo, entry.fileName);
1545
+ const filePath = lib_2.path.join(extractTo, entry.fileName);
1408
1546
  if (/\/$/.test(entry.fileName)) {
1409
1547
  await mkdir(filePath, { recursive: true });
1410
1548
  zipfile.readEntry();
1411
1549
  }
1412
1550
  else {
1413
- await mkdir(lib_1.path.dirname(filePath), { recursive: true });
1551
+ await mkdir(lib_2.path.dirname(filePath), { recursive: true });
1414
1552
  zipfile.openReadStream(entry, async (err, readStream) => {
1415
1553
  if (err || !readStream)
1416
1554
  return reject(err);
1417
- const writeStream = lib_1.fse.createWriteStream(filePath);
1555
+ const writeStream = lib_2.fse.createWriteStream(filePath);
1418
1556
  await pipeline(readStream, writeStream);
1419
1557
  zipfile.readEntry();
1420
1558
  });
@@ -1427,4 +1565,5 @@ var UtilsZip;
1427
1565
  //#endregion
1428
1566
  };
1429
1567
  })(UtilsZip || (exports.UtilsZip = UtilsZip = {}));
1568
+ //#endregion
1430
1569
  //# sourceMappingURL=utils.js.map