tnp-helpers 16.100.3 → 16.100.5

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 (207) 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/base-project.mjs +173 -6
  4. package/browser/esm2022/lib/base/core-project.mjs +54 -0
  5. package/browser/esm2022/lib/base/index.mjs +3 -1
  6. package/browser/esm2022/lib/base/linked-project.mjs +77 -0
  7. package/browser/esm2022/lib/helpers/for-browser/angular.helper.mjs +89 -0
  8. package/browser/esm2022/lib/helpers/for-browser/helpers-browser.mjs +48 -0
  9. package/browser/esm2022/lib/helpers/helpers-array-obj.mjs +117 -0
  10. package/browser/esm2022/lib/helpers/helpers-numbers.mjs +12 -0
  11. package/browser/esm2022/lib/helpers/helpers-strings-regexes.mjs +51 -0
  12. package/browser/esm2022/lib/helpers/helpers-strings.mjs +258 -0
  13. package/browser/esm2022/lib/helpers/helpers.mjs +358 -0
  14. package/browser/esm2022/lib/index.mjs +3 -4
  15. package/browser/fesm2022/tnp-helpers.mjs +308 -15
  16. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  17. package/browser/lib/base/base-project.d.ts +19 -5
  18. package/browser/lib/base/core-project.d.ts +54 -0
  19. package/browser/lib/base/index.d.ts +3 -1
  20. package/browser/lib/base/linked-project.d.ts +36 -0
  21. package/{client/lib → browser/lib/helpers}/helpers.d.ts +1 -1
  22. package/browser/lib/index.d.ts +2 -3
  23. package/client/README.md +24 -24
  24. package/client/esm2022/lib/base/base-project.mjs +173 -6
  25. package/client/esm2022/lib/base/core-project.mjs +54 -0
  26. package/client/esm2022/lib/base/index.mjs +3 -1
  27. package/client/esm2022/lib/base/linked-project.mjs +77 -0
  28. package/client/esm2022/lib/helpers/for-browser/angular.helper.mjs +89 -0
  29. package/client/esm2022/lib/helpers/for-browser/helpers-browser.mjs +48 -0
  30. package/client/esm2022/lib/helpers/helpers-array-obj.mjs +117 -0
  31. package/client/esm2022/lib/helpers/helpers-numbers.mjs +12 -0
  32. package/client/esm2022/lib/helpers/helpers-strings-regexes.mjs +51 -0
  33. package/client/esm2022/lib/helpers/helpers-strings.mjs +258 -0
  34. package/client/esm2022/lib/helpers/helpers.mjs +358 -0
  35. package/client/esm2022/lib/index.mjs +3 -4
  36. package/client/fesm2022/tnp-helpers.mjs +308 -15
  37. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  38. package/client/lib/base/base-project.d.ts +19 -5
  39. package/client/lib/base/core-project.d.ts +54 -0
  40. package/client/lib/base/index.d.ts +3 -1
  41. package/client/lib/base/linked-project.d.ts +36 -0
  42. package/{browser/lib → client/lib/helpers}/helpers.d.ts +1 -1
  43. package/client/lib/index.d.ts +2 -3
  44. package/client/package.json +35 -35
  45. package/{package.json_tnp.json5 → firedev.jsonc} +59 -60
  46. package/lib/base/base-command-line.backend.d.ts +3 -1
  47. package/lib/base/base-command-line.backend.js +43 -6
  48. package/lib/base/base-command-line.backend.js.map +1 -1
  49. package/lib/base/base-project.d.ts +32 -6
  50. package/lib/base/base-project.js +381 -92
  51. package/lib/base/base-project.js.map +1 -1
  52. package/lib/base/core-project.d.ts +53 -0
  53. package/lib/base/core-project.js +78 -0
  54. package/lib/base/core-project.js.map +1 -0
  55. package/lib/base/index.d.ts +2 -0
  56. package/lib/base/index.js +2 -0
  57. package/lib/base/index.js.map +1 -1
  58. package/lib/base/linked-project.d.ts +35 -0
  59. package/lib/base/linked-project.js +96 -0
  60. package/lib/base/linked-project.js.map +1 -0
  61. package/lib/{for-backend → helpers/for-backend}/helpers-cli-tool.backend.d.ts +1 -1
  62. package/lib/{for-backend → helpers/for-backend}/helpers-cli-tool.backend.js +1 -1
  63. package/lib/{for-backend → helpers/for-backend}/helpers-cli-tool.backend.js.map +1 -1
  64. package/lib/{for-backend → helpers/for-backend}/helpers-console-gui.js +1 -1
  65. package/lib/{for-backend → helpers/for-backend}/helpers-console-gui.js.map +1 -1
  66. package/lib/{for-backend → helpers/for-backend}/helpers-dependencies.backend.js +1 -1
  67. package/lib/{for-backend → helpers/for-backend}/helpers-dependencies.backend.js.map +1 -1
  68. package/lib/{for-backend → helpers/for-backend}/helpers-file-folders.backend.d.ts +2 -7
  69. package/lib/{for-backend → helpers/for-backend}/helpers-file-folders.backend.js +13 -69
  70. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -0
  71. package/lib/{for-backend → helpers/for-backend}/helpers-git.backend.d.ts +12 -3
  72. package/lib/{for-backend → helpers/for-backend}/helpers-git.backend.js +76 -11
  73. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -0
  74. package/lib/{for-backend → helpers/for-backend}/helpers-path.backend.js +1 -1
  75. package/lib/{for-backend → helpers/for-backend}/helpers-path.backend.js.map +1 -1
  76. package/lib/{for-backend → helpers/for-backend}/helpers-process.backend.d.ts +0 -1
  77. package/lib/{for-backend → helpers/for-backend}/helpers-process.backend.js +1 -5
  78. package/lib/{for-backend → helpers/for-backend}/helpers-process.backend.js.map +1 -1
  79. package/lib/{for-backend → helpers/for-backend}/helpers-system-terminal.backend.js +1 -1
  80. package/lib/{for-backend → helpers/for-backend}/helpers-system-terminal.backend.js.map +1 -1
  81. package/lib/{for-backend → helpers/for-backend}/helpers-vscode.backend.d.ts +1 -1
  82. package/lib/{for-backend → helpers/for-backend}/helpers-vscode.backend.js +1 -1
  83. package/lib/{for-backend → helpers/for-backend}/helpers-vscode.backend.js.map +1 -1
  84. package/lib/{for-backend → helpers/for-backend}/ts-code/ts-code-extractor.js +1 -1
  85. package/lib/{for-backend → helpers/for-backend}/ts-code/ts-code-extractor.js.map +1 -1
  86. package/lib/{for-backend → helpers/for-backend}/ts-code/ts-code-modifier.backend.js +1 -1
  87. package/lib/{for-backend → helpers/for-backend}/ts-code/ts-code-modifier.backend.js.map +1 -1
  88. package/lib/helpers/for-browser/angular.helper.js +6 -0
  89. package/lib/{helpers-strings.js → helpers/helpers-strings.js} +1 -1
  90. package/lib/{helpers-strings.js.map → helpers/helpers-strings.js.map} +1 -1
  91. package/lib/{helpers.d.ts → helpers/helpers.d.ts} +1 -1
  92. package/lib/{helpers.js → helpers/helpers.js} +1 -1
  93. package/lib/{helpers.js.map → helpers/helpers.js.map} +1 -1
  94. package/lib/index.d.ts +2 -3
  95. package/lib/index.js +1 -2
  96. package/lib/index.js.map +1 -1
  97. package/lib/models.d.ts +0 -10
  98. package/lib/models.js +3 -0
  99. package/lib/models.js.map +1 -1
  100. package/lib/old/base-component.js +3 -3
  101. package/lib/old/base-formly-component.js +3 -3
  102. package/lib/old/dual-component-ctrl.js +3 -3
  103. package/package.json +4 -5
  104. package/tmp-environment.json +39 -39
  105. package/websql/README.md +24 -24
  106. package/websql/esm2022/lib/base/base-project.mjs +173 -6
  107. package/websql/esm2022/lib/base/core-project.mjs +54 -0
  108. package/websql/esm2022/lib/base/index.mjs +3 -1
  109. package/websql/esm2022/lib/base/linked-project.mjs +77 -0
  110. package/websql/esm2022/lib/helpers/for-browser/angular.helper.mjs +89 -0
  111. package/websql/esm2022/lib/helpers/for-browser/helpers-browser.mjs +48 -0
  112. package/websql/esm2022/lib/helpers/helpers-array-obj.mjs +117 -0
  113. package/websql/esm2022/lib/helpers/helpers-numbers.mjs +12 -0
  114. package/websql/esm2022/lib/helpers/helpers-strings-regexes.mjs +51 -0
  115. package/websql/esm2022/lib/helpers/helpers-strings.mjs +258 -0
  116. package/websql/esm2022/lib/helpers/helpers.mjs +358 -0
  117. package/websql/esm2022/lib/index.mjs +3 -4
  118. package/websql/fesm2022/tnp-helpers.mjs +308 -15
  119. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  120. package/websql/lib/base/base-project.d.ts +19 -5
  121. package/websql/lib/base/core-project.d.ts +54 -0
  122. package/websql/lib/base/index.d.ts +3 -1
  123. package/websql/lib/base/linked-project.d.ts +36 -0
  124. package/websql/lib/{helpers.d.ts → helpers/helpers.d.ts} +1 -1
  125. package/websql/lib/index.d.ts +2 -3
  126. package/browser/esm2022/lib/for-browser/angular.helper.mjs +0 -89
  127. package/browser/esm2022/lib/for-browser/helpers-browser.mjs +0 -48
  128. package/browser/esm2022/lib/helpers-array-obj.mjs +0 -117
  129. package/browser/esm2022/lib/helpers-numbers.mjs +0 -12
  130. package/browser/esm2022/lib/helpers-strings-regexes.mjs +0 -51
  131. package/browser/esm2022/lib/helpers-strings.mjs +0 -258
  132. package/browser/esm2022/lib/helpers.mjs +0 -358
  133. package/browser/esm2022/lib/models.mjs +0 -4
  134. package/browser/lib/models.d.ts +0 -11
  135. package/client/esm2022/lib/for-browser/angular.helper.mjs +0 -89
  136. package/client/esm2022/lib/for-browser/helpers-browser.mjs +0 -48
  137. package/client/esm2022/lib/helpers-array-obj.mjs +0 -117
  138. package/client/esm2022/lib/helpers-numbers.mjs +0 -12
  139. package/client/esm2022/lib/helpers-strings-regexes.mjs +0 -51
  140. package/client/esm2022/lib/helpers-strings.mjs +0 -258
  141. package/client/esm2022/lib/helpers.mjs +0 -358
  142. package/client/esm2022/lib/models.mjs +0 -4
  143. package/client/lib/models.d.ts +0 -11
  144. package/lib/for-backend/helpers-file-folders.backend.js.map +0 -1
  145. package/lib/for-backend/helpers-git.backend.js.map +0 -1
  146. package/lib/for-browser/angular.helper.js +0 -6
  147. package/package.json_devDependencies.json +0 -222
  148. package/websql/esm2022/lib/for-browser/angular.helper.mjs +0 -89
  149. package/websql/esm2022/lib/for-browser/helpers-browser.mjs +0 -48
  150. package/websql/esm2022/lib/helpers-array-obj.mjs +0 -117
  151. package/websql/esm2022/lib/helpers-numbers.mjs +0 -12
  152. package/websql/esm2022/lib/helpers-strings-regexes.mjs +0 -51
  153. package/websql/esm2022/lib/helpers-strings.mjs +0 -258
  154. package/websql/esm2022/lib/helpers.mjs +0 -358
  155. package/websql/esm2022/lib/models.mjs +0 -4
  156. package/websql/lib/models.d.ts +0 -11
  157. /package/browser/lib/{for-browser → helpers/for-browser}/angular.helper.d.ts +0 -0
  158. /package/browser/lib/{for-browser → helpers/for-browser}/helpers-browser.d.ts +0 -0
  159. /package/browser/lib/{helpers-array-obj.d.ts → helpers/helpers-array-obj.d.ts} +0 -0
  160. /package/browser/lib/{helpers-numbers.d.ts → helpers/helpers-numbers.d.ts} +0 -0
  161. /package/browser/lib/{helpers-strings-regexes.d.ts → helpers/helpers-strings-regexes.d.ts} +0 -0
  162. /package/browser/lib/{helpers-strings.d.ts → helpers/helpers-strings.d.ts} +0 -0
  163. /package/client/lib/{for-browser → helpers/for-browser}/angular.helper.d.ts +0 -0
  164. /package/client/lib/{for-browser → helpers/for-browser}/helpers-browser.d.ts +0 -0
  165. /package/client/lib/{helpers-array-obj.d.ts → helpers/helpers-array-obj.d.ts} +0 -0
  166. /package/client/lib/{helpers-numbers.d.ts → helpers/helpers-numbers.d.ts} +0 -0
  167. /package/client/lib/{helpers-strings-regexes.d.ts → helpers/helpers-strings-regexes.d.ts} +0 -0
  168. /package/client/lib/{helpers-strings.d.ts → helpers/helpers-strings.d.ts} +0 -0
  169. /package/lib/{for-backend → helpers/for-backend}/helpers-console-gui.d.ts +0 -0
  170. /package/lib/{for-backend → helpers/for-backend}/helpers-dependencies.backend.d.ts +0 -0
  171. /package/lib/{for-backend → helpers/for-backend}/helpers-network.backend.d.ts +0 -0
  172. /package/lib/{for-backend → helpers/for-backend}/helpers-network.backend.js +0 -0
  173. /package/lib/{for-backend → helpers/for-backend}/helpers-network.backend.js.map +0 -0
  174. /package/lib/{for-backend → helpers/for-backend}/helpers-npm.backend.d.ts +0 -0
  175. /package/lib/{for-backend → helpers/for-backend}/helpers-npm.backend.js +0 -0
  176. /package/lib/{for-backend → helpers/for-backend}/helpers-npm.backend.js.map +0 -0
  177. /package/lib/{for-backend → helpers/for-backend}/helpers-path.backend.d.ts +0 -0
  178. /package/lib/{for-backend → helpers/for-backend}/helpers-system-terminal.backend.d.ts +0 -0
  179. /package/lib/{for-backend → helpers/for-backend}/ts-code/index.d.ts +0 -0
  180. /package/lib/{for-backend → helpers/for-backend}/ts-code/index.js +0 -0
  181. /package/lib/{for-backend → helpers/for-backend}/ts-code/index.js.map +0 -0
  182. /package/lib/{for-backend → helpers/for-backend}/ts-code/ts-code-extractor.d.ts +0 -0
  183. /package/lib/{for-backend → helpers/for-backend}/ts-code/ts-code-modifier.backend.d.ts +0 -0
  184. /package/lib/{for-browser → helpers/for-browser}/angular.helper.d.ts +0 -0
  185. /package/lib/{for-browser → helpers/for-browser}/angular.helper.js.map +0 -0
  186. /package/lib/{for-browser → helpers/for-browser}/helpers-browser.d.ts +0 -0
  187. /package/lib/{for-browser → helpers/for-browser}/helpers-browser.js +0 -0
  188. /package/lib/{for-browser → helpers/for-browser}/helpers-browser.js.map +0 -0
  189. /package/lib/{helpers-array-obj.d.ts → helpers/helpers-array-obj.d.ts} +0 -0
  190. /package/lib/{helpers-array-obj.js → helpers/helpers-array-obj.js} +0 -0
  191. /package/lib/{helpers-array-obj.js.map → helpers/helpers-array-obj.js.map} +0 -0
  192. /package/lib/{helpers-json5.backend.d.ts → helpers/helpers-json5.backend.d.ts} +0 -0
  193. /package/lib/{helpers-json5.backend.js → helpers/helpers-json5.backend.js} +0 -0
  194. /package/lib/{helpers-json5.backend.js.map → helpers/helpers-json5.backend.js.map} +0 -0
  195. /package/lib/{helpers-numbers.d.ts → helpers/helpers-numbers.d.ts} +0 -0
  196. /package/lib/{helpers-numbers.js → helpers/helpers-numbers.js} +0 -0
  197. /package/lib/{helpers-numbers.js.map → helpers/helpers-numbers.js.map} +0 -0
  198. /package/lib/{helpers-strings-regexes.d.ts → helpers/helpers-strings-regexes.d.ts} +0 -0
  199. /package/lib/{helpers-strings-regexes.js → helpers/helpers-strings-regexes.js} +0 -0
  200. /package/lib/{helpers-strings-regexes.js.map → helpers/helpers-strings-regexes.js.map} +0 -0
  201. /package/lib/{helpers-strings.d.ts → helpers/helpers-strings.d.ts} +0 -0
  202. /package/websql/lib/{for-browser → helpers/for-browser}/angular.helper.d.ts +0 -0
  203. /package/websql/lib/{for-browser → helpers/for-browser}/helpers-browser.d.ts +0 -0
  204. /package/websql/lib/{helpers-array-obj.d.ts → helpers/helpers-array-obj.d.ts} +0 -0
  205. /package/websql/lib/{helpers-numbers.d.ts → helpers/helpers-numbers.d.ts} +0 -0
  206. /package/websql/lib/{helpers-strings-regexes.d.ts → helpers/helpers-strings-regexes.d.ts} +0 -0
  207. /package/websql/lib/{helpers-strings.d.ts → helpers/helpers-strings.d.ts} +0 -0
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseProject = exports.ChildProcess = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  //#region @backend
6
+ var json5Write = require("json10-writer");
6
7
  var tnp_core_1 = require("tnp-core");
7
8
  var child_process_1 = require("child_process");
8
9
  Object.defineProperty(exports, "ChildProcess", { enumerable: true, get: function () { return child_process_1.ChildProcess; } });
@@ -72,6 +73,240 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
72
73
  };
73
74
  //#endregion
74
75
  //#region methods & getters
76
+ BaseProject.prototype.addLinkedProject = function (linkedProj) {
77
+ var linkedProject = tnp_core_3._.isString(linkedProj) ? index_1.LinkedProject.fromName(linkedProj) : linkedProj;
78
+ //#region @backendFunc
79
+ var linkedProjectsConfig = this.getLinkedProjectsConfig();
80
+ linkedProjectsConfig.projects.push(index_1.LinkedProject.from(linkedProject));
81
+ this.setLinkedProjectsConfig(linkedProjectsConfig);
82
+ //#endregion
83
+ };
84
+ BaseProject.prototype.addLinkedProjects = function (linkedProjs) {
85
+ var e_1, _a;
86
+ try {
87
+ //#region @backendFunc
88
+ for (var linkedProjs_1 = tslib_1.__values(linkedProjs), linkedProjs_1_1 = linkedProjs_1.next(); !linkedProjs_1_1.done; linkedProjs_1_1 = linkedProjs_1.next()) {
89
+ var linkedProj = linkedProjs_1_1.value;
90
+ this.addLinkedProject(linkedProj);
91
+ }
92
+ }
93
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
94
+ finally {
95
+ try {
96
+ if (linkedProjs_1_1 && !linkedProjs_1_1.done && (_a = linkedProjs_1.return)) _a.call(linkedProjs_1);
97
+ }
98
+ finally { if (e_1) throw e_1.error; }
99
+ }
100
+ //#endregion
101
+ };
102
+ BaseProject.prototype.setLinkedProjectsConfig = function (linkedPorjectsConfig) {
103
+ //#region @backendFunc
104
+ linkedPorjectsConfig = index_1.LinkedPorjectsConfig.from(linkedPorjectsConfig);
105
+ var writer = json5Write.load(index_1.Helpers.readFile(this.linkedProjectsConfigPath));
106
+ writer.write(linkedPorjectsConfig);
107
+ var removeEmptyLineFromString = function (str) {
108
+ return (str || '').split('\n').filter(function (f) { return !!f.trim(); }).join('\n');
109
+ };
110
+ index_1.Helpers.writeFile(this.linkedProjectsConfigPath, removeEmptyLineFromString(writer.toSource({ quote: 'double', trailingComma: false })));
111
+ // Helpers.writeJson(this.pathFor(config.file.linked_projects_json), linkedPorjectsConfig);
112
+ //#endregion
113
+ };
114
+ Object.defineProperty(BaseProject.prototype, "linkedProjectsConfigPath", {
115
+ get: function () {
116
+ return this.pathFor(tnp_config_1.config.file.linked_projects_json);
117
+ },
118
+ enumerable: false,
119
+ configurable: true
120
+ });
121
+ BaseProject.prototype.recreateLinkedProjectsConfig = function () {
122
+ //#region @backendFunc
123
+ if (!index_1.Helpers.exists(this.linkedProjectsConfigPath)) {
124
+ index_1.Helpers.writeJson(this.linkedProjectsConfigPath, index_1.LinkedPorjectsConfig.from({ projects: [] }));
125
+ }
126
+ //#endregion
127
+ };
128
+ BaseProject.prototype.getLinkedProjectsConfig = function () {
129
+ //#region @backendFunc
130
+ this.recreateLinkedProjectsConfig();
131
+ var existedConfig = index_1.Helpers.readJson(this.pathFor(tnp_config_1.config.file.linked_projects_json), {}, true);
132
+ var orgExistedConfig = tnp_core_3._.cloneDeep(existedConfig);
133
+ // console.log({ existedConfig });
134
+ var linkedPorjectsConfig = index_1.LinkedPorjectsConfig.from(existedConfig);
135
+ var currentRemoteUrl = this.git.originURL;
136
+ var currentBranch = this.git.currentBranchName;
137
+ linkedPorjectsConfig.projects = (linkedPorjectsConfig.projects || []).map(function (projOrProjName) {
138
+ if (tnp_core_3._.isString(projOrProjName)) {
139
+ return index_1.LinkedProject.fromName(projOrProjName, currentRemoteUrl, currentBranch);
140
+ }
141
+ if (!projOrProjName.relativeClonePath) {
142
+ projOrProjName.relativeClonePath = tnp_core_2.path.basename(projOrProjName.remoteUrl()).replace('.git', '');
143
+ }
144
+ projOrProjName = index_1.LinkedProject.from(projOrProjName);
145
+ if (!projOrProjName.remoteUrl()) {
146
+ projOrProjName.repoUrl = currentRemoteUrl.replace(tnp_core_2.path.basename(currentRemoteUrl), "".concat(projOrProjName.relativeClonePath, ".git"));
147
+ }
148
+ return projOrProjName;
149
+ });
150
+ // console.log({ linkedPorjectsConfig })
151
+ linkedPorjectsConfig.projects = index_1.Helpers.uniqArray(linkedPorjectsConfig.projects, 'relativeClonePath');
152
+ if (!tnp_core_3._.isEqual(orgExistedConfig, linkedPorjectsConfig)) {
153
+ this.setLinkedProjectsConfig(linkedPorjectsConfig);
154
+ }
155
+ return linkedPorjectsConfig;
156
+ //#endregion
157
+ };
158
+ Object.defineProperty(BaseProject.prototype, "linkedProjects", {
159
+ //#region methods & getters / linked projects
160
+ get: function () {
161
+ return this.getLinkedProjectsConfig().projects || [];
162
+ },
163
+ enumerable: false,
164
+ configurable: true
165
+ });
166
+ Object.defineProperty(BaseProject.prototype, "detectedLinkedProjects", {
167
+ //#endregion
168
+ get: function () {
169
+ var detectedLinkedProjects = index_1.LinkedProject.detect(this.location, true);
170
+ return detectedLinkedProjects;
171
+ },
172
+ enumerable: false,
173
+ configurable: true
174
+ });
175
+ Object.defineProperty(BaseProject.prototype, "linkedProjectsPrefix", {
176
+ get: function () {
177
+ return this.getLinkedProjectsConfig().prefix;
178
+ },
179
+ enumerable: false,
180
+ configurable: true
181
+ });
182
+ Object.defineProperty(BaseProject.prototype, "linkedProjectsExisted", {
183
+ //#region getters & methods / link project exited
184
+ get: function () {
185
+ var _this = this;
186
+ //#region @backendFunc
187
+ return this.linkedProjects
188
+ .map(function (f) {
189
+ var proj = _this.ins.From(_this.pathFor(f.relativeClonePath));
190
+ return proj;
191
+ })
192
+ .filter(function (f) { return !!f; });
193
+ //#endregion
194
+ },
195
+ enumerable: false,
196
+ configurable: true
197
+ });
198
+ //#endregion
199
+ //#region getters & methods / get unexisted projects
200
+ BaseProject.prototype.cloneUnexistedLinkedProjects = function (actionType, cloneChildren) {
201
+ if (cloneChildren === void 0) { cloneChildren = false; }
202
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
203
+ var detectedLinkedProjects, _loop_1, this_1, detectedLinkedProjects_1, detectedLinkedProjects_1_1, detectedLinkedProject, e_2_1, projectsThatShouldBeLinked, _a, projectsThatShouldBeLinked_1, projectsThatShouldBeLinked_1_1, linkedProj, e_3_1;
204
+ var e_2, _b, e_3, _c;
205
+ return tslib_1.__generator(this, function (_d) {
206
+ switch (_d.label) {
207
+ case 0:
208
+ //#region @backendFunc
209
+ if (actionType === 'push' && this.automaticallyAddAllChnagesWhenPushingToGit()) {
210
+ return [2 /*return*/];
211
+ }
212
+ index_1.Helpers.taskStarted("Checking linked projects in ".concat(this.genericName));
213
+ detectedLinkedProjects = this.detectedLinkedProjects;
214
+ _loop_1 = function (detectedLinkedProject) {
215
+ return tslib_1.__generator(this, function (_e) {
216
+ switch (_e.label) {
217
+ case 0:
218
+ if (this_1.linkedProjects.find(function (f) { return f.relativeClonePath === detectedLinkedProject.relativeClonePath; })) {
219
+ return [2 /*return*/, "continue"];
220
+ }
221
+ return [4 /*yield*/, index_1.Helpers.questionYesNo("Do you want to remove unexisted linked project ".concat(detectedLinkedProject.relativeClonePath, " ?"))];
222
+ case 1:
223
+ if (_e.sent()) {
224
+ index_1.Helpers.taskStarted("Removing unexisted project ".concat(detectedLinkedProject.relativeClonePath));
225
+ index_1.Helpers.removeFolderIfExists(this_1.pathFor(detectedLinkedProject.relativeClonePath));
226
+ index_1.Helpers.taskDone("Removed unexisted project ".concat(detectedLinkedProject.relativeClonePath));
227
+ }
228
+ return [2 /*return*/];
229
+ }
230
+ });
231
+ };
232
+ this_1 = this;
233
+ _d.label = 1;
234
+ case 1:
235
+ _d.trys.push([1, 6, 7, 8]);
236
+ detectedLinkedProjects_1 = tslib_1.__values(detectedLinkedProjects), detectedLinkedProjects_1_1 = detectedLinkedProjects_1.next();
237
+ _d.label = 2;
238
+ case 2:
239
+ if (!!detectedLinkedProjects_1_1.done) return [3 /*break*/, 5];
240
+ detectedLinkedProject = detectedLinkedProjects_1_1.value;
241
+ return [5 /*yield**/, _loop_1(detectedLinkedProject)];
242
+ case 3:
243
+ _d.sent();
244
+ _d.label = 4;
245
+ case 4:
246
+ detectedLinkedProjects_1_1 = detectedLinkedProjects_1.next();
247
+ return [3 /*break*/, 2];
248
+ case 5: return [3 /*break*/, 8];
249
+ case 6:
250
+ e_2_1 = _d.sent();
251
+ e_2 = { error: e_2_1 };
252
+ return [3 /*break*/, 8];
253
+ case 7:
254
+ try {
255
+ if (detectedLinkedProjects_1_1 && !detectedLinkedProjects_1_1.done && (_b = detectedLinkedProjects_1.return)) _b.call(detectedLinkedProjects_1);
256
+ }
257
+ finally { if (e_2) throw e_2.error; }
258
+ return [7 /*endfinally*/];
259
+ case 8:
260
+ index_1.Helpers.taskDone("Checking linked projects done in ".concat(this.genericName));
261
+ projectsThatShouldBeLinked = this.linkedProjects
262
+ .map(function (linkedProj) {
263
+ return detectedLinkedProjects.find(function (f) { return f.relativeClonePath === linkedProj.relativeClonePath; }) ? void 0 : linkedProj;
264
+ }).filter(function (f) { return !!f; });
265
+ if (!(projectsThatShouldBeLinked.length > 0)) return [3 /*break*/, 18];
266
+ index_1.Helpers.info("\n\n".concat(projectsThatShouldBeLinked.map(function (p, index) {
267
+ return "- ".concat(index + 1, ". ").concat(tnp_core_1.chalk.bold(p.relativeClonePath), " ").concat(p.remoteUrl(), " {").concat(p.purpose ? " purpose: ".concat(p.purpose, " }") : '');
268
+ }).join('\n'), "\n\n "));
269
+ _a = cloneChildren;
270
+ if (_a) return [3 /*break*/, 10];
271
+ return [4 /*yield*/, index_1.Helpers.questionYesNo("Do you want to clone above (missing) linked projects ?")];
272
+ case 9:
273
+ _a = (_d.sent());
274
+ _d.label = 10;
275
+ case 10:
276
+ if (!_a) return [3 /*break*/, 18];
277
+ _d.label = 11;
278
+ case 11:
279
+ _d.trys.push([11, 16, 17, 18]);
280
+ projectsThatShouldBeLinked_1 = tslib_1.__values(projectsThatShouldBeLinked), projectsThatShouldBeLinked_1_1 = projectsThatShouldBeLinked_1.next();
281
+ _d.label = 12;
282
+ case 12:
283
+ if (!!projectsThatShouldBeLinked_1_1.done) return [3 /*break*/, 15];
284
+ linkedProj = projectsThatShouldBeLinked_1_1.value;
285
+ index_1.Helpers.info("Cloning unexisted project from url ".concat(tnp_core_1.chalk.bold(linkedProj.remoteUrl()), " to ").concat(linkedProj.relativeClonePath));
286
+ return [4 /*yield*/, this.git.clone(linkedProj.remoteUrl(), linkedProj.relativeClonePath, linkedProj.deafultBranch)];
287
+ case 13:
288
+ _d.sent();
289
+ _d.label = 14;
290
+ case 14:
291
+ projectsThatShouldBeLinked_1_1 = projectsThatShouldBeLinked_1.next();
292
+ return [3 /*break*/, 12];
293
+ case 15: return [3 /*break*/, 18];
294
+ case 16:
295
+ e_3_1 = _d.sent();
296
+ e_3 = { error: e_3_1 };
297
+ return [3 /*break*/, 18];
298
+ case 17:
299
+ try {
300
+ if (projectsThatShouldBeLinked_1_1 && !projectsThatShouldBeLinked_1_1.done && (_c = projectsThatShouldBeLinked_1.return)) _c.call(projectsThatShouldBeLinked_1);
301
+ }
302
+ finally { if (e_3) throw e_3.error; }
303
+ return [7 /*endfinally*/];
304
+ case 18: return [2 /*return*/];
305
+ }
306
+ });
307
+ });
308
+ };
309
+ //#endregion
75
310
  //#region methods & getters / set type
76
311
  BaseProject.prototype.setType = function (type) {
77
312
  // @ts-ignore
@@ -682,8 +917,8 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
682
917
  BaseProject.prototype.resetProcess = function (overrideBranch, recrusive) {
683
918
  if (recrusive === void 0) { recrusive = false; }
684
919
  return tslib_1.__awaiter(this, void 0, void 0, function () {
685
- var defaultBranch, childrenRepos, childrenRepos_1, childrenRepos_1_1, child, e_1_1;
686
- var e_1, _a;
920
+ var defaultBranch, childrenRepos, childrenRepos_1, childrenRepos_1_1, child, e_4_1;
921
+ var e_4, _a;
687
922
  return tslib_1.__generator(this, function (_b) {
688
923
  switch (_b.label) {
689
924
  case 0:
@@ -707,7 +942,7 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
707
942
  case 2:
708
943
  _b.sent();
709
944
  index_1.Helpers.taskDone("RESET DONE BRANCH: ".concat(tnp_core_1.chalk.bold(defaultBranch), " in ").concat(this.genericName));
710
- childrenRepos = this.children.filter(function (f) { return f.git.isGitRepo && f.git.isGitRoot; });
945
+ childrenRepos = this.children.filter(function (f) { return f.git.isInsideGitRepo && f.git.isGitRoot; });
711
946
  _b.label = 3;
712
947
  case 3:
713
948
  _b.trys.push([3, 8, 9, 10]);
@@ -725,14 +960,14 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
725
960
  return [3 /*break*/, 4];
726
961
  case 7: return [3 /*break*/, 10];
727
962
  case 8:
728
- e_1_1 = _b.sent();
729
- e_1 = { error: e_1_1 };
963
+ e_4_1 = _b.sent();
964
+ e_4 = { error: e_4_1 };
730
965
  return [3 /*break*/, 10];
731
966
  case 9:
732
967
  try {
733
968
  if (childrenRepos_1_1 && !childrenRepos_1_1.done && (_a = childrenRepos_1.return)) _a.call(childrenRepos_1);
734
969
  }
735
- finally { if (e_1) throw e_1.error; }
970
+ finally { if (e_4) throw e_4.error; }
736
971
  return [7 /*endfinally*/];
737
972
  case 10: return [2 /*return*/];
738
973
  }
@@ -741,15 +976,16 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
741
976
  };
742
977
  //#endregion
743
978
  //#region methods & getters / push process
744
- BaseProject.prototype.pullProcess = function () {
979
+ BaseProject.prototype.pullProcess = function (cloneChildren) {
980
+ if (cloneChildren === void 0) { cloneChildren = false; }
745
981
  return tslib_1.__awaiter(this, void 0, void 0, function () {
746
- var uncommitedChanges, location, childrenRepos, childrenRepos_2, childrenRepos_2_1, child, e_2_1;
747
- var e_2, _a;
982
+ var uncommitedChanges, location, childrenRepos, childrenRepos_2, childrenRepos_2_1, child, e_5_1;
983
+ var e_5, _a;
748
984
  return tslib_1.__generator(this, function (_b) {
749
985
  switch (_b.label) {
750
986
  case 0:
751
987
  //#region @backendFunc
752
- return [4 /*yield*/, this._beforePullProcessAction()];
988
+ return [4 /*yield*/, this._beforePullProcessAction(cloneChildren)];
753
989
  case 1:
754
990
  //#region @backendFunc
755
991
  _b.sent();
@@ -772,8 +1008,8 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
772
1008
  location = this.location;
773
1009
  this.ins.unload(this);
774
1010
  this.ins.add(this.ins.From(location));
775
- if (!this.automaticallyAddAllChnagesWhenPushingToGit()) return [3 /*break*/, 10];
776
- childrenRepos = this.children.filter(function (f) { return f.git.isGitRepo && f.git.isGitRoot; });
1011
+ if (!(this.automaticallyAddAllChnagesWhenPushingToGit() || cloneChildren)) return [3 /*break*/, 10];
1012
+ childrenRepos = this.children.filter(function (f) { return f.git.isInsideGitRepo && f.git.isGitRoot; });
777
1013
  _b.label = 3;
778
1014
  case 3:
779
1015
  _b.trys.push([3, 8, 9, 10]);
@@ -791,14 +1027,14 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
791
1027
  return [3 /*break*/, 4];
792
1028
  case 7: return [3 /*break*/, 10];
793
1029
  case 8:
794
- e_2_1 = _b.sent();
795
- e_2 = { error: e_2_1 };
1030
+ e_5_1 = _b.sent();
1031
+ e_5 = { error: e_5_1 };
796
1032
  return [3 /*break*/, 10];
797
1033
  case 9:
798
1034
  try {
799
1035
  if (childrenRepos_2_1 && !childrenRepos_2_1.done && (_a = childrenRepos_2.return)) _a.call(childrenRepos_2);
800
1036
  }
801
- finally { if (e_2) throw e_2.error; }
1037
+ finally { if (e_5) throw e_5.error; }
802
1038
  return [7 /*endfinally*/];
803
1039
  case 10: return [2 /*return*/];
804
1040
  }
@@ -811,53 +1047,55 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
811
1047
  var _a;
812
1048
  if (options === void 0) { options = {}; }
813
1049
  return tslib_1.__awaiter(this, void 0, void 0, function () {
814
- var force, typeofCommit, forcePushNoQuestion, origin, exitCallBack, args, commitMessageRequired, commitData, error_1, childrenRepos, childrenRepos_3, childrenRepos_3_1, child, e_3_1;
815
- var _b, _c, _d, e_3, _e;
1050
+ var force, typeofCommit, forcePushNoQuestion, origin, exitCallBack, args, commitMessageRequired, commitData, error_1, childrenRepos, childrenRepos_3, childrenRepos_3_1, child, e_6_1;
1051
+ var _b, _c, _d, e_6, _e;
816
1052
  return tslib_1.__generator(this, function (_f) {
817
1053
  switch (_f.label) {
818
1054
  case 0:
819
1055
  force = (_b = options.force, _b === void 0 ? false : _b), typeofCommit = options.typeofCommit, forcePushNoQuestion = options.forcePushNoQuestion, origin = (_c = options.origin, _c === void 0 ? 'origin' : _c), exitCallBack = options.exitCallBack, args = (_d = options.args, _d === void 0 ? [] : _d), commitMessageRequired = options.commitMessageRequired;
820
- this._beforePushProcessAction();
821
- return [4 /*yield*/, this._getCommitMessage(typeofCommit, args, commitMessageRequired)];
1056
+ return [4 /*yield*/, this._beforePushProcessAction()];
822
1057
  case 1:
823
- commitData = _f.sent();
824
- _f.label = 2;
1058
+ _f.sent();
1059
+ return [4 /*yield*/, this._getCommitMessage(typeofCommit, args, commitMessageRequired)];
825
1060
  case 2:
826
- if (!true) return [3 /*break*/, 8];
1061
+ commitData = _f.sent();
827
1062
  _f.label = 3;
828
1063
  case 3:
829
- _f.trys.push([3, 5, , 7]);
830
- return [4 /*yield*/, this.lint()];
1064
+ if (!true) return [3 /*break*/, 9];
1065
+ _f.label = 4;
831
1066
  case 4:
832
- _f.sent();
833
- return [3 /*break*/, 8];
1067
+ _f.trys.push([4, 6, , 8]);
1068
+ return [4 /*yield*/, this.lint()];
834
1069
  case 5:
1070
+ _f.sent();
1071
+ return [3 /*break*/, 9];
1072
+ case 6:
835
1073
  error_1 = _f.sent();
836
1074
  index_1.Helpers.warn('Fix your code...');
837
1075
  return [4 /*yield*/, index_1.Helpers.consoleGui.question.yesNo('Try again lint ? .. (or just skip it)')];
838
- case 6:
1076
+ case 7:
839
1077
  if (!(_f.sent())) {
840
- return [3 /*break*/, 8];
1078
+ return [3 /*break*/, 9];
841
1079
  }
842
- return [3 /*break*/, 7];
843
- case 7: return [3 /*break*/, 2];
844
- case 8:
845
- if (!!commitData.isActionCommit) return [3 /*break*/, 12];
1080
+ return [3 /*break*/, 8];
1081
+ case 8: return [3 /*break*/, 3];
1082
+ case 9:
1083
+ if (!!commitData.isActionCommit) return [3 /*break*/, 13];
846
1084
  index_1.Helpers.info("Current commit:\n - message to include {".concat(commitData.commitMessage, "}\n - branch to checkout {").concat(commitData.branchName, "}\n "));
847
- if (!(this.git.lastCommitMessage() === commitData.commitMessage)) return [3 /*break*/, 10];
1085
+ if (!(this.git.lastCommitMessage() === commitData.commitMessage)) return [3 /*break*/, 11];
848
1086
  return [4 /*yield*/, index_1.Helpers.questionYesNo('Soft reset last commit with same message ?')];
849
- case 9:
1087
+ case 10:
850
1088
  if (_f.sent()) {
851
1089
  this.git.resetSoftHEAD(1);
852
1090
  }
853
- _f.label = 10;
854
- case 10: return [4 /*yield*/, index_1.Helpers.questionYesNo('Commit and push this ?')];
855
- case 11:
1091
+ _f.label = 11;
1092
+ case 11: return [4 /*yield*/, index_1.Helpers.questionYesNo('Commit and push this ?')];
1093
+ case 12:
856
1094
  if (!(_f.sent())) {
857
1095
  exitCallBack();
858
1096
  }
859
- _f.label = 12;
860
- case 12:
1097
+ _f.label = 13;
1098
+ case 13:
861
1099
  if (this.automaticallyAddAllChnagesWhenPushingToGit()) { // my project
862
1100
  this.git.stageAllFiles();
863
1101
  }
@@ -879,37 +1117,41 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
879
1117
  index_1.Helpers.warn("Not commiting anything... ");
880
1118
  }
881
1119
  return [4 /*yield*/, this.git.pushCurrentBranch({ force: force, origin: origin, forcePushNoQuestion: forcePushNoQuestion, askToRetry: true })];
882
- case 13:
883
- _f.sent();
884
- if (!this.automaticallyAddAllChnagesWhenPushingToGit()) return [3 /*break*/, 21];
885
- childrenRepos = this.children.filter(function (f) { return f.git.isGitRepo && f.git.isGitRoot; });
886
- _f.label = 14;
887
1120
  case 14:
888
- _f.trys.push([14, 19, 20, 21]);
889
- childrenRepos_3 = tslib_1.__values(childrenRepos), childrenRepos_3_1 = childrenRepos_3.next();
1121
+ _f.sent();
1122
+ if (!this.automaticallyAddAllChnagesWhenPushingToGit()) return [3 /*break*/, 22];
1123
+ if (this.getLinkedProjectsConfig().skipRecrusivePush) {
1124
+ index_1.Helpers.warn("Skipping recrusive (children) push for ".concat(this.genericName));
1125
+ return [2 /*return*/];
1126
+ }
1127
+ childrenRepos = this.children.filter(function (f) { return f.git.isInsideGitRepo && f.git.isGitRoot; });
890
1128
  _f.label = 15;
891
1129
  case 15:
892
- if (!!childrenRepos_3_1.done) return [3 /*break*/, 18];
1130
+ _f.trys.push([15, 20, 21, 22]);
1131
+ childrenRepos_3 = tslib_1.__values(childrenRepos), childrenRepos_3_1 = childrenRepos_3.next();
1132
+ _f.label = 16;
1133
+ case 16:
1134
+ if (!!childrenRepos_3_1.done) return [3 /*break*/, 19];
893
1135
  child = childrenRepos_3_1.value;
894
1136
  return [4 /*yield*/, child.pushProcess(options)];
895
- case 16:
896
- _f.sent();
897
- _f.label = 17;
898
1137
  case 17:
1138
+ _f.sent();
1139
+ _f.label = 18;
1140
+ case 18:
899
1141
  childrenRepos_3_1 = childrenRepos_3.next();
900
- return [3 /*break*/, 15];
901
- case 18: return [3 /*break*/, 21];
902
- case 19:
903
- e_3_1 = _f.sent();
904
- e_3 = { error: e_3_1 };
905
- return [3 /*break*/, 21];
1142
+ return [3 /*break*/, 16];
1143
+ case 19: return [3 /*break*/, 22];
906
1144
  case 20:
1145
+ e_6_1 = _f.sent();
1146
+ e_6 = { error: e_6_1 };
1147
+ return [3 /*break*/, 22];
1148
+ case 21:
907
1149
  try {
908
1150
  if (childrenRepos_3_1 && !childrenRepos_3_1.done && (_e = childrenRepos_3.return)) _e.call(childrenRepos_3);
909
1151
  }
910
- finally { if (e_3) throw e_3.error; }
1152
+ finally { if (e_6) throw e_6.error; }
911
1153
  return [7 /*endfinally*/];
912
- case 21: return [2 /*return*/];
1154
+ case 22: return [2 /*return*/];
913
1155
  }
914
1156
  });
915
1157
  });
@@ -918,7 +1160,7 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
918
1160
  //#region methods & getters / before any action on git root
919
1161
  BaseProject.prototype._beforeAnyActionOnGitRoot = function () {
920
1162
  //#region @backendFunc
921
- if (!this.git.isGitRepo) {
1163
+ if (!this.git.isInsideGitRepo) {
922
1164
  index_1.Helpers.error("Project ".concat(tnp_core_1.chalk.bold(this.name), " is not a git repository\n locaiton: ").concat(this.location), false, true);
923
1165
  }
924
1166
  if (!this.git.isGitRoot) {
@@ -936,7 +1178,7 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
936
1178
  case 0:
937
1179
  //#region @backendFunc
938
1180
  this._beforeAnyActionOnGitRoot();
939
- if (!(this.git.isGitRepo && this.git.isGitRoot && !((_a = this.git.currentBranchName) === null || _a === void 0 ? void 0 : _a.trim()))) return [3 /*break*/, 2];
1181
+ if (!(this.git.isInsideGitRepo && this.git.isGitRoot && !((_a = this.git.currentBranchName) === null || _a === void 0 ? void 0 : _a.trim()))) return [3 /*break*/, 2];
940
1182
  return [4 /*yield*/, index_1.Helpers.consoleGui.question.yesNo('Repository is empty...Commit "master" branch and commit all as "first commit" ?')];
941
1183
  case 1:
942
1184
  if (_b.sent()) {
@@ -945,19 +1187,29 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
945
1187
  this.git.commit('first commit ');
946
1188
  }
947
1189
  _b.label = 2;
948
- case 2: return [2 /*return*/];
1190
+ case 2: return [4 /*yield*/, this.cloneUnexistedLinkedProjects('push')];
1191
+ case 3:
1192
+ _b.sent();
1193
+ return [2 /*return*/];
949
1194
  }
950
1195
  });
951
1196
  });
952
1197
  };
953
1198
  //#endregion
954
1199
  //#region before push action
955
- BaseProject.prototype._beforePullProcessAction = function () {
1200
+ BaseProject.prototype._beforePullProcessAction = function (cloneChildren) {
1201
+ if (cloneChildren === void 0) { cloneChildren = false; }
956
1202
  return tslib_1.__awaiter(this, void 0, void 0, function () {
957
1203
  return tslib_1.__generator(this, function (_a) {
958
- //#region @backendFunc
959
- this._beforeAnyActionOnGitRoot();
960
- return [2 /*return*/];
1204
+ switch (_a.label) {
1205
+ case 0:
1206
+ //#region @backendFunc
1207
+ this._beforeAnyActionOnGitRoot();
1208
+ return [4 /*yield*/, this.cloneUnexistedLinkedProjects('pull', cloneChildren)];
1209
+ case 1:
1210
+ _a.sent();
1211
+ return [2 /*return*/];
1212
+ }
961
1213
  });
962
1214
  });
963
1215
  };
@@ -1038,16 +1290,40 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1038
1290
  get: function () {
1039
1291
  var self = this;
1040
1292
  return {
1293
+ unstageAllFiles: function () {
1294
+ //#region @backendFunc
1295
+ index_1.Helpers.git.unstageAllFiles(self.location);
1296
+ //#endregion
1297
+ },
1041
1298
  revertFileChanges: function (fileReletivePath) {
1042
1299
  //#region @backendFunc
1043
1300
  index_1.Helpers.git.revertFileChanges(self.location, fileReletivePath);
1044
1301
  //#endregion
1045
1302
  },
1046
- clone: function (url, destinationFolderName) {
1303
+ clone: function (url, destinationFolderName, branchName) {
1047
1304
  if (destinationFolderName === void 0) { destinationFolderName = ''; }
1048
- //#region @backendFunc
1049
- return index_1.Helpers.git.clone({ cwd: self.location, url: url, destinationFolderName: destinationFolderName });
1050
- //#endregion
1305
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
1306
+ var clondeFolderpath, error_2;
1307
+ return tslib_1.__generator(this, function (_a) {
1308
+ switch (_a.label) {
1309
+ case 0:
1310
+ clondeFolderpath = index_1.Helpers.git.clone({ cwd: self.location, url: url, destinationFolderName: destinationFolderName, });
1311
+ if (!branchName) return [3 /*break*/, 4];
1312
+ _a.label = 1;
1313
+ case 1:
1314
+ _a.trys.push([1, 3, , 4]);
1315
+ index_1.Helpers.git.checkout(clondeFolderpath, branchName);
1316
+ return [4 /*yield*/, index_1.Helpers.git.pullCurrentBranch(clondeFolderpath, { askToRetry: true })];
1317
+ case 2:
1318
+ _a.sent();
1319
+ return [3 /*break*/, 4];
1320
+ case 3:
1321
+ error_2 = _a.sent();
1322
+ return [3 /*break*/, 4];
1323
+ case 4: return [2 /*return*/];
1324
+ }
1325
+ });
1326
+ });
1051
1327
  },
1052
1328
  restoreLastVersion: function (localFilePath) {
1053
1329
  //#region @backendFunc
@@ -1084,9 +1360,9 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1084
1360
  return (_a = index_1.Helpers.git).resetFiles.apply(_a, tslib_1.__spreadArray([self.location], tslib_1.__read(relativePathes), false));
1085
1361
  //#endregion
1086
1362
  },
1087
- get isGitRepo() {
1363
+ get isInsideGitRepo() {
1088
1364
  //#region @backendFunc
1089
- return index_1.Helpers.git.isGitRepo(self.location);
1365
+ return index_1.Helpers.git.isInsideGitRepo(self.location);
1090
1366
  //#endregion
1091
1367
  },
1092
1368
  get isGitRoot() {
@@ -1176,6 +1452,11 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1176
1452
  return index_1.Helpers.git.currentBranchName(self.location);
1177
1453
  //#endregion
1178
1454
  },
1455
+ get listOfCurrentGitChanges() {
1456
+ //#region @backendFunc
1457
+ return index_1.Helpers.git.getListOfCurrentGitChanges(self.location);
1458
+ //#endregion
1459
+ },
1179
1460
  getBranchesNamesBy: function (pattern) {
1180
1461
  //#region @backendFunc
1181
1462
  return index_1.Helpers.git.getBranchesNames(self.location, pattern);
@@ -1437,11 +1718,12 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1437
1718
  * get info about porject
1438
1719
  */
1439
1720
  BaseProject.prototype.info = function () {
1721
+ var _a, _b;
1440
1722
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1441
1723
  var proj;
1442
- return tslib_1.__generator(this, function (_a) {
1724
+ return tslib_1.__generator(this, function (_c) {
1443
1725
  proj = this;
1444
- index_1.Helpers.info("\n\n name: ".concat(proj === null || proj === void 0 ? void 0 : proj.name, "\n type: ").concat(proj === null || proj === void 0 ? void 0 : proj.type, "\n children (").concat(proj === null || proj === void 0 ? void 0 : proj.children.length, "): ").concat((!proj || !proj.children.length) ? '< none >' : '', "\n").concat(proj === null || proj === void 0 ? void 0 : proj.children.map(function (c) { return '+' + c.genericName; }).join('\n'), "\n\n\n "));
1726
+ index_1.Helpers.info("\n\n name: ".concat(proj === null || proj === void 0 ? void 0 : proj.name, "\n type: ").concat(proj === null || proj === void 0 ? void 0 : proj.type, "\n children (").concat(proj === null || proj === void 0 ? void 0 : proj.children.length, "): ").concat((!proj || !proj.children.length) ? '< none >' : '', "\n").concat(proj === null || proj === void 0 ? void 0 : proj.children.map(function (c) { return '+' + c.genericName; }).join('\n'), "\n\nlinked porject prefix: \"").concat(this.linkedProjectsPrefix, "\"\n\nlinked projects from json (").concat(((_a = this.linkedProjects) === null || _a === void 0 ? void 0 : _a.length) || 0, "):\n").concat((this.linkedProjects || []).map(function (c) { return '- ' + c.relativeClonePath; }).join('\n'), "\n\nlinked projects detected (").concat(((_b = this.detectedLinkedProjects) === null || _b === void 0 ? void 0 : _b.length) || 0, "):\n").concat((this.detectedLinkedProjects || []).map(function (c) { return '- ' + c.relativeClonePath; }).join('\n'), "\n\n "));
1445
1727
  return [2 /*return*/];
1446
1728
  });
1447
1729
  });
@@ -1616,8 +1898,8 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1616
1898
  BaseProject.prototype.buildLibraries = function (_a) {
1617
1899
  var _b = _a === void 0 ? {} : _a, _c = _b.rebuild, rebuild = _c === void 0 ? false : _c, _d = _b.watch, watch = _d === void 0 ? false : _d, strategy = _b.strategy;
1618
1900
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1619
- var libsToWatch, locationsForNodeModules, libs, _loop_1, this_1, _e, _f, _g, index, lib, _loop_2, _h, _j, _k, index, lib, e_4_1;
1620
- var e_5, _l, e_4, _m;
1901
+ var libsToWatch, locationsForNodeModules, libs, _loop_2, this_2, _e, _f, _g, index, lib, _loop_3, _h, _j, _k, index, lib, e_7_1;
1902
+ var e_8, _l, e_7, _m;
1621
1903
  var _this = this;
1622
1904
  return tslib_1.__generator(this, function (_o) {
1623
1905
  switch (_o.label) {
@@ -1642,14 +1924,14 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1642
1924
  this.run('yarn install', { output: true }).sync();
1643
1925
  }
1644
1926
  libs = this.libraries;
1645
- _loop_1 = function (index, lib) {
1927
+ _loop_2 = function (index, lib) {
1646
1928
  index_1.Helpers.info("Building (".concat(index + 1, "/").concat(libs.length, ") ").concat(lib.basename, " (").concat(tnp_core_1.chalk.bold(lib.name), ")"));
1647
1929
  if (strategy === 'link') {
1648
1930
  (function () {
1649
- var e_6, _a;
1931
+ var e_9, _a;
1650
1932
  var sourceDist = _this.pathFor([tnp_config_1.config.folder.dist, lib.basename]);
1651
1933
  try {
1652
- for (var locationsForNodeModules_1 = (e_6 = void 0, tslib_1.__values(locationsForNodeModules)), locationsForNodeModules_1_1 = locationsForNodeModules_1.next(); !locationsForNodeModules_1_1.done; locationsForNodeModules_1_1 = locationsForNodeModules_1.next()) {
1934
+ for (var locationsForNodeModules_1 = (e_9 = void 0, tslib_1.__values(locationsForNodeModules)), locationsForNodeModules_1_1 = locationsForNodeModules_1.next(); !locationsForNodeModules_1_1.done; locationsForNodeModules_1_1 = locationsForNodeModules_1.next()) {
1653
1935
  var node_modules = locationsForNodeModules_1_1.value;
1654
1936
  var dest = (0, tnp_core_2.crossPlatformPath)([node_modules, lib.name]);
1655
1937
  if (!index_1.Helpers.isSymlinkFileExitedOrUnexisted(dest)) {
@@ -1661,12 +1943,12 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1661
1943
  index_1.Helpers.createSymLink(sourceDist, dest, { continueWhenExistedFolderDoesntExists: true });
1662
1944
  }
1663
1945
  }
1664
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
1946
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
1665
1947
  finally {
1666
1948
  try {
1667
1949
  if (locationsForNodeModules_1_1 && !locationsForNodeModules_1_1.done && (_a = locationsForNodeModules_1.return)) _a.call(locationsForNodeModules_1);
1668
1950
  }
1669
- finally { if (e_6) throw e_6.error; }
1951
+ finally { if (e_9) throw e_9.error; }
1670
1952
  }
1671
1953
  if (rebuild || !index_1.Helpers.exists(sourceDist)) {
1672
1954
  index_1.Helpers.info("Compiling ".concat(lib.name, " ..."));
@@ -1683,11 +1965,11 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1683
1965
  })();
1684
1966
  }
1685
1967
  else if (strategy === 'copy') {
1686
- var sourceDist = this_1.pathFor([tnp_config_1.config.folder.dist, lib.basename]);
1687
- var dest = this_1.pathFor([tnp_config_1.config.folder.node_modules, lib.name]);
1968
+ var sourceDist = this_2.pathFor([tnp_config_1.config.folder.dist, lib.basename]);
1969
+ var dest = this_2.pathFor([tnp_config_1.config.folder.node_modules, lib.name]);
1688
1970
  if (rebuild || !index_1.Helpers.exists(sourceDist)) {
1689
1971
  index_1.Helpers.info("Compiling ".concat(lib.name, " ..."));
1690
- this_1.run(lib.getLibraryBuildComamnd({ watch: false }), { output: true }).sync();
1972
+ this_2.run(lib.getLibraryBuildComamnd({ watch: false }), { output: true }).sync();
1691
1973
  }
1692
1974
  if (index_1.Helpers.isSymlinkFileExitedOrUnexisted(dest)) {
1693
1975
  index_1.Helpers.remove(dest);
@@ -1695,22 +1977,22 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1695
1977
  index_1.Helpers.copy(sourceDist, dest);
1696
1978
  }
1697
1979
  };
1698
- this_1 = this;
1980
+ this_2 = this;
1699
1981
  try {
1700
1982
  for (_e = tslib_1.__values(this.sortedLibrariesByDeps.entries()), _f = _e.next(); !_f.done; _f = _e.next()) {
1701
1983
  _g = tslib_1.__read(_f.value, 2), index = _g[0], lib = _g[1];
1702
- _loop_1(index, lib);
1984
+ _loop_2(index, lib);
1703
1985
  }
1704
1986
  }
1705
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
1987
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
1706
1988
  finally {
1707
1989
  try {
1708
1990
  if (_f && !_f.done && (_l = _e.return)) _l.call(_e);
1709
1991
  }
1710
- finally { if (e_5) throw e_5.error; }
1992
+ finally { if (e_8) throw e_8.error; }
1711
1993
  }
1712
1994
  if (!watch) return [3 /*break*/, 11];
1713
- _loop_2 = function (index, lib) {
1995
+ _loop_3 = function (index, lib) {
1714
1996
  return tslib_1.__generator(this, function (_p) {
1715
1997
  switch (_p.label) {
1716
1998
  case 0:
@@ -1746,7 +2028,7 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1746
2028
  case 4:
1747
2029
  if (!!_j.done) return [3 /*break*/, 7];
1748
2030
  _k = tslib_1.__read(_j.value, 2), index = _k[0], lib = _k[1];
1749
- return [5 /*yield**/, _loop_2(index, lib)];
2031
+ return [5 /*yield**/, _loop_3(index, lib)];
1750
2032
  case 5:
1751
2033
  _o.sent();
1752
2034
  _o.label = 6;
@@ -1755,14 +2037,14 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1755
2037
  return [3 /*break*/, 4];
1756
2038
  case 7: return [3 /*break*/, 10];
1757
2039
  case 8:
1758
- e_4_1 = _o.sent();
1759
- e_4 = { error: e_4_1 };
2040
+ e_7_1 = _o.sent();
2041
+ e_7 = { error: e_7_1 };
1760
2042
  return [3 /*break*/, 10];
1761
2043
  case 9:
1762
2044
  try {
1763
2045
  if (_j && !_j.done && (_m = _h.return)) _m.call(_h);
1764
2046
  }
1765
- finally { if (e_4) throw e_4.error; }
2047
+ finally { if (e_7) throw e_7.error; }
1766
2048
  return [7 /*endfinally*/];
1767
2049
  case 10:
1768
2050
  // await this.__indexRebuilder.startAndWatch({ taskName: 'index rebuild watch' });
@@ -1791,6 +2073,13 @@ var BaseProject = exports.BaseProject = /** @class */ (function () {
1791
2073
  }
1792
2074
  //#endregion
1793
2075
  };
2076
+ //#endregion
2077
+ //#region getters & methods / start npm task
2078
+ BaseProject.prototype.startNpmTask = function (taskName) {
2079
+ //#region @backend
2080
+ return this.run("npm run ".concat(taskName));
2081
+ //#endregion
2082
+ };
1794
2083
  //#region static
1795
2084
  //#region static / instance of resovle
1796
2085
  BaseProject.ins = new base_project_resolver_1.BaseProjectResolver(BaseProject);