@herodevs/cli 0.2.3 → 0.2.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 (217) hide show
  1. package/README.md +11 -0
  2. package/core-types/README.md +11 -0
  3. package/core-types/package.json +11 -0
  4. package/core-types/src/index.d.ts +1 -0
  5. package/core-types/src/index.js +5 -0
  6. package/core-types/src/index.js.map +1 -0
  7. package/core-types/src/lib/project-type.d.ts +1 -0
  8. package/core-types/src/lib/project-type.js +3 -0
  9. package/core-types/src/lib/project-type.js.map +1 -0
  10. package/init/README.md +11 -0
  11. package/init/package.json +11 -0
  12. package/init/src/index.d.ts +1 -0
  13. package/init/src/index.js +5 -0
  14. package/init/src/index.js.map +1 -0
  15. package/init/src/lib/configure-project.d.ts +3 -0
  16. package/init/src/lib/configure-project.js +11 -0
  17. package/init/src/lib/configure-project.js.map +1 -0
  18. package/init/src/lib/get-package-choices.d.ts +2 -0
  19. package/init/src/lib/get-package-choices.js +17 -0
  20. package/init/src/lib/get-package-choices.js.map +1 -0
  21. package/init/src/lib/get-product-choices.d.ts +3 -0
  22. package/init/src/lib/get-product-choices.js +19 -0
  23. package/init/src/lib/get-product-choices.js.map +1 -0
  24. package/init/src/lib/get-release-trains.d.ts +3 -0
  25. package/init/src/lib/get-release-trains.js +63 -0
  26. package/init/src/lib/get-release-trains.js.map +1 -0
  27. package/init/src/lib/init.d.ts +5 -0
  28. package/init/src/lib/init.js +56 -0
  29. package/init/src/lib/init.js.map +1 -0
  30. package/init/src/lib/mock-trains.d.ts +2 -0
  31. package/init/src/lib/mock-trains.js +190 -0
  32. package/init/src/lib/mock-trains.js.map +1 -0
  33. package/init/src/lib/models/choice.d.ts +4 -0
  34. package/init/src/lib/models/choice.js +3 -0
  35. package/init/src/lib/models/choice.js.map +1 -0
  36. package/init/src/lib/models/entry.d.ts +6 -0
  37. package/init/src/lib/models/entry.js +3 -0
  38. package/init/src/lib/models/entry.js.map +1 -0
  39. package/init/src/lib/models/index.d.ts +5 -0
  40. package/init/src/lib/models/index.js +9 -0
  41. package/init/src/lib/models/index.js.map +1 -0
  42. package/init/src/lib/models/package-version.d.ts +14 -0
  43. package/init/src/lib/models/package-version.js +3 -0
  44. package/init/src/lib/models/package-version.js.map +1 -0
  45. package/init/src/lib/models/product.d.ts +5 -0
  46. package/init/src/lib/models/product.js +3 -0
  47. package/init/src/lib/models/product.js.map +1 -0
  48. package/init/src/lib/models/release-train.d.ts +9 -0
  49. package/init/src/lib/models/release-train.js +3 -0
  50. package/init/src/lib/models/release-train.js.map +1 -0
  51. package/init/src/lib/npm/configure-npm-project.d.ts +2 -0
  52. package/init/src/lib/npm/configure-npm-project.js +60 -0
  53. package/init/src/lib/npm/configure-npm-project.js.map +1 -0
  54. package/init/src/lib/verify-project-type.d.ts +6 -0
  55. package/init/src/lib/verify-project-type.js +20 -0
  56. package/init/src/lib/verify-project-type.js.map +1 -0
  57. package/package.json +12 -11
  58. package/report-committers/README.md +11 -0
  59. package/report-committers/package.json +11 -0
  60. package/report-committers/src/index.d.ts +1 -0
  61. package/report-committers/src/index.js +5 -0
  62. package/report-committers/src/index.js.map +1 -0
  63. package/report-committers/src/lib/collapse-and-sort-committer-info.d.ts +2 -0
  64. package/report-committers/src/lib/collapse-and-sort-committer-info.js +31 -0
  65. package/report-committers/src/lib/collapse-and-sort-committer-info.js.map +1 -0
  66. package/report-committers/src/lib/committers.d.ts +9 -0
  67. package/report-committers/src/lib/committers.js +102 -0
  68. package/report-committers/src/lib/committers.js.map +1 -0
  69. package/report-committers/src/lib/constants.d.ts +4 -0
  70. package/report-committers/src/lib/constants.js +8 -0
  71. package/report-committers/src/lib/constants.js.map +1 -0
  72. package/report-committers/src/lib/get-committer-counts.d.ts +2 -0
  73. package/report-committers/src/lib/get-committer-counts.js +18 -0
  74. package/report-committers/src/lib/get-committer-counts.js.map +1 -0
  75. package/report-committers/src/lib/parse-date-flags.d.ts +4 -0
  76. package/report-committers/src/lib/parse-date-flags.js +12 -0
  77. package/report-committers/src/lib/parse-date-flags.js.map +1 -0
  78. package/report-committers/src/lib/parse-git-log-entries.d.ts +2 -0
  79. package/report-committers/src/lib/parse-git-log-entries.js +12 -0
  80. package/report-committers/src/lib/parse-git-log-entries.js.map +1 -0
  81. package/report-committers/src/lib/parse-monthly.d.ts +6 -0
  82. package/report-committers/src/lib/parse-monthly.js +41 -0
  83. package/report-committers/src/lib/parse-monthly.js.map +1 -0
  84. package/report-committers/src/lib/print-committers.d.ts +0 -0
  85. package/report-committers/src/lib/print-committers.js +2 -0
  86. package/report-committers/src/lib/print-committers.js.map +1 -0
  87. package/report-committers/src/lib/print-monthly.d.ts +2 -0
  88. package/report-committers/src/lib/print-monthly.js +79 -0
  89. package/report-committers/src/lib/print-monthly.js.map +1 -0
  90. package/report-committers/src/lib/types.d.ts +26 -0
  91. package/report-committers/src/lib/types.js +3 -0
  92. package/report-committers/src/lib/types.js.map +1 -0
  93. package/report-diagnostics/README.md +11 -0
  94. package/report-diagnostics/package.json +11 -0
  95. package/report-diagnostics/src/index.d.ts +1 -0
  96. package/report-diagnostics/src/index.js +5 -0
  97. package/report-diagnostics/src/index.js.map +1 -0
  98. package/report-diagnostics/src/lib/diagnostics.d.ts +7 -0
  99. package/report-diagnostics/src/lib/diagnostics.js +94 -0
  100. package/report-diagnostics/src/lib/diagnostics.js.map +1 -0
  101. package/report-diagnostics/src/lib/get-diagnostic-types.d.ts +4 -0
  102. package/report-diagnostics/src/lib/get-diagnostic-types.js +16 -0
  103. package/report-diagnostics/src/lib/get-diagnostic-types.js.map +1 -0
  104. package/report-diagnostics/src/lib/get-file-contents.d.ts +1 -0
  105. package/report-diagnostics/src/lib/get-file-contents.js +13 -0
  106. package/report-diagnostics/src/lib/get-file-contents.js.map +1 -0
  107. package/report-diagnostics/src/lib/get-package-json-section.d.ts +1 -0
  108. package/report-diagnostics/src/lib/get-package-json-section.js +16 -0
  109. package/report-diagnostics/src/lib/get-package-json-section.js.map +1 -0
  110. package/src/lib/cli.d.ts +1 -0
  111. package/src/lib/cli.js +22 -0
  112. package/src/lib/cli.js.map +1 -0
  113. package/src/lib/create-group-command.d.ts +2 -0
  114. package/src/lib/create-group-command.js +29 -0
  115. package/src/lib/create-group-command.js.map +1 -0
  116. package/src/lib/ensure-version.d.ts +2 -0
  117. package/src/lib/ensure-version.js +52 -0
  118. package/src/lib/ensure-version.js.map +1 -0
  119. package/src/lib/get-commands.d.ts +2 -0
  120. package/src/lib/get-commands.js +18 -0
  121. package/src/lib/get-commands.js.map +1 -0
  122. package/src/lib/log-colors.d.ts +28 -0
  123. package/src/lib/log-colors.js +10 -0
  124. package/src/lib/log-colors.js.map +1 -0
  125. package/src/main.d.ts +1 -0
  126. package/src/main.js +5 -0
  127. package/src/main.js.map +1 -0
  128. package/tracker-init/README.md +11 -0
  129. package/tracker-init/package.json +11 -0
  130. package/tracker-init/src/index.d.ts +1 -0
  131. package/tracker-init/src/index.js +5 -0
  132. package/tracker-init/src/index.js.map +1 -0
  133. package/tracker-init/src/lib/default-config.d.ts +2 -0
  134. package/tracker-init/src/lib/default-config.js +20 -0
  135. package/tracker-init/src/lib/default-config.js.map +1 -0
  136. package/tracker-init/src/lib/init.d.ts +5 -0
  137. package/tracker-init/src/lib/init.js +25 -0
  138. package/tracker-init/src/lib/init.js.map +1 -0
  139. package/tracker-run/README.md +11 -0
  140. package/tracker-run/package.json +11 -0
  141. package/tracker-run/src/index.d.ts +1 -0
  142. package/tracker-run/src/index.js +5 -0
  143. package/tracker-run/src/index.js.map +1 -0
  144. package/tracker-run/src/lib/get-data-filepath.d.ts +1 -0
  145. package/tracker-run/src/lib/get-data-filepath.js +9 -0
  146. package/tracker-run/src/lib/get-data-filepath.js.map +1 -0
  147. package/tracker-run/src/lib/get-data.d.ts +1 -0
  148. package/tracker-run/src/lib/get-data.js +15 -0
  149. package/tracker-run/src/lib/get-data.js.map +1 -0
  150. package/tracker-run/src/lib/get-git-commit.d.ts +4 -0
  151. package/tracker-run/src/lib/get-git-commit.js +33 -0
  152. package/tracker-run/src/lib/get-git-commit.js.map +1 -0
  153. package/tracker-run/src/lib/process-category.d.ts +2 -0
  154. package/tracker-run/src/lib/process-category.js +152 -0
  155. package/tracker-run/src/lib/process-category.js.map +1 -0
  156. package/tracker-run/src/lib/process-config.d.ts +2 -0
  157. package/tracker-run/src/lib/process-config.js +20 -0
  158. package/tracker-run/src/lib/process-config.js.map +1 -0
  159. package/tracker-run/src/lib/run.d.ts +7 -0
  160. package/tracker-run/src/lib/run.js +29 -0
  161. package/tracker-run/src/lib/run.js.map +1 -0
  162. package/tracker-run/src/lib/save-results.d.ts +2 -0
  163. package/tracker-run/src/lib/save-results.js +20 -0
  164. package/tracker-run/src/lib/save-results.js.map +1 -0
  165. package/tracker-shared/README.md +11 -0
  166. package/tracker-shared/package.json +11 -0
  167. package/tracker-shared/src/index.d.ts +2 -0
  168. package/tracker-shared/src/index.js +14 -0
  169. package/tracker-shared/src/index.js.map +1 -0
  170. package/tracker-shared/src/lib/models/aggregate-result.d.ts +4 -0
  171. package/tracker-shared/src/lib/models/aggregate-result.js +3 -0
  172. package/tracker-shared/src/lib/models/aggregate-result.js.map +1 -0
  173. package/tracker-shared/src/lib/models/category-result.d.ts +7 -0
  174. package/tracker-shared/src/lib/models/category-result.js +3 -0
  175. package/tracker-shared/src/lib/models/category-result.js.map +1 -0
  176. package/tracker-shared/src/lib/models/category.d.ts +9 -0
  177. package/tracker-shared/src/lib/models/category.js +3 -0
  178. package/tracker-shared/src/lib/models/category.js.map +1 -0
  179. package/tracker-shared/src/lib/models/config.d.ts +8 -0
  180. package/tracker-shared/src/lib/models/config.js +3 -0
  181. package/tracker-shared/src/lib/models/config.js.map +1 -0
  182. package/tracker-shared/src/lib/models/file-result.d.ts +5 -0
  183. package/tracker-shared/src/lib/models/file-result.js +3 -0
  184. package/tracker-shared/src/lib/models/file-result.js.map +1 -0
  185. package/tracker-shared/src/lib/models/index.d.ts +8 -0
  186. package/tracker-shared/src/lib/models/index.js +12 -0
  187. package/tracker-shared/src/lib/models/index.js.map +1 -0
  188. package/tracker-shared/src/lib/models/process-result.d.ts +6 -0
  189. package/tracker-shared/src/lib/models/process-result.js +3 -0
  190. package/tracker-shared/src/lib/models/process-result.js.map +1 -0
  191. package/tracker-shared/src/lib/models/result.d.ts +11 -0
  192. package/tracker-shared/src/lib/models/result.js +3 -0
  193. package/tracker-shared/src/lib/models/result.js.map +1 -0
  194. package/tracker-shared/src/lib/models/total-result.d.ts +4 -0
  195. package/tracker-shared/src/lib/models/total-result.js +3 -0
  196. package/tracker-shared/src/lib/models/total-result.js.map +1 -0
  197. package/tracker-shared/src/lib/read-config.d.ts +2 -0
  198. package/tracker-shared/src/lib/read-config.js +14 -0
  199. package/tracker-shared/src/lib/read-config.js.map +1 -0
  200. package/utility/README.md +11 -0
  201. package/utility/package.json +11 -0
  202. package/utility/src/index.d.ts +4 -0
  203. package/utility/src/index.js +8 -0
  204. package/utility/src/index.js.map +1 -0
  205. package/utility/src/lib/get-project-types.d.ts +2 -0
  206. package/utility/src/lib/get-project-types.js +14 -0
  207. package/utility/src/lib/get-project-types.js.map +1 -0
  208. package/utility/src/lib/get-root-dir.d.ts +1 -0
  209. package/utility/src/lib/get-root-dir.js +13 -0
  210. package/utility/src/lib/get-root-dir.js.map +1 -0
  211. package/utility/src/lib/run-command.d.ts +1 -0
  212. package/utility/src/lib/run-command.js +32 -0
  213. package/utility/src/lib/run-command.js.map +1 -0
  214. package/utility/src/lib/sort-by-name.d.ts +3 -0
  215. package/utility/src/lib/sort-by-name.js +8 -0
  216. package/utility/src/lib/sort-by-name.js.map +1 -0
  217. package/main.cjs +0 -986
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configureNpmProject = void 0;
4
+ const fs_1 = require("fs");
5
+ const path = require("path");
6
+ function configureNpmProject(accessToken, packages) {
7
+ updatePackageJson(packages);
8
+ updateNpmrc(accessToken);
9
+ }
10
+ exports.configureNpmProject = configureNpmProject;
11
+ function updatePackageJson(packages) {
12
+ const packageJsonPath = path.join(process.cwd(), 'package.json');
13
+ const packageJsonContents = (0, fs_1.readFileSync)(packageJsonPath, 'utf8');
14
+ const packageJson = JSON.parse(packageJsonContents);
15
+ const pkgUpdates = packages
16
+ .map((p) => {
17
+ var _a;
18
+ return ({
19
+ key: ((_a = p.packageVersion.origination) === null || _a === void 0 ? void 0 : _a.name) || p.packageVersion.name,
20
+ value: p.packageVersion.fqns,
21
+ });
22
+ })
23
+ .reduce((acc, cur) => {
24
+ var _a, _b;
25
+ // Update the appropriate section of the package.json (dependencies if not dev or peer)
26
+ if ((_a = packageJson.devDependencies) === null || _a === void 0 ? void 0 : _a[cur.key]) {
27
+ acc.devDeps[cur.key] = `npm:${cur.value}`;
28
+ }
29
+ else if ((_b = packageJson.peerDependencies) === null || _b === void 0 ? void 0 : _b[cur.key]) {
30
+ acc.peerDeps[cur.key] = `npm:${cur.value}`;
31
+ }
32
+ else {
33
+ acc.deps[cur.key] = `npm:${cur.value}`;
34
+ }
35
+ acc.overrides[cur.key] = { '.': `npm:${cur.value}` };
36
+ return acc;
37
+ }, { deps: {}, devDeps: {}, peerDeps: {}, overrides: {} });
38
+ packageJson.dependencies = Object.assign(Object.assign({}, (packageJson.dependencies || {})), pkgUpdates.deps);
39
+ packageJson.devDependencies = Object.assign(Object.assign({}, (packageJson.devDependencies || {})), pkgUpdates.devDeps);
40
+ packageJson.peerDependencies = Object.assign(Object.assign({}, (packageJson.peerDependencies || {})), pkgUpdates.peerDeps);
41
+ packageJson.overrides = Object.assign(Object.assign({}, (packageJson.overrides || {})), pkgUpdates.overrides);
42
+ (0, fs_1.writeFileSync)(packageJsonPath, JSON.stringify(packageJson, null, 2));
43
+ }
44
+ function updateNpmrc(accessToken) {
45
+ const npmrcPath = path.join(process.cwd(), '.npmrc');
46
+ let npmrcContents = '';
47
+ if ((0, fs_1.existsSync)(npmrcPath)) {
48
+ npmrcContents = (0, fs_1.readFileSync)(npmrcPath, 'utf8');
49
+ }
50
+ if (npmrcContents.includes(`@neverendingsupport:registry`)) {
51
+ return;
52
+ }
53
+ const updatedContents = npmrcContents +
54
+ `\n\n` +
55
+ `@neverendingsupport:registry=https://registry.nes.herodevs.com/npm/pkg/` +
56
+ `\n` +
57
+ `//registry.nes.herodevs.com/npm/pkg/:_authToken="${accessToken}"`;
58
+ (0, fs_1.writeFileSync)(npmrcPath, updatedContents);
59
+ }
60
+ //# sourceMappingURL=configure-npm-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-npm-project.js","sourceRoot":"","sources":["../../../../../../../libs/nes/init/src/lib/npm/configure-npm-project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { ProjectType } from "../../../core-types/src";
2
+ export declare function verifyProjectType(): {
3
+ types: ProjectType[];
4
+ valid: boolean;
5
+ error?: string;
6
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyProjectType = void 0;
4
+ const utility_1 = require("../../../utility/src");
5
+ function verifyProjectType() {
6
+ const types = (0, utility_1.getProjectTypes)();
7
+ let valid = true;
8
+ let error = undefined;
9
+ if (types.length === 0) {
10
+ valid = false;
11
+ error = 'Unable to recognize a supported project type.';
12
+ }
13
+ return {
14
+ types: types,
15
+ valid,
16
+ error,
17
+ };
18
+ }
19
+ exports.verifyProjectType = verifyProjectType;
20
+ //# sourceMappingURL=verify-project-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-project-type.js","sourceRoot":"","sources":["../../../../../../libs/nes/init/src/lib/verify-project-type.ts"],"names":[],"mappings":";;;AACA,+CAAoD;AAEpD,SAAgB,iBAAiB;IAK/B,MAAM,KAAK,GAAG,IAAA,yBAAe,GAAE,CAAC;IAChC,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,KAAK,GAAuB,SAAS,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,KAAK,CAAC;QACd,KAAK,GAAG,+CAA+C,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,KAAK;QACL,KAAK;KACN,CAAC;AACJ,CAAC;AAlBD,8CAkBC"}
package/package.json CHANGED
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "name": "@herodevs/cli",
3
- "version": "0.2.3",
4
- "bin": "./main.cjs",
3
+ "version": "0.2.5",
4
+ "bin": "./src/main.js",
5
5
  "dependencies": {
6
- "@apollo/client": "3.10.4",
7
- "@inquirer/prompts": "5.0.4",
8
- "date-fns": "3.6.0",
9
- "get-json": "1.0.1",
10
- "git-last-commit": "1.0.1",
11
- "ora": "5.3.0",
12
- "sloc": "0.3.2",
13
6
  "tslib": "^2.3.0",
14
- "yargs": "17.7.2"
7
+ "yargs": "^17.7.2",
8
+ "get-json": "^1.0.1",
9
+ "date-fns": "^3.6.0",
10
+ "@inquirer/prompts": "^5.0.2",
11
+ "git-last-commit": "^1.0.1",
12
+ "sloc": "^0.3.2",
13
+ "@apollo/client": "^3.10.1",
14
+ "ora": "5.3.0"
15
15
  },
16
16
  "type": "commonjs",
17
- "main": "./main.cjs"
17
+ "main": "./src/main.js",
18
+ "typings": "./src/main.d.ts"
18
19
  }
@@ -0,0 +1,11 @@
1
+ # committers
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build committers` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test committers` to execute the unit tests via [Jest](https://jestjs.io).
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@herodevs/report-committers",
3
+ "version": "0.0.1",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./src/index.js",
9
+ "typings": "./src/index.d.ts",
10
+ "private": true
11
+ }
@@ -0,0 +1 @@
1
+ export * from './lib/committers';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib/committers"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/report/committers/src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC"}
@@ -0,0 +1,2 @@
1
+ import { SortedCommitterInfo } from './types';
2
+ export declare function collapseAndSortCommitterInfo(startDate: Date, endDate: Date, rawEntries: string[]): SortedCommitterInfo;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collapseAndSortCommitterInfo = void 0;
4
+ function collapseAndSortCommitterInfo(startDate, endDate, rawEntries) {
5
+ return undefined;
6
+ /*
7
+ const entries = parseGitLogEntries(rawEntries);
8
+ const committerHash = {} as any;
9
+ for (let i = 0; i < entries.length; i++) {
10
+ committerHash[entries[i].committer] =
11
+ committerHash[entries[i].committer] || [];
12
+ committerHash[entries[i].committer].push(
13
+ [entries[i].commitHash, entries[i].date].join(' ')
14
+ );
15
+ }
16
+
17
+ const sortable = [] as { name: string; commits: string[] }[];
18
+ Object.keys(committerHash).forEach((name) => {
19
+ sortable.push({ name, commits: committerHash[name] });
20
+ });
21
+
22
+ const committers = sortable.sort((a, b) => {
23
+ return b.commits.length - a.commits.length;
24
+ });
25
+
26
+ const monthly = parseMonthly(startDate, endDate, entries);
27
+ return { committers, monthly };
28
+ */
29
+ }
30
+ exports.collapseAndSortCommitterInfo = collapseAndSortCommitterInfo;
31
+ //# sourceMappingURL=collapse-and-sort-committer-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapse-and-sort-committer-info.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/collapse-and-sort-committer-info.ts"],"names":[],"mappings":";;;AAIA,SAAgB,4BAA4B,CAC1C,SAAe,EACf,OAAa,EACb,UAAoB;IAEpB,OAAO,SAAgB,CAAC;IACxB;;;;;;;;;;;;;;;;;;;;;;MAsBE;AACJ,CAAC;AA7BD,oEA6BC"}
@@ -0,0 +1,9 @@
1
+ import { CommandModule } from 'yargs';
2
+ interface Options {
3
+ startDate: string;
4
+ endDate: string;
5
+ exclude: string[];
6
+ json: boolean;
7
+ }
8
+ export declare const reportCommittersCommand: CommandModule<object, Options>;
9
+ export {};
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reportCommittersCommand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const date_fns_1 = require("date-fns");
6
+ const utility_1 = require("../../../utility/src");
7
+ const parse_date_flags_1 = require("./parse-date-flags");
8
+ const constants_1 = require("./constants");
9
+ const parse_git_log_entries_1 = require("./parse-git-log-entries");
10
+ const get_committer_counts_1 = require("./get-committer-counts");
11
+ exports.reportCommittersCommand = {
12
+ command: 'committers',
13
+ describe: 'show git committers',
14
+ aliases: [],
15
+ builder: {
16
+ startDate: {
17
+ alias: 's',
18
+ default: (0, date_fns_1.format)(new Date(), constants_1.dateFormat),
19
+ describe: `Start Date (format: ${constants_1.dateFormat})`,
20
+ string: true,
21
+ },
22
+ endDate: {
23
+ alias: 'e',
24
+ describe: `End Date (format: ${constants_1.dateFormat})`,
25
+ required: false,
26
+ default: (0, date_fns_1.format)((0, date_fns_1.subMonths)(new Date(), constants_1.monthsToSubtract), constants_1.dateFormat),
27
+ },
28
+ exclude: {
29
+ alias: 'x',
30
+ array: true,
31
+ describe: 'Path Exclusions (eg -x="./src/bin" -x="./dist")',
32
+ required: false,
33
+ },
34
+ json: {
35
+ describe: 'Output to JSON format',
36
+ required: false,
37
+ default: false,
38
+ boolean: true,
39
+ },
40
+ // monthly: {
41
+ // alias: 'm',
42
+ // describe:
43
+ // 'Break down by calendar month, rather than by committer. (eg -m)',
44
+ // required: false,
45
+ // default: false,
46
+ // },
47
+ },
48
+ handler: run,
49
+ };
50
+ function run(args) {
51
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
52
+ const { startDate, endDate } = (0, parse_date_flags_1.parseDateFlags)(constants_1.dateFormat, args.startDate, args.endDate);
53
+ const ignores = args.exclude && args.exclude.length ? `-- . "!(${args.exclude.join('|')})"` : '';
54
+ const gitCommand = `git log --since "${endDate}" --until "${startDate}" --pretty=format:${constants_1.gitOutputFormat} ${ignores}`;
55
+ const result = yield (0, utility_1.runCommand)(gitCommand);
56
+ const rawEntries = result.split('\n');
57
+ // const { committers, monthly } = collapseAndSortCommitterInfo(startDate, endDate, rawEntries);
58
+ // if( args.monthly ){
59
+ // printMonthly(monthly);
60
+ // return;
61
+ // }else{
62
+ // printCommitters(committers);
63
+ // return;
64
+ // }
65
+ if (rawEntries.length === 1 && rawEntries[0] === '') {
66
+ const startDateStr = (0, date_fns_1.format)(startDate, 'yyyy-MM-dd');
67
+ const endDateStr = (0, date_fns_1.format)(endDate, 'yyyy-MM-dd');
68
+ console.log(`No commits found between ${endDateStr} and ${startDateStr}`);
69
+ return;
70
+ }
71
+ const entries = (0, parse_git_log_entries_1.parseGitLogEntries)(rawEntries);
72
+ const committerCounts = (0, get_committer_counts_1.getCommitterCounts)(entries);
73
+ if (args.json) {
74
+ outputCommittersJson(committerCounts);
75
+ }
76
+ else {
77
+ outputCommitters(committerCounts);
78
+ }
79
+ });
80
+ }
81
+ function outputCommitters(committerCounts) {
82
+ const longestNameLength = committerCounts.reduce((acc, c) => {
83
+ return c.name.length > acc ? c.name.length : acc;
84
+ }, 'Committer'.length);
85
+ const header = `Committer${' '.repeat(longestNameLength - 9)} | Commits`;
86
+ console.log(header);
87
+ console.log(header
88
+ .split('')
89
+ .map((c) => (c === '|' ? '|' : '-'))
90
+ .join(''));
91
+ console.log(committerCounts
92
+ .map((c) => {
93
+ const committer = `${c.name}${' '.repeat(longestNameLength - c.name.length)}`;
94
+ const count = ' '.repeat(7 - c.count.toString().length) + c.count;
95
+ return `${committer} | ${count}`;
96
+ })
97
+ .join('\n'));
98
+ }
99
+ function outputCommittersJson(committerCounts) {
100
+ console.log(JSON.stringify(committerCounts, null, 2));
101
+ }
102
+ //# sourceMappingURL=committers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"committers.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/committers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const dateFormat = "yyyy-MM-dd";
2
+ export declare const gammaDelimiter = "\u0393\u0393\u0393\u0393";
3
+ export declare const monthsToSubtract = 12;
4
+ export declare const gitOutputFormat: string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gitOutputFormat = exports.monthsToSubtract = exports.gammaDelimiter = exports.dateFormat = void 0;
4
+ exports.dateFormat = 'yyyy-MM-dd';
5
+ exports.gammaDelimiter = 'ΓΓΓΓ';
6
+ exports.monthsToSubtract = 12;
7
+ exports.gitOutputFormat = `"${['%h', '%an', '%ad'].join(exports.gammaDelimiter)}"`;
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,cAAc,GAAG,MAAM,CAAC;AACxB,QAAA,gBAAgB,GAAG,EAAE,CAAC;AACtB,QAAA,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,sBAAc,CAAC,GAAG,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Commit, CommitterCount } from './types';
2
+ export declare function getCommitterCounts(entries: Commit[]): CommitterCount[];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCommitterCounts = void 0;
4
+ function getCommitterCounts(entries) {
5
+ return entries
6
+ .reduce((acc, entry) => {
7
+ let committerCount = acc.find((c) => c.name === entry.committer);
8
+ if (!committerCount) {
9
+ committerCount = { name: entry.committer, count: 0 };
10
+ acc.push(committerCount);
11
+ }
12
+ committerCount.count++;
13
+ return acc;
14
+ }, [])
15
+ .sort((a, b) => b.count - a.count);
16
+ }
17
+ exports.getCommitterCounts = getCommitterCounts;
18
+ //# sourceMappingURL=get-committer-counts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-committer-counts.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/get-committer-counts.ts"],"names":[],"mappings":";;;AAEA,SAAgB,kBAAkB,CAAC,OAAiB;IAClD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACrB,IAAI,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,cAAc,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;QACD,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAsB,CAAC;SACzB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAZD,gDAYC"}
@@ -0,0 +1,4 @@
1
+ export declare function parseDateFlags(dateFormat: string, startDate: string, endDate: string): {
2
+ endDate: Date;
3
+ startDate: Date;
4
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseDateFlags = void 0;
4
+ const date_fns_1 = require("date-fns");
5
+ function parseDateFlags(dateFormat, startDate, endDate) {
6
+ return {
7
+ endDate: (0, date_fns_1.parse)(endDate, dateFormat, new Date()),
8
+ startDate: (0, date_fns_1.parse)(startDate, dateFormat, new Date()),
9
+ };
10
+ }
11
+ exports.parseDateFlags = parseDateFlags;
12
+ //# sourceMappingURL=parse-date-flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-date-flags.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/parse-date-flags.ts"],"names":[],"mappings":";;;AAAA,uCAAiC;AAEjC,SAAgB,cAAc,CAC5B,UAAkB,EAClB,SAAiB,EACjB,OAAe;IAEf,OAAO;QACL,OAAO,EAAE,IAAA,gBAAK,EAAC,OAAO,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC;QAC/C,SAAS,EAAE,IAAA,gBAAK,EAAC,SAAS,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AATD,wCASC"}
@@ -0,0 +1,2 @@
1
+ import { Commit } from './types';
2
+ export declare function parseGitLogEntries(entries: string[]): Commit[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseGitLogEntries = void 0;
4
+ const constants_1 = require("./constants");
5
+ function parseGitLogEntries(entries) {
6
+ return entries.map((entry) => {
7
+ const [commitHash, committer, date] = entry.split(constants_1.gammaDelimiter);
8
+ return { commitHash, committer, date: new Date(date) };
9
+ });
10
+ }
11
+ exports.parseGitLogEntries = parseGitLogEntries;
12
+ //# sourceMappingURL=parse-git-log-entries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-git-log-entries.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/parse-git-log-entries.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAG7C,SAAgB,kBAAkB,CAAC,OAAiB;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,0BAAc,CAAC,CAAC;QAClE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAY,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AALD,gDAKC"}
@@ -0,0 +1,6 @@
1
+ import { MonthlyData } from './types';
2
+ export declare function parseMonthly(startDate: Date, endDate: Date, entries: {
3
+ commitHash: string;
4
+ committer: string;
5
+ date: string;
6
+ }[]): MonthlyData[];
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMonthly = void 0;
4
+ const date_fns_1 = require("date-fns");
5
+ function parseMonthly(startDate, endDate, entries) {
6
+ const monthly = [];
7
+ const dates = [startDate, endDate];
8
+ const ival = {
9
+ start: (0, date_fns_1.min)(dates),
10
+ end: (0, date_fns_1.max)(dates),
11
+ };
12
+ const range = (0, date_fns_1.eachMonthOfInterval)(ival);
13
+ for (const idxr in range) {
14
+ const idx = parseInt(idxr);
15
+ if (idx + 1 >= range.length) {
16
+ continue;
17
+ }
18
+ const [start, end] = [range[idx], range[idx + 1]];
19
+ const month = {
20
+ name: (0, date_fns_1.format)(start, 'LLLL yyyy'),
21
+ start,
22
+ end,
23
+ committers: {},
24
+ };
25
+ for (const rec of entries) {
26
+ if ((0, date_fns_1.isWithinInterval)(new Date(rec.date), { start, end })) {
27
+ month.committers[rec.committer] = month.committers[rec.committer] || [];
28
+ month.committers[rec.committer].push({
29
+ hash: rec.commitHash,
30
+ date: rec.date,
31
+ });
32
+ }
33
+ }
34
+ if (Object.keys(month.committers).length > 0) {
35
+ monthly.push(month);
36
+ }
37
+ }
38
+ return monthly;
39
+ }
40
+ exports.parseMonthly = parseMonthly;
41
+ //# sourceMappingURL=parse-monthly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-monthly.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/parse-monthly.ts"],"names":[],"mappings":";;;AAAA,uCAMkB;AAGlB,SAAgB,YAAY,CAC1B,SAAe,EACf,OAAa,EACb,OAAkE;IAElE,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,IAAA,cAAG,EAAC,KAAK,CAAC;QACjB,GAAG,EAAE,IAAA,cAAG,EAAC,KAAK,CAAC;KAChB,CAAC;IACF,MAAM,KAAK,GAAG,IAAA,8BAAmB,EAAC,IAAI,CAAC,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAgB;YACzB,IAAI,EAAE,IAAA,iBAAM,EAAC,KAAK,EAAE,WAAW,CAAC;YAChC,KAAK;YACL,GAAG;YACH,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,IAAA,2BAAgB,EAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBACzD,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACxE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;oBACnC,IAAI,EAAE,GAAG,CAAC,UAAU;oBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAxCD,oCAwCC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=print-committers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-committers.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/print-committers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { MonthlyData } from './types';
2
+ export declare function printMonthly(monthlyData: MonthlyData[]): void;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.printMonthly = void 0;
4
+ function printMonthly(monthlyData) {
5
+ /*
6
+ if (!Object.keys(monthlyData).length) {
7
+ console.log('NO COMMITTERS IN PERIOD');
8
+ return;
9
+ }
10
+
11
+ const rows = monthlyData
12
+ .flatMap((r) => {
13
+ return Object.entries(r.committers).flatMap(([committer, commits]) =>
14
+ commits.flatMap((commit) => ({ month: r.name, committer, commit }))
15
+ );
16
+ })
17
+ .map((r) => ({
18
+ ...r,
19
+ flags: { newMonth: true, newCommitter: true } as any,
20
+ }));
21
+
22
+ // ugly flag hack for now
23
+ rows.forEach((r, idx) => {
24
+ let newMonth = true;
25
+ let newCommitter = true;
26
+ if (idx == 0 || r.month !== rows[idx - 1].month) {
27
+ // first row / new month? always show both
28
+ } else if (r.committer !== rows[idx - 1].committer) {
29
+ // month's same but new committer
30
+ newMonth = false;
31
+ } else {
32
+ // show both
33
+ newMonth = false;
34
+ newCommitter = false;
35
+ }
36
+
37
+ r.flags = { newMonth, newCommitter };
38
+ });
39
+
40
+ const distinctCommitters = rows.reduce(
41
+ (arr, row) => (arr.includes(row.committer) ? arr : [...arr, row.committer]),
42
+ []
43
+ );
44
+
45
+ console.log('\n');
46
+ ux.table(rows, {
47
+ month: {
48
+ header: 'Month',
49
+ minWidth: 20,
50
+ get: (row) => (row.flags.newMonth ? row.month : ''),
51
+ },
52
+ committer: {
53
+ header: 'Contributor',
54
+ minWidth: 25,
55
+ get: (row) => (row.flags.newCommitter ? row.committer : ''),
56
+ },
57
+ commit: {
58
+ header: 'Commit SHA',
59
+ get: (row) => row.commit.hash,
60
+ minWidth: 15,
61
+ },
62
+ date: {
63
+ header: 'Commit Date',
64
+ get: (row) => row.commit.date,
65
+ minWidth: 20,
66
+ },
67
+ // flags: {}
68
+ });
69
+
70
+ const unique = distinctCommitters.sort();
71
+ console.log(
72
+ `\n\n\nThere were ${unique.length} contributors reported: ${unique.join(
73
+ ', '
74
+ )}\n`
75
+ );
76
+ */
77
+ }
78
+ exports.printMonthly = printMonthly;
79
+ //# sourceMappingURL=print-monthly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print-monthly.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/print-monthly.ts"],"names":[],"mappings":";;;AAEA,SAAgB,YAAY,CAAC,WAA0B;IACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAuEE;AACJ,CAAC;AAzED,oCAyEC"}
@@ -0,0 +1,26 @@
1
+ export type Commit = {
2
+ commitHash: string;
3
+ committer: string;
4
+ date: Date;
5
+ };
6
+ export type CommitterCommits = {
7
+ name: string;
8
+ commits: string[];
9
+ };
10
+ export type CommitterCount = {
11
+ name: string;
12
+ count: number;
13
+ };
14
+ export type MonthlyData = {
15
+ name: string;
16
+ start: Date;
17
+ end: Date;
18
+ committers: Record<string, {
19
+ hash: string;
20
+ date: string;
21
+ }[]>;
22
+ };
23
+ export type SortedCommitterInfo = {
24
+ committers: CommitterCommits[];
25
+ monthly: MonthlyData[];
26
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../libs/report/committers/src/lib/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ # diagnostics
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build diagnostics` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test diagnostics` to execute the unit tests via [Jest](https://jestjs.io).
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@herodevs/report-diagnostics",
3
+ "version": "0.0.1",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./src/index.js",
9
+ "typings": "./src/index.d.ts",
10
+ "private": true
11
+ }