{"version":3,"file":"tnp-browser.mjs","sources":["../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/constants.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/options.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/project/abstract/taon-worker/taon-terminal-ui.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/project/abstract/taon-worker/taon-env.entity.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/migrations/1737301724542_addingSampleData.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/migrations/index.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/project/abstract/taon-worker/taon-build.entity.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/project/abstract/taon-worker/taon-project.entity.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/project/abstract/taon-worker/taon.controller.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/project/abstract/taon-worker/taon.context.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/project/abstract/taon-worker/taon.worker.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/project/abstract/project-resolve.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/project/abstract/project.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/vscode-ext-methods.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/vscode-menu-items.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/vscode-ext-menu.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/vscode-handle-taon-redirect.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/vscode-patching.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/lib/index.ts","../../../tmp-libs-for-dist/tnp/projects/tnp/src/tnp-browser.ts"],"sourcesContent":["// 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 = 'dev.taon.cli.tnp';\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';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n *  Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.192';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n      ","//#region imports\n\nimport { TaonTempDatabasesFolder, TaonTempRoutesFolder } from 'taon/browser';\nimport {\n  config,\n  dockerTemplates,\n  dotTaonFolder,\n  fileName,\n  folderName,\n  taonContainers,\n} from 'tnp-core/browser';\nimport { CoreModels, fse } from 'tnp-core/browser';\nimport { _, UtilsOs } from 'tnp-core/browser';\nimport { crossPlatformPath, path, Utils } from 'tnp-core/browser';\n\nimport { CURRENT_PACKAGE_VERSION } from './build-info._auto-generated_';\nimport type { EnvOptions } from './options';\nimport { DeploymentReleaseData } from './project/abstract/taon-worker/deployments/deployments.models';\n\n// import type { Project } from './project/abstract/project';\n//#endregion\n\nexport const whatToLinkFromCore: 'src' | 'src/lib' = 'src/lib';\n// export const whatToLinkFromCore: 'src' | 'src/lib' = 'src/lib';\n\n/**\n *  '' - when whatToLinkFromCore is src\n *  'lib' - when whatToLinkFromCore is src/lib\n *  'deep/folder' - when whatToLinkFromCore is src/deep/folder\n */\nexport const whatToLinkFromCoreDeepPart =\n  whatToLinkFromCore === ('src' as any)\n    ? ''\n    : (whatToLinkFromCore as string).replace('src/', '');\n\nexport const keysMap = {\n  destinationDomain: 'dn',\n  projectName: 'pn',\n  releaseType: 'rt',\n  version: 'ver',\n  envName: 'enm',\n  envNumber: 'enu',\n  targetArtifact: 'ta',\n} as Required<{ [key in keyof DeploymentReleaseData]: string }>;\n\nexport const dirnameFromSourceToProject = (linkToSource: string): string => {\n  const orgParamLinkAbs = linkToSource;\n  linkToSource = fse.realpathSync(linkToSource);\n  linkToSource = crossPlatformPath(linkToSource);\n  const orgRealLinkToSource = linkToSource;\n  const howManyDirname = whatToLinkFromCore.split('/').length;\n  _.times(howManyDirname, n => {\n    // console.log(`dirname action ${n}/${howManyDirname}`);\n    linkToSource = crossPlatformPath(path.dirname(linkToSource));\n  });\n  linkToSource = crossPlatformPath(linkToSource);\n  // console.log({ linkToSource, orgRealLinkToSource, howManyDirname });\n\n  if (path.basename(linkToSource) === 'src') {\n    // console.log(`FIXING NOT PROPER LINK TO SOURCE ${orgParamLinkAbs}`);\n    linkToSource = crossPlatformPath(path.dirname(linkToSource));\n    // if (whatToLinkFromCore === 'src') {\n    //   try {\n    //     fse.unlinkSync(orgParamLinkAbs);\n    //   } catch (error) {}\n    //   Helpers.createSymLink(\n    //     crossPlatformPath([linkToSource, whatToLinkFromCore]),\n    //     orgParamLinkAbs,\n    //   );\n    // }\n\n    // linkToSource = crossPlatformPath(path.dirname(linkToSource));\n  }\n\n  return linkToSource;\n};\n\nexport const DUMMY_LIB = '@lib';\n\nexport const DOCKER_COMPOSE_FILE_NAME = 'docker-compose.yml';\nexport const DOCKER_FOLDER = 'docker';\nexport const BASE_TEMP_DOCKER_FOLDER = 'tmp-docker';\n\nexport const DOCKER_TEMPLATES = 'docker-templates';\n\nexport const ACTIVE_CONTEXT = 'ACTIVE_CONTEXT';\n\nexport const friendlyNameForReleaseAutoConfigIsRequired = false;\n\nexport const iconVscode128Basename = 'icon-vscode.png';\n\nexport const startJsFromBin = 'start.js';\nexport const startTsFromLib = 'start-cli.ts';\n\nexport const taonIgnore = '@taon' + '-' + 'ignore';\n\nexport const DEBUG_WORD = 'Run'; //'Debug/Start';\n\nexport const GENERATE_CMD_COPY_TO_AI = 'generate-cmd-copy-to-ai';\n\nexport const scriptsCommands = [\n  'taon init',\n  'taon start',\n  'taon build:lib',\n  'taon build:watch:lib',\n  'taon build:watch:app',\n  'taon build:watch:electron',\n  'taon docs',\n  'taon docs:watch',\n  'taon clear',\n  'taon release',\n  'taon release:auto',\n  'taon release:install:locally',\n  'taon migration:create',\n  'taon migration:run',\n  'taon migration:revert',\n  'taon vscode:temp:show',\n  'taon vscode:temp:hide',\n];\n\nexport const THIS_IS_GENERATED_STRING = `THIS FILE IS GENERATED - DO NOT MODIFY`;\nexport const THIS_IS_GENERATED_INFO_COMMENT = `// ${THIS_IS_GENERATED_STRING}`;\n\nexport const defaultLicenseVscodePlugin = 'MIT';\n\nexport const OVERRIDE_FROM_TNP = [\n  'activationEvents',\n  'author',\n  'bugs',\n  'categories',\n  'description',\n  'engines',\n  'homepage',\n  'keywords',\n  'license',\n  'private',\n  'repository',\n  'scripts',\n];\n\nexport const startSpinner = 'start-spinner';\nexport const stopSpinner = 'stop-spinner';\nexport const failSpinner = 'fail-spinner';\nexport const succeedSpinner = 'succeed-spinner';\n\nexport const USE_IN_HOST_CONFIG_FULL_CONTEXT_PATH = false;\n\nexport const MIGRATION_CONST_PREFIX = 'MIGRATIONS_CLASSES_FOR_';\n\nlet taonUsingBundledCliMode = false;\n\n/* */\n/* */\n  \n\nexport { taonUsingBundledCliMode };\n\nexport const UNIT_TEST_TIMEOUT = 30000;\nexport const INTEGRATION_TEST_TIMEOUT = 30000;\n\nexport const USE_MIGRATIONS_DATA_IN_HOST_CONFIG = false;\n\nexport const COMPILATION_COMPLETE_LIB_NG_BUILD =\n  'Compilation complete. Watching for file changes';\n\nexport const COMPILATION_COMPLETE_APP_NG_SERVE = 'Compiled successfully';\n\nexport const COMPILATION_COMPLETE_TSC =\n  'Found 0 errors. Watching for file changes';\n\n// TODO get this from cli, global\nexport const DEFAULT_FRAMEWORK_VERSION =\n  `v${CURRENT_PACKAGE_VERSION.split('.')[0]}` as CoreModels.FrameworkVersion;\n\nexport {\n  taonRepoPathUserInUserDir,\n  taonBasePathToGlobalDockerTemplates,\n  globalSpinner\n} from 'tnp-core/browser';\n\n/**\n * Prevents taon from checking core container when\n * calling itself from child process\n */\nexport const skipCoreCheck = '--skipCoreCheck';\n\nexport const argsToClear = [\n  'websql',\n  'serveApp',\n  'skipNodeModules',\n  'skipSmartContainerDistInit',\n  'copyto',\n  'port',\n  'branding',\n  'struct',\n  'verbose',\n];\n\nexport const verbosePrefix = '-verbose';\nexport const spinnerPrefix = '-spinner';\nexport const linuxWatchPrefix = '-linuxWatch';\nexport const websqlPrefix = '-websql';\n\nexport const folder_shared_folder_info = 'shared_folder_info.txt';\nexport const taonConfigSchemaJsonStandalone =\n  'taon-config-standalone.schema.json';\nexport const taonConfigSchemaJsonContainer =\n  'taon-config-container.schema.json';\n\nexport const TEMP_DOCS = 'tmp-documentation';\n\nconst libsAppPortsFolder = 'libs-apps-ports';\n\nexport const HOST_BACKEND_PORT = 'HOST_BACKEND_PORT';\nexport const tmp_HOST_BACKEND_PORT = `${dotTaonFolder}/${libsAppPortsFolder}/${HOST_BACKEND_PORT}`;\n\nexport const FRONTEND_WEBSQL_APP_PORT = 'FRONTEND_WEBSQL_APP_PORT';\nexport const tmp_FRONTEND_WEBSQL_APP_PORT = `${dotTaonFolder}/${libsAppPortsFolder}/${FRONTEND_WEBSQL_APP_PORT}`;\n\nexport const FRONTEND_NORMAL_APP_PORT = 'FRONTEND_NORMAL_APP_PORT';\nexport const tmp_FRONTEND_NORMAL_APP_PORT = `${dotTaonFolder}/${libsAppPortsFolder}/${FRONTEND_NORMAL_APP_PORT}`;\n\nexport const FRONTEND_NORMAL_ELECTRON_PORT = 'FRONTEND_NORMAL_ELECTRON_PORT';\nexport const tmp_FRONTEND_NORMAL_ELECTRON_PORT = `${dotTaonFolder}/${libsAppPortsFolder}/${FRONTEND_NORMAL_ELECTRON_PORT}`;\n\nexport const DEFAULT_PORT = {\n  DIST_SERVER_DOCS: 4000,\n  APP_BUILD_LOCALHOST: 4200,\n  SERVER_LOCALHOST: 4100,\n  DEBUGGING_CLI_TOOL: 9222,\n  DEBUGGING_ELECTRON: 9888,\n};\n\nexport const docsConfigJsonFileName = 'docs-config.jsonc';\nexport const docsConfigSchema = 'docs-config.schema.json';\nexport const customDefaultCss = 'custom-default.css';\nexport const customDefaultJs = 'custom-default.js';\n\nexport const frameworkBuildFolders = Utils.uniqArray([\n  'firedev',\n  'taon',\n  'tnp',\n  `${config.frameworkName}`,\n])\n  .filter(f => !!f)\n  .map(f => `.${f}`);\n\nexport const envTs = 'env.ts';\n\nexport const environmentsFolder = 'environments';\n\nexport const coreRequiredEnvironments = [\n  '__',\n  'prod',\n] as CoreModels.EnvironmentNameTaon[];\n\n/**\n * @deprecated not needed probably\n */\nexport const result_packages_json = 'result-packages.json';\n\nexport const readmeMdMainProject = 'README.md';\n\nexport const tmpIsomorphicPackagesJson = 'tmp-isomorphic-packages.json';\n\n/**\n * If exist - copy manager will clean copy bundled package to destinations\n */\nexport const tmpAlreadyStartedCopyManager = 'tmp-already-started-copy-manager'; // not for prod\n\nexport const tmpAllAssetsLinked = 'tmp-all-assets-linked'; // not for prod\n\n/**\n * Destination place for all taon processes (tsc, ng build, etc)\n * From this folder code is copied to final destinations node_modules\n */\nexport const tmpLocalCopytoProjDist = 'tmp-local-copyto-proj-dist'; // not for prod\n\n/**\n * Folder where tmpSrdDist code is cutted file by file before publishing\n */\nexport const tmpCutReleaseSrcDist = 'tmp-cut-release-src-dist'; // not for prod\n\n/**\n * Folder where tmpSrdDist code is cutted file by file before publishing (websql version)\n */\nexport const tmpCutReleaseSrcDistWebsql = 'tmp-cut-release-src-dist-websql'; // not for prod\n\n/**\n * Temporary folder for base href overwrite during build\n * (taon library build sets it)\n */\nexport const tmpBaseHrefOverwrite = 'tmp-base-href-overwrite';\n\n/**\n * Temporary folder for vscode project files\n */\nexport const tmpVscodeProj = `tmp-vscode-proj`;\n\n/**\n * Taon code transformed for backend\n */\nexport const tmpSourceDist = 'tmp-source-dist'; // ok for prod\n/**\n * Taon code transformed for backend in websql mode\n * (this code is probably never used)\n */\nexport const tmpSourceDistWebsql = 'tmp-source-dist-websql'; // ok for prod\n\n/**\n * Taon code transformed for browser\n */\nexport const tmpSrcDist = 'tmp-src-dist'; // ok for prod\n/**\n * Taon code transformed for browser in websql mode\n */\nexport const tmpSrcDistWebsql = 'tmp-src-dist-websql'; // ok for prod\n\n/**\n * Taon code transformed for browser (angular app uses this)\n */\n\nexport const tmpSrcAppDist = 'tmp-src-app-dist'; // ok for prod\n\n/**\n * Taon code transformed for browser (angular app in websql uses this)\n */\nexport const tmpSrcAppDistWebsql = 'tmp-src-app-dist-websql'; // ok for prod\n\nexport const defaultConfiguration = 'defaultConfiguration';\n\nexport const mainProjectSubProjects = 'sub-projects';\n\nexport enum TempalteSubprojectType {\n  TAON_STRIPE_CLOUDFLARE_WORKER = 'taon-stripe-cloudflare-worker',\n  TAON_YT_CLOUDFLARE_WORKER = 'taon-yt-cloudflare-worker',\n}\n\nexport const TempalteSubprojectTypeArr: TempalteSubprojectType[] = [\n  TempalteSubprojectType.TAON_STRIPE_CLOUDFLARE_WORKER,\n  TempalteSubprojectType.TAON_YT_CLOUDFLARE_WORKER,\n];\n\nexport const TemplateSubprojectDbPrefix = {\n  [TempalteSubprojectType.TAON_STRIPE_CLOUDFLARE_WORKER]: 'SALES_KV',\n  [TempalteSubprojectType.TAON_YT_CLOUDFLARE_WORKER]: 'YT_DATA_KV',\n};\n\nexport enum TempalteSubprojectGroup {\n  KEY_VALUE_FAST_WORKER_DATABASE = 'key-value-fast-worker-database',\n}\n\nexport const TempalteSubprojectTypeGroup = {\n  [TempalteSubprojectType.TAON_STRIPE_CLOUDFLARE_WORKER]:\n    TempalteSubprojectGroup.KEY_VALUE_FAST_WORKER_DATABASE,\n  [TempalteSubprojectType.TAON_YT_CLOUDFLARE_WORKER]:\n    TempalteSubprojectGroup.KEY_VALUE_FAST_WORKER_DATABASE,\n};\n\n/**\n * template folders from isomorphic lib\n */\nexport enum TemplateFolder {\n  /**\n   * Core project for angular app webapp, library and electron app\n   */\n  templateApp = 'template-app',\n\n  templatesSubprojects = 'templates-subprojects',\n\n  /**\n   * @deprecated\n   * Core project angular library\n   */\n  // templateLib = 'template-lib',\n\n  /**\n   * @deprecated\n   * Core project template for electron app\n   */\n  // templateElectron = 'template-electron',\n}\n\nexport enum AngularJsonTaskName {\n  ANGULAR_APP = 'app',\n  ELECTRON_APP = 'angular-electron',\n}\n\nexport enum CoreAssets {\n  sqlWasmFile = 'sql-wasm.wasm',\n  mainFont = 'flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2',\n}\n\nexport const dockerTemplatesFolder = 'docker-templates';\n\nexport enum DockerTemplatesFolders {\n  ANGULAR_APP_NODE = 'angular-app-node',\n  ANGULAR_APP_SSR_NODE = 'angular-app-ssr-node',\n  BACKEND_APP_NODE = 'backend-app-node',\n  DATABASE_MYSQL = 'database-mysql',\n}\n\nexport enum CoreNgTemplateFiles {\n  sqlJSLoaderTs = 'sqljs-loader.ts',\n  SERVER_TS = 'server.ts',\n  JEST_CONFIG_JS = 'jest.config.js',\n  SETUP_JEST_TS = 'setupJest.ts',\n  JEST_GLOBAL_MOCKS_TS = 'jestGlobalMocks.ts',\n  NG_PACKAGE_JSON = 'ng-package.json',\n  PACKAGE_JSON = 'package.json', // fileName.package_json,\n  ANGULAR_JSON = 'angular.json', // fileName.angular_json,\n  INDEX_HTML_NG_APP = 'index.html',\n  FAVICON_ICO = 'favicon.ico',\n  WEBMANIFEST_JSON = 'manifest.webmanifest',\n}\n\nexport enum TaonGeneratedFiles {\n  BUILD_INFO_MD = 'BUILD-INFO.md',\n  build_info_generated_ts = 'build-info._auto-generated_.ts',\n  index_generated_ts = 'index._auto-generated_.ts',\n  BUILD_INFO_AUTO_GENERATED_JS = 'build-info._auto-generated_.js',\n  MIGRATIONS_INFO_MD = 'migrations-info.md',\n  MOCHA_TESTS_INFO_MD = 'mocha-tests-info.md',\n  SHARED_FOLDER_INFO_TXT = 'shared_folder_info.txt',\n  APP_HOSTS_TS = 'app.hosts.ts',\n  LAUNCH_JSON = 'launch.json',\n  LAUNCH_BACKUP_JSON = 'launch-backup.json',\n  VARS_SCSS = 'vars.scss',\n  LIB_INFO_MD = 'lib-info.md',\n  APP_FOLDER_INFO_MD = 'app-folder-info.md',\n}\n\nexport const DS_Store = '.DS_Store';\n\nexport enum TaonGeneratedFolders {\n  ENV_FOLDER = 'env',\n  COMPILED = 'compiled',\n}\n\nexport const splitNamespacesJson = 'split-namespaces.json';\n\nexport const reExportJson = 're-export.json';\n\n/**\n * Main project /dist folder\n */\nexport const nodeModulesMainProject = folderName.node_modules;\n\nexport const nodeModulesSubPorject = folderName.node_modules;\n\n/**\n * Main project /dist-nocutsrc folder (d.ts files without code cutting)\n */\nexport const distNoCutSrcMainProject = `dist-nocutsrc`;\n\n/**\n * Main project /dist folder\n */\nexport const distMainProject = folderName.dist;\n\n/**\n * Vscode project dist folder\n */\nexport const distVscodeProj = folderName.dist;\n\n/**\n * Electron project dist folder\n */\nexport const distElectronProj = folderName.dist;\n\n/**\n * Normal angular app build\n */\nexport const distFromNgBuild = folderName.dist;\n\n/**\n * Dist from sass loader\n */\nexport const distFromSassLoader = folderName.dist;\n\nexport const electronNgProj = 'electron';\n\nexport const combinedDocsAllMdFilesFolder = `allmdfiles`;\n\n/**\n * Vscode project dist folder\n */\nexport const outVscodeProj = folderName.out;\n\n/**\n * Main project /docs folder\n */\nexport const docsMainProject = folderName.docs;\n\n/**\n * Main project /bin folder\n */\nexport const binMainProject = folderName.bin;\n\n/**\n * Main project /src folder\n */\nexport const srcMainProject = folderName.src;\n\n/**\n * src from template proxy project\n */\nexport const srcNgProxyProject = folderName.src;\n\n/**\n * each taon import ends with /src\n */\nexport const srcFromTaonImport = folderName.src;\n\n/**\n * each taon import ends with /src\n */\nexport const srcDtsFromNpmPackage = 'src.d.ts';\n\nexport const srcJSFromNpmPackage = 'src.js';\n\nexport const myLibFromNgProject = 'my-lib';\n\nexport const externalLibsFromNgProject = 'external-libs';\n\n/**\n * projects/my-lib form angular lib template\n */\nexport const projectsFromNgTemplate = folderName.projects;\n\n/**\n * @deprecated special place in standalone project for projects\n */\nexport const projectsFromMainProject = folderName.projects;\n\n/**\n * Main project app folder from /src/app folder\n */\nexport const appFromSrc = folderName.app;\n\n/**\n * Generated app inside angular app (comes from /src/app folder)\n */\nexport const appFromSrcInsideNgApp = folderName.app;\n\nexport const libTypeString = folderName.lib;\n\nexport const browserTypeString = folderName.browser;\n\nexport const websqlTypeString = folderName.websql;\n\n/**\n * Main project lib folder from /src/lib folder\n */\nexport const libFromSrc = folderName.lib;\n\n/**\n * Lib from taon import\n */\nexport const libFromImport = folderName.lib;\n\n/**\n * Lib from dist/lib\n */\nexport const libFromCompiledDist = folderName.lib;\n\n/**\n * Lib from npm packages\n */\nexport const libFromNpmPackage = folderName.lib;\n\n/**\n * lib from ng projects\n */\nexport const libFromNgProject = folderName.lib;\n\n/**\n * Main project tests folder from /src/tests folder\n */\nexport const testsFromSrc = folderName.tests;\n\n/**\n * Main project assets from /src/assets folder\n */\nexport const assetsFromSrc = folderName.assets;\n\n/**\n * Assets stored in taon isomorphic npm package with\n */\nexport const assetsFromNpmLib = folderName.assets;\n\n/**\n * Main project assets from /tmp-*\\/src/assets folder\n */\nexport const assetsFromTempSrc = folderName.assets;\n\n/**\n * Assets from ng template project\n */\nexport const assetsFromNgProj = folderName.assets;\n\n/**\n * Assets from npm package\n */\nexport const assetsFromNpmPackage = folderName.assets;\n\n/**\n * Shared from assets from assets/assets-for/tnp/assets/shared folder\n */\nexport const sharedFromAssets = folderName.shared;\n\n/**\n * Generated folder in assets from assets/assets-for/tnp/assets/generated folder\n */\nexport const generatedFromAssets = folderName.generated;\n\n/**\n * Generated pwa assets from assets/assets-for/tnp/assets/generated/pwa folder\n */\nexport const pwaGeneratedFolder = 'pwa';\n\n/**\n * Generated assets-for folder\n */\nexport const assetsFor = 'assets-for';\n\n/**\n * @deprecated it was probably needed for old container build\n * Folder for all browser libs\n */\nexport const libs = folderName.libs;\n\nexport enum BundledFiles {\n  CNAME = 'CNAME',\n  README_MD = 'README.md',\n  CLI_README_MD = 'CLI-README.md',\n  INDEX_HTML = 'index.html',\n}\n\nexport enum AngularJsonAppOrElectronTaskName {\n  developmentSsr = 'development',\n  productionSsr = 'production',\n  developmentStatic = 'development-static',\n  productionStatic = 'production-static',\n}\n\nexport const AngularJsonAppOrElectronTaskNameResolveFor = (\n  envOptions: EnvOptions,\n): AngularJsonAppOrElectronTaskName => {\n  if (envOptions.build.websql || !envOptions.build.ssr) {\n    if (!envOptions.build.watch && !!envOptions.release.releaseType) {\n      return AngularJsonAppOrElectronTaskName.productionStatic;\n    } else {\n      return AngularJsonAppOrElectronTaskName.developmentStatic;\n    }\n  } else {\n    if (!envOptions.build.watch && !!envOptions.release.releaseType) {\n      return AngularJsonAppOrElectronTaskName.productionSsr;\n    } else {\n      return AngularJsonAppOrElectronTaskName.developmentSsr;\n    }\n  }\n};\n\nexport enum AngularJsonLibTaskName {\n  development = 'development',\n  production = 'production',\n}\n\nexport const AngularJsonLibTaskNameResolveFor = (\n  envOptions: EnvOptions,\n): AngularJsonLibTaskName => {\n  if (!envOptions.build.watch && !!envOptions.release.releaseType) {\n    return AngularJsonLibTaskName.production;\n  } else {\n    return AngularJsonLibTaskName.development;\n  }\n};\n\nexport enum BundledDocsFolders {\n  VERSION = 'version',\n}\n\nexport enum TaonCommands {\n  NPM_RUN_TSC = 'npm-run tsc',\n  NPM_RUN_NG = 'npm-run ng',\n  NG = 'ng',\n}\n\nexport const appTsFromSrc = 'app.ts';\n\nexport const appAutoGenDocsMd = 'app.auto-gen-docs.md';\n\nexport const appAutoGenJs = 'app.auto-gen-ver.js';\nexport const appJsBackend = 'app.js';\n\nexport const appScssFromSrc = 'app.scss';\n\nexport const globalScssFromSrc = 'global.scss';\n\nexport const ngProjectStylesScss = 'styles.scss';\n\nexport const appElectronTsFromSrc = 'app.electron.ts';\n\nexport const appVscodeTsFromSrc = 'app.vscode.ts';\n\nexport const appVscodeJSFromBuild = 'app.vscode.js';\n\nexport enum TaonFileExtension {\n  DOT_WORKER_TS = '.worker.ts',\n  DOT_CONTEXT_TS = '.context.ts',\n}\n\n/**\n * ng build for library from /src/lib\n */\nexport const tmpLibsForDist = 'tmp-libs-for-dist';\n/**\n * ng build for library from /src/lib (websql code)\n */\nexport const tmpLibsForDistWebsql = 'tmp-libs-for-dist-websql';\n\n/**\n * normal angular app build\n */\nexport const tmpAppsForDist = 'tmp-apps-for-dist';\n/**\n * websql angular app build\n */\nexport const tmpAppsForDistWebsql = 'tmp-apps-for-dist-websql';\n/**\n * electron angular app build\n */\nexport const tmpAppsForDistElectron = `tmp-apps-for-dist-electron`;\n\nexport const tmpAppsForDistElectronWebsql = `tmp-apps-for-dist-websql-electron`;\n\n/**\n * Dummy auto generated /src/index.ts\n */\nexport const indexTsFromSrc = fileName.index_ts;\n\n/**\n * Entry point for angular lib from /src/lib/index.ts\n */\nexport const indexTsFromLibFromSrc = fileName.index_ts;\n\n/**\n * Entry point for scss from /src/index.scss\n */\nexport const indexScssFromSrc = fileName.index_ts;\n\n/**\n * Index for autogenerated migrations /src/migrations/index.ts\n */\nexport const indexTsFromMigrationsFromSrc = fileName.index_ts;\n\n/**\n * Entry point for scss from /src/lib/index.scss\n */\nexport const indexScssFromSrcLib = 'index.scss';\n\n/**\n *\n * @param appForLib if true code is for angular (ng server/build) app build, false for lib ng build\n * @param websql if true websql version\n * @returns relative path to temp browser source folder\n */\nexport function tempSourceFolder(\n  appForLib: boolean,\n  websql: boolean,\n  prod = false,\n): string {\n  if (appForLib && websql) {\n    return tmpSrcAppDistWebsql + (prod ? prodSuffix : '');\n  }\n  if (appForLib && !websql) {\n    return tmpSrcAppDist + (prod ? prodSuffix : '');\n  }\n  if (!appForLib && websql) {\n    return tmpSrcDistWebsql + (prod ? prodSuffix : '');\n  }\n  if (!appForLib && !websql) {\n    return tmpSrcDist + (prod ? prodSuffix : '');\n  }\n} // ok for prod\n\nexport const ENV_INJECT_COMMENT = '<!--ENV_INJECT-->';\nexport const isomorphicPackagesJsonKey = 'isomorphicPackages';\n\nexport const browserMainProject = folderName.browser;\nexport const browserFromCompiledDist = folderName.browser;\nexport const browserNgBuild = folderName.browser;\nexport const browserFromImport = folderName.browser;\nexport const browserNpmPackage = folderName.browser;\nexport const websqlMainProject = folderName.websql;\n\nexport const websqlFromCompiledDist = folderName.websql;\nexport const websqlFromImport = folderName.websql;\n\nexport const websqlNpmPackage = folderName.websql;\n\nexport const clientCodeVersionFolder = [browserMainProject, websqlMainProject];\n\nexport const notAllowedAsPacakge = [...clientCodeVersionFolder, assetsFromSrc];\n\nexport const MESSAGES = {\n  SHUT_DOWN_FOLDERS_AND_DEBUGGERS:\n    'Please shut down your code debugger and any open windows from node_modules and press any key...',\n};\n\nexport const localReleaseMainProject = 'local_release';\n\nexport const dotInstallDate = '.install-date';\n\nexport const KV_DATABASE_ONLINE_NAME = 'KV_DATABASE_ONLINE_NAME';\n\nexport const dotVscodeMainProject = '.vscode';\n\nexport const indexTsInSrcForWorker = `src/index.ts`;\n\nexport const wranglerJsonC = `wrangler.jsonc`;\n\nexport const packageJsonLockMainProject = fileName.package_lock_json;\n\nexport const packageJsonLockSubProject = fileName.package_lock_json;\n\nexport const yarnLockMainProject = fileName.yarn_lock;\n\nexport const packageJsonMainProject = fileName.package_json;\n\nexport const packageJsonSubProject = fileName.package_json;\n\nexport const packageJsonNpmLib = fileName.package_json;\n\nexport const packageJsonVscodePlugin = fileName.package_json;\n\nexport const packageJsonNpmLibAngular = fileName.package_json;\n\nexport const packageJsonNgProject = fileName.package_json;\n\nexport const packageJsonLibDist = fileName.package_json;\n\nexport const tsconfigJsonMainProject = 'tsconfig.json';\nexport const tsconfigNgProject = 'tsconfig.json';\n\nexport const tsconfigSubProject = 'tsconfig.json';\n\nexport const tsconfigSpecNgProject = 'tsconfig.spec.json';\n\n// export const tsconfigForUnitTestsNgProject = 'tsconfig.spec-for-unit.json';\n\nexport const tsconfigSpecJsonMain = 'tsconfig.spec.json';\n\n/**\n * TODO not used?\n */\nexport const tsconfigJsonBrowserMainProject = 'tsconfig.browser.json';\n\nexport const tsconfigBackendDistJson = 'tsconfig.backend.dist.json';\n\nexport const tsconfigBackendDistJson_PROD = 'tsconfig.backend.dist.prod.json';\n\nexport const tsconfigForSchemaJson = 'tsconfig-for-schema.json';\n\nexport const tsconfigJsonIsomorphicMainProject = 'tsconfig.isomorphic.json';\n\nexport const dotNpmrcMainProject = fileName._npmrc;\n\nexport const dotGitIgnoreMainProject = fileName._gitignore;\n\nexport const dotNpmIgnoreMainProject = fileName._npmignore;\n\nexport const webpackConfigJsMainProject = 'webpack.config.js';\n\nexport const esLintCustomRulesMainProject = 'eslint-rules';\nexport const esLintConfigJsonMainProject = 'eslint.config.ts';\nexport const vitestConfigJsonMainProject = 'vitest.config.ts';\nexport const esLintRuleNoNamespaceReExport =\n  'eslint-rules/no-namespace-reexport.ts';\n\nexport const runJsMainProject = 'run.js';\n\nexport const indexDtsMainProject = fileName.index_d_ts;\n\nexport const indexDtsNpmPackage = fileName.index_d_ts;\n\nexport const indexJSNpmPackage = fileName.index_js;\n\nexport const indexJSElectronDist = fileName.index_js;\n\nexport const indexProdJs = 'index-prod.js';\n\nexport const cliTsFromSrc = 'cli.ts';\n\nexport const cliJSNpmPackage = 'cli.js';\n\nexport const cliJSMapNpmPackage = 'cli.js.map';\n\nexport const cliDtsNpmPackage = 'cli.d.js';\n\nexport const indexJsMainProject = fileName.index_js;\n\nexport const indexJsMapMainProject = fileName.index_js_map;\n\nexport const sourceLinkInNodeModules = folderName.source;\n\nexport const taonJsonMainProject = fileName.taon_jsonc;\n\nexport const updateVscodePackageJsonJsMainProject =\n  'update-vscode-package-json.js';\n\nexport const VERIFIED_BUILD_DATA = 'VERIFIED-BUILD-DATA.jsonc';\n\nexport interface TaonVerifiedBuild {\n  commitHash: string;\n  commitName: string;\n  commitDate: string | Date;\n}\n\nexport const routes = TaonTempRoutesFolder;\n\nexport const databases = TaonTempDatabasesFolder;\n\nexport const dotFileTemplateExt = '.filetemplate';\n\nexport const dotEnvFile = '.env';\n\nexport const suffixLatest = '-latest';\nexport const prodSuffix = '-prod';\n\nexport const releaseSuffix = '-release';\n\nexport const debugSuffix = '--debug';\n\nexport const debugBrkSuffix = '--debug-brk';\n\nexport const inspectSuffix = '--inspect';\n\nexport const inspectBrkSuffix = '--inspect-brk';\n\nexport const containerPrefix = 'container-';\n\nexport const testEnvironmentsMainProject = folderName.testsEnvironments;\n\nexport const ONLY_COPY_ALLOWED = [\n  // 'background-worker-process',\n  'better-sqlite3',\n  '.bin',\n  '.install-date',\n];\n\n/**\n * to prevent lib error when building with asserts\n */\nexport const TO_REMOVE_TAG = `/${'TO_REMOVE'\n  .split('')\n  .map(c => _.times(8, () => c).join(''))\n  .join('')}`;\n\nexport const ERR_MESSAGE_DEPLOYMENT_NOT_FOUND = 'DEPLOYMENT_NOT_FOUND';\n\nexport const migrationsFromLib = folderName.migrations;\n\nexport const migration_index_autogenerated_ts =\n  'migrations_index._auto-generated_.ts';\n\nexport const migrationIndexAutogeneratedTsFileRelativeToSrcPath =\n  crossPlatformPath([\n    libFromSrc,\n    migrationsFromLib,\n    migration_index_autogenerated_ts,\n  ]);","import type axiosType from 'axios';\nimport { walk } from 'lodash-walk-object/browser';\nimport { chalk, config, LibTypeEnum, UtilsTerminal } from 'tnp-core/browser';\nimport { Helpers } from 'tnp-core/browser';\nimport { CoreModels, _, crossPlatformPath } from 'tnp-core/browser';\n\nimport { DOCKER_TEMPLATES } from './constants';\nimport { Models } from './models';\nimport type { Project } from './project/abstract/project';\n\n//#region release artifact taon\n/**\n * All possible release types for taon\n * for MANUAL/CLOUD release\n */\nexport enum ReleaseArtifactTaon {\n  /**\n   * Npm lib package and global cli tool\n   */\n  NPM_LIB_PKG_AND_CLI_TOOL = 'npm-lib-and-cli-tool',\n\n  /**\n   * Angular frontend webapp (pwa) + nodejs backend inside docker\n   */\n  ANGULAR_NODE_APP = 'angular-node-app',\n  /**\n   * Angular + Electron app\n   */\n  ELECTRON_APP = 'electron-app',\n  /**\n   * Angular + Capacitor\n   */\n  MOBILE_APP = 'mobile-app',\n  /**\n   * Visual Studio Code extension/plugin\n   */\n  VSCODE_PLUGIN = 'vscode-plugin',\n  /**\n   * Documentation (MkDocs + compodoc + storybook)\n   * webapp (pwa) inside docker\n   */\n  DOCS_DOCS_WEBAPP = 'docs-webapp',\n}\n\nexport const ReleaseArtifactTaonNamesArr: ReleaseArtifactTaon[] = [\n  ReleaseArtifactTaon.NPM_LIB_PKG_AND_CLI_TOOL,\n  ReleaseArtifactTaon.ANGULAR_NODE_APP,\n  ReleaseArtifactTaon.ELECTRON_APP,\n  ReleaseArtifactTaon.MOBILE_APP,\n  ReleaseArtifactTaon.VSCODE_PLUGIN,\n  ReleaseArtifactTaon.DOCS_DOCS_WEBAPP,\n];\n//#endregion\n\n//#region release type\nexport enum ReleaseType {\n  /**\n   * Manual release (happen physically on local machine)\n   */\n  MANUAL = 'manual',\n  /**\n   * Releases artifact to local repository <project-location>/local_release/<artifact-name>/<release build files>\n   */\n  LOCAL = 'local',\n  /**\n   * Trigger cloud release (happen on cloud server)\n   * Cloud release actually start \"Manual\" release process on cloud server\n   */\n  CLOUD = 'cloud',\n  /**\n   * Trigger cloud release (happen on cloud server)\n   * Cloud release actually start \"Manual\" release process on cloud server\n   */\n  STATIC_PAGES = 'static-pages',\n}\n\nexport const ReleaseTypeArr: ReleaseType[] = [\n  ReleaseType.MANUAL,\n  ReleaseType.LOCAL,\n  ReleaseType.CLOUD,\n  ReleaseType.STATIC_PAGES,\n];\n\nexport const Development = 'development';\nexport const ReleaseTypeWithDevelopmentArr: (ReleaseType | 'development')[] = [\n  ...ReleaseTypeArr,\n  Development,\n];\n\n//#endregion\n\n//#region env options\n\n//#region env options / build\n\n//#region env options / build / pwa\nclass EnvOptionsBuildPwa {\n  declare disableServiceWorker: boolean;\n\n  declare name?: string;\n\n  declare short_name?: string;\n\n  declare start_url?: string;\n  // theme_color?: string;\n  // background_color?: string;\n  // display?: string;\n  // scope?: string;\n}\n//#endregion\n\n//#region env options / build / electron\nclass EnvOptionsBuildElectron {\n  declare showDevTools: boolean;\n}\n//#endregion\n\n//#region env options / build / cli\nclass EnvOptionsBuildCli {\n  /**\n   * using esbuild (default false)\n   */\n  declare minify: boolean;\n\n  /**\n   *  using esbuild (default false)\n   */\n  declare includeNodeModules: boolean;\n\n  /**\n   * using uglifyjs\n   */\n  declare uglify: boolean;\n\n  /**\n   * using only works with uglify = true\n   */\n  declare compress: boolean;\n\n  /**\n   * using  obscurejs\n   */\n  declare obscure: boolean;\n}\n//#endregion\n\nclass EnvOptionsNodeBackendApp {\n  /**\n   * using esbuild\n   */\n  declare minify: boolean;\n}\n\n//#region env options / build / cli\nclass EnvOptionsBuildLib {\n  declare removeDts: boolean;\n\n  declare uglifyFileByFile: boolean;\n\n  declare obscureFileByFile: boolean;\n\n  declare includeSourceMaps: boolean;\n\n  declare compress: boolean;\n\n  /**\n   * skip include lib files (only cli.js + bin stays)\n   * Perfect for just releasing cli tool\n   */\n  declare doNotIncludeLibFiles: boolean;\n}\n//#endregion\n\nclass EnvOptionsBuild {\n  /**\n   * override output path\n   * for combined/bundled build artifact\n   */\n  declare overrideOutputPath: string;\n\n  /**\n   * base-href -> is a part of lib code build\n   *\n   * overwrite base href for app deployment.\n   * Must be at least equal: '/'\n   *\n   * default: /\n   * default for github pages standalone project: '/<project-name-or-overwritten>/'\n   * default for organizaion main target: '/<project-name-or-overwritten>/'\n   * default for organizaion main other targets: '/<project-name-or-overwritten>/-/<other-target-name>/'\n   */\n  declare baseHref: string;\n\n  declare websql: boolean;\n\n  /**\n   * Taon production release mode:\n   * - splitting namespaces\n   * - all possible optimization\n   */\n  declare prod?: boolean;\n\n  /**\n   * watch build\n   */\n  declare watch: boolean;\n\n  /**\n   * true by default\n   */\n  declare ssr: boolean;\n  // declare angularSsr: boolean;\n\n  /**\n   * show electron dev tools\n   */\n  declare electron: Partial<EnvOptionsBuildElectron>;\n  // declare angularSsr: boolean;\n\n  /**\n   * Do not generate backend code\n   */\n  declare genOnlyClientCode: boolean;\n\n  declare pwa: Partial<EnvOptionsBuildPwa>;\n}\n//#endregion\n\n//#region env options / docker\n\nexport const dockerBackendAppNode = {\n  name: 'backend-app-node',\n  skipStartInDevMode: true,\n  pathToProjectWithDockerfile: (project: Project) => {\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  },\n} as TaonDockerContainerConfig;\n\nexport const dockerFrontendNginx = {\n  name: 'frontend-app-node',\n  skipStartInDevMode: true,\n  pathToProjectWithDockerfile: (project: Project) => {\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  },\n} as TaonDockerContainerConfig;\n\nexport const dockerDatabaseMysql = {\n  name: 'database-mysql',\n  pathToProjectWithDockerfile: (project: Project) => {\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  },\n  healthCheck: async ({ axios, env }) => {\n/* */\n/* */\n/* */\n    return (void 0);\n  },\n} as TaonDockerContainerConfig<{\n  MYSQL_ROOT_PASSWORD: string;\n  MYSQL_DATABASE: string;\n  MYSQL_USER: string;\n  MYSQL_PASSWORD: string;\n  readonly HEALTH_PORT: number;\n}>;\n\nconst taonBuiltinDockerImages = {\n  'backend-app-node': dockerBackendAppNode,\n  'frontend-app': dockerFrontendNginx,\n  'database-mysql': dockerDatabaseMysql,\n};\n\nexport const taonBuildInImages = Object.values(\n  taonBuiltinDockerImages,\n) as TaonDockerContainerConfig[];\n\nexport interface TaonDockerContainerConfig<ENV = {}> {\n  /**\n   * name for container - should be unique\n   */\n  name: string;\n  /**\n   * based on image name or function that return path to dockerfile\n   */\n  pathToProjectWithDockerfile?: (opt?: {\n    project?: Project;\n    env?: ENV;\n  }) => string;\n  /**\n   * if true container wont start in dev mode\n   * (ng serve, debug js mode on localhost etc.)\n   */\n  skipStartInDevMode?: boolean;\n  /**\n   * if wait unit healthy is true\n   * then healthCheck function is required\n   * and it will be called to check if container is healthy\n   */\n  healthCheck?: (opt?: {\n    axios?: typeof axiosType;\n    project?: Project;\n    env?: ENV;\n  }) => Promise<boolean>;\n  waitUnitHealthy?: boolean;\n  overrideDotEnv?: { [key in keyof ENV]: string | number | boolean };\n}\n\n/**\n * Each taon context will get mysql mariadb instead\n * sqljs file database when using docker\n */\nclass EnvOptionsDocker {\n  declare skipStartInOrder?: boolean;\n\n  /**\n   * each taon context will use sql.js file database\n   */\n  declare skipUsingMysqlDb?: boolean;\n\n  declare additionalContainer: (\n    | Partial<TaonDockerContainerConfig<any>>\n    | keyof typeof taonBuiltinDockerImages\n  )[];\n}\n//#endregion\n\n//#region env options / ports\nclass EnvOptionsPorts {\n  // TODO not needed ?\n  // /**\n  //  * override port for angular ng serve in normal mode\n  //  */\n  // declare ngNormalAppPort?: number;\n  // /**\n  //  * override port for angular ng serve in websql mode\n  //  */\n  // declare ngWebsqlAppPort?: number;\n  // /**\n  //  * override port for angular ng serve in normal mode\n  //  */\n  // declare ngNormalElectronPort?: number;\n  // /**\n  //  * override port for angular ng serve in websql mode\n  //  */\n  // declare ngWebsqlElectronPort?: number;\n  // /**\n  //  * override port for nodejs backend server\n  //  */\n  // declare nodeBeAppPort?: number;\n}\n//#endregion\n\n//#region env options / loading\n\n//#region env options / loading / pre-angular-bootstrap\nclass EnvOptionsLoadingPreAngularBootstrap {\n  /**\n   * loder path to image or\n   * build in loader config\n   */\n  declare loader?: string | Models.TaonLoaderConfig;\n\n  /**\n   * background body\n   */\n  declare background?: string;\n}\n//#endregion\n\n//#region env options / loading / after-angular-bootstrap\nclass EnvOptionsLoadingAfterAngularBootstrapConfig {\n  /**\n   * loder path to image or\n   * build in loader config\n   */\n  declare loader?: string | Models.TaonLoaderConfig;\n\n  declare background?: string;\n}\n//#endregion\n\nclass EnvOptionsLoading {\n  /**\n   * this is presented before bootstrapping of angular\n   * at the beginning of first index.html fetch\n   */\n  declare preAngularBootstrap?: Partial<EnvOptionsLoadingPreAngularBootstrap>;\n\n  /**\n   * this loader is presented when\n   * taon app data is being loader\n   * (right after *preAngularBootstrap*)\n   */\n  // declare afterAngularBootstrap?: Partial<EnvOptionsLoadingAfterAngularBootstrapConfig>;\n}\n//#endregion\n\n//#region env options / release\nclass EnvOptionsRelease {\n  declare taonInstanceIp?: string;\n\n  /**\n   * new version resolve at the beginning of release process\n   * and is used for all artifacts\n   */\n  declare readonly resolvedNewVersion: string;\n\n  /**\n   * skip npm publish\n   */\n  declare skipDeploy?: boolean;\n\n  /**\n   * skip npm publish\n   */\n  declare skipNpmPublish?: boolean;\n\n  /**\n   * skip git commit\n   */\n  declare skipTagGitPush?: boolean;\n\n  /**\n   * skip release question\n   */\n  declare skipReleaseQuestion?: boolean;\n\n  /**\n   * Useful if you just want to release static pages\n   * without any versioning\n   */\n  declare skipStaticPagesVersioning?: boolean;\n\n  /**\n   * skip git commit\n   */\n  declare skipResolvingGitChanges?: boolean;\n\n  /**\n   * skip cuting @ n o t F o r N p m tags\n   */\n  declare skipCodeCutting?: boolean;\n\n  /**\n   * release artifact name\n   * for example: \"angular-node-app\"\n   */\n  declare targetArtifact: ReleaseArtifactTaon;\n\n  /**\n   * true - skip all artifacts build\n   * or array of artifacts to skip\n   */\n  declare skipBuildingArtifacts?: ReleaseArtifactTaon[] | boolean;\n\n  /**\n   * undefined  - means it is development build\n   */\n  declare releaseType?: ReleaseType | undefined;\n  /**\n   * process that is running in CI (no questions for user)\n   */\n\n  declare releaseVersionBumpType: CoreModels.ReleaseVersionType;\n\n  /**\n   * quick automatic release of lib\n   */\n  declare autoReleaseUsingConfig: boolean;\n\n  /**\n   * ask before deployment to taon cloud\n   */\n  declare askUserBeforeFinalAction: boolean;\n\n  /**\n   * Task of auto release from config\n   */\n  declare autoReleaseTaskName: string;\n\n  /**\n   * Tell when to override (html,js,css) static pages files\n   * when releasing new version\n   * Example:\n   * - for docs on \"static pages\" you just want one docs version for major release\n   * - for electron apps on \"static pages\" you want to have an version for each minor or patch release\n   */\n  declare overrideStaticPagesReleaseType: CoreModels.ReleaseVersionType;\n\n  /**\n   * Separated repository for static pages releases\n   */\n  declare staticPagesCustomRepoUrl?: string;\n\n  declare envName: CoreModels.EnvironmentNameTaon;\n\n  /**\n   * undefined - prod\n   * number   -  prod1\n   */\n  declare envNumber: number | undefined;\n\n  declare cli: Partial<EnvOptionsBuildCli>;\n\n  declare nodeBackendApp: Partial<EnvOptionsNodeBackendApp>;\n\n  declare lib: Partial<EnvOptionsBuildLib>;\n\n  /**\n   * after release install locally\n   * - vscode plugin -> to Local VSCode\n   * - npm lib -> to Local NPM\n   * - angular-node-app -> to Local docker\n   * - electron-app -> to current os\n   * - mobile-app -> to current connected device\n   * - docs-webapp -> as offline pwa app installed in current os\n   */\n  declare installLocally: boolean;\n\n  /**\n   * after local install remove release output\n   * (for quick local test releases)\n   */\n  declare removeReleaseOutputAfterLocalInstall?: boolean;\n\n  /**\n   * Local release to special branch\n   */\n  declare pushToAllOriginsWhenLocalReleaseBranch?: boolean;\n\n  /**\n   * Local release to special branch\n   */\n  declare useLocalReleaseBranch?: boolean;\n\n  fixStaticPagesCustomRepoUrl(project?: Project): void {\n    if (this?.staticPagesCustomRepoUrl?.startsWith('-')) {\n      this.staticPagesCustomRepoUrl = `${project.git.originURL.replace(\n        '.git',\n        '',\n      )}${this.staticPagesCustomRepoUrl.replace('.git', '')}.git`;\n    }\n  }\n}\n//#endregion\n\n//#region env options / init\nclass EnvOptionsInit {\n  /**\n   * init only structure without external deps\n   */\n  declare struct: boolean;\n\n  declare branding: boolean;\n}\n//#endregion\n\n//#region env options / copy to manager\nclass EnvOptionsCopyToManager {\n  declare skip: boolean;\n\n  declare beforeCopyHook: () => void | Promise<void>;\n\n  declare copyToLocations: string[];\n\n  declare copyToProjects: string[];\n}\n//#endregion\n\n//#region env options / website\nclass EnvOptionsWebsite {\n  declare title: string;\n\n  declare domain: string;\n  /**\n   * Where taon should allow doamin use in this project.\n   *\n   * Not using domain ( useDomain = false ) means:\n   * -> github pages generated domain\n   * -> ip address as domain\n   */\n\n  declare useDomain: boolean;\n}\n//#endregion\n\n//#region env options / container\nclass EnvOptionsContainer {\n  /**\n   * start release on project\n   */\n  declare start?: string;\n\n  /**\n   * release only specified projects\n   */\n  declare only?: string | string[];\n\n  /**\n   * skip specified projects\n   */\n  declare skip?: string | string[];\n\n  /**\n   * end release on project\n   */\n  declare end?: string;\n\n  /**\n   * skip just released projects (last commit starts with 'release: ')\n   * and only release projects with new changes\n   */\n  declare skipReleased?: boolean;\n}\n//#endregion\n\nexport class EnvOptions<\n  ENV_CONFIG = Record<string, string | number | boolean | null>,\n> {\n  //#region static / from\n\n  static async releaseSkipMenu(\n    options: EnvOptions,\n    opt?: {\n      selectDefaultValues?: boolean;\n      args?: string[];\n    },\n  ): Promise<EnvOptions> {\n    const args = opt?.args || [];\n    opt = opt || {};\n    const defaultSelected = [\n      'skipBuildingArtifactsNpmLibAndCliTool',\n      'skipReleaseQuestion',\n    ] as (keyof typeof choices)[];\n\n    const choices = {\n      skipDeploy: {\n        name: 'Skip deploy',\n      },\n      skipNpmPublish: {\n        name: 'Skip npm publish',\n      },\n      skipTagGitPush: {\n        name: 'Skip git tag & push',\n      },\n      skipReleaseQuestion: {\n        name: 'Skip release questions',\n      },\n      skipResolvingGitChanges: {\n        name: 'Skip resolving git changes',\n      },\n      askUserBeforeFinalAction: {\n        name: 'Ask before deployment',\n      },\n      skipBuildingArtifactsNpmLibAndCliTool: {\n        name: 'Skip building artifact: npm-lib-and-cli-tool',\n      },\n      skipBuildingArtifactsAngularNodeApp: {\n        name: 'Skip building artifact: angular-node-app',\n      },\n    };\n\n    const optionsToSet = opt.selectDefaultValues\n      ? defaultSelected\n      : await UtilsTerminal.multiselect({\n          question: 'Select options to skip during release:',\n          choices,\n          defaultSelected,\n          autocomplete: true,\n        });\n\n    if (optionsToSet.includes('skipDeploy')) {\n      options.release.skipDeploy = true;\n    }\n    if (optionsToSet.includes('skipNpmPublish')) {\n      options.release.skipNpmPublish = true;\n    }\n    if (optionsToSet.includes('skipTagGitPush')) {\n      options.release.skipTagGitPush = true;\n    }\n    if (optionsToSet.includes('skipReleaseQuestion')) {\n      options.release.skipReleaseQuestion = true;\n    }\n    if (optionsToSet.includes('skipResolvingGitChanges')) {\n      options.release.skipResolvingGitChanges = true;\n    }\n\n    if (optionsToSet.includes('askUserBeforeFinalAction')) {\n      options.release.askUserBeforeFinalAction = true;\n    }\n\n    options.release.skipBuildingArtifacts =\n      options.release.skipBuildingArtifacts || [];\n\n    if (optionsToSet.includes('skipBuildingArtifactsNpmLibAndCliTool')) {\n      (options.release.skipBuildingArtifacts as string[]).push(\n        ReleaseArtifactTaon.NPM_LIB_PKG_AND_CLI_TOOL,\n      );\n    }\n    if (optionsToSet.includes('skipBuildingArtifactsAngularNodeApp')) {\n      (options.release.skipBuildingArtifacts as string[]).push(\n        ReleaseArtifactTaon.ANGULAR_NODE_APP,\n      );\n    }\n\n    Helpers.info(`\n\n      Your command:\n\n${chalk.bold(options.toStringCommand(args.join(' ')))}\n\n      `);\n    await UtilsTerminal.pressAnyKeyToContinueAsync();\n\n    return options;\n  }\n\n  public static from(options: Partial<EnvOptions>): EnvOptions {\n    return new EnvOptions().clone(options);\n  }\n\n  toStringCommand(taonCommand?: string): string {\n    let paramsCommand = '';\n    const alreadySetParams: string[] = [`--skipMenu true`, '--skipMenu'];\n    for (const element of alreadySetParams) {\n      taonCommand = taonCommand?.replace(element, '');\n    }\n\n    walk.Object(\n      this,\n      (value, lodashPath) => {\n        if (_.isNil(value) || _.isFunction(value)) {\n          // skipping\n        } else {\n          // _.set(destination, lodashPath, value);\n          if (_.isBoolean(value)) {\n            value = value ? 'true' : 'false';\n          }\n          if (_.isArray(value) || lodashPath.includes('[')) {\n            if (_.isArray(value)) {\n              for (const val of value) {\n                const newParam = `--${lodashPath.split('[')[0]} ${val}`;\n                if (!alreadySetParams.includes(newParam)) {\n                  paramsCommand = `${paramsCommand} ${newParam} `;\n                  alreadySetParams.push(newParam);\n                }\n              }\n            } else {\n              const newParam = `--${lodashPath.split('[')[0]} ${value}`;\n              if (!alreadySetParams.includes(newParam)) {\n                paramsCommand = `${paramsCommand} ${newParam} `;\n                alreadySetParams.push(newParam);\n              }\n            }\n          } else {\n            if (_.isObject(value)) {\n              // skip object\n            } else {\n              const newParam = `--${lodashPath} ${value}`;\n              if (!alreadySetParams.includes(newParam)) {\n                paramsCommand = `${paramsCommand} ${newParam} `;\n                alreadySetParams.push(newParam);\n              }\n            }\n          }\n        }\n      },\n      {\n        walkGetters: false,\n      },\n    );\n\n    return `${config.frameworkName} ${taonCommand || ''} ${paramsCommand}`.trim();\n  }\n\n  /**\n   * override existed/proper fields from \"override\" object\n   * inside \"destination\" object\n   */\n  static merge(destination, override): EnvOptions {\n    walk.Object(\n      override || {},\n      (value, lodashPath) => {\n        if (_.isNil(value) || _.isFunction(value) || _.isObject(value)) {\n          // skipping\n        } else {\n          _.set(destination, lodashPath, value);\n        }\n      },\n      {\n        walkGetters: false,\n      },\n    );\n    return destination;\n  }\n\n  public static saveToFile(\n    options: Partial<EnvOptions>,\n    absFilePath: string,\n  ): void {\n/* */\n/* */\n    return (void 0);\n  }\n\n  public static loadFromFile(absFilePath: string): EnvOptions {\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n  public static getParamsString(options: Partial<EnvOptions>): 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  //#endregion\n\n  //#region fields\n  declare finishCallback: () => any;\n\n  declare config?: ENV_CONFIG;\n\n  declare purpose?: string;\n\n  /**\n   * action is recursive\n   */\n  declare recursiveAction?: boolean;\n\n  declare isCiProcess?: boolean;\n\n  declare container: Partial<EnvOptionsContainer>;\n\n  /**\n   * @deprecated everything automatically handled by taon\n   */\n  declare ports: Partial<EnvOptionsPorts>;\n\n  declare docker: Partial<EnvOptionsDocker>;\n\n  declare release: Partial<EnvOptionsRelease>;\n\n  declare init: Partial<EnvOptionsInit>;\n\n  declare build: Partial<EnvOptionsBuild>;\n\n  /**\n   * Use this only when you are not using SSR\n   */\n  declare loading: Partial<EnvOptionsLoading>;\n\n  declare copyToManager: Partial<EnvOptionsCopyToManager>;\n\n  declare website: Partial<EnvOptionsWebsite>;\n\n  //#region generated fields\n  declare readonly name?: CoreModels.EnvironmentNameTaon; // generated\n\n  declare readonly currentProjectName?: string;\n\n  declare readonly currentProjectType?: CoreModels.LibType;\n\n  declare readonly appId?: string;\n\n  declare readonly buildInfo?: {\n    // number?: number; // count commits takes time\n    hash?: string;\n    date?: Date;\n  };\n  //#endregion\n\n  //#endregion\n\n  //#region constructor\n  protected constructor(options: Partial<EnvOptions> = {}) {\n    this.applyFieldsFrom(options);\n  }\n  //#endregion\n\n  //#region apply fields\n  public applyFieldsFrom(override?: Partial<EnvOptions>): void {\n    override = override || {};\n    EnvOptions.merge(this, override);\n\n    this.config = this.config || ({} as any);\n\n    this.config = _.merge(this.config, _.cloneDeep(override.config));\n\n    this.container = _.merge(new EnvOptionsContainer(), this.container);\n    if (_.isString(this.container.only) && this.container.only.includes(',')) {\n      this.container.only = this.container.only.split(',');\n    }\n    this.container.only =\n      (_.isString(this.container.only)\n        ? [this.container.only]\n        : this.container.only) || [];\n\n    if (!_.isArray(this.container.only)) {\n      this.container.only = [];\n    }\n\n    if (_.isString(this.container.skip) && this.container.skip.includes(',')) {\n      this.container.skip = this.container.skip.split(',');\n    }\n    this.container.skip =\n      (_.isString(this.container.skip)\n        ? [this.container.skip]\n        : this.container.skip) || [];\n\n    if (!_.isArray(this.container.skip)) {\n      this.container.skip = [];\n    }\n\n    this.ports = _.merge(new EnvOptionsPorts(), this.ports);\n    this.init = _.merge(new EnvOptionsInit(), this.init);\n\n    this.build = this.build || ({} as any);\n    this.build.pwa = _.merge(new EnvOptionsBuildPwa(), this.build?.pwa);\n    this.build.electron = _.merge(\n      new EnvOptionsBuildElectron(),\n      this.build?.electron,\n    );\n    this.build = _.merge(new EnvOptionsBuild(), this.build);\n\n    if (\n      _.isString(this['base-href']) &&\n      this['base-href'] &&\n      this['base-href'] !== '/'\n    ) {\n      // QUICK FIX\n      this.build.baseHref = this['base-href'];\n      delete this['base-href'];\n      delete override['base-href'];\n    }\n\n    if (_.isString(this.build.baseHref)) {\n      this.build.baseHref = crossPlatformPath(this.build.baseHref);\n      if (!this.build.baseHref.startsWith('/')) {\n        this.build.baseHref = `/${this.build.baseHref}`;\n      }\n      if (!this.build.baseHref.endsWith('/')) {\n        this.build.baseHref = `${this.build.baseHref}/`;\n      }\n    }\n\n    if (_.isBoolean(this['websql'])) {\n      // QUICK FIX\n      this.build.websql = this['websql'];\n      delete this['websql'];\n      delete override['websql'];\n    }\n\n    if (_.isBoolean(this['ssr'])) {\n      // QUICK FIX\n      this.build.ssr = this['ssr'];\n      delete this['ssr'];\n      delete override['ssr'];\n    }\n\n    this.loading = this.loading || ({} as any);\n\n    this.loading.preAngularBootstrap = _.merge(\n      new EnvOptionsLoadingPreAngularBootstrap(),\n      this.loading?.preAngularBootstrap,\n    );\n    // this.loading.afterAngularBootstrap = _.merge(\n    //   new EnvOptionsLoadingAfterAngularBootstrapConfig(),\n    //   this.loading?.afterAngularBootstrap,\n    // );\n    this.loading = _.merge(new EnvOptionsLoading(), this.loading);\n\n    this.release = this.release || ({} as any);\n\n    this.release.cli = _.merge(new EnvOptionsBuildCli(), this.release?.cli);\n    this.release.nodeBackendApp = _.merge(\n      new EnvOptionsNodeBackendApp(),\n      this.release?.nodeBackendApp,\n    );\n    this.release.lib = _.merge(new EnvOptionsBuildLib(), this.release?.lib);\n    this.release = _.merge(new EnvOptionsRelease(), this.release);\n\n    this.copyToManager = _.merge(\n      new EnvOptionsCopyToManager(),\n      this.copyToManager,\n    );\n\n    this.website = _.merge(new EnvOptionsWebsite(), this.website);\n\n    // fields fixes, prevent incorrect values\n    if (_.isString(this.website.domain)) {\n      this.website.domain = this.website.domain.replace(/\\/$/, '');\n      this.website.domain = this.website.domain.replace(/^https?:\\/\\//, '');\n    }\n\n    if (_.isString(this.release.skipBuildingArtifacts)) {\n      if (this.release.skipBuildingArtifacts.includes(',')) {\n        this.release.skipBuildingArtifacts = this.release.skipBuildingArtifacts\n          .split(',')\n          .map(v => v.trim()) as ReleaseArtifactTaon[];\n      } else {\n        this.release.skipBuildingArtifacts = [\n          this.release.skipBuildingArtifacts as ReleaseArtifactTaon,\n        ];\n      }\n    }\n    if (this.build.watch && this.build.prod) {\n      this.build.prod = false; // QUICK_FIX no prod for development\n    }\n  }\n  //#endregion\n\n  //#region save to file\n  public saveToFile(absFilePath: string): void {\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region load from file\n  public loadFromFile(absFilePath: string): void {\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region clone\n  public clone(\n    override?: Partial<EnvOptions>,\n    options?: {\n      skipPreservingFinishCallback?: boolean;\n    },\n  ): EnvOptions<ENV_CONFIG> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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 dummy for generating environments\n/**\n * Purpose of this dummy is to have all properties\n * when generating environments\n */\nexport const EnvOptionsDummyWithAllProps = EnvOptions.from({\n  config: {},\n  purpose: '-' as any,\n  recursiveAction: '-' as any,\n  isCiProcess: '-' as any,\n  container: {\n    end: '-' as any,\n    only: '-' as any,\n    start: '-' as any,\n    skipReleased: '-' as any,\n  },\n  ports: {},\n  release: {\n    resolvedNewVersion: '-' as any,\n    targetArtifact: '-' as any,\n    releaseVersionBumpType: '-' as any,\n    envName: '-' as any,\n    envNumber: '-' as any,\n    installLocally: '-' as any,\n    removeReleaseOutputAfterLocalInstall: '-' as any,\n    cli: {\n      minify: '-' as any,\n      includeNodeModules: '-' as any,\n      uglify: '-' as any,\n      obscure: '-' as any,\n      compress: '-' as any,\n    },\n    nodeBackendApp: {\n      minify: '-' as any,\n    },\n    releaseType: '-' as any,\n    lib: {\n      removeDts: '-' as any,\n      obscureFileByFile: '-' as any,\n      uglifyFileByFile: '-' as any,\n      includeSourceMaps: '-' as any,\n      compress: '-' as any,\n      doNotIncludeLibFiles: '-' as any,\n    },\n    autoReleaseUsingConfig: '-' as any,\n    autoReleaseTaskName: '-' as any,\n    taonInstanceIp: '-' as any,\n    skipNpmPublish: '-' as any,\n    skipDeploy: '-' as any,\n    skipTagGitPush: '-' as any,\n    skipReleaseQuestion: '-' as any,\n    skipResolvingGitChanges: '-' as any,\n    skipCodeCutting: '-' as any,\n    skipBuildingArtifacts: '-' as any,\n    pushToAllOriginsWhenLocalReleaseBranch: '-' as any,\n    useLocalReleaseBranch: '-' as any,\n  },\n  init: {\n    branding: '-' as any,\n    struct: '-' as any,\n  },\n  docker: {\n    additionalContainer: '-' as any,\n    skipStartInOrder: '-' as any,\n    skipUsingMysqlDb: '-' as any,\n  },\n  build: {\n    ssr: '-' as any,\n    // angularSsr: '-' as any,\n    websql: '-' as any,\n    prod: '-' as any,\n    electron: {\n      showDevTools: '-' as any,\n    },\n    pwa: {\n      disableServiceWorker: '-' as any,\n      name: '-' as any,\n      short_name: '-' as any,\n      start_url: '-' as any,\n    },\n    overrideOutputPath: '-' as any,\n    baseHref: '-' as any,\n    watch: '-' as any,\n    genOnlyClientCode: '-' as any,\n  },\n  loading: {\n    // afterAngularBootstrap: {\n    //   loader: '-' as any,\n    //   background: '-' as any,\n    // },\n    preAngularBootstrap: {\n      loader: '-' as any,\n      background: '-' as any,\n    },\n  },\n  copyToManager: {\n    beforeCopyHook: '-' as any,\n    copyToLocations: '-' as any,\n    copyToProjects: '-' as any,\n    skip: '-' as any,\n  },\n  website: {\n    domain: '-' as any,\n    title: '-' as any,\n    useDomain: '-' as any,\n  },\n});\n\nconst allPathsEnvConfig: string[] = [];\n\nwalk.Object(\n  EnvOptionsDummyWithAllProps,\n  (value, lodashPath) => {\n    if (Array.isArray(value)) {\n      allPathsEnvConfig.push(lodashPath);\n    } else {\n      if (\n        !_.isObject(value) &&\n        !_.isFunction(value) &&\n        !lodashPath.includes('[') // it is array\n      ) {\n        allPathsEnvConfig.push(lodashPath);\n      }\n    }\n  },\n  { walkGetters: false },\n);\n\nexport { allPathsEnvConfig };\n\n//#endregion","//#region imports\n/* */                                  \n\nimport { config, LibTypeEnum, UtilsEtcHosts } from 'tnp-core/browser';\nimport {\n  Helpers,\n  UtilsNetwork,\n  UtilsTerminal,\n  _,\n  chalk,\n  fse,\n} from 'tnp-core/browser';\nimport { UtilsOs } from 'tnp-core/browser';\nimport {\n  BaseCliWorkerConfig,\n  BaseCliWorkerTerminalUI,\n  BaseWorkerTerminalActionReturnType,\n} from 'tnp-helpers/browser';\nimport { BaseCliWorkerUtils } from 'tnp-helpers/browser';\nimport { BaseCliWorker } from 'tnp-helpers/browser';\n\nimport { DEFAULT_FRAMEWORK_VERSION } from '../../../constants';\n\nimport type { TaonProjectsWorker } from './taon.worker';\n//#endregion\n\nexport class TaonTerminalUI extends BaseCliWorkerTerminalUI<TaonProjectsWorker> {\n\n  //#region methods / header text\n  protected async headerText(): Promise<string> {\n    return 'Taon.dev';\n  }\n  //#endregion\n\n  //#region methods / header\n  async header(): 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  }\n  //#endregion\n\n  //#region methods / get domains menu\n  protected async getDomainsMenu(): 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  return (void 0);\n\n  }\n  //#endregion\n\n  //#region methods / get worker terminal actions\n  getWorkerTerminalActions(): 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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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}","import { Taon, TaonEntity } from 'taon/browser';\nimport { TaonBaseAbstractEntity, StringColumn } from 'taon/browser';\nimport { CoreModels } from 'tnp-core/browser';\n\n@TaonEntity({\n  className: 'TaonEnv',\n})\nexport class TaonEnv extends TaonBaseAbstractEntity {\n  static from(obj: {\n    name: string;\n    type: CoreModels.EnvironmentNameTaon;\n  }): TaonEnv {\n    return new TaonEnv().clone(obj);\n  }\n\n  //#region fields / type\n\n/* */\n/* */\n  \n\n  type: CoreModels.EnvironmentNameTaon;\n  //#endregion\n\n  //#region fields / name\n\n/* */\n/* */\n  \n\n  name: string;\n  //#endregion\n\n}","import { Taon, TaonBaseMigration, TaonMigration } from 'taon/browser';\nimport { QueryRunner } from 'taon-typeorm/browser';\nimport { CoreModels } from 'tnp-core/browser';\n\nimport { TaonEnv } from '../project/abstract/taon-worker/taon-env.entity';\n\n@TaonMigration({\n  className: 'TaonProjectsContext_1737301724542_addingSampleData',\n})\nexport class TaonProjectsContext_1737301724542_addingSampleData extends TaonBaseMigration {\n  repoEnv = this.injectRepo(TaonEnv);\n\n  /**\n   * IMPORTANT !!!\n   * remove this method if you are ready to run this migration\n   */\n  public isReadyToRun(): boolean {\n    return true;\n  }\n\n  // @ts-ignore\n  async up(queryRunner: QueryRunner): Promise<any> {\n    // do \"something\" in db\n    const environmentNames = [\n      'dev',\n      'dev2',\n      'dev3',\n      'dev4',\n      'dev5',\n      'dev6',\n      'dev7',\n      'dev8',\n      'dev9',\n      'test',\n      'stage',\n      'prod',\n    ];\n    for (const envName of environmentNames) {\n      await this.repoEnv.save(\n        TaonEnv.from({\n          name: envName,\n          type: envName.replace(/[0-9]/g, '') as CoreModels.EnvironmentNameTaon,\n        }),\n      );\n    }\n  }\n\n  // @ts-ignore\n  async down(queryRunner: QueryRunner): Promise<any> {\n    // revert this \"something\" in db\n    this.repoEnv.clear();\n  }\n}","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { TaonProjectsContext_1737301724542_addingSampleData } from './1737301724542_addingSampleData';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_TaonProjectsContext = {\n  /* 19-01-2025 16:48:44 */ TaonProjectsContext_1737301724542_addingSampleData,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';","import { Taon } from 'taon/browser';\nimport {\n  TaonBaseAbstractEntity,\n  Column,\n  NumberColumn,\n  SimpleJsonColumn,\n  TaonEntity,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\n\nimport { EnvOptions } from '../../../options';\n\n@TaonEntity({\n  className: 'TaonBuild',\n})\nexport class TaonBuild extends TaonBaseAbstractEntity {\n  static from(\n    opt: Omit<TaonBuild, 'id' | 'version' | '_' | 'clone'>,\n  ): TaonBuild {\n    return _.merge(new TaonBuild(), opt);\n  }\n\n  //#region port entity / columns /  pid\n\n/* */\n/* */\n  \n  processInfoPort: number;\n  //#endregion\n\n  //#region port entity / columns /  serviceId\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  projectLocation: string;\n  //#endregion\n\n  //#region port entity / columns /  type\n\n/* */\n/* */\n  \n  type: EnvOptions;\n  //#endregion\n}","import { Taon, TaonEntity } from 'taon/browser';\nimport { TaonBaseEntity, PrimaryColumn, Column, BooleanColumn } from 'taon/browser';\nimport { _, CoreModels } from 'tnp-core/browser';\n\n@TaonEntity({\n  className: 'TaonProject',\n  uniqueKeyProp: 'location',\n})\nexport class TaonProject extends TaonBaseEntity {\n  static from(\n    opt: Omit<TaonProject, 'id' | 'version' | '_' | 'clone'>,\n  ): TaonProject {\n    return _.merge(new TaonProject(), opt);\n  }\n\n  //#region port entity / columns /  serviceId\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n  location: string;\n  //#endregion\n\n  //#region port entity / columns /  type\n\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n  type: CoreModels.LibType;\n  //#endregion\n\n  //#region port entity / columns /  type\n\n/* */\n/* */\n  \n\n  isTemporary: boolean;\n  //#endregion\n\n}","import { Taon, TaonController } from 'taon/browser';\nimport { GET } from 'taon/browser';\nimport { TaonBaseCliWorkerController } from 'tnp-helpers/browser';\n\nimport { TaonBuild } from './taon-build.entity';\nimport { TaonEnv } from './taon-env.entity';\n\n//#region ports controller\n@TaonController({\n  className: 'TaonProjectsController',\n})\nexport class TaonProjectsController extends TaonBaseCliWorkerController {\n  taonEnvRepo = this.injectRepo(TaonEnv);\n\n  @GET()\n  getEnvironments(): Taon.Response<TaonEnv[]> {\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n}\n//#endregion","//#region imports\nimport { TaonBaseContext, Taon } from 'taon/browser';\nimport { config, taonPackageName } from 'tnp-core/browser';\nimport { os, UtilsOs } from 'tnp-core/browser';\nimport { crossPlatformPath, Helpers, path } from 'tnp-core/browser';\nimport { getBaseCliWorkerDatabaseConfig } from 'tnp-helpers/browser';\n\nimport { MIGRATIONS_CLASSES_FOR_TaonProjectsContext } from '../../../migrations';\n\nimport { TaonBuild } from './taon-build.entity';\nimport { TaonEnv } from './taon-env.entity';\nimport { TaonProject } from './taon-project.entity';\nimport { TaonProjectsController } from './taon.controller';\n//#endregion\n\nexport const TaonProjectsContextTemplate = Taon.createContextTemplate(() => ({\n  contextName: 'TaonProjectsContext',\n  appId: 'dev.taon.projects.worker',\n  contexts: { TaonBaseContext },\n  controllers: { TaonProjectsController },\n  entities: { TaonProject, TaonBuild, TaonEnv },\n  migrations: { ...MIGRATIONS_CLASSES_FOR_TaonProjectsContext },\n  skipWritingServerRoutes:\n    taonPackageName === config.frameworkName,\n  ...getBaseCliWorkerDatabaseConfig(\n    'taon-projects-worker',\n    'DROP_DB+MIGRATIONS',\n  ),\n  logs: {\n    // framework: true,\n  },\n}));","//#region imports\nimport { ProcessesWorker } from '@taon-dev/cloud/browser';\nimport { TraefikProvider } from '@taon-dev/cloud/browser';\nimport { InstancesWorker } from '@taon-dev/cloud/browser';\nimport { config, LibTypeEnum } from 'tnp-core/browser';\nimport { _, UtilsTerminal } from 'tnp-core/browser';\nimport {\n  BaseCliWorker,\n  BaseCliWorkerGuiUrlOptions,\n  BaseCLiWorkerStartMode,\n  Helpers,\n  UtilsDocker,\n} from 'tnp-helpers/browser';\n\nimport { CURRENT_PACKAGE_VERSION } from '../../../build-info._auto-generated_';\nimport { skipCoreCheck } from '../../../constants';\nimport type { TaonProjectResolve } from '../project-resolve';\n\nimport { DeploymentsWorker } from './deployments/deployments.worker';\nimport { TaonTerminalUI } from './taon-terminal-ui';\nimport { TaonProjectsContextTemplate } from './taon.context';\nimport { TaonProjectsController } from './taon.controller';\n\n//#endregion\n\nexport class TaonProjectsWorker extends BaseCliWorker<\n  TaonProjectsController,\n  TaonTerminalUI\n> {\n  //#region properties\n\n  readonly terminalUI = new TaonTerminalUI(this);\n\n  readonly workerContextTemplate = TaonProjectsContextTemplate as any; // TODO for some reason as any is nessesary\n\n  readonly controllerClass = TaonProjectsController;\n\n  public readonly deploymentsWorker: DeploymentsWorker;\n\n  public readonly instancesWorker: InstancesWorker;\n\n  public readonly processesWorker: ProcessesWorker;\n\n  public readonly traefikProvider: TraefikProvider;\n  //#endregion\n\n  //#region constructor\n  constructor(\n    /**\n     * unique id for service\n     */\n    serviceID: string,\n    /**\n     * external command that will start service\n     */\n    startCommandFn: () => string,\n    public readonly ins: TaonProjectResolve,\n  ) {\n    super(serviceID, startCommandFn, CURRENT_PACKAGE_VERSION);\n    // console.log({\n    //   depoyments: UtilsCliClassMethod.getFrom($Cloud.prototype.deployments),\n    //   instances: UtilsCliClassMethod.getFrom($Cloud.prototype.instances),\n    //   processes: UtilsCliClassMethod.getFrom($Cloud.prototype.processes),\n    // });\n    // console.log('Initializing TaonProjectsWorker...');\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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 / start normally in current process\n  /**\n   * start normally process\n   * this will crash if process already started\n   */\n  async startNormallyInCurrentProcess(): 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    return (void 0);\n  }\n  //#endregion\n\n  //#region methods / enable cloud\n  async enableCloud(): 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 methods / disable cloud\n  async disableCloud(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n}","//#region imports\nimport {\n  config,\n  dotTaonFolder,\n  LibTypeEnum,\n  taonContainers,\n  taonPackageName,\n  taonProjects,\n  tnpPackageName,\n  urlRepoTaonContainers,\n} from 'tnp-core/browser';\nimport { LibTypeArr } from 'tnp-core/browser';\nimport {\n  child_process,\n  fse,\n  os,\n  requiredForDev,\n  UtilsCliClassMethod,\n} from 'tnp-core/browser';\nimport { _, crossPlatformPath, path, CoreModels } from 'tnp-core/browser';\nimport { CLI, UtilsOs } from 'tnp-core/browser';\nimport { fileName } from 'tnp-core/browser';\nimport { Helpers, BaseProjectResolver, HelpersTaon } from 'tnp-helpers/browser';\n\nimport { CURRENT_PACKAGE_VERSION } from '../../build-info._auto-generated_';\nimport {\n  containerPrefix,\n  DEFAULT_FRAMEWORK_VERSION,\n  distMainProject,\n  dotVscodeMainProject,\n  nodeModulesMainProject,\n  packageJsonMainProject,\n  skipCoreCheck,\n  taonJsonMainProject,\n  taonRepoPathUserInUserDir,\n} from '../../constants';\n// import { $Global } from '../cli/cli-_GLOBAL_';\n\nimport type { Project } from './project';\nimport { TaonProjectsWorker } from './taon-worker/taon.worker';\n//#endregion\n\n// @ts-ignore TODO weird inheritance problem\nexport class TaonProjectResolve extends BaseProjectResolver<Project> {\n  taonProjectsWorker: TaonProjectsWorker;\n\n  private hasResolveCoreDepsAndFolder = false;\n\n  //#region constructor\n  constructor(\n    protected classFn: typeof Project,\n    public cliToolNameFn: () => string,\n  ) {\n    super(classFn, cliToolNameFn);\n\n    // if (!this.cliToolName) {\n    //   Helpers.throwError(`cliToolName is not provided`);\n    // }\n    if (UtilsOs.isRunningInVscodeExtension()) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    }\n\n    // TODO $Global not available here\n    // const commandStartWorker = `${cliToolName} ${UtilsCliClassMethod.getFrom(\n    //   $Global.prototype.startCliServiceTaonProjectsWorker,\n    //   { globalMethod: true, argsToParse: { skipCoreCheck: true } },\n    // )}`;\n\n    // const commandStartWorker = `${cliToolName} ${\n    //   'startCliServiceTaonProjectsWorker ${SKIP_CORE_CHECK_PARAM}'\n    //   // as keyof $Global\n    // }`;\n\n    this.taonProjectsWorker = new TaonProjectsWorker(\n      taonProjects,\n      () =>\n        `${cliToolNameFn()} ${\n          `startCliServiceTaonProjectsWorker ${skipCoreCheck}`\n          // as keyof $Global\n        }`,\n      this,\n    );\n  }\n  //#endregion\n\n  //#region methods / type from\n  typeFrom(location: string): CoreModels.LibType {\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 / from\n  /**\n   * TODO use base resolve\n   */\n  From(locationOfProj: string | string[]): 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    return (void 0);\n  }\n  //#endregion\n\n  //#region methods / nearest to\n  nearestTo<T = Project>(\n    absoluteLocation: string,\n    options?: {\n      type?: CoreModels.LibType;\n      findGitRoot?: boolean;\n      onlyOutSideNodeModules?: boolean;\n    },\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region methods / tnp\n  get Tnp(): Project {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region by\n  public by(\n    libraryType: CoreModels.NewFactoryType,\n\n/* */\n/* */\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    return (void 0);\n  }\n  //#endregion\n\n  //#region projects in user folder\n  private get projectsInUserFolder() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region sync core project\n  /**\n   * taon sync command\n   */\n  sync({ syncFromCommand }: { syncFromCommand?: boolean } = {}): 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    return (void 0);\n  }\n  //#endregion\n\n  //#region initial check\n  public initialCheck() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region path resolved\n  private pathResolved(...partOfPath: 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  //#endregion\n\n  //#region resolve core projects paths\n  private resolveCoreProjectsPathes(version?: CoreModels.FrameworkVersion) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region taon relative projects paths\n  /**\n   * only for tnp dev mode cli\n   */\n  public get taonProjectsRelative(): string {\n    return `../${taonContainers}`;\n  }\n  //#endregion\n\n  //#region angular major version for current cli\n  angularMajorVersionForCurrentCli(): number {\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region taon tag to checkout for current cli version\n  taonTagToCheckoutForCurrentCliVersion(cwd: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n}","//#region imports\nimport { Observable, Subject } from 'rxjs';\nimport { chokidar, config, dotTaonFolder, LibTypeEnum } from 'tnp-core/browser';\nimport { chalk, fse, os, requiredForDev } from 'tnp-core/browser';\nimport { child_process } from 'tnp-core/browser';\nimport { _, crossPlatformPath, path, CoreModels } from 'tnp-core/browser';\nimport { UtilsTerminal } from 'tnp-core/browser';\nimport {\n  Helpers,\n  BaseProject,\n  PushProcessOptions,\n  HelpersTaon,\n} from 'tnp-helpers/browser';\n\nimport {\n  assetsFromTempSrc,\n  binMainProject,\n  containerPrefix,\n  distMainProject,\n  docsMainProject,\n  nodeModulesMainProject,\n  packageJsonMainProject,\n  packageJsonNpmLib,\n  srcMainProject,\n  taonJsonMainProject,\n  tmpAllAssetsLinked,\n  tmpSourceDist,\n  tmpSrcAppDist,\n  tmpSrcAppDistWebsql,\n  tmpSrcDist,\n  tmpSrcDistWebsql,\n} from '../../constants';\nimport { EnvOptions, ReleaseType } from '../../options';\n\nimport type { EnvironmentConfig } from './artifacts/__helpers__/environment-config/environment-config';\nimport { ArtifactManager } from './artifacts/artifacts-manager';\nimport { FileFoldersOperations } from './file-folders-operations';\nimport type { Framework } from './framework';\nimport { Git } from './git';\nimport { IgnoreHide } from './ignore-hide';\nimport { LibraryBuild } from './library-build';\nimport { LinkedProjects } from './linked-projects';\nimport { Linter } from './linter';\nimport { NodeModules } from './node-modules';\nimport { NpmHelpers } from './npm-helpers';\nimport { PackageJSON } from './package-json';\nimport { PackagesRecognition } from './packages-recognition';\nimport { TaonProjectResolve } from './project-resolve';\nimport { QuickFixes } from './quick-fixes';\nimport { Refactor } from './refactor';\nimport type { ReleaseProcess } from './release-process';\nimport { SubProject } from './sub-project';\nimport { TaonJson } from './taonJson';\nimport { Vscode } from './vscode-helper';\n//#endregion\n\n// @ts-ignore TODO weird inheritance problem\nexport class Project extends BaseProject<Project, CoreModels.LibType> {\n  //#region static\n\n  //#region static / instance of resolve\n  static ins = new TaonProjectResolve(Project, () => {\n/* */\n/* */\n    return (void 0);\n  });\n  //#endregion\n\n  //#endregion\n\n  //#region fields\n  // @ts-ignore TODO weird inheritance problem\n  public readonly type: CoreModels.LibType;\n\n  // @ts-ignore TODO weird inheritance problem\n  public readonly vsCodeHelpers: Vscode;\n\n  // @ts-ignore TODO weird inheritance problem\n  public readonly releaseProcess: ReleaseProcess;\n\n  // @ts-ignore TODO weird inheritance problem\n  public readonly npmHelpers: NpmHelpers;\n\n  public readonly subProject: SubProject;\n\n  get packageJson(): PackageJSON {\n    return this.npmHelpers.packageJson as any;\n  }\n\n  // @ts-ignore TODO weird inheritance problem\n  get nodeModules(): NodeModules {\n    return this.npmHelpers.nodeModules as any;\n  }\n\n  // @ts-ignore TODO weird inheritance problem\n  public readonly linter: Linter;\n\n  public readonly framework: Framework;\n\n  // @ts-ignore TODO weird inheritance problem\n  public readonly quickFixes: QuickFixes;\n\n  public readonly artifactsManager: ArtifactManager;\n\n  // @ts-ignore TODO weird inheritance problem\n  public readonly git: Git;\n\n  // @ts-ignore TODO weird inheritance problem\n  public readonly ignoreHide: IgnoreHide;\n\n  public readonly taonJson: TaonJson;\n\n  public readonly packagesRecognition: PackagesRecognition;\n\n  public readonly environmentConfig: EnvironmentConfig;\n\n  public readonly refactor: Refactor;\n\n  //#endregion\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/* */\n/* */\n/* */\n  \n\n  //#endregion\n\n  //#region api / struct\n  async struct(initOptions?: EnvOptions): Promise<void> {\n    initOptions = EnvOptions.from(initOptions);\n\n    if (this.framework.isStandaloneProject) {\n      await this.artifactsManager.struct(initOptions);\n    }\n    if (this.framework.isContainer) {\n      await this.artifactsManager.struct(initOptions);\n      await this.artifactsManager.structAllChildren(initOptions);\n    }\n\n    initOptions.finishCallback();\n  }\n  //#endregion\n\n  //#region api / init\n  async init(initOptions?: EnvOptions): Promise<void> {\n    initOptions = EnvOptions.from(initOptions);\n\n    if (this.framework.isStandaloneProject) {\n      await this.artifactsManager.init(initOptions);\n    }\n    if (this.framework.isContainer) {\n      await this.artifactsManager.init(initOptions);\n      if (initOptions.recursiveAction) {\n        await this.artifactsManager.initAllChildren(initOptions);\n      }\n    }\n\n    if (!initOptions.build.watch) {\n      initOptions.finishCallback();\n    }\n  }\n  //#endregion\n\n  //#region api / build\n  async build(buildOptions?: EnvOptions): Promise<void> {\n    buildOptions = EnvOptions.from(buildOptions);\n\n    if (this.framework.isStandaloneProject) {\n      await this.artifactsManager.build(buildOptions);\n    }\n    if (this.framework.isContainer) {\n      buildOptions.build.watch = false; // there is no need to watch for container ever\n      await this.artifactsManager.build(buildOptions);\n      if (buildOptions.recursiveAction) {\n        await this.artifactsManager.buildAllChildren(buildOptions);\n      }\n    }\n\n    if (!buildOptions.build.watch && !!buildOptions.release.targetArtifact) {\n      buildOptions.finishCallback();\n    }\n  }\n  //#endregion\n\n  //#region api / release\n  public async release(releaseOptions: EnvOptions): 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    return (void 0);\n  }\n  //#endregion\n\n  //#region api / lint\n  async lint(lintOptions?: PushProcessOptions) {\n    // await this.linter.start()\n  }\n  //#endregion\n\n  //#region api / clear\n  public async clear(clearOptions?: Partial<EnvOptions>) {\n    clearOptions = EnvOptions.from(clearOptions);\n    await this.artifactsManager.clear(clearOptions as EnvOptions);\n    if (clearOptions.recursiveAction) {\n      await this.artifactsManager.clearAllChildren(clearOptions as EnvOptions);\n    }\n  }\n  //#endregion\n\n  isLinuxWatchModeAllowde(): boolean {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n  getWatcherFor(\n    folders: string[],\n    watcherType: 'backend' | 'browser' | 'webslq',\n  ): Observable<{}> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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  get tmpSourceRebuildForBackendObs(): Observable<{}> | undefined {\n    if (!this.isLinuxWatchModeAllowde()) {\n      return;\n    }\n    const key = 'tmpSourceRebuildForBackendObs';\n    if (this.cache[key]) {\n      return this.cache[key];\n    }\n    const watcher = this.getWatcherFor(\n      [this.pathFor(tmpSourceDist)],\n      'backend',\n    );\n\n    this.cache[key] = watcher;\n    return this.cache[key];\n  }\n\n  get tmpSourceRebuildForBrowserObs(): Observable<{}> | undefined {\n    if (!this.isLinuxWatchModeAllowde()) {\n      return;\n    }\n    const key = 'tmpSourceRebuildForBrowserObs';\n    if (this.cache[key]) {\n      return this.cache[key];\n    }\n    const watcher = this.getWatcherFor([this.pathFor(tmpSrcDist)], 'browser');\n\n    this.cache[key] = watcher;\n    return this.cache[key];\n  }\n\n  get tmpSourceRebuildForWebsqlObs(): Observable<{}> | undefined {\n    if (!this.isLinuxWatchModeAllowde()) {\n      return;\n    }\n    const key = 'tmpSourceRebuildForWebsqlObs';\n    if (this.cache[key]) {\n      return this.cache[key];\n    }\n    const watcher = this.getWatcherFor(\n      [this.pathFor(tmpSrcDistWebsql)],\n      'webslq',\n    );\n\n    this.cache[key] = watcher;\n    return this.cache[key];\n  }\n\n  protected hasValidAutoReleaseConfig(\n    envOptions: EnvOptions,\n    options?: {\n      project?: Project;\n      hideTaskErrors?: 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    return (void 0);\n  }\n\n  // get env(): EnvOptions  //\n  //   return this.environmentConfig.config;\n  // }\n\n  get branding() {\n    return this.artifactsManager.globalHelper.branding;\n  }\n\n  //#region taon relative projects paths\n  /**\n   * @deprecated\n   */\n  get tnpCurrentCoreContainer(): Project {\n    return this.ins.From(\n      this.pathFor(\n        `${this.ins.taonProjectsRelative}/${containerPrefix}${this.framework.frameworkVersion}`,\n      ),\n    );\n  }\n\n  //#endregion\n\n  //#region name\n  /**\n   * @overload\n   */\n  public get name(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  get nameForCli(): string {\n    if (this.taonJson.overrideNameForCli) {\n      return this.taonJson.overrideNameForCli;\n    }\n    return this.name;\n  }\n\n  //#region name for npm package\n  /**\n   * @overload\n   */\n  get nameForNpmPackage(): 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 info\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region ins\n  /**\n   * @overload\n   */\n  public get ins(): TaonProjectResolve {\n    return Project.ins;\n  }\n  //#endregion\n\n  //#region children\n  /**\n   * @overload\n   */\n  get children(): 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    return (void 0);\n  }\n  //#endregion\n\n  //#region is monorepo\n  get isMonorepo(): boolean {\n    return this.taonJson?.isMonorepo;\n  }\n  //#endregion\n}","import {\n  Utils,\n  Helpers,\n  crossPlatformPath,\n  fse,\n  path,\n  UtilsOs,\n  _,\n  LibTypeEnum,\n} from 'tnp-core/browser';\nimport { CommandType } from 'tnp-helpers/browser';\nimport type { Uri } from 'vscode';\n\nimport { dirnameFromSourceToProject, whatToLinkFromCore } from './constants';\nimport { FrameworkUtils } from './framework-utils';\nimport { Project } from './project/abstract/project';\n\ninterface CopyPasteTaonProjectJson {\n  toCopy?: string;\n  toMove?: string;\n}\n\nexport const vscodeExtMethods = (FRAMEWORK_NAME: string): CommandType[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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 { config, tnpPackageName } from 'tnp-core/browser';\n\nimport type { Project } from './project/abstract/project';\nimport type { activateMenuTnp } from './vscode-ext-menu';\n\nexport const vscodeMenuItems = ({\n  vscode,\n  FRAMEWORK_NAME,\n  CURRENT_PROJECT,\n  ProjectItem,\n  focustFirstElement,\n  runInTerminal,\n  tmp_FRONTEND_NORMAL_APP_PORT,\n  tmp_FRONTEND_WEBSQL_APP_PORT,\n  skipTaonItems,\n}: {\n  vscode: typeof import('vscode');\n  FRAMEWORK_NAME: string;\n  CURRENT_PROJECT: Project | undefined;\n  ProjectItem: ReturnType<typeof activateMenuTnp>;\n  focustFirstElement: () => void;\n  runInTerminal: (command: string, inNewTerminal?: boolean) => void;\n  tmp_FRONTEND_NORMAL_APP_PORT: string;\n  tmp_FRONTEND_WEBSQL_APP_PORT: string;\n  skipTaonItems?: boolean;\n}) => {\n  return [\n    //#region items with actions / git log\n    new ProjectItem(`$ git log`, vscode.TreeItemCollapsibleState.None, {\n      iconPath: null,\n      project: CURRENT_PROJECT,\n      triggerActionOnClick: project => {\n        runInTerminal(`git log`);\n        if (project?.location) {\n          focustFirstElement();\n        }\n      },\n    }),\n    //#endregion\n\n    //#region items with actions / refresh vscode colors\n    new ProjectItem(\n      `$ ${FRAMEWORK_NAME} refresh:vscode:colors`,\n      vscode.TreeItemCollapsibleState.None,\n      {\n        iconPath: null,\n        project: CURRENT_PROJECT,\n        triggerActionOnClick: project => {\n          if (project?.location) {\n            project.vsCodeHelpers.refreshColorsInSettings();\n            focustFirstElement();\n          }\n        },\n      },\n    ),\n    //#endregion\n\n    //#region items with actions / taon push\n    new ProjectItem(\n      `$ ${FRAMEWORK_NAME} push`,\n      vscode.TreeItemCollapsibleState.None,\n      {\n        iconPath: null,\n        project: CURRENT_PROJECT,\n        progressLocation: vscode.ProgressLocation.Notification,\n        triggerActionOnClick: async (project, progress, token) => {\n          focustFirstElement();\n          if (project?.location) {\n            // runInTerminal(`${FRAMEWORK_NAME} push`, true);\n            progress?.report({ message: 'Pushing changes...' });\n            await project.git.pushProcess();\n            progress?.report({ message: 'Done', increment: 100 });\n          }\n        },\n      },\n    ),\n    //#endregion\n\n    //#region items with actions / hide temp files\n    new ProjectItem(\n      `$ ${FRAMEWORK_NAME} vscode:hide:temp`,\n      vscode.TreeItemCollapsibleState.None,\n      {\n        iconPath: null,\n        project: CURRENT_PROJECT,\n        triggerActionOnClick: project => {\n          if (project) {\n            project.vsCodeHelpers.toogleFilesVisibilityInVscode({\n              action: 'hide-files',\n            });\n            vscode.commands.executeCommand('workbench.view.explorer');\n          }\n        },\n      },\n    ),\n    //#endregion\n\n    //#region items with actions / show temp files\n    new ProjectItem(\n      `$ ${FRAMEWORK_NAME} vscode:show:temp`,\n      vscode.TreeItemCollapsibleState.None,\n      {\n        iconPath: null,\n        project: CURRENT_PROJECT,\n        triggerActionOnClick: project => {\n          if (project) {\n            project.vsCodeHelpers.toogleFilesVisibilityInVscode({\n              action: 'show-files',\n            });\n            vscode.commands.executeCommand('workbench.view.explorer');\n          }\n        },\n      },\n    ),\n    //#endregion\n\n    ...(!skipTaonItems\n      ? [\n          //#region items with actions / build lib\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} build:lib`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} build:lib`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions / build lib watch\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} build:watch:lib`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} build:watch:lib`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} build:lib:prod`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} build:lib:prod`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n\n          //#endregion\n\n          //#region items with actions / build docs\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} docs`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} docs`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions / build lib watch\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} docs:watch`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} docs:watch`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions /  app normal\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} app:normal`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} app:normal`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions /  app websql\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} app:websql`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} app:websql`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions /  app electron\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} app:electron`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} app:electron`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions /  start\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} release:auto npm`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} release:auto npm`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions /  start websql\n          // new ProjectItem(\n          //   `$ ${FRAMEWORK_NAME} start --websql`,\n          //   vscode.TreeItemCollapsibleState.None,\n          //   {\n          //     iconPath: null,\n          //     project: CURRENT_PROJECT,\n          //     triggerActionOnClick: project => {\n          //       runInTerminal(`${FRAMEWORK_NAME} start --websql`);\n          //       if (project?.location) {\n          //         focustFirstElement();\n          //       }\n          //     },\n          //   },\n          // ),\n          //#endregion\n\n          //#region items with actions /  clear\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} clear`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                runInTerminal(`${FRAMEWORK_NAME} clear`);\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions /  melt\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} melt`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                if (project?.location) {\n                  vscode.window.withProgress(\n                    {\n                      location: vscode.ProgressLocation.Notification,\n                      title: `Melting ${FRAMEWORK_NAME} action commits...`,\n                      cancellable: false,\n                    },\n                    progress => {\n                      progress.report({\n                        increment: 0,\n                        message: 'Melting action commits...',\n                      });\n                      project.git.meltActionCommits();\n                      progress.report({ message: 'Done', increment: 100 });\n                      return Promise.resolve();\n                    },\n                  );\n                }\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions /  copy normal app url to clipboard\n          new ProjectItem(\n            `$ COPY normal app url to clipboard`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                if (project?.location) {\n                  vscode.window.withProgress(\n                    {\n                      location: vscode.ProgressLocation.Notification,\n                      title: 'Copying normal app URL to clipboard...',\n                      cancellable: false,\n                    },\n                    progress => {\n                      progress.report({\n                        increment: 0,\n                        message: 'Copying normal app URL to clipboard...',\n                      });\n                      const normalAppUrl = `http://localhost:${project.readFile(tmp_FRONTEND_NORMAL_APP_PORT + '_1')}`;\n                      vscode.env.clipboard.writeText(normalAppUrl);\n                      progress.report({\n                        message: 'Done',\n                        increment: 100,\n                      });\n                      return Promise.resolve();\n                    },\n                  );\n                }\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions /  copy normal app url to clipboard\n          new ProjectItem(\n            `$ COPY websql app url to clipboard`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              triggerActionOnClick: project => {\n                if (project?.location) {\n                  vscode.window.withProgress(\n                    {\n                      location: vscode.ProgressLocation.Notification,\n                      title: `Copying websql app URL to clipboard...`,\n                      cancellable: false,\n                    },\n                    progress => {\n                      progress.report({\n                        increment: 0,\n                        message: `Copying websql app URL to clipboard...`,\n                      });\n                      const websqlAppUrl = `http://localhost:${project.readFile(tmp_FRONTEND_WEBSQL_APP_PORT + '_1')}`;\n                      vscode.env.clipboard.writeText(websqlAppUrl);\n\n                      progress.report({\n                        message: `Done`,\n                        increment: 100,\n                      });\n                      return Promise.resolve();\n                    },\n                  );\n                }\n                if (project?.location) {\n                  focustFirstElement();\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions / regenerate src/lib/index._auto-generated_.ts\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} generate:lib:index`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null as any,\n              project: CURRENT_PROJECT as any,\n              // skipReturnToMenu: true,\n              triggerActionOnClick: async (project, progress) => {\n                if (project) {\n                  progress?.report({\n                    message: 'Generating export for all lib files',\n                  });\n                  await project.framework.generateLibIndex();\n                  // vscode.commands.executeCommand('workbench.view.explorer');\n                  progress?.report({\n                    message: 'Done  generating export for all lib files',\n                    increment: 100,\n                  });\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions / regenerate src/lib/index._auto-generated_.ts\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} generate:app:routes`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              // skipReturnToMenu: true,\n              triggerActionOnClick: async (project, progress) => {\n                if (project) {\n                  progress?.report({\n                    message: 'Generating app routes in app.ts...',\n                  });\n                  await project.framework.generateAppRoutes();\n                  progress?.report({\n                    message: 'Done generating app routes code ',\n                    increment: 100,\n                  });\n                  // vscode.commands.executeCommand('workbench.view.explorer');\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions / regenerate src/lib/index._auto-generated_.ts\n          new ProjectItem(\n            `$ ${FRAMEWORK_NAME} refactor:self:imports`,\n            vscode.TreeItemCollapsibleState.None,\n            {\n              iconPath: null,\n              project: CURRENT_PROJECT,\n              // skipReturnToMenu: true,\n              triggerActionOnClick: async (project, progress) => {\n                if (project) {\n                  progress?.report({ message: 'Refactoring imports...' });\n                  await project.refactor.selfImports({});\n                  progress?.report({\n                    message: 'Done refactoring import ',\n                    increment: 100,\n                  });\n                  // vscode.commands.executeCommand('workbench.view.explorer');\n                }\n              },\n            },\n          ),\n          //#endregion\n\n          //#region items with actions / regenerate src/lib/index._auto-generated_.ts\n          //           new ProjectItem(\n          //             `$ ${FRAMEWORK_NAME} genreate:new:component:structure:ai:info`,\n          //             vscode.TreeItemCollapsibleState.None,\n          //             {\n          //               iconPath: null,\n          //               project: CURRENT_PROJECT,\n          //               // skipReturnToMenu: true,\n          //               triggerActionOnClick: async (project, progress) => {\n          //                 vscode.env.clipboard.writeText(`\n\n          // IMPORTANT:\n          // You are operating in AI-MD multi-file mode.\n          // If the structure is not preserved, the output is invalid.\n          // Example output response structure:\n\n          // any-filename.extension\n          // \\`\\`\\`extension\n          // code of any-filename.extension\n          // \\`\\`\\`\n\n          // any-filename-next.any-other-extension\n          // \\`\\`\\`any-other-extension\n          // code of any-filename-next.any-other-extension\n          // \\`\\`\\`\n\n          // Keep structure flat: any-filename.extension is just basename.\n          // Just like any-filename-next.any-other-extension...\n          // Use ONE OUTPUT MARKDOWN CODE BOX FIELD for the whole response.\n\n          //                   `);\n          //               },\n          //             },\n          //           ),\n          //#endregion\n        ]\n      : []),\n\n    //#region items with actions / uninstall vscode extension itself\n    //         new ProjectItem(\n    //           `$ ${FRAMEWORK_NAME} vscode:uninstall:itself`,\n    //           vscode.TreeItemCollapsibleState.None,\n    //           {\n    //             iconPath: null,\n    //             project: CURRENT_PROJECT,\n    //             triggerActionOnClick: project => {\n    //               if (project) {\n    //                 Helpers.run(\n    //                   `${await this.ins.editor()} --uninstall-extension taon-dev.${FRAMEWORK_NAME}-vscode-ext\n    // `,\n    //                 ).sync();\n    //                 vscode.commands.executeCommand('workbench.view.explorer');\n    //               }\n    //             },\n    //           },\n    //         ),\n    // ...(CURRENT_PROJECT.typeIs(LibTypeEnum.ISOMORPHIC_LIB, LibTypeEnum.CONTAINER)\n    //   ? [\n    //       !isContainerOrganizationCurrentProj ? coreProjectItem : void 0,\n    //       coreContainerItem,\n    //     ].filter(f => !!f)\n    //   : []),\n    //#endregion\n  ];\n};","//#region imports\nimport { crossPlatformPath, Helpers, path } from 'tnp-core/browser';\nimport { _ } from 'tnp-core/browser';\nimport type { ExtensionContext } from 'vscode';\nimport type * as vscode from 'vscode';\n\nimport {\n  tmp_FRONTEND_NORMAL_APP_PORT,\n  tmp_FRONTEND_WEBSQL_APP_PORT,\n} from './constants';\nimport { Project } from './project/abstract/project';\nimport { vscodeMenuItems } from './vscode-menu-items';\n//#endregion\n\n//#region models\ntype TriggerActionFn = (\n  project?: Project,\n  progres?: vscode.Progress<{\n    message?: string;\n    increment?: number;\n  }>,\n  token?: vscode.CancellationToken,\n) => Promise<any> | void;\n//#endregion\n\nlet menuItemClickable = true;\nexport function activateMenuTnp(\n  context: vscode.ExtensionContext,\n  vscode: typeof import('vscode'),\n  FRAMEWORK_NAME: string,\n) {\n  function runInTerminal(command: string, inNewTerminal  = false) {\n    let terminal = vscode.window.activeTerminal;\n\n    if (inNewTerminal || !terminal) {\n      terminal = vscode.window.createTerminal({\n        name: `Running \"${command}\" command`,\n      });\n    }\n    // terminal = vscode.window.createTerminal({\n    //   name: `Starting \"${command}\" command`,\n    // });\n\n    terminal?.show(true);\n    terminal?.sendText(command, true);\n  }\n\n  //#region focus first element function\n  const focustFirstElement = () => {\n    treeView.reveal(treeProvider.getDummy(), {\n      select: true,\n      focus: true,\n    });\n  };\n  //#endregion\n\n  const FRAMEWORK_NAME_UPPER_FIST = _.upperFirst(FRAMEWORK_NAME);\n\n  //#region open / click item command\n  vscode.commands.registerCommand(\n    `projectsView${FRAMEWORK_NAME_UPPER_FIST}.openItem`,\n    (item: ProjectItem) => {\n      if (!menuItemClickable) {\n        return;\n      }\n      if (item?.triggerActionOnClick) {\n        menuItemClickable = false;\n        vscode.window.withProgress(\n          {\n            location: item.progressLocation,\n            title: 'Executing action...',\n            cancellable: false,\n          },\n          async (progres, token) => {\n            progres.report({ increment: 0, message: 'Processing...' });\n            try {\n              if (item.triggerActionOnClick) {\n                await item.triggerActionOnClick(item.project, progres, token);\n              }\n              progres.report({ message: 'Done' });\n              if (\n                item.progressLocation === vscode.ProgressLocation.Notification\n              ) {\n                vscode.window.showInformationMessage(`Done ${item.label}`);\n              }\n            } catch (error) {\n              const errMsg =\n                (error instanceof Error && error.message) || String(error);\n\n              vscode.window.showErrorMessage(errMsg);\n            }\n\n            menuItemClickable = true;\n          },\n        );\n        return;\n      }\n      if (item.project) {\n        // example: open folder in same window\n        const clickLink = item.refreshLinkOnClick\n          ? item.clickLinkFn && item.clickLinkFn(item.project)\n          : item.clickLink;\n\n        vscode.commands\n          .executeCommand(\n            'vscode.openFolder',\n            vscode.Uri.file(clickLink || ''),\n            {\n              forceNewWindow: true,\n            },\n          )\n          .then(() => {\n            focustFirstElement();\n          });\n      }\n    },\n  );\n  //#endregion\n\n  //#region project item class\n  class ProjectItem extends vscode.TreeItem {\n    public readonly clickLink: string | undefined;\n\n    public readonly project?: Project;\n\n    public readonly clickLinkFn?: (project: Project | undefined) => string;\n\n    public readonly refreshLinkOnClick?: boolean;\n\n    public readonly triggerActionOnClick?: TriggerActionFn;\n\n    public readonly processTitle?: string;\n\n    public readonly progressLocation: vscode.ProgressLocation;\n\n    //#region constructor\n    constructor(\n      public readonly label: string,\n      public readonly collapsibleState: vscode.TreeItemCollapsibleState,\n      options?: {\n        project?: Project;\n        clickLinkFn?: (project: Project) => string;\n        refreshLinkOnClick?: boolean;\n        triggerActionOnClick?: TriggerActionFn;\n        processTitle?: string;\n        progressLocation?: vscode.ProgressLocation;\n        boldLabel?: boolean;\n        iconPath?:\n          | null\n          | string\n          | vscode.ThemeIcon\n          | vscode.Uri\n          | {\n              light: string | vscode.Uri;\n              dark: string | vscode.Uri;\n            };\n      },\n    ) {\n      super(label, collapsibleState);\n      options = options || {};\n      this.progressLocation =\n        options.progressLocation || vscode.ProgressLocation.SourceControl;\n\n      if (options.boldLabel) {\n        const labelBold = {\n          label: label,\n          highlights: [[0, label.length]],\n        };\n        this.label = labelBold as any;\n      }\n      if (options.iconPath !== undefined) {\n        this.iconPath = (\n          options.iconPath === null ? undefined : options.iconPath\n        ) as string;\n      } else {\n        this.iconPath =\n          collapsibleState === vscode.TreeItemCollapsibleState.None\n            ? vscode.ThemeIcon.File\n            : vscode.ThemeIcon.Folder;\n      }\n\n      const project = options?.project;\n      this.processTitle = options?.processTitle;\n      this.clickLinkFn = (\n        options?.clickLinkFn ? options.clickLinkFn : p => p?.location\n      ) as any;\n\n      this.triggerActionOnClick = options.triggerActionOnClick;\n      this.refreshLinkOnClick = options?.refreshLinkOnClick;\n\n      this.project = project;\n      this.clickLink = this.refreshLinkOnClick\n        ? undefined\n        : this.clickLinkFn && this.clickLinkFn(project);\n\n      this.tooltip = project ? project.nameForNpmPackage : label;\n\n      if (collapsibleState === vscode.TreeItemCollapsibleState.None) {\n        this.command = {\n          command: `projectsView${FRAMEWORK_NAME_UPPER_FIST}.openItem`, // must be registered\n          title: 'Open',\n          arguments: [this], // passed to command handler\n        };\n      }\n    }\n    //#endregion\n  }\n  //#endregion\n\n  //#region tree provider class\n  class ProjectsTreeProvider implements vscode.TreeDataProvider<ProjectItem> {\n    //#region get children\n    async getChildren(element?: ProjectItem): Promise<ProjectItem[]> {\n      //#region resolve variables\n      // if (!element) {\n      // root → workspace folders\n      // const editorOrgFilePath = crossPlatformPath(\n      //   vscode.window.activeTextEditor.document.uri.fsPath,\n      // );\n      // let currentFilePath = editorOrgFilePath;\n\n      const WORKSPACE_MAIN_FOLDER_PATH =\n        vscode.workspace.workspaceFolders?.[0].uri.fsPath;\n\n      /**\n       * may be container (normal or organization) or standalone project or unknow project\n       */\n      const CURRENT_PROJECT = WORKSPACE_MAIN_FOLDER_PATH\n        ? Project.ins.From(WORKSPACE_MAIN_FOLDER_PATH)\n        : undefined;\n      if (!CURRENT_PROJECT) {\n        return [this.taonProjWarning];\n      }\n\n      const CURRENT_PROJECT_PARENT_IS_ORGANIZATION =\n        CURRENT_PROJECT.framework.isContainerChild &&\n        CURRENT_PROJECT.parent?.taonJson.isOrganization;\n\n      /**\n       * organization container or container organization child\n       */\n      const ORGANIZATION =\n        CURRENT_PROJECT.taonJson.isOrganization ||\n        (CURRENT_PROJECT_PARENT_IS_ORGANIZATION &&\n          CURRENT_PROJECT.framework.isContainerChild);\n\n      const MAP_PROJEC_FN = (\n        project: Project,\n        nameIsFirst: boolean = false,\n      ): ProjectItem | undefined => {\n        if (!project) {\n          return;\n        }\n\n        const parentName = CURRENT_PROJECT_PARENT_IS_ORGANIZATION\n          ? CURRENT_PROJECT.parent.name\n          : CURRENT_PROJECT.name;\n\n        const secondPartOfName = nameIsFirst\n          ? `${project.name} ${project.nameForNpmPackage !== project.name ? `(${project.nameForNpmPackage})` : ''}`\n          : `${project.nameForNpmPackage.replace(parentName, `---`)}` +\n            ` ${project.name !== path.basename(project.nameForNpmPackage) ? `(${project.name})` : ''}`;\n\n        return new ProjectItem(\n          project.name === project.nameForNpmPackage\n            ? project.name\n            : secondPartOfName,\n          vscode.TreeItemCollapsibleState.None,\n          { project },\n        );\n      };\n      //#endregion\n\n      const parentOfParent = CURRENT_PROJECT_PARENT_IS_ORGANIZATION\n        ? CURRENT_PROJECT.parent?.parent // special case\n        : CURRENT_PROJECT.parent;\n\n      const parentForParentChildren = [\n        parentOfParent,\n        ...(parentOfParent?.children || []),\n      ]\n        .filter(f => !!f)\n        .filter(f => f.location !== CURRENT_PROJECT.location)\n        .map(c => MAP_PROJEC_FN(c, true))\n        .filter(f => !!f);\n\n      const organizationMainItem =\n        ORGANIZATION &&\n        new ProjectItem(\n          `@${CURRENT_PROJECT_PARENT_IS_ORGANIZATION ? CURRENT_PROJECT.parent.name : CURRENT_PROJECT.name}`,\n          vscode.TreeItemCollapsibleState.None,\n          {\n            project: CURRENT_PROJECT_PARENT_IS_ORGANIZATION\n              ? CURRENT_PROJECT.parent\n              : CURRENT_PROJECT,\n          },\n        );\n\n      //#region core items\n      // TODO maybe later I will add it back\n      // const coreProjectItem = new ProjectItem(\n      //   `$ ${FRAMEWORK_NAME} open:core:project`,\n      //   vscode.TreeItemCollapsibleState.None,\n\n      //   {\n      //     project: CURRENT_PROJECT.framework.coreProject,\n      //     refreshLinkOnClick: true,\n      //     iconPath: null,\n      //   },\n      // );\n\n      // const coreContainerItem = new ProjectItem(\n      //   `$ ${FRAMEWORK_NAME} open:core:container`,\n      //   vscode.TreeItemCollapsibleState.None,\n      //   {\n      //     project: CURRENT_PROJECT.framework.coreContainer,\n      //     refreshLinkOnClick: true,\n      //     iconPath: null,\n      //   },\n      // );\n      //#endregion\n\n      const ORGANIZATION_PROJECTS_OR_CURRENT_PROJECT_CHILDREN =\n        organizationMainItem\n          ? [\n              ...(CURRENT_PROJECT_PARENT_IS_ORGANIZATION\n                ? CURRENT_PROJECT.parent?.children\n                : CURRENT_PROJECT.children),\n            ]\n          : [];\n\n      const currentProjectProjects = [\n        organizationMainItem,\n        ...ORGANIZATION_PROJECTS_OR_CURRENT_PROJECT_CHILDREN.map(c =>\n          MAP_PROJEC_FN(c),\n        ).filter(f => !!f),\n      ].filter(f => !!f);\n\n      if (\n        // skip when project is not organizaition and not inside organization\n        // and does not have children\n        currentProjectProjects.length === 1 &&\n        currentProjectProjects[0].project?.location === CURRENT_PROJECT.location\n      ) {\n        currentProjectProjects.length = 0;\n      }\n\n      if (CURRENT_PROJECT.typeIs('unknown-npm-project')) {\n        return [\n          this.dummy,\n          this.getInfoItem('Click item below to trigger action', true),\n          ...vscodeMenuItems({\n            vscode,\n            FRAMEWORK_NAME,\n            CURRENT_PROJECT,\n            runInTerminal,\n            focustFirstElement,\n            ProjectItem,\n            tmp_FRONTEND_NORMAL_APP_PORT,\n            tmp_FRONTEND_WEBSQL_APP_PORT,\n            skipTaonItems: true,\n          }),\n          // children\n          this.getInfoItem('Choose projects below to switch', true),\n          ...(CURRENT_PROJECT?.children\n            .map(c => MAP_PROJEC_FN(c))\n            .filter(f => !!f) || []),\n          // children\n          this.getInfoItem('Choose parent projects below to switch', true),\n          ...([CURRENT_PROJECT?.parent]\n            .filter(f => !!f)\n            .map(c => MAP_PROJEC_FN(c))\n            .filter(f => !!f) || []),\n          ...(CURRENT_PROJECT?.parent?.children\n            .map(c => MAP_PROJEC_FN(c))\n            .filter(f => !!f) || []),\n        ];\n      }\n\n      return [\n        this.dummy,\n        currentProjectProjects.length > 0 &&\n          this.getInfoItem('Choose projects below to switch', true),\n        ...currentProjectProjects,\n        currentProjectProjects.length > 0 && this.empty,\n        this.getInfoItem('Click item below to trigger action', true),\n        ...vscodeMenuItems({\n          vscode,\n          FRAMEWORK_NAME,\n          CURRENT_PROJECT,\n          runInTerminal,\n          focustFirstElement,\n          ProjectItem,\n          tmp_FRONTEND_NORMAL_APP_PORT,\n          tmp_FRONTEND_WEBSQL_APP_PORT,\n        }),\n        parentForParentChildren.length > 0 && this.empty,\n        parentForParentChildren.length > 0 &&\n          this.getInfoItem('Choose parent project children to switch', true),\n        ...parentForParentChildren,\n      ].filter(f => !!f);\n    }\n    //#endregion\n\n    //#region methods & fields\n    private _onDidChangeTreeData =\n      new vscode.EventEmitter<ProjectItem | void>();\n\n    // @ts-ignore\n    readonly onDidChangeTreeData: vscode.EventEmitter<void | ProjectItem> =\n      this._onDidChangeTreeData.event;\n\n    refresh(): void {\n      this._onDidChangeTreeData.fire();\n    }\n\n    getInfoItem(text: string, boldLabel: boolean = false) {\n      return new ProjectItem(text, vscode.TreeItemCollapsibleState.None, {\n        triggerActionOnClick: () => {\n          focustFirstElement();\n        },\n        iconPath: null,\n        boldLabel,\n      });\n    }\n\n    getTreeItem(element: ProjectItem): vscode.TreeItem {\n      return element;\n    }\n\n    getParent(element: ProjectItem): ProjectItem | undefined {\n      // All your items are root-level, so just return undefined.\n      return undefined;\n    }\n\n    private dummy = this.getInfoItem(' ');\n\n    private empty = new ProjectItem(' ', vscode.TreeItemCollapsibleState.None, {\n      triggerActionOnClick: () => {\n        focustFirstElement();\n      },\n      iconPath: null,\n    });\n\n    private taonProjWarning = new ProjectItem(\n      '< Current project is not a Taon project >',\n      vscode.TreeItemCollapsibleState.None,\n      {\n        triggerActionOnClick: () => {\n          focustFirstElement();\n        },\n      },\n    );\n\n    getDummy() {\n      return this.dummy;\n    }\n    //#endregion\n  }\n  //#endregion\n\n  //#region register tree view\n  const treeProvider = new ProjectsTreeProvider();\n  // context.subscriptions.push(\n  //   vscode.window.registerTreeDataProvider(`projectsView${FRAMEWORK_NAME_UPPER_FIST}`, treeProvider as any),\n  // );\n\n  var treeView = vscode.window.createTreeView(\n    `projectsView${FRAMEWORK_NAME_UPPER_FIST}`,\n    {\n      treeDataProvider: treeProvider as any,\n    },\n  );\n  context.subscriptions.push(treeView);\n  //#endregion\n\n  return ProjectItem;\n}\n\nexport function deactivateMenuTnp() {}","import { crossPlatformPath, fse, path } from 'tnp-core/browser';\nimport type * as vscode from 'vscode';\nimport { LocationLink, Location, DebugStackFrame } from 'vscode';\nexport function handleTaonRedirect(\n  context: vscode.ExtensionContext,\n  vscode: typeof import('vscode'),\n) {\n  //#region not stable definition changes\n  // const inProgress = new Set<string>();\n\n  // vscode.languages.registerDefinitionProvider(['typescript', 'javascript'], {\n  //   async provideDefinition(document, position) {\n  //     const key = `${document.uri.toString()}:${position.line}:${position.character}`;\n\n  //     if (inProgress.has(key)) return;\n  //     inProgress.add(key);\n\n  //     try {\n  //       const defs = await vscode.commands.executeCommand<\n  //         Location[] | LocationLink[]\n  //       >('vscode.executeDefinitionProvider', document.uri, position);\n\n  //       if (!defs || defs.length === 0) return;\n\n  //       const mapped: Location[] = [];\n  //       const seen = new Set<string>();\n\n  //       for (const def of defs) {\n  //         const uri = 'uri' in def ? def.uri : def.targetUri;\n  //         const range = 'range' in def ? def.range : def.targetSelectionRange;\n\n  //         const originalPath = crossPlatformPath(uri.fsPath);\n\n  //         let finalPath: string | null = null;\n\n  //         const match = originalPath.match(\n  //           /\\/node_modules\\/((?:@[^\\/]+\\/)?[^\\/]+)\\/source\\//,\n  //         );\n\n  //         if (match) {\n  //           // 🔥 map to real source\n  //           const [projPath, relative] = originalPath.split(match[0]);\n\n  //           let fullPathToSource = crossPlatformPath([projPath, match[0]]);\n\n  //           try {\n  //             fullPathToSource = crossPlatformPath(\n  //               fse.realpathSync(fullPathToSource),\n  //             );\n  //           } catch {\n  //             continue;\n  //           }\n\n  //           finalPath = crossPlatformPath([fullPathToSource, relative]);\n  //         } else {\n  //           // ❌ skip EVERYTHING from node_modules\n  //           if (originalPath.includes('/node_modules/')) {\n  //             continue;\n  //           }\n\n  //           // ✅ allow project files\n  //           finalPath = originalPath;\n  //         }\n\n  //         if (!finalPath) continue;\n\n  //         const dedupeKey = `${finalPath}:${range.start.line}:${range.start.character}`;\n\n  //         if (seen.has(dedupeKey)) continue;\n  //         seen.add(dedupeKey);\n  //         mapped.push(new vscode.Location(vscode.Uri.file(finalPath), range));\n\n  //         // TODO QUICK _FIX\n  //         // setTimeout(async () => {\n  //         //   const doc = await vscode.workspace.openTextDocument(finalPath);\n  //         //   await vscode.window.showTextDocument(doc, {\n  //         //     selection: range,\n  //         //   });\n  //         // }, 0);\n  //         // return [];\n  //       }\n\n  //       // 🔥 CRITICAL: if we mapped anything → RETURN ONLY mapped\n  //       if (mapped.length > 0) {\n  //         const items = mapped.map(loc => ({\n  //           label: vscode.workspace.asRelativePath(loc.uri.fsPath),\n  //           description: `Line ${loc.range.start.line + 1}`,\n  //           location: loc,\n  //         }));\n\n  //         const selected = await vscode.window.showQuickPick(items, {\n  //           placeHolder: 'Select definition (mapped source)',\n  //         });\n\n  //         if (selected) {\n  //           const doc = await vscode.workspace.openTextDocument(\n  //             selected.location.uri,\n  //           );\n  //           await vscode.window.showTextDocument(doc, {\n  //             selection: selected.location.range,\n  //           });\n  //         }\n\n  //         // console.log({ mapped, mappedLength: mapped.length });\n  //         // TODO IT DISPLAY ALSO NOT NEED source node_modules even when not in mapped\n  //         return mapped;\n  //       }\n\n  //       // fallback only if nothing matched\n  //       // console.log({ defs: mapped.length });\n  //       return defs;\n  //     } finally {\n  //       inProgress.delete(key);\n  //     }\n  //   },\n  // });\n  //#endregion\n\n  //#region when hitting debugger in wrong file => change it\n  // const mapNodeModulesToSrc = (originalPath: string) => {\n  //   const match = originalPath.match(\n  //     /\\/node_modules\\/((?:@[^\\/]+\\/)?[^\\/]+)\\/source\\//,\n  //   );\n\n  //   if (match) {\n  //     // /node_modules/taon/source/ zero\n\n  //     const [porjPath, relative] = originalPath.split(match[0]);\n  //     let fullPathToSource = crossPlatformPath([porjPath, match[0]]);\n  //     try {\n  //       fullPathToSource = crossPlatformPath(\n  //         fse.realpathSync(fullPathToSource),\n  //       );\n  //     } catch (error) {\n  //       // console.log('failed to read symlink');\n  //       return;\n  //     }\n  //     const properRedirectLink = crossPlatformPath([\n  //       fullPathToSource,\n  //       relative,\n  //     ]);\n  //     return properRedirectLink;\n  //   }\n  //   return originalPath;\n  // };\n\n  // vscode.debug.onDidChangeBreakpoints(async session => {\n  //   const allTabs: vscode.Tab[] = vscode.window.tabGroups.all.flatMap(\n  //     group => group.tabs,\n  //   );\n\n  //   for (const tab of allTabs) {\n  //     if (!(tab.input instanceof vscode.TabInputText)) continue;\n  //     const originalPath = crossPlatformPath(tab.input.uri.fsPath);\n  //     const mapped = mapNodeModulesToSrc(originalPath);\n\n  //     if (mapped && mapped !== originalPath) {\n  //       const doc = await vscode.workspace.openTextDocument(mapped);\n\n  //       // 🔥 close original tab\n  //       await vscode.window.tabGroups.close(tab);\n\n  //       await vscode.window.showTextDocument(doc, {\n  //         preview: false,\n  //       });\n  //     }\n  //   }\n  // });\n\n  //#endregion\n\n  vscode.window.onDidChangeActiveTextEditor(async editor => {\n    if (!editor) {\n      return;\n    }\n    const document = editor.document;\n    let originalPath = crossPlatformPath(document.uri.fsPath);\n\n    // ❌ ignore preview editors\n    if (editor.viewColumn === undefined) {\n      console.log('viewColumn undefined');\n      return;\n    }\n\n    const match2 = originalPath.match(\n      /\\/node_modules\\/((?:@[^\\/]+\\/)?[^\\/]+)\\/src\\.d\\.ts/,\n    );\n    if (match2) {\n      const toRep = crossPlatformPath(path.dirname(match2[0]));\n      const [porjPath] = originalPath.split(toRep);\n      // console.log({ match2, porjPath, toRep });\n      if (await fse.exists(crossPlatformPath([porjPath, toRep, 'source']))) {\n        originalPath = crossPlatformPath([porjPath, toRep, 'source/index.ts']);\n      }\n    }\n    // else {\n    //   return; // TODO REDIRECT AUTOMATICALLY ONLY src.d.ts\n    // }\n\n    const match = originalPath.match(\n      /\\/node_modules\\/((?:@[^\\/]+\\/)?[^\\/]+)\\/source\\//,\n    );\n\n    if (match) {\n      // /node_modules/taon/source/ zero\n\n      const [porjPath, relative] = originalPath.split(match[0]);\n      let fullPathToSource = crossPlatformPath([porjPath, match[0]]);\n      try {\n        fullPathToSource = crossPlatformPath(\n          fse.realpathSync(fullPathToSource),\n        );\n      } catch (error) {\n        // console.log('failed to read symlink');\n        return;\n      }\n      const properRedirectLink = crossPlatformPath([\n        fullPathToSource,\n        relative,\n      ]);\n\n      if (properRedirectLink === originalPath) {\n        return;\n      }\n\n      setTimeout(async () => {\n        // console.log({ porjPath, relative, fullPathToSource });\n\n        const uri = vscode.Uri.file(properRedirectLink);\n\n        try {\n          const doc = await vscode.workspace.openTextDocument(uri);\n          const selection = editor.selection;\n\n          await vscode.window.showTextDocument(doc, {\n            preview: false,\n            selection,\n          });\n          vscode.window.setStatusBarMessage(\n            `[${match[1]}] Redirected to proper source.`,\n            3000,\n          );\n\n          // close original editor\n          const editors = vscode.window.visibleTextEditors;\n          const originalEditor = editors.find(\n            e => e.document.uri.fsPath === originalPath,\n          );\n\n          if (originalEditor) {\n            await vscode.window.showTextDocument(document);\n            await vscode.commands.executeCommand(\n              'workbench.action.closeActiveEditor',\n            );\n          }\n\n          const tabGroups = vscode.window.tabGroups.all;\n          for (const group of tabGroups) {\n            for (const tab of group.tabs) {\n              if (\n                tab.input instanceof vscode.TabInputText &&\n                tab.input.uri.fsPath === document.uri.fsPath\n              ) {\n                await vscode.window.tabGroups.close(tab);\n                return;\n              }\n            }\n          }\n        } catch (err) {\n          console.error('Redirect failed:', err);\n        }\n      }, 500);\n    }\n  });\n}","import { fse, path, _ } from 'tnp-core/browser';\nimport type { ExtensionContext, Uri } from 'vscode';\n\nexport const vscodePatchingCodium = (\n  context: ExtensionContext,\n  vscode: typeof import('vscode'),\n  frameworkName: 'taon' | 'tnp',\n) => {\n  // Based on https://github.com/ritwickdey/vscode-create-file-folder\n\n  //#region app model\n  class AppModel {\n    createFileOrFolder(taskType: 'file' | 'folder', relativePath?: string) {\n      relativePath = relativePath || '/';\n      const projectRoot = vscode.workspace.workspaceFolders[0].uri.fsPath;\n      if (path.resolve(relativePath) === relativePath)\n        relativePath = relativePath\n          .substring(projectRoot.length)\n          .replace(/\\\\/g, '/');\n\n      if (!relativePath.endsWith('/')) relativePath += '/';\n      const basepath = projectRoot;\n\n      vscode.window\n        .showInputBox({\n          value: relativePath || '/',\n          prompt: `Create New ${taskType} (/path/subpath/to/${taskType})`,\n          ignoreFocusOut: true,\n          valueSelection: [-1, -1],\n        })\n        .then(fullpath => {\n          if (!fullpath) return;\n          try {\n            let paths = fullpath.split('>').map(e => e.trim());\n            let targetpath =\n              taskType === 'file' ? path.dirname(paths[0]) : paths[0];\n            paths[0] = taskType === 'file' ? path.basename(paths[0]) : '/';\n            targetpath = path.join(basepath, targetpath);\n            paths = paths.map(e => path.join(targetpath, e));\n\n            if (taskType === 'file') this.makefiles(paths);\n            else this.makefolders(paths);\n\n            setTimeout(() => {\n              //tiny delay\n              if (taskType === 'file') {\n                let openPath = paths.find(path => fse.lstatSync(path).isFile());\n                if (!openPath) return;\n                vscode.workspace.openTextDocument(openPath).then(editor => {\n                  if (!editor) return;\n                  vscode.window.showTextDocument(editor);\n                });\n              }\n            }, 50);\n          } catch (error) {\n            this.logError(error);\n            vscode.window.showErrorMessage(\n              'Somthing went wrong! Please report on GitHub',\n            );\n          }\n        });\n    }\n\n    makefiles(filepaths: string[]) {\n      filepaths.forEach(filepath => this.makeFileSync(filepath));\n    }\n\n    makefolders(files: string[]) {\n      files.forEach(file => this.makeDirSync(file));\n    }\n\n    makeDirSync(dir: string) {\n      if (fse.existsSync(dir)) return;\n      if (!fse.existsSync(path.dirname(dir))) {\n        this.makeDirSync(path.dirname(dir));\n      }\n      fse.mkdirSync(dir);\n    }\n\n    makeFileSync(filename: string) {\n      if (!fse.existsSync(filename)) {\n        this.makeDirSync(path.dirname(filename));\n        fse.createWriteStream(filename).close();\n      }\n    }\n\n    findDir(filePath: string) {\n      if (!filePath) return null;\n      if (fse.statSync(filePath).isFile()) return path.dirname(filePath);\n\n      return filePath;\n    }\n\n    logError(error) {\n      console.log('==============Error===============');\n      console.log(error);\n      console.log('===================================');\n    }\n  }\n  //#endregion\n\n  //#region new file folder\n  const appModel = new AppModel();\n\n  context.subscriptions.push(\n    vscode.commands.registerCommand(\n      `extension.createFile${_.upperFirst(frameworkName)}`,\n      (file: Uri) => {\n        appModel.createFileOrFolder(\n          'file',\n          file ? appModel.findDir(file.fsPath) : '/',\n        );\n      },\n    ),\n  );\n\n  context.subscriptions.push(\n    vscode.commands.registerCommand(\n      `extension.createFolder${_.upperFirst(frameworkName)}`,\n      (file: Uri) => {\n        appModel.createFileOrFolder(\n          'folder',\n          file ? appModel.findDir(file.fsPath) : '/',\n        );\n      },\n    ),\n  );\n  //#endregion\n\n  // Based on https://github.com/natqe/reload\n\n  //#region reload button\n  const statusBar = vscode.window.createStatusBarItem(\n    vscode.StatusBarAlignment.Right,\n    0,\n  );\n\n  statusBar.text = `Reload`;\n\n  statusBar.command = `workbench.action.reloadWindow`;\n\n  statusBar.tooltip = `Reload window`;\n\n  statusBar.show();\n\n  //#endregion\n};","export * from './constants';\nexport { Project } from './project/abstract/project';\nexport * from './options';\nexport * from './vscode-ext-methods';\nexport * from './vscode-ext-menu';\nexport * from './vscode-handle-taon-redirect';\nexport * from './vscode-patching';\n/* */                                    \n/* */                                                   ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}