tnp-helpers 18.0.16 → 18.0.18

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 (412) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/browser/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  4. package/browser/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  5. package/browser/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  6. package/browser/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  7. package/browser/esm2022/lib/base/classes/base-db.mjs +31 -0
  8. package/browser/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  9. package/browser/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  10. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-git.mjs +2 -2
  11. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-github-pages.mjs +2 -2
  12. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-library-build.mjs +3 -3
  13. package/browser/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  14. package/browser/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  15. package/browser/esm2022/lib/base/classes/base-project-resolver.mjs +291 -0
  16. package/browser/esm2022/lib/base/classes/base-project.mjs +926 -0
  17. package/browser/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  18. package/{websql/esm2022/lib/base → browser/esm2022/lib/base/classes}/base-release-process.mjs +4 -4
  19. package/browser/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  20. package/browser/esm2022/lib/base/classes/index.mjs +22 -0
  21. package/browser/esm2022/lib/base/commit-data.mjs +1 -1
  22. package/browser/esm2022/lib/base/config-database.mjs +5 -2
  23. package/browser/esm2022/lib/base/core-project.mjs +1 -1
  24. package/browser/esm2022/lib/base/index.mjs +3 -19
  25. package/browser/esm2022/lib/base/project-database.mjs +2 -2
  26. package/browser/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  27. package/browser/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +19 -0
  28. package/browser/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  29. package/browser/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +26 -0
  30. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  31. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  32. package/browser/esm2022/lib/utils.mjs +33 -144
  33. package/browser/esm2022/migrations/1736198527297_init.mjs +41 -0
  34. package/browser/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  35. package/browser/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  36. package/browser/esm2022/migrations/index.mjs +5 -0
  37. package/browser/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  38. package/browser/fesm2022/tnp-helpers.mjs +2136 -1591
  39. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  40. package/{client/lib/base → browser/lib/base/classes}/base-cli-worker-controller.d.ts +2 -2
  41. package/browser/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  42. package/browser/lib/base/{base-git.d.ts → classes/base-git.d.ts} +1 -1
  43. package/{client/lib/base → browser/lib/base/classes}/base-library-build.d.ts +1 -1
  44. package/{websql/lib/base → browser/lib/base/classes}/base-linked-projects.d.ts +1 -1
  45. package/{client/lib/base → browser/lib/base/classes}/base-project-resolver.d.ts +4 -4
  46. package/browser/lib/base/{base-project.d.ts → classes/base-project.d.ts} +11 -4
  47. package/browser/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  48. package/browser/lib/base/classes/base-vscode.d.ts +24 -0
  49. package/browser/lib/base/classes/index.d.ts +16 -0
  50. package/browser/lib/base/config-database.d.ts +2 -2
  51. package/browser/lib/base/core-project.d.ts +1 -1
  52. package/browser/lib/base/index.d.ts +3 -16
  53. package/browser/lib/base/project-database.d.ts +2 -2
  54. package/browser/lib/base/tcp-udp-ports/index.d.ts +5 -0
  55. package/browser/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  56. package/browser/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  57. package/browser/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  58. package/browser/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  59. package/browser/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  60. package/browser/lib/utils.d.ts +2 -38
  61. package/browser/migrations/1736198527297_init.d.ts +19 -0
  62. package/browser/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  63. package/browser/migrations/1736454437350_addFreePorts.d.ts +10 -0
  64. package/browser/migrations/index.d.ts +2 -0
  65. package/browser/migrations/migrations_index._auto-generated_.d.ts +12 -0
  66. package/client/README.md +24 -24
  67. package/client/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  68. package/client/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  69. package/client/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  70. package/client/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  71. package/client/esm2022/lib/base/classes/base-db.mjs +31 -0
  72. package/client/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  73. package/client/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  74. package/client/esm2022/lib/base/classes/base-git.mjs +932 -0
  75. package/client/esm2022/lib/base/classes/base-github-pages.mjs +110 -0
  76. package/{browser/esm2022/lib/base → client/esm2022/lib/base/classes}/base-library-build.mjs +2 -2
  77. package/client/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  78. package/client/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  79. package/client/esm2022/lib/base/classes/base-project-resolver.mjs +291 -0
  80. package/client/esm2022/lib/base/classes/base-project.mjs +926 -0
  81. package/client/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  82. package/{browser/esm2022/lib/base → client/esm2022/lib/base/classes}/base-release-process.mjs +3 -3
  83. package/client/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  84. package/client/esm2022/lib/base/classes/index.mjs +22 -0
  85. package/client/esm2022/lib/base/commit-data.mjs +1 -1
  86. package/client/esm2022/lib/base/config-database.mjs +5 -2
  87. package/client/esm2022/lib/base/core-project.mjs +1 -1
  88. package/client/esm2022/lib/base/index.mjs +3 -19
  89. package/client/esm2022/lib/base/project-database.mjs +2 -2
  90. package/client/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  91. package/client/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +19 -0
  92. package/client/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  93. package/client/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +26 -0
  94. package/client/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  95. package/client/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  96. package/client/esm2022/lib/utils.mjs +33 -144
  97. package/client/esm2022/migrations/1736198527297_init.mjs +41 -0
  98. package/client/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  99. package/client/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  100. package/client/esm2022/migrations/index.mjs +5 -0
  101. package/client/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  102. package/client/fesm2022/tnp-helpers.mjs +2136 -1591
  103. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  104. package/{browser/lib/base → client/lib/base/classes}/base-cli-worker-controller.d.ts +2 -2
  105. package/client/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  106. package/{websql/lib/base → client/lib/base/classes}/base-git.d.ts +1 -1
  107. package/{browser/lib/base → client/lib/base/classes}/base-library-build.d.ts +1 -1
  108. package/{browser/lib/base → client/lib/base/classes}/base-linked-projects.d.ts +1 -1
  109. package/{websql/lib/base → client/lib/base/classes}/base-project-resolver.d.ts +4 -4
  110. package/client/lib/base/{base-project.d.ts → classes/base-project.d.ts} +11 -4
  111. package/client/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  112. package/client/lib/base/classes/base-vscode.d.ts +24 -0
  113. package/client/lib/base/classes/index.d.ts +16 -0
  114. package/client/lib/base/config-database.d.ts +2 -2
  115. package/client/lib/base/core-project.d.ts +1 -1
  116. package/client/lib/base/index.d.ts +3 -16
  117. package/client/lib/base/project-database.d.ts +2 -2
  118. package/client/lib/base/tcp-udp-ports/index.d.ts +5 -0
  119. package/client/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  120. package/client/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  121. package/client/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  122. package/client/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  123. package/client/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  124. package/client/lib/utils.d.ts +2 -38
  125. package/client/migrations/1736198527297_init.d.ts +19 -0
  126. package/client/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  127. package/client/migrations/1736454437350_addFreePorts.d.ts +10 -0
  128. package/client/migrations/index.d.ts +2 -0
  129. package/client/migrations/migrations_index._auto-generated_.d.ts +12 -0
  130. package/lib/base/{base-cli-worker-controller.d.ts → classes/base-cli-worker-controller.d.ts} +4 -4
  131. package/lib/base/{base-cli-worker-controller.js → classes/base-cli-worker-controller.js} +3 -3
  132. package/lib/base/classes/base-cli-worker-controller.js.map +1 -0
  133. package/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  134. package/lib/base/{base-cli-worker.js → classes/base-cli-worker.js} +48 -29
  135. package/lib/base/classes/base-cli-worker.js.map +1 -0
  136. package/lib/base/{command-line-feature.backend.d.ts → classes/base-command-line-feature.backend.d.ts} +1 -1
  137. package/lib/base/{command-line-feature.backend.js → classes/base-command-line-feature.backend.js} +15 -15
  138. package/lib/base/classes/base-command-line-feature.backend.js.map +1 -0
  139. package/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +2 -2
  140. package/lib/base/{base-compiler-for-project.js → classes/base-compiler-for-project.js} +1 -1
  141. package/lib/base/{base-compiler-for-project.js.map → classes/base-compiler-for-project.js.map} +1 -1
  142. package/lib/base/{base-db.d.ts → classes/base-db.d.ts} +1 -1
  143. package/lib/base/{base-db.js → classes/base-db.js} +1 -1
  144. package/lib/base/{base-db.js.map → classes/base-db.js.map} +1 -1
  145. package/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +2 -2
  146. package/lib/base/{base-debounce-compiler-for-project.js.map → classes/base-debounce-compiler-for-project.js.map} +1 -1
  147. package/lib/base/{base-git.d.ts → classes/base-git.d.ts} +1 -1
  148. package/lib/base/{base-git.js → classes/base-git.js} +3 -3
  149. package/lib/base/{base-git.js.map → classes/base-git.js.map} +1 -1
  150. package/lib/base/{base-github-pages.js → classes/base-github-pages.js} +1 -1
  151. package/lib/base/{base-github-pages.js.map → classes/base-github-pages.js.map} +1 -1
  152. package/lib/base/{base-command-line.backend.d.ts → classes/base-global-command-line.backend.d.ts} +17 -4
  153. package/lib/base/{base-command-line.backend.js → classes/base-global-command-line.backend.js} +236 -161
  154. package/lib/base/classes/base-global-command-line.backend.js.map +1 -0
  155. package/lib/base/{base-ignore-hide.js → classes/base-ignore-hide.js} +1 -1
  156. package/lib/base/{base-ignore-hide.js.map → classes/base-ignore-hide.js.map} +1 -1
  157. package/lib/base/{base-library-build.d.ts → classes/base-library-build.d.ts} +3 -3
  158. package/lib/base/{base-library-build.js → classes/base-library-build.js} +2 -2
  159. package/lib/base/{base-library-build.js.map → classes/base-library-build.js.map} +1 -1
  160. package/lib/base/{base-linked-projects.d.ts → classes/base-linked-projects.d.ts} +1 -1
  161. package/lib/base/{base-linked-projects.js → classes/base-linked-projects.js} +1 -1
  162. package/lib/base/{base-linked-projects.js.map → classes/base-linked-projects.js.map} +1 -1
  163. package/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +3 -3
  164. package/lib/base/{base-npm-helpers.js → classes/base-npm-helpers.js} +1 -1
  165. package/lib/base/{base-npm-helpers.js.map → classes/base-npm-helpers.js.map} +1 -1
  166. package/lib/base/{base-project-resolver.d.ts → classes/base-project-resolver.d.ts} +4 -4
  167. package/lib/base/{base-project-resolver.js → classes/base-project-resolver.js} +6 -6
  168. package/lib/base/{base-project-resolver.js.map → classes/base-project-resolver.js.map} +1 -1
  169. package/lib/base/{base-project.d.ts → classes/base-project.d.ts} +14 -7
  170. package/lib/base/{base-project.js → classes/base-project.js} +34 -5
  171. package/lib/base/classes/base-project.js.map +1 -0
  172. package/lib/base/{base-quick-fixes.js → classes/base-quick-fixes.js} +1 -1
  173. package/lib/base/{base-quick-fixes.js.map → classes/base-quick-fixes.js.map} +1 -1
  174. package/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +3 -3
  175. package/lib/base/{base-release-process.js → classes/base-release-process.js} +2 -2
  176. package/lib/base/{base-release-process.js.map → classes/base-release-process.js.map} +1 -1
  177. package/lib/base/{base-start-config.backend.js → classes/base-start-config.backend.js} +2 -2
  178. package/lib/base/{base-start-config.backend.js.map → classes/base-start-config.backend.js.map} +1 -1
  179. package/lib/base/classes/base-vscode.d.ts +23 -0
  180. package/lib/base/classes/base-vscode.js +451 -0
  181. package/lib/base/classes/base-vscode.js.map +1 -0
  182. package/lib/base/classes/index.d.ts +18 -0
  183. package/lib/base/classes/index.js +24 -0
  184. package/lib/base/classes/index.js.map +1 -0
  185. package/lib/base/commit-data.js.map +1 -1
  186. package/lib/base/config-database.d.ts +2 -2
  187. package/lib/base/config-database.js +5 -8
  188. package/lib/base/config-database.js.map +1 -1
  189. package/lib/base/core-project.d.ts +3 -3
  190. package/lib/base/gh-temp-code.d.ts +1 -1
  191. package/lib/base/index.d.ts +2 -18
  192. package/lib/base/index.js +2 -18
  193. package/lib/base/index.js.map +1 -1
  194. package/lib/base/project-database.d.ts +2 -2
  195. package/lib/base/project-database.js +1 -1
  196. package/lib/base/project-database.js.map +1 -1
  197. package/lib/base/tcp-udp-ports/index.d.ts +4 -0
  198. package/lib/base/tcp-udp-ports/index.js +8 -0
  199. package/lib/base/tcp-udp-ports/index.js.map +1 -0
  200. package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +6 -0
  201. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +45 -0
  202. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -0
  203. package/lib/base/tcp-udp-ports/ports.controller.d.ts +19 -0
  204. package/lib/base/tcp-udp-ports/ports.controller.js +135 -0
  205. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -0
  206. package/lib/base/tcp-udp-ports/ports.entity.d.ts +14 -0
  207. package/lib/base/tcp-udp-ports/ports.entity.js +45 -0
  208. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -0
  209. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +58 -0
  210. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js +41 -0
  211. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -0
  212. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +31 -0
  213. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js +215 -0
  214. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -0
  215. package/lib/helpers/for-backend/helpers-cli-tool.backend.d.ts +1 -1
  216. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  217. package/lib/helpers/for-backend/helpers-console-gui.js +2 -1
  218. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  219. package/lib/helpers/for-backend/helpers-file-folders.backend.d.ts +2 -2
  220. package/lib/helpers/for-backend/helpers-git.backend.js +2 -2
  221. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  222. package/lib/helpers/for-backend/helpers-process.backend.d.ts +3 -3
  223. package/lib/helpers/for-backend/helpers-process.backend.js +4 -26
  224. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  225. package/lib/helpers/for-backend/helpers-vscode.backend.d.ts +2 -2
  226. package/lib/helpers/for-browser/angular.helper.js +2 -2
  227. package/lib/helpers/helpers.d.ts +1 -1
  228. package/lib/models.d.ts +2 -2
  229. package/lib/old/base-component.js +2 -2
  230. package/lib/old/base-formly-component.js +2 -2
  231. package/lib/old/dual-component-ctrl.js +2 -2
  232. package/lib/utils.d.ts +2 -38
  233. package/lib/utils.js +51 -158
  234. package/lib/utils.js.map +1 -1
  235. package/migrations/1736198527297_init.d.ts +18 -0
  236. package/migrations/1736198527297_init.js +72 -0
  237. package/migrations/1736198527297_init.js.map +1 -0
  238. package/migrations/1736199486472_addingNotAssignablePorts.d.ts +10 -0
  239. package/migrations/1736199486472_addingNotAssignablePorts.js +94 -0
  240. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -0
  241. package/migrations/1736454437350_addFreePorts.d.ts +9 -0
  242. package/migrations/1736454437350_addFreePorts.js +78 -0
  243. package/migrations/1736454437350_addFreePorts.js.map +1 -0
  244. package/migrations/migrations_index._auto-generated_.d.ts +11 -0
  245. package/migrations/migrations_index._auto-generated_.js +14 -0
  246. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  247. package/package.json +5 -5
  248. package/taon.jsonc +49 -49
  249. package/tmp-environment.json +30 -29
  250. package/websql/README.md +24 -24
  251. package/websql/esm2022/lib/base/classes/base-cli-worker-config.mjs +40 -0
  252. package/websql/esm2022/lib/base/classes/base-cli-worker-controller.mjs +125 -0
  253. package/websql/esm2022/lib/base/classes/base-cli-worker.mjs +466 -0
  254. package/websql/esm2022/lib/base/classes/base-compiler-for-project.mjs +61 -0
  255. package/websql/esm2022/lib/base/classes/base-db.mjs +31 -0
  256. package/websql/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +56 -0
  257. package/websql/esm2022/lib/base/classes/base-feature-for-project.mjs +8 -0
  258. package/{browser/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-git.mjs +2 -2
  259. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-github-pages.mjs +2 -2
  260. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-library-build.mjs +3 -3
  261. package/websql/esm2022/lib/base/classes/base-linked-projects.mjs +320 -0
  262. package/websql/esm2022/lib/base/classes/base-npm-helpers.mjs +630 -0
  263. package/websql/esm2022/lib/base/classes/base-project-resolver.mjs +280 -0
  264. package/websql/esm2022/lib/base/classes/base-project.mjs +896 -0
  265. package/websql/esm2022/lib/base/classes/base-quick-fixes.mjs +24 -0
  266. package/{client/esm2022/lib/base → websql/esm2022/lib/base/classes}/base-release-process.mjs +4 -4
  267. package/websql/esm2022/lib/base/classes/base-vscode.mjs +488 -0
  268. package/websql/esm2022/lib/base/classes/index.mjs +22 -0
  269. package/websql/esm2022/lib/base/commit-data.mjs +1 -1
  270. package/websql/esm2022/lib/base/config-database.mjs +5 -2
  271. package/websql/esm2022/lib/base/core-project.mjs +1 -1
  272. package/websql/esm2022/lib/base/index.mjs +3 -19
  273. package/websql/esm2022/lib/base/project-database.mjs +2 -2
  274. package/websql/esm2022/lib/base/tcp-udp-ports/index.mjs +7 -0
  275. package/websql/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +34 -0
  276. package/websql/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +108 -0
  277. package/websql/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +34 -0
  278. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +35 -0
  279. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +122 -0
  280. package/websql/esm2022/lib/utils.mjs +33 -144
  281. package/websql/esm2022/migrations/1736198527297_init.mjs +41 -0
  282. package/websql/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +55 -0
  283. package/websql/esm2022/migrations/1736454437350_addFreePorts.mjs +37 -0
  284. package/websql/esm2022/migrations/index.mjs +5 -0
  285. package/websql/esm2022/migrations/migrations_index._auto-generated_.mjs +16 -0
  286. package/websql/fesm2022/tnp-helpers.mjs +1942 -1379
  287. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  288. package/websql/lib/base/{base-cli-worker-controller.d.ts → classes/base-cli-worker-controller.d.ts} +2 -2
  289. package/websql/lib/base/{base-cli-worker.d.ts → classes/base-cli-worker.d.ts} +7 -1
  290. package/{client/lib/base → websql/lib/base/classes}/base-git.d.ts +1 -1
  291. package/websql/lib/base/{base-library-build.d.ts → classes/base-library-build.d.ts} +1 -1
  292. package/{client/lib/base → websql/lib/base/classes}/base-linked-projects.d.ts +1 -1
  293. package/{browser/lib/base → websql/lib/base/classes}/base-project-resolver.d.ts +4 -4
  294. package/websql/lib/base/{base-project.d.ts → classes/base-project.d.ts} +11 -4
  295. package/websql/lib/base/{base-release-process.d.ts → classes/base-release-process.d.ts} +1 -1
  296. package/websql/lib/base/classes/base-vscode.d.ts +24 -0
  297. package/websql/lib/base/classes/index.d.ts +16 -0
  298. package/websql/lib/base/config-database.d.ts +2 -2
  299. package/websql/lib/base/core-project.d.ts +1 -1
  300. package/websql/lib/base/index.d.ts +3 -16
  301. package/websql/lib/base/project-database.d.ts +2 -2
  302. package/websql/lib/base/tcp-udp-ports/index.d.ts +5 -0
  303. package/websql/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +7 -0
  304. package/websql/lib/base/tcp-udp-ports/ports.controller.d.ts +20 -0
  305. package/websql/lib/base/tcp-udp-ports/ports.entity.d.ts +15 -0
  306. package/websql/lib/base/tcp-udp-ports/tcp-udp-ports.context.d.ts +59 -0
  307. package/websql/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +23 -0
  308. package/websql/lib/utils.d.ts +2 -38
  309. package/websql/migrations/1736198527297_init.d.ts +19 -0
  310. package/websql/migrations/1736199486472_addingNotAssignablePorts.d.ts +11 -0
  311. package/websql/migrations/1736454437350_addFreePorts.d.ts +10 -0
  312. package/websql/migrations/index.d.ts +2 -0
  313. package/websql/migrations/migrations_index._auto-generated_.d.ts +12 -0
  314. package/browser/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  315. package/browser/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  316. package/browser/esm2022/lib/base/base-cli-worker.mjs +0 -451
  317. package/browser/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  318. package/browser/esm2022/lib/base/base-db.mjs +0 -31
  319. package/browser/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  320. package/browser/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  321. package/browser/esm2022/lib/base/base-github-pages.mjs +0 -110
  322. package/browser/esm2022/lib/base/base-linked-projects.mjs +0 -321
  323. package/browser/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  324. package/browser/esm2022/lib/base/base-project-resolver.mjs +0 -291
  325. package/browser/esm2022/lib/base/base-project.mjs +0 -911
  326. package/browser/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  327. package/browser/esm2022/lib/base/base-vscode.mjs +0 -145
  328. package/browser/esm2022/lib/base/ports-worker.mjs +0 -162
  329. package/browser/lib/base/base-vscode.d.ts +0 -13
  330. package/browser/lib/base/ports-worker.d.ts +0 -33
  331. package/client/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  332. package/client/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  333. package/client/esm2022/lib/base/base-cli-worker.mjs +0 -451
  334. package/client/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  335. package/client/esm2022/lib/base/base-db.mjs +0 -31
  336. package/client/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  337. package/client/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  338. package/client/esm2022/lib/base/base-git.mjs +0 -932
  339. package/client/esm2022/lib/base/base-linked-projects.mjs +0 -321
  340. package/client/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  341. package/client/esm2022/lib/base/base-project-resolver.mjs +0 -291
  342. package/client/esm2022/lib/base/base-project.mjs +0 -911
  343. package/client/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  344. package/client/esm2022/lib/base/base-vscode.mjs +0 -145
  345. package/client/esm2022/lib/base/ports-worker.mjs +0 -162
  346. package/client/lib/base/base-vscode.d.ts +0 -13
  347. package/client/lib/base/ports-worker.d.ts +0 -33
  348. package/lib/base/base-cli-worker-controller.js.map +0 -1
  349. package/lib/base/base-cli-worker.js.map +0 -1
  350. package/lib/base/base-command-line.backend.js.map +0 -1
  351. package/lib/base/base-project.js.map +0 -1
  352. package/lib/base/base-vscode.d.ts +0 -12
  353. package/lib/base/base-vscode.js +0 -139
  354. package/lib/base/base-vscode.js.map +0 -1
  355. package/lib/base/command-line-feature.backend.js.map +0 -1
  356. package/lib/base/ports-worker.d.ts +0 -32
  357. package/lib/base/ports-worker.js +0 -244
  358. package/lib/base/ports-worker.js.map +0 -1
  359. package/websql/esm2022/lib/base/base-cli-worker-config.mjs +0 -40
  360. package/websql/esm2022/lib/base/base-cli-worker-controller.mjs +0 -125
  361. package/websql/esm2022/lib/base/base-cli-worker.mjs +0 -451
  362. package/websql/esm2022/lib/base/base-compiler-for-project.mjs +0 -61
  363. package/websql/esm2022/lib/base/base-db.mjs +0 -31
  364. package/websql/esm2022/lib/base/base-debounce-compiler-for-project.mjs +0 -56
  365. package/websql/esm2022/lib/base/base-feature-for-project.mjs +0 -8
  366. package/websql/esm2022/lib/base/base-linked-projects.mjs +0 -321
  367. package/websql/esm2022/lib/base/base-npm-helpers.mjs +0 -630
  368. package/websql/esm2022/lib/base/base-project-resolver.mjs +0 -280
  369. package/websql/esm2022/lib/base/base-project.mjs +0 -883
  370. package/websql/esm2022/lib/base/base-quick-fixes.mjs +0 -24
  371. package/websql/esm2022/lib/base/base-vscode.mjs +0 -145
  372. package/websql/esm2022/lib/base/ports-worker.mjs +0 -165
  373. package/websql/lib/base/base-vscode.d.ts +0 -13
  374. package/websql/lib/base/ports-worker.d.ts +0 -33
  375. /package/browser/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  376. /package/browser/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  377. /package/browser/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  378. /package/browser/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  379. /package/browser/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  380. /package/browser/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  381. /package/browser/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  382. /package/browser/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  383. /package/client/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  384. /package/client/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  385. /package/client/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  386. /package/client/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  387. /package/client/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  388. /package/client/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  389. /package/client/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  390. /package/client/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  391. /package/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  392. /package/lib/base/{base-cli-worker-config.js → classes/base-cli-worker-config.js} +0 -0
  393. /package/lib/base/{base-cli-worker-config.js.map → classes/base-cli-worker-config.js.map} +0 -0
  394. /package/lib/base/{base-debounce-compiler-for-project.js → classes/base-debounce-compiler-for-project.js} +0 -0
  395. /package/lib/base/{base-detached-service.d.ts → classes/base-detached-service.d.ts} +0 -0
  396. /package/lib/base/{base-detached-service.js → classes/base-detached-service.js} +0 -0
  397. /package/lib/base/{base-detached-service.js.map → classes/base-detached-service.js.map} +0 -0
  398. /package/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  399. /package/lib/base/{base-feature-for-project.js → classes/base-feature-for-project.js} +0 -0
  400. /package/lib/base/{base-feature-for-project.js.map → classes/base-feature-for-project.js.map} +0 -0
  401. /package/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  402. /package/lib/base/{base-ignore-hide.d.ts → classes/base-ignore-hide.d.ts} +0 -0
  403. /package/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
  404. /package/lib/base/{base-start-config.backend.d.ts → classes/base-start-config.backend.d.ts} +0 -0
  405. /package/websql/lib/base/{base-cli-worker-config.d.ts → classes/base-cli-worker-config.d.ts} +0 -0
  406. /package/websql/lib/base/{base-compiler-for-project.d.ts → classes/base-compiler-for-project.d.ts} +0 -0
  407. /package/websql/lib/base/{base-db.d.ts → classes/base-db.d.ts} +0 -0
  408. /package/websql/lib/base/{base-debounce-compiler-for-project.d.ts → classes/base-debounce-compiler-for-project.d.ts} +0 -0
  409. /package/websql/lib/base/{base-feature-for-project.d.ts → classes/base-feature-for-project.d.ts} +0 -0
  410. /package/websql/lib/base/{base-github-pages.d.ts → classes/base-github-pages.d.ts} +0 -0
  411. /package/websql/lib/base/{base-npm-helpers.d.ts → classes/base-npm-helpers.d.ts} +0 -0
  412. /package/websql/lib/base/{base-quick-fixes.d.ts → classes/base-quick-fixes.d.ts} +0 -0
@@ -1,291 +0,0 @@
1
- /* */
2
- /* */
3
- /* */
4
- /* */
5
- import { Helpers } from '../index';
6
- import { _ } from 'tnp-core/browser';
7
- import { ConfigDatabase } from './config-database';
8
- import { ProjectDatabase } from './project-database';
9
- import { PortsWorker } from './ports-worker';
10
- /* */
11
- /* */
12
- /* */
13
- /* */
14
- /* */
15
- export class BaseProjectResolver {
16
- constructor(classFn, cliToolName) {
17
- this.classFn = classFn;
18
- this.cliToolName = cliToolName;
19
- this.configDb = new ConfigDatabase(this);
20
- this.projectsDb = new ProjectDatabase(this);
21
- this.NPM_PROJECT_KEY = 'npm';
22
- this.projects = [];
23
- /**
24
- * To speed up checking folder I am keeping pathes for alterdy checked folder
25
- * This may break things that are creating new projects
26
- */
27
- this.emptyLocations = [];
28
- this.cliToolName = cliToolName;
29
- if (!this.cliToolName) {
30
- Helpers.throw(`cliToolName is not provided`);
31
- }
32
- this.portsWorker = new PortsWorker('ports-worker', `${this.cliToolName} startCliServicePortsWorker --skipCoreCheck`, '0.0.0');
33
- }
34
- get allowedTypes() {
35
- /* */
36
- /* */
37
- /* */
38
- return (void 0);
39
- }
40
- /**
41
- * project from process.cwd()
42
- */
43
- get Current() {
44
- /* */
45
- /* */
46
- /* */
47
- /* */
48
- /* */
49
- /* */
50
- /* */
51
- /* */
52
- /* */
53
- /* */
54
- /* */
55
- /* */
56
- /* */
57
- return (void 0);
58
- }
59
- /**
60
- * override this
61
- */
62
- typeFrom(location, recrusiveCall = false) {
63
- /* */
64
- /* */
65
- /* */
66
- /* */
67
- /* */
68
- /* */
69
- /* */
70
- /* */
71
- /* */
72
- /* */
73
- /* */
74
- return (void 0);
75
- }
76
- From(locationOfProject, options) {
77
- /* */
78
- /* */
79
- /* */
80
- /* */
81
- /* */
82
- /* */
83
- /* */
84
- /* */
85
- /* */
86
- /* */
87
- /* */
88
- /* */
89
- /* */
90
- /* */
91
- /* */
92
- /* */
93
- /* */
94
- /* */
95
- /* */
96
- /* */
97
- /* */
98
- /* */
99
- /* */
100
- /* */
101
- /* */
102
- /* */
103
- /* */
104
- /* */
105
- /* */
106
- /* */
107
- /* */
108
- /* */
109
- /* */
110
- /* */
111
- /* */
112
- /* */
113
- /* */
114
- /* */
115
- /* */
116
- /* */
117
- /* */
118
- /* */
119
- /* */
120
- /* */
121
- /* */
122
- /* */
123
- /* */
124
- /* */
125
- /* */
126
- /* */
127
- /* */
128
- /* */
129
- /* */
130
- return (void 0);
131
- }
132
- nearestTo(absoluteLocation, options) {
133
- /* */
134
- /* */
135
- /* */
136
- /* */
137
- /* */
138
- /* */
139
- /* */
140
- /* */
141
- /* */
142
- /* */
143
- /* */
144
- /* */
145
- /* */
146
- /* */
147
- /* */
148
- /* */
149
- /* */
150
- /* */
151
- /* */
152
- /* */
153
- /* */
154
- /* */
155
- /* */
156
- /* */
157
- /* */
158
- /* */
159
- /* */
160
- /* */
161
- /* */
162
- /* */
163
- /* */
164
- /* */
165
- /* */
166
- /* */
167
- /* */
168
- /* */
169
- /* */
170
- /* */
171
- /* */
172
- /* */
173
- /* */
174
- /* */
175
- /* */
176
- /* */
177
- /* */
178
- /* */
179
- /* */
180
- /* */
181
- /* */
182
- /* */
183
- /* */
184
- /* */
185
- /* */
186
- /* */
187
- /* */
188
- /* */
189
- /* */
190
- /* */
191
- /* */
192
- /* */
193
- /* */
194
- /* */
195
- /* */
196
- /* */
197
- /* */
198
- /* */
199
- /* */
200
- /* */
201
- /* */
202
- /* */
203
- /* */
204
- /* */
205
- /* */
206
- /* */
207
- return (void 0);
208
- }
209
- unload(projectOrLocationOfProject) {
210
- const location = _.isString(projectOrLocationOfProject)
211
- ? projectOrLocationOfProject
212
- : projectOrLocationOfProject?.location;
213
- this.projects = this.projects.filter(f => f.location !== location);
214
- this.emptyLocations = this.emptyLocations.filter(f => f !== location);
215
- }
216
- remove(project) {
217
- /* */
218
- /* */
219
- /* */
220
- /* */
221
- }
222
- add(project) {
223
- /* */
224
- /* */
225
- }
226
- allProjectFrom(absoluteLocation, stopOnCwd = '/') {
227
- /* */
228
- /* */
229
- /* */
230
- /* */
231
- /* */
232
- /* */
233
- /* */
234
- /* */
235
- /* */
236
- /* */
237
- /* */
238
- /* */
239
- /* */
240
- /* */
241
- /* */
242
- /* */
243
- /* */
244
- /* */
245
- /* */
246
- /* */
247
- /* */
248
- /* */
249
- /* */
250
- /* */
251
- /* */
252
- return (void 0);
253
- }
254
- allProjectsFromFolder(folderLocation) {
255
- /* */
256
- /* */
257
- /* */
258
- /* */
259
- return (void 0);
260
- }
261
- sortGroupOfProject(projects, resoveDepsArray, projNameToCompare) {
262
- const visited = {};
263
- const stack = {};
264
- const result = [];
265
- const visit = (project) => {
266
- if (stack[projNameToCompare(project)]) {
267
- Helpers.error(`Circular dependency detected involving project: ${projNameToCompare(project)}`);
268
- }
269
- if (!visited[projNameToCompare(project)]) {
270
- visited[projNameToCompare(project)] = true;
271
- stack[projNameToCompare(project)] = true;
272
- const depsResolved = resoveDepsArray(project);
273
- depsResolved.forEach(dependency => {
274
- const dependentProject = projects.find(p => {
275
- return projNameToCompare(p) === dependency;
276
- });
277
- if (dependentProject) {
278
- visit(dependentProject);
279
- }
280
- });
281
- stack[projNameToCompare(project)] = false;
282
- result.push(project);
283
- }
284
- };
285
- projects.forEach(project => visit(project));
286
- return result;
287
- }
288
- }
289
- ;
290
- ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-project-resolver.ts
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUduQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFJTCxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QixZQUNxQixPQUFZLEVBQ2YsV0FBbUI7UUFEaEIsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBakJyQyxhQUFRLEdBQW1CLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELGVBQVUsR0FBb0IsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFJckMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDakMsYUFBUSxHQUFjLEVBQUUsQ0FBQztRQUNuQzs7O1dBR0c7UUFDTyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQVF0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUUvQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FDaEMsY0FBYyxFQUNkLEdBQUcsSUFBSSxDQUFDLFdBQVcsNkNBQTZDLEVBQ2hFLE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUlELElBQUksWUFBWTtRQUNsQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDYixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLFFBQWdCLEVBQUUsYUFBYSxHQUFHLEtBQUs7UUFDbEQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsSUFBSSxDQUFDLGlCQUFvQyxFQUFFLE9BQWE7UUFJMUQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBSUQsU0FBUyxDQUNQLGdCQUFtQyxFQUNuQyxPQUlDO1FBRUwsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FB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Z0JBQWdCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFFekMsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUM7b0JBQzdDLENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksZ0JBQWdCLEVBQUUsQ0FBQzt3QkFDckIsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7b0JBQzFCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUMsT0FBTyxNQUFNLENBQUM7SUFFaEIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywwRUFBMEUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyAvKiAqLyAvKiAqLyAvKiAqLyAgICB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgcGF0aCwgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cbmltcG9ydCB7IENvbmZpZ0RhdGFiYXNlIH0gZnJvbSAnLi9jb25maWctZGF0YWJhc2UnO1xuaW1wb3J0IHsgUHJvamVjdERhdGFiYXNlIH0gZnJvbSAnLi9wcm9qZWN0LWRhdGFiYXNlJztcbmltcG9ydCB7IEJhc2VQcm9qZWN0IH0gZnJvbSAnLi9iYXNlLXByb2plY3QnO1xuaW1wb3J0IHsgUG9ydHNXb3JrZXIgfSBmcm9tICcuL3BvcnRzLXdvcmtlcic7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuZXhwb3J0IGNsYXNzIEJhc2VQcm9qZWN0UmVzb2x2ZXI8UFJPSkVDVCBleHRlbmRzIFBhcnRpYWw8QmFzZVByb2plY3Q+ID0gYW55PiB7XG4gIGNvbmZpZ0RiOiBDb25maWdEYXRhYmFzZSA9IG5ldyBDb25maWdEYXRhYmFzZSh0aGlzKTtcbiAgcHJvamVjdHNEYjogUHJvamVjdERhdGFiYXNlID0gbmV3IFByb2plY3REYXRhYmFzZSh0aGlzKTtcbiAgcmVhZG9ubHkgcG9ydHNXb3JrZXI6IFBvcnRzV29ya2VyO1xuXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IE5QTV9QUk9KRUNUX0tFWSA9ICducG0nO1xuICBwcm90ZWN0ZWQgcHJvamVjdHM6IFBST0pFQ1RbXSA9IFtdO1xuICAvKipcbiAgICogVG8gc3BlZWQgdXAgY2hlY2tpbmcgZm9sZGVyIEkgYW0ga2VlcGluZyBwYXRoZXMgZm9yIGFsdGVyZHkgY2hlY2tlZCBmb2xkZXJcbiAgICogVGhpcyBtYXkgYnJlYWsgdGhpbmdzIHRoYXQgYXJlIGNyZWF0aW5nIG5ldyBwcm9qZWN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIGVtcHR5TG9jYXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xhc3NGbjogYW55LFxuICAgIHB1YmxpYyByZWFkb25seSBjbGlUb29sTmFtZTogc3RyaW5nLFxuICApIHtcbiAgICB0aGlzLmNsaVRvb2xOYW1lID0gY2xpVG9vbE5hbWU7XG5cbiAgICBpZiAoIXRoaXMuY2xpVG9vbE5hbWUpIHtcbiAgICAgIEhlbHBlcnMudGhyb3coYGNsaVRvb2xOYW1lIGlzIG5vdCBwcm92aWRlZGApO1xuICAgIH1cbiAgICB0aGlzLnBvcnRzV29ya2VyID0gbmV3IFBvcnRzV29ya2VyKFxuICAgICAgJ3BvcnRzLXdvcmtlcicsXG4gICAgICBgJHt0aGlzLmNsaVRvb2xOYW1lfSBzdGFydENsaVNlcnZpY2VQb3J0c1dvcmtlciAtLXNraXBDb3JlQ2hlY2tgLFxuICAgICAgJzAuMC4wJyxcbiAgICApO1xuICB9XG5cblxuXG4gIGdldCBhbGxvd2VkVHlwZXMoKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcHJvamVjdCBmcm9tIHByb2Nlc3MuY3dkKClcbiAgICovXG4gIGdldCBDdXJyZW50KCk6IFBST0pFQ1Qge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG92ZXJyaWRlIHRoaXNcbiAgICovXG4gIHR5cGVGcm9tKGxvY2F0aW9uOiBzdHJpbmcsIHJlY3J1c2l2ZUNhbGwgPSBmYWxzZSk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgRnJvbShsb2NhdGlvbk9mUHJvamVjdDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBhbnkpOiBQUk9KRUNUIHtcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIG5lYXJlc3RUbyhcbiAgICBhYnNvbHV0ZUxvY2F0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICBvcHRpb25zPzoge1xuICAgICAgdHlwZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgZmluZEdpdFJvb3Q/OiBib29sZWFuO1xuICAgICAgb25seU91dFNpZGVOb2RlTW9kdWxlcz86IGJvb2xlYW47XG4gICAgfSxcbiAgKTogUFJPSkVDVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdW5sb2FkKHByb2plY3RPckxvY2F0aW9uT2ZQcm9qZWN0OiBQUk9KRUNUIHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbG9jYXRpb24gPSBfLmlzU3RyaW5nKHByb2plY3RPckxvY2F0aW9uT2ZQcm9qZWN0KVxuICAgICAgPyBwcm9qZWN0T3JMb2NhdGlvbk9mUHJvamVjdFxuICAgICAgOiBwcm9qZWN0T3JMb2NhdGlvbk9mUHJvamVjdD8ubG9jYXRpb247XG5cbiAgICB0aGlzLnByb2plY3RzID0gdGhpcy5wcm9qZWN0cy5maWx0ZXIoZiA9PiBmLmxvY2F0aW9uICE9PSBsb2NhdGlvbik7XG4gICAgdGhpcy5lbXB0eUxvY2F0aW9ucyA9IHRoaXMuZW1wdHlMb2NhdGlvbnMuZmlsdGVyKGYgPT4gZiAhPT0gbG9jYXRpb24pO1xuICB9XG5cblxuXG4gIHJlbW92ZShwcm9qZWN0OiBQUk9KRUNUKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBhZGQocHJvamVjdDogUFJPSkVDVCkge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG5cbiAgYWxsUHJvamVjdEZyb20oYWJzb2x1dGVMb2NhdGlvbjogc3RyaW5nLCBzdG9wT25Dd2Q6IHN0cmluZyA9ICcvJykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICBhbGxQcm9qZWN0c0Zyb21Gb2xkZXIoZm9sZGVyTG9jYXRpb246IHN0cmluZyk6IFBST0pFQ1RbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgc29ydEdyb3VwT2ZQcm9qZWN0PFQgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IEJhc2VQcm9qZWN0PihcbiAgICBwcm9qZWN0czogVFtdLFxuICAgIHJlc292ZURlcHNBcnJheTogKHByb2o6IFQpID0+IHN0cmluZ1tdLFxuICAgIHByb2pOYW1lVG9Db21wYXJlOiAocHJvajogVCkgPT4gc3RyaW5nLFxuICApOiBUW10ge1xuICAgIGNvbnN0IHZpc2l0ZWQ6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3Qgc3RhY2s6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3QgcmVzdWx0OiBUW10gPSBbXTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKHByb2plY3Q6IFQpID0+IHtcbiAgICAgIGlmIChzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcblxuICAgICAgICBIZWxwZXJzLmVycm9yKFxuICAgICAgICAgIGBDaXJjdWxhciBkZXBlbmRlbmN5IGRldGVjdGVkIGludm9sdmluZyBwcm9qZWN0OiAke3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcbiAgICAgICAgdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGRlcHNSZXNvbHZlZCA9IHJlc292ZURlcHNBcnJheShwcm9qZWN0KTtcbiAgICAgICAgZGVwc1Jlc29sdmVkLmZvckVhY2goZGVwZW5kZW5jeSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW50UHJvamVjdCA9IHByb2plY3RzLmZpbmQocCA9PiB7XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9qTmFtZVRvQ29tcGFyZShwKSA9PT0gZGVwZW5kZW5jeTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZGVwZW5kZW50UHJvamVjdCkge1xuICAgICAgICAgICAgdmlzaXQoZGVwZW5kZW50UHJvamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSBmYWxzZTtcbiAgICAgICAgcmVzdWx0LnB1c2gocHJvamVjdCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHByb2plY3RzLmZvckVhY2gocHJvamVjdCA9PiB2aXNpdChwcm9qZWN0KSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcblxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2Jhc2UtcHJvamVjdC1yZXNvbHZlci50cyJdfQ==