tnp-helpers 18.0.21 → 18.0.23

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 (248) 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-npm-helpers.mjs +21 -1
  4. package/browser/esm2022/lib/helpers/helpers.mjs +1 -11
  5. package/browser/fesm2022/tnp-helpers.mjs +20 -12
  6. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  7. package/browser/lib/base/classes/base-npm-helpers.d.ts +3 -0
  8. package/browser/lib/helpers/helpers.d.ts +0 -4
  9. package/client/README.md +24 -24
  10. package/client/esm2022/lib/base/classes/base-npm-helpers.mjs +21 -1
  11. package/client/esm2022/lib/helpers/helpers.mjs +1 -11
  12. package/client/fesm2022/tnp-helpers.mjs +20 -12
  13. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  14. package/client/lib/base/classes/base-npm-helpers.d.ts +3 -0
  15. package/client/lib/helpers/helpers.d.ts +0 -4
  16. package/index.js.map +1 -1
  17. package/lib/base/classes/base-bower-json.js.map +1 -1
  18. package/lib/base/classes/base-cli-worker-config.js.map +1 -1
  19. package/lib/base/classes/base-cli-worker-controller.js.map +1 -1
  20. package/lib/base/classes/base-cli-worker.js.map +1 -1
  21. package/lib/base/classes/base-command-line-feature.backend.js.map +1 -1
  22. package/lib/base/classes/base-compiler-for-project.js.map +1 -1
  23. package/lib/base/classes/base-db.js.map +1 -1
  24. package/lib/base/classes/base-debounce-compiler-for-project.js.map +1 -1
  25. package/lib/base/classes/base-detached-service.d.ts +1 -2
  26. package/lib/base/classes/base-detached-service.js +6 -10
  27. package/lib/base/classes/base-detached-service.js.map +1 -1
  28. package/lib/base/classes/base-feature-for-project.js.map +1 -1
  29. package/lib/base/classes/base-git.js.map +1 -1
  30. package/lib/base/classes/base-global-command-line.backend.d.ts +2 -0
  31. package/lib/base/classes/base-global-command-line.backend.js +12 -0
  32. package/lib/base/classes/base-global-command-line.backend.js.map +1 -1
  33. package/lib/base/classes/base-ignore-hide.js.map +1 -1
  34. package/lib/base/classes/base-json-file-reader.js.map +1 -1
  35. package/lib/base/classes/base-library-build.js.map +1 -1
  36. package/lib/base/classes/base-linked-projects.js.map +1 -1
  37. package/lib/base/classes/base-node-modules.js.map +1 -1
  38. package/lib/base/classes/base-npm-helpers.d.ts +3 -0
  39. package/lib/base/classes/base-npm-helpers.js +18 -0
  40. package/lib/base/classes/base-npm-helpers.js.map +1 -1
  41. package/lib/base/classes/base-package-json.js.map +1 -1
  42. package/lib/base/classes/base-process-manager.js.map +1 -1
  43. package/lib/base/classes/base-project-resolver.js.map +1 -1
  44. package/lib/base/classes/base-project.js.map +1 -1
  45. package/lib/base/classes/base-quick-fixes.js.map +1 -1
  46. package/lib/base/classes/base-release-process.js.map +1 -1
  47. package/lib/base/classes/base-start-config.backend.js +0 -7
  48. package/lib/base/classes/base-start-config.backend.js.map +1 -1
  49. package/lib/base/classes/base-static-pages.js.map +1 -1
  50. package/lib/base/classes/base-vscode.js.map +1 -1
  51. package/lib/base/classes/index.js.map +1 -1
  52. package/lib/base/commit-data.js.map +1 -1
  53. package/lib/base/config-database.js.map +1 -1
  54. package/lib/base/core-project.js.map +1 -1
  55. package/lib/base/gh-temp-code.js.map +1 -1
  56. package/lib/base/index-rebuilder.backend.d.ts +0 -1
  57. package/lib/base/index-rebuilder.backend.js.map +1 -1
  58. package/lib/base/index.js.map +1 -1
  59. package/lib/base/linked-project.js.map +1 -1
  60. package/lib/base/project-database.js.map +1 -1
  61. package/lib/base/tcp-udp-ports/index.js.map +1 -1
  62. package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +0 -1
  63. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -2
  64. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -1
  65. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -1
  66. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -1
  67. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -1
  68. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -1
  69. package/lib/base/translate.js.map +1 -1
  70. package/lib/build-info._auto-generated_.js.map +1 -1
  71. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  72. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  73. package/lib/helpers/for-backend/helpers-dependencies.backend.js.map +1 -1
  74. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
  75. package/lib/helpers/for-backend/helpers-git.backend.js +12 -8
  76. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  77. package/lib/helpers/for-backend/helpers-network.backend.js.map +1 -1
  78. package/lib/helpers/for-backend/helpers-npm.backend.js.map +1 -1
  79. package/lib/helpers/for-backend/helpers-path.backend.js.map +1 -1
  80. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  81. package/lib/helpers/for-backend/helpers-system-terminal.backend.js.map +1 -1
  82. package/lib/helpers/for-backend/helpers-vscode.backend.js.map +1 -1
  83. package/lib/helpers/for-browser/angular.helper.js +2 -2
  84. package/lib/helpers/for-browser/angular.helper.js.map +1 -1
  85. package/lib/helpers/for-browser/helpers-browser.js.map +1 -1
  86. package/lib/helpers/helpers-array-obj.js.map +1 -1
  87. package/lib/helpers/helpers-json5.backend.js.map +1 -1
  88. package/lib/helpers/helpers-numbers.js.map +1 -1
  89. package/lib/helpers/helpers-strings-regexes.js.map +1 -1
  90. package/lib/helpers/helpers-strings.js.map +1 -1
  91. package/lib/helpers/helpers.d.ts +0 -4
  92. package/lib/helpers/helpers.js +0 -15
  93. package/lib/helpers/helpers.js.map +1 -1
  94. package/lib/index._auto-generated_.d.ts +0 -1
  95. package/lib/index._auto-generated_.js.map +1 -1
  96. package/lib/index.js.map +1 -1
  97. package/lib/lowdb/adapters/Memory.js.map +1 -1
  98. package/lib/lowdb/adapters/browser/LocalStorage.js.map +1 -1
  99. package/lib/lowdb/adapters/browser/SessionStorage.js.map +1 -1
  100. package/lib/lowdb/adapters/browser/WebStorage.js.map +1 -1
  101. package/lib/lowdb/adapters/node/DataFile.js.map +1 -1
  102. package/lib/lowdb/adapters/node/JSONFile.js.map +1 -1
  103. package/lib/lowdb/adapters/node/TextFile.js.map +1 -1
  104. package/lib/lowdb/adapters/node/steno.js.map +1 -1
  105. package/lib/lowdb/browser.js.map +1 -1
  106. package/lib/lowdb/core/Low.js.map +1 -1
  107. package/lib/lowdb/examples/browser.js.map +1 -1
  108. package/lib/lowdb/examples/cli.d.ts +0 -1
  109. package/lib/lowdb/examples/cli.js.map +1 -1
  110. package/lib/lowdb/examples/in-memory.d.ts +0 -1
  111. package/lib/lowdb/examples/in-memory.js.map +1 -1
  112. package/lib/lowdb/examples/server.d.ts +0 -1
  113. package/lib/lowdb/examples/server.js.map +1 -1
  114. package/lib/lowdb/index.js.map +1 -1
  115. package/lib/lowdb/node.js.map +1 -1
  116. package/lib/lowdb/presets/browser.js.map +1 -1
  117. package/lib/lowdb/presets/node.js.map +1 -1
  118. package/lib/models.js.map +1 -1
  119. package/lib/old/base-component.d.ts +0 -1
  120. package/lib/old/base-component.js +2 -2
  121. package/lib/old/base-component.js.map +1 -1
  122. package/lib/old/base-formly-component.d.ts +0 -1
  123. package/lib/old/base-formly-component.js +2 -2
  124. package/lib/old/base-formly-component.js.map +1 -1
  125. package/lib/old/condition-wait.d.ts +0 -1
  126. package/lib/old/condition-wait.js.map +1 -1
  127. package/lib/old/dual-component-ctrl.d.ts +0 -1
  128. package/lib/old/dual-component-ctrl.js +2 -2
  129. package/lib/old/dual-component-ctrl.js.map +1 -1
  130. package/lib/old/execute-command.js.map +1 -1
  131. package/lib/old/helpers.js.map +1 -1
  132. package/lib/old/models.js.map +1 -1
  133. package/lib/utils.js.map +1 -1
  134. package/lib/validators/validators-firedev.js.map +1 -1
  135. package/lib/validators/validators-git.js.map +1 -1
  136. package/lib/validators/validators-network.js.map +1 -1
  137. package/lib/validators/validators.js.map +1 -1
  138. package/migrations/1736198527297_init.js.map +1 -1
  139. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -1
  140. package/migrations/1736454437350_addFreePorts.js.map +1 -1
  141. package/migrations/index.js.map +1 -1
  142. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  143. package/package.json +4 -4
  144. package/taon.jsonc +33 -33
  145. package/tmp-environment.json +3 -3
  146. package/websql/README.md +24 -24
  147. package/websql/esm2022/lib/base/classes/base-npm-helpers.mjs +21 -1
  148. package/websql/esm2022/lib/helpers/helpers.mjs +1 -11
  149. package/websql/fesm2022/tnp-helpers.mjs +20 -12
  150. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  151. package/websql/lib/base/classes/base-npm-helpers.d.ts +3 -0
  152. package/websql/lib/helpers/helpers.d.ts +0 -4
  153. package/lib/base/base-cli-worker-config.d.ts +0 -27
  154. package/lib/base/base-cli-worker-config.js +0 -53
  155. package/lib/base/base-cli-worker-config.js.map +0 -1
  156. package/lib/base/base-cli-worker-controller.d.ts +0 -15
  157. package/lib/base/base-cli-worker-controller.js +0 -154
  158. package/lib/base/base-cli-worker-controller.js.map +0 -1
  159. package/lib/base/base-cli-worker.d.ts +0 -82
  160. package/lib/base/base-cli-worker.js +0 -654
  161. package/lib/base/base-cli-worker.js.map +0 -1
  162. package/lib/base/base-command-line.backend.d.ts +0 -174
  163. package/lib/base/base-command-line.backend.js +0 -2221
  164. package/lib/base/base-command-line.backend.js.map +0 -1
  165. package/lib/base/base-compiler-for-project.d.ts +0 -7
  166. package/lib/base/base-compiler-for-project.js +0 -62
  167. package/lib/base/base-compiler-for-project.js.map +0 -1
  168. package/lib/base/base-db.d.ts +0 -12
  169. package/lib/base/base-db.js +0 -74
  170. package/lib/base/base-db.js.map +0 -1
  171. package/lib/base/base-debounce-compiler-for-project.d.ts +0 -28
  172. package/lib/base/base-debounce-compiler-for-project.js +0 -82
  173. package/lib/base/base-debounce-compiler-for-project.js.map +0 -1
  174. package/lib/base/base-detached-service.d.ts +0 -6
  175. package/lib/base/base-detached-service.js +0 -16
  176. package/lib/base/base-detached-service.js.map +0 -1
  177. package/lib/base/base-feature-for-project.d.ts +0 -5
  178. package/lib/base/base-feature-for-project.js +0 -11
  179. package/lib/base/base-feature-for-project.js.map +0 -1
  180. package/lib/base/base-git.d.ts +0 -148
  181. package/lib/base/base-git.js +0 -1202
  182. package/lib/base/base-git.js.map +0 -1
  183. package/lib/base/base-github-pages.d.ts +0 -14
  184. package/lib/base/base-github-pages.js +0 -173
  185. package/lib/base/base-github-pages.js.map +0 -1
  186. package/lib/base/base-ignore-hide.d.ts +0 -14
  187. package/lib/base/base-ignore-hide.js +0 -55
  188. package/lib/base/base-ignore-hide.js.map +0 -1
  189. package/lib/base/base-library-build.d.ts +0 -65
  190. package/lib/base/base-library-build.js +0 -717
  191. package/lib/base/base-library-build.js.map +0 -1
  192. package/lib/base/base-linked-projects.d.ts +0 -24
  193. package/lib/base/base-linked-projects.js +0 -408
  194. package/lib/base/base-linked-projects.js.map +0 -1
  195. package/lib/base/base-npm-helpers.d.ts +0 -128
  196. package/lib/base/base-npm-helpers.js +0 -774
  197. package/lib/base/base-npm-helpers.js.map +0 -1
  198. package/lib/base/base-project-resolver.d.ts +0 -41
  199. package/lib/base/base-project-resolver.js +0 -308
  200. package/lib/base/base-project-resolver.js.map +0 -1
  201. package/lib/base/base-project.d.ts +0 -244
  202. package/lib/base/base-project.js +0 -1223
  203. package/lib/base/base-project.js.map +0 -1
  204. package/lib/base/base-quick-fixes.d.ts +0 -6
  205. package/lib/base/base-quick-fixes.js +0 -31
  206. package/lib/base/base-quick-fixes.js.map +0 -1
  207. package/lib/base/base-release-process.d.ts +0 -69
  208. package/lib/base/base-release-process.js +0 -913
  209. package/lib/base/base-release-process.js.map +0 -1
  210. package/lib/base/base-start-config.backend.d.ts +0 -36
  211. package/lib/base/base-start-config.backend.js +0 -167
  212. package/lib/base/base-start-config.backend.js.map +0 -1
  213. package/lib/base/base-vscode.d.ts +0 -12
  214. package/lib/base/base-vscode.js +0 -139
  215. package/lib/base/base-vscode.js.map +0 -1
  216. package/lib/base/classes/base-command-line.backend.d.ts +0 -175
  217. package/lib/base/classes/base-command-line.backend.js +0 -2235
  218. package/lib/base/classes/base-command-line.backend.js.map +0 -1
  219. package/lib/base/classes/base-github-pages.d.ts +0 -14
  220. package/lib/base/classes/base-github-pages.js +0 -173
  221. package/lib/base/classes/base-github-pages.js.map +0 -1
  222. package/lib/base/classes/index copy.d.ts +0 -22
  223. package/lib/base/classes/index copy.js +0 -28
  224. package/lib/base/classes/index copy.js.map +0 -1
  225. package/lib/base/command-line-feature.backend.d.ts +0 -51
  226. package/lib/base/command-line-feature.backend.js +0 -206
  227. package/lib/base/command-line-feature.backend.js.map +0 -1
  228. package/lib/base/ports-worker.d.ts +0 -32
  229. package/lib/base/ports-worker.js +0 -244
  230. package/lib/base/ports-worker.js.map +0 -1
  231. package/lib/base/tcp-udp-ports/port.entity.d.ts +0 -0
  232. package/lib/base/tcp-udp-ports/port.entity.js +0 -5
  233. package/lib/base/tcp-udp-ports/port.entity.js.map +0 -1
  234. package/lib/base/tcp-upd-ports.worker.d.ts +0 -13
  235. package/lib/base/tcp-upd-ports.worker.js +0 -99
  236. package/lib/base/tcp-upd-ports.worker.js.map +0 -1
  237. package/lib/helpers/for-backend/ts-code/index.d.ts +0 -1
  238. package/lib/helpers/for-backend/ts-code/index.js +0 -5
  239. package/lib/helpers/for-backend/ts-code/index.js.map +0 -1
  240. package/lib/helpers/for-backend/ts-code/ts-code-extractor.d.ts +0 -26
  241. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js +0 -62
  242. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js.map +0 -1
  243. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.d.ts +0 -19
  244. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js +0 -81
  245. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js.map +0 -1
  246. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.d.ts +0 -29
  247. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js +0 -81
  248. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js.map +0 -1
@@ -1,913 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseReleaseProcess = void 0;
4
- var tslib_1 = require("tslib");
5
- //#endregion
6
- var index_1 = require("../index");
7
- var base_feature_for_project_1 = require("./base-feature-for-project");
8
- var tnp_core_1 = require("tnp-core");
9
- var commit_data_1 = require("./commit-data");
10
- var tnp_config_1 = require("tnp-config");
11
- //#endregion
12
- var BaseReleaseProcess = /** @class */ (function (_super) {
13
- tslib_1.__extends(BaseReleaseProcess, _super);
14
- function BaseReleaseProcess() {
15
- var _this = _super.apply(this, tslib_1.__spreadArray([], tslib_1.__read(arguments), false)) || this;
16
- /**
17
- * Automatic release process of patch plus one version
18
- */
19
- _this.automaticRelease = false;
20
- _this.commitsForChangelog = [];
21
- return _this;
22
- //#endregion
23
- }
24
- //#endregion
25
- BaseReleaseProcess.prototype.getReleaseWords = function () {
26
- return ['release'];
27
- };
28
- //#region methods & getters / start release
29
- BaseReleaseProcess.prototype.startRelease = function (options) {
30
- return tslib_1.__awaiter(this, void 0, void 0, function () {
31
- var _a, _b, _c, _d, _e, _f;
32
- return tslib_1.__generator(this, function (_g) {
33
- switch (_g.label) {
34
- case 0:
35
- if (!true) return [3 /*break*/, 17];
36
- index_1.Helpers.clearConsole();
37
- this.newVersion = options === null || options === void 0 ? void 0 : options.newVersion;
38
- this.automaticRelease = (options === null || options === void 0 ? void 0 : options.automaticRelease) || false;
39
- return [4 /*yield*/, this.resetReleaseFiles()];
40
- case 1:
41
- _g.sent();
42
- this.project.npmHelpers.reloadPackageJsonInMemory();
43
- _a = this;
44
- return [4 /*yield*/, this.generateLastChangesSummary()];
45
- case 2:
46
- _a.lastChangesSummary = _g.sent();
47
- _c = (_b = console).log;
48
- _d = "".concat(tnp_core_1.chalk.bold.underline("Release process for ".concat(this.project.name)), ":\n");
49
- return [4 /*yield*/, this.lastChangesSummary];
50
- case 3:
51
- _c.apply(_b, [_d +
52
- (_g.sent())]);
53
- _e = this;
54
- return [4 /*yield*/, this.selectReleaseType()];
55
- case 4:
56
- _e.type = _g.sent();
57
- return [4 /*yield*/, this.confirmNewVersion()];
58
- case 5:
59
- _g.sent();
60
- _f = this;
61
- return [4 /*yield*/, this.selectChangelogCommits()];
62
- case 6:
63
- _f.commitsForChangelog = _g.sent();
64
- return [4 /*yield*/, this.updateChangeLogFromCommits()];
65
- case 7:
66
- _g.sent();
67
- return [4 /*yield*/, this.bumpNewVersionEverywhere()];
68
- case 8:
69
- _g.sent();
70
- return [4 /*yield*/, this.buildAllLibraries()];
71
- case 9:
72
- _g.sent();
73
- return [4 /*yield*/, this.testBeforePublish()];
74
- case 10:
75
- if (!(_g.sent())) {
76
- return [3 /*break*/, 0];
77
- }
78
- return [4 /*yield*/, this.publishToNpm()];
79
- case 11:
80
- if (!(_g.sent())) {
81
- return [3 /*break*/, 0];
82
- }
83
- return [4 /*yield*/, this.reinstallNodeModules()];
84
- case 12:
85
- _g.sent();
86
- return [4 /*yield*/, this.testAfterPublish()];
87
- case 13:
88
- if (!(_g.sent())) {
89
- return [3 /*break*/, 0];
90
- }
91
- return [4 /*yield*/, this.project.git.stageAllFiles()];
92
- case 14:
93
- _g.sent();
94
- return [4 /*yield*/, this.project.git.restoreLastVersion(tnp_config_1.config.file._gitignore)];
95
- case 15:
96
- _g.sent();
97
- return [4 /*yield*/, this.commitAndPush()];
98
- case 16:
99
- _g.sent();
100
- return [3 /*break*/, 17];
101
- case 17: return [2 /*return*/];
102
- }
103
- });
104
- });
105
- };
106
- //#endregion
107
- //#region methods & getters / reinstall node modules
108
- BaseReleaseProcess.prototype.reinstallNodeModules = function () {
109
- return tslib_1.__awaiter(this, void 0, void 0, function () {
110
- return tslib_1.__generator(this, function (_a) {
111
- switch (_a.label) {
112
- case 0:
113
- index_1.Helpers.taskStarted("Reinstalling node_modules to recreate package-lock.json");
114
- return [4 /*yield*/, this.project.npmHelpers.reinstallNodeModules()];
115
- case 1:
116
- _a.sent();
117
- index_1.Helpers.taskDone("Reinstalling node_modules to recreate package-lock.json");
118
- return [2 /*return*/];
119
- }
120
- });
121
- });
122
- };
123
- //#endregion
124
- //#region methods & getters / select changelog commits
125
- BaseReleaseProcess.prototype.selectChangelogCommits = function () {
126
- return tslib_1.__awaiter(this, void 0, void 0, function () {
127
- var data, useAllCommitsForChangelog, choices;
128
- return tslib_1.__generator(this, function (_a) {
129
- switch (_a.label) {
130
- case 0: return [4 /*yield*/, this.getCommitsUpToReleaseCommit()];
131
- case 1:
132
- data = _a.sent();
133
- index_1.Helpers.info("Last commits up to release commiut:\n" +
134
- data.map(function (d) { return "- ".concat(d.commitMessages); }).join('\n'));
135
- return [4 /*yield*/, index_1.Helpers.questionYesNo('Use all commits for changelog ?')];
136
- case 2:
137
- useAllCommitsForChangelog = _a.sent();
138
- if (useAllCommitsForChangelog) {
139
- return [2 /*return*/, data];
140
- }
141
- return [4 /*yield*/, index_1.Helpers.consoleGui.multiselect('Select commits to add to changelog', data.map(function (d) {
142
- var _a;
143
- return {
144
- name: d.commitMessages,
145
- value: (_a = d.index) === null || _a === void 0 ? void 0 : _a.toString(),
146
- };
147
- }))];
148
- case 3:
149
- choices = _a.sent();
150
- return [2 /*return*/, choices.map(function (v) {
151
- return data.find(function (d) { return d.index.toString() === v; });
152
- })];
153
- }
154
- });
155
- });
156
- };
157
- //#endregion
158
- //#region methods & getters / get commits up to release commit
159
- BaseReleaseProcess.prototype.getCommitsUpToReleaseCommit = function () {
160
- return tslib_1.__awaiter(this, void 0, void 0, function () {
161
- var lastReleaseCommitData, commits, index, commitMessages;
162
- return tslib_1.__generator(this, function (_a) {
163
- switch (_a.label) {
164
- case 0: return [4 /*yield*/, this.getLastReleaseCommitData()];
165
- case 1:
166
- lastReleaseCommitData = _a.sent();
167
- if (!(lastReleaseCommitData.index !== -1)) return [3 /*break*/, 6];
168
- commits = [];
169
- index = 0;
170
- _a.label = 2;
171
- case 2:
172
- if (!(index < lastReleaseCommitData.index)) return [3 /*break*/, 5];
173
- return [4 /*yield*/, this.project.git.getCommitMessageByIndex(index)];
174
- case 3:
175
- commitMessages = _a.sent();
176
- commits.push({ commitMessages: commitMessages, index: index });
177
- _a.label = 4;
178
- case 4:
179
- index++;
180
- return [3 /*break*/, 2];
181
- case 5: return [2 /*return*/, commits];
182
- case 6: return [2 /*return*/, []];
183
- }
184
- });
185
- });
186
- };
187
- //#endregion
188
- //#region methods & getters / publish to npm
189
- BaseReleaseProcess.prototype.publishToNpm = function () {
190
- return tslib_1.__awaiter(this, void 0, void 0, function () {
191
- var editor, error_1;
192
- return tslib_1.__generator(this, function (_a) {
193
- switch (_a.label) {
194
- case 0:
195
- if (!!this.automaticRelease) return [3 /*break*/, 7];
196
- return [4 /*yield*/, index_1.Helpers.questionYesNo("Publish packages to npm (yes) ? ..or it's just a version bump (no)")];
197
- case 1:
198
- if (!(_a.sent())) {
199
- return [2 /*return*/, true];
200
- }
201
- return [4 /*yield*/, index_1.Helpers.questionYesNo("Preview compiled code before publish ?")];
202
- case 2:
203
- if (!_a.sent()) return [3 /*break*/, 7];
204
- _a.label = 3;
205
- case 3:
206
- _a.trys.push([3, 5, , 6]);
207
- return [4 /*yield*/, this.project.ins.configDb.getCodeEditor()];
208
- case 4:
209
- editor = _a.sent();
210
- this.project.run("cd dist && ".concat(editor, " ."), { output: true }).sync();
211
- return [3 /*break*/, 6];
212
- case 5:
213
- error_1 = _a.sent();
214
- return [3 /*break*/, 6];
215
- case 6:
216
- index_1.Helpers.pressKeyOrWait("Press any key to continue");
217
- _a.label = 7;
218
- case 7: return [4 /*yield*/, index_1.Helpers.questionYesNo("Publish ".concat(this.newVersion, " to npm ?"))];
219
- case 8:
220
- if (!(_a.sent())) {
221
- return [2 /*return*/, false];
222
- }
223
- return [4 /*yield*/, this.project.publish()];
224
- case 9:
225
- _a.sent();
226
- return [2 /*return*/, true];
227
- }
228
- });
229
- });
230
- };
231
- //#endregion
232
- //#region methods & getters / test after publish
233
- BaseReleaseProcess.prototype.testAfterPublish = function () {
234
- return tslib_1.__awaiter(this, void 0, void 0, function () {
235
- return tslib_1.__generator(this, function (_a) {
236
- switch (_a.label) {
237
- case 0:
238
- if (!!this.automaticRelease) return [3 /*break*/, 3];
239
- return [4 /*yield*/, index_1.Helpers.questionYesNo("Do you want to run test after fresh install (and before release commit ?) ?")];
240
- case 1:
241
- if (!_a.sent()) return [3 /*break*/, 3];
242
- return [4 /*yield*/, this.testLibraries()];
243
- case 2:
244
- if (!(_a.sent())) {
245
- index_1.Helpers.pressKeyOrWait("Test failed.. starting release again.. press any key to continue");
246
- return [2 /*return*/, false];
247
- }
248
- _a.label = 3;
249
- case 3: return [2 /*return*/, true];
250
- }
251
- });
252
- });
253
- };
254
- //#endregion
255
- //#region methods & getters / test before publish
256
- BaseReleaseProcess.prototype.testBeforePublish = function () {
257
- return tslib_1.__awaiter(this, void 0, void 0, function () {
258
- return tslib_1.__generator(this, function (_a) {
259
- switch (_a.label) {
260
- case 0:
261
- if (!!this.automaticRelease) return [3 /*break*/, 3];
262
- return [4 /*yield*/, index_1.Helpers.questionYesNo("Do you want to run test before npm publish ?")];
263
- case 1:
264
- if (!_a.sent()) return [3 /*break*/, 3];
265
- return [4 /*yield*/, this.testLibraries()];
266
- case 2:
267
- if (!(_a.sent())) {
268
- index_1.Helpers.pressKeyOrWait("Test failed.. starting release again.. press any key to continue");
269
- return [2 /*return*/, false];
270
- }
271
- _a.label = 3;
272
- case 3: return [2 /*return*/, true];
273
- }
274
- });
275
- });
276
- };
277
- //#endregion
278
- //#region methods & getters / commit and push
279
- BaseReleaseProcess.prototype.commitAndPush = function () {
280
- return tslib_1.__awaiter(this, void 0, void 0, function () {
281
- var releaseCommitMessage, lastCommitMessage, jiraNumbers, args;
282
- return tslib_1.__generator(this, function (_a) {
283
- switch (_a.label) {
284
- case 0:
285
- releaseCommitMessage = this.releaseCommitTemplate();
286
- return [4 /*yield*/, this.project.git.penultimateCommitMessage()];
287
- case 1:
288
- lastCommitMessage = _a.sent();
289
- jiraNumbers = commit_data_1.CommitData.extractAndOrderJiraNumbers(lastCommitMessage);
290
- args = [jiraNumbers.join(' ') + ' ' + releaseCommitMessage];
291
- // console.log({ jiraNumbers, args, lastCommitMessage });
292
- return [4 /*yield*/, this.project.git.pushProcess({
293
- typeofCommit: 'release',
294
- askToConfirmPush: true,
295
- askToConfirmBranchChange: true,
296
- askToConfirmCommit: true,
297
- skipLint: true,
298
- args: args,
299
- exitCallBack: function () {
300
- process.exit(1);
301
- },
302
- })];
303
- case 2:
304
- // console.log({ jiraNumbers, args, lastCommitMessage });
305
- _a.sent();
306
- return [2 /*return*/];
307
- }
308
- });
309
- });
310
- };
311
- //#endregion
312
- //#region methods & getters / release commit template
313
- BaseReleaseProcess.prototype.releaseCommitTemplate = function () {
314
- return "Release v".concat(this.newVersion, " + changelog.md update");
315
- };
316
- //#endregion
317
- //#region methods & getters / test libraries
318
- BaseReleaseProcess.prototype.testLibraries = function () {
319
- return tslib_1.__awaiter(this, void 0, void 0, function () {
320
- return tslib_1.__generator(this, function (_a) {
321
- try {
322
- this.project.run('npm run test', { output: true }).sync();
323
- return [2 /*return*/, true];
324
- }
325
- catch (error) {
326
- index_1.Helpers.info("Test failed, you can run test manually");
327
- return [2 /*return*/, false];
328
- }
329
- return [2 /*return*/];
330
- });
331
- });
332
- };
333
- //#endregion
334
- //#region methods & getters / build all libraries
335
- BaseReleaseProcess.prototype.buildAllLibraries = function () {
336
- return tslib_1.__awaiter(this, void 0, void 0, function () {
337
- return tslib_1.__generator(this, function (_a) {
338
- switch (_a.label) {
339
- case 0: return [4 /*yield*/, this.project.libraryBuild.buildLibraries({
340
- watch: false,
341
- releaseBuild: true,
342
- buildType: 'angular',
343
- })];
344
- case 1:
345
- _a.sent();
346
- return [2 /*return*/];
347
- }
348
- });
349
- });
350
- };
351
- //#endregion
352
- //#region methods & getters / reset release files
353
- BaseReleaseProcess.prototype.resetReleaseFiles = function () {
354
- return tslib_1.__awaiter(this, void 0, void 0, function () {
355
- var _a, _b, projToBump;
356
- var e_1, _c;
357
- return tslib_1.__generator(this, function (_d) {
358
- //#region @backendFunc
359
- this.project.git.restoreLastVersion(this.changeLogPath);
360
- try {
361
- for (_a = tslib_1.__values(this.toBumpProjects), _b = _a.next(); !_b.done; _b = _a.next()) {
362
- projToBump = _b.value;
363
- projToBump.git.restoreLastVersion(tnp_config_1.config.file.package_json);
364
- projToBump.git.restoreLastVersion(tnp_config_1.config.file.package_lock_json);
365
- }
366
- }
367
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
368
- finally {
369
- try {
370
- if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
371
- }
372
- finally { if (e_1) throw e_1.error; }
373
- }
374
- return [2 /*return*/];
375
- });
376
- });
377
- };
378
- Object.defineProperty(BaseReleaseProcess.prototype, "toBumpProjects", {
379
- //#endregion
380
- //#region methods & getters / to bump projects
381
- get: function () {
382
- var toBumpProjects = tslib_1.__spreadArray([
383
- this.project
384
- ], tslib_1.__read(this.project.libraryBuild.libraries), false);
385
- return toBumpProjects;
386
- },
387
- enumerable: false,
388
- configurable: true
389
- });
390
- //#endregion
391
- //#region methods & getters / bump new version everywhere
392
- BaseReleaseProcess.prototype.bumpNewVersionEverywhere = function () {
393
- return tslib_1.__awaiter(this, void 0, void 0, function () {
394
- var allLibrariesNames, _a, _b, projToBump, allLibrariesNames_1, allLibrariesNames_1_1, libName;
395
- var e_2, _c, e_3, _d;
396
- return tslib_1.__generator(this, function (_e) {
397
- allLibrariesNames = this.project.libraryBuild.libraries.map(function (l) { return l.name; });
398
- try {
399
- for (_a = tslib_1.__values(this.toBumpProjects), _b = _a.next(); !_b.done; _b = _a.next()) {
400
- projToBump = _b.value;
401
- projToBump.npmHelpers.version = this.newVersion;
402
- try {
403
- for (allLibrariesNames_1 = (e_3 = void 0, tslib_1.__values(allLibrariesNames)), allLibrariesNames_1_1 = allLibrariesNames_1.next(); !allLibrariesNames_1_1.done; allLibrariesNames_1_1 = allLibrariesNames_1.next()) {
404
- libName = allLibrariesNames_1_1.value;
405
- projToBump.npmHelpers.updateDependency({
406
- packageName: libName,
407
- version: (this.project.location === projToBump.location ? '' : '^') +
408
- this.newVersion,
409
- });
410
- }
411
- }
412
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
413
- finally {
414
- try {
415
- if (allLibrariesNames_1_1 && !allLibrariesNames_1_1.done && (_d = allLibrariesNames_1.return)) _d.call(allLibrariesNames_1);
416
- }
417
- finally { if (e_3) throw e_3.error; }
418
- }
419
- }
420
- }
421
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
422
- finally {
423
- try {
424
- if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
425
- }
426
- finally { if (e_2) throw e_2.error; }
427
- }
428
- return [2 /*return*/];
429
- });
430
- });
431
- };
432
- //#endregion
433
- //#region methods & getters / confirm release type
434
- BaseReleaseProcess.prototype.confirmNewVersion = function () {
435
- return tslib_1.__awaiter(this, void 0, void 0, function () {
436
- var newVersion, originalNewVersion, confirm_1;
437
- return tslib_1.__generator(this, function (_a) {
438
- switch (_a.label) {
439
- case 0:
440
- //#region @backendFunc
441
- if (this.automaticRelease) {
442
- return [2 /*return*/];
443
- }
444
- newVersion = this.newVersion;
445
- if (!this.newVersion) {
446
- newVersion = this.project.npmHelpers.versionWithPatchPlusOne;
447
- if (this.type === 'minor') {
448
- newVersion =
449
- this.project.npmHelpers.versionWithMinorPlusOneAndPatchZero;
450
- }
451
- if (this.type === 'major') {
452
- newVersion =
453
- this.project.npmHelpers
454
- .versionWithMajorPlusOneAndMinorZeroAndPatchZero;
455
- }
456
- }
457
- originalNewVersion = newVersion;
458
- _a.label = 1;
459
- case 1:
460
- if (!true) return [3 /*break*/, 6];
461
- index_1.Helpers.info("New version will be: ".concat(newVersion));
462
- return [4 /*yield*/, index_1.Helpers.questionYesNo('Do you want to continue? (no -> edit version manually) ')];
463
- case 2:
464
- confirm_1 = _a.sent();
465
- if (!confirm_1) return [3 /*break*/, 3];
466
- return [3 /*break*/, 6];
467
- case 3: return [4 /*yield*/, index_1.Helpers.consoleGui.input({
468
- question: 'Provide proper new version and press enter',
469
- defaultValue: originalNewVersion,
470
- validate: function (value) {
471
- var regexForValidationNpmVersionWithPossiblePreRelease = /^(\d+\.\d+\.\d+)(\-[a-zA-Z0-9]+)?$/;
472
- return regexForValidationNpmVersionWithPossiblePreRelease.test(value);
473
- },
474
- })];
475
- case 4:
476
- newVersion = _a.sent();
477
- _a.label = 5;
478
- case 5: return [3 /*break*/, 1];
479
- case 6:
480
- this.newVersion = newVersion;
481
- return [2 /*return*/];
482
- }
483
- });
484
- });
485
- };
486
- //#endregion
487
- //#region methods & getters / select release type
488
- BaseReleaseProcess.prototype.selectReleaseType = function () {
489
- return tslib_1.__awaiter(this, void 0, void 0, function () {
490
- var options, selected;
491
- return tslib_1.__generator(this, function (_a) {
492
- switch (_a.label) {
493
- case 0:
494
- //#region @backendFunc
495
- if (this.automaticRelease) {
496
- return [2 /*return*/, 'patch'];
497
- }
498
- options = [
499
- {
500
- name: "Patch release (v".concat(this.project.npmHelpers.versionWithPatchPlusOne, ")"),
501
- value: 'patch',
502
- },
503
- {
504
- name: "Minor release (v".concat(this.project.npmHelpers.versionWithMinorPlusOneAndPatchZero, ")"),
505
- value: 'minor',
506
- },
507
- {
508
- name: "Major release (v".concat(this.project.npmHelpers.versionWithMajorPlusOneAndMinorZeroAndPatchZero, ")"),
509
- value: 'major',
510
- },
511
- ];
512
- return [4 /*yield*/, index_1.Helpers.consoleGui.select('Select release type', options)];
513
- case 1:
514
- selected = _a.sent();
515
- return [2 /*return*/, selected];
516
- }
517
- });
518
- });
519
- };
520
- //#endregion
521
- //#region methods & getters / commit message in changelog transform fn
522
- BaseReleaseProcess.prototype.commitMessageInChangelogTransformFn = function (message) {
523
- return tslib_1.__awaiter(this, void 0, void 0, function () {
524
- return tslib_1.__generator(this, function (_a) {
525
- return [2 /*return*/, message];
526
- });
527
- });
528
- };
529
- //#endregion
530
- //#region methods & getters / caclulate item
531
- BaseReleaseProcess.prototype.getChangelogContentToAppend = function (askForEveryItem) {
532
- return tslib_1.__awaiter(this, void 0, void 0, function () {
533
- var newChangeLogContentToAdd, _a, _b, commit, template, e_4_1, thingsToAddToChangeLog;
534
- var e_4, _c;
535
- return tslib_1.__generator(this, function (_d) {
536
- switch (_d.label) {
537
- case 0:
538
- newChangeLogContentToAdd = '';
539
- _d.label = 1;
540
- case 1:
541
- _d.trys.push([1, 6, 7, 8]);
542
- _a = tslib_1.__values(this.commitsForChangelog), _b = _a.next();
543
- _d.label = 2;
544
- case 2:
545
- if (!!_b.done) return [3 /*break*/, 5];
546
- commit = _b.value;
547
- return [4 /*yield*/, this.changelogItemTemplate(commit.index, askForEveryItem)];
548
- case 3:
549
- template = (_d.sent()) +
550
- '\n';
551
- newChangeLogContentToAdd += template;
552
- _d.label = 4;
553
- case 4:
554
- _b = _a.next();
555
- return [3 /*break*/, 2];
556
- case 5: return [3 /*break*/, 8];
557
- case 6:
558
- e_4_1 = _d.sent();
559
- e_4 = { error: e_4_1 };
560
- return [3 /*break*/, 8];
561
- case 7:
562
- try {
563
- if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
564
- }
565
- finally { if (e_4) throw e_4.error; }
566
- return [7 /*endfinally*/];
567
- case 8:
568
- thingsToAddToChangeLog = "".concat(newChangeLogContentToAdd
569
- ? "".concat(this.changeLogKeyWord(), " ").concat(this.newVersion, " ") +
570
- "(".concat((0, tnp_core_1.dateformat)(new Date(), 'yyyy-mm-dd'), ")\n") +
571
- "----------------------------------\n" +
572
- "".concat(newChangeLogContentToAdd.trim() + '\n', "\n")
573
- : '');
574
- return [2 /*return*/, thingsToAddToChangeLog];
575
- }
576
- });
577
- });
578
- };
579
- //#endregion
580
- //#region methods & getters / update changelog.md from commits
581
- /**
582
- * TODO extend this to all commits from last release
583
- */
584
- BaseReleaseProcess.prototype.updateChangeLogFromCommits = function () {
585
- return tslib_1.__awaiter(this, void 0, void 0, function () {
586
- var askForEveryItem, thingsToAddToChangeLog, changeLogNewContent;
587
- return tslib_1.__generator(this, function (_a) {
588
- switch (_a.label) {
589
- case 0:
590
- askForEveryItem = false;
591
- _a.label = 1;
592
- case 1:
593
- if (!true) return [3 /*break*/, 4];
594
- return [4 /*yield*/, this.getChangelogContentToAppend(askForEveryItem)];
595
- case 2:
596
- thingsToAddToChangeLog = _a.sent();
597
- console.log("New things for changelog.md:\n".concat(tnp_core_1.chalk.gray.bold(thingsToAddToChangeLog)));
598
- return [4 /*yield*/, index_1.Helpers.questionYesNo('Accept this new things in changelog (if no -> edit mode) ?')];
599
- case 3:
600
- if (!(_a.sent())) {
601
- askForEveryItem = true;
602
- return [3 /*break*/, 1];
603
- }
604
- changeLogNewContent = thingsToAddToChangeLog + "".concat(this.changelogContent.trim(), "\n");
605
- this.project.writeFile(this.changeLogPath, changeLogNewContent);
606
- return [3 /*break*/, 4];
607
- case 4: return [2 /*return*/];
608
- }
609
- });
610
- });
611
- };
612
- //#endregion
613
- //#region methods & getters / extract changed libraries in last commit
614
- BaseReleaseProcess.prototype.extractChangedLibrariesInCommit = function (hashOrIndex) {
615
- return tslib_1.__awaiter(this, void 0, void 0, function () {
616
- var hash, index, useHash, lastChanges, _a, libraries;
617
- var _this = this;
618
- return tslib_1.__generator(this, function (_b) {
619
- switch (_b.label) {
620
- case 0:
621
- hash = tnp_core_1._.isString(hashOrIndex) ? hashOrIndex : void 0;
622
- index = tnp_core_1._.isNumber(hashOrIndex) ? hashOrIndex : void 0;
623
- useHash = !!hash;
624
- if (!useHash) return [3 /*break*/, 2];
625
- return [4 /*yield*/, this.project.git.getChangedFilesInCommitByHash(hash)];
626
- case 1:
627
- _a = _b.sent();
628
- return [3 /*break*/, 4];
629
- case 2: return [4 /*yield*/, this.project.git.getChangedFilesInCommitByIndex(index)];
630
- case 3:
631
- _a = _b.sent();
632
- _b.label = 4;
633
- case 4:
634
- lastChanges = _a;
635
- libraries = this.project.libraryBuild.libraries.filter(function (l) {
636
- var libraryRelativePath = l.location.replace(_this.project.location + '/', '');
637
- return lastChanges.some(function (c) { return c.includes(libraryRelativePath); });
638
- });
639
- return [2 /*return*/, libraries.map(function (l) { return l.name; }).join(', ')];
640
- }
641
- });
642
- });
643
- };
644
- //#endregion
645
- //#region methods & getters / change log item template
646
- BaseReleaseProcess.prototype.changelogItemTemplate = function (hashOrIndex_1) {
647
- return tslib_1.__awaiter(this, arguments, void 0, function (hashOrIndex, confirmEveryItem) {
648
- var hash, index, useHash, commitMessage, _a, jiraNumbers, message, extractedLibraries, translatedMessage, _b, _c, result, itemIsOK, confirm_2;
649
- if (confirmEveryItem === void 0) { confirmEveryItem = false; }
650
- return tslib_1.__generator(this, function (_d) {
651
- switch (_d.label) {
652
- case 0:
653
- hash = tnp_core_1._.isString(hashOrIndex) ? hashOrIndex : void 0;
654
- index = tnp_core_1._.isNumber(hashOrIndex) ? hashOrIndex : void 0;
655
- useHash = !!hash;
656
- if (!useHash) return [3 /*break*/, 2];
657
- return [4 /*yield*/, this.project.git.getCommitMessageByHash(hash)];
658
- case 1:
659
- _a = _d.sent();
660
- return [3 /*break*/, 4];
661
- case 2: return [4 /*yield*/, this.project.git.getCommitMessageByIndex(index)];
662
- case 3:
663
- _a = _d.sent();
664
- _d.label = 4;
665
- case 4:
666
- commitMessage = _a;
667
- jiraNumbers = commit_data_1.CommitData.extractAndOrderJiraNumbers(commitMessage);
668
- message = commit_data_1.CommitData.cleanMessageFromJiraNumTeamIdEtc(commitMessage);
669
- return [4 /*yield*/, this.extractChangedLibrariesInCommit(hashOrIndex)];
670
- case 5:
671
- extractedLibraries = _d.sent();
672
- _c = (_b = tnp_core_1._).upperFirst;
673
- return [4 /*yield*/, this.commitMessageInChangelogTransformFn(message.replace(/\-/g, '').replace(/\:/g, ''))];
674
- case 6:
675
- translatedMessage = _c.apply(_b, [_d.sent()]);
676
- result = ("* [".concat(tnp_core_1._.last(jiraNumbers), "] - ") +
677
- "".concat(extractedLibraries ? extractedLibraries + ' - ' : '') +
678
- " ".concat(translatedMessage))
679
- .replace(/\- \-/g, ' - ')
680
- .replace(/\ \ /g, ' ');
681
- if (!confirmEveryItem) return [3 /*break*/, 9];
682
- console.log("Confirm changelog new item ".concat(tnp_core_1.chalk.gray("(from \"".concat(commitMessage, "\")")), ":\n") +
683
- "\n".concat(tnp_core_1.chalk.italic(result), "\n"));
684
- return [4 /*yield*/, index_1.Helpers.questionYesNo('Is this item OK ?')];
685
- case 7:
686
- itemIsOK = _d.sent();
687
- if (!!itemIsOK) return [3 /*break*/, 9];
688
- return [4 /*yield*/, index_1.Helpers.consoleGui.input({
689
- question: 'Provide proper changelog item or press enter to confirm',
690
- defaultValue: result,
691
- // required: false,
692
- })];
693
- case 8:
694
- confirm_2 = _d.sent();
695
- result = confirm_2;
696
- _d.label = 9;
697
- case 9:
698
- // replace double spaces
699
- result = result.replace(/\ \ /g, ' ');
700
- result = result.replace(/\ \ /g, ' ');
701
- result = result.replace(/\ \ /g, ' ');
702
- return [2 /*return*/, result];
703
- }
704
- });
705
- });
706
- };
707
- //#endregion
708
- //#region methods & getters / generate last changes summary
709
- BaseReleaseProcess.prototype.generateLastChangesSummary = function () {
710
- return tslib_1.__awaiter(this, void 0, void 0, function () {
711
- var lastReleaseCommitData, hasLastReleaseCommit, lastReleaseCommitMsg, _a, _b, _c, _d;
712
- return tslib_1.__generator(this, function (_e) {
713
- switch (_e.label) {
714
- case 0: return [4 /*yield*/, this.getLastReleaseCommitData()];
715
- case 1:
716
- lastReleaseCommitData = _e.sent();
717
- hasLastReleaseCommit = lastReleaseCommitData.index !== -1;
718
- lastReleaseCommitMsg = !hasLastReleaseCommit
719
- ? '< nothing release yet >'
720
- : lastReleaseCommitData.lastRelaseCommitMsg;
721
- _c = (_b = "".concat(tnp_core_1.chalk.bold.gray('Last changelog.md notes summary'), ":\n")).concat;
722
- return [4 /*yield*/, this.getLastPackageVersionChangesFromChnagelog()];
723
- case 2:
724
- _d = (_a = _c.apply(_b, [_e.sent(), "\n\n"]).concat(tnp_core_1.chalk.bold.gray(hasLastReleaseCommit ? 'Last commits up to relase commit' : 'Last 3 commits'), ":\n")).concat;
725
- return [4 /*yield*/, this.getLastChangesFromCommits({
726
- maxMessagesToCheck: hasLastReleaseCommit ? Number.POSITIVE_INFINITY : 3,
727
- stopOnCommitMessage: hasLastReleaseCommit
728
- ? lastReleaseCommitData.lastRelaseCommitMsg
729
- : '',
730
- })];
731
- case 3: return [2 /*return*/, _d.apply(_a, [_e.sent(), "\n "])];
732
- }
733
- });
734
- });
735
- };
736
- //#endregion
737
- //#region methods & getters / get last changes from commits
738
- BaseReleaseProcess.prototype.getLastChangesFromCommits = function () {
739
- return tslib_1.__awaiter(this, arguments, void 0, function (_a) {
740
- var index, commits, commitMessage;
741
- var _b = _a === void 0 ? {} : _a, _c = _b.maxMessagesToCheck, maxMessagesToCheck = _c === void 0 ? 3 : _c, _d = _b.stopOnCommitMessage, stopOnCommitMessage = _d === void 0 ? '' : _d;
742
- return tslib_1.__generator(this, function (_e) {
743
- switch (_e.label) {
744
- case 0:
745
- index = 0;
746
- commits = [];
747
- _e.label = 1;
748
- case 1:
749
- if (!true) return [3 /*break*/, 3];
750
- return [4 /*yield*/, this.project.git.getCommitMessageByIndex(index)];
751
- case 2:
752
- commitMessage = _e.sent();
753
- commits.push(commitMessage);
754
- ++index;
755
- if (!!(stopOnCommitMessage || '').trim() &&
756
- commitMessage.includes(stopOnCommitMessage)) {
757
- return [3 /*break*/, 3];
758
- }
759
- if (index > maxMessagesToCheck) {
760
- return [3 /*break*/, 3];
761
- }
762
- return [3 /*break*/, 1];
763
- case 3: return [2 /*return*/, commits
764
- .map(function (c) { return tnp_core_1.chalk.italic(c); })
765
- .map(function (c, index) { return "".concat(index + 1, ". ").concat(c); })
766
- .join('\n')];
767
- }
768
- });
769
- });
770
- };
771
- //#endregion
772
- //#region methods & getters / get last relase commit data
773
- BaseReleaseProcess.prototype.getLastReleaseCommitData = function () {
774
- return tslib_1.__awaiter(this, void 0, void 0, function () {
775
- var index, maxMessages, _loop_1, this_1, state_1;
776
- return tslib_1.__generator(this, function (_a) {
777
- switch (_a.label) {
778
- case 0:
779
- index = 0;
780
- maxMessages = 50;
781
- _loop_1 = function () {
782
- var commitMessage, npmVersionRegex, match;
783
- return tslib_1.__generator(this, function (_b) {
784
- switch (_b.label) {
785
- case 0: return [4 /*yield*/, this_1.project.git.getCommitMessageByIndex(index)];
786
- case 1:
787
- commitMessage = _b.sent();
788
- npmVersionRegex = /\d+\.\d+\.\d+/;
789
- // console.log('commitMessage', { index, commitMessage });
790
- if (this_1.getReleaseWords().some(function (r) {
791
- return commitMessage.toLowerCase().includes(r);
792
- })) {
793
- match = commitMessage.match(npmVersionRegex);
794
- if (match) {
795
- 2;
796
- return [2 /*return*/, { value: { lastRelaseCommitMsg: commitMessage, index: index } }];
797
- }
798
- }
799
- ++index;
800
- if (index > maxMessages) {
801
- return [2 /*return*/, "break"];
802
- }
803
- return [2 /*return*/];
804
- }
805
- });
806
- };
807
- this_1 = this;
808
- _a.label = 1;
809
- case 1:
810
- if (!true) return [3 /*break*/, 3];
811
- return [5 /*yield**/, _loop_1()];
812
- case 2:
813
- state_1 = _a.sent();
814
- if (typeof state_1 === "object")
815
- return [2 /*return*/, state_1.value];
816
- if (state_1 === "break")
817
- return [3 /*break*/, 3];
818
- return [3 /*break*/, 1];
819
- case 3: return [2 /*return*/, { lastRelaseCommitMsg: '', index: -1 }];
820
- }
821
- });
822
- });
823
- };
824
- //#endregion
825
- //#region methods & getters / get last changes from changelog
826
- BaseReleaseProcess.prototype.getLastPackageVersionChangesFromChnagelog = function () {
827
- return tslib_1.__awaiter(this, void 0, void 0, function () {
828
- var changelogData, validToShow, lastRelease;
829
- var _this = this;
830
- return tslib_1.__generator(this, function (_a) {
831
- //#region @backendFunc
832
- if (!this.project.hasFile(this.changeLogPath)) {
833
- return [2 /*return*/, "< project doesn't use CHANGELOG.md yet >"];
834
- }
835
- changelogData = this.getChnagelogData();
836
- if (changelogData.length === 0) {
837
- return [2 /*return*/, "< no changelog data >"];
838
- }
839
- validToShow = [];
840
- while (true) {
841
- lastRelease = changelogData.shift();
842
- if (lastRelease.version === this.project.npmHelpers.version) {
843
- validToShow.push(lastRelease);
844
- }
845
- else {
846
- break;
847
- }
848
- }
849
- return [2 /*return*/, validToShow
850
- .map(function (cd) {
851
- return ("".concat(_this.changeLogKeyWord(), " ").concat(cd.version, " (").concat(cd.date, "):") +
852
- "\n".concat(cd.changes.join('\n')));
853
- })
854
- .join('\n')];
855
- });
856
- });
857
- };
858
- Object.defineProperty(BaseReleaseProcess.prototype, "changeLogPath", {
859
- //#endregion
860
- //#region methods & getters / get changelog path
861
- get: function () {
862
- //#region @backendFunc
863
- return this.project.hasFile('changelog.md')
864
- ? 'changelog.md'
865
- : 'CHANGELOG.md';
866
- //#endregion
867
- },
868
- enumerable: false,
869
- configurable: true
870
- });
871
- Object.defineProperty(BaseReleaseProcess.prototype, "changelogContent", {
872
- //#endregion
873
- //#region methods & getters / get changelog content
874
- get: function () {
875
- return this.project.readFile(this.changeLogPath) || '';
876
- },
877
- enumerable: false,
878
- configurable: true
879
- });
880
- //#endregion
881
- //#region methods & getters / change log key word
882
- BaseReleaseProcess.prototype.changeLogKeyWord = function () {
883
- return 'Changes in version';
884
- };
885
- //#endregion
886
- //#region methods & getters / get changelog data
887
- BaseReleaseProcess.prototype.getChnagelogData = function () {
888
- //#region @backendFunc
889
- var changelogData = [];
890
- var keyword = this.changeLogKeyWord();
891
- var regex = new RegExp("".concat(keyword, " (\\d+\\.\\d+\\.\\d+) \\((\\d{4}-\\d{2}-\\d{2})\\)\\s*[-]+\\s*([\\s\\S]*?)(?=").concat(keyword, " \\d+\\.\\d+\\.\\d+ \\(|$)"), 'g');
892
- var match;
893
- while ((match = regex.exec(this.changelogContent)) !== null) {
894
- var version = match[1];
895
- var date = match[2];
896
- var changesText = match[3].trim();
897
- var changes = changesText
898
- .split('\n')
899
- .map(function (line) { return line.trim(); })
900
- .filter(function (line) { return line; });
901
- changelogData.push({
902
- changes: changes,
903
- version: version,
904
- date: date,
905
- });
906
- }
907
- return changelogData;
908
- //#endregion
909
- };
910
- return BaseReleaseProcess;
911
- }(base_feature_for_project_1.BaseFeatureForProject));
912
- exports.BaseReleaseProcess = BaseReleaseProcess;
913
- //# sourceMappingURL=base-release-process.js.map