tnp 21.0.201 → 21.0.203

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/bin/start.js +2 -1
  3. package/browser/fesm2022/tnp-browser.mjs +18 -4
  4. package/browser/fesm2022/tnp-browser.mjs.map +1 -1
  5. package/browser/package.json +1 -1
  6. package/browser/types/tnp-browser.d.ts +90 -22
  7. package/browser-prod/fesm2022/tnp-browser-prod.mjs +18 -4
  8. package/browser-prod/fesm2022/tnp-browser-prod.mjs.map +1 -1
  9. package/browser-prod/package.json +1 -1
  10. package/browser-prod/types/tnp-browser-prod.d.ts +82 -22
  11. package/browser-prod.split-namespaces.json +16 -0
  12. package/cli.js +13749 -12170
  13. package/html/assets/generated/pwa/html-pwa.html +60 -0
  14. package/index.d.ts +2 -0
  15. package/index.js +2 -0
  16. package/index.js.map +1 -1
  17. package/lib/build-info._auto-generated_.d.ts +1 -1
  18. package/lib/build-info._auto-generated_.js +1 -1
  19. package/lib/constants.d.ts +13 -2
  20. package/lib/constants.js +19 -9
  21. package/lib/constants.js.map +1 -1
  22. package/lib/index.d.ts +2 -0
  23. package/lib/index.js +1 -0
  24. package/lib/index.js.map +1 -1
  25. package/lib/migrations/1737301724542_addingSampleData.d.ts +1 -1
  26. package/lib/package.json +1 -1
  27. package/lib/project/abstract/artifacts/__helpers__/branding.js.map +1 -1
  28. package/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js +7 -2
  29. package/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js.map +1 -1
  30. package/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js +49 -0
  31. package/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js.map +1 -1
  32. package/lib/project/abstract/artifacts/artifacts-manager.d.ts +3 -0
  33. package/lib/project/abstract/artifacts/artifacts-manager.js +101 -1
  34. package/lib/project/abstract/artifacts/artifacts-manager.js.map +1 -1
  35. package/lib/project/abstract/artifacts/base-artifact.js +4 -0
  36. package/lib/project/abstract/artifacts/base-artifact.js.map +1 -1
  37. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +2 -6
  38. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
  39. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
  40. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/file-split-process.js.map +1 -1
  41. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.d.ts +1 -1
  42. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js +6 -6
  43. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js.map +1 -1
  44. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js +10 -9
  45. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js.map +1 -1
  46. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/typescript-dts-fixer.d.ts +3 -2
  47. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/typescript-dts-fixer.js +7 -7
  48. package/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/typescript-dts-fixer.js.map +1 -1
  49. package/lib/project/abstract/cloud-flare-projects/cloud-flare-email-worker-project.d.ts +5 -0
  50. package/lib/project/abstract/cloud-flare-projects/cloud-flare-email-worker-project.js +64 -0
  51. package/lib/project/abstract/cloud-flare-projects/cloud-flare-email-worker-project.js.map +1 -0
  52. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.d.ts +0 -0
  53. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js +5 -0
  54. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js.map +1 -0
  55. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project.d.ts +24 -0
  56. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js +280 -0
  57. package/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js.map +1 -0
  58. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.d.ts +0 -0
  59. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js +5 -0
  60. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js.map +1 -0
  61. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.d.ts +23 -0
  62. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js +137 -0
  63. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js.map +1 -0
  64. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.d.ts +18 -0
  65. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js +199 -0
  66. package/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js.map +1 -0
  67. package/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.d.ts +5 -0
  68. package/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js +48 -0
  69. package/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js.map +1 -0
  70. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.d.ts +0 -0
  71. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js +5 -0
  72. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js.map +1 -0
  73. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.d.ts +0 -0
  74. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js +5 -0
  75. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js.map +1 -0
  76. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project copy.d.ts +5 -0
  77. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project copy.js +32 -0
  78. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project copy.js.map +1 -0
  79. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.d.ts +5 -0
  80. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js +32 -0
  81. package/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js.map +1 -0
  82. package/lib/project/abstract/project-resolve.js +56 -54
  83. package/lib/project/abstract/project-resolve.js.map +1 -1
  84. package/lib/project/abstract/sub-project.d.ts +11 -23
  85. package/lib/project/abstract/sub-project.js +127 -593
  86. package/lib/project/abstract/sub-project.js.map +1 -1
  87. package/lib/project/abstract/taon-worker/deployments/deployments.context.d.ts +7 -7
  88. package/lib/project/abstract/taon-worker/dev-build/dev-build.abstract.context.d.ts +7 -7
  89. package/lib/project/abstract/taon-worker/dev-build/dev-build.utils.d.ts +5 -5
  90. package/lib/project/abstract/taon-worker/dev-mode/dev-mode.context.d.ts +7 -7
  91. package/lib/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.context.d.ts +7 -7
  92. package/lib/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.repository.js +27 -17
  93. package/lib/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.repository.js.map +1 -1
  94. package/lib/project/abstract/taon-worker/taon.context.d.ts +7 -7
  95. package/lib/project/abstract/taon-worker/taon.controller.d.ts +1 -1
  96. package/lib/project/cli/cli-CLOUD.js +1 -1
  97. package/lib/project/cli/cli-CLOUD.js.map +1 -1
  98. package/lib/project/cli/cli-LINK.d.ts +1 -1
  99. package/lib/project/cli/cli-LINK.js +4 -82
  100. package/lib/project/cli/cli-LINK.js.map +1 -1
  101. package/lib/project/cli/cli-SUB_PROJECT.js +25 -13
  102. package/lib/project/cli/cli-SUB_PROJECT.js.map +1 -1
  103. package/lib/project/cli/cli-_GLOBAL_.js +6 -3
  104. package/lib/project/cli/cli-_GLOBAL_.js.map +1 -1
  105. package/lib/start-cli.js +0 -1
  106. package/lib/start-cli.js.map +1 -1
  107. package/lib-esm/index.d.ts +2 -0
  108. package/lib-esm/index.js +2 -0
  109. package/lib-esm/index.js.map +1 -1
  110. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  111. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  112. package/lib-esm/lib/constants.d.ts +13 -2
  113. package/lib-esm/lib/constants.js +14 -2
  114. package/lib-esm/lib/constants.js.map +1 -1
  115. package/lib-esm/lib/index.d.ts +2 -0
  116. package/lib-esm/lib/index.js +1 -0
  117. package/lib-esm/lib/index.js.map +1 -1
  118. package/lib-esm/lib/project/abstract/artifacts/__helpers__/branding.js.map +1 -1
  119. package/lib-esm/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js +7 -2
  120. package/lib-esm/lib/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js.map +1 -1
  121. package/lib-esm/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js +50 -1
  122. package/lib-esm/lib/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js.map +1 -1
  123. package/lib-esm/lib/project/abstract/artifacts/artifacts-manager.d.ts +3 -0
  124. package/lib-esm/lib/project/abstract/artifacts/artifacts-manager.js +103 -3
  125. package/lib-esm/lib/project/abstract/artifacts/artifacts-manager.js.map +1 -1
  126. package/lib-esm/lib/project/abstract/artifacts/base-artifact.js +4 -0
  127. package/lib-esm/lib/project/abstract/artifacts/base-artifact.js.map +1 -1
  128. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +3 -7
  129. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
  130. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
  131. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/file-split-process.js.map +1 -1
  132. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.d.ts +1 -1
  133. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js +6 -6
  134. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js.map +1 -1
  135. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js +10 -9
  136. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js.map +1 -1
  137. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/typescript-dts-fixer.d.ts +3 -2
  138. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/typescript-dts-fixer.js +7 -7
  139. package/lib-esm/lib/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/typescript-dts-fixer.js.map +1 -1
  140. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-email-worker-project.d.ts +5 -0
  141. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-email-worker-project.js +60 -0
  142. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-email-worker-project.js.map +1 -0
  143. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.d.ts +1 -0
  144. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js +2 -0
  145. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project copy.js.map +1 -0
  146. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project.d.ts +24 -0
  147. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js +276 -0
  148. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-project.js.map +1 -0
  149. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.d.ts +1 -0
  150. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js +2 -0
  151. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects-repository.js.map +1 -0
  152. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.d.ts +23 -0
  153. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js +133 -0
  154. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js.map +1 -0
  155. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.d.ts +18 -0
  156. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js +196 -0
  157. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js.map +1 -0
  158. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.d.ts +5 -0
  159. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js +44 -0
  160. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js.map +1 -0
  161. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.d.ts +1 -0
  162. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js +2 -0
  163. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project copy.js.map +1 -0
  164. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.d.ts +1 -0
  165. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js +2 -0
  166. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-project.js.map +1 -0
  167. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project copy.d.ts +5 -0
  168. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project copy.js +28 -0
  169. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project copy.js.map +1 -0
  170. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.d.ts +5 -0
  171. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js +28 -0
  172. package/lib-esm/lib/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js.map +1 -0
  173. package/lib-esm/lib/project/abstract/project-resolve.js +6 -4
  174. package/lib-esm/lib/project/abstract/project-resolve.js.map +1 -1
  175. package/lib-esm/lib/project/abstract/sub-project.d.ts +10 -22
  176. package/lib-esm/lib/project/abstract/sub-project.js +104 -569
  177. package/lib-esm/lib/project/abstract/sub-project.js.map +1 -1
  178. package/lib-esm/lib/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.repository.js +27 -17
  179. package/lib-esm/lib/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.repository.js.map +1 -1
  180. package/lib-esm/lib/project/cli/cli-CLOUD.js +1 -1
  181. package/lib-esm/lib/project/cli/cli-CLOUD.js.map +1 -1
  182. package/lib-esm/lib/project/cli/cli-LINK.d.ts +1 -1
  183. package/lib-esm/lib/project/cli/cli-LINK.js +7 -85
  184. package/lib-esm/lib/project/cli/cli-LINK.js.map +1 -1
  185. package/lib-esm/lib/project/cli/cli-SUB_PROJECT.js +25 -13
  186. package/lib-esm/lib/project/cli/cli-SUB_PROJECT.js.map +1 -1
  187. package/lib-esm/lib/project/cli/cli-_GLOBAL_.js +6 -3
  188. package/lib-esm/lib/project/cli/cli-_GLOBAL_.js.map +1 -1
  189. package/lib-esm/lib/start-cli.js +0 -1
  190. package/lib-esm/lib/start-cli.js.map +1 -1
  191. package/lib-prod/app-utils.js +1 -1
  192. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  193. package/lib-prod/build-info._auto-generated_.js +2 -2
  194. package/lib-prod/constants.d.ts +13 -2
  195. package/lib-prod/constants.js +15 -3
  196. package/lib-prod/constants.js.map +1 -1
  197. package/lib-prod/env/env.angular-node-app.js +1 -1
  198. package/lib-prod/env/env.docs-webapp.js +1 -1
  199. package/lib-prod/env/env.electron-app.js +1 -1
  200. package/lib-prod/env/env.mobile-app.js +1 -1
  201. package/lib-prod/env/env.npm-lib-and-cli-tool.js +1 -1
  202. package/lib-prod/env/env.vscode-plugin.js +1 -1
  203. package/lib-prod/env/index.js +1 -1
  204. package/lib-prod/framework-utils.js +1 -1
  205. package/lib-prod/index._auto-generated_.js +1 -1
  206. package/lib-prod/index.d.ts +2 -0
  207. package/lib-prod/index.js +2 -1
  208. package/lib-prod/index.js.map +1 -1
  209. package/lib-prod/migrations/1737301724542_addingSampleData.js +1 -1
  210. package/lib-prod/migrations/index.js +1 -1
  211. package/lib-prod/migrations/migrations_index._auto-generated_.js +1 -1
  212. package/lib-prod/models.js +1 -1
  213. package/lib-prod/options.js +1 -1
  214. package/lib-prod/package.json +1 -1
  215. package/lib-prod/project/abstract/artifacts/__helpers__/artifacts-helpers.js +1 -1
  216. package/lib-prod/project/abstract/artifacts/__helpers__/branding.js +1 -1
  217. package/lib-prod/project/abstract/artifacts/__helpers__/branding.js.map +1 -1
  218. package/lib-prod/project/abstract/artifacts/__helpers__/docker-helper.js +1 -1
  219. package/lib-prod/project/abstract/artifacts/__helpers__/environment-config/environment-config.js +1 -1
  220. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/inside-struct.js +1 -1
  221. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/base-inside-struct.js +1 -1
  222. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/inside-struct-constants.js +1 -1
  223. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/inside-struct-helpers.js +1 -1
  224. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/loaders/image-loader.js +1 -1
  225. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/loaders/loader-ids-default.js +1 -1
  226. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/loaders/loader-ids-ellipsis.js +1 -1
  227. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/loaders/loader-ids-facebook.js +1 -1
  228. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/loaders/loader-ids-grid.js +1 -1
  229. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/loaders/loader-ids-heart.js +1 -1
  230. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/loaders/loader-ids-ripple.js +1 -1
  231. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures/structs/loaders/loaders.js +1 -1
  232. package/lib-prod/project/abstract/artifacts/__helpers__/inside-structures-process.js +1 -1
  233. package/lib-prod/project/abstract/artifacts/__helpers__/production-build.js +1 -1
  234. package/lib-prod/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js +8 -3
  235. package/lib-prod/project/abstract/artifacts/angular-node-app/artifact-angular-node-app.js.map +1 -1
  236. package/lib-prod/project/abstract/artifacts/angular-node-app/index.js +1 -1
  237. package/lib-prod/project/abstract/artifacts/angular-node-app/tools/app-hosts-recreate-helper.js +1 -1
  238. package/lib-prod/project/abstract/artifacts/angular-node-app/tools/assets-manager.js +1 -1
  239. package/lib-prod/project/abstract/artifacts/angular-node-app/tools/basename-manager.js +1 -1
  240. package/lib-prod/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js +53 -4
  241. package/lib-prod/project/abstract/artifacts/angular-node-app/tools/inside-struct-angular-app.js.map +1 -1
  242. package/lib-prod/project/abstract/artifacts/angular-node-app/tools/inside-struct-app.js +1 -1
  243. package/lib-prod/project/abstract/artifacts/angular-node-app/tools/migrations-helper.js +1 -1
  244. package/lib-prod/project/abstract/artifacts/artifacts-manager.d.ts +3 -0
  245. package/lib-prod/project/abstract/artifacts/artifacts-manager.js +105 -5
  246. package/lib-prod/project/abstract/artifacts/artifacts-manager.js.map +1 -1
  247. package/lib-prod/project/abstract/artifacts/base-artifact.js +6 -2
  248. package/lib-prod/project/abstract/artifacts/base-artifact.js.map +1 -1
  249. package/lib-prod/project/abstract/artifacts/docs-webapp/artifact-docs-webapp.js +1 -1
  250. package/lib-prod/project/abstract/artifacts/docs-webapp/docs.js +1 -1
  251. package/lib-prod/project/abstract/artifacts/docs-webapp/index.js +1 -1
  252. package/lib-prod/project/abstract/artifacts/electron-app/artifact-electron-app.js +1 -1
  253. package/lib-prod/project/abstract/artifacts/electron-app/index.js +1 -1
  254. package/lib-prod/project/abstract/artifacts/electron-app/tools/inside-struct-electron-app.js +1 -1
  255. package/lib-prod/project/abstract/artifacts/electron-app/tools/inside-struct-electron.js +1 -1
  256. package/lib-prod/project/abstract/artifacts/mobile-app/artifact-mobile-app.js +1 -1
  257. package/lib-prod/project/abstract/artifacts/mobile-app/index.js +1 -1
  258. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js +4 -8
  259. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/artifact-npm-lib-and-cli-tool.js.map +1 -1
  260. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/index.js +1 -1
  261. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/app-routes-autogen-provider.js +1 -1
  262. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js +1 -1
  263. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/browser-code-cut.js.map +1 -1
  264. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/code-cut.js +1 -1
  265. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/code-split-process.enum.js +1 -1
  266. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/cut-fn.js +1 -1
  267. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/file-split-process.js +1 -1
  268. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/code-cut/file-split-process.js.map +1 -1
  269. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-backend.js +1 -1
  270. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.d.ts +1 -1
  271. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js +7 -7
  272. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/compilation-browser.js.map +1 -1
  273. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-isomorphic-lib/compilations/incremental-build-process.js +1 -1
  274. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/build-leader-process.js +1 -1
  275. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/base-copy-manager.js +1 -1
  276. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-helpers.js +1 -1
  277. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js +11 -10
  278. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager-standalone.js.map +1 -1
  279. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/copy-manager.js +1 -1
  280. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/source-maping-url.js +1 -1
  281. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/typescript-dts-fixer.d.ts +3 -2
  282. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/typescript-dts-fixer.js +8 -8
  283. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/copy-manager/typescript-dts-fixer.js.map +1 -1
  284. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/files-recreation/files-recreator.js +1 -1
  285. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/files-recreation/files-templates.js +1 -1
  286. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/files-recreation/index.js +1 -1
  287. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/index-autogen-provider.js +1 -1
  288. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/inside-struct-angular-lib.js +1 -1
  289. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/inside-struct-lib.js +1 -1
  290. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/taon-build-observer.js +1 -1
  291. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/taon-build-state-machine.js +1 -1
  292. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/test-runner/base-test-runner.js +1 -1
  293. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/test-runner/cypress-test-runner.js +1 -1
  294. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/test-runner/index.js +1 -1
  295. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/test-runner/jest-test-runner.js +1 -1
  296. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/test-runner/mocha-test-runner.js +1 -1
  297. package/lib-prod/project/abstract/artifacts/npm-lib-and-cli-tool/tools/test-runner/vitest-test-runner.js +1 -1
  298. package/lib-prod/project/abstract/artifacts/vscode-plugin/artifact-vscode-plugin.js +1 -1
  299. package/lib-prod/project/abstract/artifacts/vscode-plugin/index.js +1 -1
  300. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-email-worker-project.d.ts +5 -0
  301. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-email-worker-project.js +60 -0
  302. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-email-worker-project.js.map +1 -0
  303. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-project.d.ts +24 -0
  304. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-project.js +276 -0
  305. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-project.js.map +1 -0
  306. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.d.ts +23 -0
  307. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js +133 -0
  308. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.repository.js.map +1 -0
  309. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.d.ts +16 -0
  310. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js +193 -0
  311. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-projects.utils.js.map +1 -0
  312. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.d.ts +5 -0
  313. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js +44 -0
  314. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-stripe-worker-project.js.map +1 -0
  315. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.d.ts +5 -0
  316. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js +28 -0
  317. package/lib-prod/project/abstract/cloud-flare-projects/cloud-flare-yt-worker-project.js.map +1 -0
  318. package/lib-prod/project/abstract/file-folders-operations.js +1 -1
  319. package/lib-prod/project/abstract/framework.js +1 -1
  320. package/lib-prod/project/abstract/git.js +1 -1
  321. package/lib-prod/project/abstract/ignore-hide.js +1 -1
  322. package/lib-prod/project/abstract/library-build.js +1 -1
  323. package/lib-prod/project/abstract/lightweight-watcher.js +1 -1
  324. package/lib-prod/project/abstract/linked-projects.js +1 -1
  325. package/lib-prod/project/abstract/linter.js +1 -1
  326. package/lib-prod/project/abstract/linux-file-watcher.js +1 -1
  327. package/lib-prod/project/abstract/node-modules.js +1 -1
  328. package/lib-prod/project/abstract/npm-helpers.js +1 -1
  329. package/lib-prod/project/abstract/package-json.js +1 -1
  330. package/lib-prod/project/abstract/packages-recognition.js +1 -1
  331. package/lib-prod/project/abstract/project-resolve.js +7 -5
  332. package/lib-prod/project/abstract/project-resolve.js.map +1 -1
  333. package/lib-prod/project/abstract/project.js +1 -1
  334. package/lib-prod/project/abstract/quick-fixes.js +1 -1
  335. package/lib-prod/project/abstract/refactor.js +1 -1
  336. package/lib-prod/project/abstract/release-process/index.js +1 -1
  337. package/lib-prod/project/abstract/release-process/release-process.js +1 -1
  338. package/lib-prod/project/abstract/sub-project.d.ts +10 -22
  339. package/lib-prod/project/abstract/sub-project.js +105 -570
  340. package/lib-prod/project/abstract/sub-project.js.map +1 -1
  341. package/lib-prod/project/abstract/taon-worker/deployments/deployments.constants.js +1 -1
  342. package/lib-prod/project/abstract/taon-worker/deployments/deployments.context.js +1 -1
  343. package/lib-prod/project/abstract/taon-worker/deployments/deployments.controller.js +1 -1
  344. package/lib-prod/project/abstract/taon-worker/deployments/deployments.defaults-values.js +1 -1
  345. package/lib-prod/project/abstract/taon-worker/deployments/deployments.js +1 -1
  346. package/lib-prod/project/abstract/taon-worker/deployments/deployments.middleware.js +1 -1
  347. package/lib-prod/project/abstract/taon-worker/deployments/deployments.models.js +1 -1
  348. package/lib-prod/project/abstract/taon-worker/deployments/deployments.repository.js +1 -1
  349. package/lib-prod/project/abstract/taon-worker/deployments/deployments.terminal-ui.js +1 -1
  350. package/lib-prod/project/abstract/taon-worker/deployments/deployments.utils.js +1 -1
  351. package/lib-prod/project/abstract/taon-worker/deployments/deployments.worker.js +1 -1
  352. package/lib-prod/project/abstract/taon-worker/deployments/index.js +1 -1
  353. package/lib-prod/project/abstract/taon-worker/dev-build/dev-build.abstract.context.js +1 -1
  354. package/lib-prod/project/abstract/taon-worker/dev-build/dev-build.controller.js +1 -1
  355. package/lib-prod/project/abstract/taon-worker/dev-build/dev-build.models.js +1 -1
  356. package/lib-prod/project/abstract/taon-worker/dev-build/dev-build.repository.js +1 -1
  357. package/lib-prod/project/abstract/taon-worker/dev-build/dev-build.utils.js +1 -1
  358. package/lib-prod/project/abstract/taon-worker/dev-build/index.js +1 -1
  359. package/lib-prod/project/abstract/taon-worker/dev-mode/dev-mode.context.js +1 -1
  360. package/lib-prod/project/abstract/taon-worker/dev-mode/dev-mode.controller.js +1 -1
  361. package/lib-prod/project/abstract/taon-worker/dev-mode/dev-mode.models.js +1 -1
  362. package/lib-prod/project/abstract/taon-worker/dev-mode/dev-mode.repository.js +1 -1
  363. package/lib-prod/project/abstract/taon-worker/dev-mode/dev-mode.terminal-ui.js +1 -1
  364. package/lib-prod/project/abstract/taon-worker/dev-mode/dev-mode.utils.js +1 -1
  365. package/lib-prod/project/abstract/taon-worker/dev-mode/dev-mode.worker.js +1 -1
  366. package/lib-prod/project/abstract/taon-worker/dev-mode/index.js +1 -1
  367. package/lib-prod/project/abstract/taon-worker/instances/index.js +1 -1
  368. package/lib-prod/project/abstract/taon-worker/instances/instances.context.js +1 -1
  369. package/lib-prod/project/abstract/taon-worker/instances/instances.controller.js +1 -1
  370. package/lib-prod/project/abstract/taon-worker/instances/instances.defaults-values.js +1 -1
  371. package/lib-prod/project/abstract/taon-worker/instances/instances.js +1 -1
  372. package/lib-prod/project/abstract/taon-worker/instances/instances.repository.js +1 -1
  373. package/lib-prod/project/abstract/taon-worker/instances/instances.terminal-ui.js +1 -1
  374. package/lib-prod/project/abstract/taon-worker/instances/instances.worker.js +1 -1
  375. package/lib-prod/project/abstract/taon-worker/isomorphic-packages/index.js +1 -1
  376. package/lib-prod/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.context.js +1 -1
  377. package/lib-prod/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.controller.js +1 -1
  378. package/lib-prod/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.repository.js +28 -18
  379. package/lib-prod/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.repository.js.map +1 -1
  380. package/lib-prod/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.terminal-ui.js +1 -1
  381. package/lib-prod/project/abstract/taon-worker/isomorphic-packages/isomorphic-packages.worker.js +1 -1
  382. package/lib-prod/project/abstract/taon-worker/processes/index.js +1 -1
  383. package/lib-prod/project/abstract/taon-worker/processes/processes.context.js +1 -1
  384. package/lib-prod/project/abstract/taon-worker/processes/processes.controller.js +1 -1
  385. package/lib-prod/project/abstract/taon-worker/processes/processes.defaults-values.js +1 -1
  386. package/lib-prod/project/abstract/taon-worker/processes/processes.js +1 -1
  387. package/lib-prod/project/abstract/taon-worker/processes/processes.models.js +1 -1
  388. package/lib-prod/project/abstract/taon-worker/processes/processes.repository.js +1 -1
  389. package/lib-prod/project/abstract/taon-worker/processes/processes.terminal-ui.js +1 -1
  390. package/lib-prod/project/abstract/taon-worker/processes/processes.utils.js +1 -1
  391. package/lib-prod/project/abstract/taon-worker/processes/processes.worker.controller.js +1 -1
  392. package/lib-prod/project/abstract/taon-worker/processes/processes.worker.js +1 -1
  393. package/lib-prod/project/abstract/taon-worker/taon-build.controller.js +1 -1
  394. package/lib-prod/project/abstract/taon-worker/taon-build.entity.js +1 -1
  395. package/lib-prod/project/abstract/taon-worker/taon-env.entity.js +1 -1
  396. package/lib-prod/project/abstract/taon-worker/taon-isomorphic-pkgs-detection.repository.js +1 -1
  397. package/lib-prod/project/abstract/taon-worker/taon-project.entity.js +1 -1
  398. package/lib-prod/project/abstract/taon-worker/taon-terminal-ui.js +1 -1
  399. package/lib-prod/project/abstract/taon-worker/taon.context.js +1 -1
  400. package/lib-prod/project/abstract/taon-worker/taon.controller.js +1 -1
  401. package/lib-prod/project/abstract/taon-worker/taon.models.js +1 -1
  402. package/lib-prod/project/abstract/taon-worker/taon.worker.js +1 -1
  403. package/lib-prod/project/abstract/taon-worker/traefik/traefik.models.js +1 -1
  404. package/lib-prod/project/abstract/taon-worker/traefik/traefik.provider.js +1 -1
  405. package/lib-prod/project/abstract/taon-worker/traefik/treafik-service.provider.js +1 -1
  406. package/lib-prod/project/abstract/taonJson.js +1 -1
  407. package/lib-prod/project/abstract/vscode-helper.js +1 -1
  408. package/lib-prod/project/cli/base-cli.js +1 -1
  409. package/lib-prod/project/cli/cli-APP.js +1 -1
  410. package/lib-prod/project/cli/cli-BRANDING.js +1 -1
  411. package/lib-prod/project/cli/cli-BUILD.js +1 -1
  412. package/lib-prod/project/cli/cli-CLOUD.js +2 -2
  413. package/lib-prod/project/cli/cli-CLOUD.js.map +1 -1
  414. package/lib-prod/project/cli/cli-CORE.js +1 -1
  415. package/lib-prod/project/cli/cli-DOCKER.js +1 -1
  416. package/lib-prod/project/cli/cli-DOCS.js +1 -1
  417. package/lib-prod/project/cli/cli-FILE_SYNC.js +1 -1
  418. package/lib-prod/project/cli/cli-GENERATE.js +1 -1
  419. package/lib-prod/project/cli/cli-INIT.js +1 -1
  420. package/lib-prod/project/cli/cli-LINK.d.ts +1 -1
  421. package/lib-prod/project/cli/cli-LINK.js +9 -87
  422. package/lib-prod/project/cli/cli-LINK.js.map +1 -1
  423. package/lib-prod/project/cli/cli-MIGRATION.js +1 -1
  424. package/lib-prod/project/cli/cli-NEW.js +1 -1
  425. package/lib-prod/project/cli/cli-OPEN.js +1 -1
  426. package/lib-prod/project/cli/cli-REFACTOR.js +1 -1
  427. package/lib-prod/project/cli/cli-RELEASE.js +1 -1
  428. package/lib-prod/project/cli/cli-SUB_PROJECT.js +27 -15
  429. package/lib-prod/project/cli/cli-SUB_PROJECT.js.map +1 -1
  430. package/lib-prod/project/cli/cli-TEST.js +1 -1
  431. package/lib-prod/project/cli/cli-VERSION.js +1 -1
  432. package/lib-prod/project/cli/cli-VSCODE.js +1 -1
  433. package/lib-prod/project/cli/cli-_GLOBAL_.js +7 -4
  434. package/lib-prod/project/cli/cli-_GLOBAL_.js.map +1 -1
  435. package/lib-prod/project/cli/index.js +1 -1
  436. package/lib-prod/project/index.js +1 -1
  437. package/lib-prod/start-cli.js +1 -2
  438. package/lib-prod/start-cli.js.map +1 -1
  439. package/lib-prod/templates.js +1 -1
  440. package/lib-prod/vscode-ext-menu.js +1 -1
  441. package/lib-prod/vscode-ext-methods.js +1 -1
  442. package/lib-prod/vscode-handle-taon-redirect.js +1 -1
  443. package/lib-prod/vscode-menu-items.js +1 -1
  444. package/lib-prod/vscode-patching.js +1 -1
  445. package/lib-prod.split-namespaces.json +16 -0
  446. package/package.json +1 -1
  447. package/websql/fesm2022/tnp-websql.mjs +18 -4
  448. package/websql/fesm2022/tnp-websql.mjs.map +1 -1
  449. package/websql/package.json +1 -1
  450. package/websql/types/tnp-websql.d.ts +90 -22
  451. package/websql-prod/fesm2022/tnp-websql-prod.mjs +18 -4
  452. package/websql-prod/fesm2022/tnp-websql-prod.mjs.map +1 -1
  453. package/websql-prod/package.json +1 -1
  454. package/websql-prod/types/tnp-websql-prod.d.ts +82 -22
  455. package/websql-prod.split-namespaces.json +16 -0
@@ -1 +1 @@
1
- {"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/taon-worker/dev-build/dev-build.models.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.201';\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 extForStyles,\n fileName,\n folderName,\n taonContainers,\n tnpPackageName,\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_WATCHING_STARTED = '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 watcherPrefix = '-watcher';\n\nexport const verbosePrefix = '-verbose';\nexport const spinnerPrefix = '-spinner';\nexport const oldBuildModePrefix = '-oldBuildMode';\nexport const oldBuildModePrefixShort = '-obm';\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_STATUS_MD = 'BUILD-STATUS.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\nexport const distEsm = 'dist-esm';\n\nexport const libEsm = 'lib-esm';\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 USE_LIB_ESM_INSTEAD_LIB = true;\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_TSCGO = 'npm-run tsgo',\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';\nexport const tsconfigBackendEsmDistJson = 'tsconfig.backend-esm.dist.json';\n\nexport const tsconfigBackendDistJson_PROD = 'tsconfig.backend.dist.prod.json';\nexport const tsconfigBackendEsmDistJson_PROD =\n 'tsconfig.backend-esm.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 ERR_MESSAGE_PROJECT_ALREADY_PART_OF_BUILD =\n 'PROJECT_ALREADY_PART_OF_BUILD';\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 ]);\n\nexport const debugModeTaonLightWeightWatchMode = false;\n\nexport const DEBOUCE_takeLeadOfBuildingDebounce = 500;\n\nexport const DEBOUNCE_trigerLeadBuilding = 200;\n\nexport const DEBOUNCE_notifyLeaderAboutBuildDone = 200;\n\nexport const DEBOUNCE_debouceUpdate = 500;\n\nexport const OBSERVER_PARALLELS = true;\n\nexport const isMacOSorWindows =\n process.platform === 'darwin' || process.platform === 'win32';\n\nexport const skipLightWeightWatcherFor_CjsESM = isMacOSorWindows;\nexport const skipLightWeightWatcherFor_jsMaps = false;\n\nexport const endingsStylesComponentsContainers = extForStyles\n .map(c => [`.component${c}`, `.container${c}`])\n .reduce((a, b) => a.concat(b));\n\nexport const timestampPrefixComment = '// timestamp';","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 if (this.build.prod && this.release.lib.doNotIncludeLibFiles) {\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 //#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 return (void 0);\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 return (void 0);\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { 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 { POST, Query, Taon, TaonController } from 'taon/browser';\nimport { GET } from 'taon/browser';\nimport { CoreModels } from 'tnp-core/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: 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 { EndpointContext } from 'taon/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 { DevBuildController } from './dev-build/dev-build.controller';\nimport { DevBuildUtils } from './dev-build/dev-build.utils';\nimport { DevModeWorker } from './dev-mode/dev-mode.worker';\nimport { IsomorphicPackagesWorker } from './isomorphic-packages/isomorphic-packages.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\n public readonly buildsWorker: DevModeWorker;\n\n public readonly isomorphicPackagesWorker: IsomorphicPackagesWorker;\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n //#endregion\n\n private contexts = new Map<number, EndpointContext>();\n\n public async getDevBuildControllerForPort(\n port: number | string,\n ): Promise<DevBuildController> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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 { Taon, TaonBaseContext } from 'taon/browser';\nimport {\n config,\n dotTaonFolder,\n LibTypeEnum,\n taonContainers,\n taonPackageName,\n taonProjects,\n tnpPackageName,\n urlRepoTaonContainers,\n Utils,\n UtilsWaitNotifier,\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';\nimport { EnvOptions } from '../../options';\n\nimport type { Project } from './project';\nimport { DevBuildController } from './taon-worker/dev-build';\nimport { DevBuildContext } from './taon-worker/dev-build/dev-build.abstract.context';\nimport { DevBuildRepository } from './taon-worker/dev-build/dev-build.repository';\nimport { DevBuildUtils } from './taon-worker/dev-build/dev-build.utils';\nimport { DevMode } from './taon-worker/dev-mode/dev-mode.models';\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 public readonly devBuildRepository: DevBuildRepository;\n\n public readonly currentActionPort: number;\n\n public readonly packagesFromWorker = new Map<\n CoreModels.FrameworkVersion,\n string[]\n >();\n\n /**\n * TODO @LAST\n * I am not building different pacakges version not - BUT MAYBE IN FUTURE\n */\n public setFromWorker(\n packagesFromWorker: string[],\n frameworkVersion: CoreModels.FrameworkVersion,\n ): void {\n // console.log({ frameworkVersion, packagesFromWorker });\n this.packagesFromWorker.set(frameworkVersion, packagesFromWorker);\n }\n\n public notifierIsomorphicPackages = UtilsWaitNotifier.getNotifier({\n // max 3 minutes to finish build part\n exitTimeoutMs: 30 * 1000,\n });\n\n async notifyMainWorkerThatDevMode(\n project: Project,\n envOptions: EnvOptions,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region initial check\n public initialCheck(): 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 return (void 0);\n }\n //#endregion\n\n //#region path resolved\n private pathResolved(...partOfPath: string[]): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#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}","export namespace DevBuildModels {\n export enum CommandStatus {\n IDLE = 'IDLE',\n STARTED = 'STARTED',\n DONE = 'DONE',\n KILLED_OR_ERRROR = 'KILLED_OR_ERRROR',\n }\n\n export const START_PORT_BUID_PROCESS = 7777;\n}","//#region imports\nimport { Observable, Subject } from 'rxjs';\nimport {\n chokidar,\n config,\n dotTaonFolder,\n LibTypeEnum,\n Utils,\n} 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 { LightWeightWatcher } from './lightweight-watcher';\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 { DevBuildModels } from './taon-worker/dev-build/dev-build.models';\nimport { DevMode } from './taon-worker/dev-mode/dev-mode.models';\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: TaonProjectResolve = 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 public readonly watcher: LightWeightWatcher;\n\n get taonBuildObserver() {\n return this.artifactsManager.artifact.npmLibAndCliTool.taonBuildObserver;\n }\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/* */\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 let skipProjectsNames = [] as string[];\n if (this.framework.isStandaloneProject) {\n await this.artifactsManager.build(buildOptions);\n skipProjectsNames = [this.nameForNpmPackage];\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 skipProjectsNames = this.children.map(c => c.nameForNpmPackage);\n }\n\n if (this.watcher.isTaonLightWatcherMode) {\n await this.taonBuildObserver.leader.takeLeadOfBuilding({\n skipProjectsNames,\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/* */\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 //#region has valid auto release config\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 //#endregion\n\n //#region branding\n\n get branding() {\n return this.artifactsManager.globalHelper.branding;\n }\n //#endregion\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 //#region name for cli\n get nameForCli(): string {\n if (this.taonJson.overrideNameForCli) {\n return this.taonJson.overrideNameForCli;\n }\n return this.name;\n }\n //#endregion\n\n //#region private method / data to request\n public dataToRequest(): DevMode.ProjectBuildNotificaiton {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public readonly currentActionPort: number;\n\n async assignActionPort(): Promise<void> {\n if (!this.watcher.isTaonLightWatcherMode) {\n return;\n }\n const currentActionPort = await Utils.getFreePort({\n startFrom: DevBuildModels.START_PORT_BUID_PROCESS,\n });\n\n //@ts-expect-error\n this.currentActionPort = currentActionPort;\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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"}
1
+ {"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/taon-worker/dev-build/dev-build.models.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.203';\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 extForStyles,\n fileName,\n folderName,\n taonContainers,\n tnpPackageName,\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_WATCHING_STARTED = '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 { globalSpinner } 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 watcherPrefix = '-watcher';\n\nexport const verbosePrefix = '-verbose';\nexport const spinnerPrefix = '-spinner';\nexport const oldBuildModePrefix = '-oldBuildMode';\nexport const oldBuildModePrefixShort = '-obm';\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 TAON_EMAIL_CLOUDFLARE_WORKER = 'taon-email-cloudflare-worker',\n}\n\nexport const TempalteSubprojectTypeArr: TempalteSubprojectType[] = [\n TempalteSubprojectType.TAON_STRIPE_CLOUDFLARE_WORKER,\n TempalteSubprojectType.TAON_YT_CLOUDFLARE_WORKER,\n TempalteSubprojectType.TAON_EMAIL_CLOUDFLARE_WORKER,\n];\n\nexport const TemplateSubprojectWorkerPrefix = {\n [TempalteSubprojectType.TAON_STRIPE_CLOUDFLARE_WORKER]: 'stripe',\n [TempalteSubprojectType.TAON_YT_CLOUDFLARE_WORKER]: 'yt',\n [TempalteSubprojectType.TAON_EMAIL_CLOUDFLARE_WORKER]: 'email',\n};\n\nexport const TemplateSubprojectDbPrefix = {\n [TempalteSubprojectType.TAON_STRIPE_CLOUDFLARE_WORKER]: 'STRIPE_SALES_KV',\n [TempalteSubprojectType.TAON_YT_CLOUDFLARE_WORKER]: 'YT_DATA_KV',\n [TempalteSubprojectType.TAON_EMAIL_CLOUDFLARE_WORKER]: 'EMAIL_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 [TempalteSubprojectType.TAON_EMAIL_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_STATUS_MD = 'BUILD-STATUS.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\nexport const tailwindscsimport = `@${'imp' + 'ort'} \"tailwindcss\";`;\n\nexport const tailwindScssImportRegex = new RegExp(\n `@import\\\\s+[\"']tailwindcss[\"']\\\\s*;?\\\\s*`,\n);\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\nexport const distEsm = 'dist-esm';\n\nexport const libEsm = 'lib-esm';\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 USE_LIB_ESM_INSTEAD_LIB = true;\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_TSCGO = 'npm-run tsgo',\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 ngProjectTailwindCss = 'tailwind.css';\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';\nexport const tsconfigBackendEsmDistJson = 'tsconfig.backend-esm.dist.json';\n\nexport const tsconfigBackendDistJson_PROD = 'tsconfig.backend.dist.prod.json';\nexport const tsconfigBackendEsmDistJson_PROD =\n 'tsconfig.backend-esm.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 ERR_MESSAGE_PROJECT_ALREADY_PART_OF_BUILD =\n 'PROJECT_ALREADY_PART_OF_BUILD';\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 ]);\n\nexport const debugModeTaonLightWeightWatchMode = false;\n\nexport const DEBOUCE_takeLeadOfBuildingDebounce = 500;\n\nexport const DEBOUNCE_trigerLeadBuilding = 200;\n\nexport const DEBOUNCE_notifyLeaderAboutBuildDone = 200;\n\nexport const DEBOUNCE_debouceUpdate = 500;\n\nexport const OBSERVER_PARALLELS = true;\n\nexport const isMacOSorWindows =\n process.platform === 'darwin' || process.platform === 'win32';\n\nexport const skipLightWeightWatcherFor_CjsESM = isMacOSorWindows;\nexport const skipLightWeightWatcherFor_jsMaps = false;\n\nexport const endingsStylesComponentsContainers = extForStyles\n .map(c => [`.component${c}`, `.container${c}`])\n .reduce((a, b) => a.concat(b));\n\nexport const timestampPrefixComment = '// timestamp';","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 if (this.build.prod && this.release.lib.doNotIncludeLibFiles) {\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 //#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 return (void 0);\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 return (void 0);\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { 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 { POST, Query, Taon, TaonController } from 'taon/browser';\nimport { GET } from 'taon/browser';\nimport { CoreModels } from 'tnp-core/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: 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 { EndpointContext } from 'taon/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 { DevBuildController } from './dev-build/dev-build.controller';\nimport { DevBuildUtils } from './dev-build/dev-build.utils';\nimport { DevModeWorker } from './dev-mode/dev-mode.worker';\nimport { IsomorphicPackagesWorker } from './isomorphic-packages/isomorphic-packages.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\n public readonly buildsWorker: DevModeWorker;\n\n public readonly isomorphicPackagesWorker: IsomorphicPackagesWorker;\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n //#endregion\n\n private contexts = new Map<number, EndpointContext>();\n\n public async getDevBuildControllerForPort(\n port: number | string,\n ): Promise<DevBuildController> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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 { Taon, TaonBaseContext } from 'taon/browser';\nimport {\n config,\n dotTaonFolder,\n LibTypeEnum,\n taonContainers,\n taonPackageName,\n taonProjects,\n tnpPackageName,\n urlRepoTaonContainers,\n Utils,\n UtilsWaitNotifier,\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 { taonRepoPathUserInUserDirFn } 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} from '../../constants';\nimport { EnvOptions } from '../../options';\n\nimport type { Project } from './project';\nimport { DevBuildController } from './taon-worker/dev-build';\nimport { DevBuildContext } from './taon-worker/dev-build/dev-build.abstract.context';\nimport { DevBuildRepository } from './taon-worker/dev-build/dev-build.repository';\nimport { DevBuildUtils } from './taon-worker/dev-build/dev-build.utils';\nimport { DevMode } from './taon-worker/dev-mode/dev-mode.models';\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 public readonly devBuildRepository: DevBuildRepository;\n\n public readonly currentActionPort: number;\n\n public readonly packagesFromWorker = new Map<\n CoreModels.FrameworkVersion,\n string[]\n >();\n\n /**\n * TODO @LAST\n * I am not building different pacakges version not - BUT MAYBE IN FUTURE\n */\n public setFromWorker(\n packagesFromWorker: string[],\n frameworkVersion: CoreModels.FrameworkVersion,\n ): void {\n // console.log({ frameworkVersion, packagesFromWorker });\n this.packagesFromWorker.set(frameworkVersion, packagesFromWorker);\n }\n\n public notifierIsomorphicPackages = UtilsWaitNotifier.getNotifier({\n // max 3 minutes to finish build part\n exitTimeoutMs: 30 * 1000,\n });\n\n async notifyMainWorkerThatDevMode(\n project: Project,\n envOptions: EnvOptions,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region initial check\n public initialCheck(): 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 return (void 0);\n }\n //#endregion\n\n //#region path resolved\n private pathResolved(...partOfPath: string[]): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#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}","export namespace DevBuildModels {\n export enum CommandStatus {\n IDLE = 'IDLE',\n STARTED = 'STARTED',\n DONE = 'DONE',\n KILLED_OR_ERRROR = 'KILLED_OR_ERRROR',\n }\n\n export const START_PORT_BUID_PROCESS = 7777;\n}","//#region imports\nimport { Observable, Subject } from 'rxjs';\nimport {\n chokidar,\n config,\n dotTaonFolder,\n LibTypeEnum,\n Utils,\n} 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 { LightWeightWatcher } from './lightweight-watcher';\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 { DevBuildModels } from './taon-worker/dev-build/dev-build.models';\nimport { DevMode } from './taon-worker/dev-mode/dev-mode.models';\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: TaonProjectResolve = 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 public readonly watcher: LightWeightWatcher;\n\n get taonBuildObserver() {\n return this.artifactsManager.artifact.npmLibAndCliTool.taonBuildObserver;\n }\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/* */\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 let skipProjectsNames = [] as string[];\n if (this.framework.isStandaloneProject) {\n await this.artifactsManager.build(buildOptions);\n skipProjectsNames = [this.nameForNpmPackage];\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 skipProjectsNames = this.children.map(c => c.nameForNpmPackage);\n }\n\n if (this.watcher.isTaonLightWatcherMode) {\n await this.taonBuildObserver.leader.takeLeadOfBuilding({\n skipProjectsNames,\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/* */\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 //#region has valid auto release config\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 //#endregion\n\n //#region branding\n\n get branding() {\n return this.artifactsManager.globalHelper.branding;\n }\n //#endregion\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 //#region name for cli\n get nameForCli(): string {\n if (this.taonJson.overrideNameForCli) {\n return this.taonJson.overrideNameForCli;\n }\n return this.name;\n }\n //#endregion\n\n //#region private method / data to request\n public dataToRequest(): DevMode.ProjectBuildNotificaiton {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n public readonly currentActionPort: number;\n\n async assignActionPort(): Promise<void> {\n if (!this.watcher.isTaonLightWatcherMode) {\n return;\n }\n const currentActionPort = await Utils.getFreePort({\n startFrom: DevBuildModels.START_PORT_BUID_PROCESS,\n });\n\n //@ts-expect-error\n this.currentActionPort = currentActionPort;\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/* */ \nexport default {};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}