tnp-helpers 19.0.73 → 19.0.76

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 (53) hide show
  1. package/browser/fesm2022/tnp-helpers.mjs +127 -53
  2. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  3. package/browser/lib/base/classes/base-git.d.ts +3 -1
  4. package/browser/lib/base/classes/base-global-command-line.d.ts +28 -15
  5. package/browser/lib/build-info._auto-generated_.d.ts +1 -1
  6. package/browser/lib/utils.d.ts +1 -0
  7. package/browser/package.json +1 -1
  8. package/lib/base/classes/base-git.d.ts +3 -1
  9. package/lib/base/classes/base-git.js +8 -3
  10. package/lib/base/classes/base-git.js.map +1 -1
  11. package/lib/base/classes/base-global-command-line.d.ts +25 -12
  12. package/lib/base/classes/base-global-command-line.js +128 -77
  13. package/lib/base/classes/base-global-command-line.js.map +1 -1
  14. package/lib/base/classes/base-node-modules.js +7 -7
  15. package/lib/base/classes/base-node-modules.js.map +1 -1
  16. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -2
  17. package/lib/build-info._auto-generated_.d.ts +1 -1
  18. package/lib/build-info._auto-generated_.js +1 -1
  19. package/lib/env/env.angular-node-app.d.ts +1 -0
  20. package/lib/env/env.angular-node-app.js +3 -2
  21. package/lib/env/env.angular-node-app.js.map +1 -1
  22. package/lib/env/env.docs-webapp.d.ts +1 -0
  23. package/lib/env/env.docs-webapp.js +3 -2
  24. package/lib/env/env.docs-webapp.js.map +1 -1
  25. package/lib/env/env.electron-app.d.ts +1 -0
  26. package/lib/env/env.electron-app.js +3 -2
  27. package/lib/env/env.electron-app.js.map +1 -1
  28. package/lib/env/env.mobile-app.d.ts +1 -0
  29. package/lib/env/env.mobile-app.js +3 -2
  30. package/lib/env/env.mobile-app.js.map +1 -1
  31. package/lib/env/env.npm-lib-and-cli-tool.d.ts +1 -0
  32. package/lib/env/env.npm-lib-and-cli-tool.js +3 -2
  33. package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
  34. package/lib/env/env.vscode-plugin.d.ts +1 -0
  35. package/lib/env/env.vscode-plugin.js +3 -2
  36. package/lib/env/env.vscode-plugin.js.map +1 -1
  37. package/lib/helpers/for-backend/helpers-git.backend.js +8 -2
  38. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  39. package/lib/helpers/for-browser/angular.helper.js +2 -2
  40. package/lib/old/base-component.js +2 -2
  41. package/lib/old/base-formly-component.js +2 -2
  42. package/lib/old/dual-component-ctrl.js +2 -2
  43. package/lib/utils.d.ts +1 -0
  44. package/lib/utils.js +13 -0
  45. package/lib/utils.js.map +1 -1
  46. package/package.json +1 -1
  47. package/websql/fesm2022/tnp-helpers.mjs +127 -53
  48. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  49. package/websql/lib/base/classes/base-git.d.ts +3 -1
  50. package/websql/lib/base/classes/base-global-command-line.d.ts +28 -15
  51. package/websql/lib/build-info._auto-generated_.d.ts +1 -1
  52. package/websql/lib/utils.d.ts +1 -0
  53. package/websql/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tnp-helpers.mjs","sources":["../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/for-browser/angular.helper.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/utils.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers-array-obj.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers-strings-regexes.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers-strings.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/for-backend/helpers-process.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/for-backend/helpers-file-folders.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers-numbers.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/for-browser/helpers-browser.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-db.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/config-database.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/project-database.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/ports.entity.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker-terminal-ui.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker.models.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker-database-config.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker-config.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker-controller.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker.utils.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/ports.controller.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/1736198527297_init.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/1736199486472_addingNotAssignablePorts.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/1736454437350_addFreePorts.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/index.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/tcp-udp-ports.context.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/tcp-upd-ports-terminal-ui.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/tcp-upd-ports.worker.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-project-resolver.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-feature-for-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-library-build.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-json-file-reader.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-package-json.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-node-modules.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-bower-json.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-npm-helpers.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-linked-projects.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-git.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-ignore-hide.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-linter.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-vscode.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-release-process.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-compiler-for-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-debounce-compiler-for-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-quick-fixes.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/models.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-process-manager.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-command-line-feature.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-file-folders-operations.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-global-command-line.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/commit-data.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/core-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/linked-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/index.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/old/execute-command.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/old/models.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/index.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/tnp-helpers.ts"],"sourcesContent":["//#region @browser\nimport { Observable, Subject } from \"rxjs\";\n\nconst componentContextSymbol = Symbol();\nconst componentsDestroy$Subjects = {};\n\n\nexport namespace HelpersAngular {\n\n export class SerializedSubject<T> {\n constructor(\n public id: string\n ) { }\n }\n\n\n function subjectId(destroySubject: Subject<any>): SerializedSubject<any> {\n const id = Math.random().toString(36).substring(2);\n if (!destroySubject[componentContextSymbol]) {\n destroySubject[componentContextSymbol] = new SerializedSubject(id);\n componentsDestroy$Subjects[id] = destroySubject;\n }\n return destroySubject[componentContextSymbol];\n }\n\n /**\n * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();\n */\n export function serialize(destroy$: Subject<any>): SerializedSubject<any> {\n return subjectId(destroy$);\n }\n\n /**\n * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();\n */\n export function deserialize(destroy$: SerializedSubject<any>): Subject<any> {\n if (destroy$?.id) {\n const realDestroySubject = componentsDestroy$Subjects[destroy$.id];\n return realDestroySubject;\n }\n return new Subject();\n }\n\n export function unsubscribe(destroy$: Subject<any>) {\n const destroySubject = subjectId(destroy$);\n if (destroySubject?.id) {\n delete componentsDestroy$Subjects[destroySubject.id];\n delete destroySubject[componentContextSymbol];\n }\n }\n\n\n\n /**\n get properties from scss file\n\n\n import styles from './tasks-ngrx-data.component.scss';\n\n export class ExampleComponent {\n sassFile = sassFile(styles);\n\n async ngOnInit() {\n this.tasksService.getAll();\n console.log(this.sassFile.stringValue('--max-container-size'))\n console.log(this.sassFile.numberValue('--max-container-size'))\n }\n }\n */\n export function sassFile(styles: string) {\n const lines = (styles.split('\\n'));\n return {\n stringValue: (name: string) => {\n for (let index = 0; index < lines.length; index++) {\n const l = lines[index];\n const [varName, value] = l.trim().split(':');\n if (varName === name) {\n return value.replace(';', '');\n }\n }\n },\n numberValue: (name: string): number => {\n for (let index = 0; index < lines.length; index++) {\n const l = lines[index];\n const [varName, value] = l.trim().split(':');\n if (varName === name) {\n return Number(value.replace('px', '').replace(';', ''));\n }\n }\n }\n }\n }\n}\n\n//#endregion","//#region imports\nimport { ChildProcess, StdioOptions } from 'node:child_process';\n/* */ \n/* */ \n\nimport { chalk, chokidar, config } from 'tnp-core/websql';\nimport {\n child_process,\n crossPlatformPath,\n fse,\n os,\n path,\n UtilsDotFile,\n UtilsOs,\n UtilsTerminal,\n} from 'tnp-core/websql';\nimport { _, CoreModels, Utils } from 'tnp-core/websql';\nimport {\n createPrinter,\n createSourceFile,\n factory,\n getLeadingCommentRanges,\n isClassDeclaration,\n isSourceFile,\n NodeArray,\n ScriptKind,\n ScriptTarget,\n SourceFile,\n Statement,\n transform,\n TransformationContext,\n visitEachChild,\n Node,\n isFunctionDeclaration,\n isVariableStatement,\n isIdentifier,\n NodeFlags,\n isEnumDeclaration,\n isTypeAliasDeclaration,\n isInterfaceDeclaration,\n isModuleDeclaration,\n isExportAssignment,\n forEachChild,\n Declaration,\n getCombinedModifierFlags,\n ModifierFlags,\n SyntaxKind,\n isVariableDeclaration,\n isCallExpression,\n isPropertyAccessExpression,\n isObjectLiteralExpression,\n isPropertyAssignment,\n isStringLiteral,\n canHaveDecorators,\n getDecorators,\n visitNode,\n isExportDeclaration,\n isImportDeclaration,\n Expression,\n isNamedImports,\n isNamedExports,\n NewLineKind,\n TransformerFactory,\n isDecorator,\n isEmptyStatement,\n isExpressionStatement,\n isPropertyDeclaration,\n isMethodDeclaration,\n} from 'typescript';\nimport type * as ts from 'typescript';\nimport { CLASS } from 'typescript-class-helpers/websql';\nimport type * as vscodeType from 'vscode';\n\nimport { Helpers } from './index';\n//#endregion\n\n//#region utils npm\nexport namespace UtilsNpm {\n //#region is special version\n export const isSpecialVersion = (version: string) => {\n return CoreModels.NpmSpecialVersions.includes(version);\n };\n //#endregion\n\n //#region clear version\n export const clearVersion = (\n version: string,\n options: {\n removePrefixes?: boolean;\n /**\n * Remove alpha, beta, rc, latest, next etc.\n */\n removeSuffix?: boolean;\n },\n ) => {\n const { removePrefixes, removeSuffix } = options || {};\n\n if (!version || isSpecialVersion(version)) {\n return version;\n }\n\n version = (version || '')\n .trim()\n .replace(new RegExp(Utils.escapeStringForRegEx('undefined'), 'g'), '0');\n\n if (removePrefixes) {\n version = version.replace('^', '').replace('~', '');\n }\n let [major, minor, patch, alphaOrBetaOrRc] = version.split('.');\n if (removeSuffix) {\n alphaOrBetaOrRc = '';\n }\n return fixMajorVerNumber(\n `${major}.${minor}.${patch}${\n alphaOrBetaOrRc ? '.' + alphaOrBetaOrRc : ''\n }`,\n );\n };\n //#endregion\n\n //#region fix major version number\n export const fixMajorVerNumber = (version: string) => {\n if (!version || isSpecialVersion(version)) {\n return version;\n }\n version = (version || '')\n .trim()\n .replace(new RegExp(Utils.escapeStringForRegEx('undefined'), 'g'), '0');\n const splited = version.split('.');\n let [major, minor, patch, alphaOrBetaOrRc] = splited;\n if (splited.length === 1) {\n minor = '0';\n patch = '0';\n } else if (splited.length === 2) {\n patch = '0';\n }\n return `${major}.${minor}.${patch}${\n alphaOrBetaOrRc ? '.' + alphaOrBetaOrRc : ''\n }`;\n };\n //#endregion\n}\n//#endregion\n\n//#region utils typescript\nexport namespace UtilsTypescript {\n //#region remove region by name\n /**\n * Remove TypeScript region blocks by their name, including nested regions.\n *\n * @param sourceCode - The TypeScript source code as a string.\n * @param regionName - The name of the region to remove.\n * @returns Modified TypeScript code without the specified regions.\n */\n export const removeRegionByName = (\n sourceCode: string,\n regionName: string,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region extract exports from a TypeScript file\n\n //#region helper function to check if a node is exported\n const isExported = (node: Node): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region exports from file\n\n export interface ExportInfo {\n type:\n | 'class'\n | 'function'\n | 'const'\n | 'let'\n | 'var'\n | 'enum'\n | 'type'\n | 'interface'\n | 'default'\n | 'module'\n | 'namespace';\n name: string;\n }\n\n /**\n * Function to extract exports from a TypeScript file\n */\n export const exportsFromFile = (filePath: string): ExportInfo[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n /**\n * Function to extract exports from a TypeScript file\n */\n export const exportsFromContent = (fileContent: string): ExportInfo[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#endregion\n\n //#region extract class names from ts file or source code\n\n export const extractDefaultClassNameFromString = (\n sourceCode: string,\n ): string | undefined => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const extractClassNameFromString = (sourceCode: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const extractClassNamesFromFile = (\n absoluteFilePath: string,\n ): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const extractDefaultClassNameFromFile = (absoluteFilePath: string) => {\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region format file(s) with prettier\n export const formatFile = (absPathToFile: string | string[]): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const formatAllFilesInsideFolder = (absPathToFolder: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region lint file(s) with eslint\n export const eslintFixFile = (absPathToFile: string | string[]): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const eslintFixAllFilesInsideFolder = (\n absPathToFolder: string | string[],\n ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region extract Taon contexts from file\n export const getTaonContextFromContent = (fileContent: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const getTaonContextsNamesFromFile = (\n tsAbsFilePath: string,\n ): string[] => {\n/* */\n/* */\n return (void 0);\n };\n\n //#endregion\n\n //#region extract selectors from Angular components class files\n export const extractAngularComponentSelectors = (\n fileAbsPath: string,\n ): { className: string; selector: string }[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region wrap one line with comment\n export const wrapWithComment = (\n oneLineComment: string,\n absDestFilePath: string,\n ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region ser or add exported variable with AST\n // Helper to check if a node has 'export' in its modifiers\n // const hasExportModifier = (\n // modifiers: ts.NodeArray<ts.Modifier> | undefined,\n // ) => {\n // return (\n // !!modifiers && modifiers.some(m => m.kind === SyntaxKind.ExportKeyword)\n // );\n // };\n\n /**\n * Attempts to set or add an exported const with given name and value.\n */\n export const setValueToVariableInTsFile = (\n tsAbsFilePath: string,\n variableName: string,\n valueOfVariable: any,\n options?: {\n skipAddIfNotExists?: boolean;\n useRawStringValue?: boolean;\n },\n ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n //#endregion\n\n //#region recognize imports from file\n\n //#region helpers / ts import export class\n export class TsImportExport {\n /**\n * for external modification\n */\n embeddedPathToFileResult: string;\n /**\n * for external modification\n */\n packageName: string;\n /**\n * for external modification\n */\n isIsomorphic?: boolean;\n\n //#region generated/readonly files\n readonly type: 'export' | 'import' | 'async-import' | 'require';\n /**\n * ORIGNAL\n * Name of the file that is being imported/exported\n * with parenthesis included , example\n * 'my-file' or \"my-file\" or `my-file`\n */\n readonly embeddedPathToFile: string;\n /**\n * same as cleanEmbeddedPathToFile but without quotes (parenthesis), example:\n * my-file or my-file or my-file\n */\n readonly cleanEmbeddedPathToFile: string;\n readonly startRow: number;\n readonly startCol: number;\n readonly endRow: number;\n readonly endCol: number;\n readonly parenthesisType: 'single' | 'double' | 'tics';\n readonly importElements: string[] = [];\n //#endregion\n\n //#region constructor\n constructor(\n type: 'export' | 'import' | 'async-import' | 'require',\n embeddedPathToFile: string,\n start: ts.LineAndCharacter,\n end: ts.LineAndCharacter,\n parenthesisType: 'single' | 'double' | 'tics',\n importElements: string[] = [],\n ) {\n this.type = type;\n this.isIsomorphic = false;\n this.embeddedPathToFile = embeddedPathToFile;\n this.cleanEmbeddedPathToFile =\n this.removeStartEndQuotes(embeddedPathToFile);\n this.embeddedPathToFileResult = embeddedPathToFile;\n this.startRow = start.line + 1; // TypeScript lines are zero-based\n this.startCol = start.character + 1;\n this.endRow = end.line + 1;\n this.endCol = end.character + 1;\n this.parenthesisType = parenthesisType;\n this.importElements = importElements;\n }\n //#endregion\n\n //#region remove quotes\n private removeStartEndQuotes(str: string): string {\n return str.replace(/^['\"`]/, '').replace(/['\"`]$/, '');\n }\n //#endregion\n\n //#region get string part\n /**\n * it will extract part of the file content\n * that is between startRow, startCol and endRow, endCol\n * and contains import/export/require statement\n */\n public getStringPartFrom(wholeContentOfFile: string): string {\n const lines = wholeContentOfFile.split('\\n');\n\n // Convert 1-based row indices to 0-based\n const startRowIndex = this.startRow - 1;\n const endRowIndex = this.endRow - 1;\n\n // Ensure indices are within bounds\n if (startRowIndex >= lines.length || endRowIndex >= lines.length) {\n throw new Error('Row index out of bounds.');\n }\n\n let extractedLines: string[] = [];\n\n for (let i = startRowIndex; i <= endRowIndex; i++) {\n let line = lines[i];\n\n if (i === startRowIndex && i === endRowIndex) {\n // Same row: extract from startCol to endCol\n extractedLines.push(line.substring(this.startCol - 1, this.endCol));\n } else if (i === startRowIndex) {\n // First row: extract from startCol to end\n extractedLines.push(line.substring(this.startCol - 1));\n } else if (i === endRowIndex) {\n // Last row: extract from beginning to endCol\n extractedLines.push(line.substring(0, this.endCol));\n } else {\n // Whole row in between\n extractedLines.push(line);\n }\n }\n\n return extractedLines.join('\\n');\n }\n //#endregion\n\n //#region wrap in current parenthesis\n public wrapInParenthesis(str: string): string {\n return this.parenthesisType === 'single'\n ? `'${str}'`\n : this.parenthesisType === 'double'\n ? `\"${str}\"`\n : `\\`${str}\\``;\n //#endregion\n }\n }\n //#endregion\n\n //#region helpers / get quote type\n const getQuoteType = (text: string): 'single' | 'double' | 'tics' => {\n //#region @websqlFunc\n if (text.startsWith('`')) return 'tics';\n if (text.startsWith(\"'\")) return 'single';\n return 'double';\n //#endregion\n };\n //#endregion\n\n const extractImportExportElements = (node: ts.Node): string[] => {\n //#region @websqlFunc\n const elements: string[] = [];\n\n if (isImportDeclaration(node) && node.importClause) {\n // Check if there are named imports inside { }\n if (\n node.importClause.namedBindings &&\n isNamedImports(node.importClause.namedBindings)\n ) {\n elements.push(\n ...node.importClause.namedBindings.elements.map(el => el.name.text),\n );\n }\n } else if (isExportDeclaration(node) && node.exportClause) {\n // Check if there are named exports inside { }\n if (isNamedExports(node.exportClause)) {\n elements.push(...node.exportClause.elements.map(el => el.name.text));\n }\n }\n\n return elements;\n //#endregion\n };\n\n export const recognizeImportsFromFile = (\n fileAbsPAth: string,\n ): TsImportExport[] => {\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const recognizeImportsFromContent = (\n fileContent: string,\n ): TsImportExport[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n /**\n * Transition methods ng18 => ng19\n * Adds standalone: false if not exists in component decorator\n */\n export function transformComponentStandaloneOption(\n sourceText: string,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region escape @ in html text\n const escapeAtInHtmlText = (fileContent: string): string => {\n return fileContent.replace(\n />([^<@]*?)@([^<]*)</g,\n (_match, before, after) => {\n return `>${before}&#64;${after}<`;\n },\n );\n };\n\n export const fixHtmlTemplatesInDir = (directoryPath: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region remove tagged imports/exports\n export function removeTaggedImportExport(\n tsFileContent: string,\n tags: string[],\n // debug = false,\n ): string {\n const sourceFile = createSourceFile(\n 'temp.ts',\n tsFileContent,\n ScriptTarget.Latest,\n true,\n ScriptKind.TS,\n );\n // debug && console.log(tsFileContent);\n\n const lines = tsFileContent.split(/\\r?\\n/);\n const tagRegex = new RegExp(\n tags\n .map(t => (Array.isArray(t) ? t[0] : t))\n .filter(Boolean)\n .map(t => Utils.escapeStringForRegEx(t))\n .join('|'),\n 'i',\n );\n\n let a = 0;\n for (const statement of sourceFile.statements) {\n // debug && console.log('processing line ' + a++);\n if (!isImportDeclaration(statement) && !isExportDeclaration(statement)) {\n continue;\n }\n\n const start = statement.getStart();\n const end = statement.getEnd();\n\n const startLine = sourceFile.getLineAndCharacterOfPosition(start).line;\n const endLine = sourceFile.getLineAndCharacterOfPosition(end).line;\n\n // get full text including trailing comments\n const endLineText = lines[endLine]; // ← get real line content from file\n\n if (!tagRegex.test(endLineText)) continue;\n\n // debug &&\n // console.log(`\n // start: ${start}\n // end: ${end}\n // startLine: ${startLine}\n // endLine: ${endLine}\n // endLineText: >> ${endLineText} <<\n // `);\n\n // console.log('removing line ' + startLine + ' to ' + endLine);\n for (let i = startLine; i <= endLine; i++) {\n const original = lines[i];\n lines[i] = '/* */' + ' '.repeat(Math.max(0, original.length - 4));\n }\n }\n\n // debug && console.log('\\n\\n\\n\\n');\n const result = lines.join('\\n');\n // debug && console.log(result)\n return result;\n }\n //#endregion\n\n //#region wrap first imports in region\n export const wrapFirstImportsInImportsRegion = (\n fileContent: string,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region wrap entities class fields with region\n const applyEdits = (\n original: string,\n edits: { pos: number; text: string }[],\n ): string => {\n edits.sort((a, b) => b.pos - a.pos); // apply from end to start\n let result = original;\n for (const edit of edits) {\n result = result.slice(0, edit.pos) + edit.text + result.slice(edit.pos);\n }\n return result;\n };\n\n /**\n * wrap class field with decorators\n * wrap class methods with decorators\n */\n export function wrapContentClassMembersDecoratorsWithRegion(\n classFileContent: string,\n wrapTag = '@websql',\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n export const clearRequireCacheRecursive = (\n modulePath: string,\n seen = new Set<string>(),\n ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export type DeepWritable<T> = {\n -readonly [P in keyof T]: T[P] extends object\n ? T[P] extends Function\n ? T[P]\n : DeepWritable<T[P]>\n : T[P];\n };\n}\n\n//#endregion\n\n//#region utils http\nexport namespace UtilsHttp {\n //#region utils http / start http server\n export const startHttpServer = async (\n cwd: string,\n port: number,\n options?: {\n startMessage?: string;\n },\n ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n}\n//#endregion\n\n//#region utils md\nexport namespace UtilsMd {\n /**\n * extract assets pathes from .md file\n */\n export const getAssets = (mdfileContent: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const getAssetsFromFile = (absPathToFile: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n /**\n * Extract links to other Markdown files from a given Markdown content.\n * @param mdfileContent\n */\n export const getLinksToOtherMdFiles = (mdfileContent: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n /**\n * Move asset paths to a higher directory level by adding \"../\" before each path.\n *\n * @param mdfileContent - The content of the .md file.\n * @param level - The number of levels to go up (default is 1).\n * @returns The modified content with updated asset paths.\n */\n export const moveAssetsPathesToLevel = (\n mdfileContent: string,\n level = 1,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}\n//#endregion\n\n//#region utils quickfixes\nexport namespace UtilsQuickFixes {\n //#region replace sql-wasm.js faulty code content\n /**\n *\n * @param node_modules/sql.js/dist/sql-wasm.js\n */\n export const replaceKnownFaultyCode = (\n contentofSQLWasmJS: string,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n /**\n * for some reason electron is being bundled - and it is not needed for cli\n */\n export const replaceElectronWithNothing = (\n jsContent: string,\n packageName: string,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}\n//#endregion\n\n//#region utils vscode\nexport namespace UtilsVSCode {\n export const calculateContrastingHexColor = (hex: string): string => {\n // Normalize shorthand format like \"#abc\" → \"#aabbcc\"\n if (hex.length === 4) {\n hex =\n '#' +\n hex\n .slice(1)\n .split('')\n .map(ch => ch + ch)\n .join('');\n }\n\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n\n // YIQ contrast formula\n const yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\n return yiq >= 128 ? '#000000' : '#ffffff';\n };\n\n // Convert HSL to HEX if you need HEX output\n const hslToHex = (hsl: string): string => {\n const [_, hStr, sStr, lStr] = hsl.match(/hsl\\((\\d+), (\\d+)%?, (\\d+)%?\\)/)!;\n let h = parseInt(hStr) / 360;\n let s = parseInt(sStr) / 100;\n let l = parseInt(lStr) / 100;\n\n const hue2rgb = (p: number, q: number, t: number): number => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n\n let r: number, g: number, b: number;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n const toHex = (x: number) => {\n const hex = Math.round(x * 255).toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n };\n\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n };\n export const generateFancyColor = (): string => {\n const h = Math.floor(Math.random() * 360); // full hue range\n const s = Math.floor(40 + Math.random() * 30); // 40–70% saturation\n const l = Math.floor(35 + Math.random() * 25); // 35–60% lightness\n\n return hslToHex(`hsl(${h}, ${s}%, ${l}%)`);\n };\n\n export const vscodeImport = () => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const regenerateVsCodeSettingsColors = (\n cwd: string,\n overideBottomColor?: string,\n ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}\n\n//#endregion\n\n//#region utils zip browser\nexport namespace UtilsZipBrowser {\n // <input type=\"file\" id=\"folderInput\" webkitdirectory />\n // ts\n // Copy\n // Edit\n // document.getElementById('folderInput').addEventListener('change', async (e) => {\n // const input = e.target as HTMLInputElement;\n // if (input.files) {\n // const zipBlob = await zipDirBrowser(input.files);\n // // Save the zip using FileSaver.js or URL.createObjectURL\n // const url = URL.createObjectURL(zipBlob);\n // const a = document.createElement('a');\n // a.href = url;\n // a.download = 'folder.zip';\n // a.click();\n // URL.revokeObjectURL(url);\n // }\n // });\n\n // import JSZip from 'jszip';\n\n // <input type=\"file\" id=\"zipInput\" />\n // ts\n // Copy\n // Edit\n // document.getElementById('zipInput').addEventListener('change', async (e) => {\n // const input = e.target as HTMLInputElement;\n // if (input.files?.[0]) {\n // const entries = await unzipArchiveBrowser(input.files[0]);\n // for (const [name, blob] of entries) {\n // console.log(`Extracted file: ${name}`, blob);\n // }\n // }\n // });\n export const zipDirBrowser = async (fileList: FileList): Promise<Blob> => {\n // const zip = new JSZip();\n\n // for (const file of Array.from(fileList)) {\n // const relativePath = (file as any).webkitRelativePath || file.name;\n // zip.file(relativePath, file);\n // }\n\n // return zip.generateAsync({ type: 'blob' });\n return void 0;\n };\n\n export const unzipArchiveBrowser = async (\n zipBlob: Blob,\n ): Promise<Map<string, Blob>> => {\n // const zip = await JSZip.loadAsync(zipBlob);\n // const files = new Map<string, Blob>();\n\n // for (const [filePath, fileObj] of Object.entries(zip.files)) {\n // if (!fileObj.dir) {\n // const content = await fileObj.async('blob');\n // files.set(filePath, content);\n // }\n // }\n\n // return files;\n return void 0;\n };\n}\n//#endregion\n\n//#region utils zip node\nexport namespace UtilsZip {\n //#region split zip file\n\n export const splitFile7Zip = async (\n inputPath: string,\n partSizeMB = 99,\n ): Promise<number> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n /**\n * Splits a file into smaller parts if its size exceeds the specified part size.\n * @returns true if file was split, false if not needed\n */\n export const splitFile = async (\n inputPath: string,\n partSizeMB = 99,\n ): Promise<number> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n /**\n * @returns absolute path to zip file\n */\n export const zipDir = async (\n absPathToDir: string,\n options?: {\n /**\n * default false\n */\n overrideIfZipFileExists?: boolean;\n },\n ): Promise<string> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n // Unzip: `/some/path/folder.zip` → `/some/path/folder`\n export const unzipArchive = async (absPathToZip: string): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}\n//#endregion\n\n//#region utils worker\nexport namespace UtilsTaonWorker {\n export const getUniqueForTask = (\n task: string,\n location: string | string[],\n ): string => {\n if (!location) {\n throw new Error(\n '[UtilsTaonWorker.getUniqueForTask()] Location must be provided',\n );\n }\n if (!task) {\n throw new Error(\n '[UtilsTaonWorker.getUniqueForTask()] Task must be provided',\n );\n }\n location = crossPlatformPath(location);\n return `task(${task?.trim()}) in ${location}`?.trim();\n };\n}\n//#endregion\n\n//#region utils java\nexport namespace UtilsJava {\n //#region select jdk version\n export const selectJdkVersion = async (): Promise<string | undefined> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n export const detectJavaVersionMacOS = (javaHome: string): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n //#region update java home path\n export const updateJavaHomePath = (selectedPath: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region api methods / selectTomcatVersion\n export const selectTomcatVersion = async (): Promise<string> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region update tomcat home path\n export const updateTomcatHomePath = (selectedPath: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n}\n\n//#endregion\n\n//#region utils passwords\nexport namespace UtilsPasswords {\n //#region hash password\n export const hashPassword = (password: string): Promise<string> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region verify password\n export const verifyPassword = (\n password: string,\n stored: string,\n ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n // Example\n // (async () => {\n // const hash = await hashPassword('super-secret');\n // console.log('stored:', hash);\n\n // const ok = await verifyPassword('super-secret', hash);\n // console.log('valid?', ok);\n // })();\n}\n//#endregion\n\n//#region utils docker\nexport namespace UtilsDocker {\n //#region utils docker / constants\n const DOCKER_TAON_PROJECT_LABEL_KEY = 'com.docker.compose.taon.project'; // change to your app name\n\n const DOCKER_TAON_PROJECT_LABEL_VALUE = 'true'; // change to your app name\n\n export const DOCKER_LABEL_KEY = 'com.docker.compose.project'; // change to your app name\n export const DOCKER_TAON_PROJECT_LABEL = `${DOCKER_TAON_PROJECT_LABEL_KEY}=${DOCKER_TAON_PROJECT_LABEL_VALUE}`;\n //#endregion\n\n //#region utils docker / clean images by docker label\n export const cleanImagesAndContainersByDockerLabel = async (\n labelKey: string,\n labelValue: string,\n ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region utils docker / models\n export interface DockerComposeActionOptions {\n composeFileName?: string;\n cwd?: string;\n env?: NodeJS.ProcessEnv;\n skipBuild?: boolean;\n stdio?: StdioOptions;\n useFirstYmlFound?: boolean;\n }\n\n export type DockerComposeActionType = 'up' | 'down';\n //#endregion\n\n //#region utils docker / get docker compose up/down command\n /**\n * @returns cmd + args array\n * you can use with child_process.spawn\n * const [cmd, ...args] = getDockerComposeActionCommand('up');\n * child.spawn(cmd, args, { ... });\n *\n * @param action 'up' | 'down'\n */\n export const getDockerComposeActionCommand = (\n action: DockerComposeActionType,\n options?: Omit<\n DockerComposeActionOptions,\n 'cwd' | 'env' | 'stdio' | 'useFirstYmlFound'\n >,\n ): string[] => {\n options = options || {};\n options.skipBuild = !!options?.skipBuild;\n\n const composeFileName = options?.composeFileName || 'docker-compose.yml';\n\n return ['docker', 'compose', '-f', composeFileName].concat(\n action === 'up'\n ? options.skipBuild\n ? ['up']\n : ['up', '--build']\n : ['down'],\n );\n };\n //#endregion\n\n //#region utils docker / get docker compose up/down child process\n export const getDockerComposeActionChildProcess = (\n action: DockerComposeActionType,\n options?: DockerComposeActionOptions,\n ): ChildProcess => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region utils docker / remove all taon containers and images from docker\n export const removeAllTaonContainersAndImagesFromDocker =\n async (): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region utils docker / link podman as docker if necessary\n /**\n * @TODO @REFACTOR use async stuff\n */\n export const linkPodmanAsDockerIfNecessary = async (): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n}\n//#endregion\n\n//#region utils file sync\n/**\n * ! TODO @IN_PROGRESS @LAST\n */\nexport namespace UtilsFileSync {\n //#region constants\n // ───── SAFETY SETTINGS ─────────────────────────────\n // Minimum realistic photo/video size (in bytes) before we even try\n const MIN_PHOTO_SIZE = 50_000; // ~50 KB — anything smaller is probably placeholder\n const MIN_VIDEO_SIZE = 500_000; // ~500 KB\n\n // How long we wait after the file stops growing before processing\n const STABILIZATION_MS = 5000; // 5 seconds is bulletproof\n\n/* */\n/* */\n \n //#endregion\n\n //#region models\n interface FoldersSyncOptions {\n androidFolder: string;\n macPhotosLibrary: string;\n tempConvertFolder: string;\n /**\n * If true, skips the terminal menu confirmation on startup\n * (default: false) - perfect for automated scripts\n */\n skipTerminalMenu?: boolean;\n /**\n * for testing purposes only\n */\n onlyProcessFiles?: string[]; // optional list of filenames to only process (for testing)\n }\n\n interface WacherData extends FoldersSyncOptions {\n processed: Set<string>;\n pending: Map<string, NodeJS.Timeout>;\n }\n //#endregion\n\n //#region for folders\n export const forFolders = async (\n folder: FoldersSyncOptions,\n ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region is hevc\n async function isHevc(file: string): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region safe process\n const safeProcess = async (\n filePath: string,\n wacherData?: WacherData,\n ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n}","import { _, Utils } from 'tnp-core/websql';\nimport * as fuzzy from 'fuzzy';\n\nexport class HelpersArrayObj {\n from(s: string | string[]): string[] {\n if (_.isArray(s)) {\n return s;\n }\n if (_.isString(s)) {\n return s.split(' ');\n }\n }\n\n second(arr) {\n if (!Array.isArray(arr) || arr.length < 2) {\n return void 0;\n }\n return arr[1];\n }\n\n /**\n * @deprecated\n * use moveObjectBefore\n */\n arrayMoveElementBefore<T = any>(arr: any[], a: any, b: any, prop?: keyof T) {\n let indexA = prop\n ? arr.findIndex(elem => elem[prop] === a[prop])\n : arr.indexOf(a);\n _.pullAt(arr, indexA);\n let indexB = prop\n ? arr.findIndex(elem => elem[prop] === b[prop])\n : arr.indexOf(b);\n if (indexB === 0) {\n arr.unshift(a);\n } else {\n arr.splice(indexB - 1, 0, a);\n }\n return arr;\n }\n\n /**\n * @deprecated\n * use moveObjectAfter\n */\n arrayMoveElementAfterB<T = any>(arr: any[], a: any, b: any, prop?: keyof T) {\n let indexA = prop\n ? arr.findIndex(elem => elem[prop] === a[prop])\n : arr.indexOf(a);\n _.pullAt(arr, indexA);\n let indexB = prop\n ? arr.findIndex(elem => elem[prop] === b[prop])\n : arr.indexOf(b);\n if (indexB === arr.length - 1) {\n arr.push(a);\n } else {\n arr.splice(indexB + 1, 0, a);\n }\n return arr;\n }\n\n moveObjectBefore<T = any>(array: T[], target: T, before: T): T[] {\n const newArray = [...array];\n const targetIndex = newArray.findIndex(item => item === target);\n const beforeIndex = newArray.findIndex(item => item === before);\n\n if (targetIndex === -1 || beforeIndex === -1) {\n // Handle the case when either the target or before object is not found in the array\n console.error('Target or Before object not found in the array');\n return newArray;\n }\n\n // Remove the target object from its current position\n newArray.splice(targetIndex, 1);\n\n // Insert the target object before the before object\n newArray.splice(beforeIndex, 0, target);\n\n return newArray;\n }\n\n moveObjectAfter<T = any>(array: T[], target: T, after: T): T[] {\n const newArray = [...array];\n const targetIndex = newArray.findIndex(item => item === target);\n const afterIndex = newArray.findIndex(item => item === after);\n\n if (targetIndex === -1 || afterIndex === -1) {\n // Handle the case when either the target or after object is not found in the array\n console.error('Target or After object not found in the array');\n return newArray;\n }\n\n // Remove the target object from its current position\n newArray.splice(targetIndex, 1);\n\n // Insert the target object after the after object\n newArray.splice(afterIndex + 1, 0, target);\n\n return newArray;\n }\n\n /**\n * @deprecated use Utils.uniqArray from tnp-core\n */\n uniqArray<T = any>(array: any[], uniqueProperty?: keyof T) {\n return Utils.uniqArray(array, uniqueProperty);\n }\n\n /**\n * @deprecated use Utils.uniqArray from tnp-core\n */\n sortKeys(obj) {\n return Utils.sortKeys(obj);\n }\n\n /**\n * Fuzzy search\n */\n fuzzy<T = any>(\n query: string,\n list: T[],\n valueFn?: (modelFromList: T) => string,\n ) {\n // console.log('fuzzy search', query, list, valueFn)\n const resultsFuzzy = fuzzy.filter(\n query,\n list.map(k => (valueFn ? valueFn(k) : k)),\n );\n const resultsFuzzyKebab = fuzzy.filter(\n _.kebabCase(query),\n list.map(k => _.kebabCase((valueFn ? valueFn(k) : k) as any)),\n );\n const matches = resultsFuzzy.map(el => el.string);\n const matchesKebab = resultsFuzzyKebab.map(el => el.string);\n\n const results =\n resultsFuzzy.length === 0\n ? []\n : list.filter(k => {\n return matches.includes((valueFn ? valueFn(k) : k) as any);\n });\n\n if (matches.length === 0 && matchesKebab.length > 0) {\n const m = list.find(\n k =>\n _.kebabCase((valueFn ? valueFn(k) : k) as any) ===\n _.first(matchesKebab),\n );\n results.push(m);\n matches.push((valueFn ? valueFn(m) : m) as any);\n }\n\n return { matches, results };\n }\n}","import { Utils, _ } from 'tnp-core/websql';\nexport class HelpersStringsRegexes {\n\n\n\n escapeStringForRegEx(s: string) {\n return Utils.escapeStringForRegEx(s);\n }\n\n matchExactOnce(s: string, regex: RegExp): string {\n if (!_.isString(s) || !_.isRegExp(regex)) {\n return void 0;\n }\n const result = s.match(regex);\n if (_.isNil(result)) {\n return void 0;\n }\n return result.length >= 1 ? _.first(result) : void 0;\n }\n\n get regex() {\n return {\n /**\n * mathes\n * xxx.xxx.xxx.xxx\n * xxx.xxx.xxx.xxx:port\n * http://xxx.xxx.xxx.xxx:port\n * http://xxx.xxx.xxx.xxx\n * https://xxx.xxx.xxx.xxx:port\n * https://xxx.xxx.xxx.xxx *\n */\n get forStringWithIpHost() {\n const regex = /(http(s)?\\:\\/\\/)?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\:[0-9]+)?/;\n return regex;\n },\n /**\n * mathes\n * http://domain.com:port\n * http://domain.com\n * http://domain:port\n * http://domain\n * https://domain.com:port\n * https://domain.com\n * https://domain:port\n * https://domain\n */\n get forStringWithDomainHost() {\n const regex = /(((http(s)?\\:\\/\\/)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\\.[a-zA-Z]{2,})+(\\:[0-9]+)?)|((http(s)?\\:\\/\\/)[a-zA-Z0-9-]{1,61}))/;\n return regex;\n }\n }\n }\n}","import { _ } from 'tnp-core/websql';\nimport { Helpers } from '../index';\n\nexport class HelpersStrings {\n\n /**\n * Example:\n *\n * const result = interpolateString(\"I'm {age} years old!\")\n * .withParameters({ age: 29 });\n *\n * const result = interpolateString(\"The {a} says {n}, {n}, {n}!\")\n * .withParameters({ a: 'cow', n: 'moo' });\n *\n *\n * @param value string to interpolate\n * @param parameters object with parametes\n */\n interpolateString<T = any>(value: string) {\n if (typeof value !== 'string') {\n Helpers.warn('[taon-heleprs] Value for interpolation is not string: ', value);\n return value;\n }\n\n return {\n withParameters(parameters: T) {\n if (typeof parameters !== 'object') {\n Helpers.log(parameters as any);\n Helpers.warn('[taon-heleprs] Parameters are not a object: ');\n return value;\n }\n return value.replace(/{([^{}]*)}/g, function (a, b) {\n var r = parameters[b];\n return typeof r === 'string' || typeof r === 'number' ? r : a;\n } as any);\n }\n }\n\n }\n\n /**\n *\n * @param pixelsCss exmaple: 100px\n * @returns number value\n */\n numValue(pixelsCss: string) {\n // tslint:disable-next-line:radix\n return parseInt(pixelsCss.replace('px', ''));\n }\n\n /**\n * examples:\n * 'aa bb bb' => ['aa','bb','cc'],\n * 'aa' => ['aa']\n * ['aa'] => ['aa']\n */\n splitIfNeed(stringOrArr: string | string[]): string[] {\n let res = [];\n if (_.isArray(stringOrArr)) {\n res = stringOrArr.map(s => {\n return s.trim();\n })\n }\n if (_.isString(stringOrArr)) {\n res = stringOrArr.split(/\\s*[\\s,]\\s*/);\n }\n return res.filter(f => !!f && (f.trim() !== ''));\n }\n\n removeDoubleOrMoreEmptyLines(s: string) {\n s = s?.split('\\n').map(f => f.trimRight()).join('\\n');\n return s?.replace(/(\\r\\n|\\r|\\n){2,}/g, '$1\\n');\n }\n\n /**\n *\n * https://stackoverflow.com/a/57129703/1345101\n *\n * Returns the plural of an English word.\n *\n * @export\n * @param {string} word\n * @param {number} [amount]\n * @returns {string}\n */\n plural(word: string, amount?: number): string {\n if (amount !== undefined && amount === 1) {\n return word\n }\n const plural: { [key: string]: string } = {\n '(quiz)$': \"$1zes\",\n '^(ox)$': \"$1en\",\n '([m|l])ouse$': \"$1ice\",\n '(matr|vert|ind)ix|ex$': \"$1ices\",\n '(x|ch|ss|sh)$': \"$1es\",\n '([^aeiouy]|qu)y$': \"$1ies\",\n '(hive)$': \"$1s\",\n '(?:([^f])fe|([lr])f)$': \"$1$2ves\",\n '(shea|lea|loa|thie)f$': \"$1ves\",\n 'sis$': \"ses\",\n '([ti])um$': \"$1a\",\n '(tomat|potat|ech|her|vet)o$': \"$1oes\",\n '(bu)s$': \"$1ses\",\n '(alias)$': \"$1es\",\n '(octop)us$': \"$1i\",\n '(ax|test)is$': \"$1es\",\n '(us)$': \"$1es\",\n '([^s]+)$': \"$1s\"\n }\n const irregular: { [key: string]: string } = {\n 'move': 'moves',\n 'foot': 'feet',\n 'goose': 'geese',\n 'sex': 'sexes',\n 'child': 'children',\n 'man': 'men',\n 'tooth': 'teeth',\n 'person': 'people'\n }\n const uncountable: string[] = [\n 'sheep',\n 'fish',\n 'deer',\n 'moose',\n 'series',\n 'species',\n 'money',\n 'rice',\n 'information',\n 'equipment',\n 'bison',\n 'cod',\n 'offspring',\n 'pike',\n 'salmon',\n 'shrimp',\n 'swine',\n 'trout',\n 'aircraft',\n 'hovercraft',\n 'spacecraft',\n 'sugar',\n 'tuna',\n 'you',\n 'wood'\n ]\n // save some time in the case that singular and plural are the same\n if (uncountable.indexOf(word.toLowerCase()) >= 0) {\n return word\n }\n // check for irregular forms\n for (const w in irregular) {\n const pattern = new RegExp(`${w}$`, 'i')\n const replace = irregular[w]\n if (pattern.test(word)) {\n return word.replace(pattern, replace)\n }\n }\n // check for matches using regular expressions\n for (const reg in plural) {\n const pattern = new RegExp(reg, 'i')\n if (pattern.test(word)) {\n return word.replace(pattern, plural[reg])\n }\n }\n return word\n }\n\n\n /**\n * https://stackoverflow.com/a/57129703/1345101\n *\n * Returns the singular of an English word.\n *\n * @export\n * @param {string} word\n * @param {number} [amount]\n * @returns {string}\n */\n singular(word: string, amount?: number): string {\n if (amount !== undefined && amount !== 1) {\n return word\n }\n const singular: { [key: string]: string } = {\n '(quiz)zes$': \"$1\",\n '(matr)ices$': \"$1ix\",\n '(vert|ind)ices$': \"$1ex\",\n '^(ox)en$': \"$1\",\n '(alias)es$': \"$1\",\n '(octop|vir)i$': \"$1us\",\n '(cris|ax|test)es$': \"$1is\",\n '(shoe)s$': \"$1\",\n '(o)es$': \"$1\",\n '(bus)es$': \"$1\",\n '([m|l])ice$': \"$1ouse\",\n '(x|ch|ss|sh)es$': \"$1\",\n '(m)ovies$': \"$1ovie\",\n '(s)eries$': \"$1eries\",\n '([^aeiouy]|qu)ies$': \"$1y\",\n '([lr])ves$': \"$1f\",\n '(tive)s$': \"$1\",\n '(hive)s$': \"$1\",\n '(li|wi|kni)ves$': \"$1fe\",\n '(shea|loa|lea|thie)ves$': \"$1f\",\n '(^analy)ses$': \"$1sis\",\n '((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$': \"$1$2sis\",\n '([ti])a$': \"$1um\",\n '(n)ews$': \"$1ews\",\n '(h|bl)ouses$': \"$1ouse\",\n '(corpse)s$': \"$1\",\n '(us)es$': \"$1\",\n 's$': \"\"\n }\n const irregular: { [key: string]: string } = {\n 'move': 'moves',\n 'foot': 'feet',\n 'goose': 'geese',\n 'sex': 'sexes',\n 'child': 'children',\n 'man': 'men',\n 'tooth': 'teeth',\n 'person': 'people'\n }\n const uncountable: string[] = [\n 'sheep',\n 'fish',\n 'deer',\n 'moose',\n 'series',\n 'species',\n 'money',\n 'rice',\n 'information',\n 'equipment',\n 'bison',\n 'cod',\n 'offspring',\n 'pike',\n 'salmon',\n 'shrimp',\n 'swine',\n 'trout',\n 'aircraft',\n 'hovercraft',\n 'spacecraft',\n 'sugar',\n 'tuna',\n 'you',\n 'wood'\n ]\n // save some time in the case that singular and plural are the same\n if (uncountable.indexOf(word.toLowerCase()) >= 0) {\n return word\n }\n // check for irregular forms\n for (const w in irregular) {\n const pattern = new RegExp(`${irregular[w]}$`, 'i')\n const replace = w\n if (pattern.test(word)) {\n return word.replace(pattern, replace)\n }\n }\n // check for matches using regular expressions\n for (const reg in singular) {\n const pattern = new RegExp(reg, 'i')\n if (pattern.test(word)) {\n return word.replace(pattern, singular[reg])\n }\n }\n return word\n }\n\n}","//#region imports\nimport { exec } from 'child_process';\nimport type { ChildProcess } from 'child_process';\n\nimport * as spawn from 'cross-spawn';\nimport * as dateformat from 'dateformat';\nimport * as fuzzy from 'fuzzy';\nimport { Log, Level } from 'ng2-logger/websql';\nimport { config } from 'tnp-core/websql';\nimport {\n _,\n os,\n path,\n fse,\n child_process,\n fkill,\n crossPlatformPath,\n chalk,\n} from 'tnp-core/websql';\nimport { CLI, UtilsProcess, UtilsTerminal } from 'tnp-core/websql';\nimport { CLASS } from 'typescript-class-helpers/websql';\n\nimport type { BaseProject } from '../../index';\nimport { Helpers } from '../../index';\n\n//#endregion\n\nexport class HelpersProcess {\n //#region restart application itself\n async restartApplicationItself(nameOfApp: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region os is macos\n osIsMacOs(versino: 'big-sur' | 'catalina') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate file wrap\n generatedFileWrap(content: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region change cwd wrapper\n async changeCwdWrapper(\n dir: string,\n functionToExecure: Function,\n logLevel: Level = Level.__NOTHING,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region change cwd\n changeCwd(dir?: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region go to dir\n /**\n * // TODO refactor this\n * @deprecated\n */\n goToDir(dir = '..') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region press key or wait\n async pressKeyOrWait(\n message = 'Press enter try again',\n printWaitMessages = 0,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region press key and continue\n /**\n * @deprecated use UtilsTerminal.pressAnyKey\n */\n pressKeyAndContinue(message = 'Press enter to continue..') {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region list\n /**\n * @deprecated use UtilsTerminal.multiselect\n */\n async list<T = string>(\n question: string,\n choices:\n | { name: string; value: T }[]\n | { [choice: string]: { name: string } },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region multiple choices ask\n /**\n * @deprecated use UtilsTerminal.multiselect\n */\n async multipleChoicesAsk(\n question: string,\n choices: { name: string; value: string }[],\n autocomplete: boolean = false,\n selected?: { name: string; value: string }[],\n ): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region input\n /**\n * @deprecated use UtilsTerminal.input\n */\n async input(options: {\n defaultValue?: string;\n question: string;\n // required?: boolean;\n validate?: (value: string) => boolean;\n }): Promise<string> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region select\n /**\n * @deprecated use UtilsTerminal.multiselect\n * TODO wierd problem when pressing key like \"i\"\n */\n async selectChoicesAsk<T = string>(\n question: string,\n choices:\n | { name: string; value: T }[]\n | { [choice: string]: { name: string } },\n ): Promise<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region autocomplete ask\n async autocompleteAsk<T = string>(\n question: string,\n choices: { name: string; value: T }[],\n pageSize = 10,\n ): Promise<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get working dir of process\n getWorkingDirOfProcess(PID: number) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region output to vscode\n outputToVScode(\n data: { label: string; option: string }[] | string,\n disableEncode = false,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region action wrapper\n async actionWrapper(fn: () => void, taskName: string = 'Task') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region terminal line\n terminalLine() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region kill all node except current process\n /**\n * THIS DEOS NOT WORK !\n * ! TOOD FIX THIS\n */\n async killAllNodeExceptCurrentProcess() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region kill all node\n killAllNode() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region format path\n formatPath(pathToFileOrFolder: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region prepare wathc command\n /**\n * @deprecated\n */\n prepareWatchCommand(cmd) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get string from\n /**\n * @deprecated\n */\n getStringFrom(command: string, descriptionOfCommand?: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region wait for message in stdout\n async waitForMessegeInStdout(proc: ChildProcess, message: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import * as crypto from 'crypto';\nimport { promisify } from 'util';\n\nimport type { CopyOptionsSync } from 'fs-extra';\nimport * as glob from 'glob';\nimport { config, extAllowedToReplace } from 'tnp-core/websql';\nimport {\n _,\n path,\n fse,\n os,\n rimraf,\n crossPlatformPath,\n json5,\n child_process,\n UtilsOs,\n} from 'tnp-core/websql';\nimport * as underscore from 'underscore';\n\nimport { Helpers } from '../../index';\n\ndeclare const global: any;\n\nexport interface GetRecrusiveFilesFromOptions {\n // withNameOnly?: string; // TODO\n}\n\nexport class HelpersFileFolders {\n /**\n * Calculate file or string checksum\n */\n checksum(absolutePathToFileOrContent: string, algorithm?: 'md5' | 'sha1') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getValueFromJSON(\n filepath: string,\n lodashGetPath: string,\n defaultValue = void 0,\n ): any {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getValueFromJSONC(\n filepath: string,\n lodashGetPath: string,\n defaultValue = void 0,\n ): any {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n readValueFromJson(\n filepath: string,\n lodashGetPath: string,\n defaultValue = void 0,\n ): any {\n/* */\n/* */\n return (void 0);\n }\n\n readValueFromJsonC(\n filepath: string,\n lodashGetPath: string,\n defaultValue = void 0,\n ): any {\n/* */\n/* */\n return (void 0);\n }\n\n setValueToJSON(\n filepath: string | string[],\n lodashGetPath: string,\n value: any,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n setValueToJSONC(filepath: string, lodashGetPath: string, value: any): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * file size in bytes\n */\n size(filePath: string): number {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n pathFromLink(filePath: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n // renameFolder(from: string, to: string, cwd?: string) {\n // // const command = `mv ${from} ${to}`;\n // const command = `renamer --find ${from} --replace ${to} *`;\n // Helpers.run(command, { cwd }).sync()\n // }\n\n /**\n * @deprecated\n */\n renameFolder(from: string, to: string, cwd?: string): void {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n */\n renameFiles(from: string, to: string, cwd?: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getTempFolder() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n // createMultiplatformLink(target: string, link: string) {\n\n // if (this.isPlainFileOrFolder(link)) {\n // link = path.join(process.cwd(), link);\n // }\n\n // let command: string;\n // if (os.platform() === 'win32') {\n\n // if (target.startsWith('./')) {\n // target = path.win32.normalize(path.join(process.cwd(), path.basename(target)))\n // } else {\n // if (target === '.' || target === './') {\n // target = path.win32.normalize(path.join(process.cwd(), path.basename(link)))\n // } else {\n // target = path.win32.normalize(path.join(target, path.basename(link)))\n // }\n // }\n // if (fse.existsSync(target)) {\n // fse.unlinkSync(target);\n // }\n // target = path.win32.normalize(target)\n // if (link === '.' || link === './') {\n // link = process.cwd()\n // }\n // link = path.win32.normalize(link);\n // // if (path.resolve(target) === path.resolve(link)) { // TODO\n // // Helpers.warn(`[createMultiplatformLink][win32] Trying to link same location`);\n // // return;\n // // }\n // command = \"mklink \\/D \"\n // + target\n // + \" \"\n // + link\n // + \" >nul 2>&1 \"\n // } else {\n // if (target.startsWith('./')) {\n // target = target.replace(/^\\.\\//g, '');\n // }\n // if (link === '.' || link === './') {\n // link = process.cwd()\n // }\n // if (path.resolve(target) === path.resolve(link)) {\n // Helpers.warn(`[createMultiplatformLink] Trying to link same location`);\n // return;\n // }\n // command = `ln -sf \"${link}\" \"${target}\"`;\n // }\n // child_process.execSync(command);\n // }\n\n isPlainFileOrFolder(filePath: string): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n * use import (or modules only on backend)\n */\n requireUncached(module: string): any {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n * use import (or modules only on backend)\n *\n * get default export object from js file\n * @param jsFilePath\n */\n require(jsFilePath: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n tryRecreateDir(dirpath: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n */\n tryCopyFrom(source: string, destination: string, options = {}): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n // private deleteFolderRecursive = (pathToFolder) => {\n // if (fs.existsSync(pathToFolder)) {\n // fs.readdirSync(pathToFolder).forEach((file, index) => {\n // const curPath = path.join(pathToFolder, file);\n // if (fs.lstatSync(curPath).isDirectory()) { // recurse\n // this.deleteFolderRecursive(curPath);\n // } else { // delete file\n // fs.unlinkSync(curPath);\n // }\n // });\n // fs.rmdirSync(pathToFolder);\n // }\n // };\n\n move(\n from: string,\n to: string,\n options?: {\n purpose?: string; // for logging purposes\n },\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n findChildren<T>(\n location: string,\n createFn: (childLocation: string) => T,\n options?: { allowAllNames: boolean },\n ): T[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n */\n findChildrenNavi<T>(\n location: string,\n createFn: (childLocation: string) => T,\n ): T[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * get all files from folder\n * absolute paths\n */\n getRecrusiveFilesFrom(\n dir: string,\n ommitFolders: string[] = [],\n options?: GetRecrusiveFilesFromOptions,\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n checkIfNameAllowedForTaonProj(folderName: string): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getLinesFromFiles(filename: string, lineCount?: number): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * Get the most recent changes file in direcory\n * @param dir absoulute path to file\n */\n getMostRecentFileName(dir: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getMostRecentFilesNames(dir: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n removeExcept(fromPath: string, exceptFolderAndFiles: string[]): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * Copy folder using os native command\n * (perfect for large folders/files)\n */\n async copyFolderOsNative(\n from: string,\n to: string,\n options?: {\n removeDestination?: boolean;\n },\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n copy(\n sourceDir: string | string[],\n destinationDir: string | string[],\n options?: {\n filter?: any;\n overwrite?: boolean;\n recursive?: boolean;\n asSeparatedFiles?: boolean;\n asSeparatedFilesAllowNotCopied?: boolean;\n asSeparatedFilesSymlinkAsFile?: boolean;\n /**\n * folders to omit: example: ['src','node_modules']\n *\n * This option works only with omitFoldersBaseFolder\n */\n omitFolders?: string[];\n /**\n * absolute path for base folder for omitFolder option\n */\n omitFoldersBaseFolder?: string;\n copySymlinksAsFiles?: boolean;\n copySymlinksAsFilesDeleteUnexistedLinksFromSourceFirst?: boolean;\n useTempFolder?: boolean;\n dontAskOnError?: boolean;\n } & CopyOptionsSync,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n filterDontCopy(basePathFoldersTosSkip: string[], projectOrBasepath: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n filterOnlyCopy(\n basePathFoldersOnlyToInclude: string[],\n projectOrBasepath: string,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n copyFile(\n sourcePath: string | string[],\n destinationPath: string | string[],\n options?: {\n transformTextFn?: (input: string) => string;\n debugMode?: boolean;\n fast?: boolean;\n dontCopySameContent?: boolean;\n },\n ): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * get real absolute path\n */\n resolve(fileOrFolderPath: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","export class HelpersNumber {\n /**\n * @deprecated\n * use _.random()\n */\n randomInteger = (max, min) => Math.round(Math.random() * (max - min)) + min;\n\n\n}","// session tab it\n// realtime session\n\nconst key = Symbol('[taon-helpers] helper browser key')\n\nexport class HelpersBrowser {\n\n private static callbacks = [];\n static onInit(callback: (ins: HelpersBrowser) => any) {\n this.callbacks.push(callback);\n }\n\n get win() {\n let win = window;\n return win;\n }\n\n private get tabIdSessionStorage() {\n return Number(this.win.sessionStorage?.tabId) || 0;\n }\n\n readonly tabId: number;\n\n private static inst: HelpersBrowser;\n init = (() => {\n const win = this.win;\n\n if (!win[key]) {\n win[key] = new HelpersBrowser(win);\n }\n HelpersBrowser.inst = win[key];\n })();\n\n private constructor(win: Window) {\n //#region @browser\n win.addEventListener(\"beforeunload\", (e) => {\n win.sessionStorage.tabId = this.tabId;\n return null;\n });\n\n setTimeout(() => {\n\n if (win.sessionStorage?.tabId) {\n // @ts-ignore\n this.tabId = Number(win.sessionStorage.tabId);\n win.sessionStorage.removeItem(\"tabId\");\n }\n else {\n // @ts-ignore\n this.tabId = Math.floor(Math.random() * 1000000) + (new Date()).getTime();\n }\n HelpersBrowser.callbacks.forEach((c) => {\n c(this);\n });\n })\n\n //#endregion\n }\n\n\n static get instance() {\n return HelpersBrowser.inst;\n }\n\n}","//#region imports\nimport { _, path, Utils, UtilsNetwork } from 'tnp-core/websql';\nimport { HelpersArrayObj } from './helpers-array-obj';\nimport { HelpersStringsRegexes } from './helpers-strings-regexes';\nimport { HelpersStrings } from './helpers-strings';\nimport { HelpersProcess } from './for-backend/helpers-process';\nimport { HelpersFileFolders } from './for-backend/helpers-file-folders';\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \nimport { config } from 'tnp-core/websql';\nimport { Helpers, UtilsQuickFixes } from '../index';\nimport { CLASS } from 'typescript-class-helpers/websql';\nimport { CoreHelpers, CoreModels } from 'tnp-core/websql';\nimport { HelpersNumber } from './helpers-numbers';\n//#region @browser\nimport { HelpersBrowser } from './for-browser/helpers-browser';\nimport { HelpersAngular } from './for-browser/angular.helper';\n//#endregion\n//#endregion\n\n//#region class mixing helper\n/**\n * Mixing for multiclass inheritance\n *\n * How to use It:\n *\n * class Wolverine {}\n * class Jean {}\n * export class Child {}\n * export interface MyChild implements Wolverine, Jean {}\n * applyMixing(Child,[Wolverine, Jean]);\n *\n * @param derivedCtor Target Class\n * @param baseCtors Base Classes\n */\nexport function applyMixins(derivedCtor: any, baseCtors: any[]) {\n baseCtors.forEach(baseCtor => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype, name),\n );\n });\n });\n}\n//#endregion\n\nexport class HelpersTaon extends CoreHelpers {\n //#region staic\n private static _instance: HelpersTaon & CoreHelpers;\n public static get Instance(): HelpersTaon {\n if (!HelpersTaon._instance) {\n HelpersTaon._instance = new HelpersTaon();\n }\n return HelpersTaon._instance;\n }\n //#endregion\n\n //#region constructor\n private constructor(\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n public arrays = new HelpersArrayObj(),\n public strings = new HelpersStrings(),\n public numbers = new HelpersNumber(),\n //#region @browser\n public browser = HelpersBrowser.instance,\n public ng = HelpersAngular,\n //#endregion\n ) {\n super();\n }\n //#endregion\n\n //#region methods & getters / cli wrap\n CLIWRAP(f: Function, name: string) {\n CLASS.setName(f, name);\n return f;\n }\n //#endregion\n\n //#region methods & getters / uniqArray\n /**\n * Bundle file with node_modules into one file\n * default strategy is cli\n * Please keep: 'ts-node', 'typescript' as dependency in your package.json\n */\n async bundleCodeIntoSingleFile(\n pathToJsFile: string,\n outputFilePath: string,\n options?: {\n strategy?: 'cli' | 'vscode-ext' | 'node-app' | 'electron-app';\n /**\n * ! beforeWrite needs to return output\n */\n beforeWrite?: (options: {\n output?: string;\n copyToDestination?: (fileOrFolderAbsPath: string) => void;\n }) => string;\n additionalExternals?: string[];\n additionalReplaceWithNothing?: string[];\n skipFixingSQLlite?: boolean;\n minify?: boolean;\n },\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n * use Utils.uniqArray from tnp-core\n */\n uniqArray<T = any>(array: any[], uniqueProperty?: keyof T): T[] {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / replace invisible characters\n // replaceInvisibleCharacters(s: string) {\n // var reg = /[\\0-\\x1F\\x7F-\\x9F\\xAD\\u0378\\u0379\\u037F-\\u0383\\u038B\\u038D\\u03A2\\u0528-\\u0530\\u0557\\u0558\\u0560\\u0588\\u058B-\\u058E\\u0590\\u05C8-\\u05CF\\u05EB-\\u05EF\\u05F5-\\u0605\\u061C\\u061D\\u06DD\\u070E\\u070F\\u074B\\u074C\\u07B2-\\u07BF\\u07FB-\\u07FF\\u082E\\u082F\\u083F\\u085C\\u085D\\u085F-\\u089F\\u08A1\\u08AD-\\u08E3\\u08FF\\u0978\\u0980\\u0984\\u098D\\u098E\\u0991\\u0992\\u09A9\\u09B1\\u09B3-\\u09B5\\u09BA\\u09BB\\u09C5\\u09C6\\u09C9\\u09CA\\u09CF-\\u09D6\\u09D8-\\u09DB\\u09DE\\u09E4\\u09E5\\u09FC-\\u0A00\\u0A04\\u0A0B-\\u0A0E\\u0A11\\u0A12\\u0A29\\u0A31\\u0A34\\u0A37\\u0A3A\\u0A3B\\u0A3D\\u0A43-\\u0A46\\u0A49\\u0A4A\\u0A4E-\\u0A50\\u0A52-\\u0A58\\u0A5D\\u0A5F-\\u0A65\\u0A76-\\u0A80\\u0A84\\u0A8E\\u0A92\\u0AA9\\u0AB1\\u0AB4\\u0ABA\\u0ABB\\u0AC6\\u0ACA\\u0ACE\\u0ACF\\u0AD1-\\u0ADF\\u0AE4\\u0AE5\\u0AF2-\\u0B00\\u0B04\\u0B0D\\u0B0E\\u0B11\\u0B12\\u0B29\\u0B31\\u0B34\\u0B3A\\u0B3B\\u0B45\\u0B46\\u0B49\\u0B4A\\u0B4E-\\u0B55\\u0B58-\\u0B5B\\u0B5E\\u0B64\\u0B65\\u0B78-\\u0B81\\u0B84\\u0B8B-\\u0B8D\\u0B91\\u0B96-\\u0B98\\u0B9B\\u0B9D\\u0BA0-\\u0BA2\\u0BA5-\\u0BA7\\u0BAB-\\u0BAD\\u0BBA-\\u0BBD\\u0BC3-\\u0BC5\\u0BC9\\u0BCE\\u0BCF\\u0BD1-\\u0BD6\\u0BD8-\\u0BE5\\u0BFB-\\u0C00\\u0C04\\u0C0D\\u0C11\\u0C29\\u0C34\\u0C3A-\\u0C3C\\u0C45\\u0C49\\u0C4E-\\u0C54\\u0C57\\u0C5A-\\u0C5F\\u0C64\\u0C65\\u0C70-\\u0C77\\u0C80\\u0C81\\u0C84\\u0C8D\\u0C91\\u0CA9\\u0CB4\\u0CBA\\u0CBB\\u0CC5\\u0CC9\\u0CCE-\\u0CD4\\u0CD7-\\u0CDD\\u0CDF\\u0CE4\\u0CE5\\u0CF0\\u0CF3-\\u0D01\\u0D04\\u0D0D\\u0D11\\u0D3B\\u0D3C\\u0D45\\u0D49\\u0D4F-\\u0D56\\u0D58-\\u0D5F\\u0D64\\u0D65\\u0D76-\\u0D78\\u0D80\\u0D81\\u0D84\\u0D97-\\u0D99\\u0DB2\\u0DBC\\u0DBE\\u0DBF\\u0DC7-\\u0DC9\\u0DCB-\\u0DCE\\u0DD5\\u0DD7\\u0DE0-\\u0DF1\\u0DF5-\\u0E00\\u0E3B-\\u0E3E\\u0E5C-\\u0E80\\u0E83\\u0E85\\u0E86\\u0E89\\u0E8B\\u0E8C\\u0E8E-\\u0E93\\u0E98\\u0EA0\\u0EA4\\u0EA6\\u0EA8\\u0EA9\\u0EAC\\u0EBA\\u0EBE\\u0EBF\\u0EC5\\u0EC7\\u0ECE\\u0ECF\\u0EDA\\u0EDB\\u0EE0-\\u0EFF\\u0F48\\u0F6D-\\u0F70\\u0F98\\u0FBD\\u0FCD\\u0FDB-\\u0FFF\\u10C6\\u10C8-\\u10CC\\u10CE\\u10CF\\u1249\\u124E\\u124F\\u1257\\u1259\\u125E\\u125F\\u1289\\u128E\\u128F\\u12B1\\u12B6\\u12B7\\u12BF\\u12C1\\u12C6\\u12C7\\u12D7\\u1311\\u1316\\u1317\\u135B\\u135C\\u137D-\\u137F\\u139A-\\u139F\\u13F5-\\u13FF\\u169D-\\u169F\\u16F1-\\u16FF\\u170D\\u1715-\\u171F\\u1737-\\u173F\\u1754-\\u175F\\u176D\\u1771\\u1774-\\u177F\\u17DE\\u17DF\\u17EA-\\u17EF\\u17FA-\\u17FF\\u180F\\u181A-\\u181F\\u1878-\\u187F\\u18AB-\\u18AF\\u18F6-\\u18FF\\u191D-\\u191F\\u192C-\\u192F\\u193C-\\u193F\\u1941-\\u1943\\u196E\\u196F\\u1975-\\u197F\\u19AC-\\u19AF\\u19CA-\\u19CF\\u19DB-\\u19DD\\u1A1C\\u1A1D\\u1A5F\\u1A7D\\u1A7E\\u1A8A-\\u1A8F\\u1A9A-\\u1A9F\\u1AAE-\\u1AFF\\u1B4C-\\u1B4F\\u1B7D-\\u1B7F\\u1BF4-\\u1BFB\\u1C38-\\u1C3A\\u1C4A-\\u1C4C\\u1C80-\\u1CBF\\u1CC8-\\u1CCF\\u1CF7-\\u1CFF\\u1DE7-\\u1DFB\\u1F16\\u1F17\\u1F1E\\u1F1F\\u1F46\\u1F47\\u1F4E\\u1F4F\\u1F58\\u1F5A\\u1F5C\\u1F5E\\u1F7E\\u1F7F\\u1FB5\\u1FC5\\u1FD4\\u1FD5\\u1FDC\\u1FF0\\u1FF1\\u1FF5\\u1FFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u206F\\u2072\\u2073\\u208F\\u209D-\\u209F\\u20BB-\\u20CF\\u20F1-\\u20FF\\u218A-\\u218F\\u23F4-\\u23FF\\u2427-\\u243F\\u244B-\\u245F\\u2700\\u2B4D-\\u2B4F\\u2B5A-\\u2BFF\\u2C2F\\u2C5F\\u2CF4-\\u2CF8\\u2D26\\u2D28-\\u2D2C\\u2D2E\\u2D2F\\u2D68-\\u2D6E\\u2D71-\\u2D7E\\u2D97-\\u2D9F\\u2DA7\\u2DAF\\u2DB7\\u2DBF\\u2DC7\\u2DCF\\u2DD7\\u2DDF\\u2E3C-\\u2E7F\\u2E9A\\u2EF4-\\u2EFF\\u2FD6-\\u2FEF\\u2FFC-\\u2FFF\\u3040\\u3097\\u3098\\u3100-\\u3104\\u312E-\\u3130\\u318F\\u31BB-\\u31BF\\u31E4-\\u31EF\\u321F\\u32FF\\u4DB6-\\u4DBF\\u9FCD-\\u9FFF\\uA48D-\\uA48F\\uA4C7-\\uA4CF\\uA62C-\\uA63F\\uA698-\\uA69E\\uA6F8-\\uA6FF\\uA78F\\uA794-\\uA79F\\uA7AB-\\uA7F7\\uA82C-\\uA82F\\uA83A-\\uA83F\\uA878-\\uA87F\\uA8C5-\\uA8CD\\uA8DA-\\uA8DF\\uA8FC-\\uA8FF\\uA954-\\uA95E\\uA97D-\\uA97F\\uA9CE\\uA9DA-\\uA9DD\\uA9E0-\\uA9FF\\uAA37-\\uAA3F\\uAA4E\\uAA4F\\uAA5A\\uAA5B\\uAA7C-\\uAA7F\\uAAC3-\\uAADA\\uAAF7-\\uAB00\\uAB07\\uAB08\\uAB0F\\uAB10\\uAB17-\\uAB1F\\uAB27\\uAB2F-\\uABBF\\uABEE\\uABEF\\uABFA-\\uABFF\\uD7A4-\\uD7AF\\uD7C7-\\uD7CA\\uD7FC-\\uF8FF\\uFA6E\\uFA6F\\uFADA-\\uFAFF\\uFB07-\\uFB12\\uFB18-\\uFB1C\\uFB37\\uFB3D\\uFB3F\\uFB42\\uFB45\\uFBC2-\\uFBD2\\uFD40-\\uFD4F\\uFD90\\uFD91\\uFDC8-\\uFDEF\\uFDFE\\uFDFF\\uFE1A-\\uFE1F\\uFE27-\\uFE2F\\uFE53\\uFE67\\uFE6C-\\uFE6F\\uFE75\\uFEFD-\\uFF00\\uFFBF-\\uFFC1\\uFFC8\\uFFC9\\uFFD0\\uFFD1\\uFFD8\\uFFD9\\uFFDD-\\uFFDF\\uFFE7\\uFFEF-\\uFFFB\\uFFFE\\uFFFF]/g;\n // return s.replace(reg, '');\n // }\n //#endregion\n\n //#region methods & getters / slash\n slash(pathFromWindowsOrUnixType: string) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is elevated\n async isElevated() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region methods & getters / mesure execution in ms\n async mesureExectionInMs(\n description: string,\n functionToExecute: Function,\n ...functionArguments: any[]\n ): Promise<number> {\n var start = new Date();\n await Helpers.runSyncOrAsync({\n functionFn: functionToExecute,\n arrayOfParams: functionArguments,\n });\n //@ts-ignore\n var end = new Date() - start;\n if (Helpers.isBrowser) {\n Helpers.info(`Execution time: ${end.toString()}ms for \"${description}\"`);\n }\n/* */\n/* */\n/* */\n/* */\n \n return end;\n }\n //#endregion\n\n //#region methods & getters / mesure execution in ms (sync)\n mesureExectionInMsSync(\n description: string,\n functionToExecute: () => void,\n ): number {\n var start = new Date();\n functionToExecute();\n //@ts-ignore\n var end = new Date() - start;\n if (Helpers.isBrowser) {\n Helpers.info(`Execution time: ${end.toString()}ms for \"${description}\"`);\n }\n/* */\n/* */\n/* */\n/* */\n \n return end;\n }\n //#endregion\n\n //#region methods & getters / wait for condition\n waitForCondition(conditionFn: (any) => boolean, howOfftenCheckInMs = 1000) {\n return new Promise(async (resolve, reject) => {\n const result = await Helpers.runSyncOrAsync({ functionFn: conditionFn });\n if (result) {\n resolve(void 0);\n } else {\n setTimeout(() => {\n Helpers.waitForCondition(conditionFn, howOfftenCheckInMs).then(() => {\n resolve(void 0);\n });\n }, howOfftenCheckInMs);\n }\n });\n }\n //#endregion\n\n //#region methods & getters / get methods name\n getMethodName(classObject, method): string {\n var methodName = null;\n Object.getOwnPropertyNames(classObject).forEach(prop => {\n if (classObject[prop] === method) {\n methodName = prop;\n }\n });\n\n if (methodName !== null) {\n return methodName;\n }\n\n var proto = Object.getPrototypeOf(classObject);\n if (proto) {\n return Helpers.getMethodName(proto, method);\n }\n return null;\n }\n //#endregion\n\n //#region methods & getters / fix webpack config\n /**\n * @deprecated\n */\n fixWebpackEnv(env: Object) {\n _.forIn(env, (v, k) => {\n const value: string = v as any;\n if (value === 'true') env[k] = true;\n if (value === 'false') env[k] = false;\n });\n }\n //#endregion\n\n //#region methods & getters / work calculate array\n /**\n * @deprecated\n */\n async workerCalculateArray(\n dataToSplit: any[],\n operation: (\n dataChunk: any[],\n workerNumber?: number | undefined,\n ) => Promise<void>,\n options?: {\n maxesForWorkes?: { [workerMaxes: number]: number };\n workerLimit?: number;\n globals?: any;\n },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region methods & getters / check environment\n checkEnvironment(deps?: CoreModels.GlobalDependencies) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / apply mixins\n public applyMixins = applyMixins;\n //#endregion\n}\n\n//#region class mixins\nexport interface HelpersTaon\n extends HelpersStringsRegexes,\n HelpersProcess,\n HelpersFileFolders {}\n\napplyMixins(HelpersTaon, [\n HelpersStringsRegexes,\n HelpersProcess,\n HelpersFileFolders,\n]);\n//#endregion\n// prettier-ignore-end","//#region imports\nimport { Helpers, UtilsOs, crossPlatformPath } from \"tnp-core/websql\";\n\nimport type { BaseProjectResolver } from \"./base-project-resolver\";\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n//#endregion\n\nexport class BaseDb<DB extends object> {\n\n constructor(\n private ins: BaseProjectResolver,\n private dbName: string,\n private defaultDb: DB,\n ) {\n\n }\n/* */\n/* */\n \n\n public get isUsingDB(): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n get projectsDbLocation() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n}","//#region imports\nimport { crossPlatformPath } from 'tnp-core/websql';\n\nimport type { BaseProjectResolver } from './classes/base-project-resolver';\nimport { BaseDb } from './classes/base-db';\nimport { Helpers } from '../index';\n/* */\n/* */\n/* */\n \n//#endregion\n\nconst defaultDb = {\n config: {} as { [key: string]: string | number | boolean | null },\n};\n\nexport class ConfigDatabase extends BaseDb<typeof defaultDb> {\n constructor(ins: BaseProjectResolver) {\n super(ins, 'config', defaultDb);\n }\n private get selectedCodeEditorKey(): string {\n return 'selected-code-editor';\n }\n\n public async selectCodeEditor(): Promise<\n 'code' | 'idea' | 'idea64' | string\n > {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public async getCodeEditor(): Promise<'code' | 'idea' | 'idea64' | string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { Helpers, crossPlatformPath } from \"tnp-core/websql\";\nimport type { BaseProjectResolver } from \"./classes/base-project-resolver\";\nimport { BaseDb } from \"./classes/base-db\";\n//#endregion\n\nconst defaultDb = {\n projects: [] as {\n location: string;\n }[],\n}\n\nexport class ProjectDatabase extends BaseDb<typeof defaultDb>{\n constructor(\n ins: BaseProjectResolver,\n ) {\n super(ins, 'projects', defaultDb);\n }\n\n async getAllProjectsFromDB() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { Taon } from 'taon/websql';\nimport { _, chalk } from 'tnp-core/websql';\n\nexport type PortStatus =\n | 'unassigned'\n | 'assigned'\n | 'assigned-not-registered'\n | 'assigned-taken-by-os';\n\nexport const PortStatusArr: PortStatus[] = [\n 'unassigned',\n 'assigned',\n 'assigned-not-registered',\n 'assigned-taken-by-os',\n];\n\n@Taon.Entity({\n className: 'Port',\n uniqueKeyProp: 'port',\n})\nexport class Port extends Taon.Base.Entity {\n static from(opt: Omit<Port, 'version' | '_' | 'clone' | 'titleOnList' | 'relation'| 'relations'>) {\n return _.merge(new Port(), opt);\n }\n\n static getTitleForFreePort(port: Number) {\n return `free port ${port}`\n }\n\n get titleOnList(): string {\n/* */\n/* */\n return (void 0);\n }\n\n //#region port entity / columns / port\n //#region @websql\n @Taon.Orm.Column.Primary({\n type: 'int',\n unique: true,\n })\n //#endregion\n port: number;\n //#endregion\n\n //#region port entity / columns / serviceId\n //#region @websql\n @Taon.Orm.Column.Custom({\n type: 'varchar',\n length: 1000,\n unique: true,\n })\n //#endregion\n serviceId: string;\n //#endregion\n\n //#region port entity / columns / status\n /**\n * Port status\n */\n //#region @websql\n @Taon.Orm.Column.String500<PortStatus>('unassigned')\n //#endregion\n status: PortStatus;\n //#endregion\n\n //#region port entity / columns / when assigned timestamp\n /**\n * When port was assigned as registered service\n */\n //#region @websql\n @Taon.Orm.Column.Number()\n //#endregion\n whenAssignedTimestamp?: Number;\n //#endregion\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport {\n CoreModels,\n crossPlatformPath,\n Helpers,\n UtilsTerminal,\n} from 'tnp-core/websql';\nimport { _, chalk } from 'tnp-core/websql';\n\nimport type {\n BaseCliWorker,\n BaseCliWorkerGuiUrlOptions,\n} from './base-cli-worker';\nimport type { TaonBaseCliWorkerController } from './base-cli-worker-controller';\n//#endregion\n\nexport type BaseWorkerTerminalActionReturnType = {\n [uniqeActionName: string]: {\n name: string;\n action: () => unknown | Promise<unknown>;\n };\n};\n\nexport class BaseCliWorkerTerminalUI<\n WORKER extends BaseCliWorker<TaonBaseCliWorkerController<any>, any>,\n> {\n constructor(protected worker: WORKER) {}\n\n //#region protected methods / text for header\n protected async headerText(): Promise<string> {\n return _.startCase(this.worker.serviceID);\n }\n //#endregion\n\n //#region protected methods / text header style\n protected textHeaderStyle(): CoreModels.CfontStyle {\n return 'block';\n }\n //#endregion\n\n //#region protected methods / header text align\n protected headerTextAlign(): CoreModels.CfontAlign {\n return 'left';\n }\n //#endregion\n\n //#region protected methods / header\n /**\n * override whole terminal header\n */\n protected async header(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / info message below header\n async infoMessageBelowHeader(\n options?: BaseCliWorkerGuiUrlOptions,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / get back action\n protected get backAction() {\n return {\n back: {\n name: 'Back',\n },\n };\n }\n //#endregion\n\n //#region protected methods / choose action\n protected get chooseAction() {\n return {\n emptyAction: {\n name: ' -- choose any action below --',\n action: async () => {},\n },\n };\n }\n //#endregion\n\n //#region protected methods / worker terminal actions\n protected getWorkerTerminalActions(options?: {\n exitIsOnlyReturn?: boolean;\n chooseAction?: boolean;\n }): BaseWorkerTerminalActionReturnType {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / info screen\n private headerDisplayed = false;\n public async infoScreen(options?: {\n exitIsOnlyReturn?: boolean;\n }): Promise<void> {\n options = options || {};\n while (true) {\n if (!UtilsTerminal.isVerboseModeTaon()) {\n UtilsTerminal.clearConsole();\n }\n const choices = this.getWorkerTerminalActions(options);\n if (this.headerDisplayed) {\n await this.infoMessageBelowHeader();\n } else {\n this.headerDisplayed = true;\n await this.header();\n await UtilsTerminal.pressAnyKeyToContinueAsync({\n message:\n `\\nWelcome to ${\n chalk.bold(this.worker.serviceID) +\n chalk.bold('@') +\n chalk.bold(this.worker.serviceVersion)\n } Terminal UI.` +\n `\\n\n Press any key to continue...`,\n });\n UtilsTerminal.clearConsole();\n await this.infoMessageBelowHeader();\n }\n\n const choice = await UtilsTerminal.select<keyof typeof choices>({\n choices,\n question: 'Choose action',\n });\n const action = choices[choice].action;\n const result = await action();\n if (choice === 'exit' && result) {\n break;\n }\n }\n }\n //#endregion\n\n //#region protected methods / display special worker ready message\n public displaySpecialWorkerReadyMessage(): void {\n console.log(this.worker.SPECIAL_WORKER_READY_MESSAGE);\n }\n //#endregion\n}","import { TaonBaseClass } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\ninterface BaseCliWorkerOptionCallable {\n /**\n * Name of the function from which the option was called\n */\n calledFrom: string;\n}\n\nexport class BaseCliWorkerConfigGetContextOptions {\n /**\n * default localhost\n */\n declare ipAddressOfTaonInstance?: string;\n /**\n * if null nothing is used as port (ip address will be clean)\n */\n declare port?: number | null;\n}\n\n/**\n * Default mode: DETACHED_CHILD_PROCESS\n */\nexport enum BaseCLiWorkerStartMode {\n CHILD_PROCESS = 'child',\n IN_CURRENT_PROCESS = 'process',\n DETACHED_WINDOW = 'window',\n}\n\nexport class BaseCLiWorkerStartParams {\n /**\n * Start mode\n * Default mode DETACHED_CHILD_PROCESS\n */\n declare mode: BaseCLiWorkerStartMode;\n declare restart?: boolean;\n declare kill?: boolean;\n}\n\nexport class BaseCliMethodOptions\n extends TaonBaseClass<BaseCliMethodOptions>\n implements BaseCliWorkerOptionCallable\n{\n static from(opt?: Partial<BaseCliMethodOptions>): BaseCliMethodOptions {\n opt = opt ?? {};\n opt.cliParams = opt.cliParams ?? ({} as any);\n opt.connectionOptions = opt.connectionOptions ?? {};\n const res = new BaseCliMethodOptions().clone(opt);\n res.cliParams = _.merge(new BaseCLiWorkerStartParams(), opt.cliParams);\n res.cliParams.mode =\n res.cliParams.mode || BaseCLiWorkerStartMode.CHILD_PROCESS;\n\n res.connectionOptions = _.merge(\n new BaseCliWorkerConfigGetContextOptions(),\n opt.connectionOptions,\n );\n return res;\n }\n declare connectionOptions?: BaseCliWorkerConfigGetContextOptions;\n declare cliParams?: BaseCLiWorkerStartParams;\n /**\n * Name of the function from which the option was called\n */\n declare calledFrom: string;\n}","//#region imports\nimport { BehaviorSubject } from 'rxjs';\nimport { EndpointContext, Taon } from 'taon/websql';\nimport { config } from 'tnp-core/websql';\nimport {\n chalk,\n crossPlatformPath,\n _,\n os,\n chokidar,\n UtilsProcess,\n Utils,\n UtilsTerminal,\n UtilsOs,\n CoreModels,\n} from 'tnp-core/websql';\n\nimport {\n // BaseCliWorkerOptionCallable,\n Helpers,\n} from '../../../index';\n\nimport { BaseCliWorkerConfig } from './base-cli-worker-config';\nimport type { TaonBaseCliWorkerController } from './base-cli-worker-controller';\nimport { BaseCliWorkerTerminalUI } from './base-cli-worker-terminal-ui';\nimport {\n BaseCliMethodOptions,\n BaseCLiWorkerStartMode,\n} from './base-cli-worker.models';\nimport { BaseCliWorkerUtils } from './base-cli-worker.utils';\n//#endregion\n\n//#region constants\nconst WORKER_INIT_START_TIME_LIMIT = 25; // 15 seconds max to start worker\nconst START_PORT_FOR_SERVICES = 3600;\n//#endregion\n\nexport interface BaseCliWorkerGuiUrlOptions {\n domain?: string;\n port?: number | null;\n useHttps?: boolean;\n}\n\nexport abstract class BaseCliWorker<\n REMOTE_CTRL extends TaonBaseCliWorkerController<any>,\n TERMINAL_UI extends BaseCliWorkerTerminalUI<any> = any,\n> {\n\n /**\n * Indicates if worker is part of cloud\n * and should use cloud ip address\n */\n public static readonly isCloudEnable: Pick<\n BehaviorSubject<boolean>,\n 'next' | 'getValue'\n > = new BehaviorSubject(false);\n\n /**\n * Cloud ip address of the worker (if part of cloud)\n */\n public static readonly cloudIp: Pick<BehaviorSubject<string | null>, 'next' | 'getValue'> =\n new BehaviorSubject<string | null>(null);\n\n private static workers = new Map<string, BaseCliWorker<any, any>>();\n\n //#region fields & getters\n public readonly SPECIAL_WORKER_READY_MESSAGE =\n CoreModels.SPECIAL_WORKER_READY_MESSAGE;\n\n /**\n * dependency workers that should be started before this worker\n */\n public readonly dependencyWorkers = new Map<\n string,\n BaseCliWorker<any, any>\n >();\n\n // @ts-ignore TODO weird inheritance problem\n readonly terminalUI: TERMINAL_UI = new BaseCliWorkerTerminalUI(this);\n readonly workerContextTemplate: ReturnType<typeof Taon.createContextTemplate>;\n\n /**\n * Name of the worker context\n */\n get contextName(): string {\n return this.workerContextTemplate().contextName;\n }\n\n /**\n * Port where worker is running\n * (getter only accessible from host machine)\n */\n get port(): number | undefined {\n return this.processLocalInfoObj.port;\n }\n\n getWorkerInfoGuiUrl(options?: BaseCliWorkerGuiUrlOptions): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n readonly controllerClass: new () => REMOTE_CTRL;\n\n //#endregion\n\n //#region constructor\n constructor(\n /**\n * unique id for service\n */\n public readonly serviceID: string,\n /**\n * external command that will start service\n */\n public readonly startCommand: string,\n /**\n * unique id for service\n */\n public readonly serviceVersion: string,\n ) {\n BaseCliWorker.workers.set(this.serviceID, this);\n }\n //#endregion\n\n //#region public\n\n public static getAllWorkersStartedInSystemFromCurrentCli(): BaseCliWorker<\n any,\n any\n >[] {\n/* */\n/* */\n return (void 0);\n }\n\n //#region public fields & getters / process local info json object\n public get processLocalInfoObj(): BaseCliWorkerConfig {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / get remote controller\n public async getRemoteControllerFor<ctrl = REMOTE_CTRL>(options?: {\n methodOptions: Partial<BaseCliMethodOptions>;\n /**\n * Optionally get other controller from remote context\n */\n controllerClass?: new () => ctrl;\n }): Promise<ctrl> {\n options = options || ({} as any);\n options.methodOptions = BaseCliMethodOptions.from(options.methodOptions);\n const remoteEndpointContext = await this.getRemoteContextFor(options);\n\n const taonProjectsController = remoteEndpointContext.getInstanceBy(\n options.controllerClass\n ? (options.controllerClass as any)\n : this.controllerClass,\n );\n return taonProjectsController as any;\n }\n //#endregion\n\n //#region public methods / kill\n /**\n * stop if started\n */\n public async kill(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n dontRemoveConfigFile?: boolean;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / restart\n /**\n * kill detached process and start again\n * @param options.detached - default true\n */\n async restart(options?: {\n methodOptions?: BaseCliMethodOptions;\n }): Promise<void> {\n options = options || ({} as any);\n options.methodOptions = BaseCliMethodOptions.from(options.methodOptions);\n\n await this.kill({\n methodOptions: options.methodOptions,\n });\n //longer because os is disposing process previous process\n Helpers.info(\n `Restarting service \"${this.serviceID}\" ` +\n `in ${options.methodOptions.cliParams.mode} mode...`,\n );\n\n if (\n options.methodOptions.cliParams.mode ===\n BaseCLiWorkerStartMode.IN_CURRENT_PROCESS\n ) {\n await this.startNormallyInCurrentProcess({\n methodOptions: options.methodOptions,\n });\n } else {\n await this.startDetached({\n methodOptions: options.methodOptions,\n });\n }\n }\n //#endregion\n\n //#region public methods / cli start\n /**\n * only for cli start\n * @param cliParams on from cli\n */\n async cliStartProcedure(options: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<{\n controller: REMOTE_CTRL;\n worker: BaseCliWorker<any, any>;\n serviceId: string;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n //#region protected\n\n //#region protected methods / get remote context\n protected async getRemoteContextFor(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<EndpointContext> {\n options = options || ({} as any);\n options.methodOptions = BaseCliMethodOptions.from(options.methodOptions);\n\n const ipAddressOfTaonInstance =\n options.methodOptions.connectionOptions.ipAddressOfTaonInstance ||\n CoreModels.localhostDomain;\n // on localhost read data from processLocalInfoObj json\n let port =\n options.methodOptions.connectionOptions.port ||\n this.processLocalInfoObj.port;\n\n if (ipAddressOfTaonInstance === CoreModels.localhostDomain && !port) {\n if (this.workerIsStarting) {\n try {\n await this.waitForProcessPortSavedToDisk({\n methodOptions: options.methodOptions.clone(opt => {\n opt.calledFrom = `${opt.calledFrom}.getRemoteContextFor.localhost`;\n return opt;\n }),\n });\n } catch (error) {\n console.error(\n `[getRemoteContextFor] Error while waiting for process port saved to disk`,\n );\n }\n }\n\n if (this.processLocalInfoPortNotInited) {\n throw new Error(\n `Can't connect to remote context on localhost - port is not defined.\n This can happen when the worker process is not started yet.\n `,\n );\n } else {\n port = this.processLocalInfoObj.port;\n }\n }\n\n // this.workerRemoteContextFor[ipAddressOfTaonInstance] = remoteCtx;\n const useHttps =\n ipAddressOfTaonInstance !== CoreModels.localhostDomain &&\n ipAddressOfTaonInstance !== CoreModels.localhostIp127;\n\n const protocol = useHttps ? 'https' : 'http';\n const overrideRemoteHost = `${protocol}://${ipAddressOfTaonInstance}${\n port ? `:${port}` : ''\n }`;\n\n const remoteCtx = this.workerContextTemplate().cloneAsRemote({\n overrideRemoteHost,\n });\n // @LAST chache remote context per ipAddressOfTaonInstance\n\n const remoteEndpoitnContext = await remoteCtx.initialize();\n return remoteEndpoitnContext;\n }\n //#endregion\n\n //#region protected fields & getters / path to process local info\n protected get pathToProcessLocalInfoJson(): string {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected fields & getters / should wait for process port saved to disk\n protected get processLocalInfoPortNotInited(): boolean {\n return (\n !this.processLocalInfoObj.port ||\n isNaN(Number(this.processLocalInfoObj.port))\n );\n }\n //#endregion\n\n //#region protected fields & getters / worker is starting\n protected get workerIsStarting(): boolean {\n return !!this.processLocalInfoObj.startTimestamp;\n }\n //#endregion\n\n //#region protected methods / start if needs to be started\n protected async startDetachedIfNeedsToBeStarted(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / start normally in current process\n /**\n * <strong>IMPORTANT USE ONLY IN DEVELOPMENT !!!</strong>\n * for production use startDetachedIfNeedsToBeStarted()\n * start normally process\n * this will crash if process already started\n */\n protected async startNormallyInCurrentProcess(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n actionBeforeTerminalUI?: () => Promise<void>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / prevent external config change\n protected preventExternalConfigChange(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / prevent prevent start if already started\n protected async preventStartIfAlreadyStarted(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / prevent kill worker with lower version\n protected async killWorkerWithLowerVersion(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / is service healthy\n /**\n * This has 2 purposes:\n * - infinite check when when detached process finished starting\n * - quick check if service is healthy / already started\n */\n protected async isServiceHealthy(options: {\n healthCheckRequestTrys?: number;\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / start detached\n /**\n * start if not started detached process\n */\n protected async startDetached(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / save process info\n private saveProcessInfo(processConfig: Partial<BaseCliWorkerConfig>): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / initialize worker\n protected async initializeWorkerMetadata(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / wait for process port saved to disk\n protected async waitForProcessPortSavedToDisk(options: {\n methodOptions: BaseCliMethodOptions;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / get free port\n protected async getServicePort(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n}","import { Models } from 'taon/websql';\nimport { crossPlatformPath, Helpers, path, UtilsOs } from 'tnp-core/websql';\n\n/**\n * Get taon service database config\n * (database is stored in user's home directory)\n * @param serviceNameUniqueInSystem - unique name of the service in the system\n * @param recreateMode - mode of database recreation, default is 'DROP_DB+MIGRATIONS'\n * @returns DatabaseConfig object with location and recreateMode\n */\nexport const getBaseCliWorkerDatabaseConfig = (\n serviceNameUniqueInSystem: string,\n recreateMode: Models.DBRecreateMode = 'DROP_DB+MIGRATIONS',\n) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n};","import { gte } from 'semver';\nimport { _ } from 'tnp-core/websql';\n\n//#region base worker config\nexport class BaseCliWorkerConfig {\n static from(opt: Partial<BaseCliWorkerConfig>): BaseCliWorkerConfig {\n return _.merge(new BaseCliWorkerConfig(), opt);\n }\n\n /**\n * path to file where config is stored\n */\n pathToFile: string;\n /**\n * port taken by service\n */\n port: number;\n /**\n * unique in whole system id of service\n */\n serviceID: string;\n /**\n * pid of service process\n */\n pid: number;\n /**\n * timestamp when service was started\n * (in other cases = null)\n */\n startTimestamp: number;\n /**\n * version\n */\n version: string;\n\n hasBiggerOrEqualWorkerVersionThan(other: BaseCliWorkerConfig): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n isEquals(other: BaseCliWorkerConfig): boolean {\n other = BaseCliWorkerConfig.from(other);\n return (\n !!this.serviceID &&\n !!this.port &&\n !!this.pid &&\n this.serviceID === other.serviceID &&\n this.port === other.port &&\n this.pid === other.pid\n );\n }\n\n get isEmpty(): boolean {\n return !this.serviceID && !this.port && !this.pid;\n }\n}\n//#endregion","import { Taon } from 'taon/websql';\nimport { Helpers } from 'tnp-core/websql';\n\nimport { BaseCliWorkerConfig } from './base-cli-worker-config';\nimport { BaseCliWorkerUtils } from './base-cli-worker.utils';\n\n@Taon.Controller({\n className: 'TaonBaseCliWorkerController',\n})\nexport abstract class TaonBaseCliWorkerController<\n UPLOAD_FILE_QUERY_PARAMS = {},\n> extends Taon.Base.Controller<UPLOAD_FILE_QUERY_PARAMS> {\n /**\n * service id\n */\n private cliWorkerServiceId: string = null;\n private cliWorkerServiceVersion: string = null;\n\n //#region api methods / initialize metadata\n @Taon.Http.PUT()\n baseCLiWorkerCommand_initializeMetadata(\n @Taon.Http.Param.Body('serviceId') serviceId: string,\n @Taon.Http.Param.Body('serviceVersion') serviceVersion: string,\n ): Taon.Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region api methods / kill\n @Taon.Http.GET()\n baseCLiWorkerCommand_kill(\n @Taon.Http.Param.Query('dontRemoveConfigFile')\n dontRemoveConfigFile?: boolean,\n ): Taon.Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region api methods / info\n @Taon.Http.HTML({\n pathIsGlobal: true,\n path: '/info',\n })\n info(): Taon.ResponseHtml {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region api methods / is healthy\n @Taon.Http.POST()\n baseCLiWorkerCommand_isHealthy(\n @Taon.Http.Param.Body() checkingProcessConfig: BaseCliWorkerConfig,\n ): Taon.Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region api methods / has up to date version\n @Taon.Http.POST()\n baseCLiWorkerCommand_hasUpToDateVersion(\n @Taon.Http.Param.Body() checkingProcessConfig: BaseCliWorkerConfig,\n ): Taon.Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport {\n crossPlatformPath,\n UtilsOs,\n path,\n Helpers,\n UtilsJson,\n} from 'tnp-core/websql';\n\nimport { BaseCliWorkerConfig } from './base-cli-worker-config';\n//#endregion\nexport namespace BaseCliWorkerUtils {\n export const getPathToProcessLocalInfoJson = (serviceID: string): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const getAllServicesFromOS = (): BaseCliWorkerConfig[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}","//#region imports\nimport { Taon } from 'taon/websql';\nimport { _, UtilsOs } from 'tnp-core/websql';\n\nimport { TaonBaseCliWorkerController } from '../classes/base-cli-worker';\n\nimport { Port, PortStatus } from './ports.entity';\n//#endregion\n\n@Taon.Controller({\n className: 'TaonPortsController',\n})\nexport class TaonPortsController extends TaonBaseCliWorkerController {\n //#region fields\n public START_PORT = 3000;\n public END_PORT = 20000;\n public readonly portsCache = new Map<string, Port>();\n //#endregion\n\n //#region methods\n\n //#region methods / first free port\n protected get firstFreePort(): Port | null | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get first unassigned port more than\n protected firstUnassignedPortMoreThan(port: number) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n //#endregion\n\n //#region public methods\n\n //#region public methods / get\n\n //#region public methods / get / first free port\n @Taon.Http.GET()\n getFirstFreePort(): Taon.Response<Port> {\n return async () => {\n return this.firstFreePort;\n };\n }\n //#endregion\n\n //#region public methods / get / port by number\n @Taon.Http.GET()\n getPortByNumber(\n @Taon.Http.Param.Query('portNumber') portNumber: number,\n ): Taon.Response<Port> {\n return async () => {\n portNumber = Number(portNumber);\n return Array.from(this.portsCache.values()).find(\n f => f.port === portNumber,\n );\n };\n }\n //#endregion\n\n //#region public methods / get / ports by status\n @Taon.Http.GET()\n getPortsByStatus(\n @Taon.Http.Param.Query('status') status: PortStatus,\n ): Taon.Response<Port[]> {\n return async () => {\n return Array.from(this.portsCache.values())\n .filter(f => f.status === status)\n .sort(\n // sort by port number\n (a, b) => {\n if (a.port < b.port) {\n return -1;\n }\n if (a.port > b.port) {\n return 1;\n }\n return 0;\n },\n );\n };\n }\n //#endregion\n\n //#endregion\n\n //#region public methods / ports take by os\n\n //#region public methods / ports take by os / DELETE port (make it unassigned)\n /**\n * make it unassigned\n */\n @Taon.Http.DELETE()\n deletePort(\n @Taon.Http.Param.Query('portNumber') portNumber: number,\n ): Taon.Response<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / ports take by os / UPDATE port unique id\n /**\n * make it unassigned\n */\n @Taon.Http.PUT()\n updatePortUniqueId(\n @Taon.Http.Param.Query('portNumber') portNumber: number,\n @Taon.Http.Param.Query('serviceId') serviceId: string,\n ): Taon.Response<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / ports take by os / ADD port take by os\n @Taon.Http.POST()\n addTakeByOsPort(\n @Taon.Http.Param.Query('portNumber') portNumber: number,\n @Taon.Http.Param.Query('uniqueId') uniqueId: string,\n ): Taon.Response<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n //#region public methods / register and assign port\n /**\n * @param uniqueServiceName unique service name\n * @param startFrom start searching for free port from this number\n * @returns\n */\n @Taon.Http.PUT()\n registerAndAssignPort(\n @Taon.Http.Param.Query('uniqueServiceName') uniqueServiceName: string,\n @Taon.Http.Param.Query('startFrom') startFrom?: number,\n ): Taon.Response<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n}","// @ts-nocheck\nimport { Taon } from 'taon/websql';\nimport { QueryRunner } from 'taon-typeorm/websql';\n\n@Taon.Migration({\n className: 'MainContext_1736198527297_init',\n})\nexport class MainContext_1736198527297_init extends Taon.Base.Migration {\n /**\n * remove this method if you are ready to run this migration\n */\n public isReadyToRun(): boolean {\n return false;\n }\n\n async up(queryRunner: QueryRunner): Promise<any> {\n // do \"something\" in db\n }\n\n async down(queryRunner: QueryRunner): Promise<any> {\n // revert this \"something\" in db\n }\n}\n\n@Taon.Migration({\n className: 'TaonPortsContext_1736198527297_init',\n})\nexport class TaonPortsContext_1736198527297_init extends Taon.Base.Migration {\n /**\n * remove this method if you are ready to run this migration\n */\n public isReadyToRun(): boolean {\n return true;\n }\n\n async up(queryRunner: QueryRunner): Promise<any> {\n // do \"something\" in db\n // console.log('Hello from migration UP!')\n }\n\n async down(queryRunner: QueryRunner): Promise<any> {\n // revert this \"something\" in db\n // console.log('Hello from migration DOWN!')\n }\n}","// @ts-nocheck\nimport { Taon } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { QueryRunner } from 'taon-typeorm/websql';\nimport { Port, TaonPortsController } from '../lib';\n\nconst portsWithDescription = {\n 3000: 'Commonly used for development servers',\n 3001: 'Alternate development server port',\n 3306: 'MySQL',\n 3389: 'Remote Desktop Protocol (RDP)',\n 3478: 'STUN (Session Traversal Utilities for NAT)',\n 4000: 'Alternative development server port',\n 4200: 'Angular CLI Development Server',\n 4500: 'IPSec NAT traversal',\n 4567: 'Sinatra Default Port',\n 5000: 'Flask, Python development server, or Node.js apps',\n 5432: 'PostgreSQL',\n 5500: 'Live Server (VS Code Extension)',\n 5672: 'RabbitMQ',\n 5800: 'VNC Remote Desktop (HTTP)',\n 5900: 'VNC Remote Desktop',\n 5984: 'CouchDB',\n 6000: 'in use by something in macos',\n};\n\n@Taon.Migration({\n className: 'TaonPortsContext_1736199486472_addingNotAssignablePorts',\n})\nexport class TaonPortsContext_1736199486472_addingNotAssignablePorts extends Taon\n .Base.Migration {\n protected portsController: TaonPortsController =\n this.injectController(TaonPortsController);\n\n private readonly commonPortsFrom3000to6000: number[] =\n Object.keys(portsWithDescription).map(Number);\n\n async up(queryRunner: QueryRunner): Promise<any> {\n const db = await queryRunner.manager.getRepository(Port);\n\n const allPorts = this.commonPortsFrom3000to6000.map(port =>\n Port.from({\n port,\n serviceId: `not assignable (${portsWithDescription[port]})`,\n status: 'assigned-taken-by-os',\n }),\n );\n await db.save(allPorts);\n for (const commonPortObj of allPorts) {\n this.portsController.portsCache.set(\n commonPortObj.serviceId,\n commonPortObj,\n );\n }\n }\n\n async down(queryRunner: QueryRunner): Promise<any> {\n const db = await queryRunner.manager.getRepository(Port);\n await db.remove(\n await db.find({\n where: {\n status: 'assigned-taken-by-os',\n },\n }),\n );\n const allPorts = Array.from(\n this.portsController.portsCache.values(),\n ).filter(f => f.status === 'assigned-taken-by-os');\n for (const port of allPorts) {\n this.portsController.portsCache.delete(port.serviceId);\n }\n }\n}","// @ts-nocheck\nimport { Taon } from 'taon/websql';\nimport { QueryRunner } from 'taon-typeorm/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Port, TaonPortsController } from '../lib';\n\n@Taon.Migration({\n className: 'TaonPortsContext_1736454437350_addFreePorts',\n})\nexport class TaonPortsContext_1736454437350_addFreePorts extends Taon.Base\n .Migration {\n protected portsController: TaonPortsController =\n this.injectController(TaonPortsController);\n\n async up(queryRunner: QueryRunner): Promise<any> {\n const portsTableRepo = await queryRunner.manager.getRepository(Port);\n const addFreePortsInRange = _.range(\n this.portsController.START_PORT,\n this.portsController.END_PORT + 1,\n );\n\n const allTakeByOsPort = (\n await portsTableRepo.find({\n where: {\n status: 'assigned-taken-by-os',\n },\n })\n ).map(f => f.port);\n\n const freePortsInRange = addFreePortsInRange.map(port =>\n Port.from({\n port: port,\n serviceId: Port.getTitleForFreePort(port),\n status: 'unassigned',\n }),\n ).filter(f => !allTakeByOsPort.includes(f.port));\n\n await portsTableRepo.save(freePortsInRange);\n\n for (const port of freePortsInRange) {\n this.portsController.portsCache.set(port.serviceId, port);\n }\n }\n\n async down(queryRunner: QueryRunner): Promise<any> {\n // revert this \"something\" in db\n const db = await queryRunner.manager.getRepository(Port);\n await db.remove(\n await db.find({\n where: {\n status: 'unassigned',\n },\n }),\n );\n const allPorts = Array.from(\n this.portsController.portsCache.values(),\n ).filter(f => f.status === 'unassigned');\n for (const port of allPorts) {\n this.portsController.portsCache.delete(port.serviceId);\n }\n }\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport {\n MainContext_1736198527297_init,\n TaonPortsContext_1736198527297_init,\n} from './1736198527297_init';\nimport { TaonPortsContext_1736199486472_addingNotAssignablePorts } from './1736199486472_addingNotAssignablePorts';\nimport { TaonPortsContext_1736454437350_addFreePorts } from './1736454437350_addFreePorts';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_MainContext = {\n /* 06-01-2025 22:22:07 */ MainContext_1736198527297_init,\n};\nexport const MIGRATIONS_CLASSES_FOR_TaonPortsContext = {\n /* 06-01-2025 22:22:07 */ TaonPortsContext_1736198527297_init,\n /* 06-01-2025 22:38:06 */ TaonPortsContext_1736199486472_addingNotAssignablePorts,\n /* 09-01-2025 21:27:17 */ TaonPortsContext_1736454437350_addFreePorts,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';","import { TaonBaseContext, Taon } from 'taon/websql';\nimport { os, UtilsOs } from 'tnp-core/websql';\nimport { crossPlatformPath, path, Helpers } from 'tnp-core/websql';\n\nimport { MIGRATIONS_CLASSES_FOR_TaonPortsContext } from '../../../migrations';\nimport { getBaseCliWorkerDatabaseConfig } from '../classes/base-cli-worker/base-cli-worker-database-config';\n\nimport { TaonPortsController } from './ports.controller';\nimport { Port } from './ports.entity';\n\nexport const TaonPortsContextTemplate = Taon.createContextTemplate(() => ({\n contextName: 'TaonPortsContext',\n appId: 'dev.taon.taon-ports-worker',\n contexts: { TaonBaseContext },\n controllers: { TaonPortsController },\n entities: { Port },\n migrations: { ...MIGRATIONS_CLASSES_FOR_TaonPortsContext },\n skipWritingServerRoutes: true,\n ...getBaseCliWorkerDatabaseConfig('ports-worker', 'DROP_DB+MIGRATIONS'),\n logs: {\n migrations: true,\n },\n}));","//#region imports\nimport { CoreModels, UtilsTerminal, _ } from 'tnp-core/websql';\n\nimport { Helpers, Port, PortStatusArr } from '../../index';\nimport { BaseCliWorkerTerminalUI } from '../classes/base-cli-worker/base-cli-worker-terminal-ui';\n\nimport { PortStatus } from './ports.entity';\nimport type { PortsWorker } from './tcp-upd-ports.worker';\n//#endregion\n\nexport class TcpUdpPortsTerminalUI extends BaseCliWorkerTerminalUI<PortsWorker> {\n //#region methods / header text\n protected async headerText(): Promise<string> {\n return 'TCP/UDP|Ports DB';\n }\n //#endregion\n\n //#region methods / header text style\n protected textHeaderStyle(): CoreModels.CfontStyle {\n return 'block';\n }\n //#endregion\n\n //#region methods / crud menu for take by os ports\n protected async crudMenuForTakeByOsPorts() {\n const { selected: actionChoice } =\n await UtilsTerminal.selectActionAndExecute({\n back: {\n name: ' - back - ',\n },\n editPort: {\n name: 'Edit port',\n },\n addPort: {\n name: 'Add port',\n },\n deletePort: {\n name: 'Delete port (make it unassigned)',\n },\n });\n\n switch (actionChoice) {\n case 'editPort':\n await this.editPortTerminalUiProcess();\n break;\n case 'addPort':\n await this.addPortTerminalUiProcess();\n break;\n case 'deletePort':\n await this.deletePortTerminalUiProcess();\n break;\n }\n }\n //#endregion\n\n //#region methods / add port process\n protected async addPortTerminalUiProcess(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / select port process\n protected async selectPortProcess(\n ports: Port[],\n title: string,\n ): Promise<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / delete port process\n protected async deletePortTerminalUiProcess(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / edit port process\n protected async editPortTerminalUiProcess(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get worker terminal actions\n getWorkerTerminalActions(options?: { exitIsOnlyReturn?: boolean }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / display menu with items\n protected async displayItemsForPortsStatus(status: PortStatus) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get new port to add\n private async getNewPortToAdd(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { _ } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\nimport { BaseCliWorker } from '../classes/base-cli-worker';\nimport { TaonPortsController } from '../tcp-udp-ports/ports.controller';\nimport { TaonPortsContextTemplate } from '../tcp-udp-ports/tcp-udp-ports.context';\n\nimport { TcpUdpPortsTerminalUI } from './tcp-upd-ports-terminal-ui';\n//#endregion\n\nexport class PortsWorker extends BaseCliWorker<\n TaonPortsController,\n TcpUdpPortsTerminalUI\n> {\n terminalUI = new TcpUdpPortsTerminalUI(this);\n\n workerContextTemplate = TaonPortsContextTemplate as any; // TODO for some reason as any is nessesary\n controllerClass = TaonPortsController;\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.tnp-helpers';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = 'tnp-helpers';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '19.0.73';\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { fse } from 'tnp-core/websql';\nimport { path, crossPlatformPath } from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\nimport { ConfigDatabase } from '../config-database';\nimport { ProjectDatabase } from '../project-database';\nimport { PortsWorker } from '../tcp-udp-ports';\nimport { CURRENT_PACKAGE_VERSION } from '../../build-info._auto-generated_';\n\nimport { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseProjectResolver<PROJECT extends Partial<BaseProject> = any> {\n configDb: ConfigDatabase = new ConfigDatabase(this);\n projectsDb: ProjectDatabase = new ProjectDatabase(this);\n readonly portsWorker: PortsWorker;\n\n //#region fields\n protected readonly NPM_PROJECT_KEY = 'npm';\n protected projects: PROJECT[] = [];\n /**\n * To speed up checking folder I am keeping paths for already checked folder\n * This may break things that are creating new projects\n */\n protected emptyLocations: string[] = [];\n //#endregion\n\n //#region constructor\n constructor(\n protected readonly classFn: any,\n public readonly cliToolName: string,\n ) {\n this.cliToolName = cliToolName;\n // console.log(\"global.frameworkName\",global.frameworkName)\n // if (!UtilsOs.isRunningInVscodeExtension()) {\n // if (!this.cliToolName) {\n // Helpers.throw(`cliToolName is not provided`);\n // }\n this.portsWorker = new PortsWorker(\n 'ports-worker', // BaseGlobalCommandLine.prototype.startCliServicePortsWorker\n `${this.cliToolName} startCliServicePortsWorker --skipCoreCheck`,\n CURRENT_PACKAGE_VERSION,\n );\n }\n //#endregion\n\n //#region fields & getters / allowed types\n get allowedTypes(): string[] {\n //#region @websqlFunc\n return [this.NPM_PROJECT_KEY];\n // throw `Please override this getter [allowedTypes] in your child class or ${CLI.chalk.bold(config.frameworkName)}`;\n //#endregion\n }\n //#endregion\n\n //#region fields & getters / current project\n /**\n * project from process.cwd()\n */\n get Current(): PROJECT {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region fields & getters / resolve type from\n /**\n * override this\n */\n typeFrom(location: string, recrusiveCall = false): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region fields & getters / from\n From(locationOfProject: string | string[], options?: any): PROJECT {\n // console.log({\n // locationOfProj\n // })\n //#region @websqlFunc\n if (Array.isArray(locationOfProject)) {\n locationOfProject = locationOfProject.join('/');\n }\n let location = crossPlatformPath(locationOfProject.replace(/\\/\\//g, '/'));\n\n if (!_.isString(location)) {\n Helpers.warn(`[project.from] location is not a string`);\n return;\n }\n if (path.basename(location) === 'dist') {\n location = path.dirname(location);\n }\n location = crossPlatformPath(path.resolve(location));\n\n const alreadyExist = this.projects.find(\n l => l.location.trim() === location.trim(),\n );\n if (alreadyExist) {\n return alreadyExist as any;\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n //#endregion\n }\n //#endregion\n\n //#region fields & getters / get project nearest to path\n nearestTo(\n absoluteLocation: string | string[],\n options?: {\n type?: string | string[];\n findGitRoot?: boolean;\n onlyOutSideNodeModules?: boolean;\n },\n ): PROJECT {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region fields & getters / unload project\n unload(projectOrLocationOfProject: PROJECT | string) {\n const location = _.isString(projectOrLocationOfProject)\n ? projectOrLocationOfProject\n : projectOrLocationOfProject?.location;\n\n this.projects = this.projects.filter(f => f.location !== location);\n this.emptyLocations = this.emptyLocations.filter(f => f !== location);\n }\n //#endregion\n\n //#region fields & getters / remove project\n remove(project: PROJECT) {\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region fields & getters / manually add project\n add(project: PROJECT) {\n/* */\n/* */\n \n }\n //#endregion\n\n //#region fields & getters / all projects from location\n\n allProjectFrom(absoluteLocation: string, stopOnCwd: string = '/') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n allProjectsFromFolder(folderLocation: string): PROJECT[] {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region fields & getters / sort group of projects\n public sortGroupOfProject<\n T extends BaseProject<any, any> = BaseProject<any, any>,\n >(\n projects: T[],\n resoveDepsArray: (proj: T) => string[],\n projNameToCompare: (proj: T) => string,\n ): T[] {\n const visited: { [key: string]: boolean } = {};\n const stack: { [key: string]: boolean } = {};\n const result: T[] = [];\n\n const visit = (project: T) => {\n if (stack[projNameToCompare(project)]) {\n // Circular dependency detected\n Helpers.error(\n `Circular dependency detected involving project: ${projNameToCompare(\n project,\n )}`,\n );\n }\n\n if (!visited[projNameToCompare(project)]) {\n visited[projNameToCompare(project)] = true;\n stack[projNameToCompare(project)] = true;\n\n const depsResolved = resoveDepsArray(project);\n depsResolved.forEach(dependency => {\n const dependentProject = projects.find(p => {\n // console.log(`comparing :\"${projNameToCompare(p)}\" and \"${dependency}\"`)\n return projNameToCompare(p) === dependency;\n });\n if (dependentProject) {\n visit(dependentProject);\n }\n });\n\n stack[projNameToCompare(project)] = false;\n result.push(project);\n }\n };\n\n projects.forEach(project => visit(project));\n return result;\n // return result.reverse(); // Reverse the result to get the correct order\n }\n //#endregion\n}","//#region import\nimport { config } from 'tnp-core/websql';\nimport { CommandOutputOptions, UtilsOs, UtilsTerminal } from 'tnp-core/websql';\nimport { CoreModels } from 'tnp-core/websql';\nimport { CLI } from 'tnp-core/websql';\nimport { path, crossPlatformPath } from 'tnp-core/websql';\nimport { fse, chalk } from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Utils } from 'tnp-core/websql';\n\nimport {\n CoreProject,\n Helpers,\n LinkedProject,\n UtilsTaonWorker,\n UtilsTypescript,\n} from '../../index';\nimport { BaseProjectType } from '../../models';\n\nimport { BaseDocker } from './base-docker';\nimport { BaseFileFoldersOperations } from './base-file-folders-operations';\nimport { BaseGit } from './base-git';\nimport { BaseIgnoreHideHelpers } from './base-ignore-hide';\nimport { BaseJavaJdk } from './base-java-jdk';\nimport type { BaseLibraryBuild } from './base-library-build';\nimport { BaseLinkedProjects } from './base-linked-projects';\nimport { BaseLinter } from './base-linter';\nimport { BaseNpmHelpers } from './base-npm-helpers';\nimport { BaseProjectResolver } from './base-project-resolver';\nimport { BaseQuickFixes } from './base-quick-fixes';\nimport { BaseReleaseProcess } from './base-release-process';\nimport { BaseStaticPages } from './base-static-pages';\nimport { BaseVscodeHelpers } from './base-vscode';\n//#endregion\n\nexport abstract class BaseProject<\n PROJECT extends BaseProject<any, any> = BaseProject<any, any>,\n TYPE = BaseProjectType,\n> {\n //#region static\n\n //#region static / instance of resovle\n static ins = new BaseProjectResolver<BaseProject>(BaseProject, 'taon');\n //#endregion\n\n //#endregion\n\n //#region fields\n public cache: any = {};\n public static cache: any = {};\n public get globalCache(): any {\n return BaseProject.cache;\n }\n readonly type: TYPE | string = 'unknow';\n\n /**\n * resolve instance\n */\n abstract readonly ins: BaseProjectResolver<PROJECT>;\n /**\n * Unique free port for project instance\n * only available after executing *this.assignFreePort()*\n */\n readonly port: string;\n\n public libraryBuild?: BaseLibraryBuild<BaseProject>;\n public npmHelpers?: BaseNpmHelpers;\n public fileFoldersOperations?: BaseFileFoldersOperations;\n\n get packageJson() {\n return this.npmHelpers.packageJson;\n }\n\n get nodeModules() {\n return this.npmHelpers.nodeModules;\n }\n\n public linkedProjects?: BaseLinkedProjects;\n public vsCodeHelpers?: BaseVscodeHelpers;\n public releaseProcess?: BaseReleaseProcess;\n public git?: BaseGit;\n public linter?: BaseLinter;\n public ignoreHide: BaseIgnoreHideHelpers;\n public quickFixes?: BaseQuickFixes;\n public staticPages?: BaseStaticPages;\n public javaJdk?: BaseJavaJdk;\n public docker?: BaseDocker;\n //#endregion\n\n private __location: string;\n get location(): string {\n return this.__location;\n }\n set location(v: string) {\n this.__location = crossPlatformPath(v);\n }\n\n //#region constructor\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n //#endregion\n\n //#region methods & getters / is monorepo\n /**\n * TODO move this to framework\n * Linked projects are actual inside repo\n * not in separated folders/git sub repos\n */\n get isMonorepo(): boolean {\n return false;\n }\n //#endregion\n\n //#region getters & methods / order core projects\n protected orderCoreProjects(coreProjects: CoreProject[]): CoreProject[] {\n const projectMap = new Map<CoreProject, CoreProject[]>();\n\n // Initialize the project map\n for (const project of coreProjects) {\n projectMap.set(project, []);\n }\n\n // Populate the project map with dependencies\n for (const project of coreProjects) {\n if (!projectMap.has(project.extends)) {\n projectMap.set(project.extends, []);\n }\n projectMap.get(project.extends)!.push(project);\n }\n\n const orderedProjects: CoreProject[] = [];\n const visited = new Set<CoreProject>();\n\n const visit = (project: CoreProject) => {\n if (!visited.has(project)) {\n visited.add(project);\n const dependencies = projectMap.get(project);\n if (dependencies) {\n for (const dep of dependencies) {\n visit(dep);\n }\n }\n orderedProjects.push(project);\n }\n };\n\n // Visit each project\n for (const project of coreProjects) {\n visit(project);\n }\n\n return orderedProjects.reverse();\n }\n //#endregion\n\n //#region methods & getters / core\n\n get core(): CoreProject {\n if (!_.isUndefined(this.cache['core'])) {\n return this.cache['core'];\n }\n // Helpers.taskStarted(`Detecting core project for ${this.genericName}`);\n let coreProjects = CoreProject.coreProjects.filter(p =>\n p.recognizedFn(this as any),\n );\n coreProjects = this.orderCoreProjects(coreProjects);\n // Helpers.taskDone(`Core project detected for ${this.genericName}`);\n // console.log('CoreProject.coreProjects', CoreProject.coreProjects.map(c => c.name));\n this.cache['core'] = _.first(coreProjects);\n return this.cache['core'];\n }\n //#endregion\n\n //#region getters & methods / link project exited\n get linkedProjectsExisted(): PROJECT[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / set type\n public setType(type: TYPE) {\n // @ts-ignore\n this.type = type;\n }\n //#endregion\n\n //#region methods & getters / type is\n public typeIs(...types: TYPE[]) {\n return this.type && types.includes(this.type as any);\n }\n //#endregion\n\n //#region methods & getters / type is not\n public typeIsNot(...types: TYPE[]) {\n return !this.typeIs(...types);\n }\n //#endregion\n\n //#region methods & getters / basename\n /**\n * project folder basename\n */\n get basename(): string {\n //#region @websqlFunc\n return path.basename(this.location);\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / parent basename\n /**\n * project folder parent basename\n */\n get parentBasename(): string {\n //#region @websqlFunc\n return path.basename(path.dirname(this.location));\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / name\n /**\n * name from package.json\n */\n get name(): string {\n return this.packageJson?.name || this.nameFromPomXML;\n }\n\n get nameForCli(): string {\n return this.name?.endsWith('-cli') ? this.name : `${this.name}-cli`;\n }\n\n get nameForNpmPackage(): string {\n return this.name;\n }\n\n get nameFromPomXML(): string {\n const artifactIdPattern = /<artifactId>([^<]+)<\\/artifactId>/;\n const match = (this.readFile('pom.xml') || '').match(artifactIdPattern);\n if (match && match[1]) {\n return match[1];\n }\n return '';\n }\n //#endregion\n\n //#region methods & getters / get folder for possible project chhildrens\n protected getFoldersForPossibleProjectChildren(): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get all childrens\n protected getAllChildren() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / children\n /**\n * alias to getAllChildren\n */\n get children(): PROJECT[] {\n //#region @websqlFunc\n return this.getAllChildren();\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / get child\n getChildBy(nameOrBasename: string, errors = true): PROJECT {\n //#region @websqlFunc\n const c = this.children.find(\n c => c.name === nameOrBasename || c.basename === nameOrBasename,\n );\n if (errors && !c) {\n // TODO @LAST FIX THIS FOR DEEEP ARGGUMENTS\n Helpers.warn(\n `Project doesnt contain child with name or basename: ${nameOrBasename}`,\n );\n }\n return c;\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / parent\n get parent(): PROJECT {\n //#region @websqlFunc\n if (!_.isString(this.location) || this.location.trim() === '') {\n return void 0;\n }\n return this.ins.From(path.join(this.location, '..'));\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / parent\n get nearestParent(): PROJECT {\n //#region @websqlFunc\n if (this.cache['nearestParent']) {\n return this.cache['nearestParent'];\n }\n const nearestParent = this.ins.nearestTo([this.location, '..']) as PROJECT;\n if (nearestParent) {\n // console.log(`\n // nearest parent for ${this.genericName} is ${nearestParent.genericName}\n\n // `);\n this.cache['nearestParent'] = nearestParent;\n }\n return nearestParent;\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / grandpa\n get grandpa(): PROJECT {\n //#region @websqlFunc\n if (!_.isString(this.location) || this.location.trim() === '') {\n return void 0;\n }\n const grandpa = this.ins.From(path.join(this.location, '..', '..'));\n return grandpa;\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / generic name\n get allNpmPackagesNames(): string[] {\n return [this.name];\n }\n\n get titleBarName() {\n const allPackagesNames =\n this.allNpmPackagesNames.filter(f => f !== this.basename).length === 0\n ? ''\n : `(${this.allNpmPackagesNames.filter(f => f !== this.basename).join(',')})`;\n\n if (this.parent) {\n return (\n `${path.basename(path.dirname(this.parent.location))}/${this.parent.name}/` +\n `${this.basename} ${allPackagesNames} [ \\${activeEditorShort} ]`\n );\n }\n return (\n `${path.basename(path.dirname(this.location))}/` +\n `${this.basename} (${allPackagesNames}) [ \\${activeEditorShort}]`\n );\n }\n\n get genericName() {\n //#region @websqlFunc\n if (!_.isUndefined(this.cache['genericName'])) {\n return this.cache['genericName'];\n }\n let nameFromPackageJson = this.name;\n/* */\n/* */\n \n\n const sliceMinus = 8;\n const shortPath =\n '/' +\n crossPlatformPath(this.location)\n .split('/')\n .slice(-1 * sliceMinus)\n .join('/');\n\n const result =\n (shortPath.includes(crossPlatformPath(this.location)) ? '/' : '(..)') +\n this.checkAndBoldenPath(this.location)\n .split('/')\n .slice(-1 * sliceMinus)\n .join('/') +\n `(${nameFromPackageJson})`;\n\n this.cache['genericName'] = result.replace(/\\/\\//g, '/');\n return this.cache['genericName'];\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / check and bolden path\n private checkAndBoldenPath(fullPath: string) {\n const parts = fullPath.split('/');\n\n const result = parts.map((part, index) => {\n const pathTocheck = parts.slice(0, index + 1).join('/');\n // console.log('pathTocheck', pathTocheck);\n/* */\n/* */\n/* */\n/* */\n \n return part;\n });\n\n return result.join('/');\n }\n //#endregion\n\n //#region methods & getters / path exits\n /**\n * same has project.hasFile();\n */\n pathExists(relativePath: string | string[]): boolean {\n return this.hasFile(relativePath);\n }\n //#endregion\n\n //#region methods & getters / has file\n /**\n * same as project.pathExists();\n */\n hasFile(relativePath: string | string[]): boolean {\n/* */\n/* */\n/* */\n return (void 0);\n }\n hasFolder(relativePath: string | string[]): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / relative\n /**\n * Function will return relative path from project location\n */\n relative(absoultePath: string) {\n return crossPlatformPath(\n path.relative(\n crossPlatformPath(this.location),\n crossPlatformPath(absoultePath),\n ),\n );\n }\n //#endregion\n\n //#region methods & getters / create folder\n /**\n *\n * @param relativePath\n * @param override it will remove ex\n */\n createFolder(\n relativePath: string | string[],\n options?: {\n override?: boolean;\n },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / format file(s) with prettier\n formatFile(specificRelativePath: string | string[]) {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n formatAllFiles() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / contains file\n /**\n * same as project.pathhasFileExists();\n * but with path.resolve\n */\n containsFile(fileRelativeToProjectPath: string) {\n const fullPath = path.resolve(\n path.join(this.location, fileRelativeToProjectPath),\n );\n return Helpers.exists(fullPath);\n }\n //#endregion\n\n //#region methods & getters / path for\n /**\n * absolute path:\n * concated project location with relative path\n */\n pathFor(relativePath: string | string[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / write json\n writeJson(relativePath: string, json: object) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / write json\n writeJsonC(relativePath: string, json: object) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / run\n /**\n * @deprecated us execute instead\n * use output from or more preciese crafted api\n */\n run(command: string, options?: Omit<CoreModels.RunOptions, 'cwd'>) {\n let opt: CoreModels.RunOptions;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n return Helpers.run(command, opt);\n }\n //#endregion\n\n //#region methods & getters / execute\n /**\n * same as run but async\n */\n public async execute(\n command: string,\n options?: CoreModels.ExecuteOptions & { showCommand?: boolean },\n ): Promise<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / try run sync command\n /**\n * try run but continue when it fails\n * @param command\n * @param options\n * @returns\n */\n tryRunSync(\n command: string,\n/* */\n/* */\n \n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / output from command\n outputFrom(\n command: string,\n/* */\n/* */\n \n ) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / remove file\n removeFile(fileRelativeToProjectPath: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / read file\n readFile(fileRelativeToProjectPath: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / read file\n /**\n * read json file\n * handle all json files\n * jsonc, json5 , json\n * @param fileRelativeToProjectPath\n * @returns\n */\n readJson<T = {}>(fileRelativeToProjectPath: string): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / copy files or folders\n /**\n * copy files or folders from\n * project to destination\n */\n copy(filesOrFolderRelativePathes: string[]): {\n to: (destination: string) => void;\n } {\n return {\n to: (destination: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n },\n };\n }\n //#endregion\n\n //#region methods & getters / remove (fiel or folder)\n remove(relativePath: string | string[], exactPath = true) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / remove folder by relative path\n removeFolderByRelativePath(relativePathToFolder: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n get isAngularLib() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async refreshChildrenProjects(options?: {\n askUserAboutUpdate?: boolean;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / get unique for task\n protected getUniqueForTask(task: string): string {\n return UtilsTaonWorker.getUniqueForTask(task, this.location);\n }\n //#endregion\n\n //#region methods & getters / register and assign port\n public async registerAndAssignPort(\n taskName: string,\n options: { startFrom?: number } = {},\n ): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / assign free port to project instance\n /**\n * @deprecated use this.registerAndAssignPort() or Utils.getFreePort() instead\n */\n async assignFreePort(startFrom: number = 4200): Promise<number> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / define property\n /**\n * Purpose: not initializing all classes at the beginning\n * Only for BaseFeatureForProject class\n */\n defineProperty<PROJECT>(\n variableName: keyof PROJECT,\n classFn: Function,\n options?: {\n customInstanceReturn?: () => object;\n },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / filter only copy\n /**\n * fs.copy option filter function for copying only selected folders from project\n */\n filterOnlyCopy(basePathFoldersOnlyToInclude: string[]) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / filter don't copy\n /**\n * fs.copy option filter function for copying only not selected folders from project\n */\n filterDontCopy(basePathFoldersTosSkip: string[]) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get main branches\n /**\n * main/default hardcoded branches\n */\n getMainBranches(): string[] {\n return ['master', 'develop', 'stage', 'prod', 'test'];\n }\n //#endregion\n\n //#region methods & getters / use feature in branch name for tests\n useFeatureInBranchNameForTests() {\n return false;\n }\n //#endregion\n\n //#region methods & getters / reset process\n async resetProcess(overrideBranch?: string, recrusive = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region methods & getters / link project to\n linkTo(destPackageLocation: string) {\n/* */\n/* */\n \n }\n //#endregion\n\n //#region methods & getters / set value to json\n setValueToJSON(\n relativePath: string | string[],\n lodashGetPath: string,\n value: any,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / set value to json\n setValueToJSONC(\n relativePath: string | string[],\n lodashGetPath: string,\n value: any,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / set value to json\n setValueToJSON5(\n relativePath: string | string[],\n lodashGetPath: string,\n value: any,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get value from json\n getValueFromJSON(\n relativePath: string | string[],\n lodashGetPath: string,\n defaultValue: any = void 0,\n ): any {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get value from jsonc\n getValueFromJSONC(\n relativePath: string | string[],\n lodashGetPath: string,\n defaultValue: any = void 0,\n ): any {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / write file\n\n writeFile(\n relativePath: string | string[],\n content: string,\n options?: { formatWithPrettier?: boolean },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region getters & methods / run command and get string\n public runCommandGetString(this: BaseProject, command: string) {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / to string\n toString = () => {\n return `${this.name}=>${this.location}`;\n };\n //#endregion\n\n //#region getters & methods / find partners names\n get parentsNames() {\n/* */\n/* */\n return (void 0);\n }\n\n //#region getters & methods / open location\n openLocation(relativeFolderPath: string) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n private findParentsNames(\n project?: PROJECT,\n parent?: PROJECT,\n result = [],\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / kill all instance\n tryKillAllElectronInstances() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / init\n /**\n * init project files structure and depedencies\n */\n async init(initOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / link\n /**\n * globally link npm as package\n */\n async link() {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / struct\n /**\n * init project files structure without depedencies\n */\n async struct(initOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / build\n /**\n * init and build() project\n */\n async test(testOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / build\n /**\n * init and build() project\n */\n async build(buildOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / publish\n /**\n * publish project to npm\n */\n async publish(publishOptions?: any): Promise<void> {\n this.npmHelpers.publishToNpmRegistry();\n }\n //#endregion\n\n //#region getters & methods / build\n async release(releaseOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / lint\n /**\n * lint porject\n */\n async lint(lintOptions?: any) {\n Helpers.info(`\n\n\n COMMIT LINT NOT IMPLEMENTED\n\n\n `);\n }\n //#endregion\n\n //#region getters & methods / info\n /**\n * get info about porject\n */\n async info(): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { BaseProject } from './base-project';\n\nexport abstract class BaseFeatureForProject<\n PROJECT extends BaseProject<any,any> = BaseProject<any,any>,\n> {\n get ins() {\n return this.project.ins;\n }\n\n constructor(protected project: PROJECT) {}\n}","//#region import\nimport { config, FilesNames } from 'tnp-core/websql';\nimport { chalk } from 'tnp-core/websql';\nimport { CoreModels } from 'tnp-core/websql';\nimport { path, crossPlatformPath } from 'tnp-core/websql';\nimport { _, UtilsTerminal } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\nimport {\n LibrariesBuildOptions,\n LibraryBuildCommandOptions,\n NgProject,\n} from '../../models';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\n/**\n * Base library build for standard angular/typescript projects\n */\nexport abstract class BaseLibraryBuild<\n PROJECT extends BaseProject<BaseProject, any>,\n> extends BaseFeatureForProject<PROJECT> {\n private cache: any = {};\n protected readonly tempOrgTsConfigFile = `tmp-original-${config.file.tsconfig_json}`;\n\n //#region getters & methods / sort by deps\n protected sortByDeps(libraries: PROJECT[]): PROJECT[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get sorted libraries by deps for build\\\n /**\n * Use cases:\n * 1. build all libraries in normal mode\n * 2. build all libraries in watch mode\n * 3. build selected libraries in normal mode\n * (with first time all libraries will be build)\n * 4. build selected libraries in watch mode\n * (use normal build for not selected libraries)\n * 5. build selected libraries in watch mode\n * (skip normal build for not selected libraries)\n */\n async selectAndSaveLibraries(\n // this: {},\n {\n selectedLibs,\n watch,\n watchBuildSupported,\n skipAllLibsQuestion,\n useLastUserConfiguration,\n }: {\n selectedLibs: PROJECT[];\n watch: boolean;\n watchBuildSupported?: boolean;\n skipAllLibsQuestion?: boolean;\n useLastUserConfiguration?: boolean;\n },\n ): Promise<{ selectedLibs: PROJECT[]; skipRebuildingAllForWatch: boolean }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / angular libraries\n /**\n * angular libraries from angular.json\n */\n get libraries(): PROJECT[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n protected getLibraries() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / build libraries\n /**\n * Angular library build\n */\n public async buildLibraries(\n // this:{},\n {\n watch = false,\n strategy,\n releaseBuild = false,\n copylink_to_node_modules,\n outputLineReplace,\n libraries,\n useLastUserConfiguration,\n }: LibrariesBuildOptions<PROJECT> & { watch?: boolean } = {} as any,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region getters & methods / lib watch build process\n protected async libWatchBuildProcess({\n lib,\n locationsForNodeModules,\n strategy,\n outputLineReplace,\n }: {\n lib: PROJECT;\n locationsForNodeModules: string[];\n strategy: 'link' | 'copy';\n outputLineReplace?: (outputLine: string) => string;\n }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / lib normal build process\n protected async libNormalBuildProcess({\n lib,\n locationsForNodeModules,\n strategy,\n outputLineReplace,\n }: {\n lib: PROJECT;\n locationsForNodeModules: string[];\n strategy: 'link' | 'copy';\n outputLineReplace?: (outputLine: string) => string;\n }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get library build success command\n getLibraryBuildCommand(\n options?: LibraryBuildCommandOptions,\n ): string | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get library build success command\n get getLibraryBuildSuccessComamnds(): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / select copy to projects\n async selectCopytoProjects(): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region private methods / change tsconfig for libraries typescript proper local types\n private async changeTsConfigForLibrariesTypes(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region private methods / replace tsconfig pathes\n protected async replaceTsConfigsPathes() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region private methods / restore original tsconfig\n private async restoreOriginalTsConfig() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { config } from 'tnp-core/websql';\nimport { crossPlatformPath, path, _ } from 'tnp-core/websql';\nimport { Helpers } from '../../../lib';\nimport { PackageJson } from 'type-fest';\n\nexport interface BaseJsonFileReaderOptions<DATA> {\n /**\n * cwd for <my-json>.json\n * <cwd>/<my-json>\n * (you can also provide full path - basename will be cut)\n */\n cwd?: string;\n /**\n * file name\n * example: package.json, taon.json etc.\n */\n fileName?: string;\n /**\n * json content to read from memory\n */\n jsonContent?: Partial<DATA>;\n /**\n * callback for external reload\n */\n reloadInMemoryCallback?: (data: DATA) => void;\n /**\n * use json with comments reader to read json file\n */\n readJsonAsJsonWithComments?: boolean;\n /**\n * default value for data\n * if file not exist\n * (ONLY FOR cwd + fileName mode)\n */\n defaultValue?: Partial<DATA>;\n}\n\n/**\n * Base class for reading json files\n * There are 2 modes of reading json files:\n * - cwd + fileName (read and write to disk in cwd)\n * - jsonContent (read and write to memory and use\n * reloadInMemoryCallback for external reload)\n */\nexport class BaseJsonFileReader<DATA> {\n //#region fields\n /**\n * null when package.json not exist\n */\n protected data: DATA | null;\n\n /**\n * use json with comments reader to read package.json\n */\n protected readonly readJsonAsJsonWithComments: boolean = false;\n //#endregion\n\n //#region constructor\n public readonly cwd: string;\n protected readonly fileName: string;\n /**\n * @deprecated\n * use only when cwd and fileName are not provided\n */\n protected readonly jsonContent?: Partial<DATA>;\n protected readonly defaultValue?: Partial<DATA>;\n protected readonly reloadInMemoryCallback?: (data: DATA) => void;\n constructor(options: BaseJsonFileReaderOptions<DATA>) {\n let {\n cwd,\n fileName,\n jsonContent,\n reloadInMemoryCallback,\n readJsonAsJsonWithComments,\n defaultValue,\n } = options;\n if (cwd) {\n cwd = crossPlatformPath(cwd);\n if (cwd.endsWith(`/${config.file.package_json}`)) {\n cwd = cwd.replace(`/${config.file.package_json}`, '');\n }\n this.cwd = cwd;\n }\n\n this.defaultValue = defaultValue;\n this.fileName = fileName;\n if (cwd && jsonContent) {\n throw new Error(\n `You can't provide cwd and jsonContent at the same time. Choose one.`,\n );\n }\n if (!cwd && !jsonContent) {\n throw new Error(`You need to provide cwd or jsonContent`);\n }\n this.readJsonAsJsonWithComments = !!readJsonAsJsonWithComments;\n this.reloadInMemoryCallback = reloadInMemoryCallback;\n this.jsonContent = _.cloneDeep(jsonContent);\n this.reloadPackageJsonInMemory();\n }\n //#endregion\n\n //#region path\n /**\n * cwd + fileName\n */\n get path() {\n return crossPlatformPath([this.cwd, this.fileName]);\n }\n //#endregion\n\n //#region reload package json in memory\n /**\n * if something else change package.json in this project\n * and you know that you need to reload it..\n */\n reloadPackageJsonInMemory(): void {\n if (this.jsonContent) {\n this.data = _.cloneDeep(this.jsonContent as any);\n } else {\n try {\n if (this.readJsonAsJsonWithComments) {\n this.data = Helpers.readJsonC(this.path);\n } else {\n this.data = Helpers.readJson(this.path);\n }\n if (!this.data && this.defaultValue) {\n this.data = _.cloneDeep(this.defaultValue as any);\n }\n } catch (error) {\n if (this.defaultValue) {\n this.data = _.cloneDeep(this.defaultValue as any);\n } else {\n this.data = null;\n }\n }\n }\n this.reloadInMemoryCallback &&\n this.reloadInMemoryCallback(_.cloneDeep(this.data as any));\n }\n //#endregion\n\n //#region write package json to disk\n saveToDisk(purpose?: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region link to\n linkTo(destination: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get all data\n getAllData(): DATA {\n return _.cloneDeep(this.data);\n }\n //#endregion\n\n //#region set all data\n setAllData(data: DATA): void {\n this.data = _.cloneDeep(data);\n this.saveToDisk();\n }\n //#endregion\n}","import { config } from 'tnp-core/websql';\nimport { _, CoreModels, crossPlatformPath, path } from 'tnp-core/websql';\nimport { Helpers } from 'tnp-core/websql';\nimport { PackageJson as PackageJsonBase } from 'type-fest';\n\nimport {\n BaseJsonFileReader,\n BaseJsonFileReaderOptions,\n} from './base-json-file-reader';\n\nexport type PackageJson = PackageJsonBase & {\n lastBuildTagHash?: string;\n publisher?: string;\n displayName?: string;\n};\n\n//#region package json dependency obj\nexport type PackageJsonDependencyObj =\n | 'dependencies'\n | 'devDependencies'\n | 'peerDependencies'\n | 'resolutions';\n\nexport const PackageJsonDependencyObjArr = [\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'resolutions',\n] as PackageJsonDependencyObj[];\n//#endregion\n\nexport class BasePackageJson extends BaseJsonFileReader<PackageJson> {\n constructor(\n options: Omit<BaseJsonFileReaderOptions<PackageJson>, 'fileName'>,\n ) {\n super({ ...options, fileName: config.file.package_json });\n }\n\n //#region name\n\n /**\n * 'dependencies'\n * 'devDependencies'\n * 'peerDependencies'\n * 'resolutions';\n * and whatever is in package.json to npm install\n */\n get dependenciesTypesArray(): PackageJsonDependencyObj[] {\n return PackageJsonDependencyObjArr;\n }\n\n get name(): string {\n return this.data?.name || '';\n }\n\n async setName(name: string): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region dev dependencies\n /**\n * devDependencies dependencies\n */\n get devDependencies(): PackageJson['devDependencies'] {\n return _.cloneDeep(this.data ? this.data.devDependencies : {}) || {};\n }\n //#endregion\n\n //#region resolutions dependencies\n /**\n * resolutions dependencies\n */\n get resolutions(): PackageJson['resolutions'] {\n return _.cloneDeep(this.data ? this.data['resolutions'] : {}) || {};\n }\n //#endregion\n\n //#region dependencies\n /**\n * npm dependencies from package.json\n */\n get dependencies(): PackageJson['dependencies'] {\n return _.cloneDeep(this.data ? this.data.dependencies : {}) || {};\n }\n\n get optionalDependencies(): PackageJson['optionalDependencies'] {\n return _.cloneDeep(this.data ? this.data.optionalDependencies : {}) || {};\n }\n\n get description(): string {\n return this.data?.description || '';\n }\n\n get displayName(): string {\n return this.data.displayName || '';\n }\n\n get publisher(): string {\n return this.data.publisher || '';\n }\n\n get contributes(): PackageJson['contributes'] {\n return this.data?.contributes;\n }\n\n get repository(): PackageJson['repository'] {\n return this.data?.repository;\n }\n\n setRepository(repository: PackageJson['repository']) {\n this.data.repository = repository;\n this.saveToDisk('setting repository');\n }\n\n /**\n * set the WHOLE dependencies object\n * THIS WILL NOT MERGE -> IT WILL REPLACE WHOLE DEPENDENCIES OBJECT\n */\n setDependencies(dependencies: PackageJson['dependencies']) {\n if (!this.data) {\n Helpers.warn(\n `[taon][setDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n this.data.dependencies = dependencies;\n this.saveToDisk();\n }\n //#endregion\n\n /**\n * set the WHOLE dependencies object\n * THIS WILL NOT MERGE -> IT WILL REPLACE WHOLE DEPENDENCIES OBJECT\n */\n setDevDependencies(devDependencies: PackageJson['devDependencies']) {\n if (!this.data) {\n Helpers.warn(\n `[taon][setDevDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n this.data.devDependencies = devDependencies;\n this.saveToDisk();\n }\n //#endregion\n\n //#region peer dependencies\n /**\n * peerDependencies dependencies\n */\n get peerDependencies(): PackageJson['peerDependencies'] {\n return _.cloneDeep(this.data ? this.data.peerDependencies : {}) || {};\n }\n\n /**\n * set the WHOLE peerDependencies object\n * THIS WILL NOT MERGE -> IT WILL REPLACE WHOLE PEER DEPENDENCIES OBJECT\n */\n setPeerDependencies(peerDependencies: PackageJson['peerDependencies']) {\n if (!this.data) {\n Helpers.warn(\n `[taon][setPeerDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n this.data.peerDependencies = peerDependencies;\n this.saveToDisk();\n }\n //#endregion\n\n setOptionalDependencies(\n optionalDependencies: PackageJson['optionalDependencies'],\n ) {\n if (!this.data) {\n Helpers.warn(\n `[taon][setOptionalDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n this.data.optionalDependencies = optionalDependencies;\n this.saveToDisk();\n }\n //#endregion\n\n //#region remove dev dependencies\n removeDevDependencies() {\n if (!this.data) {\n Helpers.warn(\n `[taon][removeDevDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n try {\n delete this.data.devDependencies;\n } catch (error) {}\n this.saveToDisk();\n }\n //#endregion\n\n //#region all dependencies\n /**\n * @returns object witl all deps from current project package json\n */\n get allDependencies(): { [packageName: string]: string } {\n return this.allDepsFromPackageJson(this.data);\n }\n\n /**\n * @returns object witl all deps from package json\n */\n protected allDepsFromPackageJson(packageJson: PackageJson) {\n return _.cloneDeep(\n _.merge({\n ...PackageJsonDependencyObjArr.reduce((acc, depObj) => {\n return {\n ...acc,\n ...(packageJson[depObj] || {}),\n };\n }, {}),\n }),\n );\n }\n //#endregion\n\n //#region version\n /**\n * version from package.json -> property version\n */\n get version(): string {\n return this.data?.version;\n }\n\n setVersion(version: string): void {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bin\n /**\n * bin with cli config from package.json\n */\n get bin(): Partial<Record<string, string>> {\n return _.cloneDeep(this.data?.bin || {}) as any;\n }\n\n set bin(value: Partial<Record<string, string>>) {\n this.data.bin = value;\n this.saveToDisk('setting bin');\n }\n //#endregion\n\n //#region engines\n get engines(): PackageJson['engines'] {\n return _.cloneDeep(this.data.engines);\n }\n\n async setEngines(engines: PackageJson['engines']): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region homepage\n get homepage(): PackageJson['homepage'] {\n return _.cloneDeep(this.data.homepage);\n }\n\n async setHomepage(homepage: PackageJson['homepage']): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region version with patch plus one\n get versionWithPatchPlusOne(): string {\n const ver = this.version.split('.');\n if (ver.length > 0) {\n ver[ver.length - 1] = (parseInt(_.last(ver)) + 1).toString();\n }\n return ver.join('.');\n }\n //#endregion\n\n //#region version with minor plus one and path zero\n get versionWithMinorPlusOneAndPatchZero(): string {\n const ver = this.version.split('.');\n if (ver.length > 1) {\n ver[1] = (parseInt(ver[1]) + 1).toString();\n for (let index = 2; index < ver.length; index++) {\n ver[index] = '0';\n }\n } else {\n Helpers.warn(\n `[npm-project] something went wrong with bumping minor version`,\n );\n }\n return ver.join('.');\n }\n //#endregion\n\n //#region version with major plus one and minor zero and patch zero\n get versionWithMajorPlusOneAndMinorZeroAndPatchZero(): string {\n const ver = this.version.split('.');\n if (ver.length > 0) {\n ver[0] = (parseInt(_.first(ver)) + 1).toString();\n for (let index = 1; index < ver.length; index++) {\n ver[index] = '0';\n }\n } else {\n Helpers.warn(\n `[npm-project] something went wrong with bumping major version`,\n );\n }\n return ver.join('.');\n }\n //#endregion\n\n //#region get version path as number\n get versionPathAsNumber(): number {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region major version\n /**\n * Major Version from package.json\n */\n // @ts-ignore\n get majorVersion(): number {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region minor version\n /**\n * Minor Version from package.json\n */\n // @ts-ignore\n get minorVersion(): number {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get version as number\n /**\n * @deprecated TODO not usefull ?\n */\n getVersionAsNumber(releaseType: CoreModels.ReleaseVersionType): number {\n if (releaseType === 'patch') {\n return this.versionPathAsNumber;\n }\n if (releaseType === 'minor') {\n return this.minorVersion;\n }\n if (releaseType === 'major') {\n return this.majorVersion;\n }\n }\n //#endregion\n\n //#region bump path version\n async bumpPatchVersion() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get version for\n getBumpedVersionFor(releaseType: CoreModels.ReleaseVersionType): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region update deps from locations\n updateDepsFrom(locations: string[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region update dependency\n /**\n * this will NOT SET dependency if\n * dependency name is not in package.json\n */\n updateDependency({\n packageName,\n version,\n }: {\n packageName: string;\n version: string | null;\n }): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is private\n get isPrivate(): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n setIsPrivate(value: boolean) {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region side effects\n get sideEffects(): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region set new version\n async setMainProperty(main: string, purpose = ''): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region build hash\n setBuildHash(hash: string): void {\n this.data.lastBuildTagHash = hash;\n this.saveToDisk('setting build hash');\n }\n getBuildHash(): string {\n return this.data.lastBuildTagHash;\n }\n //#endregion\n\n //#region copyto\n copyTo(location: string | string[]): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport type fs from 'fs';\n\nimport { config } from 'tnp-core/websql';\nimport { UtilsOs } from 'tnp-core/websql';\nimport {\n CoreModels,\n crossPlatformPath,\n fse,\n path,\n _,\n chalk,\n dateformat,\n} from 'tnp-core/websql';\nimport type { BaseNpmHelpers } from '../../../lib';\n\nimport { Helpers } from '../../index';\n\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport type DedupePackage =\n | string\n | {\n package: string;\n excludeFrom?: string[];\n includeOnlyIn?: string[];\n };\n\nexport class BaseNodeModules<\n NPM_HELPERS extends BaseNpmHelpers = BaseNpmHelpers,\n> {\n protected _npmHelpersType: NPM_HELPERS;\n\n //#region constructor\n constructor(\n /**\n * my-path/node_modules\n */\n protected cwd: string,\n protected npmHelpers: NPM_HELPERS,\n ) {\n this.npmHelpers = npmHelpers;\n }\n //#endregion\n\n //#region path\n /**\n * cwd + node_modules\n */\n get path() {\n return crossPlatformPath([this.cwd, config.folder.node_modules]);\n }\n //#endregion\n\n //#region path for package\n /**\n * Path to package inside node_modules folder\n * @example <project-path>/node_modules/<package-name>\n */\n pathFor(packageName: string | string[]): string {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region real path of node_modules - if node_modules is a link\n /**\n * real path of node_modules\n * if node_modules is a link\n * it will return real path.\n * if node_modules is folder = path\n */\n get realPath() {\n try {\n const realPath = crossPlatformPath(fse.realpathSync(this.path));\n return realPath;\n } catch (error) {\n return this.path;\n }\n }\n //#endregion\n\n //#region prevent wrong link destination\n protected preventWrongLinkDestination(dest: string): string {\n if (!path.isAbsolute(dest)) {\n Helpers.error(\n `[linkTo..] target destination path is not absolute \"${dest}\"`,\n );\n }\n\n if (dest.endsWith(`/${config.folder.node_modules}`)) {\n return dest;\n }\n return crossPlatformPath([dest, config.folder.node_modules]);\n }\n //#endregion\n\n //#region link node_modules to other project\n linkToProject(project: Partial<BaseProject>) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region link node_modules to other project\n copyToProject(project: BaseProject): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region link to project or location\n linkToLocation(location: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region make sure node modules installed\n async makeSureInstalled(options?: Omit<CoreModels.NpmInstallOptions, 'pkg'>) {\n if (this.isEmpty()) {\n await this.reinstall(options);\n }\n }\n //#endregion\n\n //#region delete node_modules\n async remove(options?: { skipQuestion?: boolean }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region remove package inside\n removePackage(packageInside: string): void {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region reinstall node modules\n async reinstall(options?: Omit<CoreModels.NpmInstallOptions, 'pkg'>) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is link\n get isLink(): boolean {\n return Helpers.isSymlinkFileExitedOrUnexisted(this.path);\n }\n //#endregion\n\n unlinkNodeModulesWhenLinked() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region empty\n get empty() {\n return this.isEmpty();\n }\n //#endregion\n\n //#region fields & getters / empty node_modules\n /**\n * @returns true if node_modules folder is empty\n * DEEP CHECK - also if node_modules is a link\n * and is not existent\n */\n isEmpty() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region prepare command\n /**\n * Prepare command for npm install\n * (or yarn install)\n */\n async prepareCommand(\n options: CoreModels.NpmInstallOptions,\n cwd: string = this.cwd,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region find package dirs\n /**\n *\n * @param rootDir\n * @param packageName\n * @returns absolute paths to package dirs\n */\n private findPackageDirs(\n rootDir: string,\n packageName: string,\n options: { maxDepth?: number; signal?: AbortSignal } = {},\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region dedupe packages action\n dedupePackages(\n packagesConfig?: DedupePackage[],\n countOnly = false,\n fake = false,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n}","import { config } from 'tnp-core/websql';\n\nimport { BaseJsonFileReader } from './base-json-file-reader';\n\n//#region bower.json interface\n/**\n * Minimal interface describing a bower.json file according to:\n * https://github.com/bower/spec/blob/master/json.md\n */\nexport interface BowerJson {\n name: string;\n version?: string;\n description?: string;\n main?: string | string[];\n keywords?: string[];\n authors?: Array<string | { name: string; email?: string; homepage?: string }>;\n license?: string;\n homepage?: string;\n private?: boolean;\n repository?: {\n type: string;\n url: string;\n };\n ignore?: string[];\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n // Optional fields:\n resolutions?: Record<string, string>;\n moduleType?: string | string[];\n // ...and so on, for any additional custom fields\n}\n//#endregion\n\nexport class BaseBowerJson extends BaseJsonFileReader<BowerJson> {\n constructor(public cwd: string) {\n super({ cwd, fileName: config.file.bower_json });\n }\n\n //#region bower dependencies\n get dependencies() {\n return (this.data ? this.data.dependencies : {}) || {};\n }\n //#endregion\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { UtilsTerminal } from 'tnp-core/websql';\nimport {\n chalk,\n child_process,\n crossPlatformPath,\n fse,\n path,\n} from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\nimport { CoreModels } from 'tnp-core/websql';\nimport { PackageJson } from 'type-fest';\n\nimport { Helpers } from '../../index';\n\nimport { BaseBowerJson } from './base-bower-json';\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport { BaseNodeModules } from './base-node-modules';\nimport { BasePackageJson } from './base-package-json';\nimport type { BaseProject } from './base-project';\n\n//#endregion\n\nexport class BaseNpmHelpers<\n PROJECT extends BaseProject = BaseProject,\n> extends BaseFeatureForProject<PROJECT> {\n //#region fields\n public readonly packageJson: BasePackageJson;\n public readonly _packageJsonType: typeof BasePackageJson = BasePackageJson;\n private readonly _packageJsonTypeOriginal: typeof BasePackageJson =\n BasePackageJson;\n\n public readonly nodeModules: BaseNodeModules;\n public readonly _nodeModulesType: typeof BaseNodeModules = BaseNodeModules;\n private readonly __nodeModulesTypeOriginal: typeof BaseNodeModules =\n BaseNodeModules;\n\n public readonly bowerJson: BaseBowerJson;\n\n //#endregion\n\n //#region constructor\n constructor(project: PROJECT) {\n super(project);\n this.project = project;\n if (this._packageJsonType === this._packageJsonTypeOriginal) {\n this.packageJson = new this._packageJsonType({ cwd: project.location });\n }\n if (this._nodeModulesType === this.__nodeModulesTypeOriginal) {\n this.nodeModules = new this._nodeModulesType(\n project.location,\n this as any,\n );\n }\n this.bowerJson = new BaseBowerJson(project.location);\n }\n //#endregion\n\n //#region prefer yarn over npm\n preferYarnOverNpm(): boolean {\n return false;\n }\n //#endregion\n\n //#region reset package-lock.json\n async resetPackageLockJson() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region start npm task\n startNpmTask(taskName: string, additionalArguments?: string | object) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region check if logged in to registry\n /**\n *\n * @param registry without specified registr is checking npm registry\n * @returns\n */\n async isLoggedInToRegistry(registry?: string): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region login to registry\n /**\n * Prompt the user to log in to a specific npm registry.\n * @param {string} [registry] - Optional npm registry URL.\n * @returns {Promise<void>} - A promise that resolves when the login process completes.\n */\n async loginToRegistry(registry?: string): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region check if logged in to npm\n async makeSureLoggedInToNpmRegistry(registry?: string): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region should release lib\n async shouldReleaseMessage(options: {\n releaseVersionBumpType: CoreModels.ReleaseVersionType;\n versionToUse?: string;\n children?: BaseProject[];\n whatToRelease: {\n itself: boolean;\n children: boolean;\n };\n skipQuestionToUser?: boolean;\n messagePrefix?: string;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region publish to npm registry\n /**\n * @param registry when not specified, it will use the default npm registry\n */\n async publishToNpmRegistry(options?: { registry?: string }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get package version from npm registry\n getPackageVersionFromNpmRegistry(\n packageName: string,\n options?: {\n registry?: string;\n },\n ): Promise<string | undefined> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region import\nimport { load } from 'json10-writer/websql';\nimport { config } from 'tnp-core/websql';\nimport { _, chalk, crossPlatformPath, path, UtilsTerminal } from 'tnp-core/websql';\n\nimport {\n Helpers,\n LinkedPorjectsConfig,\n LinkedProject,\n UtilsTypescript,\n} from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseLinkedProjects<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n private cache: any = {};\n\n //#region methods & getters / embedded project\n get embeddedProject(): PROJECT {\n const cacheKey = 'embeddedProject' + _.kebabCase(this.project.location);\n if (!_.isUndefined(this.cache[cacheKey])) {\n return this.cache[cacheKey];\n }\n // Helpers.taskStarted(`Detecting embedded project for ${this.location}`); // TODO it is slow\n const nearsetProj = this.project.ins.nearestTo(\n crossPlatformPath([this.project.location, '..']),\n ) as PROJECT;\n const linkedPorj = nearsetProj?.linkedProjects?.linkedProjects.find(l => {\n const copareTo = crossPlatformPath([\n nearsetProj.location,\n l.relativeClonePath,\n ]);\n if (this.project.location === copareTo) {\n return true;\n }\n if (l.remoteUrl() === this.project.git.originURL) {\n return true;\n }\n return false;\n });\n if (!linkedPorj || !linkedPorj.internalRealtiveProjectPath) {\n return;\n }\n const pathToEmbededProj = crossPlatformPath([\n nearsetProj.location,\n linkedPorj.relativeClonePath,\n linkedPorj.internalRealtiveProjectPath || '',\n ]);\n const embdedresult = this.project.ins.From(pathToEmbededProj) as PROJECT;\n // Helpers.taskDone(`Embedded project detected for ${this.location}`);\n this.cache[cacheKey] = embdedresult;\n return this.cache[cacheKey];\n }\n //#endregion\n\n //#region methods & getters / projects db location\n get projectsDbLocation() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / save location to db\n async saveLocationToDB() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / save all linked projects to db\n async saveAllLinkedProjectsToDB() {\n const proj = this.project;\n await proj.linkedProjects.saveLocationToDB();\n for (const link of proj.linkedProjects.linkedProjects) {\n const linkedPorj = this.project.ins.From([\n proj.location,\n link.relativeClonePath,\n link.internalRealtiveProjectPath || '',\n ]) as PROJECT;\n // console.log({ linkedPorj })\n if (linkedPorj) {\n await linkedPorj.linkedProjects.saveLocationToDB();\n } else {\n Helpers.warn(`\n In project ${proj.genericName}\n\n Folder ${link.relativeClonePath} is missing projects...\n\n `);\n }\n }\n }\n //#endregion\n\n //#region methods & getters / add linked project\n addLinkedProject(\n linkedProj: LinkedProject | string,\n options?: { skipFormat?: boolean },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / add linked projects\n addLinkedProjects(\n linkedProjs: LinkedProject[],\n options?: { skipFormat?: boolean },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / set linked projects config\n setLinkedProjectsConfig(\n linkedPorjectsConfig: Partial<LinkedPorjectsConfig>,\n options?: {\n skipFormat?: boolean;\n },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public formatConfigFile() {\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / get linked projects config path\n private get linkedProjectsConfigPath() {\n return this.project.pathFor(config.file.linked_projects_json);\n }\n\n private get linkedProjectsConfigTempPath() {\n return this.project.pathFor([`tmp-${config.file.linked_projects_json}`]);\n }\n //#endregion\n\n //#region methods & getters / recreate linked projects config\n protected recreateLinkedProjectsConfig() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get linked projects config\n getLinkedProjectsConfig(): LinkedPorjectsConfig {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / linked projects\n get linkedProjects(): LinkedProject[] {\n return this.getLinkedProjectsConfig().projects || [];\n }\n //#endregion\n\n //#region methods & getters / detected linked projects\n get detectedLinkedProjects(): LinkedProject[] {\n const detectedLinkedProjects = LinkedProject.detect(\n this.project.location,\n { recursive: true }, // TOOD fix recrusive\n );\n return detectedLinkedProjects;\n }\n //#endregion\n\n //#region methods & getters / linked projects prefix\n get linkedProjectsPrefix() {\n return this.getLinkedProjectsConfig().prefix;\n }\n //#endregion\n\n //#region getters & methods / reset linked projects only to core branches\n resetLinkedProjectsOnlyToCoreBranches() {\n return false;\n }\n //#endregion\n\n //#region getters & methods / get unexisted projects\n async cloneNonexistedLinkedProjects(setOrigin: 'ssh' | 'http') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { chalk, dateformat, fse, Utils } from 'tnp-core/websql';\nimport { crossPlatformPath, path, _, UtilsTerminal } from 'tnp-core/websql';\n\nimport {\n CommitData,\n Helpers,\n PushProcessOptions,\n TypeOfCommit,\n} from '../../index';\nimport { translate } from '../translate';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseGit<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n //#region methods & getters / unstage all files\n unstageAllFiles(): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / revert file changes\n revertFileChanges(fileReletivePath: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / clone\n async clone(\n url: string,\n destinationFolderName = '',\n branchName?: string,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / restore last version\n restoreLastVersion(relativeFilePath: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stage all files\n stageAllFiles(): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stage all files\n stageFile(relativeFilePath: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stash\n stash(options?: { onlyStaged?: boolean }): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stash\n rebase(toBranch: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stash apply\n stashApply(): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / fetch\n fetch(all = false): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / reset files\n resetFiles(...relativePathes: string[]): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is inside git repo\n get isInsideGitRepo(): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is without git repository\n get isWithoutGitRepository(): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is git root\n get isGitRoot(): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / origin url\n get originURL(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / commit\n commit(commitMessage?: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / add and commit\n /**\n * alias to stage all and commit\n */\n addAndCommit(commitMessage: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get default develop Branch\n /**\n * general default development branch for all kinds of projects\n */\n getDefaultDevelopmentBranch(): string {\n return 'develop';\n }\n //#endregion\n\n //#region methods & getters / is using action commit\n isUsingActionCommit(): boolean {\n return false;\n }\n //#endregion\n\n jiraIssuesAreOutsideBrackets(): boolean {\n return false;\n }\n\n async getUserInfo(\n global = false,\n ): Promise<{ name?: string; email?: string }> {\n/* */\n/* */\n return (void 0);\n }\n\n async setUserInfo(\n { name, email }: { name?: string; email?: string },\n global = false,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / stage all and commit\n stageAllAndCommit(commitMessage: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / push current branch\n async pushCurrentBranch(options?: {\n force?: boolean;\n origin?: string;\n askToRetry?: boolean;\n forcePushNoQuestion?: boolean;\n }): Promise<boolean> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / all origins\n get allOrigins(): { origin: string; url: string }[] {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / uncommited files\n get uncommitedFiles(): string[] {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / there are some uncommited change\n get thereAreSomeUncommitedChange(): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / there are some uncommited change except\n thereAreSomeUncommitedChangeExcept(filesList: string[] = []): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n /**\n * Resolve last changes\n * - uncommited changes\n * - action commits to melt\n */\n async resolveLastChanges(options?: {\n // TODO WIP on that\n tryAutomaticActionFirst?: boolean;\n projectNameAsOutputPrefix?: string;\n questionPrefixMessage?: string;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / has action commits to melt\n get hasActionCommitsToMelt(): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / melt action commits\n /**\n * @returns number of melted commits\n */\n meltActionCommits(): number {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region push to git repo\n /**\n *\n * @param newVersion\n * @param pushWithoutAsking\n */\n async tagAndPushToGitRepo(\n newVersion: string,\n autoReleaseUsingConfig: boolean,\n isCiProcess: boolean,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / pull current branch\n async pullCurrentBranch(options?: {\n askToRetry?: boolean;\n /**\n * default true, when false it will throw error instead process.exit(0)\n */\n exitOnError?: boolean;\n defaultHardResetCommits?: number;\n }): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / current branch name\n get currentBranchName(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / list of current git changes\n get listOfCurrentGitChanges(): {\n modified: string[];\n deleted: string[];\n created: string[];\n } {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get branches names by\n getBranchesNamesBy(pattern: string | RegExp): string[] {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / reset soft HEAD\n resetSoftHEAD(HEAD = 1): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / reset hard\n resetHard(options?: { HEAD?: number }): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / count commits\n countCommits(): number {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / has any commits\n hasAnyCommits() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is in merge process\n get isInMergeProcess() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last commit date\n lastCommitDate() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last commit hash\n lastCommitHash() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last commit message\n lastCommitMessage(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last commit message\n async penultimateCommitMessage(): Promise<string> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get commit message by index\n async getCommitMessageByIndex(index: number): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get commit message by hash\n async getCommitMessageByHash(hash: string): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get commit hash by index\n async getCommitHashByIndex(index: number): Promise<string> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / penultimate commit hash\n penultimateCommitHash(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / check tag exists\n checkTagExists(tag: string): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / checkout\n checkout(\n branchName: string,\n options?: {\n createBranchIfNotExists?: boolean;\n fetchBeforeCheckout?: boolean;\n switchBranchWhenExists?: boolean;\n },\n ): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n allowedGitEmailDomains(): string[] {\n return [];\n }\n\n cleanRepoFromAnyFilesExceptDotGitFolder(): void {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / checkout from to\n checkoutFromTo(\n checkoutFromBranch: string,\n branch: string,\n origin = 'origin',\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last tag name for major version\n /**\n *\n * @param majorVersion example: v1, v2 etc.\n * @returns tag name\n */\n lastTagNameForMajorVersion(majorVersion): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last tag hash\n lastTagHash(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / remote origin url\n get remoteOriginUrl(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / remote origin url\n /**\n * get provider of remote origin\n */\n get remoteProvider(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last tag version name\n get lastTagVersionName(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / staged files\n get stagedFiles(): string[] {\n/* */\n/* */\n return (void 0);\n }\n get stagedFilesRelativePaths(): string[] {\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region methods & getters / rename origin\n /**\n * TODO does this make any sense\n */\n renameOrigin(newNameOrUlr: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / translate git commit from args\n /**\n * By default no translation of commit\n */\n transalteGitCommitFromArgs(): { from: string; to: string } {\n return { from: void 0 as string, to: void 0 as string };\n }\n //#endregion\n\n //#region getters & methods / us git branches when commiting and pushing\n /**\n * By defult true.. when commit branches will not function.\n * (false is better for simple projects)\n */\n useGitBranchesWhenCommitingAndPushing(): boolean {\n return true;\n }\n //#endregion\n\n //#region getters & methods / automatically add all changes when pushing to git\n /**\n * usefull when pushing in project with childrens as git repos\n */\n automaticallyAddAllChangesWhenPushingToGit(): boolean {\n return false;\n }\n //#endregion\n\n //#region getters & methods / use git branches as metadata for commits\n /**\n * usefull when pushing in project with childrens as git repos\n */\n useGitBranchesAsMetadataForCommits(): boolean {\n return true;\n }\n //#endregion\n\n //#region getters & methods / clone to\n /**\n * @returns true if clone was successful\n */\n async cloneTo(cwd: string, newProjectName?: string): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get children\n /**\n * This is only for push/pull process\n *\n * There are 2 types of projects:\n * - with linked-projects.json\n * - with children from external folder\n *\n * projects that are children of this project (with its own git repo)\n */\n get gitChildren(): PROJECT[] {\n let childrenRepos: PROJECT[] = [];\n\n if (this.project.linkedProjects.linkedProjects.length > 0) {\n childrenRepos = this.project.linkedProjects.linkedProjects\n .map(c => {\n return this.project.ins.From([\n this.project.location,\n c.relativeClonePath,\n ]) as PROJECT;\n })\n .filter(f => !!f);\n } else {\n childrenRepos = this.project.children as PROJECT[];\n }\n\n childrenRepos = childrenRepos.filter(\n f => f.git.isInsideGitRepo && f.git.isGitRoot,\n ) as PROJECT[];\n return childrenRepos;\n }\n //#endregion\n\n //#region getters & methods / set remote origin type\n protected async setRemoteOriginType(\n setOrigin: 'ssh' | 'http',\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / push process\n async pullProcess(\n options: {\n skipCloneGitChildren?: boolean;\n setOrigin?: 'ssh' | 'http';\n } = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public async validateEmailDomain(allowedEmailsEnds: string[]): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async _afterPullProcessAction(\n setOrigin: 'ssh' | 'http',\n skipCloneGitChildren = false,\n ): Promise<void> {\n if (!skipCloneGitChildren) {\n await this.project.linkedProjects.cloneNonexistedLinkedProjects(\n setOrigin,\n );\n }\n }\n\n async backupBranch(branchName?: string): Promise<string> {\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / push process\n async pushProcess(options: PushProcessOptions = {}): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / before any action on git root\n public _beforeAnyActionOnGitRoot(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / before push action\n protected async _beforePushProcessAction(\n setOrigin: 'ssh' | 'http',\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / before push action\n protected async _beforePullProcessAction(\n setOrigin: 'ssh' | 'http',\n skipCloneGitChildren = false,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / resovle commit message\n protected async _getCommitMessage(\n typeOfCommit: TypeOfCommit,\n args: string[],\n commitMessageRequired?: boolean,\n /**\n * only needed when push github\n * and I forgot to add my username before issue\n * taon pfix proper input my-repo#344\n * that should be\n * taon pfix proper input my-username/my-repo#344\n */\n currentOrigin?: string,\n ): Promise<CommitData> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / prevent accidental branch change for taon projects\n /**\n * This will prevent accidental branch change for taon projects\n * @returns branch name\n */\n duringPushWarnIfProjectNotOnSpecyficDevBranch(): string {\n return '';\n }\n //#endregion\n\n //#region methods & getters / get changed files in commit by hash\n async getChangedFilesInCommitByHash(hash: string): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get changed files in commit\n /**\n * @param index 0 - means last commit\n */\n async getChangedFilesInCommitByIndex(index: number): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get changes summary\n async changesSummary(): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / reset is resting also children\n /**\n * If true command navi reset will reset project\n * and its children.\n *\n * If false command navi reset will reset only project.\n */\n resetIsRestingAlsoChildren(): boolean {\n return true;\n }\n //#endregion\n\n useBranchNameDirectlyAsCommitMessage(): boolean {\n return false;\n }\n}","//#region imports\nimport { fileName, folderName } from 'tnp-core/websql';\nimport { _, path, Utils } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\n/**\n * Git Ignore\n * Vscode Files Hide\n * Npm Ignore\n */\nexport class BaseIgnoreHideHelpers<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n /**\n * (@default: false)\n *\n * If true, the files/folders/patterns that aren't really code and can\n * be recreated from template project like (tsconfig.json, .babelrc, .prettierc etc.)\n * will are stored in the repo\n */\n protected storeInRepoConfigFiles(): boolean {\n return true;\n }\n\n //#region init\n async init(): Promise<void> {\n this.writeNpmIgnore();\n this.writeGitIgnore();\n }\n //#endregion\n\n //#region\n /**\n * @param data list of patterns\n * @returns list of patterns for recrusive ignore\n */\n private recursivePatternTransformFn(data: string[]): string[] {\n return data\n .map(c => {\n if (this.alwaysUseRecursivePattern().includes(c)) {\n return [`${c}`, `**/${c}`];\n }\n return [`${c}`];\n })\n .reduce((a, b) => {\n return a.concat(b);\n }, []);\n }\n //#endregion\n\n //#region patterns ignored in repo but visible to user\n /**\n * Have to start with /\n *\n * Usefull if you are generating some files and folder in src/*.* folder\n * (Taon CLI does this for automatic host generation)\n * @returns patterns that are ignored in repo but visible to user\n */\n protected getPatternsIgnoredInRepoButVisibleToUser(): string[] {\n return [\n '/*.sqlite', // you want to see your temp databases in the repo\n '/*.rest', // you want to see your temp rest databases in the repo\n ];\n }\n //#endregion\n\n //#region always ignored and hidden patterns\n protected alwaysIgnoredHiddenPatterns(): string[] {\n return [\n 'chrome-profiler-events*.json',\n 'speed-measure-plugin*.json',\n 'tmp*',\n 'npm-debug.log*',\n ];\n }\n\n alwaysUseRecursivePattern(): string[] {\n return ['.DS_Store'];\n }\n\n protected alwaysIgnoredAndHiddenFilesAndFolders(): string[] {\n return [\n '_changelog',\n '.sass-cache',\n '.sourcemaps',\n '.DS_Store',\n 'npm-debug.log',\n 'yarn-error.log',\n 'testem.log',\n 'connect.lock',\n 'yarn-error.log',\n 'node_modules',\n 'libpeerconnection.log',\n 'dist',\n 'coverage',\n 'Thumbs.db',\n ];\n }\n //#endregion\n\n //#region hidden but not neccesary ignored\n protected hiddenButNeverIgnoredInRepo(): string[] {\n return ['.gitignore']; // just to avoid mess when not .gitignore and started project\n }\n\n protected hiddenButNotNecessaryIgnoredInRepoFilesAndFolders(): string[] {\n return [\n '.npmignore',\n '.babelrc',\n '.editorconfig',\n 'eslint.config.js',\n 'protractor.conf.js',\n 'karma.conf.js',\n '.prettierc',\n 'angular.json',\n '.prettierrc.json',\n '.eslintrc.js',\n '.eslintrc.json',\n '.npmrc',\n '.yarnrc',\n '.idea',\n ...this.project.linter.getLintFiles(),\n ];\n }\n\n protected hiddenButNotNecessaryIgnoredInRepoPatterns(): string[] {\n const linkeProjectPrefix =\n this.project.linkedProjects.getLinkedProjectsConfig().prefix;\n\n return [\n 'tsconfig*',\n 'webpack.*',\n '.eslintrc*',\n 'tslint.*',\n linkeProjectPrefix ? `${linkeProjectPrefix}*` : void 0,\n ].filter(f => !!f) as string[];\n }\n //#endregion\n\n //#region ignore for npm\n protected npmIgnoreFilesFoldersPatterns(): string[] {\n return [\n '.vscode',\n 'dist',\n 'src',\n 'app',\n 'source',\n 'docs',\n 'preview',\n 'tests',\n 'tsconfig.json',\n 'npm-debug.log*',\n ];\n }\n //#endregion\n\n //#region public methods / write ignore files§\n // TODO\n public writeGitIgnore(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / get vscode hide settings\n /**\n * Use can apply this to .vscode/settings.json [files.exclude] property\n */\n public getVscodeFilesFoldersAndPatternsToHide(): {\n [fileFolderOrPattern: string]: true;\n } {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / npm ignore\n public writeNpmIgnore(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { folderName } from 'tnp-core/websql';\nimport { _, path } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n\n// TODO\nexport class BaseLinter<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n async init(): Promise<void> {\n this.writeLintFiles();\n }\n\n getLintFiles(): string[] {\n return ['.prettierignore', '.prettierrc', '.editorconfig'];\n }\n\n //#region get editorconfig settings\n getConfigEditorconfig(): string {\n return `\n# Editor configuration, see http://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n`;\n }\n //#endregion\n\n //#region get prettier settings\n getConfigPrettierrc(): object {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get prettier ignore settings\n getConfigPrettierignore(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n isEnableForProject(): boolean {\n return true;\n }\n\n //#region write lint files\n public writeLintFiles(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import {\n CoreModels,\n crossPlatformPath,\n fse,\n os,\n path,\n Utils,\n UtilsOs,\n UtilsTerminal,\n} from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { Helpers, UtilsVSCode } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n\nexport class BaseVscodeHelpers<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n //#region init\n async init(options?: { skipHiddingTempFiles?: boolean }): Promise<void> {\n options = options || {};\n this.recreateExtensions();\n await this.recreateBaseSettings();\n this.recreateWindowTitle();\n if (!options.skipHiddingTempFiles) {\n this.toogleFilesVisibilityInVscode({\n action: 'hide-files',\n skipSaving: true,\n });\n }\n this.saveCurrentSettings();\n }\n //#endregion\n\n //#region fields\n /**\n * settings.json relative path\n */\n public readonly relativePathSettingsJsonVscode = '.vscode/settings.json';\n public readonly relativePathExtensionJsonVScode = '.vscode/extensions.json';\n\n public readonly currentSettingsValue: CoreModels.VSCodeSettings;\n //#endregion\n\n //#region constructor\n constructor(project: PROJECT) {\n super(project);\n this.currentSettingsValue =\n Helpers.readJsonC(project.pathFor(this.relativePathSettingsJsonVscode)) ||\n {};\n }\n //#endregion\n\n //#region modify vscode settings\n protected modifyVscode(\n modifyFN: (\n settings: CoreModels.VSCodeSettings,\n ) => CoreModels.VSCodeSettings,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region save current settings\n public saveCurrentSettings(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get extensions\n getExtensions(): string[] {\n return Helpers.uniqArray([\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n ]).map(c => (c as string).toLowerCase());\n }\n //#endregion\n\n //#region extensions\n /**\n * @deprecated use getExtensions() instead\n */\n private get extensions(): string[] {\n return this.getExtensions();\n }\n //#endregion\n\n //#region recreate extensions\n recreateExtensions(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region recreate base settings\n protected getExecuteParamsForSettings(): any[] {\n return [this.project];\n }\n\n async recreateBaseSettings(options?: { save?: boolean }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region recraete window title\n recreateWindowTitle(options?: { save?: boolean }): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region install extensions\n async installExtensions(\n extensions = this.extensions,\n defaultSelectedAll = false,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region strip version\n /**\n * This pattern finds a dash followed by at least one digit.\n * It removes everything from that dash to the end of the string.\n * Examples:\n * \"name-of-extension-1.2.3\" -> \"name-of-extension\"\n * \"extension-0.9.5-win32-x64\" -> \"extension\"\n */\n protected stripVersion(folderName: string): string {\n return folderName.replace(/(-\\d+.*)$/, '');\n }\n //#endregion\n\n //#region installed extensions\n get installedExtensions(): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region apply proper global settings\n public static async applyProperGlobalSettings(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get vscode bottom color\n /**\n * by default left menu color and bottom status bar are the same\n */\n getVscodeBottomColor(): string {\n return void 0;\n }\n //#endregion\n\n //#region refresh colors in settings\n refreshColorsInSettings(): void {\n const overideBottomColor = this.getVscodeBottomColor();\n UtilsVSCode.regenerateVsCodeSettingsColors(\n this.project.location,\n overideBottomColor,\n );\n }\n //#endregion\n\n //#region get basic settings\n async getBasicSettins(): Promise<object> {\n const settings = {\n '[markdown]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[typescriptreact]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[json]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[jsonc]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[json5]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[scss]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[html]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[javascript]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[typescript]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[dockercompose]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n 'editor.rulers': [80, 120],\n 'eslint.migration.2_x': 'off',\n 'eslint.enable': true,\n 'prettier.enable': true,\n 'editor.suggest.snippetsPreventQuickSuggestions': false,\n 'editor.inlineSuggest.enabled': true,\n 'prettier.prettierPath': './node_modules/prettier',\n 'prettier.endOfLine': 'auto', // fix for jumpling to end of file when file > 100kb\n // 'tslint.autoFixOnSave': false,\n // 'tslint.enable': false,\n // 'tslint.alwaysShowRuleFailuresAsWarnings': false,\n };\n\n settings['search.useIgnoreFiles'] = false;\n settings['search.include'] = ['**/src/**'];\n settings['search.exclude'] = {\n bin: true,\n local_release: true,\n node_modules: true,\n '.build': true,\n '.vscode': true,\n browser: true,\n dist: true,\n ['dist-*']: true,\n 'package-lock.json': true,\n 'tmp-*': true,\n 'src/lib/env/**/*.*': true,\n '*.rest': true,\n };\n\n Object.keys(settings['search.exclude']).forEach(k => {\n settings['search.exclude'][`**/${k}`] = true;\n });\n\n settings['search.exclude']['projects'] = true;\n\n return settings;\n }\n //#endregion\n\n //#region resolve params vscode\n protected async resolveParamsVscode(obj, prams: any[]): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public toogleFilesVisibilityInVscode(options: {\n action: 'show-files' | 'hide-files';\n skipSaving?: boolean;\n }): void {\n options = options || ({} as any);\n const { action, skipSaving } = options;\n\n if (action === 'hide-files') {\n this.modifyVscode(settings => {\n settings['files.exclude'] =\n this.project.ignoreHide.getVscodeFilesFoldersAndPatternsToHide() ||\n {};\n return settings;\n });\n if (!skipSaving) {\n this.saveCurrentSettings();\n }\n } else if (action === 'show-files') {\n this.modifyVscode(settings => {\n settings['files.exclude'] = {};\n return settings;\n });\n if (!skipSaving) {\n this.saveCurrentSettings();\n }\n }\n }\n\n public changeColorThemeVscode(white = true): void {\n this.modifyVscode(settings => {\n settings['workbench.colorTheme'] = white\n ? 'Default Light+'\n : 'Kimbie Dark';\n return settings;\n });\n this.saveCurrentSettings();\n }\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { CoreModels, chalk, dateformat, _, UtilsTerminal } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\nimport type { ChangelogData } from '../../models';\nimport { CommitData } from '../commit-data';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseReleaseProcess<\n PROJECT extends BaseProject<any, any> = any,\n> extends BaseFeatureForProject<PROJECT> {\n //#region fields\n\n /**\n * Automatic release process of patch plus one version\n */\n automaticRelease: boolean = false;\n versionType: CoreModels.ReleaseVersionType;\n preReleaseVersionTag: CoreModels.PreReleaseVersionTag;\n lastChangesSummary: string;\n newVersion: string;\n commitsForChangelog: {\n commitMessages: string;\n index: number;\n }[] = [];\n //#endregion\n\n //#region methods & getters / start release\n startRelease(options?: Partial<BaseReleaseProcess<PROJECT>>): Promise<void> {\n throw new Error('Method not implemented.');\n }\n //#endregion\n\n //#region methods & getters / get release words\n getReleaseWords(): string[] {\n return ['release'];\n }\n //#endregion\n\n //#region methods & getters / select changelog commits\n async selectChangelogCommits(): Promise<\n {\n commitMessages: string;\n index: number;\n }[]\n > {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get commits up to release commit\n private async getCommitsUpToReleaseCommit(): Promise<\n {\n commitMessages: string;\n index: number;\n }[]\n > {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public async checkBundleQuestion(\n cwdForCode: string,\n checkMessage = `Select action before publishing ?`,\n ): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / publish to npm\n /**\n * @returns true if publish , faslse if just version bump\n */\n public async publishToNpm(\n cwdForCode = this.project.pathFor('dist'),\n automaticRelease = this.automaticRelease,\n ): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / test after publish\n protected async testAfterPublish(): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / test before publish\n protected async testBeforePublish(): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / commit and push\n protected async commitAndPush(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / release commit template\n protected releaseCommitTemplate(): string {\n return `Release v${this.newVersion} + changelog.md update`;\n }\n //#endregion\n\n //#region methods & getters / test libraries\n private async testLibraries(): Promise<boolean> {\n try {\n this.project.run('npm run test', { output: true }).sync();\n return true;\n } catch (error) {\n Helpers.info(`Test failed, you can run test manually`);\n return false;\n }\n }\n //#endregion\n\n //#region methods & getters / build all libraries\n async buildAllLibraries() {\n await this.project.libraryBuild.buildLibraries({\n watch: false,\n releaseBuild: true,\n });\n }\n //#endregion\n\n //#region methods & getters / reset release files\n async resetReleaseFiles() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / to bump projects\n get toBumpProjects() {\n const toBumpProjects = [\n this.project,\n ...this.project.libraryBuild.libraries,\n ] as PROJECT[];\n\n return toBumpProjects;\n }\n //#endregion\n\n //#region methods & getters / bump new version everywhere\n async bumpNewVersionEverywhere() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / confirm release type\n async confirmNewVersion(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / select release type\n protected async selectReleaseType(\n versionToUseResolveFn?: (\n releaseVersionBumpType: CoreModels.ReleaseVersionType,\n ) => string,\n options?: {\n quesitonPrefixMessage?: string;\n },\n ): Promise<CoreModels.ReleaseVersionType> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / commit message in changelog transform fn\n protected async commitMessageInChangelogTransformFn(\n message: string,\n ): Promise<string> {\n return message;\n }\n //#endregion\n\n //#region methods & getters / calculate item\n async getChangelogContentToAppend(askForEveryItem: boolean): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / update changelog.md from commits\n /**\n * TODO extend this to all commits from last release\n */\n async updateChangeLogFromCommits(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / extract changed libraries in last commit\n async extractChangedLibrariesInCommit(\n hashOrIndex: string | number,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / change log item template\n async changelogItemTemplate(\n hashOrIndex: string | number,\n confirmEveryItem: boolean = false,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / generate last changes summary\n async generateLastChangesSummary(): Promise<string> {\n const lastReleaseCommitData = await this.getLastReleaseCommitData();\n const hasLastReleaseCommit = lastReleaseCommitData.index !== -1;\n const lastReleaseCommitMsg = !hasLastReleaseCommit\n ? '< nothing release yet >'\n : lastReleaseCommitData.lastReleaseCommitMsg;\n\n return `${chalk.bold.gray('Last changelog.md notes summary')}:\n${await this.getLastPackageVersionChangesFromChnagelog()}\n\n${chalk.bold.gray(\n hasLastReleaseCommit ? 'Last commits up to release commit' : 'Last 3 commits',\n)}:\n${await this.getLastChangesFromCommits({\n maxMessagesToCheck: hasLastReleaseCommit ? Number.POSITIVE_INFINITY : 3,\n stopOnCommitMessage: hasLastReleaseCommit\n ? lastReleaseCommitData.lastReleaseCommitMsg\n : '',\n})}\n `;\n }\n //#endregion\n\n //#region methods & getters / get last changes from commits\n async getLastChangesFromCommits({\n maxMessagesToCheck = 3,\n stopOnCommitMessage = '',\n }: {\n /**\n * default 3\n */\n maxMessagesToCheck?: number;\n /**\n * stop serching on commit message\n */\n stopOnCommitMessage?: string;\n } = {}): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get last release commit data\n async getLastReleaseCommitData(): Promise<{\n lastReleaseCommitMsg: string;\n /**\n * -1 if not found\n */\n index: number;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get last changes from changelog\n async getLastPackageVersionChangesFromChnagelog(): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get changelog path\n private get changeLogPath() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get changelog content\n get changelogContent() {\n return this.project.readFile(this.changeLogPath) || '';\n }\n //#endregion\n\n //#region methods & getters / change log key word\n changeLogKeyWord() {\n return 'Changes in version';\n }\n //#endregion\n\n //#region methods & getters / get changelog data\n getChnagelogData(): ChangelogData[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport {\n BaseClientCompiler,\n BaseClientCompilerOptions,\n} from 'incremental-compiler/websql';\nimport { path, crossPlatformPath } from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\nimport { config } from 'tnp-core/websql';\nimport { Helpers } from '../../../lib';\n\nimport { BaseProject } from './base-project';\n//#endregion\n\nexport abstract class BaseCompilerForProject<\n ADDITIONAL_DATA = any,\n PROJECT extends BaseProject = BaseProject,\n> extends BaseClientCompiler<ADDITIONAL_DATA> {\n //#region check folder compiler\n protected checkFolderCompiler(\n project: PROJECT,\n options: BaseClientCompilerOptions,\n dontCheck = false,\n ): BaseClientCompilerOptions {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region constructor\n\n constructor(\n public project: PROJECT,\n options?: BaseClientCompilerOptions,\n allowFolderOutSideProject = false,\n ) {\n super();\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n //#endregion\n}","import { ChangeOfFile } from 'incremental-compiler/websql';\nimport { _, Utils } from 'tnp-core/websql';\n\nimport { BaseCompilerForProject } from './base-compiler-for-project';\nimport { BaseProject } from './base-project';\n\nexport abstract class BaseDebounceCompilerForProject<\n ADDITIONAL_DATA = any,\n PROJECT extends BaseProject = BaseProject,\n> extends BaseCompilerForProject<ADDITIONAL_DATA, PROJECT> {\n protected initialParams: ADDITIONAL_DATA;\n\n /**\n * default debounce time is 1s\n */\n protected debounceTime = 1000;\n\n abstract action({\n changeOfFiles,\n asyncEvent,\n }: {\n changeOfFiles: ChangeOfFile[];\n asyncEvent: boolean;\n });\n\n /**\n * current files that are in project\n */\n protected exitedFilesAbsPathes: string[] = [];\n\n /**\n * @deprecated use action() instead\n */\n public async syncAction(\n absFilesPathes: string[],\n initialParams: ADDITIONAL_DATA,\n ): Promise<void> {\n this.initialParams = initialParams || ({} as any);\n this.exitedFilesAbsPathes = absFilesPathes;\n return await this.action({\n changeOfFiles: absFilesPathes.map(\n fileAbsolutePath =>\n ({\n fileAbsolutePath,\n eventName: 'change',\n datetime: new Date(),\n }) as ChangeOfFile,\n ),\n asyncEvent: false,\n });\n }\n\n private lastAsyncFilesChanges: ChangeOfFile[] = [];\n\n private debounceAction = _.debounce(() => {\n const changeOfFiles = this.lastAsyncFilesChanges;\n this.lastAsyncFilesChanges = [];\n this.action({\n changeOfFiles,\n asyncEvent: true,\n });\n }, this.debounceTime);\n\n /**\n * @deprecated use action() instead\n */\n public async asyncAction(\n asyncEvents: ChangeOfFile,\n initialParams?: ADDITIONAL_DATA,\n ): Promise<void> {\n this.lastAsyncFilesChanges.push(asyncEvents);\n if (asyncEvents.eventName === 'unlink') {\n this.exitedFilesAbsPathes = this.exitedFilesAbsPathes.filter(\n f => f !== asyncEvents.fileAbsolutePath,\n );\n } else if (asyncEvents.eventName === 'unlinkDir') {\n this.exitedFilesAbsPathes = this.exitedFilesAbsPathes.filter(\n f =>\n !f.startsWith(asyncEvents.fileAbsolutePath.replace(/\\/$/, '') + '/'),\n );\n } else {\n this.exitedFilesAbsPathes.push(asyncEvents.fileAbsolutePath);\n this.exitedFilesAbsPathes = Utils.uniqArray(this.exitedFilesAbsPathes);\n }\n await this.debounceAction();\n }\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { _, fse, path } from 'tnp-core/websql';\nimport { PackageJson } from 'type-fest';\n\nimport { Helpers, UtilsQuickFixes } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseQuickFixes<\n PROJECT extends BaseProject<any, any> = BaseProject<any, any>,\n> extends BaseFeatureForProject<PROJECT> {\n constructor(public project: PROJECT) {\n super(project);\n this.project = project;\n }\n\n /**\n * filesRelativePaths example:\n * ['node_modules/@types/glob/index.d.ts', '/home/user/project/src/app.ts']\n *\n * @param filesRelativeAbsPaths\\ Quick fix for typescript check\n */\n excludeNodeModulesDtsFromTypescriptCheck(filesRelativeAbsPaths:string[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n\n }\n\n //#region fix sqlite pacakge in node_modules\n fixSQLLiteModuleInNodeModules() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region add missing empty libs\n public createDummyEmptyLibsReplacements(missingLibsNames: string[] = []) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { ChildProcess, execSync } from 'child_process';\n\nimport { Helpers, UtilsTerminal } from 'tnp-core/websql';\nimport { CoreModels, _ } from 'tnp-core/websql';\n\nimport type { BaseProject, TypeOfCommit } from './base';\nimport type { BaseProcessManger } from './base/classes/base-process-manager';\n//#endregion\n\n//#region base project type\nexport type BaseProjectType = CoreModels.BaseProjectType;\nexport const BaseProjectTypeArr = CoreModels.BaseProjectTypeArr;\n//#endregion\n\n//#region ng project\n/**\n * Angular project type\n */\nexport type NgProject = {\n projectType: 'library' | 'application';\n /**\n * where ng-packagr.json is located, tsconfig etc.\n */\n root: string;\n /**\n * Source code project\n */\n sourceRoot: string;\n prefix: string;\n};\n\n//#endregion\n\n//#region library build options\nexport type LibraryBuildCommandOptions = {\n watch?: boolean;\n};\n//#endregion\n\n//#region libraries build options\nexport type LibrariesBuildOptions<PROJECT extends BaseProject = BaseProject> = {\n strategy?: 'link' | 'copy';\n /**\n * by default we are copying all libraries to node_modules of itself\n */\n copylink_to_node_modules?: string[];\n releaseBuild?: boolean;\n /**\n * override build options for specific libraries\n * @todo\n */\n libraries?: PROJECT[];\n outputLineReplace?: (\n libForOutput: PROJECT,\n useExternalProvidedLibs: boolean,\n ) => (line: string) => string;\n useLastUserConfiguration?: boolean;\n};\n//#endregion\n\n//#region test build options\nexport type TestBuildOptions = {\n onlySpecyficFiles?: string[];\n updateSnapshot?: boolean;\n};\n//#endregion\n\n//#region change log data\nexport interface ChangelogData {\n changes: string[];\n version: string;\n date: string;\n}\n//#endregion\n\n//#region push process options\nexport interface PushProcessOptions {\n force?: boolean;\n typeofCommit?: TypeOfCommit;\n mergeUpdateCommits?: boolean;\n askToConfirmPush?: boolean;\n askToConfirmCommit?: boolean;\n skipLint?: boolean;\n askToConfirmBranchChange?: boolean;\n origin?: string;\n args?: string[];\n setOrigin?: 'ssh' | 'http';\n exitCallBack?: () => void;\n forcePushNoQuestion?: boolean;\n overrideCommitMessage?: string;\n commitMessageRequired?: boolean;\n /**\n * only needed when push github\n * and I forgot to add my username before issue\n * taon pfix proper input my-repo#344\n * that should be\n * taon pfix proper input my-username/my-repo#344\n */\n currentOrigin?: string;\n skipChildren?: boolean;\n noExit?: boolean;\n}\n//#endregion\n\n//#region command config\nexport class CommandConfig {\n static from(config: CommandConfig): CommandConfig {\n return new CommandConfig(config as any);\n }\n private constructor(data: CommandConfig) {\n Object.keys(data).forEach(key => {\n this[key] = data[key];\n });\n }\n name: string;\n cmd: string;\n\n headerMessageWhenActive?: string;\n /**\n * If true, the output will be stored in a buffer and displayed when requested.\n * Default: true\n */\n useDataBuffer?: boolean;\n /**\n * Process that should be started\n * before this process starts.\n */\n shouldBeActiveOrAlreadyBuild?: CommandConfig[] = [];\n goToNextCommandWhenOutput?:\n | string\n | {\n stdoutContains?: string | string[];\n stderrContains?: string | string[];\n };\n}\n//#endregion\n\n//#region process manager config\nexport interface ProcessManagerConfig<PROJECT> {\n title: string;\n header?: string;\n commands: CommandConfig[];\n /**\n * Default: false\n * If false - after first selection of processes, it will be not possible\n * to add new processes to build and build will be done after\n * all processes are done.\n */\n watch?: boolean;\n}\n//#endregion\n\n//#region command process state\nexport enum CommandProcessState {\n NOT_STARTED = 'not-started',\n WAITING_TO_START = 'waiting-to-start',\n RUNNING = 'running',\n FINISHED_AND_RUNNING = 'finished-and-running', // only for watch mode\n FINISHED = 'finished', // only for normal mode\n}\n//#endregion\n\n//#region command process run options\nexport interface CommandProcessRunOptions {\n progress?: (n: number, total: number) => void;\n resolveNextProcess?: (\n currentProcess: CommandProcess,\n ) => Promise<CommandProcess>;\n resolveWhenFinish?: boolean;\n}\n//#endregion\n\n//#region command process\nexport class CommandProcess {\n //#region fields and getters\n private state: CommandProcessState = CommandProcessState.NOT_STARTED;\n public readonly child_process?: ChildProcess;\n\n protected get cmd(): string {\n return this.config.cmd;\n }\n\n public get name(): string {\n return this.config.name;\n }\n\n get headerMessageWhenActive(): string | undefined {\n return this.config.headerMessageWhenActive;\n }\n\n get pid(): number | undefined {\n return this.child_process.pid;\n }\n\n get isFinished(): boolean {\n return [\n CommandProcessState.FINISHED,\n CommandProcessState.FINISHED_AND_RUNNING,\n ].includes(this.state);\n }\n\n get isRunning(): boolean {\n return [\n CommandProcessState.RUNNING,\n CommandProcessState.FINISHED_AND_RUNNING,\n ].includes(this.state);\n }\n\n get isWaitingToStart(): boolean {\n return this.state === CommandProcessState.WAITING_TO_START;\n }\n\n markForStart(): void {\n if (this.isRunning || this.isWaitingToStart) {\n console.warn(`Already running or waiting to start: ${this.name}`);\n return;\n }\n this.state = CommandProcessState.WAITING_TO_START;\n }\n\n //#endregion\n public dependenciesProcesses: CommandProcess[] = [];\n\n //#region constructor\n constructor(\n private project: BaseProject,\n private config: CommandConfig,\n private manager: BaseProcessManger,\n ) {}\n //#endregion\n\n //#region run\n\n async start(options?: CommandProcessRunOptions): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region stop\n async stop(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n//#endregion\n\n//#region docker-compose models\nexport interface DockerComposeFile {\n version: string;\n services: Record<string, DockerService>;\n networks?: Record<string, DockerNetwork>;\n volumes?: Record<string, DockerVolume>;\n}\n\nexport interface DockerService {\n build?: string | DockerBuild;\n image?: string;\n container_name?: string;\n ports?: string[];\n environment?: Record<string, string> | string[];\n volumes?: string[];\n depends_on?: string[];\n command?: string | string[];\n networks?: string[] | Record<string, unknown>;\n restart?: string;\n entrypoint?: string | string[];\n working_dir?: string;\n labels?: Record<string, string>;\n env_file?: string | string[];\n args?: Record<string, string> | string[];\n}\n\nexport interface DockerBuild {\n context: string;\n dockerfile?: string;\n args?: Record<string, string>;\n target?: string;\n}\n\nexport interface DockerNetwork {\n driver?: string;\n external?: boolean;\n name?: string;\n}\n\nexport interface DockerVolume {\n driver?: string;\n external?: boolean;\n name?: string;\n}\n//#endregion","//#region imports\nimport { _, chalk, Helpers, UtilsTerminal } from 'tnp-core/websql';\n\nimport { CommandProcess, ProcessManagerConfig } from '../../models';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport { BaseProject } from './base-project';\n\nexport { CommandConfig } from '../../models';\n//#endregion\n\n//#region custom console select/multiselect\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n//#endregion\n\nexport class BaseProcessManger<\n PROJECT extends BaseProject<any, any> = BaseProject<any, any>,\n> extends BaseFeatureForProject<PROJECT> {\n //#region fields and getters\n private initialOptions: ProcessManagerConfig<PROJECT>;\n private allProcesses: CommandProcess[] = [];\n private selectedProcesses: CommandProcess[] = [];\n public outputBuffer: string[] = [];\n public startedProcesses = new Set<CommandProcess>();\n public watch = false;\n\n //#region fields and getters / show logs\n private _showLogs: boolean = false;\n public set showLogs(value: boolean) {\n this._showLogs = value;\n this.hideOutput.stderr = !value;\n this.hideOutput.stdout = !value;\n }\n get showLogs(): boolean {\n return this._showLogs;\n }\n\n /**\n * special config for Helpers.executer\n */\n hideOutput = {\n stderr: !this.showLogs,\n stdout: !this.showLogs,\n acceptAllExitCodeAsSuccess: true,\n };\n //#endregion\n\n //#endregion\n\n //#region constructor\n constructor(project: PROJECT) {\n super(project as any);\n }\n //#endregion\n\n //#region init\n async init<PROJECT = BaseProject<any, any>>(\n initialOptions: ProcessManagerConfig<PROJECT>,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region show output\n private showOutput(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region kill or build menu\n private async killOrBuildMenu(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region make sure selected processes are running\n async makeSureSelectedProcessesAreRunning(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region start process with dependencies\n private async startProcessWithDependencies(\n process: CommandProcess,\n startedProcesses = new Set<CommandProcess>(),\n parent: CommandProcess | undefined = undefined,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region build menu\n private async buildMenu(allowedToShowOutput = true): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { _, crossPlatformPath, path } from 'tnp-core/websql';\nimport { CLASS } from 'typescript-class-helpers/websql';\n\nimport { Helpers } from '../../index';\n\nimport { BaseProject } from './base-project';\nimport type { BaseProjectResolver } from './base-project-resolver';\n\n//#endregion\n\nexport abstract class BaseCommandLineFeature<\n PARAMS extends {} = any,\n PROJECT extends BaseProject<any, any> = BaseProject,\n PROJECT_RESOLVER extends\n BaseProjectResolver<PROJECT> = BaseProjectResolver<PROJECT>,\n> {\n /**\n * params from command line\n */\n protected params: PARAMS;\n protected ins: PROJECT_RESOLVER;\n\n protected __transformArgsBeforeResolvingParams__(args: string[]): string[] {\n const transformaed = args.map(a => {\n return a\n .replace(`--copyTo`, '--copyto')\n .replace(`copyTo`, '--copyto')\n .replace(`copyto`, '--copyto');\n });\n return transformaed;\n }\n\n /**\n * clean args without params from command line\n */\n args: string[];\n /**\n * first arg from args\n */\n get firstArg() {\n return _.first(this.args);\n }\n\n /**\n * last arg from args\n */\n get lastArg() {\n return _.last(this.args);\n }\n\n private __project: PROJECT;\n protected get project(): PROJECT {\n return this.__project;\n }\n protected set project(v: PROJECT) {\n // if (!v) {\n // Helpers.error(\n // `Command line cannot be executed on folder that is not know project.`,\n // false,\n // true,\n // );\n // }\n this.__project = v;\n }\n\n\n constructor(\n public readonly argsWithParams: string,\n protected readonly methodNameToCall: string,\n /**\n * nearest project to cwd\n */\n project: PROJECT,\n /**\n * process.cwd()\n */\n protected cwd: string,\n ins: PROJECT_RESOLVER,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n public _exit(code = 0): void {\n process.exit(code);\n }\n\n protected __initialize__() {}\n\n _tryResolveChildIfInsideArg() {\n const {\n resolved,\n clearedCommand,\n } = // @ts-ignore\n Helpers.cliTool.resolveItemFromArgsBegin<PROJECT>(this.args, arg =>\n this.project.getChildBy(arg.replace(/\\/$/, '')),\n );\n this.project = resolved ? resolved : this.project;\n this.args = resolved ? clearedCommand.split(' ') : this.args;\n }\n\n /**\n * method called when not using class methods\n */\n public abstract _();\n}","//#region imports\nimport { config, fileName, folderName } from 'tnp-core/websql';\nimport { _, crossPlatformPath, fse, path } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseFileFoldersOperations<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n //#region files and folders to copy when copying project\n /**\n * Relative to project root\n * @returns list of files and folders to copy when copying project\n */\n protected fielsAndFoldersToCopy(): string[] {\n return [\n folderName._bin,\n folderName.src,\n folderName.docs,\n fileName.package_json,\n fileName.README_MD,\n ];\n }\n //#endregion\n\n //#region move project to\n async moveProjectTo(destination: string): Promise<void> {\n await this.copyProjectTo(destination);\n this.deleteProject();\n }\n //#endregion\n\n //#region delete project\n deleteProject(options?: { skipChildren?: boolean }): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region copy project to\n async copyProjectTo(\n destination: string,\n options?: { skipChildren?: boolean },\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\n/* */ \n\nimport { Subject } from 'rxjs';\nimport {\n config,\n fileName,\n folderName,\n UtilsEtcHosts,\n UtilsExecProc,\n} from 'tnp-core/websql';\nimport {\n chalk,\n _,\n path,\n os,\n UtilsOs,\n fse,\n isElevated,\n Utils,\n UtilsJson,\n CoreModels,\n UtilsProcess,\n} from 'tnp-core/websql';\nimport { crossPlatformPath } from 'tnp-core/websql';\nimport { UtilsTerminal } from 'tnp-core/websql';\nimport { UtilsNetwork, UtilsDotFile } from 'tnp-core/websql';\n/* */ \nimport { UtilsCliClassMethod } from 'tnp-core/websql';\nimport { win32Path } from 'tnp-core/websql';\nimport { UtilsSudo } from 'tnp-core/websql';\n\nimport {\n BaseCLiWorkerStartMode,\n Helpers,\n LinkedProject,\n PushProcessOptions,\n UtilsJava,\n UtilsVSCode,\n UtilsZip,\n} from '../../index';\nimport { TypeOfCommit, CommitData } from '../commit-data';\nimport { GhTempCode } from '../gh-temp-code';\n\nimport { BaseCommandLineFeature } from './base-command-line-feature';\nimport { BaseProject } from './base-project';\nimport type { BaseProjectResolver } from './base-project-resolver';\n//#endregion\n\nexport class BaseGlobalCommandLine<\n PARAMS = any,\n PROJECT extends BaseProject<any, any> = BaseProject<any, any>,\n PROJECT_RESOLVER extends\n BaseProjectResolver<PROJECT> = BaseProjectResolver<PROJECT>,\n> extends BaseCommandLineFeature<PARAMS, PROJECT, PROJECT_RESOLVER> {\n public _(): void {\n Helpers.error('Please select git command');\n }\n\n /**\n * @returns true is sudo was used to restart the process\n */\n protected async _runAsSudoIfNotElevated({\n globalCommandName,\n }: {\n globalCommandName?: string;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region commands / prevent cwd is not project\n /**\n * TODO return argument not need for now\n */\n async cwdIsProject(options?: {\n requireProjectWithGitRoot?: boolean;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / hosts\n hosts() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / count commits\n countCommits() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / remove submodules\n removeSubmodules() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n removeSubmodule() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / set editor\n async setEditor() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / api update\n async upapi() {\n/* */\n/* */\n return (void 0);\n }\n\n async apiup() {\n/* */\n/* */\n return (void 0);\n }\n\n async apiUpdate() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / chore update\n async cu() {\n/* */\n/* */\n return (void 0);\n }\n\n async choreUpdate() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / color vscode\n colorvscode() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / settings vscode\n /**\n * Generate or update .vscode/settings.json file color settings\n */\n settingsVscode() {\n/* */\n/* */\n return (void 0);\n }\n\n refreshVscodeColors() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected _regenerateVscodeSettingsColors(overideBottomColor?: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / quick git update\n /**\n * quick git update push\n */\n async _update(commitMessage: string, force = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async forceup() {\n await this.forceUpdate();\n }\n\n async forceUpdate() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async update() {\n/* */\n/* */\n return (void 0);\n }\n\n async docsUp() {\n/* */\n/* */\n return (void 0);\n }\n\n private async updateProject(project: PROJECT, force = false): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async deepUp(noExit = false) {\n/* */\n/* */\n return (void 0);\n }\n\n async upAll(noExit = false) {\n/* */\n/* */\n return (void 0);\n }\n\n async deepUpForce(noExit = false) {\n/* */\n/* */\n return (void 0);\n }\n\n async deepUpdateForce(noExit = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async deepUpdate(noExit = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * Push update\n */\n async up() {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * Push update\n */\n async pu() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / develop\n async develop() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async dev() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / repulll\n async repul() {\n/* */\n/* */\n return (void 0);\n }\n\n async repull() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / pull\n async pul() {\n/* */\n/* */\n return (void 0);\n }\n\n async pull() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / pull all\n async pullAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push and pull\n async pp() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / reset\n private __resetInfo(branchToReset: string, withChildren: boolean) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async fetch() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async reset() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / soft\n async soft() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / rebase\n async rebase() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / stash\n /**\n * stash only staged files\n */\n async stash() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / stash all\n /**\n * stash all files\n */\n async stashAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push all origins\n\n /**\n * push force to all origins\n */\n async pushAllForce(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pAllForce(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async pAllf(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async pAll(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * push to all origins\n */\n async pushAll(force = false): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push force\n async forcePush(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async pushForce(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / commit\n /**\n * Commit and push this for single repo\n */\n async commit(\n options: {\n force?: boolean;\n typeofCommit?: TypeOfCommit;\n origin?: string;\n commitMessageRequired?: boolean;\n noExit?: boolean;\n } = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push\n async _preventPushPullFromNotCorrectBranch(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async qPush(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async quickPush(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async repushauto(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async rePush(skipQuesion = false): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async push(options: PushProcessOptions = {}): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / melt\n public async melt(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / melt\n public async meltUp() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / melt\n public async meltAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / melt updat ecommits\n private async __meltCommitsFunc(\n project: BaseProject,\n options?: { hideInfo?: boolean },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private async meltUpdateCommits(options?: { hideInfo?: boolean }) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push feature\n async pf() {\n/* */\n/* */\n return (void 0);\n }\n\n async pRel() {\n/* */\n/* */\n return (void 0);\n }\n\n async pRelease() {\n/* */\n/* */\n return (void 0);\n }\n\n async pushRelease() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async mPush() {\n/* */\n/* */\n return (void 0);\n }\n\n async fmPush() {\n/* */\n/* */\n return (void 0);\n }\n\n async mfPush() {\n/* */\n/* */\n return (void 0);\n }\n\n async mforcePush() {\n/* */\n/* */\n return (void 0);\n }\n\n async meltforcePush() {\n/* */\n/* */\n return (void 0);\n }\n\n async forceMeltPush() {\n/* */\n/* */\n return (void 0);\n }\n\n async meltPush(force = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pushFeature() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push fix\n async pushFix() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n pfix() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push chore\n async pushChore() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pc() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push refactor\n async pushRefactor() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pushref() {\n/* */\n/* */\n return (void 0);\n }\n\n async pref() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push style\n async pushStyle() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pstyl() {\n/* */\n/* */\n return (void 0);\n }\n\n async pstyle() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push docs\n async pushDocs() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pd() {\n/* */\n/* */\n return (void 0);\n }\n\n async pdocs() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push test\n async pushTest() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pTest() {\n/* */\n/* */\n return (void 0);\n }\n\n async pTests() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push perf\n async pushPerf() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push ci\n async pushCi() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / select branch\n async branch() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push build\n async pushBuild() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / set origin\n async SET_ORIGIN() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / rename origin\n async RENAME_ORIGIN() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / last hash tag\n async LAST_TAG_HASH() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / last tag\n async LAST_TAG() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / check tag exists\n CHECK_TAG_EXISTS() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / lint\n /**\n * TODO move somewhere\n */\n async lint() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / version\n /**\n * TODO move somewhere\n */\n async version() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / init\n /**\n * TODO move somewhere\n */\n async init() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * init parent and first level children\n */\n async initAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / struct\n /**\n * TODO move somewhere\n */\n async struct() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / info\n /**\n * TODO move somewhere\n */\n async info() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / info\n async modified() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / update\n async refresh(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / changes\n async changes() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / all tags\n async allTags() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / remove tag\n async removeTag() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / branch name\n BRANCH_NAME() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / remotes\n REMOTES() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async SET_REMOTE_SSH() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async SET_REMOTE_http() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async SET_REMOTE_https() {\n/* */\n/* */\n return (void 0);\n }\n\n protected _resolveChildFromArg() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n origin() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n remote() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n originHttp() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n originHttps() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n originssh() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n origins() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / git config\n gitConfig() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / lastCommitHash\n LAST_COMMIT_HASH() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / commit message by hash\n async COMMIT_MESSAGE_BY_HASH() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / last 5 commit hashes\n\n async LAST_5_COMMITS() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / update deps from\n async updateDepsFrom() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is terminal supported\n isSupportedTaonTerminal() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is terminal running inside cmd\n isRunningInWindowsCmd() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is running inside powershell\n isRunningInWindowsPowerShell() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region prox ext\n async INSTALL_PROJECT_EXTENSIONS(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async INSTALL_PROJECT_EXT(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async INS_PROJ_EXT(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async INSTALL_PROJ_EXT(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region proj db\n async projdb() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region filter all project branches by pattern\n private __filterBranchesByPattern(\n branchPatternOrBranchName: string,\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region select branch from list of branches\n private async __selectBrach(\n branches: string[],\n task: 'rebase' | 'reset' | 'checkout',\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / clone\n async clone() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / gh temp\n async ghSave() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async ghRestore() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / start cli service ports worker\n\n async ports() {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * tnp startCliServicePortsWorker --restart\n */\n async startCliServicePortsWorker(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / wait for any key\n async waitForUserAnyKey() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / pause terminal\n pauseTerminal() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / sleep terminal\n sleepTerminal() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / gh pages init\n async ghPagesInit() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / is port in use\n async isPortInUse() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / proc menu\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n //#endregion\n\n //#region commands / proc info\n procInfo() {\n/* */\n/* */\n return (void 0);\n }\n\n processInfo() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / last git tag\n lastGitTag() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / check ports\n async checkPort() {\n/* */\n/* */\n return (void 0);\n }\n\n async checkPorts() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / remove symlinks\n removeSymlinksDryRun() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / select java\n async selectJava() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / select tomcat\n async selectTomcat() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / ln\n LN() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / copy\n copy() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / simulate domain\n async simulateDomain(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / preview\n async preview(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / shorten\n /**\n * read huge file and display only lines with specyfic words\n */\n async shorten() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / dump packages versions\n dumpPackagesVersions(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / zip\n async zip() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / unzip\n async unzip() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / start transmission\n async startTransmission() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async _removeTransmission() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / backup branch\n async backupBranch() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bb() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / count code lines\n async countCodeLines() {\n/* */\n/* */\n return (void 0);\n }\n\n async countCode() {\n/* */\n/* */\n return (void 0);\n }\n\n async countLines() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / is node version ok\n isNodeVersionOk() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / pwd\n pwd(): void {\n config.frameworkName = 'taon';\n console.log(crossPlatformPath(this.cwd));\n this._exit();\n }\n //#endregion\n\n //#region commands / less-more big text files preview\n async more() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async less() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / mp3\n /**\n * npm install --global bin-version-check-cli\n * npm i -g yt-dlp\n * choco install ffmpeg\n */\n MP3(args) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / mp4\n MP4(args) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / gif from video\n gif(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / kill zscaller\n killZs() {\n/* */\n/* */\n return (void 0);\n }\n\n startZs() {\n/* */\n/* */\n return (void 0);\n }\n\n zsKill() {\n/* */\n/* */\n return (void 0);\n }\n\n zsStart() {\n/* */\n/* */\n return (void 0);\n }\n\n startZscaller() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n killZscaller() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / has command\n async hasCommand(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n hasCommandSync(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / public ip address\n async publicIpAddress(): Promise<void> {\n const ip = await UtilsNetwork.getCurrentPublicIpAddress();\n console.log(`Your public IP address is: ${ip}`);\n this._exit();\n }\n\n async publicIp(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / open origins in vscode\n async localIps(): Promise<void> {\n const firstActiveLocalIp =\n await UtilsNetwork.getFirstIpV4LocalActiveIpAddress();\n\n console.log(\n `Your first active local IP address is: ${firstActiveLocalIp} `,\n );\n\n const ips = await UtilsNetwork.getLocalIpAddresses();\n for (let index = 0; index < ips.length; index++) {\n const ip = ips[index];\n // console.log(ip);\n console.log(\n `${index + 1}. Local IP address is: ` +\n `${ip.address}, type: ${ip.type}`,\n );\n }\n this._exit();\n }\n //#endregion\n\n //#region commands / is online\n async isOnline() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / configure bash and shell\n async configureBash() {\n // ! TODO @UNCOMMENT\n // await UtilsTerminal.configureBashOrShell();\n }\n\n async configureShell() {\n // ! TODO @UNCOMMENT\n // await UtilsTerminal.configureBashOrShell();\n }\n\n confBash() {\n this.configureBash();\n }\n\n confShell() {\n this.configureShell();\n }\n //#endregion\n\n //#region commands / git reset all\n gitResetAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / is elevated\n async isElevated() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / sudo check\n async sudoCheck() {\n const sudoStatus = await UtilsSudo.getStatus();\n console.log('is command available', sudoStatus.isAvailable);\n console.log('is inline sudo enable', sudoStatus.isInline);\n console.log('is this command elevated (sudo or admin)', await isElevated());\n this._exit();\n }\n //#endregion\n\n //#region commands / python modules exists\n async pythonModuleExists() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { _ } from 'tnp-core/websql';\nimport { path } from 'tnp-core/websql';\n\nimport { Helpers } from '../index';\n//#endregion\n\n//#region open source proviers\nconst openSourceProvidersIssuePrefix = [\n 'GH',\n // 'GITHUB',\n // 'BB',\n // 'BITBUCKET',\n // 'GL',\n // 'GITLAB',\n];\n//#endregion\n\n//#region common commit msg branch\nexport type CommonCommitMsgBranch =\n | 'refactor'\n | 'chore'\n | 'style'\n | 'docs'\n | 'test'\n | 'ci'\n | 'build'\n | 'release';\n//#endregion\n\n//#region type of commit\nexport type TypeOfCommit =\n | 'feature'\n | 'bugfix'\n | 'performance'\n | CommonCommitMsgBranch;\n//#endregion\n\nexport type TypeOfMsgPrefix = 'feat' | 'fix' | 'perf' | CommonCommitMsgBranch;\nconst regexTeamsID: RegExp = /[A-Z0-9]+\\#/;\n\nconst regexCommitModuleInArgs: RegExp = /\\[[a-z|\\-|\\,]+\\]/;\nconst regexCommitModuleInBranch: RegExp = /\\-\\-[a-z|\\-|\\_]+\\-\\-/;\n\nexport class CommitData {\n //#region static\n\n //#region static / methods & getters / clean http(s) from commit message\n private static cleanHttpFromCommitMessage(commitMsg: string): string {\n if (!commitMsg) {\n return commitMsg;\n }\n commitMsg = commitMsg.replace('https://', '');\n commitMsg = commitMsg.replace('http://', '');\n return commitMsg;\n }\n //#endregion\n\n //#region static / methods & getters / get temas id from\n private static getTeamsIdFrom(commitMsg: string) {\n let teamID = _.first(commitMsg.match(regexTeamsID));\n if (teamID) {\n commitMsg = commitMsg.replace(teamID, '');\n }\n return {\n commitMsgOrBranchName: commitMsg,\n teamID,\n };\n }\n //#endregion\n\n //#region static / methods & getters / get module name from\n private static getModuleNameFrom(commitMsg: string) {\n let commitModuleName = _.first(commitMsg.match(regexCommitModuleInArgs));\n if (commitModuleName) {\n commitMsg = commitMsg.replace(commitModuleName, '');\n }\n commitModuleName = commitModuleName?.replace(/\\[/g, '').replace(/\\]/g, '');\n return {\n commitMsg,\n commitModuleName,\n };\n }\n //#endregion\n\n //#region static / methods & getters / extract jira numbers\n /**\n *\n * @returns jiras (from oldest to newset)\n */\n static extractAndOrderJiraNumbers(commitOrBranchName: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / methods & getters / extract jira numbers\n /**\n *\n * @returns jiras (from oldest to newset)\n */\n static extractAndOrderIssuesFromOtherProjects(\n /**\n * example:\n * commit: proper git commands tnp/GH-9 darekf77/tnp-helpers/GH-10\n * feature/__tnp-GH-9____darekf77_tnp-helpers-GH10__-proper-git-commands\n */\n commitOrBranchName: string,\n currentOrigin?: string,\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / methods & getters / clean message from jira numbers, team id and stuff\n static cleanMessageFromJiraNumTeamIdEtc(\n message: string,\n optinos?: {\n teamID: string;\n commitModuleName: string;\n jiraNumbers: string[];\n issuesFromOtherProjects: string[];\n },\n ): string {\n message = message || '';\n let { teamID, commitModuleName, jiraNumbers, issuesFromOtherProjects } =\n optinos || {};\n teamID = teamID || this.getTeamsIdFrom(message).teamID || '';\n commitModuleName =\n commitModuleName ||\n this.getModuleNameFrom(message).commitModuleName ||\n '';\n jiraNumbers = jiraNumbers || this.extractAndOrderJiraNumbers(message) || [];\n issuesFromOtherProjects =\n issuesFromOtherProjects ||\n this.extractAndOrderIssuesFromOtherProjects(message) ||\n [];\n\n if (!!teamID.trim()) {\n message = message.replace(teamID.toLowerCase().replace('-', ' '), ' ');\n message = message.replace(teamID.toUpperCase().replace('-', ' '), ' ');\n }\n\n // console.log({ clere: 'CLEAR', issuesFromOtherProjects, message });\n\n for (const issueFromOtherProj of issuesFromOtherProjects || []) {\n // console.log('issueFromOtherProj', issueFromOtherProj);\n // console.log('message', message);\n message = message.replace(\n `__${issueFromOtherProj.replace(/\\//g, '_').replace(/\\-/g, ' ')}__`,\n ' ',\n );\n message = message.replace(issueFromOtherProj, ' ');\n message = message.replace(\n issueFromOtherProj.toLowerCase().replace('-', ' '),\n ' ',\n );\n message = message.replace(\n issueFromOtherProj.toUpperCase().replace('-', ' '),\n ' ',\n );\n message = message.replace(issueFromOtherProj.toLowerCase(), ' ');\n message = message.replace(regexCommitModuleInArgs, ' ');\n message = message.replace(regexCommitModuleInBranch, ' ');\n message = message.replace(/\\ \\ /g, ' ');\n }\n\n for (const jira of jiraNumbers || []) {\n message = message.replace(jira.toLowerCase().replace('-', ' '), ' ');\n message = message.replace(jira.toUpperCase().replace('-', ' '), ' ');\n message = message.replace(jira, ' ');\n message = message.replace(jira.toLowerCase(), ' ');\n message = message.replace(regexCommitModuleInArgs, ' ');\n message = message.replace(regexCommitModuleInBranch, ' ');\n message = message.replace(/\\ \\ /g, ' ');\n }\n\n if (!!teamID.trim()) {\n message = message.replace(/\\_/g, ' ');\n }\n\n if (!!commitModuleName.trim()) {\n const cleanedModuleName = commitModuleName\n .replace(/\\-/g, ' ')\n .replace(/\\,/g, '_');\n\n message = message.replace(cleanedModuleName, ' ');\n }\n return message\n .replace(/\\ \\ /g, ' ')\n .replace(/\\ \\ /g, ' ')\n .replace(/\\ \\ /g, ' ');\n }\n\n //#endregion\n\n //#region static / methods & getters / get module name from branch\n private static getModuleNameFromBranch(branchName: string) {\n let commitModuleName = _.first(branchName.match(regexCommitModuleInBranch));\n if (commitModuleName) {\n branchName = branchName.replace(commitModuleName, '');\n commitModuleName = commitModuleName\n ?.replace(/^\\-\\-/, '')\n ?.replace(/\\-\\-$/, '');\n if (commitModuleName.startsWith('-')) {\n commitModuleName = commitModuleName.replace(/^\\-/, '');\n }\n }\n commitModuleName = commitModuleName\n ?.replace(/^\\-\\-/, '')\n ?.replace(/\\-\\-$/, '')\n .replace(/\\_/, ',');\n\n return { commitModuleName };\n }\n //#endregion\n\n //#region static / methods & getters / get from args\n static async getFromArgs(\n args: string[],\n options: {\n typeOfCommit: TypeOfCommit;\n /**\n * only needed when push github\n * and I forgot to add my username before issue\n * taon pfix proper input my-repo#344\n * that should be\n * taon pfix proper input my-username/my-repo#344\n */\n currentOrigin?: string;\n jiraIssuesAreOutsideBrackets?: boolean;\n },\n ): Promise<CommitData> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / methods & getters / get from bramch\n static async getFromBranch(\n currentBranchName: string,\n options?: {\n releaseWords?: string[];\n /**\n * only needed when push github\n * and I forgot to add my username before issue\n * taon pfix proper input my-repo#344\n * that should be\n * taon pfix proper input my-username/my-repo#344\n */\n currentOrigin?: string;\n jiraIssuesAreOutsideBrackets?: boolean;\n },\n ): Promise<CommitData> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / methods & getters / from\n public static from(\n options: Pick<\n CommitData,\n | 'message'\n | 'jiraNumbers'\n | 'typeOfCommit'\n | 'commitModuleName'\n | 'teamID'\n | 'issuesFromOtherProjects'\n | 'jiraIssuesAreOutsideBrackets'\n >,\n ): CommitData {\n options = (options ? options : {}) as any;\n // console.log(options)\n const opt = _.merge(new CommitData(), _.cloneDeep(options));\n return opt;\n }\n //#endregion\n\n //#endregion\n\n //#region fields\n private _message: string;\n typeOfCommit: TypeOfCommit;\n /**\n * ex. JIRA-2132 or MYJIRAREFIX-234234\n */\n jiraNumbers: string[];\n\n /**\n * if true then jira issues are outside brackets\n * feat: proper git commands JIRA-1234\n *\n * by default is false\n * feat(JIRA-1234): proper git commands\n */\n jiraIssuesAreOutsideBrackets: boolean;\n\n /**\n * when set -> jiraIssuesAreOutsideBrackets is true\n */\n readonly commitModuleName: string;\n readonly teamID: string;\n //#endregion\n\n //#region methods & getters / clear message\n private clearMessage(message: string): string {\n return CommitData.cleanMessageFromJiraNumTeamIdEtc(message, {\n teamID: this.teamID,\n commitModuleName: this.commitModuleName,\n jiraNumbers: this.jiraNumbers,\n issuesFromOtherProjects: this.issuesFromOtherProjects,\n });\n }\n //#endregion\n\n //#region methods & getters / message\n /**\n * pure message what was done (without jira or prefixes)\n * => is included in this.commitMessage\n */\n get message() {\n return this.clearMessage(this._message);\n }\n set message(message) {\n this._message = this.clearMessage(message);\n }\n //#endregion\n\n useFeatureBranchForTestBranch: boolean = false;\n\n //#region methods & getters / branch prefix\n get branchPrefix(): TypeOfMsgPrefix {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / issues from other projects\n /**\n * ex. taon/GH-12 darekf77/tnp-helpers/GH-4\n */\n get issuesFromOtherProjects(): string[] {\n return this.__issuesFromOtherProjects;\n }\n\n set issuesFromOtherProjects(value: string[]) {\n this.__issuesFromOtherProjects = value;\n // this.__issuesFromOtherProjects = value.map(issue => {\n // console.log('MAPPING', issue);\n // console.log('project', this.project?.name);\n // if (issue.split('/').length === 1 && !!this.project) {\n // console.log('issue', issue);\n // const origin = Helpers.git.originSshToHttp(this.project.git.originURL);\n // const provider = _.first(origin.replace('https://', '').split('/'));\n // const cleanUserWithPath = origin\n // .replace('https://', '')\n // .replace(provider + '/', '')\n // .replace(path.basename(origin).replace('.git', ''), '');\n\n // const issueLastPart = _.last(issue.split('/'));\n // return `tnp/${cleanUserWithPath}/${issueLastPart}`;\n // }\n // return issue;\n // });\n }\n\n private __issuesFromOtherProjects: string[];\n //#endregion\n\n //#region methods & getters / commit message git commit -m\n get commitMessage(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / branch name\n get branchName(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is action commit\n get isActionCommit() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { _, path, crossPlatformPath } from 'tnp-core/websql';\nimport type { BaseProject } from './classes/base-project';\nimport { CLASS } from 'typescript-class-helpers/websql';\nimport { Helpers, LibrariesBuildOptions, TestBuildOptions } from '../index';\n//#endregion\n\n//#region core porject environment\nexport type CoreProjectEnvironment = {\n shortName?: string;\n name?: string;\n description?: string;\n onlineLink?: string;\n};\n//#endregion\n\n//#region constants\n//#region constants / defult db\nconst defaultDb = {\n projects: [],\n};\n//#endregion\n//#endregion\n\n//#region core project command args options\nexport type CoreCommandArgOptions<PROJECT extends BaseProject<any,any>> = {\n project?: PROJECT;\n /**\n * watch mode\n */\n watch?: boolean;\n prod?: boolean;\n debug?: boolean;\n isInReleaseProcess?: boolean;\n libraryBuildOptions?: LibrariesBuildOptions;\n testBuildOptions?: TestBuildOptions;\n /**\n * first arg from command line\n */\n firstArg?: string;\n /**\n * Not question for user ex.\n * - automatic process of patch release\n * - automatic deployment for default server\n */\n automaticProcess?: boolean;\n /**\n * orignal args with params\n */\n argsWithParams?: string;\n copyto?: string[];\n copytoall?: boolean;\n /**\n * args from command line (clearn from params)\n */\n args?: string[];\n exitCallback?: () => void;\n};\n//#endregion\n\nexport class CoreProject<PROJECT extends BaseProject = BaseProject> {\n //#region static\n\n //#region static / core projects\n public static coreProjects: CoreProject<any>[] = [];\n //#endregion\n\n //#region static / from\n static from<Proj extends BaseProject = BaseProject<any,any>>(\n options: Omit<CoreProject<Proj>, 'name' | 'url' | 'branch'>,\n ): CoreProject<Proj> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n //#region constructor\n private constructor() {}\n //#endregion\n\n //#region properties\n extends?: CoreProject<any>;\n color?: string;\n /**\n * second color for project (optional)\n */\n secondColor?: string;\n /**\n * second color for project (optional)\n */\n thirdColor?: string;\n npmRegistry?: string;\n description?: string;\n /**\n * ssh url for git repo\n */\n urlSSH?: string;\n /**\n * https url for git repo\n */\n urlHttp?: string;\n /**\n * main branches - first is default\n */\n branches: string[];\n /**\n * project environments\n */\n environments?: CoreProjectEnvironment[] = [];\n //#endregion\n\n //#region methods & getters\n cleanCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n initCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n /**\n * Build whatever is needed to run project\n * buildCommand includes initCommand\n */\n buildCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n /**\n * startCommand includes initCommand, buildCommand and launchCommand\n */\n startCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n /**\n * launch already built project\n */\n launchCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>\n releaseCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n publishCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n deployCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n testCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n docsCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n /**\n * function to recognize project\n */\n recognizedFn: (project: PROJECT) => boolean;\n\n /**\n * core porject name from repo basename\n */\n get name() {\n return path.basename(this.url).replace(/\\.git$/, '');\n }\n\n /**\n * main (default for reset) branch\n */\n get branch() {\n return _.first(this.branches);\n }\n\n /**\n * url for git repo\n */\n get url(): string {\n return (this.urlHttp ? this.urlHttp : this.urlSSH) || '';\n }\n //#endregion\n}\n\nexport const CoreTypescriptProject = CoreProject.from<BaseProject>({\n //#region configuration\n branches: ['master', 'develop'],\n environments: [],\n recognizedFn: project => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n },\n async startCommand({ project }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n },\n async buildCommand({ project, watch }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n },\n\n //#endregion\n});\n\nexport const CoreAngularProject = CoreProject.from<BaseProject>({\n //#region configuration\n extends: CoreTypescriptProject,\n branches: ['master', 'develop'],\n environments: [],\n recognizedFn: project => {\n return project.hasFile('angular.json');\n },\n async startCommand({ project }) {\n await project.npmHelpers.nodeModules.makeSureInstalled();\n const port = await project.assignFreePort(4200);\n project.run(`npm-run ng serve --port ${port}`).sync();\n },\n async buildCommand({ project }) {\n await project.npmHelpers.nodeModules.makeSureInstalled();\n project.run(`npm-run ng build`).sync();\n },\n //#endregion\n});","import {\n config,\n notAllowedNames,\n notAllowedProjectNames,\n} from 'tnp-core/websql';\nimport { _, crossPlatformPath, path } from 'tnp-core/websql';\n\nimport { Helpers } from '../index';\n\nexport class LinkedProject {\n //#region static\n\n //#region static / from\n static from(options: Partial<LinkedProject>) {\n const linkedProj = _.merge(\n new (LinkedProject as any)(),\n _.cloneDeep(options),\n ) as LinkedProject;\n if (!linkedProj.relativeClonePath) {\n linkedProj.relativeClonePath = path.basename(\n linkedProj.remoteUrl().replace('.git', ''),\n );\n }\n if (!linkedProj.defaultBranch) {\n linkedProj.defaultBranch = 'master';\n }\n return linkedProj;\n }\n //#endregion\n\n //#region static / from name\n static fromName(\n projectName: string,\n currentRemoteUrl?: string,\n currentBranch?: string,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / detect\n static detect(\n insideLocation: string,\n options?: {\n recursive?: boolean;\n checkAlsoNonRepos?: boolean;\n },\n ): LinkedProject[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n /**\n * sometime there is project that has one project\n * embede inside another project\n */\n internalRealtiveProjectPath?: string;\n /**\n * don't access directly, use remoteUrl() instead\n */\n repoUrlSsh?: string;\n /**\n * don't access directly, use remoteUrl() instead\n */\n repoUrlHttp?: string;\n /**\n * don't access directly, use remoteUrl() instead\n */\n repoUrl?: string;\n /**\n * url for git repo\n */\n public remoteUrl(): string {\n if (this.repoUrl) {\n return this.repoUrl;\n }\n if (this.repoUrlHttp) {\n return this.repoUrlHttp;\n }\n return this.repoUrlSsh;\n }\n\n public remoteUrlTransformed(setOrigin: 'ssh' | 'http'): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n defaultBranch?: string;\n purpose?: string;\n relativeClonePath?: string;\n}\n\nexport class LinkedPorjectsConfig {\n //#region static\n\n //#region static / from\n static from(options: Partial<LinkedPorjectsConfig>) {\n options = options || {};\n options.projects = (options.projects || []).map(linkedProjOrname => {\n if (_.isString(linkedProjOrname)) {\n return LinkedProject.fromName(linkedProjOrname);\n }\n return LinkedProject.from(linkedProjOrname);\n });\n // .sort((a, b) => {\n // return (a.relativeClonePath || '').localeCompare((b.relativeClonePath || ''));\n // });\n return _.merge(new (LinkedPorjectsConfig as any)(), _.cloneDeep(options));\n }\n //#endregion\n //#endregion\n\n prefix?: string;\n skipRecrusivePush?: boolean;\n resetOnlyChildren?: boolean;\n projects: LinkedProject[];\n}","export * from './classes';\nexport * from './commit-data';\nexport * from './core-project';\nexport * from './linked-project';\nexport * from './tcp-udp-ports';\n/* */\n/* */\n ","import * as child from 'child_process';\nimport * as fse from 'fs';\nimport * as path from 'path';\n\nimport type { ExtensionContext, Uri } from 'vscode';\n\nimport {\n capitalizeFirstLetter,\n optionsFix,\n Log,\n getModuleName,\n shell,\n escapeStringForRegEx,\n deepClone,\n valueFromCommand,\n crossPlatformPath,\n getVscode,\n} from './helpers';\nimport { ProcesOptions, ProgressData, ResolveVariable } from './models';\n\nexport type ExecCommandTypeOpt = {\n vscode?: typeof import('vscode');\n log?: Log;\n context?: ExtensionContext;\n cwd?: string;\n uri: Uri;\n selectedUris: Uri[];\n rootFolderPath?: string;\n};\n\nexport type ExecCommandType =\n | string\n | string[]\n | ((opt: ExecCommandTypeOpt) => any);\n\nexport function executeCommand(\n titleOfTask,\n registerName: string,\n commandToExecute: ExecCommandType,\n pOptions?: ProcesOptions,\n isDefaultBuildCommand?: boolean,\n context?: ExtensionContext,\n debug?: boolean,\n) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}","import { CoreModels } from 'tnp-core/websql';\n\nimport type { ExecCommandType } from './execute-command';\n\nexport type CommandType = {\n command?: string;\n exec?: ExecCommandType;\n title?: string;\n group?: string;\n hideContextMenu?: boolean;\n options?: ProcesOptions;\n isDefaultBuildCommand?: boolean;\n};\n\nexport type ResolveVariable = {\n variable: string;\n resolveValueFromCommand?: string;\n prompt?: string;\n placeholder?: string | Function;\n variableValue?: any;\n encode?: boolean;\n options?: { option: any; label: string }[] | string;\n optionsResolved?: {\n option: any;\n label: string;\n skipNextVariableResolve?: boolean;\n }[];\n useResultAsLinkAndExit?: boolean;\n exitWithMessgeWhenNoOptions?: string;\n /**\n * { label: 'action item !!!', option: { action: 'STRING_SECRET_CODE' } }\n * { label: 'normal item', option: < primitive value > }\n */\n fillNextVariableResolveWhenSelectedIsActionOption?: boolean;\n};\n\nexport type ProcesOptions = {\n progressLocation?: 'notification' | 'statusbar';\n findNearestProject?: boolean;\n findNearestProjectWithGitRoot?: boolean;\n findNearestProjectType?: CoreModels.LibType;\n findNearestProjectTypeWithGitRoot?: CoreModels.LibType;\n syncProcess?: boolean;\n reloadAfterSuccesFinish?: boolean;\n cancellable?: boolean;\n titleWhenProcessing?: string;\n tnpNonInteractive?: boolean;\n tnpShowProgress?: boolean;\n debug?: boolean;\n showOutputDataOnSuccess?: boolean;\n showSuccessMessage?: boolean;\n askBeforeExecute?: boolean;\n resolveVariables?: ResolveVariable[];\n};\n\n/**\n * @deprecated\n */\nexport type PROGRESS_DATA_TYPE = 'info' | 'error' | 'warning' | 'event';\n\n/**\n * @deprecated\n */\nexport interface IProgressData {\n /**\n * How man percent of progress\n */\n value?: number;\n msg?: string;\n type?: PROGRESS_DATA_TYPE;\n date?: Date;\n}\n\n/**\n * @deprecated\n */\nexport class ProgressData implements IProgressData {\n public static resolveFrom(\n chunk: string,\n callbackOnFounded?: (json: ProgressData) => any,\n checkSplit = true,\n ): ProgressData[] {\n let progress;\n let res: ProgressData[] = [];\n if (typeof chunk !== 'string') {\n return [];\n }\n chunk = chunk.trim();\n\n if (checkSplit) {\n const split = chunk.split(/\\r\\n|\\n|\\r/);\n if (split.length > 1) {\n // console.log('split founded', split)\n split.forEach(s => {\n res = res.concat(this.resolveFrom(s, callbackOnFounded, false));\n });\n return res;\n }\n }\n\n if (/\\[\\[\\[.*\\]\\]\\]/g.test(chunk)) {\n chunk = chunk.replace(/^\\[\\[\\[/g, '').replace(/\\]\\]\\]$/g, '');\n progress = chunk;\n }\n if (typeof progress !== 'undefined') {\n try {\n const p = JSON.parse(progress);\n const single = Object.assign(new ProgressData(), p);\n res = res.concat([single]);\n if (typeof callbackOnFounded === 'function') {\n callbackOnFounded(single);\n }\n } catch (err) {\n console.log(err);\n console.error(`ProgresssBarData: fail to parse \"${progress}\"`);\n }\n }\n return res;\n }\n\n constructor(\n public value: number = 0,\n public msg: string = '',\n\n public type: PROGRESS_DATA_TYPE = 'event',\n public date: Date = new Date(),\n ) {}\n}","//#region @browser\nexport { HelpersAngular } from './helpers/for-browser/angular.helper';\n//#endregion\n\nexport * from './utils';\nimport { HelpersTaon as Base } from './helpers/helpers';\nexport const Helpers: Base = Base.Instance as Base;\nexport * from './base';\nexport * from './models';\n\nexport * from './old/execute-command';\n// export * from './old/helpers';\nexport * from './old/models';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultDb","Helpers","Base"],"mappings":"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"}
1
+ {"version":3,"file":"tnp-helpers.mjs","sources":["../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/for-browser/angular.helper.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/utils.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers-array-obj.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers-strings-regexes.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers-strings.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/for-backend/helpers-process.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/for-backend/helpers-file-folders.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers-numbers.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/for-browser/helpers-browser.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/helpers/helpers.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-db.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/config-database.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/project-database.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/ports.entity.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker-terminal-ui.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker.models.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker-database-config.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker-config.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker-controller.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-cli-worker/base-cli-worker.utils.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/ports.controller.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/1736198527297_init.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/1736199486472_addingNotAssignablePorts.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/1736454437350_addFreePorts.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/migrations/index.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/tcp-udp-ports.context.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/tcp-upd-ports-terminal-ui.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/tcp-udp-ports/tcp-upd-ports.worker.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-project-resolver.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-feature-for-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-library-build.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-json-file-reader.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-package-json.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-node-modules.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-bower-json.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-npm-helpers.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-linked-projects.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-git.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-ignore-hide.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-linter.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-vscode.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-release-process.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-compiler-for-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-debounce-compiler-for-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-quick-fixes.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/models.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-process-manager.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-command-line-feature.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-file-folders-operations.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/classes/base-global-command-line.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/commit-data.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/core-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/linked-project.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/base/index.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/old/execute-command.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/old/models.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/lib/index.ts","../../../tmp-libs-for-dist-websql/tnp-helpers/projects/tnp-helpers/src/tnp-helpers.ts"],"sourcesContent":["//#region @browser\nimport { Observable, Subject } from \"rxjs\";\n\nconst componentContextSymbol = Symbol();\nconst componentsDestroy$Subjects = {};\n\n\nexport namespace HelpersAngular {\n\n export class SerializedSubject<T> {\n constructor(\n public id: string\n ) { }\n }\n\n\n function subjectId(destroySubject: Subject<any>): SerializedSubject<any> {\n const id = Math.random().toString(36).substring(2);\n if (!destroySubject[componentContextSymbol]) {\n destroySubject[componentContextSymbol] = new SerializedSubject(id);\n componentsDestroy$Subjects[id] = destroySubject;\n }\n return destroySubject[componentContextSymbol];\n }\n\n /**\n * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();\n */\n export function serialize(destroy$: Subject<any>): SerializedSubject<any> {\n return subjectId(destroy$);\n }\n\n /**\n * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();\n */\n export function deserialize(destroy$: SerializedSubject<any>): Subject<any> {\n if (destroy$?.id) {\n const realDestroySubject = componentsDestroy$Subjects[destroy$.id];\n return realDestroySubject;\n }\n return new Subject();\n }\n\n export function unsubscribe(destroy$: Subject<any>) {\n const destroySubject = subjectId(destroy$);\n if (destroySubject?.id) {\n delete componentsDestroy$Subjects[destroySubject.id];\n delete destroySubject[componentContextSymbol];\n }\n }\n\n\n\n /**\n get properties from scss file\n\n\n import styles from './tasks-ngrx-data.component.scss';\n\n export class ExampleComponent {\n sassFile = sassFile(styles);\n\n async ngOnInit() {\n this.tasksService.getAll();\n console.log(this.sassFile.stringValue('--max-container-size'))\n console.log(this.sassFile.numberValue('--max-container-size'))\n }\n }\n */\n export function sassFile(styles: string) {\n const lines = (styles.split('\\n'));\n return {\n stringValue: (name: string) => {\n for (let index = 0; index < lines.length; index++) {\n const l = lines[index];\n const [varName, value] = l.trim().split(':');\n if (varName === name) {\n return value.replace(';', '');\n }\n }\n },\n numberValue: (name: string): number => {\n for (let index = 0; index < lines.length; index++) {\n const l = lines[index];\n const [varName, value] = l.trim().split(':');\n if (varName === name) {\n return Number(value.replace('px', '').replace(';', ''));\n }\n }\n }\n }\n }\n}\n\n//#endregion","//#region imports\nimport { ChildProcess, StdioOptions } from 'node:child_process';\n/* */ \n/* */ \n\nimport { chalk, chokidar, config, UtilsFilesFoldersSync } from 'tnp-core/websql';\nimport {\n child_process,\n crossPlatformPath,\n fse,\n os,\n path,\n UtilsDotFile,\n UtilsOs,\n UtilsTerminal,\n} from 'tnp-core/websql';\nimport { _, CoreModels, Utils } from 'tnp-core/websql';\nimport {\n createPrinter,\n createSourceFile,\n factory,\n getLeadingCommentRanges,\n isClassDeclaration,\n isSourceFile,\n NodeArray,\n ScriptKind,\n ScriptTarget,\n SourceFile,\n Statement,\n transform,\n TransformationContext,\n visitEachChild,\n Node,\n isFunctionDeclaration,\n isVariableStatement,\n isIdentifier,\n NodeFlags,\n isEnumDeclaration,\n isTypeAliasDeclaration,\n isInterfaceDeclaration,\n isModuleDeclaration,\n isExportAssignment,\n forEachChild,\n Declaration,\n getCombinedModifierFlags,\n ModifierFlags,\n SyntaxKind,\n isVariableDeclaration,\n isCallExpression,\n isPropertyAccessExpression,\n isObjectLiteralExpression,\n isPropertyAssignment,\n isStringLiteral,\n canHaveDecorators,\n getDecorators,\n visitNode,\n isExportDeclaration,\n isImportDeclaration,\n Expression,\n isNamedImports,\n isNamedExports,\n NewLineKind,\n TransformerFactory,\n isDecorator,\n isEmptyStatement,\n isExpressionStatement,\n isPropertyDeclaration,\n isMethodDeclaration,\n} from 'typescript';\nimport type * as ts from 'typescript';\nimport { CLASS } from 'typescript-class-helpers/websql';\nimport type * as vscodeType from 'vscode';\n\nimport { Helpers } from './index';\n//#endregion\n\n//#region utils npm\nexport namespace UtilsNpm {\n //#region is special version\n export const isSpecialVersion = (version: string) => {\n return CoreModels.NpmSpecialVersions.includes(version);\n };\n //#endregion\n\n //#region clear version\n export const clearVersion = (\n version: string,\n options: {\n removePrefixes?: boolean;\n /**\n * Remove alpha, beta, rc, latest, next etc.\n */\n removeSuffix?: boolean;\n },\n ) => {\n const { removePrefixes, removeSuffix } = options || {};\n\n if (!version || isSpecialVersion(version)) {\n return version;\n }\n\n version = (version || '')\n .trim()\n .replace(new RegExp(Utils.escapeStringForRegEx('undefined'), 'g'), '0');\n\n if (removePrefixes) {\n version = version.replace('^', '').replace('~', '');\n }\n let [major, minor, patch, alphaOrBetaOrRc] = version.split('.');\n if (removeSuffix) {\n alphaOrBetaOrRc = '';\n }\n return fixMajorVerNumber(\n `${major}.${minor}.${patch}${\n alphaOrBetaOrRc ? '.' + alphaOrBetaOrRc : ''\n }`,\n );\n };\n //#endregion\n\n //#region fix major version number\n export const fixMajorVerNumber = (version: string) => {\n if (!version || isSpecialVersion(version)) {\n return version;\n }\n version = (version || '')\n .trim()\n .replace(new RegExp(Utils.escapeStringForRegEx('undefined'), 'g'), '0');\n const splited = version.split('.');\n let [major, minor, patch, alphaOrBetaOrRc] = splited;\n if (splited.length === 1) {\n minor = '0';\n patch = '0';\n } else if (splited.length === 2) {\n patch = '0';\n }\n return `${major}.${minor}.${patch}${\n alphaOrBetaOrRc ? '.' + alphaOrBetaOrRc : ''\n }`;\n };\n //#endregion\n}\n//#endregion\n\n//#region utils typescript\nexport namespace UtilsTypescript {\n //#region remove region by name\n /**\n * Remove TypeScript region blocks by their name, including nested regions.\n *\n * @param sourceCode - The TypeScript source code as a string.\n * @param regionName - The name of the region to remove.\n * @returns Modified TypeScript code without the specified regions.\n */\n export const removeRegionByName = (\n sourceCode: string,\n regionName: string,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region extract exports from a TypeScript file\n\n //#region helper function to check if a node is exported\n const isExported = (node: Node): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region exports from file\n\n export interface ExportInfo {\n type:\n | 'class'\n | 'function'\n | 'const'\n | 'let'\n | 'var'\n | 'enum'\n | 'type'\n | 'interface'\n | 'default'\n | 'module'\n | 'namespace';\n name: string;\n }\n\n /**\n * Function to extract exports from a TypeScript file\n */\n export const exportsFromFile = (filePath: string): ExportInfo[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n /**\n * Function to extract exports from a TypeScript file\n */\n export const exportsFromContent = (fileContent: string): ExportInfo[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#endregion\n\n //#region extract class names from ts file or source code\n\n export const extractDefaultClassNameFromString = (\n sourceCode: string,\n ): string | undefined => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const extractClassNameFromString = (sourceCode: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const extractClassNamesFromFile = (\n absoluteFilePath: string,\n ): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const extractDefaultClassNameFromFile = (absoluteFilePath: string) => {\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region format file(s) with prettier\n export const formatFile = (absPathToFile: string | string[]): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const formatAllFilesInsideFolder = (absPathToFolder: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region lint file(s) with eslint\n export const eslintFixFile = (absPathToFile: string | string[]): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const eslintFixAllFilesInsideFolder = (\n absPathToFolder: string | string[],\n ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region extract Taon contexts from file\n export const getTaonContextFromContent = (fileContent: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const getTaonContextsNamesFromFile = (\n tsAbsFilePath: string,\n ): string[] => {\n/* */\n/* */\n return (void 0);\n };\n\n //#endregion\n\n //#region extract selectors from Angular components class files\n export const extractAngularComponentSelectors = (\n fileAbsPath: string,\n ): { className: string; selector: string }[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region wrap one line with comment\n export const wrapWithComment = (\n oneLineComment: string,\n absDestFilePath: string,\n ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region ser or add exported variable with AST\n // Helper to check if a node has 'export' in its modifiers\n // const hasExportModifier = (\n // modifiers: ts.NodeArray<ts.Modifier> | undefined,\n // ) => {\n // return (\n // !!modifiers && modifiers.some(m => m.kind === SyntaxKind.ExportKeyword)\n // );\n // };\n\n /**\n * Attempts to set or add an exported const with given name and value.\n */\n export const setValueToVariableInTsFile = (\n tsAbsFilePath: string,\n variableName: string,\n valueOfVariable: any,\n options?: {\n skipAddIfNotExists?: boolean;\n useRawStringValue?: boolean;\n },\n ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n //#endregion\n\n //#region recognize imports from file\n\n //#region helpers / ts import export class\n export class TsImportExport {\n /**\n * for external modification\n */\n embeddedPathToFileResult: string;\n /**\n * for external modification\n */\n packageName: string;\n /**\n * for external modification\n */\n isIsomorphic?: boolean;\n\n //#region generated/readonly files\n readonly type: 'export' | 'import' | 'async-import' | 'require';\n /**\n * ORIGNAL\n * Name of the file that is being imported/exported\n * with parenthesis included , example\n * 'my-file' or \"my-file\" or `my-file`\n */\n readonly embeddedPathToFile: string;\n /**\n * same as cleanEmbeddedPathToFile but without quotes (parenthesis), example:\n * my-file or my-file or my-file\n */\n readonly cleanEmbeddedPathToFile: string;\n readonly startRow: number;\n readonly startCol: number;\n readonly endRow: number;\n readonly endCol: number;\n readonly parenthesisType: 'single' | 'double' | 'tics';\n readonly importElements: string[] = [];\n //#endregion\n\n //#region constructor\n constructor(\n type: 'export' | 'import' | 'async-import' | 'require',\n embeddedPathToFile: string,\n start: ts.LineAndCharacter,\n end: ts.LineAndCharacter,\n parenthesisType: 'single' | 'double' | 'tics',\n importElements: string[] = [],\n ) {\n this.type = type;\n this.isIsomorphic = false;\n this.embeddedPathToFile = embeddedPathToFile;\n this.cleanEmbeddedPathToFile =\n this.removeStartEndQuotes(embeddedPathToFile);\n this.embeddedPathToFileResult = embeddedPathToFile;\n this.startRow = start.line + 1; // TypeScript lines are zero-based\n this.startCol = start.character + 1;\n this.endRow = end.line + 1;\n this.endCol = end.character + 1;\n this.parenthesisType = parenthesisType;\n this.importElements = importElements;\n }\n //#endregion\n\n //#region remove quotes\n private removeStartEndQuotes(str: string): string {\n return str.replace(/^['\"`]/, '').replace(/['\"`]$/, '');\n }\n //#endregion\n\n //#region get string part\n /**\n * it will extract part of the file content\n * that is between startRow, startCol and endRow, endCol\n * and contains import/export/require statement\n */\n public getStringPartFrom(wholeContentOfFile: string): string {\n const lines = wholeContentOfFile.split('\\n');\n\n // Convert 1-based row indices to 0-based\n const startRowIndex = this.startRow - 1;\n const endRowIndex = this.endRow - 1;\n\n // Ensure indices are within bounds\n if (startRowIndex >= lines.length || endRowIndex >= lines.length) {\n throw new Error('Row index out of bounds.');\n }\n\n let extractedLines: string[] = [];\n\n for (let i = startRowIndex; i <= endRowIndex; i++) {\n let line = lines[i];\n\n if (i === startRowIndex && i === endRowIndex) {\n // Same row: extract from startCol to endCol\n extractedLines.push(line.substring(this.startCol - 1, this.endCol));\n } else if (i === startRowIndex) {\n // First row: extract from startCol to end\n extractedLines.push(line.substring(this.startCol - 1));\n } else if (i === endRowIndex) {\n // Last row: extract from beginning to endCol\n extractedLines.push(line.substring(0, this.endCol));\n } else {\n // Whole row in between\n extractedLines.push(line);\n }\n }\n\n return extractedLines.join('\\n');\n }\n //#endregion\n\n //#region wrap in current parenthesis\n public wrapInParenthesis(str: string): string {\n return this.parenthesisType === 'single'\n ? `'${str}'`\n : this.parenthesisType === 'double'\n ? `\"${str}\"`\n : `\\`${str}\\``;\n //#endregion\n }\n }\n //#endregion\n\n //#region helpers / get quote type\n const getQuoteType = (text: string): 'single' | 'double' | 'tics' => {\n //#region @websqlFunc\n if (text.startsWith('`')) return 'tics';\n if (text.startsWith(\"'\")) return 'single';\n return 'double';\n //#endregion\n };\n //#endregion\n\n const extractImportExportElements = (node: ts.Node): string[] => {\n //#region @websqlFunc\n const elements: string[] = [];\n\n if (isImportDeclaration(node) && node.importClause) {\n // Check if there are named imports inside { }\n if (\n node.importClause.namedBindings &&\n isNamedImports(node.importClause.namedBindings)\n ) {\n elements.push(\n ...node.importClause.namedBindings.elements.map(el => el.name.text),\n );\n }\n } else if (isExportDeclaration(node) && node.exportClause) {\n // Check if there are named exports inside { }\n if (isNamedExports(node.exportClause)) {\n elements.push(...node.exportClause.elements.map(el => el.name.text));\n }\n }\n\n return elements;\n //#endregion\n };\n\n export const recognizeImportsFromFile = (\n fileAbsPAth: string,\n ): TsImportExport[] => {\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const recognizeImportsFromContent = (\n fileContent: string,\n ): TsImportExport[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n /**\n * Transition methods ng18 => ng19\n * Adds standalone: false if not exists in component decorator\n */\n export function transformComponentStandaloneOption(\n sourceText: string,\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region escape @ in html text\n const escapeAtInHtmlText = (fileContent: string): string => {\n return fileContent.replace(\n />([^<@]*?)@([^<]*)</g,\n (_match, before, after) => {\n return `>${before}&#64;${after}<`;\n },\n );\n };\n\n export const fixHtmlTemplatesInDir = (directoryPath: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region remove tagged imports/exports\n export function removeTaggedImportExport(\n tsFileContent: string,\n tags: string[],\n // debug = false,\n ): string {\n const sourceFile = createSourceFile(\n 'temp.ts',\n tsFileContent,\n ScriptTarget.Latest,\n true,\n ScriptKind.TS,\n );\n // debug && console.log(tsFileContent);\n\n const lines = tsFileContent.split(/\\r?\\n/);\n const tagRegex = new RegExp(\n tags\n .map(t => (Array.isArray(t) ? t[0] : t))\n .filter(Boolean)\n .map(t => Utils.escapeStringForRegEx(t))\n .join('|'),\n 'i',\n );\n\n let a = 0;\n for (const statement of sourceFile.statements) {\n // debug && console.log('processing line ' + a++);\n if (!isImportDeclaration(statement) && !isExportDeclaration(statement)) {\n continue;\n }\n\n const start = statement.getStart();\n const end = statement.getEnd();\n\n const startLine = sourceFile.getLineAndCharacterOfPosition(start).line;\n const endLine = sourceFile.getLineAndCharacterOfPosition(end).line;\n\n // get full text including trailing comments\n const endLineText = lines[endLine]; // ← get real line content from file\n\n if (!tagRegex.test(endLineText)) continue;\n\n // debug &&\n // console.log(`\n // start: ${start}\n // end: ${end}\n // startLine: ${startLine}\n // endLine: ${endLine}\n // endLineText: >> ${endLineText} <<\n // `);\n\n // console.log('removing line ' + startLine + ' to ' + endLine);\n for (let i = startLine; i <= endLine; i++) {\n const original = lines[i];\n lines[i] = '/* */' + ' '.repeat(Math.max(0, original.length - 4));\n }\n }\n\n // debug && console.log('\\n\\n\\n\\n');\n const result = lines.join('\\n');\n // debug && console.log(result)\n return result;\n }\n //#endregion\n\n //#region wrap first imports in region\n export const wrapFirstImportsInImportsRegion = (\n fileContent: string,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region wrap entities class fields with region\n const applyEdits = (\n original: string,\n edits: { pos: number; text: string }[],\n ): string => {\n edits.sort((a, b) => b.pos - a.pos); // apply from end to start\n let result = original;\n for (const edit of edits) {\n result = result.slice(0, edit.pos) + edit.text + result.slice(edit.pos);\n }\n return result;\n };\n\n /**\n * wrap class field with decorators\n * wrap class methods with decorators\n */\n export function wrapContentClassMembersDecoratorsWithRegion(\n classFileContent: string,\n wrapTag = '@websql',\n ): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n export const clearRequireCacheRecursive = (\n modulePath: string,\n seen = new Set<string>(),\n ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export type DeepWritable<T> = {\n -readonly [P in keyof T]: T[P] extends object\n ? T[P] extends Function\n ? T[P]\n : DeepWritable<T[P]>\n : T[P];\n };\n}\n\n//#endregion\n\n//#region utils http\nexport namespace UtilsHttp {\n //#region utils http / start http server\n export const startHttpServer = async (\n cwd: string,\n port: number,\n options?: {\n startMessage?: string;\n },\n ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n}\n//#endregion\n\n//#region utils md\nexport namespace UtilsMd {\n /**\n * extract assets pathes from .md file\n */\n export const getAssets = (mdfileContent: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const getAssetsFromFile = (absPathToFile: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n /**\n * Extract links to other Markdown files from a given Markdown content.\n * @param mdfileContent\n */\n export const getLinksToOtherMdFiles = (mdfileContent: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n\n export const moveAssetsPathsToLevelFromFile = (\n absFilePath: string,\n level = 1,\n ): string | undefined => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * Move asset paths to a higher directory level by adding \"../\" before each path.\n *\n * @param mdfileContent - The content of the .md file.\n * @param level - The number of levels to go up (default is 1).\n * @returns The modified content with updated asset paths.\n */\n export const moveAssetsPathesToLevel = (\n mdfileContent: string,\n level = 1,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}\n//#endregion\n\n//#region utils quickfixes\nexport namespace UtilsQuickFixes {\n //#region replace sql-wasm.js faulty code content\n /**\n *\n * @param node_modules/sql.js/dist/sql-wasm.js\n */\n export const replaceKnownFaultyCode = (\n contentofSQLWasmJS: string,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n /**\n * for some reason electron is being bundled - and it is not needed for cli\n */\n export const replaceElectronWithNothing = (\n jsContent: string,\n packageName: string,\n ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}\n//#endregion\n\n//#region utils vscode\nexport namespace UtilsVSCode {\n export const calculateContrastingHexColor = (hex: string): string => {\n // Normalize shorthand format like \"#abc\" → \"#aabbcc\"\n if (hex.length === 4) {\n hex =\n '#' +\n hex\n .slice(1)\n .split('')\n .map(ch => ch + ch)\n .join('');\n }\n\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n\n // YIQ contrast formula\n const yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\n return yiq >= 128 ? '#000000' : '#ffffff';\n };\n\n // Convert HSL to HEX if you need HEX output\n const hslToHex = (hsl: string): string => {\n const [_, hStr, sStr, lStr] = hsl.match(/hsl\\((\\d+), (\\d+)%?, (\\d+)%?\\)/)!;\n let h = parseInt(hStr) / 360;\n let s = parseInt(sStr) / 100;\n let l = parseInt(lStr) / 100;\n\n const hue2rgb = (p: number, q: number, t: number): number => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n\n let r: number, g: number, b: number;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n const toHex = (x: number) => {\n const hex = Math.round(x * 255).toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n };\n\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n };\n export const generateFancyColor = (): string => {\n const h = Math.floor(Math.random() * 360); // full hue range\n const s = Math.floor(40 + Math.random() * 30); // 40–70% saturation\n const l = Math.floor(35 + Math.random() * 25); // 35–60% lightness\n\n return hslToHex(`hsl(${h}, ${s}%, ${l}%)`);\n };\n\n export const vscodeImport = () => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const regenerateVsCodeSettingsColors = (\n cwd: string,\n overideBottomColor?: string,\n ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}\n\n//#endregion\n\n//#region utils zip browser\nexport namespace UtilsZipBrowser {\n // <input type=\"file\" id=\"folderInput\" webkitdirectory />\n // ts\n // Copy\n // Edit\n // document.getElementById('folderInput').addEventListener('change', async (e) => {\n // const input = e.target as HTMLInputElement;\n // if (input.files) {\n // const zipBlob = await zipDirBrowser(input.files);\n // // Save the zip using FileSaver.js or URL.createObjectURL\n // const url = URL.createObjectURL(zipBlob);\n // const a = document.createElement('a');\n // a.href = url;\n // a.download = 'folder.zip';\n // a.click();\n // URL.revokeObjectURL(url);\n // }\n // });\n\n // import JSZip from 'jszip';\n\n // <input type=\"file\" id=\"zipInput\" />\n // ts\n // Copy\n // Edit\n // document.getElementById('zipInput').addEventListener('change', async (e) => {\n // const input = e.target as HTMLInputElement;\n // if (input.files?.[0]) {\n // const entries = await unzipArchiveBrowser(input.files[0]);\n // for (const [name, blob] of entries) {\n // console.log(`Extracted file: ${name}`, blob);\n // }\n // }\n // });\n export const zipDirBrowser = async (fileList: FileList): Promise<Blob> => {\n // const zip = new JSZip();\n\n // for (const file of Array.from(fileList)) {\n // const relativePath = (file as any).webkitRelativePath || file.name;\n // zip.file(relativePath, file);\n // }\n\n // return zip.generateAsync({ type: 'blob' });\n return void 0;\n };\n\n export const unzipArchiveBrowser = async (\n zipBlob: Blob,\n ): Promise<Map<string, Blob>> => {\n // const zip = await JSZip.loadAsync(zipBlob);\n // const files = new Map<string, Blob>();\n\n // for (const [filePath, fileObj] of Object.entries(zip.files)) {\n // if (!fileObj.dir) {\n // const content = await fileObj.async('blob');\n // files.set(filePath, content);\n // }\n // }\n\n // return files;\n return void 0;\n };\n}\n//#endregion\n\n//#region utils zip node\nexport namespace UtilsZip {\n //#region split zip file\n\n export const splitFile7Zip = async (\n inputPath: string,\n partSizeMB = 99,\n ): Promise<number> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n /**\n * Splits a file into smaller parts if its size exceeds the specified part size.\n * @returns true if file was split, false if not needed\n */\n export const splitFile = async (\n inputPath: string,\n partSizeMB = 99,\n ): Promise<number> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n /**\n * @returns absolute path to zip file\n */\n export const zipDir = async (\n absPathToDir: string,\n options?: {\n /**\n * default false\n */\n overrideIfZipFileExists?: boolean;\n },\n ): Promise<string> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n // Unzip: `/some/path/folder.zip` → `/some/path/folder`\n export const unzipArchive = async (absPathToZip: string): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}\n//#endregion\n\n//#region utils worker\nexport namespace UtilsTaonWorker {\n export const getUniqueForTask = (\n task: string,\n location: string | string[],\n ): string => {\n if (!location) {\n throw new Error(\n '[UtilsTaonWorker.getUniqueForTask()] Location must be provided',\n );\n }\n if (!task) {\n throw new Error(\n '[UtilsTaonWorker.getUniqueForTask()] Task must be provided',\n );\n }\n location = crossPlatformPath(location);\n return `task(${task?.trim()}) in ${location}`?.trim();\n };\n}\n//#endregion\n\n//#region utils java\nexport namespace UtilsJava {\n //#region select jdk version\n export const selectJdkVersion = async (): Promise<string | undefined> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n export const detectJavaVersionMacOS = (javaHome: string): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n //#region update java home path\n export const updateJavaHomePath = (selectedPath: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region api methods / selectTomcatVersion\n export const selectTomcatVersion = async (): Promise<string> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region update tomcat home path\n export const updateTomcatHomePath = (selectedPath: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n}\n\n//#endregion\n\n//#region utils passwords\nexport namespace UtilsPasswords {\n //#region hash password\n export const hashPassword = (password: string): Promise<string> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region verify password\n export const verifyPassword = (\n password: string,\n stored: string,\n ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n // Example\n // (async () => {\n // const hash = await hashPassword('super-secret');\n // console.log('stored:', hash);\n\n // const ok = await verifyPassword('super-secret', hash);\n // console.log('valid?', ok);\n // })();\n}\n//#endregion\n\n//#region utils docker\nexport namespace UtilsDocker {\n //#region utils docker / constants\n const DOCKER_TAON_PROJECT_LABEL_KEY = 'com.docker.compose.taon.project'; // change to your app name\n\n const DOCKER_TAON_PROJECT_LABEL_VALUE = 'true'; // change to your app name\n\n export const DOCKER_LABEL_KEY = 'com.docker.compose.project'; // change to your app name\n export const DOCKER_TAON_PROJECT_LABEL = `${DOCKER_TAON_PROJECT_LABEL_KEY}=${DOCKER_TAON_PROJECT_LABEL_VALUE}`;\n //#endregion\n\n //#region utils docker / clean images by docker label\n export const cleanImagesAndContainersByDockerLabel = async (\n labelKey: string,\n labelValue: string,\n ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region utils docker / models\n export interface DockerComposeActionOptions {\n composeFileName?: string;\n cwd?: string;\n env?: NodeJS.ProcessEnv;\n skipBuild?: boolean;\n stdio?: StdioOptions;\n useFirstYmlFound?: boolean;\n }\n\n export type DockerComposeActionType = 'up' | 'down';\n //#endregion\n\n //#region utils docker / get docker compose up/down command\n /**\n * @returns cmd + args array\n * you can use with child_process.spawn\n * const [cmd, ...args] = getDockerComposeActionCommand('up');\n * child.spawn(cmd, args, { ... });\n *\n * @param action 'up' | 'down'\n */\n export const getDockerComposeActionCommand = (\n action: DockerComposeActionType,\n options?: Omit<\n DockerComposeActionOptions,\n 'cwd' | 'env' | 'stdio' | 'useFirstYmlFound'\n >,\n ): string[] => {\n options = options || {};\n options.skipBuild = !!options?.skipBuild;\n\n const composeFileName = options?.composeFileName || 'docker-compose.yml';\n\n return ['docker', 'compose', '-f', composeFileName].concat(\n action === 'up'\n ? options.skipBuild\n ? ['up']\n : ['up', '--build']\n : ['down'],\n );\n };\n //#endregion\n\n //#region utils docker / get docker compose up/down child process\n export const getDockerComposeActionChildProcess = (\n action: DockerComposeActionType,\n options?: DockerComposeActionOptions,\n ): ChildProcess => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region utils docker / remove all taon containers and images from docker\n export const removeAllTaonContainersAndImagesFromDocker =\n async (): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region utils docker / link podman as docker if necessary\n /**\n * @TODO @REFACTOR use async stuff\n */\n export const linkPodmanAsDockerIfNecessary = async (): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n}\n//#endregion\n\n//#region utils file sync\n/**\n * ! TODO @IN_PROGRESS @LAST\n */\nexport namespace UtilsFileSync {\n //#region constants\n // ───── SAFETY SETTINGS ─────────────────────────────\n // Minimum realistic photo/video size (in bytes) before we even try\n const MIN_PHOTO_SIZE = 50_000; // ~50 KB — anything smaller is probably placeholder\n const MIN_VIDEO_SIZE = 500_000; // ~500 KB\n\n // How long we wait after the file stops growing before processing\n const STABILIZATION_MS = 5000; // 5 seconds is bulletproof\n\n/* */\n/* */\n \n //#endregion\n\n //#region models\n interface FoldersSyncOptions {\n androidFolder: string;\n macPhotosLibrary: string;\n tempConvertFolder: string;\n /**\n * If true, skips the terminal menu confirmation on startup\n * (default: false) - perfect for automated scripts\n */\n skipTerminalMenu?: boolean;\n /**\n * for testing purposes only\n */\n onlyProcessFiles?: string[]; // optional list of filenames to only process (for testing)\n }\n\n interface WacherData extends FoldersSyncOptions {\n processed: Set<string>;\n pending: Map<string, NodeJS.Timeout>;\n }\n //#endregion\n\n //#region for folders\n export const forFolders = async (\n folder: FoldersSyncOptions,\n ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n\n //#region is hevc\n async function isHevc(file: string): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region safe process\n const safeProcess = async (\n filePath: string,\n wacherData?: WacherData,\n ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n //#endregion\n}","import { _, Utils } from 'tnp-core/websql';\nimport * as fuzzy from 'fuzzy';\n\nexport class HelpersArrayObj {\n from(s: string | string[]): string[] {\n if (_.isArray(s)) {\n return s;\n }\n if (_.isString(s)) {\n return s.split(' ');\n }\n }\n\n second(arr) {\n if (!Array.isArray(arr) || arr.length < 2) {\n return void 0;\n }\n return arr[1];\n }\n\n /**\n * @deprecated\n * use moveObjectBefore\n */\n arrayMoveElementBefore<T = any>(arr: any[], a: any, b: any, prop?: keyof T) {\n let indexA = prop\n ? arr.findIndex(elem => elem[prop] === a[prop])\n : arr.indexOf(a);\n _.pullAt(arr, indexA);\n let indexB = prop\n ? arr.findIndex(elem => elem[prop] === b[prop])\n : arr.indexOf(b);\n if (indexB === 0) {\n arr.unshift(a);\n } else {\n arr.splice(indexB - 1, 0, a);\n }\n return arr;\n }\n\n /**\n * @deprecated\n * use moveObjectAfter\n */\n arrayMoveElementAfterB<T = any>(arr: any[], a: any, b: any, prop?: keyof T) {\n let indexA = prop\n ? arr.findIndex(elem => elem[prop] === a[prop])\n : arr.indexOf(a);\n _.pullAt(arr, indexA);\n let indexB = prop\n ? arr.findIndex(elem => elem[prop] === b[prop])\n : arr.indexOf(b);\n if (indexB === arr.length - 1) {\n arr.push(a);\n } else {\n arr.splice(indexB + 1, 0, a);\n }\n return arr;\n }\n\n moveObjectBefore<T = any>(array: T[], target: T, before: T): T[] {\n const newArray = [...array];\n const targetIndex = newArray.findIndex(item => item === target);\n const beforeIndex = newArray.findIndex(item => item === before);\n\n if (targetIndex === -1 || beforeIndex === -1) {\n // Handle the case when either the target or before object is not found in the array\n console.error('Target or Before object not found in the array');\n return newArray;\n }\n\n // Remove the target object from its current position\n newArray.splice(targetIndex, 1);\n\n // Insert the target object before the before object\n newArray.splice(beforeIndex, 0, target);\n\n return newArray;\n }\n\n moveObjectAfter<T = any>(array: T[], target: T, after: T): T[] {\n const newArray = [...array];\n const targetIndex = newArray.findIndex(item => item === target);\n const afterIndex = newArray.findIndex(item => item === after);\n\n if (targetIndex === -1 || afterIndex === -1) {\n // Handle the case when either the target or after object is not found in the array\n console.error('Target or After object not found in the array');\n return newArray;\n }\n\n // Remove the target object from its current position\n newArray.splice(targetIndex, 1);\n\n // Insert the target object after the after object\n newArray.splice(afterIndex + 1, 0, target);\n\n return newArray;\n }\n\n /**\n * @deprecated use Utils.uniqArray from tnp-core\n */\n uniqArray<T = any>(array: any[], uniqueProperty?: keyof T) {\n return Utils.uniqArray(array, uniqueProperty);\n }\n\n /**\n * @deprecated use Utils.uniqArray from tnp-core\n */\n sortKeys(obj) {\n return Utils.sortKeys(obj);\n }\n\n /**\n * Fuzzy search\n */\n fuzzy<T = any>(\n query: string,\n list: T[],\n valueFn?: (modelFromList: T) => string,\n ) {\n // console.log('fuzzy search', query, list, valueFn)\n const resultsFuzzy = fuzzy.filter(\n query,\n list.map(k => (valueFn ? valueFn(k) : k)),\n );\n const resultsFuzzyKebab = fuzzy.filter(\n _.kebabCase(query),\n list.map(k => _.kebabCase((valueFn ? valueFn(k) : k) as any)),\n );\n const matches = resultsFuzzy.map(el => el.string);\n const matchesKebab = resultsFuzzyKebab.map(el => el.string);\n\n const results =\n resultsFuzzy.length === 0\n ? []\n : list.filter(k => {\n return matches.includes((valueFn ? valueFn(k) : k) as any);\n });\n\n if (matches.length === 0 && matchesKebab.length > 0) {\n const m = list.find(\n k =>\n _.kebabCase((valueFn ? valueFn(k) : k) as any) ===\n _.first(matchesKebab),\n );\n results.push(m);\n matches.push((valueFn ? valueFn(m) : m) as any);\n }\n\n return { matches, results };\n }\n}","import { Utils, _ } from 'tnp-core/websql';\nexport class HelpersStringsRegexes {\n\n\n\n escapeStringForRegEx(s: string) {\n return Utils.escapeStringForRegEx(s);\n }\n\n matchExactOnce(s: string, regex: RegExp): string {\n if (!_.isString(s) || !_.isRegExp(regex)) {\n return void 0;\n }\n const result = s.match(regex);\n if (_.isNil(result)) {\n return void 0;\n }\n return result.length >= 1 ? _.first(result) : void 0;\n }\n\n get regex() {\n return {\n /**\n * mathes\n * xxx.xxx.xxx.xxx\n * xxx.xxx.xxx.xxx:port\n * http://xxx.xxx.xxx.xxx:port\n * http://xxx.xxx.xxx.xxx\n * https://xxx.xxx.xxx.xxx:port\n * https://xxx.xxx.xxx.xxx *\n */\n get forStringWithIpHost() {\n const regex = /(http(s)?\\:\\/\\/)?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\:[0-9]+)?/;\n return regex;\n },\n /**\n * mathes\n * http://domain.com:port\n * http://domain.com\n * http://domain:port\n * http://domain\n * https://domain.com:port\n * https://domain.com\n * https://domain:port\n * https://domain\n */\n get forStringWithDomainHost() {\n const regex = /(((http(s)?\\:\\/\\/)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\\.[a-zA-Z]{2,})+(\\:[0-9]+)?)|((http(s)?\\:\\/\\/)[a-zA-Z0-9-]{1,61}))/;\n return regex;\n }\n }\n }\n}","import { _ } from 'tnp-core/websql';\nimport { Helpers } from '../index';\n\nexport class HelpersStrings {\n\n /**\n * Example:\n *\n * const result = interpolateString(\"I'm {age} years old!\")\n * .withParameters({ age: 29 });\n *\n * const result = interpolateString(\"The {a} says {n}, {n}, {n}!\")\n * .withParameters({ a: 'cow', n: 'moo' });\n *\n *\n * @param value string to interpolate\n * @param parameters object with parametes\n */\n interpolateString<T = any>(value: string) {\n if (typeof value !== 'string') {\n Helpers.warn('[taon-heleprs] Value for interpolation is not string: ', value);\n return value;\n }\n\n return {\n withParameters(parameters: T) {\n if (typeof parameters !== 'object') {\n Helpers.log(parameters as any);\n Helpers.warn('[taon-heleprs] Parameters are not a object: ');\n return value;\n }\n return value.replace(/{([^{}]*)}/g, function (a, b) {\n var r = parameters[b];\n return typeof r === 'string' || typeof r === 'number' ? r : a;\n } as any);\n }\n }\n\n }\n\n /**\n *\n * @param pixelsCss exmaple: 100px\n * @returns number value\n */\n numValue(pixelsCss: string) {\n // tslint:disable-next-line:radix\n return parseInt(pixelsCss.replace('px', ''));\n }\n\n /**\n * examples:\n * 'aa bb bb' => ['aa','bb','cc'],\n * 'aa' => ['aa']\n * ['aa'] => ['aa']\n */\n splitIfNeed(stringOrArr: string | string[]): string[] {\n let res = [];\n if (_.isArray(stringOrArr)) {\n res = stringOrArr.map(s => {\n return s.trim();\n })\n }\n if (_.isString(stringOrArr)) {\n res = stringOrArr.split(/\\s*[\\s,]\\s*/);\n }\n return res.filter(f => !!f && (f.trim() !== ''));\n }\n\n removeDoubleOrMoreEmptyLines(s: string) {\n s = s?.split('\\n').map(f => f.trimRight()).join('\\n');\n return s?.replace(/(\\r\\n|\\r|\\n){2,}/g, '$1\\n');\n }\n\n /**\n *\n * https://stackoverflow.com/a/57129703/1345101\n *\n * Returns the plural of an English word.\n *\n * @export\n * @param {string} word\n * @param {number} [amount]\n * @returns {string}\n */\n plural(word: string, amount?: number): string {\n if (amount !== undefined && amount === 1) {\n return word\n }\n const plural: { [key: string]: string } = {\n '(quiz)$': \"$1zes\",\n '^(ox)$': \"$1en\",\n '([m|l])ouse$': \"$1ice\",\n '(matr|vert|ind)ix|ex$': \"$1ices\",\n '(x|ch|ss|sh)$': \"$1es\",\n '([^aeiouy]|qu)y$': \"$1ies\",\n '(hive)$': \"$1s\",\n '(?:([^f])fe|([lr])f)$': \"$1$2ves\",\n '(shea|lea|loa|thie)f$': \"$1ves\",\n 'sis$': \"ses\",\n '([ti])um$': \"$1a\",\n '(tomat|potat|ech|her|vet)o$': \"$1oes\",\n '(bu)s$': \"$1ses\",\n '(alias)$': \"$1es\",\n '(octop)us$': \"$1i\",\n '(ax|test)is$': \"$1es\",\n '(us)$': \"$1es\",\n '([^s]+)$': \"$1s\"\n }\n const irregular: { [key: string]: string } = {\n 'move': 'moves',\n 'foot': 'feet',\n 'goose': 'geese',\n 'sex': 'sexes',\n 'child': 'children',\n 'man': 'men',\n 'tooth': 'teeth',\n 'person': 'people'\n }\n const uncountable: string[] = [\n 'sheep',\n 'fish',\n 'deer',\n 'moose',\n 'series',\n 'species',\n 'money',\n 'rice',\n 'information',\n 'equipment',\n 'bison',\n 'cod',\n 'offspring',\n 'pike',\n 'salmon',\n 'shrimp',\n 'swine',\n 'trout',\n 'aircraft',\n 'hovercraft',\n 'spacecraft',\n 'sugar',\n 'tuna',\n 'you',\n 'wood'\n ]\n // save some time in the case that singular and plural are the same\n if (uncountable.indexOf(word.toLowerCase()) >= 0) {\n return word\n }\n // check for irregular forms\n for (const w in irregular) {\n const pattern = new RegExp(`${w}$`, 'i')\n const replace = irregular[w]\n if (pattern.test(word)) {\n return word.replace(pattern, replace)\n }\n }\n // check for matches using regular expressions\n for (const reg in plural) {\n const pattern = new RegExp(reg, 'i')\n if (pattern.test(word)) {\n return word.replace(pattern, plural[reg])\n }\n }\n return word\n }\n\n\n /**\n * https://stackoverflow.com/a/57129703/1345101\n *\n * Returns the singular of an English word.\n *\n * @export\n * @param {string} word\n * @param {number} [amount]\n * @returns {string}\n */\n singular(word: string, amount?: number): string {\n if (amount !== undefined && amount !== 1) {\n return word\n }\n const singular: { [key: string]: string } = {\n '(quiz)zes$': \"$1\",\n '(matr)ices$': \"$1ix\",\n '(vert|ind)ices$': \"$1ex\",\n '^(ox)en$': \"$1\",\n '(alias)es$': \"$1\",\n '(octop|vir)i$': \"$1us\",\n '(cris|ax|test)es$': \"$1is\",\n '(shoe)s$': \"$1\",\n '(o)es$': \"$1\",\n '(bus)es$': \"$1\",\n '([m|l])ice$': \"$1ouse\",\n '(x|ch|ss|sh)es$': \"$1\",\n '(m)ovies$': \"$1ovie\",\n '(s)eries$': \"$1eries\",\n '([^aeiouy]|qu)ies$': \"$1y\",\n '([lr])ves$': \"$1f\",\n '(tive)s$': \"$1\",\n '(hive)s$': \"$1\",\n '(li|wi|kni)ves$': \"$1fe\",\n '(shea|loa|lea|thie)ves$': \"$1f\",\n '(^analy)ses$': \"$1sis\",\n '((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$': \"$1$2sis\",\n '([ti])a$': \"$1um\",\n '(n)ews$': \"$1ews\",\n '(h|bl)ouses$': \"$1ouse\",\n '(corpse)s$': \"$1\",\n '(us)es$': \"$1\",\n 's$': \"\"\n }\n const irregular: { [key: string]: string } = {\n 'move': 'moves',\n 'foot': 'feet',\n 'goose': 'geese',\n 'sex': 'sexes',\n 'child': 'children',\n 'man': 'men',\n 'tooth': 'teeth',\n 'person': 'people'\n }\n const uncountable: string[] = [\n 'sheep',\n 'fish',\n 'deer',\n 'moose',\n 'series',\n 'species',\n 'money',\n 'rice',\n 'information',\n 'equipment',\n 'bison',\n 'cod',\n 'offspring',\n 'pike',\n 'salmon',\n 'shrimp',\n 'swine',\n 'trout',\n 'aircraft',\n 'hovercraft',\n 'spacecraft',\n 'sugar',\n 'tuna',\n 'you',\n 'wood'\n ]\n // save some time in the case that singular and plural are the same\n if (uncountable.indexOf(word.toLowerCase()) >= 0) {\n return word\n }\n // check for irregular forms\n for (const w in irregular) {\n const pattern = new RegExp(`${irregular[w]}$`, 'i')\n const replace = w\n if (pattern.test(word)) {\n return word.replace(pattern, replace)\n }\n }\n // check for matches using regular expressions\n for (const reg in singular) {\n const pattern = new RegExp(reg, 'i')\n if (pattern.test(word)) {\n return word.replace(pattern, singular[reg])\n }\n }\n return word\n }\n\n}","//#region imports\nimport { exec } from 'child_process';\nimport type { ChildProcess } from 'child_process';\n\nimport * as spawn from 'cross-spawn';\nimport * as dateformat from 'dateformat';\nimport * as fuzzy from 'fuzzy';\nimport { Log, Level } from 'ng2-logger/websql';\nimport { config } from 'tnp-core/websql';\nimport {\n _,\n os,\n path,\n fse,\n child_process,\n fkill,\n crossPlatformPath,\n chalk,\n} from 'tnp-core/websql';\nimport { CLI, UtilsProcess, UtilsTerminal } from 'tnp-core/websql';\nimport { CLASS } from 'typescript-class-helpers/websql';\n\nimport type { BaseProject } from '../../index';\nimport { Helpers } from '../../index';\n\n//#endregion\n\nexport class HelpersProcess {\n //#region restart application itself\n async restartApplicationItself(nameOfApp: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region os is macos\n osIsMacOs(versino: 'big-sur' | 'catalina') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region generate file wrap\n generatedFileWrap(content: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region change cwd wrapper\n async changeCwdWrapper(\n dir: string,\n functionToExecure: Function,\n logLevel: Level = Level.__NOTHING,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region change cwd\n changeCwd(dir?: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region go to dir\n /**\n * // TODO refactor this\n * @deprecated\n */\n goToDir(dir = '..') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region press key or wait\n async pressKeyOrWait(\n message = 'Press enter try again',\n printWaitMessages = 0,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region press key and continue\n /**\n * @deprecated use UtilsTerminal.pressAnyKey\n */\n pressKeyAndContinue(message = 'Press enter to continue..') {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region list\n /**\n * @deprecated use UtilsTerminal.multiselect\n */\n async list<T = string>(\n question: string,\n choices:\n | { name: string; value: T }[]\n | { [choice: string]: { name: string } },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region multiple choices ask\n /**\n * @deprecated use UtilsTerminal.multiselect\n */\n async multipleChoicesAsk(\n question: string,\n choices: { name: string; value: string }[],\n autocomplete: boolean = false,\n selected?: { name: string; value: string }[],\n ): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region input\n /**\n * @deprecated use UtilsTerminal.input\n */\n async input(options: {\n defaultValue?: string;\n question: string;\n // required?: boolean;\n validate?: (value: string) => boolean;\n }): Promise<string> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region select\n /**\n * @deprecated use UtilsTerminal.multiselect\n * TODO wierd problem when pressing key like \"i\"\n */\n async selectChoicesAsk<T = string>(\n question: string,\n choices:\n | { name: string; value: T }[]\n | { [choice: string]: { name: string } },\n ): Promise<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region autocomplete ask\n async autocompleteAsk<T = string>(\n question: string,\n choices: { name: string; value: T }[],\n pageSize = 10,\n ): Promise<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get working dir of process\n getWorkingDirOfProcess(PID: number) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region output to vscode\n outputToVScode(\n data: { label: string; option: string }[] | string,\n disableEncode = false,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region action wrapper\n async actionWrapper(fn: () => void, taskName: string = 'Task') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region terminal line\n terminalLine() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region kill all node except current process\n /**\n * THIS DEOS NOT WORK !\n * ! TOOD FIX THIS\n */\n async killAllNodeExceptCurrentProcess() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region kill all node\n killAllNode() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region format path\n formatPath(pathToFileOrFolder: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region prepare wathc command\n /**\n * @deprecated\n */\n prepareWatchCommand(cmd) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get string from\n /**\n * @deprecated\n */\n getStringFrom(command: string, descriptionOfCommand?: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region wait for message in stdout\n async waitForMessegeInStdout(proc: ChildProcess, message: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import * as crypto from 'crypto';\nimport { promisify } from 'util';\n\nimport type { CopyOptionsSync } from 'fs-extra';\nimport * as glob from 'glob';\nimport { config, extAllowedToReplace } from 'tnp-core/websql';\nimport {\n _,\n path,\n fse,\n os,\n rimraf,\n crossPlatformPath,\n json5,\n child_process,\n UtilsOs,\n} from 'tnp-core/websql';\nimport * as underscore from 'underscore';\n\nimport { Helpers } from '../../index';\n\ndeclare const global: any;\n\nexport interface GetRecrusiveFilesFromOptions {\n // withNameOnly?: string; // TODO\n}\n\nexport class HelpersFileFolders {\n /**\n * Calculate file or string checksum\n */\n checksum(absolutePathToFileOrContent: string, algorithm?: 'md5' | 'sha1') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getValueFromJSON(\n filepath: string,\n lodashGetPath: string,\n defaultValue = void 0,\n ): any {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getValueFromJSONC(\n filepath: string,\n lodashGetPath: string,\n defaultValue = void 0,\n ): any {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n readValueFromJson(\n filepath: string,\n lodashGetPath: string,\n defaultValue = void 0,\n ): any {\n/* */\n/* */\n return (void 0);\n }\n\n readValueFromJsonC(\n filepath: string,\n lodashGetPath: string,\n defaultValue = void 0,\n ): any {\n/* */\n/* */\n return (void 0);\n }\n\n setValueToJSON(\n filepath: string | string[],\n lodashGetPath: string,\n value: any,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n setValueToJSONC(filepath: string, lodashGetPath: string, value: any): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * file size in bytes\n */\n size(filePath: string): number {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n pathFromLink(filePath: string): string {\n/* */\n/* */\n return (void 0);\n }\n\n // renameFolder(from: string, to: string, cwd?: string) {\n // // const command = `mv ${from} ${to}`;\n // const command = `renamer --find ${from} --replace ${to} *`;\n // Helpers.run(command, { cwd }).sync()\n // }\n\n /**\n * @deprecated\n */\n renameFolder(from: string, to: string, cwd?: string): void {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n */\n renameFiles(from: string, to: string, cwd?: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getTempFolder() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n // createMultiplatformLink(target: string, link: string) {\n\n // if (this.isPlainFileOrFolder(link)) {\n // link = path.join(process.cwd(), link);\n // }\n\n // let command: string;\n // if (os.platform() === 'win32') {\n\n // if (target.startsWith('./')) {\n // target = path.win32.normalize(path.join(process.cwd(), path.basename(target)))\n // } else {\n // if (target === '.' || target === './') {\n // target = path.win32.normalize(path.join(process.cwd(), path.basename(link)))\n // } else {\n // target = path.win32.normalize(path.join(target, path.basename(link)))\n // }\n // }\n // if (fse.existsSync(target)) {\n // fse.unlinkSync(target);\n // }\n // target = path.win32.normalize(target)\n // if (link === '.' || link === './') {\n // link = process.cwd()\n // }\n // link = path.win32.normalize(link);\n // // if (path.resolve(target) === path.resolve(link)) { // TODO\n // // Helpers.warn(`[createMultiplatformLink][win32] Trying to link same location`);\n // // return;\n // // }\n // command = \"mklink \\/D \"\n // + target\n // + \" \"\n // + link\n // + \" >nul 2>&1 \"\n // } else {\n // if (target.startsWith('./')) {\n // target = target.replace(/^\\.\\//g, '');\n // }\n // if (link === '.' || link === './') {\n // link = process.cwd()\n // }\n // if (path.resolve(target) === path.resolve(link)) {\n // Helpers.warn(`[createMultiplatformLink] Trying to link same location`);\n // return;\n // }\n // command = `ln -sf \"${link}\" \"${target}\"`;\n // }\n // child_process.execSync(command);\n // }\n\n isPlainFileOrFolder(filePath: string): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n * use import (or modules only on backend)\n */\n requireUncached(module: string): any {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n * use import (or modules only on backend)\n *\n * get default export object from js file\n * @param jsFilePath\n */\n require(jsFilePath: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n tryRecreateDir(dirpath: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n */\n tryCopyFrom(source: string, destination: string, options = {}): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n // private deleteFolderRecursive = (pathToFolder) => {\n // if (fs.existsSync(pathToFolder)) {\n // fs.readdirSync(pathToFolder).forEach((file, index) => {\n // const curPath = path.join(pathToFolder, file);\n // if (fs.lstatSync(curPath).isDirectory()) { // recurse\n // this.deleteFolderRecursive(curPath);\n // } else { // delete file\n // fs.unlinkSync(curPath);\n // }\n // });\n // fs.rmdirSync(pathToFolder);\n // }\n // };\n\n move(\n from: string,\n to: string,\n options?: {\n purpose?: string; // for logging purposes\n },\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n findChildren<T>(\n location: string,\n createFn: (childLocation: string) => T,\n options?: { allowAllNames: boolean },\n ): T[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n */\n findChildrenNavi<T>(\n location: string,\n createFn: (childLocation: string) => T,\n ): T[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * get all files from folder\n * absolute paths\n */\n getRecrusiveFilesFrom(\n dir: string,\n ommitFolders: string[] = [],\n options?: GetRecrusiveFilesFromOptions,\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n checkIfNameAllowedForTaonProj(folderName: string): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getLinesFromFiles(filename: string, lineCount?: number): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * Get the most recent changes file in direcory\n * @param dir absoulute path to file\n */\n getMostRecentFileName(dir: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n getMostRecentFilesNames(dir: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n removeExcept(fromPath: string, exceptFolderAndFiles: string[]): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * Copy folder using os native command\n * (perfect for large folders/files)\n */\n async copyFolderOsNative(\n from: string,\n to: string,\n options?: {\n removeDestination?: boolean;\n },\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n copy(\n sourceDir: string | string[],\n destinationDir: string | string[],\n options?: {\n filter?: any;\n overwrite?: boolean;\n recursive?: boolean;\n asSeparatedFiles?: boolean;\n asSeparatedFilesAllowNotCopied?: boolean;\n asSeparatedFilesSymlinkAsFile?: boolean;\n /**\n * folders to omit: example: ['src','node_modules']\n *\n * This option works only with omitFoldersBaseFolder\n */\n omitFolders?: string[];\n /**\n * absolute path for base folder for omitFolder option\n */\n omitFoldersBaseFolder?: string;\n copySymlinksAsFiles?: boolean;\n copySymlinksAsFilesDeleteUnexistedLinksFromSourceFirst?: boolean;\n useTempFolder?: boolean;\n dontAskOnError?: boolean;\n } & CopyOptionsSync,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n filterDontCopy(basePathFoldersTosSkip: string[], projectOrBasepath: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n filterOnlyCopy(\n basePathFoldersOnlyToInclude: string[],\n projectOrBasepath: string,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n copyFile(\n sourcePath: string | string[],\n destinationPath: string | string[],\n options?: {\n transformTextFn?: (input: string) => string;\n debugMode?: boolean;\n fast?: boolean;\n dontCopySameContent?: boolean;\n },\n ): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * get real absolute path\n */\n resolve(fileOrFolderPath: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","export class HelpersNumber {\n /**\n * @deprecated\n * use _.random()\n */\n randomInteger = (max, min) => Math.round(Math.random() * (max - min)) + min;\n\n\n}","// session tab it\n// realtime session\n\nconst key = Symbol('[taon-helpers] helper browser key')\n\nexport class HelpersBrowser {\n\n private static callbacks = [];\n static onInit(callback: (ins: HelpersBrowser) => any) {\n this.callbacks.push(callback);\n }\n\n get win() {\n let win = window;\n return win;\n }\n\n private get tabIdSessionStorage() {\n return Number(this.win.sessionStorage?.tabId) || 0;\n }\n\n readonly tabId: number;\n\n private static inst: HelpersBrowser;\n init = (() => {\n const win = this.win;\n\n if (!win[key]) {\n win[key] = new HelpersBrowser(win);\n }\n HelpersBrowser.inst = win[key];\n })();\n\n private constructor(win: Window) {\n //#region @browser\n win.addEventListener(\"beforeunload\", (e) => {\n win.sessionStorage.tabId = this.tabId;\n return null;\n });\n\n setTimeout(() => {\n\n if (win.sessionStorage?.tabId) {\n // @ts-ignore\n this.tabId = Number(win.sessionStorage.tabId);\n win.sessionStorage.removeItem(\"tabId\");\n }\n else {\n // @ts-ignore\n this.tabId = Math.floor(Math.random() * 1000000) + (new Date()).getTime();\n }\n HelpersBrowser.callbacks.forEach((c) => {\n c(this);\n });\n })\n\n //#endregion\n }\n\n\n static get instance() {\n return HelpersBrowser.inst;\n }\n\n}","//#region imports\nimport { _, path, Utils, UtilsNetwork } from 'tnp-core/websql';\nimport { HelpersArrayObj } from './helpers-array-obj';\nimport { HelpersStringsRegexes } from './helpers-strings-regexes';\nimport { HelpersStrings } from './helpers-strings';\nimport { HelpersProcess } from './for-backend/helpers-process';\nimport { HelpersFileFolders } from './for-backend/helpers-file-folders';\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \nimport { config } from 'tnp-core/websql';\nimport { Helpers, UtilsQuickFixes } from '../index';\nimport { CLASS } from 'typescript-class-helpers/websql';\nimport { CoreHelpers, CoreModels } from 'tnp-core/websql';\nimport { HelpersNumber } from './helpers-numbers';\n//#region @browser\nimport { HelpersBrowser } from './for-browser/helpers-browser';\nimport { HelpersAngular } from './for-browser/angular.helper';\n//#endregion\n//#endregion\n\n//#region class mixing helper\n/**\n * Mixing for multiclass inheritance\n *\n * How to use It:\n *\n * class Wolverine {}\n * class Jean {}\n * export class Child {}\n * export interface MyChild implements Wolverine, Jean {}\n * applyMixing(Child,[Wolverine, Jean]);\n *\n * @param derivedCtor Target Class\n * @param baseCtors Base Classes\n */\nexport function applyMixins(derivedCtor: any, baseCtors: any[]) {\n baseCtors.forEach(baseCtor => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype, name),\n );\n });\n });\n}\n//#endregion\n\nexport class HelpersTaon extends CoreHelpers {\n //#region staic\n private static _instance: HelpersTaon & CoreHelpers;\n public static get Instance(): HelpersTaon {\n if (!HelpersTaon._instance) {\n HelpersTaon._instance = new HelpersTaon();\n }\n return HelpersTaon._instance;\n }\n //#endregion\n\n //#region constructor\n private constructor(\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n public arrays = new HelpersArrayObj(),\n public strings = new HelpersStrings(),\n public numbers = new HelpersNumber(),\n //#region @browser\n public browser = HelpersBrowser.instance,\n public ng = HelpersAngular,\n //#endregion\n ) {\n super();\n }\n //#endregion\n\n //#region methods & getters / cli wrap\n CLIWRAP(f: Function, name: string) {\n CLASS.setName(f, name);\n return f;\n }\n //#endregion\n\n //#region methods & getters / uniqArray\n /**\n * Bundle file with node_modules into one file\n * default strategy is cli\n * Please keep: 'ts-node', 'typescript' as dependency in your package.json\n */\n async bundleCodeIntoSingleFile(\n pathToJsFile: string,\n outputFilePath: string,\n options?: {\n strategy?: 'cli' | 'vscode-ext' | 'node-app' | 'electron-app';\n /**\n * ! beforeWrite needs to return output\n */\n beforeWrite?: (options: {\n output?: string;\n copyToDestination?: (fileOrFolderAbsPath: string) => void;\n }) => string;\n additionalExternals?: string[];\n additionalReplaceWithNothing?: string[];\n skipFixingSQLlite?: boolean;\n minify?: boolean;\n },\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated\n * use Utils.uniqArray from tnp-core\n */\n uniqArray<T = any>(array: any[], uniqueProperty?: keyof T): T[] {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / replace invisible characters\n // replaceInvisibleCharacters(s: string) {\n // var reg = /[\\0-\\x1F\\x7F-\\x9F\\xAD\\u0378\\u0379\\u037F-\\u0383\\u038B\\u038D\\u03A2\\u0528-\\u0530\\u0557\\u0558\\u0560\\u0588\\u058B-\\u058E\\u0590\\u05C8-\\u05CF\\u05EB-\\u05EF\\u05F5-\\u0605\\u061C\\u061D\\u06DD\\u070E\\u070F\\u074B\\u074C\\u07B2-\\u07BF\\u07FB-\\u07FF\\u082E\\u082F\\u083F\\u085C\\u085D\\u085F-\\u089F\\u08A1\\u08AD-\\u08E3\\u08FF\\u0978\\u0980\\u0984\\u098D\\u098E\\u0991\\u0992\\u09A9\\u09B1\\u09B3-\\u09B5\\u09BA\\u09BB\\u09C5\\u09C6\\u09C9\\u09CA\\u09CF-\\u09D6\\u09D8-\\u09DB\\u09DE\\u09E4\\u09E5\\u09FC-\\u0A00\\u0A04\\u0A0B-\\u0A0E\\u0A11\\u0A12\\u0A29\\u0A31\\u0A34\\u0A37\\u0A3A\\u0A3B\\u0A3D\\u0A43-\\u0A46\\u0A49\\u0A4A\\u0A4E-\\u0A50\\u0A52-\\u0A58\\u0A5D\\u0A5F-\\u0A65\\u0A76-\\u0A80\\u0A84\\u0A8E\\u0A92\\u0AA9\\u0AB1\\u0AB4\\u0ABA\\u0ABB\\u0AC6\\u0ACA\\u0ACE\\u0ACF\\u0AD1-\\u0ADF\\u0AE4\\u0AE5\\u0AF2-\\u0B00\\u0B04\\u0B0D\\u0B0E\\u0B11\\u0B12\\u0B29\\u0B31\\u0B34\\u0B3A\\u0B3B\\u0B45\\u0B46\\u0B49\\u0B4A\\u0B4E-\\u0B55\\u0B58-\\u0B5B\\u0B5E\\u0B64\\u0B65\\u0B78-\\u0B81\\u0B84\\u0B8B-\\u0B8D\\u0B91\\u0B96-\\u0B98\\u0B9B\\u0B9D\\u0BA0-\\u0BA2\\u0BA5-\\u0BA7\\u0BAB-\\u0BAD\\u0BBA-\\u0BBD\\u0BC3-\\u0BC5\\u0BC9\\u0BCE\\u0BCF\\u0BD1-\\u0BD6\\u0BD8-\\u0BE5\\u0BFB-\\u0C00\\u0C04\\u0C0D\\u0C11\\u0C29\\u0C34\\u0C3A-\\u0C3C\\u0C45\\u0C49\\u0C4E-\\u0C54\\u0C57\\u0C5A-\\u0C5F\\u0C64\\u0C65\\u0C70-\\u0C77\\u0C80\\u0C81\\u0C84\\u0C8D\\u0C91\\u0CA9\\u0CB4\\u0CBA\\u0CBB\\u0CC5\\u0CC9\\u0CCE-\\u0CD4\\u0CD7-\\u0CDD\\u0CDF\\u0CE4\\u0CE5\\u0CF0\\u0CF3-\\u0D01\\u0D04\\u0D0D\\u0D11\\u0D3B\\u0D3C\\u0D45\\u0D49\\u0D4F-\\u0D56\\u0D58-\\u0D5F\\u0D64\\u0D65\\u0D76-\\u0D78\\u0D80\\u0D81\\u0D84\\u0D97-\\u0D99\\u0DB2\\u0DBC\\u0DBE\\u0DBF\\u0DC7-\\u0DC9\\u0DCB-\\u0DCE\\u0DD5\\u0DD7\\u0DE0-\\u0DF1\\u0DF5-\\u0E00\\u0E3B-\\u0E3E\\u0E5C-\\u0E80\\u0E83\\u0E85\\u0E86\\u0E89\\u0E8B\\u0E8C\\u0E8E-\\u0E93\\u0E98\\u0EA0\\u0EA4\\u0EA6\\u0EA8\\u0EA9\\u0EAC\\u0EBA\\u0EBE\\u0EBF\\u0EC5\\u0EC7\\u0ECE\\u0ECF\\u0EDA\\u0EDB\\u0EE0-\\u0EFF\\u0F48\\u0F6D-\\u0F70\\u0F98\\u0FBD\\u0FCD\\u0FDB-\\u0FFF\\u10C6\\u10C8-\\u10CC\\u10CE\\u10CF\\u1249\\u124E\\u124F\\u1257\\u1259\\u125E\\u125F\\u1289\\u128E\\u128F\\u12B1\\u12B6\\u12B7\\u12BF\\u12C1\\u12C6\\u12C7\\u12D7\\u1311\\u1316\\u1317\\u135B\\u135C\\u137D-\\u137F\\u139A-\\u139F\\u13F5-\\u13FF\\u169D-\\u169F\\u16F1-\\u16FF\\u170D\\u1715-\\u171F\\u1737-\\u173F\\u1754-\\u175F\\u176D\\u1771\\u1774-\\u177F\\u17DE\\u17DF\\u17EA-\\u17EF\\u17FA-\\u17FF\\u180F\\u181A-\\u181F\\u1878-\\u187F\\u18AB-\\u18AF\\u18F6-\\u18FF\\u191D-\\u191F\\u192C-\\u192F\\u193C-\\u193F\\u1941-\\u1943\\u196E\\u196F\\u1975-\\u197F\\u19AC-\\u19AF\\u19CA-\\u19CF\\u19DB-\\u19DD\\u1A1C\\u1A1D\\u1A5F\\u1A7D\\u1A7E\\u1A8A-\\u1A8F\\u1A9A-\\u1A9F\\u1AAE-\\u1AFF\\u1B4C-\\u1B4F\\u1B7D-\\u1B7F\\u1BF4-\\u1BFB\\u1C38-\\u1C3A\\u1C4A-\\u1C4C\\u1C80-\\u1CBF\\u1CC8-\\u1CCF\\u1CF7-\\u1CFF\\u1DE7-\\u1DFB\\u1F16\\u1F17\\u1F1E\\u1F1F\\u1F46\\u1F47\\u1F4E\\u1F4F\\u1F58\\u1F5A\\u1F5C\\u1F5E\\u1F7E\\u1F7F\\u1FB5\\u1FC5\\u1FD4\\u1FD5\\u1FDC\\u1FF0\\u1FF1\\u1FF5\\u1FFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u206F\\u2072\\u2073\\u208F\\u209D-\\u209F\\u20BB-\\u20CF\\u20F1-\\u20FF\\u218A-\\u218F\\u23F4-\\u23FF\\u2427-\\u243F\\u244B-\\u245F\\u2700\\u2B4D-\\u2B4F\\u2B5A-\\u2BFF\\u2C2F\\u2C5F\\u2CF4-\\u2CF8\\u2D26\\u2D28-\\u2D2C\\u2D2E\\u2D2F\\u2D68-\\u2D6E\\u2D71-\\u2D7E\\u2D97-\\u2D9F\\u2DA7\\u2DAF\\u2DB7\\u2DBF\\u2DC7\\u2DCF\\u2DD7\\u2DDF\\u2E3C-\\u2E7F\\u2E9A\\u2EF4-\\u2EFF\\u2FD6-\\u2FEF\\u2FFC-\\u2FFF\\u3040\\u3097\\u3098\\u3100-\\u3104\\u312E-\\u3130\\u318F\\u31BB-\\u31BF\\u31E4-\\u31EF\\u321F\\u32FF\\u4DB6-\\u4DBF\\u9FCD-\\u9FFF\\uA48D-\\uA48F\\uA4C7-\\uA4CF\\uA62C-\\uA63F\\uA698-\\uA69E\\uA6F8-\\uA6FF\\uA78F\\uA794-\\uA79F\\uA7AB-\\uA7F7\\uA82C-\\uA82F\\uA83A-\\uA83F\\uA878-\\uA87F\\uA8C5-\\uA8CD\\uA8DA-\\uA8DF\\uA8FC-\\uA8FF\\uA954-\\uA95E\\uA97D-\\uA97F\\uA9CE\\uA9DA-\\uA9DD\\uA9E0-\\uA9FF\\uAA37-\\uAA3F\\uAA4E\\uAA4F\\uAA5A\\uAA5B\\uAA7C-\\uAA7F\\uAAC3-\\uAADA\\uAAF7-\\uAB00\\uAB07\\uAB08\\uAB0F\\uAB10\\uAB17-\\uAB1F\\uAB27\\uAB2F-\\uABBF\\uABEE\\uABEF\\uABFA-\\uABFF\\uD7A4-\\uD7AF\\uD7C7-\\uD7CA\\uD7FC-\\uF8FF\\uFA6E\\uFA6F\\uFADA-\\uFAFF\\uFB07-\\uFB12\\uFB18-\\uFB1C\\uFB37\\uFB3D\\uFB3F\\uFB42\\uFB45\\uFBC2-\\uFBD2\\uFD40-\\uFD4F\\uFD90\\uFD91\\uFDC8-\\uFDEF\\uFDFE\\uFDFF\\uFE1A-\\uFE1F\\uFE27-\\uFE2F\\uFE53\\uFE67\\uFE6C-\\uFE6F\\uFE75\\uFEFD-\\uFF00\\uFFBF-\\uFFC1\\uFFC8\\uFFC9\\uFFD0\\uFFD1\\uFFD8\\uFFD9\\uFFDD-\\uFFDF\\uFFE7\\uFFEF-\\uFFFB\\uFFFE\\uFFFF]/g;\n // return s.replace(reg, '');\n // }\n //#endregion\n\n //#region methods & getters / slash\n slash(pathFromWindowsOrUnixType: string) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is elevated\n async isElevated() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region methods & getters / mesure execution in ms\n async mesureExectionInMs(\n description: string,\n functionToExecute: Function,\n ...functionArguments: any[]\n ): Promise<number> {\n var start = new Date();\n await Helpers.runSyncOrAsync({\n functionFn: functionToExecute,\n arrayOfParams: functionArguments,\n });\n //@ts-ignore\n var end = new Date() - start;\n if (Helpers.isBrowser) {\n Helpers.info(`Execution time: ${end.toString()}ms for \"${description}\"`);\n }\n/* */\n/* */\n/* */\n/* */\n \n return end;\n }\n //#endregion\n\n //#region methods & getters / mesure execution in ms (sync)\n mesureExectionInMsSync(\n description: string,\n functionToExecute: () => void,\n ): number {\n var start = new Date();\n functionToExecute();\n //@ts-ignore\n var end = new Date() - start;\n if (Helpers.isBrowser) {\n Helpers.info(`Execution time: ${end.toString()}ms for \"${description}\"`);\n }\n/* */\n/* */\n/* */\n/* */\n \n return end;\n }\n //#endregion\n\n //#region methods & getters / wait for condition\n waitForCondition(conditionFn: (any) => boolean, howOfftenCheckInMs = 1000) {\n return new Promise(async (resolve, reject) => {\n const result = await Helpers.runSyncOrAsync({ functionFn: conditionFn });\n if (result) {\n resolve(void 0);\n } else {\n setTimeout(() => {\n Helpers.waitForCondition(conditionFn, howOfftenCheckInMs).then(() => {\n resolve(void 0);\n });\n }, howOfftenCheckInMs);\n }\n });\n }\n //#endregion\n\n //#region methods & getters / get methods name\n getMethodName(classObject, method): string {\n var methodName = null;\n Object.getOwnPropertyNames(classObject).forEach(prop => {\n if (classObject[prop] === method) {\n methodName = prop;\n }\n });\n\n if (methodName !== null) {\n return methodName;\n }\n\n var proto = Object.getPrototypeOf(classObject);\n if (proto) {\n return Helpers.getMethodName(proto, method);\n }\n return null;\n }\n //#endregion\n\n //#region methods & getters / fix webpack config\n /**\n * @deprecated\n */\n fixWebpackEnv(env: Object) {\n _.forIn(env, (v, k) => {\n const value: string = v as any;\n if (value === 'true') env[k] = true;\n if (value === 'false') env[k] = false;\n });\n }\n //#endregion\n\n //#region methods & getters / work calculate array\n /**\n * @deprecated\n */\n async workerCalculateArray(\n dataToSplit: any[],\n operation: (\n dataChunk: any[],\n workerNumber?: number | undefined,\n ) => Promise<void>,\n options?: {\n maxesForWorkes?: { [workerMaxes: number]: number };\n workerLimit?: number;\n globals?: any;\n },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region methods & getters / check environment\n checkEnvironment(deps?: CoreModels.GlobalDependencies) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / apply mixins\n public applyMixins = applyMixins;\n //#endregion\n}\n\n//#region class mixins\nexport interface HelpersTaon\n extends HelpersStringsRegexes,\n HelpersProcess,\n HelpersFileFolders {}\n\napplyMixins(HelpersTaon, [\n HelpersStringsRegexes,\n HelpersProcess,\n HelpersFileFolders,\n]);\n//#endregion\n// prettier-ignore-end","//#region imports\nimport { Helpers, UtilsOs, crossPlatformPath } from \"tnp-core/websql\";\n\nimport type { BaseProjectResolver } from \"./base-project-resolver\";\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n//#endregion\n\nexport class BaseDb<DB extends object> {\n\n constructor(\n private ins: BaseProjectResolver,\n private dbName: string,\n private defaultDb: DB,\n ) {\n\n }\n/* */\n/* */\n \n\n public get isUsingDB(): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n get projectsDbLocation() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n}","//#region imports\nimport { crossPlatformPath } from 'tnp-core/websql';\n\nimport type { BaseProjectResolver } from './classes/base-project-resolver';\nimport { BaseDb } from './classes/base-db';\nimport { Helpers } from '../index';\n/* */\n/* */\n/* */\n \n//#endregion\n\nconst defaultDb = {\n config: {} as { [key: string]: string | number | boolean | null },\n};\n\nexport class ConfigDatabase extends BaseDb<typeof defaultDb> {\n constructor(ins: BaseProjectResolver) {\n super(ins, 'config', defaultDb);\n }\n private get selectedCodeEditorKey(): string {\n return 'selected-code-editor';\n }\n\n public async selectCodeEditor(): Promise<\n 'code' | 'idea' | 'idea64' | string\n > {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public async getCodeEditor(): Promise<'code' | 'idea' | 'idea64' | string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { Helpers, crossPlatformPath } from \"tnp-core/websql\";\nimport type { BaseProjectResolver } from \"./classes/base-project-resolver\";\nimport { BaseDb } from \"./classes/base-db\";\n//#endregion\n\nconst defaultDb = {\n projects: [] as {\n location: string;\n }[],\n}\n\nexport class ProjectDatabase extends BaseDb<typeof defaultDb>{\n constructor(\n ins: BaseProjectResolver,\n ) {\n super(ins, 'projects', defaultDb);\n }\n\n async getAllProjectsFromDB() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { Taon } from 'taon/websql';\nimport { _, chalk } from 'tnp-core/websql';\n\nexport type PortStatus =\n | 'unassigned'\n | 'assigned'\n | 'assigned-not-registered'\n | 'assigned-taken-by-os';\n\nexport const PortStatusArr: PortStatus[] = [\n 'unassigned',\n 'assigned',\n 'assigned-not-registered',\n 'assigned-taken-by-os',\n];\n\n@Taon.Entity({\n className: 'Port',\n uniqueKeyProp: 'port',\n})\nexport class Port extends Taon.Base.Entity {\n static from(opt: Omit<Port, 'version' | '_' | 'clone' | 'titleOnList' | 'relation'| 'relations'>) {\n return _.merge(new Port(), opt);\n }\n\n static getTitleForFreePort(port: Number) {\n return `free port ${port}`\n }\n\n get titleOnList(): string {\n/* */\n/* */\n return (void 0);\n }\n\n //#region port entity / columns / port\n //#region @websql\n @Taon.Orm.Column.Primary({\n type: 'int',\n unique: true,\n })\n //#endregion\n port: number;\n //#endregion\n\n //#region port entity / columns / serviceId\n //#region @websql\n @Taon.Orm.Column.Custom({\n type: 'varchar',\n length: 1000,\n unique: true,\n })\n //#endregion\n serviceId: string;\n //#endregion\n\n //#region port entity / columns / status\n /**\n * Port status\n */\n //#region @websql\n @Taon.Orm.Column.String500<PortStatus>('unassigned')\n //#endregion\n status: PortStatus;\n //#endregion\n\n //#region port entity / columns / when assigned timestamp\n /**\n * When port was assigned as registered service\n */\n //#region @websql\n @Taon.Orm.Column.Number()\n //#endregion\n whenAssignedTimestamp?: Number;\n //#endregion\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport {\n CoreModels,\n crossPlatformPath,\n Helpers,\n UtilsTerminal,\n} from 'tnp-core/websql';\nimport { _, chalk } from 'tnp-core/websql';\n\nimport type {\n BaseCliWorker,\n BaseCliWorkerGuiUrlOptions,\n} from './base-cli-worker';\nimport type { TaonBaseCliWorkerController } from './base-cli-worker-controller';\n//#endregion\n\nexport type BaseWorkerTerminalActionReturnType = {\n [uniqeActionName: string]: {\n name: string;\n action: () => unknown | Promise<unknown>;\n };\n};\n\nexport class BaseCliWorkerTerminalUI<\n WORKER extends BaseCliWorker<TaonBaseCliWorkerController<any>, any>,\n> {\n constructor(protected worker: WORKER) {}\n\n //#region protected methods / text for header\n protected async headerText(): Promise<string> {\n return _.startCase(this.worker.serviceID);\n }\n //#endregion\n\n //#region protected methods / text header style\n protected textHeaderStyle(): CoreModels.CfontStyle {\n return 'block';\n }\n //#endregion\n\n //#region protected methods / header text align\n protected headerTextAlign(): CoreModels.CfontAlign {\n return 'left';\n }\n //#endregion\n\n //#region protected methods / header\n /**\n * override whole terminal header\n */\n protected async header(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / info message below header\n async infoMessageBelowHeader(\n options?: BaseCliWorkerGuiUrlOptions,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / get back action\n protected get backAction() {\n return {\n back: {\n name: 'Back',\n },\n };\n }\n //#endregion\n\n //#region protected methods / choose action\n protected get chooseAction() {\n return {\n emptyAction: {\n name: ' -- choose any action below --',\n action: async () => {},\n },\n };\n }\n //#endregion\n\n //#region protected methods / worker terminal actions\n protected getWorkerTerminalActions(options?: {\n exitIsOnlyReturn?: boolean;\n chooseAction?: boolean;\n }): BaseWorkerTerminalActionReturnType {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / info screen\n private headerDisplayed = false;\n public async infoScreen(options?: {\n exitIsOnlyReturn?: boolean;\n }): Promise<void> {\n options = options || {};\n while (true) {\n if (!UtilsTerminal.isVerboseModeTaon()) {\n UtilsTerminal.clearConsole();\n }\n const choices = this.getWorkerTerminalActions(options);\n if (this.headerDisplayed) {\n await this.infoMessageBelowHeader();\n } else {\n this.headerDisplayed = true;\n await this.header();\n await UtilsTerminal.pressAnyKeyToContinueAsync({\n message:\n `\\nWelcome to ${\n chalk.bold(this.worker.serviceID) +\n chalk.bold('@') +\n chalk.bold(this.worker.serviceVersion)\n } Terminal UI.` +\n `\\n\n Press any key to continue...`,\n });\n UtilsTerminal.clearConsole();\n await this.infoMessageBelowHeader();\n }\n\n const choice = await UtilsTerminal.select<keyof typeof choices>({\n choices,\n question: 'Choose action',\n });\n const action = choices[choice].action;\n const result = await action();\n if (choice === 'exit' && result) {\n break;\n }\n }\n }\n //#endregion\n\n //#region protected methods / display special worker ready message\n public displaySpecialWorkerReadyMessage(): void {\n console.log(this.worker.SPECIAL_WORKER_READY_MESSAGE);\n }\n //#endregion\n}","import { TaonBaseClass } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\n\ninterface BaseCliWorkerOptionCallable {\n /**\n * Name of the function from which the option was called\n */\n calledFrom: string;\n}\n\nexport class BaseCliWorkerConfigGetContextOptions {\n /**\n * default localhost\n */\n declare ipAddressOfTaonInstance?: string;\n /**\n * if null nothing is used as port (ip address will be clean)\n */\n declare port?: number | null;\n}\n\n/**\n * Default mode: DETACHED_CHILD_PROCESS\n */\nexport enum BaseCLiWorkerStartMode {\n CHILD_PROCESS = 'child',\n IN_CURRENT_PROCESS = 'process',\n DETACHED_WINDOW = 'window',\n}\n\nexport class BaseCLiWorkerStartParams {\n /**\n * Start mode\n * Default mode DETACHED_CHILD_PROCESS\n */\n declare mode: BaseCLiWorkerStartMode;\n declare restart?: boolean;\n declare kill?: boolean;\n}\n\nexport class BaseCliMethodOptions\n extends TaonBaseClass<BaseCliMethodOptions>\n implements BaseCliWorkerOptionCallable\n{\n static from(opt?: Partial<BaseCliMethodOptions>): BaseCliMethodOptions {\n opt = opt ?? {};\n opt.cliParams = opt.cliParams ?? ({} as any);\n opt.connectionOptions = opt.connectionOptions ?? {};\n const res = new BaseCliMethodOptions().clone(opt);\n res.cliParams = _.merge(new BaseCLiWorkerStartParams(), opt.cliParams);\n res.cliParams.mode =\n res.cliParams.mode || BaseCLiWorkerStartMode.CHILD_PROCESS;\n\n res.connectionOptions = _.merge(\n new BaseCliWorkerConfigGetContextOptions(),\n opt.connectionOptions,\n );\n return res;\n }\n declare connectionOptions?: BaseCliWorkerConfigGetContextOptions;\n declare cliParams?: BaseCLiWorkerStartParams;\n /**\n * Name of the function from which the option was called\n */\n declare calledFrom: string;\n}","//#region imports\nimport { BehaviorSubject } from 'rxjs';\nimport { EndpointContext, Taon } from 'taon/websql';\nimport { config } from 'tnp-core/websql';\nimport {\n chalk,\n crossPlatformPath,\n _,\n os,\n chokidar,\n UtilsProcess,\n Utils,\n UtilsTerminal,\n UtilsOs,\n CoreModels,\n} from 'tnp-core/websql';\n\nimport {\n // BaseCliWorkerOptionCallable,\n Helpers,\n} from '../../../index';\n\nimport { BaseCliWorkerConfig } from './base-cli-worker-config';\nimport type { TaonBaseCliWorkerController } from './base-cli-worker-controller';\nimport { BaseCliWorkerTerminalUI } from './base-cli-worker-terminal-ui';\nimport {\n BaseCliMethodOptions,\n BaseCLiWorkerStartMode,\n} from './base-cli-worker.models';\nimport { BaseCliWorkerUtils } from './base-cli-worker.utils';\n//#endregion\n\n//#region constants\nconst WORKER_INIT_START_TIME_LIMIT = 25; // 15 seconds max to start worker\nconst START_PORT_FOR_SERVICES = 3600;\n//#endregion\n\nexport interface BaseCliWorkerGuiUrlOptions {\n domain?: string;\n port?: number | null;\n useHttps?: boolean;\n}\n\nexport abstract class BaseCliWorker<\n REMOTE_CTRL extends TaonBaseCliWorkerController<any>,\n TERMINAL_UI extends BaseCliWorkerTerminalUI<any> = any,\n> {\n\n /**\n * Indicates if worker is part of cloud\n * and should use cloud ip address\n */\n public static readonly isCloudEnable: Pick<\n BehaviorSubject<boolean>,\n 'next' | 'getValue'\n > = new BehaviorSubject(false);\n\n /**\n * Cloud ip address of the worker (if part of cloud)\n */\n public static readonly cloudIp: Pick<BehaviorSubject<string | null>, 'next' | 'getValue'> =\n new BehaviorSubject<string | null>(null);\n\n private static workers = new Map<string, BaseCliWorker<any, any>>();\n\n //#region fields & getters\n public readonly SPECIAL_WORKER_READY_MESSAGE =\n CoreModels.SPECIAL_WORKER_READY_MESSAGE;\n\n /**\n * dependency workers that should be started before this worker\n */\n public readonly dependencyWorkers = new Map<\n string,\n BaseCliWorker<any, any>\n >();\n\n // @ts-ignore TODO weird inheritance problem\n readonly terminalUI: TERMINAL_UI = new BaseCliWorkerTerminalUI(this);\n readonly workerContextTemplate: ReturnType<typeof Taon.createContextTemplate>;\n\n /**\n * Name of the worker context\n */\n get contextName(): string {\n return this.workerContextTemplate().contextName;\n }\n\n /**\n * Port where worker is running\n * (getter only accessible from host machine)\n */\n get port(): number | undefined {\n return this.processLocalInfoObj.port;\n }\n\n getWorkerInfoGuiUrl(options?: BaseCliWorkerGuiUrlOptions): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n readonly controllerClass: new () => REMOTE_CTRL;\n\n //#endregion\n\n //#region constructor\n constructor(\n /**\n * unique id for service\n */\n public readonly serviceID: string,\n /**\n * external command that will start service\n */\n public readonly startCommand: string,\n /**\n * unique id for service\n */\n public readonly serviceVersion: string,\n ) {\n BaseCliWorker.workers.set(this.serviceID, this);\n }\n //#endregion\n\n //#region public\n\n public static getAllWorkersStartedInSystemFromCurrentCli(): BaseCliWorker<\n any,\n any\n >[] {\n/* */\n/* */\n return (void 0);\n }\n\n //#region public fields & getters / process local info json object\n public get processLocalInfoObj(): BaseCliWorkerConfig {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / get remote controller\n public async getRemoteControllerFor<ctrl = REMOTE_CTRL>(options?: {\n methodOptions: Partial<BaseCliMethodOptions>;\n /**\n * Optionally get other controller from remote context\n */\n controllerClass?: new () => ctrl;\n }): Promise<ctrl> {\n options = options || ({} as any);\n options.methodOptions = BaseCliMethodOptions.from(options.methodOptions);\n const remoteEndpointContext = await this.getRemoteContextFor(options);\n\n const taonProjectsController = remoteEndpointContext.getInstanceBy(\n options.controllerClass\n ? (options.controllerClass as any)\n : this.controllerClass,\n );\n return taonProjectsController as any;\n }\n //#endregion\n\n //#region public methods / kill\n /**\n * stop if started\n */\n public async kill(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n dontRemoveConfigFile?: boolean;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / restart\n /**\n * kill detached process and start again\n * @param options.detached - default true\n */\n async restart(options?: {\n methodOptions?: BaseCliMethodOptions;\n }): Promise<void> {\n options = options || ({} as any);\n options.methodOptions = BaseCliMethodOptions.from(options.methodOptions);\n\n await this.kill({\n methodOptions: options.methodOptions,\n });\n //longer because os is disposing process previous process\n Helpers.info(\n `Restarting service \"${this.serviceID}\" ` +\n `in ${options.methodOptions.cliParams.mode} mode...`,\n );\n\n if (\n options.methodOptions.cliParams.mode ===\n BaseCLiWorkerStartMode.IN_CURRENT_PROCESS\n ) {\n await this.startNormallyInCurrentProcess({\n methodOptions: options.methodOptions,\n });\n } else {\n await this.startDetached({\n methodOptions: options.methodOptions,\n });\n }\n }\n //#endregion\n\n //#region public methods / cli start\n /**\n * only for cli start\n * @param cliParams on from cli\n */\n async cliStartProcedure(options: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<{\n controller: REMOTE_CTRL;\n worker: BaseCliWorker<any, any>;\n serviceId: string;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n //#region protected\n\n //#region protected methods / get remote context\n protected async getRemoteContextFor(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<EndpointContext> {\n options = options || ({} as any);\n options.methodOptions = BaseCliMethodOptions.from(options.methodOptions);\n\n const ipAddressOfTaonInstance =\n options.methodOptions.connectionOptions.ipAddressOfTaonInstance ||\n CoreModels.localhostDomain;\n // on localhost read data from processLocalInfoObj json\n let port =\n options.methodOptions.connectionOptions.port ||\n this.processLocalInfoObj.port;\n\n if (ipAddressOfTaonInstance === CoreModels.localhostDomain && !port) {\n if (this.workerIsStarting) {\n try {\n await this.waitForProcessPortSavedToDisk({\n methodOptions: options.methodOptions.clone(opt => {\n opt.calledFrom = `${opt.calledFrom}.getRemoteContextFor.localhost`;\n return opt;\n }),\n });\n } catch (error) {\n console.error(\n `[getRemoteContextFor] Error while waiting for process port saved to disk`,\n );\n }\n }\n\n if (this.processLocalInfoPortNotInited) {\n throw new Error(\n `Can't connect to remote context on localhost - port is not defined.\n This can happen when the worker process is not started yet.\n `,\n );\n } else {\n port = this.processLocalInfoObj.port;\n }\n }\n\n // this.workerRemoteContextFor[ipAddressOfTaonInstance] = remoteCtx;\n const useHttps =\n ipAddressOfTaonInstance !== CoreModels.localhostDomain &&\n ipAddressOfTaonInstance !== CoreModels.localhostIp127;\n\n const protocol = useHttps ? 'https' : 'http';\n const overrideRemoteHost = `${protocol}://${ipAddressOfTaonInstance}${\n port ? `:${port}` : ''\n }`;\n\n const remoteCtx = this.workerContextTemplate().cloneAsRemote({\n overrideRemoteHost,\n });\n // @LAST chache remote context per ipAddressOfTaonInstance\n\n const remoteEndpoitnContext = await remoteCtx.initialize();\n return remoteEndpoitnContext;\n }\n //#endregion\n\n //#region protected fields & getters / path to process local info\n protected get pathToProcessLocalInfoJson(): string {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected fields & getters / should wait for process port saved to disk\n protected get processLocalInfoPortNotInited(): boolean {\n return (\n !this.processLocalInfoObj.port ||\n isNaN(Number(this.processLocalInfoObj.port))\n );\n }\n //#endregion\n\n //#region protected fields & getters / worker is starting\n protected get workerIsStarting(): boolean {\n return !!this.processLocalInfoObj.startTimestamp;\n }\n //#endregion\n\n //#region protected methods / start if needs to be started\n protected async startDetachedIfNeedsToBeStarted(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / start normally in current process\n /**\n * <strong>IMPORTANT USE ONLY IN DEVELOPMENT !!!</strong>\n * for production use startDetachedIfNeedsToBeStarted()\n * start normally process\n * this will crash if process already started\n */\n protected async startNormallyInCurrentProcess(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n actionBeforeTerminalUI?: () => Promise<void>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / prevent external config change\n protected preventExternalConfigChange(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / prevent prevent start if already started\n protected async preventStartIfAlreadyStarted(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / prevent kill worker with lower version\n protected async killWorkerWithLowerVersion(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / is service healthy\n /**\n * This has 2 purposes:\n * - infinite check when when detached process finished starting\n * - quick check if service is healthy / already started\n */\n protected async isServiceHealthy(options: {\n healthCheckRequestTrys?: number;\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / start detached\n /**\n * start if not started detached process\n */\n protected async startDetached(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / save process info\n private saveProcessInfo(processConfig: Partial<BaseCliWorkerConfig>): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / initialize worker\n protected async initializeWorkerMetadata(options?: {\n methodOptions?: Partial<BaseCliMethodOptions>;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / wait for process port saved to disk\n protected async waitForProcessPortSavedToDisk(options: {\n methodOptions: BaseCliMethodOptions;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region protected methods / get free port\n protected async getServicePort(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n}","import { Models } from 'taon/websql';\nimport { crossPlatformPath, Helpers, path, UtilsOs } from 'tnp-core/websql';\n\n/**\n * Get taon service database config\n * (database is stored in user's home directory)\n * @param serviceNameUniqueInSystem - unique name of the service in the system\n * @param recreateMode - mode of database recreation, default is 'DROP_DB+MIGRATIONS'\n * @returns DatabaseConfig object with location and recreateMode\n */\nexport const getBaseCliWorkerDatabaseConfig = (\n serviceNameUniqueInSystem: string,\n recreateMode: Models.DBRecreateMode = 'DROP_DB+MIGRATIONS',\n) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n};","import { gte } from 'semver';\nimport { _ } from 'tnp-core/websql';\n\n//#region base worker config\nexport class BaseCliWorkerConfig {\n static from(opt: Partial<BaseCliWorkerConfig>): BaseCliWorkerConfig {\n return _.merge(new BaseCliWorkerConfig(), opt);\n }\n\n /**\n * path to file where config is stored\n */\n pathToFile: string;\n /**\n * port taken by service\n */\n port: number;\n /**\n * unique in whole system id of service\n */\n serviceID: string;\n /**\n * pid of service process\n */\n pid: number;\n /**\n * timestamp when service was started\n * (in other cases = null)\n */\n startTimestamp: number;\n /**\n * version\n */\n version: string;\n\n hasBiggerOrEqualWorkerVersionThan(other: BaseCliWorkerConfig): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n isEquals(other: BaseCliWorkerConfig): boolean {\n other = BaseCliWorkerConfig.from(other);\n return (\n !!this.serviceID &&\n !!this.port &&\n !!this.pid &&\n this.serviceID === other.serviceID &&\n this.port === other.port &&\n this.pid === other.pid\n );\n }\n\n get isEmpty(): boolean {\n return !this.serviceID && !this.port && !this.pid;\n }\n}\n//#endregion","import { Taon } from 'taon/websql';\nimport { Helpers } from 'tnp-core/websql';\n\nimport { BaseCliWorkerConfig } from './base-cli-worker-config';\nimport { BaseCliWorkerUtils } from './base-cli-worker.utils';\n\n@Taon.Controller({\n className: 'TaonBaseCliWorkerController',\n})\nexport abstract class TaonBaseCliWorkerController<\n UPLOAD_FILE_QUERY_PARAMS = {},\n> extends Taon.Base.Controller<UPLOAD_FILE_QUERY_PARAMS> {\n /**\n * service id\n */\n private cliWorkerServiceId: string = null;\n private cliWorkerServiceVersion: string = null;\n\n //#region api methods / initialize metadata\n @Taon.Http.PUT()\n baseCLiWorkerCommand_initializeMetadata(\n @Taon.Http.Param.Body('serviceId') serviceId: string,\n @Taon.Http.Param.Body('serviceVersion') serviceVersion: string,\n ): Taon.Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region api methods / kill\n @Taon.Http.GET()\n baseCLiWorkerCommand_kill(\n @Taon.Http.Param.Query('dontRemoveConfigFile')\n dontRemoveConfigFile?: boolean,\n ): Taon.Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region api methods / info\n @Taon.Http.HTML({\n pathIsGlobal: true,\n path: '/info',\n })\n info(): Taon.ResponseHtml {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region api methods / is healthy\n @Taon.Http.POST()\n baseCLiWorkerCommand_isHealthy(\n @Taon.Http.Param.Body() checkingProcessConfig: BaseCliWorkerConfig,\n ): Taon.Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region api methods / has up to date version\n @Taon.Http.POST()\n baseCLiWorkerCommand_hasUpToDateVersion(\n @Taon.Http.Param.Body() checkingProcessConfig: BaseCliWorkerConfig,\n ): Taon.Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport {\n crossPlatformPath,\n UtilsOs,\n path,\n Helpers,\n UtilsJson,\n} from 'tnp-core/websql';\n\nimport { BaseCliWorkerConfig } from './base-cli-worker-config';\n//#endregion\nexport namespace BaseCliWorkerUtils {\n export const getPathToProcessLocalInfoJson = (serviceID: string): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const getAllServicesFromOS = (): BaseCliWorkerConfig[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n}","//#region imports\nimport { Taon } from 'taon/websql';\nimport { _, UtilsOs } from 'tnp-core/websql';\n\nimport { TaonBaseCliWorkerController } from '../classes/base-cli-worker';\n\nimport { Port, PortStatus } from './ports.entity';\n//#endregion\n\n@Taon.Controller({\n className: 'TaonPortsController',\n})\nexport class TaonPortsController extends TaonBaseCliWorkerController {\n //#region fields\n public START_PORT = 3000;\n public END_PORT = 20000;\n public readonly portsCache = new Map<string, Port>();\n //#endregion\n\n //#region methods\n\n //#region methods / first free port\n protected get firstFreePort(): Port | null | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get first unassigned port more than\n protected firstUnassignedPortMoreThan(port: number) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n //#endregion\n\n //#region public methods\n\n //#region public methods / get\n\n //#region public methods / get / first free port\n @Taon.Http.GET()\n getFirstFreePort(): Taon.Response<Port> {\n return async () => {\n return this.firstFreePort;\n };\n }\n //#endregion\n\n //#region public methods / get / port by number\n @Taon.Http.GET()\n getPortByNumber(\n @Taon.Http.Param.Query('portNumber') portNumber: number,\n ): Taon.Response<Port> {\n return async () => {\n portNumber = Number(portNumber);\n return Array.from(this.portsCache.values()).find(\n f => f.port === portNumber,\n );\n };\n }\n //#endregion\n\n //#region public methods / get / ports by status\n @Taon.Http.GET()\n getPortsByStatus(\n @Taon.Http.Param.Query('status') status: PortStatus,\n ): Taon.Response<Port[]> {\n return async () => {\n return Array.from(this.portsCache.values())\n .filter(f => f.status === status)\n .sort(\n // sort by port number\n (a, b) => {\n if (a.port < b.port) {\n return -1;\n }\n if (a.port > b.port) {\n return 1;\n }\n return 0;\n },\n );\n };\n }\n //#endregion\n\n //#endregion\n\n //#region public methods / ports take by os\n\n //#region public methods / ports take by os / DELETE port (make it unassigned)\n /**\n * make it unassigned\n */\n @Taon.Http.DELETE()\n deletePort(\n @Taon.Http.Param.Query('portNumber') portNumber: number,\n ): Taon.Response<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / ports take by os / UPDATE port unique id\n /**\n * make it unassigned\n */\n @Taon.Http.PUT()\n updatePortUniqueId(\n @Taon.Http.Param.Query('portNumber') portNumber: number,\n @Taon.Http.Param.Query('serviceId') serviceId: string,\n ): Taon.Response<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / ports take by os / ADD port take by os\n @Taon.Http.POST()\n addTakeByOsPort(\n @Taon.Http.Param.Query('portNumber') portNumber: number,\n @Taon.Http.Param.Query('uniqueId') uniqueId: string,\n ): Taon.Response<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n //#region public methods / register and assign port\n /**\n * @param uniqueServiceName unique service name\n * @param startFrom start searching for free port from this number\n * @returns\n */\n @Taon.Http.PUT()\n registerAndAssignPort(\n @Taon.Http.Param.Query('uniqueServiceName') uniqueServiceName: string,\n @Taon.Http.Param.Query('startFrom') startFrom?: number,\n ): Taon.Response<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n}","// @ts-nocheck\nimport { Taon } from 'taon/websql';\nimport { QueryRunner } from 'taon-typeorm/websql';\n\n@Taon.Migration({\n className: 'MainContext_1736198527297_init',\n})\nexport class MainContext_1736198527297_init extends Taon.Base.Migration {\n /**\n * remove this method if you are ready to run this migration\n */\n public isReadyToRun(): boolean {\n return false;\n }\n\n async up(queryRunner: QueryRunner): Promise<any> {\n // do \"something\" in db\n }\n\n async down(queryRunner: QueryRunner): Promise<any> {\n // revert this \"something\" in db\n }\n}\n\n@Taon.Migration({\n className: 'TaonPortsContext_1736198527297_init',\n})\nexport class TaonPortsContext_1736198527297_init extends Taon.Base.Migration {\n /**\n * remove this method if you are ready to run this migration\n */\n public isReadyToRun(): boolean {\n return true;\n }\n\n async up(queryRunner: QueryRunner): Promise<any> {\n // do \"something\" in db\n // console.log('Hello from migration UP!')\n }\n\n async down(queryRunner: QueryRunner): Promise<any> {\n // revert this \"something\" in db\n // console.log('Hello from migration DOWN!')\n }\n}","// @ts-nocheck\nimport { Taon } from 'taon/websql';\nimport { _ } from 'tnp-core/websql';\nimport { QueryRunner } from 'taon-typeorm/websql';\nimport { Port, TaonPortsController } from '../lib';\n\nconst portsWithDescription = {\n 3000: 'Commonly used for development servers',\n 3001: 'Alternate development server port',\n 3306: 'MySQL',\n 3389: 'Remote Desktop Protocol (RDP)',\n 3478: 'STUN (Session Traversal Utilities for NAT)',\n 4000: 'Alternative development server port',\n 4200: 'Angular CLI Development Server',\n 4500: 'IPSec NAT traversal',\n 4567: 'Sinatra Default Port',\n 5000: 'Flask, Python development server, or Node.js apps',\n 5432: 'PostgreSQL',\n 5500: 'Live Server (VS Code Extension)',\n 5672: 'RabbitMQ',\n 5800: 'VNC Remote Desktop (HTTP)',\n 5900: 'VNC Remote Desktop',\n 5984: 'CouchDB',\n 6000: 'in use by something in macos',\n};\n\n@Taon.Migration({\n className: 'TaonPortsContext_1736199486472_addingNotAssignablePorts',\n})\nexport class TaonPortsContext_1736199486472_addingNotAssignablePorts extends Taon\n .Base.Migration {\n protected portsController: TaonPortsController =\n this.injectController(TaonPortsController);\n\n private readonly commonPortsFrom3000to6000: number[] =\n Object.keys(portsWithDescription).map(Number);\n\n async up(queryRunner: QueryRunner): Promise<any> {\n const db = await queryRunner.manager.getRepository(Port);\n\n const allPorts = this.commonPortsFrom3000to6000.map(port =>\n Port.from({\n port,\n serviceId: `not assignable (${portsWithDescription[port]})`,\n status: 'assigned-taken-by-os',\n }),\n );\n await db.save(allPorts);\n for (const commonPortObj of allPorts) {\n this.portsController.portsCache.set(\n commonPortObj.serviceId,\n commonPortObj,\n );\n }\n }\n\n async down(queryRunner: QueryRunner): Promise<any> {\n const db = await queryRunner.manager.getRepository(Port);\n await db.remove(\n await db.find({\n where: {\n status: 'assigned-taken-by-os',\n },\n }),\n );\n const allPorts = Array.from(\n this.portsController.portsCache.values(),\n ).filter(f => f.status === 'assigned-taken-by-os');\n for (const port of allPorts) {\n this.portsController.portsCache.delete(port.serviceId);\n }\n }\n}","// @ts-nocheck\nimport { Taon } from 'taon/websql';\nimport { QueryRunner } from 'taon-typeorm/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Port, TaonPortsController } from '../lib';\n\n@Taon.Migration({\n className: 'TaonPortsContext_1736454437350_addFreePorts',\n})\nexport class TaonPortsContext_1736454437350_addFreePorts extends Taon.Base\n .Migration {\n protected portsController: TaonPortsController =\n this.injectController(TaonPortsController);\n\n async up(queryRunner: QueryRunner): Promise<any> {\n const portsTableRepo = await queryRunner.manager.getRepository(Port);\n const addFreePortsInRange = _.range(\n this.portsController.START_PORT,\n this.portsController.END_PORT + 1,\n );\n\n const allTakeByOsPort = (\n await portsTableRepo.find({\n where: {\n status: 'assigned-taken-by-os',\n },\n })\n ).map(f => f.port);\n\n const freePortsInRange = addFreePortsInRange.map(port =>\n Port.from({\n port: port,\n serviceId: Port.getTitleForFreePort(port),\n status: 'unassigned',\n }),\n ).filter(f => !allTakeByOsPort.includes(f.port));\n\n await portsTableRepo.save(freePortsInRange);\n\n for (const port of freePortsInRange) {\n this.portsController.portsCache.set(port.serviceId, port);\n }\n }\n\n async down(queryRunner: QueryRunner): Promise<any> {\n // revert this \"something\" in db\n const db = await queryRunner.manager.getRepository(Port);\n await db.remove(\n await db.find({\n where: {\n status: 'unassigned',\n },\n }),\n );\n const allPorts = Array.from(\n this.portsController.portsCache.values(),\n ).filter(f => f.status === 'unassigned');\n for (const port of allPorts) {\n this.portsController.portsCache.delete(port.serviceId);\n }\n }\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport {\n MainContext_1736198527297_init,\n TaonPortsContext_1736198527297_init,\n} from './1736198527297_init';\nimport { TaonPortsContext_1736199486472_addingNotAssignablePorts } from './1736199486472_addingNotAssignablePorts';\nimport { TaonPortsContext_1736454437350_addFreePorts } from './1736454437350_addFreePorts';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_MainContext = {\n /* 06-01-2025 22:22:07 */ MainContext_1736198527297_init,\n};\nexport const MIGRATIONS_CLASSES_FOR_TaonPortsContext = {\n /* 06-01-2025 22:22:07 */ TaonPortsContext_1736198527297_init,\n /* 06-01-2025 22:38:06 */ TaonPortsContext_1736199486472_addingNotAssignablePorts,\n /* 09-01-2025 21:27:17 */ TaonPortsContext_1736454437350_addFreePorts,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';","import { TaonBaseContext, Taon } from 'taon/websql';\nimport { os, UtilsOs } from 'tnp-core/websql';\nimport { crossPlatformPath, path, Helpers } from 'tnp-core/websql';\n\nimport { MIGRATIONS_CLASSES_FOR_TaonPortsContext } from '../../../migrations';\nimport { getBaseCliWorkerDatabaseConfig } from '../classes/base-cli-worker/base-cli-worker-database-config';\n\nimport { TaonPortsController } from './ports.controller';\nimport { Port } from './ports.entity';\n\nexport const TaonPortsContextTemplate = Taon.createContextTemplate(() => ({\n contextName: 'TaonPortsContext',\n appId: 'dev.taon.taon-ports-worker',\n contexts: { TaonBaseContext },\n controllers: { TaonPortsController },\n entities: { Port },\n migrations: { ...MIGRATIONS_CLASSES_FOR_TaonPortsContext },\n skipWritingServerRoutes: true,\n ...getBaseCliWorkerDatabaseConfig('ports-worker', 'DROP_DB+MIGRATIONS'),\n logs: {\n migrations: true,\n },\n}));","//#region imports\nimport { CoreModels, UtilsTerminal, _ } from 'tnp-core/websql';\n\nimport { Helpers, Port, PortStatusArr } from '../../index';\nimport { BaseCliWorkerTerminalUI } from '../classes/base-cli-worker/base-cli-worker-terminal-ui';\n\nimport { PortStatus } from './ports.entity';\nimport type { PortsWorker } from './tcp-upd-ports.worker';\n//#endregion\n\nexport class TcpUdpPortsTerminalUI extends BaseCliWorkerTerminalUI<PortsWorker> {\n //#region methods / header text\n protected async headerText(): Promise<string> {\n return 'TCP/UDP|Ports DB';\n }\n //#endregion\n\n //#region methods / header text style\n protected textHeaderStyle(): CoreModels.CfontStyle {\n return 'block';\n }\n //#endregion\n\n //#region methods / crud menu for take by os ports\n protected async crudMenuForTakeByOsPorts() {\n const { selected: actionChoice } =\n await UtilsTerminal.selectActionAndExecute({\n back: {\n name: ' - back - ',\n },\n editPort: {\n name: 'Edit port',\n },\n addPort: {\n name: 'Add port',\n },\n deletePort: {\n name: 'Delete port (make it unassigned)',\n },\n });\n\n switch (actionChoice) {\n case 'editPort':\n await this.editPortTerminalUiProcess();\n break;\n case 'addPort':\n await this.addPortTerminalUiProcess();\n break;\n case 'deletePort':\n await this.deletePortTerminalUiProcess();\n break;\n }\n }\n //#endregion\n\n //#region methods / add port process\n protected async addPortTerminalUiProcess(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / select port process\n protected async selectPortProcess(\n ports: Port[],\n title: string,\n ): Promise<Port> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / delete port process\n protected async deletePortTerminalUiProcess(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / edit port process\n protected async editPortTerminalUiProcess(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get worker terminal actions\n getWorkerTerminalActions(options?: { exitIsOnlyReturn?: boolean }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / display menu with items\n protected async displayItemsForPortsStatus(status: PortStatus) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get new port to add\n private async getNewPortToAdd(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { _ } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\nimport { BaseCliWorker } from '../classes/base-cli-worker';\nimport { TaonPortsController } from '../tcp-udp-ports/ports.controller';\nimport { TaonPortsContextTemplate } from '../tcp-udp-ports/tcp-udp-ports.context';\n\nimport { TcpUdpPortsTerminalUI } from './tcp-upd-ports-terminal-ui';\n//#endregion\n\nexport class PortsWorker extends BaseCliWorker<\n TaonPortsController,\n TcpUdpPortsTerminalUI\n> {\n terminalUI = new TcpUdpPortsTerminalUI(this);\n\n workerContextTemplate = TaonPortsContextTemplate as any; // TODO for some reason as any is nessesary\n controllerClass = TaonPortsController;\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.tnp-helpers';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = 'tnp-helpers';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '19.0.76';\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { fse } from 'tnp-core/websql';\nimport { path, crossPlatformPath } from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\nimport { ConfigDatabase } from '../config-database';\nimport { ProjectDatabase } from '../project-database';\nimport { PortsWorker } from '../tcp-udp-ports';\nimport { CURRENT_PACKAGE_VERSION } from '../../build-info._auto-generated_';\n\nimport { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseProjectResolver<PROJECT extends Partial<BaseProject> = any> {\n configDb: ConfigDatabase = new ConfigDatabase(this);\n projectsDb: ProjectDatabase = new ProjectDatabase(this);\n readonly portsWorker: PortsWorker;\n\n //#region fields\n protected readonly NPM_PROJECT_KEY = 'npm';\n protected projects: PROJECT[] = [];\n /**\n * To speed up checking folder I am keeping paths for already checked folder\n * This may break things that are creating new projects\n */\n protected emptyLocations: string[] = [];\n //#endregion\n\n //#region constructor\n constructor(\n protected readonly classFn: any,\n public readonly cliToolName: string,\n ) {\n this.cliToolName = cliToolName;\n // console.log(\"global.frameworkName\",global.frameworkName)\n // if (!UtilsOs.isRunningInVscodeExtension()) {\n // if (!this.cliToolName) {\n // Helpers.throw(`cliToolName is not provided`);\n // }\n this.portsWorker = new PortsWorker(\n 'ports-worker', // BaseGlobalCommandLine.prototype.startCliServicePortsWorker\n `${this.cliToolName} startCliServicePortsWorker --skipCoreCheck`,\n CURRENT_PACKAGE_VERSION,\n );\n }\n //#endregion\n\n //#region fields & getters / allowed types\n get allowedTypes(): string[] {\n //#region @websqlFunc\n return [this.NPM_PROJECT_KEY];\n // throw `Please override this getter [allowedTypes] in your child class or ${CLI.chalk.bold(config.frameworkName)}`;\n //#endregion\n }\n //#endregion\n\n //#region fields & getters / current project\n /**\n * project from process.cwd()\n */\n get Current(): PROJECT {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region fields & getters / resolve type from\n /**\n * override this\n */\n typeFrom(location: string, recrusiveCall = false): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region fields & getters / from\n From(locationOfProject: string | string[], options?: any): PROJECT {\n // console.log({\n // locationOfProj\n // })\n //#region @websqlFunc\n if (Array.isArray(locationOfProject)) {\n locationOfProject = locationOfProject.join('/');\n }\n let location = crossPlatformPath(locationOfProject.replace(/\\/\\//g, '/'));\n\n if (!_.isString(location)) {\n Helpers.warn(`[project.from] location is not a string`);\n return;\n }\n if (path.basename(location) === 'dist') {\n location = path.dirname(location);\n }\n location = crossPlatformPath(path.resolve(location));\n\n const alreadyExist = this.projects.find(\n l => l.location.trim() === location.trim(),\n );\n if (alreadyExist) {\n return alreadyExist as any;\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n //#endregion\n }\n //#endregion\n\n //#region fields & getters / get project nearest to path\n nearestTo(\n absoluteLocation: string | string[],\n options?: {\n type?: string | string[];\n findGitRoot?: boolean;\n onlyOutSideNodeModules?: boolean;\n },\n ): PROJECT {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region fields & getters / unload project\n unload(projectOrLocationOfProject: PROJECT | string) {\n const location = _.isString(projectOrLocationOfProject)\n ? projectOrLocationOfProject\n : projectOrLocationOfProject?.location;\n\n this.projects = this.projects.filter(f => f.location !== location);\n this.emptyLocations = this.emptyLocations.filter(f => f !== location);\n }\n //#endregion\n\n //#region fields & getters / remove project\n remove(project: PROJECT) {\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region fields & getters / manually add project\n add(project: PROJECT) {\n/* */\n/* */\n \n }\n //#endregion\n\n //#region fields & getters / all projects from location\n\n allProjectFrom(absoluteLocation: string, stopOnCwd: string = '/') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n allProjectsFromFolder(folderLocation: string): PROJECT[] {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region fields & getters / sort group of projects\n public sortGroupOfProject<\n T extends BaseProject<any, any> = BaseProject<any, any>,\n >(\n projects: T[],\n resoveDepsArray: (proj: T) => string[],\n projNameToCompare: (proj: T) => string,\n ): T[] {\n const visited: { [key: string]: boolean } = {};\n const stack: { [key: string]: boolean } = {};\n const result: T[] = [];\n\n const visit = (project: T) => {\n if (stack[projNameToCompare(project)]) {\n // Circular dependency detected\n Helpers.error(\n `Circular dependency detected involving project: ${projNameToCompare(\n project,\n )}`,\n );\n }\n\n if (!visited[projNameToCompare(project)]) {\n visited[projNameToCompare(project)] = true;\n stack[projNameToCompare(project)] = true;\n\n const depsResolved = resoveDepsArray(project);\n depsResolved.forEach(dependency => {\n const dependentProject = projects.find(p => {\n // console.log(`comparing :\"${projNameToCompare(p)}\" and \"${dependency}\"`)\n return projNameToCompare(p) === dependency;\n });\n if (dependentProject) {\n visit(dependentProject);\n }\n });\n\n stack[projNameToCompare(project)] = false;\n result.push(project);\n }\n };\n\n projects.forEach(project => visit(project));\n return result;\n // return result.reverse(); // Reverse the result to get the correct order\n }\n //#endregion\n}","//#region import\nimport { config } from 'tnp-core/websql';\nimport { CommandOutputOptions, UtilsOs, UtilsTerminal } from 'tnp-core/websql';\nimport { CoreModels } from 'tnp-core/websql';\nimport { CLI } from 'tnp-core/websql';\nimport { path, crossPlatformPath } from 'tnp-core/websql';\nimport { fse, chalk } from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\nimport { Utils } from 'tnp-core/websql';\n\nimport {\n CoreProject,\n Helpers,\n LinkedProject,\n UtilsTaonWorker,\n UtilsTypescript,\n} from '../../index';\nimport { BaseProjectType } from '../../models';\n\nimport { BaseDocker } from './base-docker';\nimport { BaseFileFoldersOperations } from './base-file-folders-operations';\nimport { BaseGit } from './base-git';\nimport { BaseIgnoreHideHelpers } from './base-ignore-hide';\nimport { BaseJavaJdk } from './base-java-jdk';\nimport type { BaseLibraryBuild } from './base-library-build';\nimport { BaseLinkedProjects } from './base-linked-projects';\nimport { BaseLinter } from './base-linter';\nimport { BaseNpmHelpers } from './base-npm-helpers';\nimport { BaseProjectResolver } from './base-project-resolver';\nimport { BaseQuickFixes } from './base-quick-fixes';\nimport { BaseReleaseProcess } from './base-release-process';\nimport { BaseStaticPages } from './base-static-pages';\nimport { BaseVscodeHelpers } from './base-vscode';\n//#endregion\n\nexport abstract class BaseProject<\n PROJECT extends BaseProject<any, any> = BaseProject<any, any>,\n TYPE = BaseProjectType,\n> {\n //#region static\n\n //#region static / instance of resovle\n static ins = new BaseProjectResolver<BaseProject>(BaseProject, 'taon');\n //#endregion\n\n //#endregion\n\n //#region fields\n public cache: any = {};\n public static cache: any = {};\n public get globalCache(): any {\n return BaseProject.cache;\n }\n readonly type: TYPE | string = 'unknow';\n\n /**\n * resolve instance\n */\n abstract readonly ins: BaseProjectResolver<PROJECT>;\n /**\n * Unique free port for project instance\n * only available after executing *this.assignFreePort()*\n */\n readonly port: string;\n\n public libraryBuild?: BaseLibraryBuild<BaseProject>;\n public npmHelpers?: BaseNpmHelpers;\n public fileFoldersOperations?: BaseFileFoldersOperations;\n\n get packageJson() {\n return this.npmHelpers.packageJson;\n }\n\n get nodeModules() {\n return this.npmHelpers.nodeModules;\n }\n\n public linkedProjects?: BaseLinkedProjects;\n public vsCodeHelpers?: BaseVscodeHelpers;\n public releaseProcess?: BaseReleaseProcess;\n public git?: BaseGit;\n public linter?: BaseLinter;\n public ignoreHide: BaseIgnoreHideHelpers;\n public quickFixes?: BaseQuickFixes;\n public staticPages?: BaseStaticPages;\n public javaJdk?: BaseJavaJdk;\n public docker?: BaseDocker;\n //#endregion\n\n private __location: string;\n get location(): string {\n return this.__location;\n }\n set location(v: string) {\n this.__location = crossPlatformPath(v);\n }\n\n //#region constructor\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n //#endregion\n\n //#region methods & getters / is monorepo\n /**\n * TODO move this to framework\n * Linked projects are actual inside repo\n * not in separated folders/git sub repos\n */\n get isMonorepo(): boolean {\n return false;\n }\n //#endregion\n\n //#region getters & methods / order core projects\n protected orderCoreProjects(coreProjects: CoreProject[]): CoreProject[] {\n const projectMap = new Map<CoreProject, CoreProject[]>();\n\n // Initialize the project map\n for (const project of coreProjects) {\n projectMap.set(project, []);\n }\n\n // Populate the project map with dependencies\n for (const project of coreProjects) {\n if (!projectMap.has(project.extends)) {\n projectMap.set(project.extends, []);\n }\n projectMap.get(project.extends)!.push(project);\n }\n\n const orderedProjects: CoreProject[] = [];\n const visited = new Set<CoreProject>();\n\n const visit = (project: CoreProject) => {\n if (!visited.has(project)) {\n visited.add(project);\n const dependencies = projectMap.get(project);\n if (dependencies) {\n for (const dep of dependencies) {\n visit(dep);\n }\n }\n orderedProjects.push(project);\n }\n };\n\n // Visit each project\n for (const project of coreProjects) {\n visit(project);\n }\n\n return orderedProjects.reverse();\n }\n //#endregion\n\n //#region methods & getters / core\n\n get core(): CoreProject {\n if (!_.isUndefined(this.cache['core'])) {\n return this.cache['core'];\n }\n // Helpers.taskStarted(`Detecting core project for ${this.genericName}`);\n let coreProjects = CoreProject.coreProjects.filter(p =>\n p.recognizedFn(this as any),\n );\n coreProjects = this.orderCoreProjects(coreProjects);\n // Helpers.taskDone(`Core project detected for ${this.genericName}`);\n // console.log('CoreProject.coreProjects', CoreProject.coreProjects.map(c => c.name));\n this.cache['core'] = _.first(coreProjects);\n return this.cache['core'];\n }\n //#endregion\n\n //#region getters & methods / link project exited\n get linkedProjectsExisted(): PROJECT[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / set type\n public setType(type: TYPE) {\n // @ts-ignore\n this.type = type;\n }\n //#endregion\n\n //#region methods & getters / type is\n public typeIs(...types: TYPE[]) {\n return this.type && types.includes(this.type as any);\n }\n //#endregion\n\n //#region methods & getters / type is not\n public typeIsNot(...types: TYPE[]) {\n return !this.typeIs(...types);\n }\n //#endregion\n\n //#region methods & getters / basename\n /**\n * project folder basename\n */\n get basename(): string {\n //#region @websqlFunc\n return path.basename(this.location);\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / parent basename\n /**\n * project folder parent basename\n */\n get parentBasename(): string {\n //#region @websqlFunc\n return path.basename(path.dirname(this.location));\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / name\n /**\n * name from package.json\n */\n get name(): string {\n return this.packageJson?.name || this.nameFromPomXML;\n }\n\n get nameForCli(): string {\n return this.name?.endsWith('-cli') ? this.name : `${this.name}-cli`;\n }\n\n get nameForNpmPackage(): string {\n return this.name;\n }\n\n get nameFromPomXML(): string {\n const artifactIdPattern = /<artifactId>([^<]+)<\\/artifactId>/;\n const match = (this.readFile('pom.xml') || '').match(artifactIdPattern);\n if (match && match[1]) {\n return match[1];\n }\n return '';\n }\n //#endregion\n\n //#region methods & getters / get folder for possible project chhildrens\n protected getFoldersForPossibleProjectChildren(): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get all childrens\n protected getAllChildren() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / children\n /**\n * alias to getAllChildren\n */\n get children(): PROJECT[] {\n //#region @websqlFunc\n return this.getAllChildren();\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / get child\n getChildBy(nameOrBasename: string, errors = true): PROJECT {\n //#region @websqlFunc\n const c = this.children.find(\n c => c.name === nameOrBasename || c.basename === nameOrBasename,\n );\n if (errors && !c) {\n // TODO @LAST FIX THIS FOR DEEEP ARGGUMENTS\n Helpers.warn(\n `Project doesnt contain child with name or basename: ${nameOrBasename}`,\n );\n }\n return c;\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / parent\n get parent(): PROJECT {\n //#region @websqlFunc\n if (!_.isString(this.location) || this.location.trim() === '') {\n return void 0;\n }\n return this.ins.From(path.join(this.location, '..'));\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / parent\n get nearestParent(): PROJECT {\n //#region @websqlFunc\n if (this.cache['nearestParent']) {\n return this.cache['nearestParent'];\n }\n const nearestParent = this.ins.nearestTo([this.location, '..']) as PROJECT;\n if (nearestParent) {\n // console.log(`\n // nearest parent for ${this.genericName} is ${nearestParent.genericName}\n\n // `);\n this.cache['nearestParent'] = nearestParent;\n }\n return nearestParent;\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / grandpa\n get grandpa(): PROJECT {\n //#region @websqlFunc\n if (!_.isString(this.location) || this.location.trim() === '') {\n return void 0;\n }\n const grandpa = this.ins.From(path.join(this.location, '..', '..'));\n return grandpa;\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / generic name\n get allNpmPackagesNames(): string[] {\n return [this.name];\n }\n\n get titleBarName() {\n const allPackagesNames =\n this.allNpmPackagesNames.filter(f => f !== this.basename).length === 0\n ? ''\n : `(${this.allNpmPackagesNames.filter(f => f !== this.basename).join(',')})`;\n\n if (this.parent) {\n return (\n `${path.basename(path.dirname(this.parent.location))}/${this.parent.name}/` +\n `${this.basename} ${allPackagesNames} [ \\${activeEditorShort} ]`\n );\n }\n return (\n `${path.basename(path.dirname(this.location))}/` +\n `${this.basename} (${allPackagesNames}) [ \\${activeEditorShort}]`\n );\n }\n\n get genericName() {\n //#region @websqlFunc\n if (!_.isUndefined(this.cache['genericName'])) {\n return this.cache['genericName'];\n }\n let nameFromPackageJson = this.name;\n/* */\n/* */\n \n\n const sliceMinus = 8;\n const shortPath =\n '/' +\n crossPlatformPath(this.location)\n .split('/')\n .slice(-1 * sliceMinus)\n .join('/');\n\n const result =\n (shortPath.includes(crossPlatformPath(this.location)) ? '/' : '(..)') +\n this.checkAndBoldenPath(this.location)\n .split('/')\n .slice(-1 * sliceMinus)\n .join('/') +\n `(${nameFromPackageJson})`;\n\n this.cache['genericName'] = result.replace(/\\/\\//g, '/');\n return this.cache['genericName'];\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / check and bolden path\n private checkAndBoldenPath(fullPath: string) {\n const parts = fullPath.split('/');\n\n const result = parts.map((part, index) => {\n const pathTocheck = parts.slice(0, index + 1).join('/');\n // console.log('pathTocheck', pathTocheck);\n/* */\n/* */\n/* */\n/* */\n \n return part;\n });\n\n return result.join('/');\n }\n //#endregion\n\n //#region methods & getters / path exits\n /**\n * same has project.hasFile();\n */\n pathExists(relativePath: string | string[]): boolean {\n return this.hasFile(relativePath);\n }\n //#endregion\n\n //#region methods & getters / has file\n /**\n * same as project.pathExists();\n */\n hasFile(relativePath: string | string[]): boolean {\n/* */\n/* */\n/* */\n return (void 0);\n }\n hasFolder(relativePath: string | string[]): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / relative\n /**\n * Function will return relative path from project location\n */\n relative(absoultePath: string) {\n return crossPlatformPath(\n path.relative(\n crossPlatformPath(this.location),\n crossPlatformPath(absoultePath),\n ),\n );\n }\n //#endregion\n\n //#region methods & getters / create folder\n /**\n *\n * @param relativePath\n * @param override it will remove ex\n */\n createFolder(\n relativePath: string | string[],\n options?: {\n override?: boolean;\n },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / format file(s) with prettier\n formatFile(specificRelativePath: string | string[]) {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n formatAllFiles() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / contains file\n /**\n * same as project.pathhasFileExists();\n * but with path.resolve\n */\n containsFile(fileRelativeToProjectPath: string) {\n const fullPath = path.resolve(\n path.join(this.location, fileRelativeToProjectPath),\n );\n return Helpers.exists(fullPath);\n }\n //#endregion\n\n //#region methods & getters / path for\n /**\n * absolute path:\n * concated project location with relative path\n */\n pathFor(relativePath: string | string[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / write json\n writeJson(relativePath: string, json: object) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / write json\n writeJsonC(relativePath: string, json: object) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / run\n /**\n * @deprecated us execute instead\n * use output from or more preciese crafted api\n */\n run(command: string, options?: Omit<CoreModels.RunOptions, 'cwd'>) {\n let opt: CoreModels.RunOptions;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n return Helpers.run(command, opt);\n }\n //#endregion\n\n //#region methods & getters / execute\n /**\n * same as run but async\n */\n public async execute(\n command: string,\n options?: CoreModels.ExecuteOptions & { showCommand?: boolean },\n ): Promise<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / try run sync command\n /**\n * try run but continue when it fails\n * @param command\n * @param options\n * @returns\n */\n tryRunSync(\n command: string,\n/* */\n/* */\n \n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / output from command\n outputFrom(\n command: string,\n/* */\n/* */\n \n ) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / remove file\n removeFile(fileRelativeToProjectPath: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / read file\n readFile(fileRelativeToProjectPath: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / read file\n /**\n * read json file\n * handle all json files\n * jsonc, json5 , json\n * @param fileRelativeToProjectPath\n * @returns\n */\n readJson<T = {}>(fileRelativeToProjectPath: string): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / copy files or folders\n /**\n * copy files or folders from\n * project to destination\n */\n copy(filesOrFolderRelativePathes: string[]): {\n to: (destination: string) => void;\n } {\n return {\n to: (destination: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n },\n };\n }\n //#endregion\n\n //#region methods & getters / remove (fiel or folder)\n remove(relativePath: string | string[], exactPath = true) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / remove folder by relative path\n removeFolderByRelativePath(relativePathToFolder: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n get isAngularLib() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async refreshChildrenProjects(options?: {\n askUserAboutUpdate?: boolean;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / get unique for task\n protected getUniqueForTask(task: string): string {\n return UtilsTaonWorker.getUniqueForTask(task, this.location);\n }\n //#endregion\n\n //#region methods & getters / register and assign port\n public async registerAndAssignPort(\n taskName: string,\n options: { startFrom?: number } = {},\n ): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / assign free port to project instance\n /**\n * @deprecated use this.registerAndAssignPort() or Utils.getFreePort() instead\n */\n async assignFreePort(startFrom: number = 4200): Promise<number> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / define property\n /**\n * Purpose: not initializing all classes at the beginning\n * Only for BaseFeatureForProject class\n */\n defineProperty<PROJECT>(\n variableName: keyof PROJECT,\n classFn: Function,\n options?: {\n customInstanceReturn?: () => object;\n },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / filter only copy\n /**\n * fs.copy option filter function for copying only selected folders from project\n */\n filterOnlyCopy(basePathFoldersOnlyToInclude: string[]) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / filter don't copy\n /**\n * fs.copy option filter function for copying only not selected folders from project\n */\n filterDontCopy(basePathFoldersTosSkip: string[]) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get main branches\n /**\n * main/default hardcoded branches\n */\n getMainBranches(): string[] {\n return ['master', 'develop', 'stage', 'prod', 'test'];\n }\n //#endregion\n\n //#region methods & getters / use feature in branch name for tests\n useFeatureInBranchNameForTests() {\n return false;\n }\n //#endregion\n\n //#region methods & getters / reset process\n async resetProcess(overrideBranch?: string, recrusive = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region methods & getters / link project to\n linkTo(destPackageLocation: string) {\n/* */\n/* */\n \n }\n //#endregion\n\n //#region methods & getters / set value to json\n setValueToJSON(\n relativePath: string | string[],\n lodashGetPath: string,\n value: any,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / set value to json\n setValueToJSONC(\n relativePath: string | string[],\n lodashGetPath: string,\n value: any,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / set value to json\n setValueToJSON5(\n relativePath: string | string[],\n lodashGetPath: string,\n value: any,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get value from json\n getValueFromJSON(\n relativePath: string | string[],\n lodashGetPath: string,\n defaultValue: any = void 0,\n ): any {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get value from jsonc\n getValueFromJSONC(\n relativePath: string | string[],\n lodashGetPath: string,\n defaultValue: any = void 0,\n ): any {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / write file\n\n writeFile(\n relativePath: string | string[],\n content: string,\n options?: { formatWithPrettier?: boolean },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region getters & methods / run command and get string\n public runCommandGetString(this: BaseProject, command: string) {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / to string\n toString = () => {\n return `${this.name}=>${this.location}`;\n };\n //#endregion\n\n //#region getters & methods / find partners names\n get parentsNames() {\n/* */\n/* */\n return (void 0);\n }\n\n //#region getters & methods / open location\n openLocation(relativeFolderPath: string) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n private findParentsNames(\n project?: PROJECT,\n parent?: PROJECT,\n result = [],\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / kill all instance\n tryKillAllElectronInstances() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / init\n /**\n * init project files structure and depedencies\n */\n async init(initOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / link\n /**\n * globally link npm as package\n */\n async link() {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / struct\n /**\n * init project files structure without depedencies\n */\n async struct(initOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / build\n /**\n * init and build() project\n */\n async test(testOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / build\n /**\n * init and build() project\n */\n async build(buildOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / publish\n /**\n * publish project to npm\n */\n async publish(publishOptions?: any): Promise<void> {\n this.npmHelpers.publishToNpmRegistry();\n }\n //#endregion\n\n //#region getters & methods / build\n async release(releaseOptions?: any) {\n throw new Error('TODO IMPLEMENT');\n }\n //#endregion\n\n //#region getters & methods / lint\n /**\n * lint porject\n */\n async lint(lintOptions?: any) {\n Helpers.info(`\n\n\n COMMIT LINT NOT IMPLEMENTED\n\n\n `);\n }\n //#endregion\n\n //#region getters & methods / info\n /**\n * get info about porject\n */\n async info(): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { BaseProject } from './base-project';\n\nexport abstract class BaseFeatureForProject<\n PROJECT extends BaseProject<any,any> = BaseProject<any,any>,\n> {\n get ins() {\n return this.project.ins;\n }\n\n constructor(protected project: PROJECT) {}\n}","//#region import\nimport { config, FilesNames } from 'tnp-core/websql';\nimport { chalk } from 'tnp-core/websql';\nimport { CoreModels } from 'tnp-core/websql';\nimport { path, crossPlatformPath } from 'tnp-core/websql';\nimport { _, UtilsTerminal } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\nimport {\n LibrariesBuildOptions,\n LibraryBuildCommandOptions,\n NgProject,\n} from '../../models';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\n/**\n * Base library build for standard angular/typescript projects\n */\nexport abstract class BaseLibraryBuild<\n PROJECT extends BaseProject<BaseProject, any>,\n> extends BaseFeatureForProject<PROJECT> {\n private cache: any = {};\n protected readonly tempOrgTsConfigFile = `tmp-original-${config.file.tsconfig_json}`;\n\n //#region getters & methods / sort by deps\n protected sortByDeps(libraries: PROJECT[]): PROJECT[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get sorted libraries by deps for build\\\n /**\n * Use cases:\n * 1. build all libraries in normal mode\n * 2. build all libraries in watch mode\n * 3. build selected libraries in normal mode\n * (with first time all libraries will be build)\n * 4. build selected libraries in watch mode\n * (use normal build for not selected libraries)\n * 5. build selected libraries in watch mode\n * (skip normal build for not selected libraries)\n */\n async selectAndSaveLibraries(\n // this: {},\n {\n selectedLibs,\n watch,\n watchBuildSupported,\n skipAllLibsQuestion,\n useLastUserConfiguration,\n }: {\n selectedLibs: PROJECT[];\n watch: boolean;\n watchBuildSupported?: boolean;\n skipAllLibsQuestion?: boolean;\n useLastUserConfiguration?: boolean;\n },\n ): Promise<{ selectedLibs: PROJECT[]; skipRebuildingAllForWatch: boolean }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / angular libraries\n /**\n * angular libraries from angular.json\n */\n get libraries(): PROJECT[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n protected getLibraries() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / build libraries\n /**\n * Angular library build\n */\n public async buildLibraries(\n // this:{},\n {\n watch = false,\n strategy,\n releaseBuild = false,\n copylink_to_node_modules,\n outputLineReplace,\n libraries,\n useLastUserConfiguration,\n }: LibrariesBuildOptions<PROJECT> & { watch?: boolean } = {} as any,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region getters & methods / lib watch build process\n protected async libWatchBuildProcess({\n lib,\n locationsForNodeModules,\n strategy,\n outputLineReplace,\n }: {\n lib: PROJECT;\n locationsForNodeModules: string[];\n strategy: 'link' | 'copy';\n outputLineReplace?: (outputLine: string) => string;\n }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / lib normal build process\n protected async libNormalBuildProcess({\n lib,\n locationsForNodeModules,\n strategy,\n outputLineReplace,\n }: {\n lib: PROJECT;\n locationsForNodeModules: string[];\n strategy: 'link' | 'copy';\n outputLineReplace?: (outputLine: string) => string;\n }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get library build success command\n getLibraryBuildCommand(\n options?: LibraryBuildCommandOptions,\n ): string | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get library build success command\n get getLibraryBuildSuccessComamnds(): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / select copy to projects\n async selectCopytoProjects(): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region private methods / change tsconfig for libraries typescript proper local types\n private async changeTsConfigForLibrariesTypes(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region private methods / replace tsconfig pathes\n protected async replaceTsConfigsPathes() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region private methods / restore original tsconfig\n private async restoreOriginalTsConfig() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { config } from 'tnp-core/websql';\nimport { crossPlatformPath, path, _ } from 'tnp-core/websql';\nimport { Helpers } from '../../../lib';\nimport { PackageJson } from 'type-fest';\n\nexport interface BaseJsonFileReaderOptions<DATA> {\n /**\n * cwd for <my-json>.json\n * <cwd>/<my-json>\n * (you can also provide full path - basename will be cut)\n */\n cwd?: string;\n /**\n * file name\n * example: package.json, taon.json etc.\n */\n fileName?: string;\n /**\n * json content to read from memory\n */\n jsonContent?: Partial<DATA>;\n /**\n * callback for external reload\n */\n reloadInMemoryCallback?: (data: DATA) => void;\n /**\n * use json with comments reader to read json file\n */\n readJsonAsJsonWithComments?: boolean;\n /**\n * default value for data\n * if file not exist\n * (ONLY FOR cwd + fileName mode)\n */\n defaultValue?: Partial<DATA>;\n}\n\n/**\n * Base class for reading json files\n * There are 2 modes of reading json files:\n * - cwd + fileName (read and write to disk in cwd)\n * - jsonContent (read and write to memory and use\n * reloadInMemoryCallback for external reload)\n */\nexport class BaseJsonFileReader<DATA> {\n //#region fields\n /**\n * null when package.json not exist\n */\n protected data: DATA | null;\n\n /**\n * use json with comments reader to read package.json\n */\n protected readonly readJsonAsJsonWithComments: boolean = false;\n //#endregion\n\n //#region constructor\n public readonly cwd: string;\n protected readonly fileName: string;\n /**\n * @deprecated\n * use only when cwd and fileName are not provided\n */\n protected readonly jsonContent?: Partial<DATA>;\n protected readonly defaultValue?: Partial<DATA>;\n protected readonly reloadInMemoryCallback?: (data: DATA) => void;\n constructor(options: BaseJsonFileReaderOptions<DATA>) {\n let {\n cwd,\n fileName,\n jsonContent,\n reloadInMemoryCallback,\n readJsonAsJsonWithComments,\n defaultValue,\n } = options;\n if (cwd) {\n cwd = crossPlatformPath(cwd);\n if (cwd.endsWith(`/${config.file.package_json}`)) {\n cwd = cwd.replace(`/${config.file.package_json}`, '');\n }\n this.cwd = cwd;\n }\n\n this.defaultValue = defaultValue;\n this.fileName = fileName;\n if (cwd && jsonContent) {\n throw new Error(\n `You can't provide cwd and jsonContent at the same time. Choose one.`,\n );\n }\n if (!cwd && !jsonContent) {\n throw new Error(`You need to provide cwd or jsonContent`);\n }\n this.readJsonAsJsonWithComments = !!readJsonAsJsonWithComments;\n this.reloadInMemoryCallback = reloadInMemoryCallback;\n this.jsonContent = _.cloneDeep(jsonContent);\n this.reloadPackageJsonInMemory();\n }\n //#endregion\n\n //#region path\n /**\n * cwd + fileName\n */\n get path() {\n return crossPlatformPath([this.cwd, this.fileName]);\n }\n //#endregion\n\n //#region reload package json in memory\n /**\n * if something else change package.json in this project\n * and you know that you need to reload it..\n */\n reloadPackageJsonInMemory(): void {\n if (this.jsonContent) {\n this.data = _.cloneDeep(this.jsonContent as any);\n } else {\n try {\n if (this.readJsonAsJsonWithComments) {\n this.data = Helpers.readJsonC(this.path);\n } else {\n this.data = Helpers.readJson(this.path);\n }\n if (!this.data && this.defaultValue) {\n this.data = _.cloneDeep(this.defaultValue as any);\n }\n } catch (error) {\n if (this.defaultValue) {\n this.data = _.cloneDeep(this.defaultValue as any);\n } else {\n this.data = null;\n }\n }\n }\n this.reloadInMemoryCallback &&\n this.reloadInMemoryCallback(_.cloneDeep(this.data as any));\n }\n //#endregion\n\n //#region write package json to disk\n saveToDisk(purpose?: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region link to\n linkTo(destination: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get all data\n getAllData(): DATA {\n return _.cloneDeep(this.data);\n }\n //#endregion\n\n //#region set all data\n setAllData(data: DATA): void {\n this.data = _.cloneDeep(data);\n this.saveToDisk();\n }\n //#endregion\n}","import { config } from 'tnp-core/websql';\nimport { _, CoreModels, crossPlatformPath, path } from 'tnp-core/websql';\nimport { Helpers } from 'tnp-core/websql';\nimport { PackageJson as PackageJsonBase } from 'type-fest';\n\nimport {\n BaseJsonFileReader,\n BaseJsonFileReaderOptions,\n} from './base-json-file-reader';\n\nexport type PackageJson = PackageJsonBase & {\n lastBuildTagHash?: string;\n publisher?: string;\n displayName?: string;\n};\n\n//#region package json dependency obj\nexport type PackageJsonDependencyObj =\n | 'dependencies'\n | 'devDependencies'\n | 'peerDependencies'\n | 'resolutions';\n\nexport const PackageJsonDependencyObjArr = [\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'resolutions',\n] as PackageJsonDependencyObj[];\n//#endregion\n\nexport class BasePackageJson extends BaseJsonFileReader<PackageJson> {\n constructor(\n options: Omit<BaseJsonFileReaderOptions<PackageJson>, 'fileName'>,\n ) {\n super({ ...options, fileName: config.file.package_json });\n }\n\n //#region name\n\n /**\n * 'dependencies'\n * 'devDependencies'\n * 'peerDependencies'\n * 'resolutions';\n * and whatever is in package.json to npm install\n */\n get dependenciesTypesArray(): PackageJsonDependencyObj[] {\n return PackageJsonDependencyObjArr;\n }\n\n get name(): string {\n return this.data?.name || '';\n }\n\n async setName(name: string): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region dev dependencies\n /**\n * devDependencies dependencies\n */\n get devDependencies(): PackageJson['devDependencies'] {\n return _.cloneDeep(this.data ? this.data.devDependencies : {}) || {};\n }\n //#endregion\n\n //#region resolutions dependencies\n /**\n * resolutions dependencies\n */\n get resolutions(): PackageJson['resolutions'] {\n return _.cloneDeep(this.data ? this.data['resolutions'] : {}) || {};\n }\n //#endregion\n\n //#region dependencies\n /**\n * npm dependencies from package.json\n */\n get dependencies(): PackageJson['dependencies'] {\n return _.cloneDeep(this.data ? this.data.dependencies : {}) || {};\n }\n\n get optionalDependencies(): PackageJson['optionalDependencies'] {\n return _.cloneDeep(this.data ? this.data.optionalDependencies : {}) || {};\n }\n\n get description(): string {\n return this.data?.description || '';\n }\n\n get displayName(): string {\n return this.data.displayName || '';\n }\n\n get publisher(): string {\n return this.data.publisher || '';\n }\n\n get contributes(): PackageJson['contributes'] {\n return this.data?.contributes;\n }\n\n get repository(): PackageJson['repository'] {\n return this.data?.repository;\n }\n\n setRepository(repository: PackageJson['repository']) {\n this.data.repository = repository;\n this.saveToDisk('setting repository');\n }\n\n /**\n * set the WHOLE dependencies object\n * THIS WILL NOT MERGE -> IT WILL REPLACE WHOLE DEPENDENCIES OBJECT\n */\n setDependencies(dependencies: PackageJson['dependencies']) {\n if (!this.data) {\n Helpers.warn(\n `[taon][setDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n this.data.dependencies = dependencies;\n this.saveToDisk();\n }\n //#endregion\n\n /**\n * set the WHOLE dependencies object\n * THIS WILL NOT MERGE -> IT WILL REPLACE WHOLE DEPENDENCIES OBJECT\n */\n setDevDependencies(devDependencies: PackageJson['devDependencies']) {\n if (!this.data) {\n Helpers.warn(\n `[taon][setDevDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n this.data.devDependencies = devDependencies;\n this.saveToDisk();\n }\n //#endregion\n\n //#region peer dependencies\n /**\n * peerDependencies dependencies\n */\n get peerDependencies(): PackageJson['peerDependencies'] {\n return _.cloneDeep(this.data ? this.data.peerDependencies : {}) || {};\n }\n\n /**\n * set the WHOLE peerDependencies object\n * THIS WILL NOT MERGE -> IT WILL REPLACE WHOLE PEER DEPENDENCIES OBJECT\n */\n setPeerDependencies(peerDependencies: PackageJson['peerDependencies']) {\n if (!this.data) {\n Helpers.warn(\n `[taon][setPeerDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n this.data.peerDependencies = peerDependencies;\n this.saveToDisk();\n }\n //#endregion\n\n setOptionalDependencies(\n optionalDependencies: PackageJson['optionalDependencies'],\n ) {\n if (!this.data) {\n Helpers.warn(\n `[taon][setOptionalDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n this.data.optionalDependencies = optionalDependencies;\n this.saveToDisk();\n }\n //#endregion\n\n //#region remove dev dependencies\n removeDevDependencies() {\n if (!this.data) {\n Helpers.warn(\n `[taon][removeDevDependencies] Package.json not exist in ${this.cwd}`,\n );\n return;\n }\n try {\n delete this.data.devDependencies;\n } catch (error) {}\n this.saveToDisk();\n }\n //#endregion\n\n //#region all dependencies\n /**\n * @returns object witl all deps from current project package json\n */\n get allDependencies(): { [packageName: string]: string } {\n return this.allDepsFromPackageJson(this.data);\n }\n\n /**\n * @returns object witl all deps from package json\n */\n protected allDepsFromPackageJson(packageJson: PackageJson) {\n return _.cloneDeep(\n _.merge({\n ...PackageJsonDependencyObjArr.reduce((acc, depObj) => {\n return {\n ...acc,\n ...(packageJson[depObj] || {}),\n };\n }, {}),\n }),\n );\n }\n //#endregion\n\n //#region version\n /**\n * version from package.json -> property version\n */\n get version(): string {\n return this.data?.version;\n }\n\n setVersion(version: string): void {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bin\n /**\n * bin with cli config from package.json\n */\n get bin(): Partial<Record<string, string>> {\n return _.cloneDeep(this.data?.bin || {}) as any;\n }\n\n set bin(value: Partial<Record<string, string>>) {\n this.data.bin = value;\n this.saveToDisk('setting bin');\n }\n //#endregion\n\n //#region engines\n get engines(): PackageJson['engines'] {\n return _.cloneDeep(this.data.engines);\n }\n\n async setEngines(engines: PackageJson['engines']): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region homepage\n get homepage(): PackageJson['homepage'] {\n return _.cloneDeep(this.data.homepage);\n }\n\n async setHomepage(homepage: PackageJson['homepage']): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region version with patch plus one\n get versionWithPatchPlusOne(): string {\n const ver = this.version.split('.');\n if (ver.length > 0) {\n ver[ver.length - 1] = (parseInt(_.last(ver)) + 1).toString();\n }\n return ver.join('.');\n }\n //#endregion\n\n //#region version with minor plus one and path zero\n get versionWithMinorPlusOneAndPatchZero(): string {\n const ver = this.version.split('.');\n if (ver.length > 1) {\n ver[1] = (parseInt(ver[1]) + 1).toString();\n for (let index = 2; index < ver.length; index++) {\n ver[index] = '0';\n }\n } else {\n Helpers.warn(\n `[npm-project] something went wrong with bumping minor version`,\n );\n }\n return ver.join('.');\n }\n //#endregion\n\n //#region version with major plus one and minor zero and patch zero\n get versionWithMajorPlusOneAndMinorZeroAndPatchZero(): string {\n const ver = this.version.split('.');\n if (ver.length > 0) {\n ver[0] = (parseInt(_.first(ver)) + 1).toString();\n for (let index = 1; index < ver.length; index++) {\n ver[index] = '0';\n }\n } else {\n Helpers.warn(\n `[npm-project] something went wrong with bumping major version`,\n );\n }\n return ver.join('.');\n }\n //#endregion\n\n //#region get version path as number\n get versionPathAsNumber(): number {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region major version\n /**\n * Major Version from package.json\n */\n // @ts-ignore\n get majorVersion(): number {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region minor version\n /**\n * Minor Version from package.json\n */\n // @ts-ignore\n get minorVersion(): number {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get version as number\n /**\n * @deprecated TODO not usefull ?\n */\n getVersionAsNumber(releaseType: CoreModels.ReleaseVersionType): number {\n if (releaseType === 'patch') {\n return this.versionPathAsNumber;\n }\n if (releaseType === 'minor') {\n return this.minorVersion;\n }\n if (releaseType === 'major') {\n return this.majorVersion;\n }\n }\n //#endregion\n\n //#region bump path version\n async bumpPatchVersion() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get version for\n getBumpedVersionFor(releaseType: CoreModels.ReleaseVersionType): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region update deps from locations\n updateDepsFrom(locations: string[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region update dependency\n /**\n * this will NOT SET dependency if\n * dependency name is not in package.json\n */\n updateDependency({\n packageName,\n version,\n }: {\n packageName: string;\n version: string | null;\n }): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is private\n get isPrivate(): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n setIsPrivate(value: boolean) {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region side effects\n get sideEffects(): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region set new version\n async setMainProperty(main: string, purpose = ''): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region build hash\n setBuildHash(hash: string): void {\n this.data.lastBuildTagHash = hash;\n this.saveToDisk('setting build hash');\n }\n getBuildHash(): string {\n return this.data.lastBuildTagHash;\n }\n //#endregion\n\n //#region copyto\n copyTo(location: string | string[]): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport type fs from 'fs';\n\nimport { config } from 'tnp-core/websql';\nimport { UtilsOs } from 'tnp-core/websql';\nimport {\n CoreModels,\n crossPlatformPath,\n fse,\n path,\n _,\n chalk,\n dateformat,\n} from 'tnp-core/websql';\nimport type { BaseNpmHelpers } from '../../../lib';\n\nimport { Helpers } from '../../index';\n\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport type DedupePackage =\n | string\n | {\n package: string;\n excludeFrom?: string[];\n includeOnlyIn?: string[];\n };\n\nexport class BaseNodeModules<\n NPM_HELPERS extends BaseNpmHelpers = BaseNpmHelpers,\n> {\n protected _npmHelpersType: NPM_HELPERS;\n\n //#region constructor\n constructor(\n /**\n * my-path/node_modules\n */\n protected cwd: string,\n protected npmHelpers: NPM_HELPERS,\n ) {\n this.npmHelpers = npmHelpers;\n }\n //#endregion\n\n //#region path\n /**\n * cwd + node_modules\n */\n get path() {\n return crossPlatformPath([this.cwd, config.folder.node_modules]);\n }\n //#endregion\n\n //#region path for package\n /**\n * Path to package inside node_modules folder\n * @example <project-path>/node_modules/<package-name>\n */\n pathFor(packageName: string | string[]): string {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region real path of node_modules - if node_modules is a link\n /**\n * real path of node_modules\n * if node_modules is a link\n * it will return real path.\n * if node_modules is folder = path\n */\n get realPath() {\n try {\n const realPath = crossPlatformPath(fse.realpathSync(this.path));\n return realPath;\n } catch (error) {\n return this.path;\n }\n }\n //#endregion\n\n //#region prevent wrong link destination\n protected preventWrongLinkDestination(dest: string): string {\n if (!path.isAbsolute(dest)) {\n Helpers.error(\n `[linkTo..] target destination path is not absolute \"${dest}\"`,\n );\n }\n\n if (dest.endsWith(`/${config.folder.node_modules}`)) {\n return dest;\n }\n return crossPlatformPath([dest, config.folder.node_modules]);\n }\n //#endregion\n\n //#region link node_modules to other project\n linkToProject(project: Partial<BaseProject>) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region link node_modules to other project\n copyToProject(project: BaseProject): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region link to project or location\n linkToLocation(location: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region make sure node modules installed\n async makeSureInstalled(options?: Omit<CoreModels.NpmInstallOptions, 'pkg'>) {\n if (this.isEmpty()) {\n await this.reinstall(options);\n }\n }\n //#endregion\n\n //#region delete node_modules\n async remove(options?: { skipQuestion?: boolean }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region remove package inside\n removePackage(packageInside: string): void {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region reinstall node modules\n async reinstall(options?: Omit<CoreModels.NpmInstallOptions, 'pkg'>) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is link\n get isLink(): boolean {\n return Helpers.isSymlinkFileExitedOrUnexisted(this.path);\n }\n //#endregion\n\n unlinkNodeModulesWhenLinked() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region empty\n get empty() {\n return this.isEmpty();\n }\n //#endregion\n\n //#region fields & getters / empty node_modules\n /**\n * @returns true if node_modules folder is empty\n * DEEP CHECK - also if node_modules is a link\n * and is not existent\n */\n isEmpty() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region prepare command\n /**\n * Prepare command for npm install\n * (or yarn install)\n */\n async prepareCommand(\n options: CoreModels.NpmInstallOptions,\n cwd: string = this.cwd,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region find package dirs\n /**\n *\n * @param rootDir\n * @param packageName\n * @returns absolute paths to package dirs\n */\n private findPackageDirs(\n rootDir: string,\n packageName: string,\n options: { maxDepth?: number; signal?: AbortSignal } = {},\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region dedupe packages action\n dedupePackages(\n packagesConfig?: DedupePackage[],\n countOnly = false,\n fake = false,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n}","import { config } from 'tnp-core/websql';\n\nimport { BaseJsonFileReader } from './base-json-file-reader';\n\n//#region bower.json interface\n/**\n * Minimal interface describing a bower.json file according to:\n * https://github.com/bower/spec/blob/master/json.md\n */\nexport interface BowerJson {\n name: string;\n version?: string;\n description?: string;\n main?: string | string[];\n keywords?: string[];\n authors?: Array<string | { name: string; email?: string; homepage?: string }>;\n license?: string;\n homepage?: string;\n private?: boolean;\n repository?: {\n type: string;\n url: string;\n };\n ignore?: string[];\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n // Optional fields:\n resolutions?: Record<string, string>;\n moduleType?: string | string[];\n // ...and so on, for any additional custom fields\n}\n//#endregion\n\nexport class BaseBowerJson extends BaseJsonFileReader<BowerJson> {\n constructor(public cwd: string) {\n super({ cwd, fileName: config.file.bower_json });\n }\n\n //#region bower dependencies\n get dependencies() {\n return (this.data ? this.data.dependencies : {}) || {};\n }\n //#endregion\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { UtilsTerminal } from 'tnp-core/websql';\nimport {\n chalk,\n child_process,\n crossPlatformPath,\n fse,\n path,\n} from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\nimport { CoreModels } from 'tnp-core/websql';\nimport { PackageJson } from 'type-fest';\n\nimport { Helpers } from '../../index';\n\nimport { BaseBowerJson } from './base-bower-json';\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport { BaseNodeModules } from './base-node-modules';\nimport { BasePackageJson } from './base-package-json';\nimport type { BaseProject } from './base-project';\n\n//#endregion\n\nexport class BaseNpmHelpers<\n PROJECT extends BaseProject = BaseProject,\n> extends BaseFeatureForProject<PROJECT> {\n //#region fields\n public readonly packageJson: BasePackageJson;\n public readonly _packageJsonType: typeof BasePackageJson = BasePackageJson;\n private readonly _packageJsonTypeOriginal: typeof BasePackageJson =\n BasePackageJson;\n\n public readonly nodeModules: BaseNodeModules;\n public readonly _nodeModulesType: typeof BaseNodeModules = BaseNodeModules;\n private readonly __nodeModulesTypeOriginal: typeof BaseNodeModules =\n BaseNodeModules;\n\n public readonly bowerJson: BaseBowerJson;\n\n //#endregion\n\n //#region constructor\n constructor(project: PROJECT) {\n super(project);\n this.project = project;\n if (this._packageJsonType === this._packageJsonTypeOriginal) {\n this.packageJson = new this._packageJsonType({ cwd: project.location });\n }\n if (this._nodeModulesType === this.__nodeModulesTypeOriginal) {\n this.nodeModules = new this._nodeModulesType(\n project.location,\n this as any,\n );\n }\n this.bowerJson = new BaseBowerJson(project.location);\n }\n //#endregion\n\n //#region prefer yarn over npm\n preferYarnOverNpm(): boolean {\n return false;\n }\n //#endregion\n\n //#region reset package-lock.json\n async resetPackageLockJson() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region start npm task\n startNpmTask(taskName: string, additionalArguments?: string | object) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region check if logged in to registry\n /**\n *\n * @param registry without specified registr is checking npm registry\n * @returns\n */\n async isLoggedInToRegistry(registry?: string): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region login to registry\n /**\n * Prompt the user to log in to a specific npm registry.\n * @param {string} [registry] - Optional npm registry URL.\n * @returns {Promise<void>} - A promise that resolves when the login process completes.\n */\n async loginToRegistry(registry?: string): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region check if logged in to npm\n async makeSureLoggedInToNpmRegistry(registry?: string): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region should release lib\n async shouldReleaseMessage(options: {\n releaseVersionBumpType: CoreModels.ReleaseVersionType;\n versionToUse?: string;\n children?: BaseProject[];\n whatToRelease: {\n itself: boolean;\n children: boolean;\n };\n skipQuestionToUser?: boolean;\n messagePrefix?: string;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region publish to npm registry\n /**\n * @param registry when not specified, it will use the default npm registry\n */\n async publishToNpmRegistry(options?: { registry?: string }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get package version from npm registry\n getPackageVersionFromNpmRegistry(\n packageName: string,\n options?: {\n registry?: string;\n },\n ): Promise<string | undefined> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region import\nimport { load } from 'json10-writer/websql';\nimport { config } from 'tnp-core/websql';\nimport { _, chalk, crossPlatformPath, path, UtilsTerminal } from 'tnp-core/websql';\n\nimport {\n Helpers,\n LinkedPorjectsConfig,\n LinkedProject,\n UtilsTypescript,\n} from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseLinkedProjects<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n private cache: any = {};\n\n //#region methods & getters / embedded project\n get embeddedProject(): PROJECT {\n const cacheKey = 'embeddedProject' + _.kebabCase(this.project.location);\n if (!_.isUndefined(this.cache[cacheKey])) {\n return this.cache[cacheKey];\n }\n // Helpers.taskStarted(`Detecting embedded project for ${this.location}`); // TODO it is slow\n const nearsetProj = this.project.ins.nearestTo(\n crossPlatformPath([this.project.location, '..']),\n ) as PROJECT;\n const linkedPorj = nearsetProj?.linkedProjects?.linkedProjects.find(l => {\n const copareTo = crossPlatformPath([\n nearsetProj.location,\n l.relativeClonePath,\n ]);\n if (this.project.location === copareTo) {\n return true;\n }\n if (l.remoteUrl() === this.project.git.originURL) {\n return true;\n }\n return false;\n });\n if (!linkedPorj || !linkedPorj.internalRealtiveProjectPath) {\n return;\n }\n const pathToEmbededProj = crossPlatformPath([\n nearsetProj.location,\n linkedPorj.relativeClonePath,\n linkedPorj.internalRealtiveProjectPath || '',\n ]);\n const embdedresult = this.project.ins.From(pathToEmbededProj) as PROJECT;\n // Helpers.taskDone(`Embedded project detected for ${this.location}`);\n this.cache[cacheKey] = embdedresult;\n return this.cache[cacheKey];\n }\n //#endregion\n\n //#region methods & getters / projects db location\n get projectsDbLocation() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / save location to db\n async saveLocationToDB() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / save all linked projects to db\n async saveAllLinkedProjectsToDB() {\n const proj = this.project;\n await proj.linkedProjects.saveLocationToDB();\n for (const link of proj.linkedProjects.linkedProjects) {\n const linkedPorj = this.project.ins.From([\n proj.location,\n link.relativeClonePath,\n link.internalRealtiveProjectPath || '',\n ]) as PROJECT;\n // console.log({ linkedPorj })\n if (linkedPorj) {\n await linkedPorj.linkedProjects.saveLocationToDB();\n } else {\n Helpers.warn(`\n In project ${proj.genericName}\n\n Folder ${link.relativeClonePath} is missing projects...\n\n `);\n }\n }\n }\n //#endregion\n\n //#region methods & getters / add linked project\n addLinkedProject(\n linkedProj: LinkedProject | string,\n options?: { skipFormat?: boolean },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / add linked projects\n addLinkedProjects(\n linkedProjs: LinkedProject[],\n options?: { skipFormat?: boolean },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / set linked projects config\n setLinkedProjectsConfig(\n linkedPorjectsConfig: Partial<LinkedPorjectsConfig>,\n options?: {\n skipFormat?: boolean;\n },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public formatConfigFile() {\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / get linked projects config path\n private get linkedProjectsConfigPath() {\n return this.project.pathFor(config.file.linked_projects_json);\n }\n\n private get linkedProjectsConfigTempPath() {\n return this.project.pathFor([`tmp-${config.file.linked_projects_json}`]);\n }\n //#endregion\n\n //#region methods & getters / recreate linked projects config\n protected recreateLinkedProjectsConfig() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get linked projects config\n getLinkedProjectsConfig(): LinkedPorjectsConfig {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / linked projects\n get linkedProjects(): LinkedProject[] {\n return this.getLinkedProjectsConfig().projects || [];\n }\n //#endregion\n\n //#region methods & getters / detected linked projects\n get detectedLinkedProjects(): LinkedProject[] {\n const detectedLinkedProjects = LinkedProject.detect(\n this.project.location,\n { recursive: true }, // TOOD fix recrusive\n );\n return detectedLinkedProjects;\n }\n //#endregion\n\n //#region methods & getters / linked projects prefix\n get linkedProjectsPrefix() {\n return this.getLinkedProjectsConfig().prefix;\n }\n //#endregion\n\n //#region getters & methods / reset linked projects only to core branches\n resetLinkedProjectsOnlyToCoreBranches() {\n return false;\n }\n //#endregion\n\n //#region getters & methods / get unexisted projects\n async cloneNonexistedLinkedProjects(setOrigin: 'ssh' | 'http') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { chalk, dateformat, fse, Utils } from 'tnp-core/websql';\nimport { crossPlatformPath, path, _, UtilsTerminal } from 'tnp-core/websql';\n\nimport {\n CommitData,\n Helpers,\n PushProcessOptions,\n TypeOfCommit,\n} from '../../index';\nimport { translate } from '../translate';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseGit<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n //#region methods & getters / unstage all files\n unstageAllFiles(): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / revert file changes\n revertFileChanges(fileReletivePath: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / clone\n async clone(\n url: string,\n destinationFolderName = '',\n branchName?: string,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / restore last version\n restoreLastVersion(relativeFilePath: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stage all files\n stageAllFiles(): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stage all files\n stageFile(relativeFilePath: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stash\n stash(options?: { onlyStaged?: boolean }): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stash\n rebase(toBranch: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / stash apply\n stashApply(): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / fetch\n fetch(all = false): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / reset files\n resetFiles(...relativePathes: string[]): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is inside git repo\n get isInsideGitRepo(): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is without git repository\n get isWithoutGitRepository(): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is git root\n get isGitRoot(): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / origin url\n get originURL(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / commit\n commit(commitMessage?: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / add and commit\n /**\n * alias to stage all and commit\n */\n addAndCommit(commitMessage: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get default develop Branch\n /**\n * general default development branch for all kinds of projects\n */\n getDefaultDevelopmentBranch(): string {\n return 'develop';\n }\n //#endregion\n\n //#region methods & getters / is using action commit\n isUsingActionCommit(): boolean {\n return false;\n }\n //#endregion\n\n jiraIssuesAreOutsideBrackets(): boolean {\n return false;\n }\n\n async getUserInfo(\n global = false,\n ): Promise<{ name?: string; email?: string }> {\n/* */\n/* */\n return (void 0);\n }\n\n async setUserInfo(\n { name, email }: { name?: string; email?: string },\n global = false,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / stage all and commit\n stageAllAndCommit(commitMessage: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / push current branch\n async pushCurrentBranch(options?: {\n force?: boolean;\n origin?: string;\n askToRetry?: boolean;\n forcePushNoQuestion?: boolean;\n }): Promise<boolean> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / all origins\n get allOrigins(): { origin: string; url: string }[] {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / uncommited files\n get uncommitedFiles(): string[] {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / there are some uncommited change\n get thereAreSomeUncommitedChange(): boolean {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / there are some uncommited change except\n thereAreSomeUncommitedChangeExcept(filesList: string[] = []): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n /**\n * Resolve last changes\n * - uncommited changes\n * - action commits to melt\n */\n async resolveLastChanges(options?: {\n // TODO WIP on that\n tryAutomaticActionFirst?: boolean;\n projectNameAsOutputPrefix?: string;\n questionPrefixMessage?: string;\n }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / has action commits to melt\n get hasActionCommitsToMelt(): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / melt action commits\n /**\n * @returns number of melted commits\n */\n meltActionCommits(): number {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region push to git repo\n /**\n *\n * @param newVersion\n * @param pushWithoutAsking\n */\n async tagAndPushToGitRepo(\n newVersion: string,\n autoReleaseUsingConfig: boolean,\n isCiProcess: boolean,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / pull current branch\n async pullCurrentBranch(options?: {\n askToRetry?: boolean;\n /**\n * default true, when false it will throw error instead process.exit(0)\n */\n exitOnError?: boolean;\n defaultHardResetCommits?: number;\n }): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / current branch name\n get currentBranchName(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / list of current git changes\n get listOfCurrentGitChanges(): {\n modified: string[];\n deleted: string[];\n created: string[];\n } {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get branches names by\n getBranchesNamesBy(pattern: string | RegExp): string[] {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / reset soft HEAD\n resetSoftHEAD(HEAD = 1): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / reset hard\n resetHard(options?: { HEAD?: number }): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / count commits\n countCommits(): number {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / has any commits\n hasAnyCommits() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is in merge process\n get isInMergeProcess() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last commit date\n lastCommitDate() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last commit hash\n lastCommitHash() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last commit message\n lastCommitMessage(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last commit message\n async penultimateCommitMessage(): Promise<string> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get commit message by index\n async getCommitMessageByIndex(index: number): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get commit message by hash\n async getCommitMessageByHash(hash: string): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get commit hash by index\n async getCommitHashByIndex(index: number): Promise<string> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / penultimate commit hash\n penultimateCommitHash(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / check tag exists\n checkTagExists(tag: string): boolean {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / checkout\n checkout(\n branchName: string,\n options?: {\n createBranchIfNotExists?: boolean;\n fetchBeforeCheckout?: boolean;\n switchBranchWhenExists?: boolean;\n },\n ): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n allowedGitEmailDomains(): string[] {\n return [];\n }\n\n cleanRepoFromAnyFilesExceptDotGitFolder(): void {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / checkout from to\n checkoutFromTo(\n checkoutFromBranch: string,\n branch: string,\n origin = 'origin',\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last tag name for major version\n /**\n *\n * @param majorVersion example: v1, v2 etc.\n * @returns tag name\n */\n lastTagNameForMajorVersion(majorVersion): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last tag hash\n lastTagHash(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / remote origin url\n get remoteOriginUrl(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / remote origin url\n /**\n * get provider of remote origin\n */\n get remoteProvider(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / last tag version name\n get lastTagVersionName(): string {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / staged files\n get stagedFiles(): string[] {\n/* */\n/* */\n return (void 0);\n }\n get stagedFilesRelativePaths(): string[] {\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region methods & getters / rename origin\n /**\n * TODO does this make any sense\n */\n renameOrigin(newNameOrUlr: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / translate git commit from args\n /**\n * By default no translation of commit\n */\n transalteGitCommitFromArgs(): { from: string; to: string } {\n return { from: void 0 as string, to: void 0 as string };\n }\n //#endregion\n\n //#region getters & methods / us git branches when commiting and pushing\n /**\n * By defult true.. when commit branches will not function.\n * (false is better for simple projects)\n */\n useGitBranchesWhenCommitingAndPushing(): boolean {\n return true;\n }\n //#endregion\n\n //#region getters & methods / automatically add all changes when pushing to git\n /**\n * usefull when pushing in project with childrens as git repos\n */\n automaticallyAddAllChangesWhenPushingToGit(): boolean {\n return false;\n }\n //#endregion\n\n //#region getters & methods / use git branches as metadata for commits\n /**\n * usefull when pushing in project with childrens as git repos\n */\n useGitBranchesAsMetadataForCommits(): boolean {\n return true;\n }\n //#endregion\n\n //#region getters & methods / clone to\n /**\n * @returns true if clone was successful\n */\n async cloneTo(cwd: string, newProjectName?: string): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region getters & methods / get children\n /**\n * This is only for push/pull process\n *\n * There are 2 types of projects:\n * - with linked-projects.json\n * - with children from external folder\n *\n * projects that are children of this project (with its own git repo)\n */\n get gitChildren(): PROJECT[] {\n let childrenRepos: PROJECT[] = [];\n\n if (this.project.linkedProjects.linkedProjects.length > 0) {\n childrenRepos = this.project.linkedProjects.linkedProjects\n .map(c => {\n return this.project.ins.From([\n this.project.location,\n c.relativeClonePath,\n ]) as PROJECT;\n })\n .filter(f => !!f);\n } else {\n childrenRepos = this.project.children as PROJECT[];\n }\n\n childrenRepos = childrenRepos.filter(\n f => f.git.isInsideGitRepo && f.git.isGitRoot,\n ) as PROJECT[];\n return childrenRepos;\n }\n //#endregion\n\n //#region getters & methods / set remote origin type\n protected async setRemoteOriginType(\n setOrigin: 'ssh' | 'http',\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / push process\n async pullProcess(\n options: {\n skipCloneGitChildren?: boolean;\n setOrigin?: 'ssh' | 'http';\n } = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public async validateEmailDomain(allowedEmailsEnds: string[]): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async _afterPullProcessAction(\n setOrigin: 'ssh' | 'http',\n skipCloneGitChildren = false,\n ): Promise<void> {\n if (!skipCloneGitChildren) {\n await this.project.linkedProjects.cloneNonexistedLinkedProjects(\n setOrigin,\n );\n }\n }\n\n async backupBranch(branchName?: string): Promise<string> {\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / push process\n async pushProcess(options: PushProcessOptions = {}): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / before any action on git root\n public _beforeAnyActionOnGitRoot(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / before push action\n protected async _beforePushProcessAction(\n setOrigin: 'ssh' | 'http',\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / before push action\n protected async _beforePullProcessAction(\n setOrigin: 'ssh' | 'http',\n skipCloneGitChildren = false,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / resovle commit message\n protected async _getCommitMessage(\n typeOfCommit: TypeOfCommit,\n args: string[],\n commitMessageRequired?: boolean,\n /**\n * only needed when push github\n * and I forgot to add my username before issue\n * taon pfix proper input my-repo#344\n * that should be\n * taon pfix proper input my-username/my-repo#344\n */\n currentOrigin?: string,\n ): Promise<CommitData> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / prevent accidental branch change for taon projects\n /**\n * This will prevent accidental branch change for taon projects\n * @returns branch name\n */\n duringPushWarnIfProjectNotOnSpecyficDevBranch(): string {\n return '';\n }\n //#endregion\n\n //#region methods & getters / get changed files in commit by hash\n async getChangedFilesInCommitByHash(hash: string): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get changed files in commit\n /**\n * @param index 0 - means last commit\n */\n async getChangedFilesInCommitByIndex(index: number): Promise<string[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get changes summary\n async changesSummary(options?: { prefix?: string }): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / reset is resting also children\n /**\n * If true command navi reset will reset project\n * and its children.\n *\n * If false command navi reset will reset only project.\n */\n resetIsRestingAlsoChildren(): boolean {\n return true;\n }\n //#endregion\n\n useBranchNameDirectlyAsCommitMessage(): boolean {\n return false;\n }\n}","//#region imports\nimport { fileName, folderName } from 'tnp-core/websql';\nimport { _, path, Utils } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\n/**\n * Git Ignore\n * Vscode Files Hide\n * Npm Ignore\n */\nexport class BaseIgnoreHideHelpers<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n /**\n * (@default: false)\n *\n * If true, the files/folders/patterns that aren't really code and can\n * be recreated from template project like (tsconfig.json, .babelrc, .prettierc etc.)\n * will are stored in the repo\n */\n protected storeInRepoConfigFiles(): boolean {\n return true;\n }\n\n //#region init\n async init(): Promise<void> {\n this.writeNpmIgnore();\n this.writeGitIgnore();\n }\n //#endregion\n\n //#region\n /**\n * @param data list of patterns\n * @returns list of patterns for recrusive ignore\n */\n private recursivePatternTransformFn(data: string[]): string[] {\n return data\n .map(c => {\n if (this.alwaysUseRecursivePattern().includes(c)) {\n return [`${c}`, `**/${c}`];\n }\n return [`${c}`];\n })\n .reduce((a, b) => {\n return a.concat(b);\n }, []);\n }\n //#endregion\n\n //#region patterns ignored in repo but visible to user\n /**\n * Have to start with /\n *\n * Usefull if you are generating some files and folder in src/*.* folder\n * (Taon CLI does this for automatic host generation)\n * @returns patterns that are ignored in repo but visible to user\n */\n protected getPatternsIgnoredInRepoButVisibleToUser(): string[] {\n return [\n '/*.sqlite', // you want to see your temp databases in the repo\n '/*.rest', // you want to see your temp rest databases in the repo\n ];\n }\n //#endregion\n\n //#region always ignored and hidden patterns\n protected alwaysIgnoredHiddenPatterns(): string[] {\n return [\n 'chrome-profiler-events*.json',\n 'speed-measure-plugin*.json',\n 'tmp*',\n 'npm-debug.log*',\n ];\n }\n\n alwaysUseRecursivePattern(): string[] {\n return ['.DS_Store'];\n }\n\n protected alwaysIgnoredAndHiddenFilesAndFolders(): string[] {\n return [\n '_changelog',\n '.sass-cache',\n '.sourcemaps',\n '.DS_Store',\n 'npm-debug.log',\n 'yarn-error.log',\n 'testem.log',\n 'connect.lock',\n 'yarn-error.log',\n 'node_modules',\n 'libpeerconnection.log',\n 'dist',\n 'coverage',\n 'Thumbs.db',\n ];\n }\n //#endregion\n\n //#region hidden but not neccesary ignored\n protected hiddenButNeverIgnoredInRepo(): string[] {\n return ['.gitignore']; // just to avoid mess when not .gitignore and started project\n }\n\n protected hiddenButNotNecessaryIgnoredInRepoFilesAndFolders(): string[] {\n return [\n '.npmignore',\n '.babelrc',\n '.editorconfig',\n 'eslint.config.js',\n 'protractor.conf.js',\n 'karma.conf.js',\n '.prettierc',\n 'angular.json',\n '.prettierrc.json',\n '.eslintrc.js',\n '.eslintrc.json',\n '.npmrc',\n '.yarnrc',\n '.idea',\n ...this.project.linter.getLintFiles(),\n ];\n }\n\n protected hiddenButNotNecessaryIgnoredInRepoPatterns(): string[] {\n const linkeProjectPrefix =\n this.project.linkedProjects.getLinkedProjectsConfig().prefix;\n\n return [\n 'tsconfig*',\n 'webpack.*',\n '.eslintrc*',\n 'tslint.*',\n linkeProjectPrefix ? `${linkeProjectPrefix}*` : void 0,\n ].filter(f => !!f) as string[];\n }\n //#endregion\n\n //#region ignore for npm\n protected npmIgnoreFilesFoldersPatterns(): string[] {\n return [\n '.vscode',\n 'dist',\n 'src',\n 'app',\n 'source',\n 'docs',\n 'preview',\n 'tests',\n 'tsconfig.json',\n 'npm-debug.log*',\n ];\n }\n //#endregion\n\n //#region public methods / write ignore files§\n // TODO\n public writeGitIgnore(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / get vscode hide settings\n /**\n * Use can apply this to .vscode/settings.json [files.exclude] property\n */\n public getVscodeFilesFoldersAndPatternsToHide(): {\n [fileFolderOrPattern: string]: true;\n } {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region public methods / npm ignore\n public writeNpmIgnore(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { folderName } from 'tnp-core/websql';\nimport { _, path } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n\n// TODO\nexport class BaseLinter<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n async init(): Promise<void> {\n this.writeLintFiles();\n }\n\n getLintFiles(): string[] {\n return ['.prettierignore', '.prettierrc', '.editorconfig'];\n }\n\n //#region get editorconfig settings\n getConfigEditorconfig(): string {\n return `\n# Editor configuration, see http://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.ts]\nquote_type = single\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n`;\n }\n //#endregion\n\n //#region get prettier settings\n getConfigPrettierrc(): object {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get prettier ignore settings\n getConfigPrettierignore(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n isEnableForProject(): boolean {\n return true;\n }\n\n //#region write lint files\n public writeLintFiles(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import {\n CoreModels,\n crossPlatformPath,\n fse,\n os,\n path,\n Utils,\n UtilsOs,\n UtilsTerminal,\n} from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\n\nimport { Helpers, UtilsVSCode } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n\nexport class BaseVscodeHelpers<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n //#region init\n async init(options?: { skipHiddingTempFiles?: boolean }): Promise<void> {\n options = options || {};\n this.recreateExtensions();\n await this.recreateBaseSettings();\n this.recreateWindowTitle();\n if (!options.skipHiddingTempFiles) {\n this.toogleFilesVisibilityInVscode({\n action: 'hide-files',\n skipSaving: true,\n });\n }\n this.saveCurrentSettings();\n }\n //#endregion\n\n //#region fields\n /**\n * settings.json relative path\n */\n public readonly relativePathSettingsJsonVscode = '.vscode/settings.json';\n public readonly relativePathExtensionJsonVScode = '.vscode/extensions.json';\n\n public readonly currentSettingsValue: CoreModels.VSCodeSettings;\n //#endregion\n\n //#region constructor\n constructor(project: PROJECT) {\n super(project);\n this.currentSettingsValue =\n Helpers.readJsonC(project.pathFor(this.relativePathSettingsJsonVscode)) ||\n {};\n }\n //#endregion\n\n //#region modify vscode settings\n protected modifyVscode(\n modifyFN: (\n settings: CoreModels.VSCodeSettings,\n ) => CoreModels.VSCodeSettings,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region save current settings\n public saveCurrentSettings(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get extensions\n getExtensions(): string[] {\n return Helpers.uniqArray([\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n ]).map(c => (c as string).toLowerCase());\n }\n //#endregion\n\n //#region extensions\n /**\n * @deprecated use getExtensions() instead\n */\n private get extensions(): string[] {\n return this.getExtensions();\n }\n //#endregion\n\n //#region recreate extensions\n recreateExtensions(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region recreate base settings\n protected getExecuteParamsForSettings(): any[] {\n return [this.project];\n }\n\n async recreateBaseSettings(options?: { save?: boolean }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region recraete window title\n recreateWindowTitle(options?: { save?: boolean }): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region install extensions\n async installExtensions(\n extensions = this.extensions,\n defaultSelectedAll = false,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region strip version\n /**\n * This pattern finds a dash followed by at least one digit.\n * It removes everything from that dash to the end of the string.\n * Examples:\n * \"name-of-extension-1.2.3\" -> \"name-of-extension\"\n * \"extension-0.9.5-win32-x64\" -> \"extension\"\n */\n protected stripVersion(folderName: string): string {\n return folderName.replace(/(-\\d+.*)$/, '');\n }\n //#endregion\n\n //#region installed extensions\n get installedExtensions(): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region apply proper global settings\n public static async applyProperGlobalSettings(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get vscode bottom color\n /**\n * by default left menu color and bottom status bar are the same\n */\n getVscodeBottomColor(): string {\n return void 0;\n }\n //#endregion\n\n //#region refresh colors in settings\n refreshColorsInSettings(): void {\n const overideBottomColor = this.getVscodeBottomColor();\n UtilsVSCode.regenerateVsCodeSettingsColors(\n this.project.location,\n overideBottomColor,\n );\n }\n //#endregion\n\n //#region get basic settings\n async getBasicSettins(): Promise<object> {\n const settings = {\n '[markdown]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[typescriptreact]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[json]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[jsonc]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[json5]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[scss]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[html]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[javascript]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[typescript]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n '[dockercompose]': {\n 'editor.defaultFormatter': 'esbenp.prettier-vscode',\n 'editor.formatOnSave': false,\n },\n 'editor.rulers': [80, 120],\n 'eslint.migration.2_x': 'off',\n 'eslint.enable': true,\n 'prettier.enable': true,\n 'editor.suggest.snippetsPreventQuickSuggestions': false,\n 'editor.inlineSuggest.enabled': true,\n 'prettier.prettierPath': './node_modules/prettier',\n 'prettier.endOfLine': 'auto', // fix for jumpling to end of file when file > 100kb\n // 'tslint.autoFixOnSave': false,\n // 'tslint.enable': false,\n // 'tslint.alwaysShowRuleFailuresAsWarnings': false,\n };\n\n settings['search.useIgnoreFiles'] = false;\n settings['search.include'] = ['**/src/**'];\n settings['search.exclude'] = {\n bin: true,\n local_release: true,\n node_modules: true,\n '.build': true,\n '.vscode': true,\n browser: true,\n dist: true,\n ['dist-*']: true,\n 'package-lock.json': true,\n 'tmp-*': true,\n 'src/lib/env/**/*.*': true,\n '*.rest': true,\n };\n\n Object.keys(settings['search.exclude']).forEach(k => {\n settings['search.exclude'][`**/${k}`] = true;\n });\n\n settings['search.exclude']['projects'] = true;\n\n return settings;\n }\n //#endregion\n\n //#region resolve params vscode\n protected async resolveParamsVscode(obj, prams: any[]): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public toogleFilesVisibilityInVscode(options: {\n action: 'show-files' | 'hide-files';\n skipSaving?: boolean;\n }): void {\n options = options || ({} as any);\n const { action, skipSaving } = options;\n\n if (action === 'hide-files') {\n this.modifyVscode(settings => {\n settings['files.exclude'] =\n this.project.ignoreHide.getVscodeFilesFoldersAndPatternsToHide() ||\n {};\n return settings;\n });\n if (!skipSaving) {\n this.saveCurrentSettings();\n }\n } else if (action === 'show-files') {\n this.modifyVscode(settings => {\n settings['files.exclude'] = {};\n return settings;\n });\n if (!skipSaving) {\n this.saveCurrentSettings();\n }\n }\n }\n\n public changeColorThemeVscode(white = true): void {\n this.modifyVscode(settings => {\n settings['workbench.colorTheme'] = white\n ? 'Default Light+'\n : 'Kimbie Dark';\n return settings;\n });\n this.saveCurrentSettings();\n }\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { CoreModels, chalk, dateformat, _, UtilsTerminal } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\nimport type { ChangelogData } from '../../models';\nimport { CommitData } from '../commit-data';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseReleaseProcess<\n PROJECT extends BaseProject<any, any> = any,\n> extends BaseFeatureForProject<PROJECT> {\n //#region fields\n\n /**\n * Automatic release process of patch plus one version\n */\n automaticRelease: boolean = false;\n versionType: CoreModels.ReleaseVersionType;\n preReleaseVersionTag: CoreModels.PreReleaseVersionTag;\n lastChangesSummary: string;\n newVersion: string;\n commitsForChangelog: {\n commitMessages: string;\n index: number;\n }[] = [];\n //#endregion\n\n //#region methods & getters / start release\n startRelease(options?: Partial<BaseReleaseProcess<PROJECT>>): Promise<void> {\n throw new Error('Method not implemented.');\n }\n //#endregion\n\n //#region methods & getters / get release words\n getReleaseWords(): string[] {\n return ['release'];\n }\n //#endregion\n\n //#region methods & getters / select changelog commits\n async selectChangelogCommits(): Promise<\n {\n commitMessages: string;\n index: number;\n }[]\n > {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get commits up to release commit\n private async getCommitsUpToReleaseCommit(): Promise<\n {\n commitMessages: string;\n index: number;\n }[]\n > {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public async checkBundleQuestion(\n cwdForCode: string,\n checkMessage = `Select action before publishing ?`,\n ): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / publish to npm\n /**\n * @returns true if publish , faslse if just version bump\n */\n public async publishToNpm(\n cwdForCode = this.project.pathFor('dist'),\n automaticRelease = this.automaticRelease,\n ): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / test after publish\n protected async testAfterPublish(): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / test before publish\n protected async testBeforePublish(): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / commit and push\n protected async commitAndPush(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / release commit template\n protected releaseCommitTemplate(): string {\n return `Release v${this.newVersion} + changelog.md update`;\n }\n //#endregion\n\n //#region methods & getters / test libraries\n private async testLibraries(): Promise<boolean> {\n try {\n this.project.run('npm run test', { output: true }).sync();\n return true;\n } catch (error) {\n Helpers.info(`Test failed, you can run test manually`);\n return false;\n }\n }\n //#endregion\n\n //#region methods & getters / build all libraries\n async buildAllLibraries() {\n await this.project.libraryBuild.buildLibraries({\n watch: false,\n releaseBuild: true,\n });\n }\n //#endregion\n\n //#region methods & getters / reset release files\n async resetReleaseFiles() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / to bump projects\n get toBumpProjects() {\n const toBumpProjects = [\n this.project,\n ...this.project.libraryBuild.libraries,\n ] as PROJECT[];\n\n return toBumpProjects;\n }\n //#endregion\n\n //#region methods & getters / bump new version everywhere\n async bumpNewVersionEverywhere() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / confirm release type\n async confirmNewVersion(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / select release type\n protected async selectReleaseType(\n versionToUseResolveFn?: (\n releaseVersionBumpType: CoreModels.ReleaseVersionType,\n ) => string,\n options?: {\n quesitonPrefixMessage?: string;\n },\n ): Promise<CoreModels.ReleaseVersionType> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / commit message in changelog transform fn\n protected async commitMessageInChangelogTransformFn(\n message: string,\n ): Promise<string> {\n return message;\n }\n //#endregion\n\n //#region methods & getters / calculate item\n async getChangelogContentToAppend(askForEveryItem: boolean): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / update changelog.md from commits\n /**\n * TODO extend this to all commits from last release\n */\n async updateChangeLogFromCommits(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / extract changed libraries in last commit\n async extractChangedLibrariesInCommit(\n hashOrIndex: string | number,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / change log item template\n async changelogItemTemplate(\n hashOrIndex: string | number,\n confirmEveryItem: boolean = false,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / generate last changes summary\n async generateLastChangesSummary(): Promise<string> {\n const lastReleaseCommitData = await this.getLastReleaseCommitData();\n const hasLastReleaseCommit = lastReleaseCommitData.index !== -1;\n const lastReleaseCommitMsg = !hasLastReleaseCommit\n ? '< nothing release yet >'\n : lastReleaseCommitData.lastReleaseCommitMsg;\n\n return `${chalk.bold.gray('Last changelog.md notes summary')}:\n${await this.getLastPackageVersionChangesFromChnagelog()}\n\n${chalk.bold.gray(\n hasLastReleaseCommit ? 'Last commits up to release commit' : 'Last 3 commits',\n)}:\n${await this.getLastChangesFromCommits({\n maxMessagesToCheck: hasLastReleaseCommit ? Number.POSITIVE_INFINITY : 3,\n stopOnCommitMessage: hasLastReleaseCommit\n ? lastReleaseCommitData.lastReleaseCommitMsg\n : '',\n})}\n `;\n }\n //#endregion\n\n //#region methods & getters / get last changes from commits\n async getLastChangesFromCommits({\n maxMessagesToCheck = 3,\n stopOnCommitMessage = '',\n }: {\n /**\n * default 3\n */\n maxMessagesToCheck?: number;\n /**\n * stop serching on commit message\n */\n stopOnCommitMessage?: string;\n } = {}): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get last release commit data\n async getLastReleaseCommitData(): Promise<{\n lastReleaseCommitMsg: string;\n /**\n * -1 if not found\n */\n index: number;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get last changes from changelog\n async getLastPackageVersionChangesFromChnagelog(): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get changelog path\n private get changeLogPath() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / get changelog content\n get changelogContent() {\n return this.project.readFile(this.changeLogPath) || '';\n }\n //#endregion\n\n //#region methods & getters / change log key word\n changeLogKeyWord() {\n return 'Changes in version';\n }\n //#endregion\n\n //#region methods & getters / get changelog data\n getChnagelogData(): ChangelogData[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport {\n BaseClientCompiler,\n BaseClientCompilerOptions,\n} from 'incremental-compiler/websql';\nimport { path, crossPlatformPath } from 'tnp-core/websql';\nimport { _ } from 'tnp-core/websql';\nimport { config } from 'tnp-core/websql';\nimport { Helpers } from '../../../lib';\n\nimport { BaseProject } from './base-project';\n//#endregion\n\nexport abstract class BaseCompilerForProject<\n ADDITIONAL_DATA = any,\n PROJECT extends BaseProject = BaseProject,\n> extends BaseClientCompiler<ADDITIONAL_DATA> {\n //#region check folder compiler\n protected checkFolderCompiler(\n project: PROJECT,\n options: BaseClientCompilerOptions,\n dontCheck = false,\n ): BaseClientCompilerOptions {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region constructor\n\n constructor(\n public project: PROJECT,\n options?: BaseClientCompilerOptions,\n allowFolderOutSideProject = false,\n ) {\n super();\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n //#endregion\n}","import { ChangeOfFile } from 'incremental-compiler/websql';\nimport { _, Utils } from 'tnp-core/websql';\n\nimport { BaseCompilerForProject } from './base-compiler-for-project';\nimport { BaseProject } from './base-project';\n\nexport abstract class BaseDebounceCompilerForProject<\n ADDITIONAL_DATA = any,\n PROJECT extends BaseProject = BaseProject,\n> extends BaseCompilerForProject<ADDITIONAL_DATA, PROJECT> {\n protected initialParams: ADDITIONAL_DATA;\n\n /**\n * default debounce time is 1s\n */\n protected debounceTime = 1000;\n\n abstract action({\n changeOfFiles,\n asyncEvent,\n }: {\n changeOfFiles: ChangeOfFile[];\n asyncEvent: boolean;\n });\n\n /**\n * current files that are in project\n */\n protected exitedFilesAbsPathes: string[] = [];\n\n /**\n * @deprecated use action() instead\n */\n public async syncAction(\n absFilesPathes: string[],\n initialParams: ADDITIONAL_DATA,\n ): Promise<void> {\n this.initialParams = initialParams || ({} as any);\n this.exitedFilesAbsPathes = absFilesPathes;\n return await this.action({\n changeOfFiles: absFilesPathes.map(\n fileAbsolutePath =>\n ({\n fileAbsolutePath,\n eventName: 'change',\n datetime: new Date(),\n }) as ChangeOfFile,\n ),\n asyncEvent: false,\n });\n }\n\n private lastAsyncFilesChanges: ChangeOfFile[] = [];\n\n private debounceAction = _.debounce(() => {\n const changeOfFiles = this.lastAsyncFilesChanges;\n this.lastAsyncFilesChanges = [];\n this.action({\n changeOfFiles,\n asyncEvent: true,\n });\n }, this.debounceTime);\n\n /**\n * @deprecated use action() instead\n */\n public async asyncAction(\n asyncEvents: ChangeOfFile,\n initialParams?: ADDITIONAL_DATA,\n ): Promise<void> {\n this.lastAsyncFilesChanges.push(asyncEvents);\n if (asyncEvents.eventName === 'unlink') {\n this.exitedFilesAbsPathes = this.exitedFilesAbsPathes.filter(\n f => f !== asyncEvents.fileAbsolutePath,\n );\n } else if (asyncEvents.eventName === 'unlinkDir') {\n this.exitedFilesAbsPathes = this.exitedFilesAbsPathes.filter(\n f =>\n !f.startsWith(asyncEvents.fileAbsolutePath.replace(/\\/$/, '') + '/'),\n );\n } else {\n this.exitedFilesAbsPathes.push(asyncEvents.fileAbsolutePath);\n this.exitedFilesAbsPathes = Utils.uniqArray(this.exitedFilesAbsPathes);\n }\n await this.debounceAction();\n }\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { _, fse, path } from 'tnp-core/websql';\nimport { PackageJson } from 'type-fest';\n\nimport { Helpers, UtilsQuickFixes } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseQuickFixes<\n PROJECT extends BaseProject<any, any> = BaseProject<any, any>,\n> extends BaseFeatureForProject<PROJECT> {\n constructor(public project: PROJECT) {\n super(project);\n this.project = project;\n }\n\n /**\n * filesRelativePaths example:\n * ['node_modules/@types/glob/index.d.ts', '/home/user/project/src/app.ts']\n *\n * @param filesRelativeAbsPaths\\ Quick fix for typescript check\n */\n excludeNodeModulesDtsFromTypescriptCheck(filesRelativeAbsPaths:string[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n\n }\n\n //#region fix sqlite pacakge in node_modules\n fixSQLLiteModuleInNodeModules() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region add missing empty libs\n public createDummyEmptyLibsReplacements(missingLibsNames: string[] = []) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { ChildProcess, execSync } from 'child_process';\n\nimport { Helpers, UtilsTerminal } from 'tnp-core/websql';\nimport { CoreModels, _ } from 'tnp-core/websql';\n\nimport type { BaseProject, TypeOfCommit } from './base';\nimport type { BaseProcessManger } from './base/classes/base-process-manager';\n//#endregion\n\n//#region base project type\nexport type BaseProjectType = CoreModels.BaseProjectType;\nexport const BaseProjectTypeArr = CoreModels.BaseProjectTypeArr;\n//#endregion\n\n//#region ng project\n/**\n * Angular project type\n */\nexport type NgProject = {\n projectType: 'library' | 'application';\n /**\n * where ng-packagr.json is located, tsconfig etc.\n */\n root: string;\n /**\n * Source code project\n */\n sourceRoot: string;\n prefix: string;\n};\n\n//#endregion\n\n//#region library build options\nexport type LibraryBuildCommandOptions = {\n watch?: boolean;\n};\n//#endregion\n\n//#region libraries build options\nexport type LibrariesBuildOptions<PROJECT extends BaseProject = BaseProject> = {\n strategy?: 'link' | 'copy';\n /**\n * by default we are copying all libraries to node_modules of itself\n */\n copylink_to_node_modules?: string[];\n releaseBuild?: boolean;\n /**\n * override build options for specific libraries\n * @todo\n */\n libraries?: PROJECT[];\n outputLineReplace?: (\n libForOutput: PROJECT,\n useExternalProvidedLibs: boolean,\n ) => (line: string) => string;\n useLastUserConfiguration?: boolean;\n};\n//#endregion\n\n//#region test build options\nexport type TestBuildOptions = {\n onlySpecyficFiles?: string[];\n updateSnapshot?: boolean;\n};\n//#endregion\n\n//#region change log data\nexport interface ChangelogData {\n changes: string[];\n version: string;\n date: string;\n}\n//#endregion\n\n//#region push process options\nexport interface PushProcessOptions {\n force?: boolean;\n typeofCommit?: TypeOfCommit;\n mergeUpdateCommits?: boolean;\n askToConfirmPush?: boolean;\n askToConfirmCommit?: boolean;\n skipLint?: boolean;\n askToConfirmBranchChange?: boolean;\n origin?: string;\n args?: string[];\n setOrigin?: 'ssh' | 'http';\n exitCallBack?: () => void;\n forcePushNoQuestion?: boolean;\n overrideCommitMessage?: string;\n commitMessageRequired?: boolean;\n /**\n * only needed when push github\n * and I forgot to add my username before issue\n * taon pfix proper input my-repo#344\n * that should be\n * taon pfix proper input my-username/my-repo#344\n */\n currentOrigin?: string;\n skipChildren?: boolean;\n noExit?: boolean;\n}\n//#endregion\n\n//#region command config\nexport class CommandConfig {\n static from(config: CommandConfig): CommandConfig {\n return new CommandConfig(config as any);\n }\n private constructor(data: CommandConfig) {\n Object.keys(data).forEach(key => {\n this[key] = data[key];\n });\n }\n name: string;\n cmd: string;\n\n headerMessageWhenActive?: string;\n /**\n * If true, the output will be stored in a buffer and displayed when requested.\n * Default: true\n */\n useDataBuffer?: boolean;\n /**\n * Process that should be started\n * before this process starts.\n */\n shouldBeActiveOrAlreadyBuild?: CommandConfig[] = [];\n goToNextCommandWhenOutput?:\n | string\n | {\n stdoutContains?: string | string[];\n stderrContains?: string | string[];\n };\n}\n//#endregion\n\n//#region process manager config\nexport interface ProcessManagerConfig<PROJECT> {\n title: string;\n header?: string;\n commands: CommandConfig[];\n /**\n * Default: false\n * If false - after first selection of processes, it will be not possible\n * to add new processes to build and build will be done after\n * all processes are done.\n */\n watch?: boolean;\n}\n//#endregion\n\n//#region command process state\nexport enum CommandProcessState {\n NOT_STARTED = 'not-started',\n WAITING_TO_START = 'waiting-to-start',\n RUNNING = 'running',\n FINISHED_AND_RUNNING = 'finished-and-running', // only for watch mode\n FINISHED = 'finished', // only for normal mode\n}\n//#endregion\n\n//#region command process run options\nexport interface CommandProcessRunOptions {\n progress?: (n: number, total: number) => void;\n resolveNextProcess?: (\n currentProcess: CommandProcess,\n ) => Promise<CommandProcess>;\n resolveWhenFinish?: boolean;\n}\n//#endregion\n\n//#region command process\nexport class CommandProcess {\n //#region fields and getters\n private state: CommandProcessState = CommandProcessState.NOT_STARTED;\n public readonly child_process?: ChildProcess;\n\n protected get cmd(): string {\n return this.config.cmd;\n }\n\n public get name(): string {\n return this.config.name;\n }\n\n get headerMessageWhenActive(): string | undefined {\n return this.config.headerMessageWhenActive;\n }\n\n get pid(): number | undefined {\n return this.child_process.pid;\n }\n\n get isFinished(): boolean {\n return [\n CommandProcessState.FINISHED,\n CommandProcessState.FINISHED_AND_RUNNING,\n ].includes(this.state);\n }\n\n get isRunning(): boolean {\n return [\n CommandProcessState.RUNNING,\n CommandProcessState.FINISHED_AND_RUNNING,\n ].includes(this.state);\n }\n\n get isWaitingToStart(): boolean {\n return this.state === CommandProcessState.WAITING_TO_START;\n }\n\n markForStart(): void {\n if (this.isRunning || this.isWaitingToStart) {\n console.warn(`Already running or waiting to start: ${this.name}`);\n return;\n }\n this.state = CommandProcessState.WAITING_TO_START;\n }\n\n //#endregion\n public dependenciesProcesses: CommandProcess[] = [];\n\n //#region constructor\n constructor(\n private project: BaseProject,\n private config: CommandConfig,\n private manager: BaseProcessManger,\n ) {}\n //#endregion\n\n //#region run\n\n async start(options?: CommandProcessRunOptions): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region stop\n async stop(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n//#endregion\n\n//#region docker-compose models\nexport interface DockerComposeFile {\n version: string;\n services: Record<string, DockerService>;\n networks?: Record<string, DockerNetwork>;\n volumes?: Record<string, DockerVolume>;\n}\n\nexport interface DockerService {\n build?: string | DockerBuild;\n image?: string;\n container_name?: string;\n ports?: string[];\n environment?: Record<string, string> | string[];\n volumes?: string[];\n depends_on?: string[];\n command?: string | string[];\n networks?: string[] | Record<string, unknown>;\n restart?: string;\n entrypoint?: string | string[];\n working_dir?: string;\n labels?: Record<string, string>;\n env_file?: string | string[];\n args?: Record<string, string> | string[];\n}\n\nexport interface DockerBuild {\n context: string;\n dockerfile?: string;\n args?: Record<string, string>;\n target?: string;\n}\n\nexport interface DockerNetwork {\n driver?: string;\n external?: boolean;\n name?: string;\n}\n\nexport interface DockerVolume {\n driver?: string;\n external?: boolean;\n name?: string;\n}\n//#endregion","//#region imports\nimport { _, chalk, Helpers, UtilsTerminal } from 'tnp-core/websql';\n\nimport { CommandProcess, ProcessManagerConfig } from '../../models';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport { BaseProject } from './base-project';\n\nexport { CommandConfig } from '../../models';\n//#endregion\n\n//#region custom console select/multiselect\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n//#endregion\n\nexport class BaseProcessManger<\n PROJECT extends BaseProject<any, any> = BaseProject<any, any>,\n> extends BaseFeatureForProject<PROJECT> {\n //#region fields and getters\n private initialOptions: ProcessManagerConfig<PROJECT>;\n private allProcesses: CommandProcess[] = [];\n private selectedProcesses: CommandProcess[] = [];\n public outputBuffer: string[] = [];\n public startedProcesses = new Set<CommandProcess>();\n public watch = false;\n\n //#region fields and getters / show logs\n private _showLogs: boolean = false;\n public set showLogs(value: boolean) {\n this._showLogs = value;\n this.hideOutput.stderr = !value;\n this.hideOutput.stdout = !value;\n }\n get showLogs(): boolean {\n return this._showLogs;\n }\n\n /**\n * special config for Helpers.executer\n */\n hideOutput = {\n stderr: !this.showLogs,\n stdout: !this.showLogs,\n acceptAllExitCodeAsSuccess: true,\n };\n //#endregion\n\n //#endregion\n\n //#region constructor\n constructor(project: PROJECT) {\n super(project as any);\n }\n //#endregion\n\n //#region init\n async init<PROJECT = BaseProject<any, any>>(\n initialOptions: ProcessManagerConfig<PROJECT>,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region show output\n private showOutput(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region kill or build menu\n private async killOrBuildMenu(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region make sure selected processes are running\n async makeSureSelectedProcessesAreRunning(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region start process with dependencies\n private async startProcessWithDependencies(\n process: CommandProcess,\n startedProcesses = new Set<CommandProcess>(),\n parent: CommandProcess | undefined = undefined,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region build menu\n private async buildMenu(allowedToShowOutput = true): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { config } from 'tnp-core/websql';\nimport { _, crossPlatformPath, path } from 'tnp-core/websql';\nimport { CLASS } from 'typescript-class-helpers/websql';\n\nimport { Helpers } from '../../index';\n\nimport { BaseProject } from './base-project';\nimport type { BaseProjectResolver } from './base-project-resolver';\n\n//#endregion\n\nexport abstract class BaseCommandLineFeature<\n PARAMS extends {} = any,\n PROJECT extends BaseProject<any, any> = BaseProject,\n PROJECT_RESOLVER extends\n BaseProjectResolver<PROJECT> = BaseProjectResolver<PROJECT>,\n> {\n /**\n * params from command line\n */\n protected params: PARAMS;\n protected ins: PROJECT_RESOLVER;\n\n protected __transformArgsBeforeResolvingParams__(args: string[]): string[] {\n const transformaed = args.map(a => {\n return a\n .replace(`--copyTo`, '--copyto')\n .replace(`copyTo`, '--copyto')\n .replace(`copyto`, '--copyto');\n });\n return transformaed;\n }\n\n /**\n * clean args without params from command line\n */\n args: string[];\n /**\n * first arg from args\n */\n get firstArg() {\n return _.first(this.args);\n }\n\n /**\n * last arg from args\n */\n get lastArg() {\n return _.last(this.args);\n }\n\n private __project: PROJECT;\n protected get project(): PROJECT {\n return this.__project;\n }\n protected set project(v: PROJECT) {\n // if (!v) {\n // Helpers.error(\n // `Command line cannot be executed on folder that is not know project.`,\n // false,\n // true,\n // );\n // }\n this.__project = v;\n }\n\n\n constructor(\n public readonly argsWithParams: string,\n protected readonly methodNameToCall: string,\n /**\n * nearest project to cwd\n */\n project: PROJECT,\n /**\n * process.cwd()\n */\n protected cwd: string,\n ins: PROJECT_RESOLVER,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n public _exit(code = 0): void {\n process.exit(code);\n }\n\n protected __initialize__() {}\n\n _tryResolveChildIfInsideArg() {\n const {\n resolved,\n clearedCommand,\n } = // @ts-ignore\n Helpers.cliTool.resolveItemFromArgsBegin<PROJECT>(this.args, arg =>\n this.project.getChildBy(arg.replace(/\\/$/, '')),\n );\n this.project = resolved ? resolved : this.project;\n this.args = resolved ? clearedCommand.split(' ') : this.args;\n }\n\n /**\n * method called when not using class methods\n */\n public abstract _();\n}","//#region imports\nimport { config, fileName, folderName } from 'tnp-core/websql';\nimport { _, crossPlatformPath, fse, path } from 'tnp-core/websql';\n\nimport { Helpers } from '../../index';\n\nimport { BaseFeatureForProject } from './base-feature-for-project';\nimport type { BaseProject } from './base-project';\n//#endregion\n\nexport class BaseFileFoldersOperations<\n PROJECT extends BaseProject = any,\n> extends BaseFeatureForProject<PROJECT> {\n //#region files and folders to copy when copying project\n /**\n * Relative to project root\n * @returns list of files and folders to copy when copying project\n */\n protected fielsAndFoldersToCopy(): string[] {\n return [\n folderName._bin,\n folderName.src,\n folderName.docs,\n fileName.package_json,\n fileName.README_MD,\n ];\n }\n //#endregion\n\n //#region move project to\n async moveProjectTo(destination: string): Promise<void> {\n await this.copyProjectTo(destination);\n this.deleteProject();\n }\n //#endregion\n\n //#region delete project\n deleteProject(options?: { skipChildren?: boolean }): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region copy project to\n async copyProjectTo(\n destination: string,\n options?: { skipChildren?: boolean },\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\n/* */ \n\nimport { Subject } from 'rxjs';\nimport {\n config,\n fileName,\n folderName,\n UtilsEtcHosts,\n UtilsExecProc,\n} from 'tnp-core/websql';\nimport {\n chalk,\n _,\n path,\n os,\n UtilsOs,\n fse,\n isElevated,\n Utils,\n UtilsJson,\n CoreModels,\n UtilsProcess,\n} from 'tnp-core/websql';\nimport { crossPlatformPath } from 'tnp-core/websql';\nimport { UtilsTerminal } from 'tnp-core/websql';\nimport { UtilsNetwork, UtilsDotFile } from 'tnp-core/websql';\n/* */ \nimport { UtilsCliClassMethod } from 'tnp-core/websql';\nimport { win32Path } from 'tnp-core/websql';\nimport { UtilsSudo } from 'tnp-core/websql';\n\nimport {\n BaseCLiWorkerStartMode,\n Helpers,\n LinkedProject,\n PushProcessOptions,\n UtilsJava,\n UtilsVSCode,\n UtilsZip,\n} from '../../index';\nimport { TypeOfCommit, CommitData } from '../commit-data';\nimport { GhTempCode } from '../gh-temp-code';\n\nimport { BaseCommandLineFeature } from './base-command-line-feature';\nimport { BaseProject } from './base-project';\nimport type { BaseProjectResolver } from './base-project-resolver';\n//#endregion\n\nexport class BaseGlobalCommandLine<\n PARAMS = any,\n PROJECT extends BaseProject<any, any> = BaseProject<any, any>,\n PROJECT_RESOLVER extends\n BaseProjectResolver<PROJECT> = BaseProjectResolver<PROJECT>,\n> extends BaseCommandLineFeature<PARAMS, PROJECT, PROJECT_RESOLVER> {\n public _(): void {\n Helpers.error('Please select git command');\n }\n\n /**\n * @returns true is sudo was used to restart the process\n */\n protected async _runAsSudoIfNotElevated({\n globalCommandName,\n }: {\n globalCommandName?: string;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region commands / prevent cwd is not project\n /**\n * TODO return argument not need for now\n */\n async cwdIsProject(options?: {\n requireProjectWithGitRoot?: boolean;\n }): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / hosts\n hosts() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / count commits\n countCommits() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / remove submodules\n removeSubmodules() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n removeSubmodule() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / set editor\n async setEditor() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / api update\n async upapi() {\n/* */\n/* */\n return (void 0);\n }\n\n async apiup() {\n/* */\n/* */\n return (void 0);\n }\n\n async apiUpdate() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / chore update\n async cu() {\n/* */\n/* */\n return (void 0);\n }\n\n async choreUpdate() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / color vscode\n colorvscode() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / settings vscode\n /**\n * Generate or update .vscode/settings.json file color settings\n */\n settingsVscode() {\n/* */\n/* */\n return (void 0);\n }\n\n refreshVscodeColors() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected _regenerateVscodeSettingsColors(overideBottomColor?: string): void {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n private async updateProject(\n project: PROJECT,\n options?: {\n updateType?: 'deep' | 'first-level' | 'only-this';\n force?: boolean;\n commitType?: TypeOfCommit;\n },\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region commands / force update\n async forceUpdate(): Promise<void> {\n if (!(await this.cwdIsProject({ requireProjectWithGitRoot: true }))) {\n return;\n }\n await this.updateProject(this.project, {\n force: true,\n });\n this._exit();\n }\n\n /**\n * alias for forceupdate\n */\n async forceup() {\n await this.forceUpdate();\n }\n //#endregion\n\n //#region commands / update\n async update(): Promise<void> {\n if (!(await this.cwdIsProject({ requireProjectWithGitRoot: true }))) {\n return;\n }\n await this.updateProject(this.project);\n this._exit();\n }\n\n /**\n * alias for update\n */\n async up() {\n await this.update();\n }\n\n /**\n * alias for update\n */\n async pu() {\n await this.update();\n }\n //#endregion\n\n //#region commands / docs update\n async docsUpdate(): Promise<void> {\n if (!(await this.cwdIsProject({ requireProjectWithGitRoot: true }))) {\n return;\n }\n await this.updateProject(this.project, {\n commitType: 'docs',\n });\n this._exit();\n }\n\n /**\n * alias for docsUpdate\n */\n async docsUp() {\n await this.docsUpdate();\n }\n //#endregion\n\n //#region commands / deep update\n async deepUpdate(): Promise<void> {\n if (!(await this.cwdIsProject({ requireProjectWithGitRoot: true }))) {\n return;\n }\n await this.updateProject(this.project, {\n updateType: 'deep',\n });\n this._exit();\n }\n\n /**\n * alias for deepupdate\n */\n async deepUp() {\n await this.deepUpdate();\n }\n //#endregion\n\n //#region commands / update all\n async updateAll(): Promise<void> {\n if (!(await this.cwdIsProject({ requireProjectWithGitRoot: true }))) {\n return;\n }\n await this.updateProject(this.project, {\n updateType: 'first-level',\n });\n this._exit();\n }\n\n /**\n * alias for updateAll\n */\n async upAll() {\n await this.updateAll();\n }\n //#endregion\n\n //#region commands / deep update force\n async deepUpdateForce(): Promise<void> {\n if (!(await this.cwdIsProject({ requireProjectWithGitRoot: true }))) {\n return;\n }\n await this.updateProject(this.project, {\n updateType: 'deep',\n force: true,\n });\n this._exit();\n }\n\n /**\n * alias for deepUpdateForce\n */\n async deepUpForce() {\n await this.deepUpdateForce();\n }\n //#endregion\n\n //#region commands / develop\n async develop() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async dev() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / repulll\n async repul() {\n/* */\n/* */\n return (void 0);\n }\n\n async repull() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / pull\n async pul() {\n/* */\n/* */\n return (void 0);\n }\n\n async pull() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / pull all\n async pullAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push and pull\n async pp() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / reset\n private __resetInfo(branchToReset: string, withChildren: boolean) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async fetch() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async reset() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / soft\n async soft() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / rebase\n async rebase() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / stash\n /**\n * stash only staged files\n */\n async stash() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / stash all\n /**\n * stash all files\n */\n async stashAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push all origins\n\n /**\n * push force to all origins\n */\n async pushAllForce(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pAllForce(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async pAllf(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async pAll(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * push to all origins\n */\n async pushAll(force = false): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push force\n async forcePush(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async pushForce(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / commit\n /**\n * Commit and push this for single repo\n */\n async commit(\n options: {\n force?: boolean;\n typeofCommit?: TypeOfCommit;\n origin?: string;\n commitMessageRequired?: boolean;\n noExit?: boolean;\n } = {},\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push\n async _preventPushPullFromNotCorrectBranch(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async qPush(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async quickPush(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async repushauto(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async rePush(skipQuesion = false): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async push(options: PushProcessOptions = {}): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / melt\n public async melt(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / melt\n public async meltUp() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / melt\n public async meltAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / melt updat ecommits\n private async __meltCommitsFunc(\n project: BaseProject,\n options?: { hideInfo?: boolean },\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private async meltUpdateCommits(options?: { hideInfo?: boolean }) {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push feature\n async pf() {\n/* */\n/* */\n return (void 0);\n }\n\n async pRel() {\n/* */\n/* */\n return (void 0);\n }\n\n async pRelease() {\n/* */\n/* */\n return (void 0);\n }\n\n async pushRelease() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async mPush() {\n/* */\n/* */\n return (void 0);\n }\n\n async fmPush() {\n/* */\n/* */\n return (void 0);\n }\n\n async mfPush() {\n/* */\n/* */\n return (void 0);\n }\n\n async mforcePush() {\n/* */\n/* */\n return (void 0);\n }\n\n async meltforcePush() {\n/* */\n/* */\n return (void 0);\n }\n\n async forceMeltPush() {\n/* */\n/* */\n return (void 0);\n }\n\n async meltPush(force = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pushFeature() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push fix\n async pushFix() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n pfix() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push chore\n async pushChore() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pc() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push refactor\n async pushRefactor() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pushref() {\n/* */\n/* */\n return (void 0);\n }\n\n async pref() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push style\n async pushStyle() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pstyl() {\n/* */\n/* */\n return (void 0);\n }\n\n async pstyle() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push docs\n async pushDocs() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pd() {\n/* */\n/* */\n return (void 0);\n }\n\n async pdocs() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push test\n async pushTest() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async pTest() {\n/* */\n/* */\n return (void 0);\n }\n\n async pTests() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push perf\n async pushPerf() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push ci\n async pushCi() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / select branch\n async branch() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / push build\n async pushBuild() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / set origin\n async SET_ORIGIN() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / rename origin\n async RENAME_ORIGIN() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / last hash tag\n async LAST_TAG_HASH() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / last tag\n async LAST_TAG() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / check tag exists\n CHECK_TAG_EXISTS() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / lint\n /**\n * TODO move somewhere\n */\n async lint() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / version\n /**\n * TODO move somewhere\n */\n async version() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / init\n /**\n * TODO move somewhere\n */\n async init() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * init parent and first level children\n */\n async initAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / struct\n /**\n * TODO move somewhere\n */\n async struct() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / info\n /**\n * TODO move somewhere\n */\n async info() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / info\n async modified() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / update\n async refresh(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / changes\n async changes() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / all tags\n async allTags() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / remove tag\n async removeTag() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / branch name\n BRANCH_NAME() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / remotes\n REMOTES() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async SET_REMOTE_SSH() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async SET_REMOTE_http() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async SET_REMOTE_https() {\n/* */\n/* */\n return (void 0);\n }\n\n protected _resolveChildFromArg() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n origin() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n remote() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n originHttp() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n originHttps() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n originssh() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n origins() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / git config\n gitConfig() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / lastCommitHash\n LAST_COMMIT_HASH() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / commit message by hash\n async COMMIT_MESSAGE_BY_HASH() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / last 5 commit hashes\n\n async LAST_5_COMMITS() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / update deps from\n async updateDepsFrom() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is terminal supported\n isSupportedTaonTerminal() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is terminal running inside cmd\n isRunningInWindowsCmd() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region is running inside powershell\n isRunningInWindowsPowerShell() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region prox ext\n async INSTALL_PROJECT_EXTENSIONS(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async INSTALL_PROJECT_EXT(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async INS_PROJ_EXT(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n\n async INSTALL_PROJ_EXT(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region proj db\n async projdb() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region filter all project branches by pattern\n private __filterBranchesByPattern(\n branchPatternOrBranchName: string,\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region select branch from list of branches\n private async __selectBrach(\n branches: string[],\n task: 'rebase' | 'reset' | 'checkout',\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / clone\n async clone() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / gh temp\n async ghSave() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async ghRestore() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / start cli service ports worker\n\n async ports() {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * tnp startCliServicePortsWorker --restart\n */\n async startCliServicePortsWorker(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / wait for any key\n async waitForUserAnyKey() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / pause terminal\n pauseTerminal() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / sleep terminal\n sleepTerminal() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / gh pages init\n async ghPagesInit() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / is port in use\n async isPortInUse() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / proc menu\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n //#endregion\n\n //#region commands / proc info\n procInfo() {\n/* */\n/* */\n return (void 0);\n }\n\n processInfo() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / last git tag\n lastGitTag() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / check ports\n async checkPort() {\n/* */\n/* */\n return (void 0);\n }\n\n async checkPorts() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / remove symlinks\n removeSymlinksDryRun() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / select java\n async selectJava() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / select tomcat\n async selectTomcat() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / ln\n LN() {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / copy\n copy() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / simulate domain\n async simulateDomain(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / preview\n async preview(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / shorten\n /**\n * read huge file and display only lines with specyfic words\n */\n async shorten() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / dump packages versions\n dumpPackagesVersions(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / zip\n async zip() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / unzip\n async unzip() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / start transmission\n async startTransmission() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async _removeTransmission() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / backup branch\n async backupBranch() {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bb() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / count code lines\n async countCodeLines() {\n/* */\n/* */\n return (void 0);\n }\n\n async countCode() {\n/* */\n/* */\n return (void 0);\n }\n\n async countLines() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / is node version ok\n isNodeVersionOk() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / pwd\n pwd(): void {\n config.frameworkName = 'taon';\n console.log(crossPlatformPath(this.cwd));\n this._exit();\n }\n //#endregion\n\n //#region commands / less-more big text files preview\n async more() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async less() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / mp3\n /**\n * npm install --global bin-version-check-cli\n * npm i -g yt-dlp\n * choco install ffmpeg\n */\n MP3(args) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / mp4\n MP4(args) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / gif from video\n gif(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / kill zscaller\n killZs() {\n/* */\n/* */\n return (void 0);\n }\n\n startZs() {\n/* */\n/* */\n return (void 0);\n }\n\n zsKill() {\n/* */\n/* */\n return (void 0);\n }\n\n zsStart() {\n/* */\n/* */\n return (void 0);\n }\n\n startZscaller() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n killZscaller() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / has command\n async hasCommand(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n hasCommandSync(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / public ip address\n async publicIpAddress(): Promise<void> {\n const ip = await UtilsNetwork.getCurrentPublicIpAddress();\n console.log(`Your public IP address is: ${ip}`);\n this._exit();\n }\n\n async publicIp(): Promise<void> {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / open origins in vscode\n async localIps(): Promise<void> {\n const firstActiveLocalIp =\n await UtilsNetwork.getFirstIpV4LocalActiveIpAddress();\n\n console.log(\n `Your first active local IP address is: ${firstActiveLocalIp} `,\n );\n\n const ips = await UtilsNetwork.getLocalIpAddresses();\n for (let index = 0; index < ips.length; index++) {\n const ip = ips[index];\n // console.log(ip);\n console.log(\n `${index + 1}. Local IP address is: ` +\n `${ip.address}, type: ${ip.type}`,\n );\n }\n this._exit();\n }\n //#endregion\n\n //#region commands / is online\n async isOnline() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / configure bash and shell\n async configureBash() {\n // ! TODO @UNCOMMENT\n // await UtilsTerminal.configureBashOrShell();\n }\n\n async configureShell() {\n // ! TODO @UNCOMMENT\n // await UtilsTerminal.configureBashOrShell();\n }\n\n confBash() {\n this.configureBash();\n }\n\n confShell() {\n this.configureShell();\n }\n //#endregion\n\n //#region commands / git reset all\n gitResetAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / is elevated\n async isElevated() {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region commands / sudo check\n async sudoCheck() {\n const sudoStatus = await UtilsSudo.getStatus();\n console.log('is command available', sudoStatus.isAvailable);\n console.log('is inline sudo enable', sudoStatus.isInline);\n console.log('is this command elevated (sudo or admin)', await isElevated());\n this._exit();\n }\n //#endregion\n\n //#region commands / python modules exists\n async pythonModuleExists() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { _ } from 'tnp-core/websql';\nimport { path } from 'tnp-core/websql';\n\nimport { Helpers } from '../index';\n//#endregion\n\n//#region open source proviers\nconst openSourceProvidersIssuePrefix = [\n 'GH',\n // 'GITHUB',\n // 'BB',\n // 'BITBUCKET',\n // 'GL',\n // 'GITLAB',\n];\n//#endregion\n\n//#region common commit msg branch\nexport type CommonCommitMsgBranch =\n | 'refactor'\n | 'chore'\n | 'style'\n | 'docs'\n | 'test'\n | 'ci'\n | 'build'\n | 'release';\n//#endregion\n\n//#region type of commit\nexport type TypeOfCommit =\n | 'feature'\n | 'bugfix'\n | 'performance'\n | CommonCommitMsgBranch;\n//#endregion\n\nexport type TypeOfMsgPrefix = 'feat' | 'fix' | 'perf' | CommonCommitMsgBranch;\nconst regexTeamsID: RegExp = /[A-Z0-9]+\\#/;\n\nconst regexCommitModuleInArgs: RegExp = /\\[[a-z|\\-|\\,]+\\]/;\nconst regexCommitModuleInBranch: RegExp = /\\-\\-[a-z|\\-|\\_]+\\-\\-/;\n\nexport class CommitData {\n //#region static\n\n //#region static / methods & getters / clean http(s) from commit message\n private static cleanHttpFromCommitMessage(commitMsg: string): string {\n if (!commitMsg) {\n return commitMsg;\n }\n commitMsg = commitMsg.replace('https://', '');\n commitMsg = commitMsg.replace('http://', '');\n return commitMsg;\n }\n //#endregion\n\n //#region static / methods & getters / get temas id from\n private static getTeamsIdFrom(commitMsg: string) {\n let teamID = _.first(commitMsg.match(regexTeamsID));\n if (teamID) {\n commitMsg = commitMsg.replace(teamID, '');\n }\n return {\n commitMsgOrBranchName: commitMsg,\n teamID,\n };\n }\n //#endregion\n\n //#region static / methods & getters / get module name from\n private static getModuleNameFrom(commitMsg: string) {\n let commitModuleName = _.first(commitMsg.match(regexCommitModuleInArgs));\n if (commitModuleName) {\n commitMsg = commitMsg.replace(commitModuleName, '');\n }\n commitModuleName = commitModuleName?.replace(/\\[/g, '').replace(/\\]/g, '');\n return {\n commitMsg,\n commitModuleName,\n };\n }\n //#endregion\n\n //#region static / methods & getters / extract jira numbers\n /**\n *\n * @returns jiras (from oldest to newset)\n */\n static extractAndOrderJiraNumbers(commitOrBranchName: string): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / methods & getters / extract jira numbers\n /**\n *\n * @returns jiras (from oldest to newset)\n */\n static extractAndOrderIssuesFromOtherProjects(\n /**\n * example:\n * commit: proper git commands tnp/GH-9 darekf77/tnp-helpers/GH-10\n * feature/__tnp-GH-9____darekf77_tnp-helpers-GH10__-proper-git-commands\n */\n commitOrBranchName: string,\n currentOrigin?: string,\n ): string[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / methods & getters / clean message from jira numbers, team id and stuff\n static cleanMessageFromJiraNumTeamIdEtc(\n message: string,\n optinos?: {\n teamID: string;\n commitModuleName: string;\n jiraNumbers: string[];\n issuesFromOtherProjects: string[];\n },\n ): string {\n message = message || '';\n let { teamID, commitModuleName, jiraNumbers, issuesFromOtherProjects } =\n optinos || {};\n teamID = teamID || this.getTeamsIdFrom(message).teamID || '';\n commitModuleName =\n commitModuleName ||\n this.getModuleNameFrom(message).commitModuleName ||\n '';\n jiraNumbers = jiraNumbers || this.extractAndOrderJiraNumbers(message) || [];\n issuesFromOtherProjects =\n issuesFromOtherProjects ||\n this.extractAndOrderIssuesFromOtherProjects(message) ||\n [];\n\n if (!!teamID.trim()) {\n message = message.replace(teamID.toLowerCase().replace('-', ' '), ' ');\n message = message.replace(teamID.toUpperCase().replace('-', ' '), ' ');\n }\n\n // console.log({ clere: 'CLEAR', issuesFromOtherProjects, message });\n\n for (const issueFromOtherProj of issuesFromOtherProjects || []) {\n // console.log('issueFromOtherProj', issueFromOtherProj);\n // console.log('message', message);\n message = message.replace(\n `__${issueFromOtherProj.replace(/\\//g, '_').replace(/\\-/g, ' ')}__`,\n ' ',\n );\n message = message.replace(issueFromOtherProj, ' ');\n message = message.replace(\n issueFromOtherProj.toLowerCase().replace('-', ' '),\n ' ',\n );\n message = message.replace(\n issueFromOtherProj.toUpperCase().replace('-', ' '),\n ' ',\n );\n message = message.replace(issueFromOtherProj.toLowerCase(), ' ');\n message = message.replace(regexCommitModuleInArgs, ' ');\n message = message.replace(regexCommitModuleInBranch, ' ');\n message = message.replace(/\\ \\ /g, ' ');\n }\n\n for (const jira of jiraNumbers || []) {\n message = message.replace(jira.toLowerCase().replace('-', ' '), ' ');\n message = message.replace(jira.toUpperCase().replace('-', ' '), ' ');\n message = message.replace(jira, ' ');\n message = message.replace(jira.toLowerCase(), ' ');\n message = message.replace(regexCommitModuleInArgs, ' ');\n message = message.replace(regexCommitModuleInBranch, ' ');\n message = message.replace(/\\ \\ /g, ' ');\n }\n\n if (!!teamID.trim()) {\n message = message.replace(/\\_/g, ' ');\n }\n\n if (!!commitModuleName.trim()) {\n const cleanedModuleName = commitModuleName\n .replace(/\\-/g, ' ')\n .replace(/\\,/g, '_');\n\n message = message.replace(cleanedModuleName, ' ');\n }\n return message\n .replace(/\\ \\ /g, ' ')\n .replace(/\\ \\ /g, ' ')\n .replace(/\\ \\ /g, ' ');\n }\n\n //#endregion\n\n //#region static / methods & getters / get module name from branch\n private static getModuleNameFromBranch(branchName: string) {\n let commitModuleName = _.first(branchName.match(regexCommitModuleInBranch));\n if (commitModuleName) {\n branchName = branchName.replace(commitModuleName, '');\n commitModuleName = commitModuleName\n ?.replace(/^\\-\\-/, '')\n ?.replace(/\\-\\-$/, '');\n if (commitModuleName.startsWith('-')) {\n commitModuleName = commitModuleName.replace(/^\\-/, '');\n }\n }\n commitModuleName = commitModuleName\n ?.replace(/^\\-\\-/, '')\n ?.replace(/\\-\\-$/, '')\n .replace(/\\_/, ',');\n\n return { commitModuleName };\n }\n //#endregion\n\n //#region static / methods & getters / get from args\n static async getFromArgs(\n args: string[],\n options: {\n typeOfCommit: TypeOfCommit;\n /**\n * only needed when push github\n * and I forgot to add my username before issue\n * taon pfix proper input my-repo#344\n * that should be\n * taon pfix proper input my-username/my-repo#344\n */\n currentOrigin?: string;\n jiraIssuesAreOutsideBrackets?: boolean;\n },\n ): Promise<CommitData> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / methods & getters / get from bramch\n static async getFromBranch(\n currentBranchName: string,\n options?: {\n releaseWords?: string[];\n /**\n * only needed when push github\n * and I forgot to add my username before issue\n * taon pfix proper input my-repo#344\n * that should be\n * taon pfix proper input my-username/my-repo#344\n */\n currentOrigin?: string;\n jiraIssuesAreOutsideBrackets?: boolean;\n },\n ): Promise<CommitData> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / methods & getters / from\n public static from(\n options: Pick<\n CommitData,\n | 'message'\n | 'jiraNumbers'\n | 'typeOfCommit'\n | 'commitModuleName'\n | 'teamID'\n | 'issuesFromOtherProjects'\n | 'jiraIssuesAreOutsideBrackets'\n >,\n ): CommitData {\n options = (options ? options : {}) as any;\n // console.log(options)\n const opt = _.merge(new CommitData(), _.cloneDeep(options));\n return opt;\n }\n //#endregion\n\n //#endregion\n\n //#region fields\n private _message: string;\n typeOfCommit: TypeOfCommit;\n /**\n * ex. JIRA-2132 or MYJIRAREFIX-234234\n */\n jiraNumbers: string[];\n\n /**\n * if true then jira issues are outside brackets\n * feat: proper git commands JIRA-1234\n *\n * by default is false\n * feat(JIRA-1234): proper git commands\n */\n jiraIssuesAreOutsideBrackets: boolean;\n\n /**\n * when set -> jiraIssuesAreOutsideBrackets is true\n */\n readonly commitModuleName: string;\n readonly teamID: string;\n //#endregion\n\n //#region methods & getters / clear message\n private clearMessage(message: string): string {\n return CommitData.cleanMessageFromJiraNumTeamIdEtc(message, {\n teamID: this.teamID,\n commitModuleName: this.commitModuleName,\n jiraNumbers: this.jiraNumbers,\n issuesFromOtherProjects: this.issuesFromOtherProjects,\n });\n }\n //#endregion\n\n //#region methods & getters / message\n /**\n * pure message what was done (without jira or prefixes)\n * => is included in this.commitMessage\n */\n get message() {\n return this.clearMessage(this._message);\n }\n set message(message) {\n this._message = this.clearMessage(message);\n }\n //#endregion\n\n useFeatureBranchForTestBranch: boolean = false;\n\n //#region methods & getters / branch prefix\n get branchPrefix(): TypeOfMsgPrefix {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / issues from other projects\n /**\n * ex. taon/GH-12 darekf77/tnp-helpers/GH-4\n */\n get issuesFromOtherProjects(): string[] {\n return this.__issuesFromOtherProjects;\n }\n\n set issuesFromOtherProjects(value: string[]) {\n this.__issuesFromOtherProjects = value;\n // this.__issuesFromOtherProjects = value.map(issue => {\n // console.log('MAPPING', issue);\n // console.log('project', this.project?.name);\n // if (issue.split('/').length === 1 && !!this.project) {\n // console.log('issue', issue);\n // const origin = Helpers.git.originSshToHttp(this.project.git.originURL);\n // const provider = _.first(origin.replace('https://', '').split('/'));\n // const cleanUserWithPath = origin\n // .replace('https://', '')\n // .replace(provider + '/', '')\n // .replace(path.basename(origin).replace('.git', ''), '');\n\n // const issueLastPart = _.last(issue.split('/'));\n // return `tnp/${cleanUserWithPath}/${issueLastPart}`;\n // }\n // return issue;\n // });\n }\n\n private __issuesFromOtherProjects: string[];\n //#endregion\n\n //#region methods & getters / commit message git commit -m\n get commitMessage(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / branch name\n get branchName(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / is action commit\n get isActionCommit() {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { _, path, crossPlatformPath } from 'tnp-core/websql';\nimport type { BaseProject } from './classes/base-project';\nimport { CLASS } from 'typescript-class-helpers/websql';\nimport { Helpers, LibrariesBuildOptions, TestBuildOptions } from '../index';\n//#endregion\n\n//#region core porject environment\nexport type CoreProjectEnvironment = {\n shortName?: string;\n name?: string;\n description?: string;\n onlineLink?: string;\n};\n//#endregion\n\n//#region constants\n//#region constants / defult db\nconst defaultDb = {\n projects: [],\n};\n//#endregion\n//#endregion\n\n//#region core project command args options\nexport type CoreCommandArgOptions<PROJECT extends BaseProject<any,any>> = {\n project?: PROJECT;\n /**\n * watch mode\n */\n watch?: boolean;\n prod?: boolean;\n debug?: boolean;\n isInReleaseProcess?: boolean;\n libraryBuildOptions?: LibrariesBuildOptions;\n testBuildOptions?: TestBuildOptions;\n /**\n * first arg from command line\n */\n firstArg?: string;\n /**\n * Not question for user ex.\n * - automatic process of patch release\n * - automatic deployment for default server\n */\n automaticProcess?: boolean;\n /**\n * orignal args with params\n */\n argsWithParams?: string;\n copyto?: string[];\n copytoall?: boolean;\n /**\n * args from command line (clearn from params)\n */\n args?: string[];\n exitCallback?: () => void;\n};\n//#endregion\n\nexport class CoreProject<PROJECT extends BaseProject = BaseProject> {\n //#region static\n\n //#region static / core projects\n public static coreProjects: CoreProject<any>[] = [];\n //#endregion\n\n //#region static / from\n static from<Proj extends BaseProject = BaseProject<any,any>>(\n options: Omit<CoreProject<Proj>, 'name' | 'url' | 'branch'>,\n ): CoreProject<Proj> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n //#region constructor\n private constructor() {}\n //#endregion\n\n //#region properties\n extends?: CoreProject<any>;\n color?: string;\n /**\n * second color for project (optional)\n */\n secondColor?: string;\n /**\n * second color for project (optional)\n */\n thirdColor?: string;\n npmRegistry?: string;\n description?: string;\n /**\n * ssh url for git repo\n */\n urlSSH?: string;\n /**\n * https url for git repo\n */\n urlHttp?: string;\n /**\n * main branches - first is default\n */\n branches: string[];\n /**\n * project environments\n */\n environments?: CoreProjectEnvironment[] = [];\n //#endregion\n\n //#region methods & getters\n cleanCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n initCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n /**\n * Build whatever is needed to run project\n * buildCommand includes initCommand\n */\n buildCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n /**\n * startCommand includes initCommand, buildCommand and launchCommand\n */\n startCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n /**\n * launch already built project\n */\n launchCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>\n releaseCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n publishCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n deployCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n testCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n docsCommand?: (options: CoreCommandArgOptions<PROJECT>) => Promise<void>;\n /**\n * function to recognize project\n */\n recognizedFn: (project: PROJECT) => boolean;\n\n /**\n * core porject name from repo basename\n */\n get name() {\n return path.basename(this.url).replace(/\\.git$/, '');\n }\n\n /**\n * main (default for reset) branch\n */\n get branch() {\n return _.first(this.branches);\n }\n\n /**\n * url for git repo\n */\n get url(): string {\n return (this.urlHttp ? this.urlHttp : this.urlSSH) || '';\n }\n //#endregion\n}\n\nexport const CoreTypescriptProject = CoreProject.from<BaseProject>({\n //#region configuration\n branches: ['master', 'develop'],\n environments: [],\n recognizedFn: project => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n },\n async startCommand({ project }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n },\n async buildCommand({ project, watch }) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n },\n\n //#endregion\n});\n\nexport const CoreAngularProject = CoreProject.from<BaseProject>({\n //#region configuration\n extends: CoreTypescriptProject,\n branches: ['master', 'develop'],\n environments: [],\n recognizedFn: project => {\n return project.hasFile('angular.json');\n },\n async startCommand({ project }) {\n await project.npmHelpers.nodeModules.makeSureInstalled();\n const port = await project.assignFreePort(4200);\n project.run(`npm-run ng serve --port ${port}`).sync();\n },\n async buildCommand({ project }) {\n await project.npmHelpers.nodeModules.makeSureInstalled();\n project.run(`npm-run ng build`).sync();\n },\n //#endregion\n});","import {\n config,\n notAllowedNames,\n notAllowedProjectNames,\n} from 'tnp-core/websql';\nimport { _, crossPlatformPath, path } from 'tnp-core/websql';\n\nimport { Helpers } from '../index';\n\nexport class LinkedProject {\n //#region static\n\n //#region static / from\n static from(options: Partial<LinkedProject>) {\n const linkedProj = _.merge(\n new (LinkedProject as any)(),\n _.cloneDeep(options),\n ) as LinkedProject;\n if (!linkedProj.relativeClonePath) {\n linkedProj.relativeClonePath = path.basename(\n linkedProj.remoteUrl().replace('.git', ''),\n );\n }\n if (!linkedProj.defaultBranch) {\n linkedProj.defaultBranch = 'master';\n }\n return linkedProj;\n }\n //#endregion\n\n //#region static / from name\n static fromName(\n projectName: string,\n currentRemoteUrl?: string,\n currentBranch?: string,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region static / detect\n static detect(\n insideLocation: string,\n options?: {\n recursive?: boolean;\n checkAlsoNonRepos?: boolean;\n },\n ): LinkedProject[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n /**\n * sometime there is project that has one project\n * embede inside another project\n */\n internalRealtiveProjectPath?: string;\n /**\n * don't access directly, use remoteUrl() instead\n */\n repoUrlSsh?: string;\n /**\n * don't access directly, use remoteUrl() instead\n */\n repoUrlHttp?: string;\n /**\n * don't access directly, use remoteUrl() instead\n */\n repoUrl?: string;\n /**\n * url for git repo\n */\n public remoteUrl(): string {\n if (this.repoUrl) {\n return this.repoUrl;\n }\n if (this.repoUrlHttp) {\n return this.repoUrlHttp;\n }\n return this.repoUrlSsh;\n }\n\n public remoteUrlTransformed(setOrigin: 'ssh' | 'http'): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n defaultBranch?: string;\n purpose?: string;\n relativeClonePath?: string;\n}\n\nexport class LinkedPorjectsConfig {\n //#region static\n\n //#region static / from\n static from(options: Partial<LinkedPorjectsConfig>) {\n options = options || {};\n options.projects = (options.projects || []).map(linkedProjOrname => {\n if (_.isString(linkedProjOrname)) {\n return LinkedProject.fromName(linkedProjOrname);\n }\n return LinkedProject.from(linkedProjOrname);\n });\n // .sort((a, b) => {\n // return (a.relativeClonePath || '').localeCompare((b.relativeClonePath || ''));\n // });\n return _.merge(new (LinkedPorjectsConfig as any)(), _.cloneDeep(options));\n }\n //#endregion\n //#endregion\n\n prefix?: string;\n skipRecrusivePush?: boolean;\n resetOnlyChildren?: boolean;\n projects: LinkedProject[];\n}","export * from './classes';\nexport * from './commit-data';\nexport * from './core-project';\nexport * from './linked-project';\nexport * from './tcp-udp-ports';\n/* */\n/* */\n ","import * as child from 'child_process';\nimport * as fse from 'fs';\nimport * as path from 'path';\n\nimport type { ExtensionContext, Uri } from 'vscode';\n\nimport {\n capitalizeFirstLetter,\n optionsFix,\n Log,\n getModuleName,\n shell,\n escapeStringForRegEx,\n deepClone,\n valueFromCommand,\n crossPlatformPath,\n getVscode,\n} from './helpers';\nimport { ProcesOptions, ProgressData, ResolveVariable } from './models';\n\nexport type ExecCommandTypeOpt = {\n vscode?: typeof import('vscode');\n log?: Log;\n context?: ExtensionContext;\n cwd?: string;\n uri: Uri;\n selectedUris: Uri[];\n rootFolderPath?: string;\n};\n\nexport type ExecCommandType =\n | string\n | string[]\n | ((opt: ExecCommandTypeOpt) => any);\n\nexport function executeCommand(\n titleOfTask,\n registerName: string,\n commandToExecute: ExecCommandType,\n pOptions?: ProcesOptions,\n isDefaultBuildCommand?: boolean,\n context?: ExtensionContext,\n debug?: boolean,\n) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}","import { CoreModels } from 'tnp-core/websql';\n\nimport type { ExecCommandType } from './execute-command';\n\nexport type CommandType = {\n command?: string;\n exec?: ExecCommandType;\n title?: string;\n group?: string;\n hideContextMenu?: boolean;\n options?: ProcesOptions;\n isDefaultBuildCommand?: boolean;\n};\n\nexport type ResolveVariable = {\n variable: string;\n resolveValueFromCommand?: string;\n prompt?: string;\n placeholder?: string | Function;\n variableValue?: any;\n encode?: boolean;\n options?: { option: any; label: string }[] | string;\n optionsResolved?: {\n option: any;\n label: string;\n skipNextVariableResolve?: boolean;\n }[];\n useResultAsLinkAndExit?: boolean;\n exitWithMessgeWhenNoOptions?: string;\n /**\n * { label: 'action item !!!', option: { action: 'STRING_SECRET_CODE' } }\n * { label: 'normal item', option: < primitive value > }\n */\n fillNextVariableResolveWhenSelectedIsActionOption?: boolean;\n};\n\nexport type ProcesOptions = {\n progressLocation?: 'notification' | 'statusbar';\n findNearestProject?: boolean;\n findNearestProjectWithGitRoot?: boolean;\n findNearestProjectType?: CoreModels.LibType;\n findNearestProjectTypeWithGitRoot?: CoreModels.LibType;\n syncProcess?: boolean;\n reloadAfterSuccesFinish?: boolean;\n cancellable?: boolean;\n titleWhenProcessing?: string;\n tnpNonInteractive?: boolean;\n tnpShowProgress?: boolean;\n debug?: boolean;\n showOutputDataOnSuccess?: boolean;\n showSuccessMessage?: boolean;\n askBeforeExecute?: boolean;\n resolveVariables?: ResolveVariable[];\n};\n\n/**\n * @deprecated\n */\nexport type PROGRESS_DATA_TYPE = 'info' | 'error' | 'warning' | 'event';\n\n/**\n * @deprecated\n */\nexport interface IProgressData {\n /**\n * How man percent of progress\n */\n value?: number;\n msg?: string;\n type?: PROGRESS_DATA_TYPE;\n date?: Date;\n}\n\n/**\n * @deprecated\n */\nexport class ProgressData implements IProgressData {\n public static resolveFrom(\n chunk: string,\n callbackOnFounded?: (json: ProgressData) => any,\n checkSplit = true,\n ): ProgressData[] {\n let progress;\n let res: ProgressData[] = [];\n if (typeof chunk !== 'string') {\n return [];\n }\n chunk = chunk.trim();\n\n if (checkSplit) {\n const split = chunk.split(/\\r\\n|\\n|\\r/);\n if (split.length > 1) {\n // console.log('split founded', split)\n split.forEach(s => {\n res = res.concat(this.resolveFrom(s, callbackOnFounded, false));\n });\n return res;\n }\n }\n\n if (/\\[\\[\\[.*\\]\\]\\]/g.test(chunk)) {\n chunk = chunk.replace(/^\\[\\[\\[/g, '').replace(/\\]\\]\\]$/g, '');\n progress = chunk;\n }\n if (typeof progress !== 'undefined') {\n try {\n const p = JSON.parse(progress);\n const single = Object.assign(new ProgressData(), p);\n res = res.concat([single]);\n if (typeof callbackOnFounded === 'function') {\n callbackOnFounded(single);\n }\n } catch (err) {\n console.log(err);\n console.error(`ProgresssBarData: fail to parse \"${progress}\"`);\n }\n }\n return res;\n }\n\n constructor(\n public value: number = 0,\n public msg: string = '',\n\n public type: PROGRESS_DATA_TYPE = 'event',\n public date: Date = new Date(),\n ) {}\n}","//#region @browser\nexport { HelpersAngular } from './helpers/for-browser/angular.helper';\n//#endregion\n\nexport * from './utils';\nimport { HelpersTaon as Base } from './helpers/helpers';\nexport const Helpers: Base = Base.Instance as Base;\nexport * from './base';\nexport * from './models';\n\nexport * from './old/execute-command';\n// export * from './old/helpers';\nexport * from './old/models';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultDb","Helpers","Base"],"mappings":"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"}