@hugojosefson/cli 0.11.0 → 0.12.0

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/esm/deno.js +16 -8
  2. package/esm/node_modules/@conventional-changelog/template/LICENSE.md +21 -0
  3. package/esm/node_modules/@conventional-changelog/template/README.md +66 -0
  4. package/esm/node_modules/@conventional-changelog/template/dist/elements.d.ts +78 -0
  5. package/esm/node_modules/@conventional-changelog/template/dist/elements.d.ts.map +1 -0
  6. package/esm/node_modules/@conventional-changelog/template/dist/elements.js +132 -0
  7. package/esm/node_modules/@conventional-changelog/template/dist/index.d.ts +6 -0
  8. package/esm/node_modules/@conventional-changelog/template/dist/index.d.ts.map +1 -0
  9. package/esm/node_modules/@conventional-changelog/template/dist/index.js +5 -0
  10. package/esm/node_modules/@conventional-changelog/template/dist/legacy.d.ts +20 -0
  11. package/esm/node_modules/@conventional-changelog/template/dist/legacy.d.ts.map +1 -0
  12. package/esm/node_modules/@conventional-changelog/template/dist/legacy.js +22 -0
  13. package/esm/node_modules/@conventional-changelog/template/dist/references.d.ts +43 -0
  14. package/esm/node_modules/@conventional-changelog/template/dist/references.d.ts.map +1 -0
  15. package/esm/node_modules/@conventional-changelog/template/dist/references.js +82 -0
  16. package/esm/node_modules/@conventional-changelog/template/dist/templates.d.ts +74 -0
  17. package/esm/node_modules/@conventional-changelog/template/dist/templates.d.ts.map +1 -0
  18. package/esm/node_modules/@conventional-changelog/template/dist/templates.js +125 -0
  19. package/esm/node_modules/@conventional-changelog/template/dist/types/commit.d.ts +37 -0
  20. package/esm/node_modules/@conventional-changelog/template/dist/types/commit.d.ts.map +1 -0
  21. package/esm/node_modules/@conventional-changelog/template/dist/types/commit.js +2 -0
  22. package/esm/node_modules/@conventional-changelog/template/dist/types/context.d.ts +113 -0
  23. package/esm/node_modules/@conventional-changelog/template/dist/types/context.d.ts.map +1 -0
  24. package/esm/node_modules/@conventional-changelog/template/dist/types/context.js +2 -0
  25. package/esm/node_modules/@conventional-changelog/template/dist/types/index.d.ts +4 -0
  26. package/esm/node_modules/@conventional-changelog/template/dist/types/index.d.ts.map +1 -0
  27. package/esm/node_modules/@conventional-changelog/template/dist/types/index.js +2 -0
  28. package/esm/node_modules/@conventional-changelog/template/dist/types/utils.d.ts +2 -0
  29. package/esm/node_modules/@conventional-changelog/template/dist/types/utils.d.ts.map +1 -0
  30. package/esm/node_modules/@conventional-changelog/template/dist/types/utils.js +2 -0
  31. package/esm/node_modules/@conventional-changelog/template/package.json +38 -0
  32. package/esm/node_modules/@simple-libs/stream-utils/LICENSE +21 -0
  33. package/esm/node_modules/@simple-libs/stream-utils/README.md +79 -0
  34. package/esm/node_modules/@simple-libs/stream-utils/dist/index.d.ts +51 -0
  35. package/esm/node_modules/@simple-libs/stream-utils/dist/index.d.ts.map +1 -0
  36. package/esm/node_modules/@simple-libs/stream-utils/dist/index.js +116 -0
  37. package/esm/node_modules/@simple-libs/stream-utils/package.json +38 -0
  38. package/esm/node_modules/argue-cli/LICENSE +21 -0
  39. package/esm/node_modules/argue-cli/README.md +239 -0
  40. package/esm/node_modules/argue-cli/dist/args.d.ts +30 -0
  41. package/esm/node_modules/argue-cli/dist/args.d.ts.map +1 -0
  42. package/esm/node_modules/argue-cli/dist/argv.d.ts +14 -0
  43. package/esm/node_modules/argue-cli/dist/argv.d.ts.map +1 -0
  44. package/esm/node_modules/argue-cli/dist/core.d.ts +24 -0
  45. package/esm/node_modules/argue-cli/dist/core.d.ts.map +1 -0
  46. package/esm/node_modules/argue-cli/dist/index.d.ts +6 -0
  47. package/esm/node_modules/argue-cli/dist/index.d.ts.map +1 -0
  48. package/esm/node_modules/argue-cli/dist/index.js +254 -0
  49. package/esm/node_modules/argue-cli/dist/index.js.map +1 -0
  50. package/esm/node_modules/argue-cli/dist/options.d.ts +9 -0
  51. package/esm/node_modules/argue-cli/dist/options.d.ts.map +1 -0
  52. package/esm/node_modules/argue-cli/dist/types.d.ts +16 -0
  53. package/esm/node_modules/argue-cli/dist/types.d.ts.map +1 -0
  54. package/esm/node_modules/argue-cli/dist/utils.d.ts +24 -0
  55. package/esm/node_modules/argue-cli/dist/utils.d.ts.map +1 -0
  56. package/esm/node_modules/argue-cli/package.json +34 -0
  57. package/esm/node_modules/conventional-changelog-core/node_modules/conventional-changelog-writer/LICENSE.md +21 -0
  58. package/esm/node_modules/conventional-changelog-core/node_modules/conventional-changelog-writer/README.md +369 -0
  59. package/esm/node_modules/conventional-changelog-core/node_modules/conventional-changelog-writer/package.json +53 -0
  60. package/esm/node_modules/conventional-changelog-core/node_modules/conventional-commits-filter/LICENSE +21 -0
  61. package/esm/node_modules/conventional-changelog-core/node_modules/conventional-commits-filter/README.md +184 -0
  62. package/esm/node_modules/conventional-changelog-core/node_modules/conventional-commits-filter/package.json +31 -0
  63. package/esm/node_modules/conventional-changelog-core/node_modules/conventional-commits-parser/LICENSE.md +21 -0
  64. package/esm/node_modules/conventional-changelog-core/node_modules/conventional-commits-parser/README.md +383 -0
  65. package/esm/node_modules/conventional-changelog-core/node_modules/conventional-commits-parser/package.json +47 -0
  66. package/esm/node_modules/conventional-changelog-writer/README.md +49 -342
  67. package/esm/node_modules/conventional-changelog-writer/dist/cli/index.d.ts +3 -0
  68. package/esm/node_modules/conventional-changelog-writer/dist/cli/index.d.ts.map +1 -0
  69. package/esm/node_modules/conventional-changelog-writer/dist/cli/index.js +68 -0
  70. package/esm/node_modules/conventional-changelog-writer/dist/cli/utils.d.ts +4 -0
  71. package/esm/node_modules/conventional-changelog-writer/dist/cli/utils.d.ts.map +1 -0
  72. package/esm/node_modules/conventional-changelog-writer/dist/cli/utils.js +39 -0
  73. package/esm/node_modules/conventional-changelog-writer/dist/commit.d.ts +10 -0
  74. package/esm/node_modules/conventional-changelog-writer/dist/commit.d.ts.map +1 -0
  75. package/esm/node_modules/conventional-changelog-writer/dist/commit.js +43 -0
  76. package/esm/node_modules/conventional-changelog-writer/dist/context.d.ts +27 -0
  77. package/esm/node_modules/conventional-changelog-writer/dist/context.d.ts.map +1 -0
  78. package/esm/node_modules/conventional-changelog-writer/dist/context.js +134 -0
  79. package/esm/node_modules/conventional-changelog-writer/dist/index.d.ts +7 -0
  80. package/esm/node_modules/conventional-changelog-writer/dist/index.d.ts.map +1 -0
  81. package/esm/node_modules/conventional-changelog-writer/dist/index.js +6 -0
  82. package/esm/node_modules/conventional-changelog-writer/dist/options.d.ts +25 -0
  83. package/esm/node_modules/conventional-changelog-writer/dist/options.d.ts.map +1 -0
  84. package/esm/node_modules/conventional-changelog-writer/dist/options.js +79 -0
  85. package/esm/node_modules/conventional-changelog-writer/dist/template.d.ts +10 -0
  86. package/esm/node_modules/conventional-changelog-writer/dist/template.d.ts.map +1 -0
  87. package/esm/node_modules/conventional-changelog-writer/dist/template.js +18 -0
  88. package/esm/node_modules/conventional-changelog-writer/dist/types/index.d.ts +8 -0
  89. package/esm/node_modules/conventional-changelog-writer/dist/types/index.d.ts.map +1 -0
  90. package/esm/node_modules/conventional-changelog-writer/dist/types/index.js +2 -0
  91. package/esm/node_modules/conventional-changelog-writer/dist/types/options.d.ts +122 -0
  92. package/esm/node_modules/conventional-changelog-writer/dist/types/options.d.ts.map +1 -0
  93. package/esm/node_modules/conventional-changelog-writer/dist/types/options.js +2 -0
  94. package/esm/node_modules/conventional-changelog-writer/dist/types/utils.d.ts +9 -0
  95. package/esm/node_modules/conventional-changelog-writer/dist/types/utils.d.ts.map +1 -0
  96. package/esm/node_modules/conventional-changelog-writer/dist/types/utils.js +2 -0
  97. package/esm/node_modules/conventional-changelog-writer/dist/utils.d.ts +20 -0
  98. package/esm/node_modules/conventional-changelog-writer/dist/utils.d.ts.map +1 -0
  99. package/esm/node_modules/conventional-changelog-writer/dist/utils.js +70 -0
  100. package/esm/node_modules/conventional-changelog-writer/dist/writers.d.ts +29 -0
  101. package/esm/node_modules/conventional-changelog-writer/dist/writers.d.ts.map +1 -0
  102. package/esm/node_modules/conventional-changelog-writer/dist/writers.js +94 -0
  103. package/esm/node_modules/conventional-changelog-writer/package.json +24 -26
  104. package/esm/node_modules/conventional-commits-filter/README.md +51 -170
  105. package/esm/node_modules/conventional-commits-filter/dist/RevertedCommitsFilter.d.ts +17 -0
  106. package/esm/node_modules/conventional-commits-filter/dist/RevertedCommitsFilter.d.ts.map +1 -0
  107. package/esm/node_modules/conventional-commits-filter/dist/RevertedCommitsFilter.js +46 -0
  108. package/esm/node_modules/conventional-commits-filter/dist/filters.d.ts +19 -0
  109. package/esm/node_modules/conventional-commits-filter/dist/filters.d.ts.map +1 -0
  110. package/esm/node_modules/conventional-commits-filter/dist/filters.js +34 -0
  111. package/esm/node_modules/conventional-commits-filter/dist/index.d.ts +4 -0
  112. package/esm/node_modules/conventional-commits-filter/dist/index.d.ts.map +1 -0
  113. package/esm/node_modules/conventional-commits-filter/dist/index.js +3 -0
  114. package/esm/node_modules/conventional-commits-filter/dist/types.d.ts +6 -0
  115. package/esm/node_modules/conventional-commits-filter/dist/types.d.ts.map +1 -0
  116. package/esm/node_modules/conventional-commits-filter/dist/types.js +2 -0
  117. package/esm/node_modules/conventional-commits-filter/dist/utils.d.ts +16 -0
  118. package/esm/node_modules/conventional-commits-filter/dist/utils.d.ts.map +1 -0
  119. package/esm/node_modules/conventional-commits-filter/dist/utils.js +43 -0
  120. package/esm/node_modules/conventional-commits-filter/package.json +22 -16
  121. package/esm/node_modules/conventional-commits-parser/README.md +49 -353
  122. package/esm/node_modules/conventional-commits-parser/dist/CommitParser.d.ts +40 -0
  123. package/esm/node_modules/conventional-commits-parser/dist/CommitParser.d.ts.map +1 -0
  124. package/esm/node_modules/conventional-commits-parser/dist/CommitParser.js +319 -0
  125. package/esm/node_modules/conventional-commits-parser/dist/cli/index.d.ts +3 -0
  126. package/esm/node_modules/conventional-commits-parser/dist/cli/index.d.ts.map +1 -0
  127. package/esm/node_modules/conventional-commits-parser/dist/cli/index.js +67 -0
  128. package/esm/node_modules/conventional-commits-parser/dist/cli/options.d.ts +3 -0
  129. package/esm/node_modules/conventional-commits-parser/dist/cli/options.d.ts.map +1 -0
  130. package/esm/node_modules/conventional-commits-parser/dist/cli/options.js +40 -0
  131. package/esm/node_modules/conventional-commits-parser/dist/cli/utils.d.ts +5 -0
  132. package/esm/node_modules/conventional-commits-parser/dist/cli/utils.d.ts.map +1 -0
  133. package/esm/node_modules/conventional-commits-parser/dist/cli/utils.js +49 -0
  134. package/esm/node_modules/conventional-commits-parser/dist/index.d.ts +4 -0
  135. package/esm/node_modules/conventional-commits-parser/dist/index.d.ts.map +1 -0
  136. package/esm/node_modules/conventional-commits-parser/dist/index.js +3 -0
  137. package/esm/node_modules/conventional-commits-parser/dist/options.d.ts +3 -0
  138. package/esm/node_modules/conventional-commits-parser/dist/options.d.ts.map +1 -0
  139. package/esm/node_modules/conventional-commits-parser/dist/options.js +27 -0
  140. package/esm/node_modules/conventional-commits-parser/dist/regex.d.ts +8 -0
  141. package/esm/node_modules/conventional-commits-parser/dist/regex.d.ts.map +1 -0
  142. package/esm/node_modules/conventional-commits-parser/dist/regex.js +63 -0
  143. package/esm/node_modules/conventional-commits-parser/dist/stream.d.ts +14 -0
  144. package/esm/node_modules/conventional-commits-parser/dist/stream.d.ts.map +1 -0
  145. package/esm/node_modules/conventional-commits-parser/dist/stream.js +38 -0
  146. package/esm/node_modules/conventional-commits-parser/dist/types.d.ts +100 -0
  147. package/esm/node_modules/conventional-commits-parser/dist/types.d.ts.map +1 -0
  148. package/esm/node_modules/conventional-commits-parser/dist/types.js +2 -0
  149. package/esm/node_modules/conventional-commits-parser/dist/utils.d.ts +41 -0
  150. package/esm/node_modules/conventional-commits-parser/dist/utils.d.ts.map +1 -0
  151. package/esm/node_modules/conventional-commits-parser/dist/utils.js +75 -0
  152. package/esm/node_modules/conventional-commits-parser/package.json +22 -23
  153. package/esm/src/cli/command-help.js +15 -0
  154. package/esm/src/cli/repair-configuration-description.js +98 -0
  155. package/esm/src/cli/run-changelog.js +51 -0
  156. package/esm/src/cli/run-cli.js +8 -0
  157. package/esm/src/features/built-in-feature-registry.js +2 -0
  158. package/esm/src/features/changelog-feature.js +155 -0
  159. package/esm/src/features/github-ci-artifacts.js +17 -3
  160. package/esm/src/features/github-ci-runtime-matrix.js +50 -0
  161. package/esm/src/features/github-release-publish-artifacts.js +5 -4
  162. package/esm/src/features/github-release-publish-feature.js +4 -0
  163. package/esm/src/features/github-workflow-cache.js +18 -0
  164. package/esm/src/features/workflow-deno.js +1 -1
  165. package/esm/src/release/changelog-markdown.js +41 -0
  166. package/esm/src/release/changelog.js +155 -7
  167. package/esm/src/release/format-changelog.js +15 -0
  168. package/esm/src/release/migrate-changelog.js +92 -0
  169. package/esm/src/release/publish-github.js +7 -3
  170. package/esm/src/release/publish-tag-prepare.js +63 -78
  171. package/esm/src/release/release-history.js +53 -0
  172. package/npm-dependencies.lock.json +115 -48
  173. package/package.json +5 -3
  174. package/esm/node_modules/conventional-commits-parser/node_modules/meow/build/dependencies.js +0 -11036
  175. package/esm/node_modules/conventional-commits-parser/node_modules/meow/build/index.d.ts +0 -1416
  176. package/esm/node_modules/conventional-commits-parser/node_modules/meow/build/index.js +0 -100
  177. package/esm/node_modules/conventional-commits-parser/node_modules/meow/build/licenses.md +0 -1767
  178. package/esm/node_modules/conventional-commits-parser/node_modules/meow/build/options.js +0 -92
  179. package/esm/node_modules/conventional-commits-parser/node_modules/meow/build/parser.js +0 -84
  180. package/esm/node_modules/conventional-commits-parser/node_modules/meow/build/utils.js +0 -7
  181. package/esm/node_modules/conventional-commits-parser/node_modules/meow/build/validate.js +0 -122
  182. package/esm/node_modules/conventional-commits-parser/node_modules/meow/license +0 -9
  183. package/esm/node_modules/conventional-commits-parser/node_modules/meow/package.json +0 -107
  184. package/esm/node_modules/conventional-commits-parser/node_modules/meow/readme.md +0 -314
  185. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core/node_modules/conventional-changelog-writer}/cli.mjs +0 -0
  186. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core/node_modules/conventional-changelog-writer}/index.js +0 -0
  187. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core/node_modules/conventional-changelog-writer}/lib/util.js +0 -0
  188. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core/node_modules/conventional-changelog-writer}/templates/commit.hbs +0 -0
  189. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core/node_modules/conventional-changelog-writer}/templates/footer.hbs +0 -0
  190. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core/node_modules/conventional-changelog-writer}/templates/header.hbs +0 -0
  191. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core/node_modules/conventional-changelog-writer}/templates/template.hbs +0 -0
  192. /package/esm/node_modules/{conventional-commits-filter → conventional-changelog-core/node_modules/conventional-commits-filter}/index.js +0 -0
  193. /package/esm/node_modules/{conventional-commits-parser → conventional-changelog-core/node_modules/conventional-commits-parser}/cli.mjs +0 -0
  194. /package/esm/node_modules/{conventional-commits-parser → conventional-changelog-core/node_modules/conventional-commits-parser}/index.js +0 -0
  195. /package/esm/node_modules/{conventional-commits-parser → conventional-changelog-core/node_modules/conventional-commits-parser}/lib/parser.js +0 -0
  196. /package/esm/node_modules/{conventional-commits-parser → conventional-changelog-core/node_modules/conventional-commits-parser}/lib/regex.js +0 -0
  197. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/build/dependencies.js +0 -0
  198. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/build/index.d.ts +0 -0
  199. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/build/index.js +0 -0
  200. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/build/licenses.md +0 -0
  201. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/build/options.js +0 -0
  202. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/build/parser.js +0 -0
  203. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/build/utils.js +0 -0
  204. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/build/validate.js +0 -0
  205. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/license +0 -0
  206. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/package.json +0 -0
  207. /package/esm/node_modules/{conventional-changelog-writer → conventional-changelog-core}/node_modules/meow/readme.md +0 -0
@@ -0,0 +1,94 @@
1
+ import { Transform } from 'stream';
2
+ import { createTemplateRenderer } from './template.js';
3
+ import { getFinalContext } from './context.js';
4
+ import { getFinalOptions, getGenerateOnFunction } from './options.js';
5
+ import { transformCommit } from './commit.js';
6
+ export function writeChangelog(context = {}, options = {}, includeDetails = false) {
7
+ const finalOptions = getFinalOptions(options);
8
+ const finalContext = getFinalContext(context, finalOptions);
9
+ const generateOn = getGenerateOnFunction(finalContext, finalOptions);
10
+ const renderTemplate = createTemplateRenderer(finalContext, finalOptions);
11
+ const prepResult = includeDetails
12
+ ? (log, keyCommit) => ({
13
+ log,
14
+ keyCommit
15
+ })
16
+ : (log) => log;
17
+ return async function* write(commits) {
18
+ const { transform, reverse, doFlush, skip } = finalOptions;
19
+ let chunk;
20
+ let commit;
21
+ let keyCommit;
22
+ let commitsGroup = [];
23
+ let neverGenerated = true;
24
+ let result = '';
25
+ let savedKeyCommit = null;
26
+ let firstRelease = true;
27
+ for await (chunk of commits) {
28
+ commit = await transformCommit(chunk, transform, finalContext, finalOptions);
29
+ keyCommit = commit || chunk;
30
+ if (skip?.(keyCommit)) {
31
+ continue;
32
+ }
33
+ // previous blocks of logs
34
+ if (reverse) {
35
+ if (commit) {
36
+ commitsGroup.push(commit);
37
+ }
38
+ if (generateOn(keyCommit, commitsGroup)) {
39
+ neverGenerated = false;
40
+ result = await renderTemplate(commitsGroup, keyCommit, result.length > 0);
41
+ commitsGroup = [];
42
+ yield prepResult(result, keyCommit);
43
+ }
44
+ }
45
+ else {
46
+ if (generateOn(keyCommit, commitsGroup)) {
47
+ neverGenerated = false;
48
+ result = await renderTemplate(commitsGroup, savedKeyCommit, result.length > 0);
49
+ commitsGroup = [];
50
+ if (!firstRelease || doFlush) {
51
+ yield prepResult(result, savedKeyCommit);
52
+ }
53
+ firstRelease = false;
54
+ savedKeyCommit = keyCommit;
55
+ }
56
+ if (commit) {
57
+ commitsGroup.push(commit);
58
+ }
59
+ }
60
+ }
61
+ if (!doFlush && (reverse || neverGenerated)) {
62
+ return;
63
+ }
64
+ result = await renderTemplate(commitsGroup, savedKeyCommit, result.length > 0);
65
+ yield prepResult(result, savedKeyCommit);
66
+ };
67
+ }
68
+ /**
69
+ * Creates a transform stream which takes commits and outputs changelog entries.
70
+ * @param context - TemplateContext for changelog template.
71
+ * @param options - Options for changelog template.
72
+ * @param includeDetails - Whether to emit details object instead of changelog entry.
73
+ * @returns Transform stream which takes commits and outputs changelog entries.
74
+ */
75
+ export function writeChangelogStream(context, options, includeDetails = false) {
76
+ return Transform.from(writeChangelog(context, options, includeDetails));
77
+ }
78
+ /**
79
+ * Create a changelog string from commits.
80
+ * @param commits - Commits to generate changelog from.
81
+ * @param context - TemplateContext for changelog template.
82
+ * @param options - Options for changelog template.
83
+ * @returns Changelog string.
84
+ */
85
+ export async function writeChangelogString(commits, context, options) {
86
+ const changelogAsyncIterable = writeChangelog(context, options)(commits);
87
+ let changelog = '';
88
+ let chunk;
89
+ for await (chunk of changelogAsyncIterable) {
90
+ changelog += chunk;
91
+ }
92
+ return changelog;
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy93cml0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFVbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDOUMsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDdEIsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQXlCN0MsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsT0FBTyxHQUE0QixFQUFFLEVBQ3JDLE9BQU8sR0FBb0IsRUFBRSxFQUM3QixjQUFjLEdBQUcsS0FBSztJQUV0QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDN0MsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUMzRCxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDcEUsTUFBTSxjQUFjLEdBQUcsc0JBQXNCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQ3pFLE1BQU0sVUFBVSxHQUFHLGNBQWM7UUFDL0IsQ0FBQyxDQUFDLENBQUMsR0FBVyxFQUFFLFNBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsR0FBRztZQUNILFNBQVM7U0FDVixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUE7SUFFeEIsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FDMUIsT0FBaUQ7UUFFakQsTUFBTSxFQUNKLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLElBQUksRUFDTCxHQUFH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
@@ -1,30 +1,23 @@
1
1
  {
2
2
  "name": "conventional-changelog-writer",
3
- "version": "7.0.1",
4
- "description": "Write logs based on conventional commits and templates",
5
- "bugs": {
6
- "url": "https://github.com/conventional-changelog/conventional-changelog/issues"
7
- },
8
- "homepage": "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-writer#readme",
3
+ "type": "module",
4
+ "version": "9.2.1",
5
+ "description": "Write logs based on conventional commits and templates.",
9
6
  "author": {
10
7
  "name": "Steve Mao",
11
8
  "email": "maochenyan@gmail.com",
12
9
  "url": "https://github.com/stevemao"
13
10
  },
11
+ "license": "MIT",
12
+ "homepage": "https://conventional-changelog.js.org/changelog-writer/",
14
13
  "repository": {
15
14
  "type": "git",
16
- "url": "https://github.com/conventional-changelog/conventional-changelog.git"
15
+ "url": "https://github.com/conventional-changelog/conventional-changelog.git",
16
+ "directory": "packages/conventional-changelog-writer"
17
17
  },
18
- "license": "MIT",
19
- "engines": {
20
- "node": ">=16"
18
+ "bugs": {
19
+ "url": "https://github.com/conventional-changelog/conventional-changelog/issues"
21
20
  },
22
- "files": [
23
- "index.js",
24
- "cli.mjs",
25
- "lib",
26
- "templates"
27
- ],
28
21
  "keywords": [
29
22
  "conventional-changelog-writer",
30
23
  "changelog",
@@ -35,19 +28,24 @@
35
28
  "writing",
36
29
  "logs"
37
30
  ],
31
+ "engines": {
32
+ "node": ">=22"
33
+ },
34
+ "exports": {
35
+ "types": "./dist/index.d.ts",
36
+ "import": "./dist/index.js"
37
+ },
38
+ "files": [
39
+ "dist"
40
+ ],
38
41
  "dependencies": {
39
- "handlebars": "^4.7.7",
40
- "json-stringify-safe": "^5.0.1",
41
- "meow": "^12.0.1",
42
+ "@simple-libs/stream-utils": "^2.0.0",
43
+ "argue-cli": "^3.1.0",
42
44
  "semver": "^7.5.2",
43
- "split2": "^4.0.0",
44
- "conventional-commits-filter": "^4.0.0"
45
+ "@conventional-changelog/template": "^1.3.0",
46
+ "conventional-commits-filter": "^6.0.1"
45
47
  },
46
48
  "bin": {
47
- "conventional-changelog-writer": "cli.mjs"
48
- },
49
- "devDependencies": {
50
- "dedent": "^1.0.0",
51
- "forceable-tty": "^0.1.0"
49
+ "conventional-changelog-writer": "./dist/cli/index.js"
52
50
  }
53
51
  }
@@ -1,184 +1,65 @@
1
- # conventional-commits-filter [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![Coverage percentage][coverage-image]][coverage-url]
2
- > Filter out reverted commits parsed by conventional-commits-parser
1
+ # conventional-commits-filter
3
2
 
3
+ [![ESM-only package][package]][package-url]
4
+ [![NPM version][npm]][npm-url]
5
+ [![Node version][node]][node-url]
6
+ [![Dependencies status][deps]][deps-url]
7
+ [![Install size][size]][size-url]
8
+ [![Build status][build]][build-url]
9
+ [![Coverage status][coverage]][coverage-url]
10
+
11
+ [package]: https://img.shields.io/badge/package-ESM--only-ffe536.svg
12
+ [package-url]: https://nodejs.org/api/esm.html
13
+
14
+ [npm]: https://img.shields.io/npm/v/conventional-commits-filter.svg
15
+ [npm-url]: https://npmjs.com/package/conventional-commits-filter
16
+
17
+ [node]: https://img.shields.io/node/v/conventional-commits-filter.svg
18
+ [node-url]: https://nodejs.org
19
+
20
+ [deps]: https://img.shields.io/librariesio/release/npm/conventional-commits-filter
21
+ [deps-url]: https://libraries.io/npm/conventional-commits-filter
22
+
23
+ [size]: https://packagephobia.com/badge?p=conventional-commits-filter
24
+ [size-url]: https://packagephobia.com/result?p=conventional-commits-filter
25
+
26
+ [build]: https://img.shields.io/github/actions/workflow/status/conventional-changelog/conventional-changelog/tests.yaml?branch=master
27
+ [build-url]: https://github.com/conventional-changelog/conventional-changelog/actions
28
+
29
+ [coverage]: https://coveralls.io/repos/github/conventional-changelog/conventional-changelog/badge.svg?branch=master
30
+ [coverage-url]: https://coveralls.io/github/conventional-changelog/conventional-changelog?branch=master
31
+
32
+ Filter out reverted commits parsed by conventional-commits-parser.
4
33
 
5
34
  ## Install
6
35
 
7
- ```sh
8
- $ npm install --save conventional-commits-filter
36
+ ```bash
37
+ # pnpm
38
+ pnpm add conventional-commits-filter
39
+ # yarn
40
+ yarn add conventional-commits-filter
41
+ # npm
42
+ npm i conventional-commits-filter
9
43
  ```
10
44
 
11
-
12
45
  ## Usage
13
46
 
14
47
  ```js
15
- var conventionalCommitsFilter = require('conventional-commits-filter');
16
-
17
- var commits = [{
18
- type: 'revert',
19
- scope: null,
20
- subject: 'feat(): amazing new module',
21
- header: 'revert: feat(): amazing new module\n',
22
- body: 'This reverts commit 56185b7356766d2b30cfa2406b257080272e0b7a.\n',
23
- footer: null,
24
- notes: [],
25
- references: [],
26
- revert: {
27
- header: 'feat(): amazing new module',
28
- hash: '56185b7356766d2b30cfa2406b257080272e0b7a',
29
- body: null
30
- },
31
- hash: '789d898b5f8422d7f65cc25135af2c1a95a125ac\n',
32
- raw: {
33
- type: 'revert',
34
- scope: null,
35
- subject: 'feat(): amazing new module',
36
- header: 'revert: feat(): amazing new module\n',
37
- body: 'This reverts commit 56185b7356766d2b30cfa2406b257080272e0b7a.\n',
38
- footer: null,
39
- notes: [],
40
- references: [],
41
- revert: {
42
- header: 'feat(): amazing new module',
43
- hash: '56185b7356766d2b30cfa2406b257080272e0b7a',
44
- body: null
45
- },
46
- hash: '789d898b5f8422d7f65cc25135af2c1a95a125ac\n'
47
- }
48
- }, {
49
- type: 'Features',
50
- scope: null,
51
- subject: 'wow',
52
- header: 'amazing new module\n',
53
- body: null,
54
- footer: 'BREAKING CHANGE: Not backward compatible.\n',
55
- notes: [],
56
- references: [],
57
- revert: null,
58
- hash: '56185b',
59
- raw: {
60
- type: 'feat',
61
- scope: null,
62
- subject: 'amazing new module',
63
- header: 'feat(): amazing new module\n',
64
- body: null,
65
- footer: 'BREAKING CHANGE: Not backward compatible.\n',
66
- notes: [],
67
- references: [],
68
- revert: null,
69
- hash: '56185b7356766d2b30cfa2406b257080272e0b7a\n'
70
- }
71
- }, {
72
- type: 'What',
73
- scope: null,
74
- subject: 'new feature',
75
- header: 'feat(): new feature\n',
76
- body: null,
77
- footer: null,
78
- notes: [],
79
- references: [],
80
- revert: null,
81
- hash: '815a3f0',
82
- raw: {
83
- type: 'feat',
84
- scope: null,
85
- subject: 'new feature',
86
- header: 'feat(): new feature\n',
87
- body: null,
88
- footer: null,
89
- notes: [],
90
- references: [],
91
- revert: null,
92
- hash: '815a3f0717bf1dfce007bd076420c609504edcf3\n'
93
- }
94
- }, {
95
- type: 'Chores',
96
- scope: null,
97
- subject: 'first commit',
98
- header: 'chore: first commit\n',
99
- body: null,
100
- footer: null,
101
- notes: [],
102
- references: [],
103
- revert: null,
104
- hash: '74a3e4d6d25',
105
- raw: {
106
- type: 'chore',
107
- scope: null,
108
- subject: 'first commit',
109
- header: 'chore: first commit\n',
110
- body: null,
111
- footer: null,
112
- notes: [],
113
- references: [],
114
- revert: null,
115
- hash: '74a3e4d6d25dee2c0d6483a0a3887417728cbe0a\n'
116
- }
117
- }];
118
-
119
- commits = conventionalCommitsFilter(commits);
120
- console.log(commits);
121
- /*=>
122
- [{
123
- type: 'What',
124
- scope: null,
125
- subject: 'new feature',
126
- header: 'feat(): new feature\n',
127
- body: null,
128
- footer: null,
129
- notes: [],
130
- references: [],
131
- revert: null,
132
- hash: '815a3f0',
133
- raw: {
134
- type: 'feat',
135
- scope: null,
136
- subject: 'new feature',
137
- header: 'feat(): new feature\n',
138
- body: null,
139
- footer: null,
140
- notes: [],
141
- references: [],
142
- revert: null,
143
- hash: '815a3f0717bf1dfce007bd076420c609504edcf3\n'
144
- }
145
- }, {
146
- type: 'Chores',
147
- scope: null,
148
- subject: 'first commit',
149
- header: 'chore: first commit\n',
150
- body: null,
151
- footer: null,
152
- notes: [],
153
- references: [],
154
- revert: null,
155
- hash: '74a3e4d6d25',
156
- raw: {
157
- type: 'chore',
158
- scope: null,
159
- subject: 'first commit',
160
- header: 'chore: first commit\n',
161
- body: null,
162
- footer: null,
163
- notes: [],
164
- references: [],
165
- revert: null,
166
- hash: '74a3e4d6d25dee2c0d6483a0a3887417728cbe0a\n'
167
- }
168
- }]
169
- */
48
+ import { filterRevertedCommitsSync } from 'conventional-commits-filter'
49
+
50
+ // commits parsed by conventional-commits-parser,
51
+ // where one commit reverts another
52
+ const commits = [/* ... */]
53
+
54
+ for (const commit of filterRevertedCommitsSync(commits)) {
55
+ console.log(commit) // reverted commits are filtered out
56
+ }
170
57
  ```
171
58
 
172
- ## License
59
+ ## Documentation
173
60
 
174
- MIT © [Steve Mao]()
61
+ For streams and async iterables helpers and API reference, visit the [documentation website](https://conventional-changelog.js.org/commits-filter/).
175
62
 
63
+ ## License
176
64
 
177
- [npm-image]: https://badge.fury.io/js/conventional-commits-filter.svg
178
- [npm-url]: https://npmjs.org/package/conventional-commits-filter
179
- [travis-image]: https://travis-ci.org/stevemao/conventional-commits-filter.svg?branch=master
180
- [travis-url]: https://travis-ci.org/stevemao/conventional-commits-filter
181
- [daviddm-image]: https://david-dm.org/stevemao/conventional-commits-filter.svg
182
- [daviddm-url]: https://david-dm.org/stevemao/conventional-commits-filter
183
- [coverage-image]: https://coveralls.io/repos/github/conventional-changelog/conventional-changelog/badge.svg?branch=master
184
- [coverage-url]: https://coveralls.io/github/conventional-changelog/conventional-changelog?branch=master
65
+ MIT © [Steve Mao](https://github.com/stevemao)
@@ -0,0 +1,17 @@
1
+ import type { Commit } from './types.js';
2
+ export declare class RevertedCommitsFilter<T extends Commit = Commit> {
3
+ private readonly hold;
4
+ private holdRevertsCount;
5
+ /**
6
+ * Process commit to filter reverted commits
7
+ * @param commit
8
+ * @yields Commit
9
+ */
10
+ process(commit: T): Generator<T, void, unknown>;
11
+ /**
12
+ * Flush all held commits
13
+ * @yields Held commits
14
+ */
15
+ flush(): Generator<T, void, unknown>;
16
+ }
17
+ //# sourceMappingURL=RevertedCommitsFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RevertedCommitsFilter.d.ts","sourceRoot":"","sources":["../src/RevertedCommitsFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAGxC,qBAAa,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,gBAAgB,CAAK;IAE7B;;;;OAIG;IACD,OAAO,CAAC,MAAM,EAAE,CAAC,+BA0BlB;IAED;;;OAGG;IACD,KAAK,gCAON;CACF"}
@@ -0,0 +1,46 @@
1
+ import { findRevertCommit } from './utils.js';
2
+ export class RevertedCommitsFilter {
3
+ hold = new Set();
4
+ holdRevertsCount = 0;
5
+ /**
6
+ * Process commit to filter reverted commits
7
+ * @param commit
8
+ * @yields Commit
9
+ */
10
+ *process(commit) {
11
+ const { hold } = this;
12
+ const revertCommit = findRevertCommit(commit, hold);
13
+ if (revertCommit) {
14
+ hold.delete(revertCommit);
15
+ this.holdRevertsCount--;
16
+ return;
17
+ }
18
+ if (commit.revert) {
19
+ hold.add(commit);
20
+ this.holdRevertsCount++;
21
+ return;
22
+ }
23
+ if (this.holdRevertsCount > 0) {
24
+ hold.add(commit);
25
+ }
26
+ else {
27
+ if (hold.size) {
28
+ yield* hold;
29
+ hold.clear();
30
+ }
31
+ yield commit;
32
+ }
33
+ }
34
+ /**
35
+ * Flush all held commits
36
+ * @yields Held commits
37
+ */
38
+ *flush() {
39
+ const { hold } = this;
40
+ if (hold.size) {
41
+ yield* hold;
42
+ hold.clear();
43
+ }
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmV2ZXJ0ZWRDb21taXRzRmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1JldmVydGVkQ29tbWl0c0ZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFN0MsTUFBTSxPQUFPLHFCQUFxQjtJQUNmLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBSyxDQUFBO0lBQzVCLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUU3Qjs7OztPQUlHO0lBQ0gsQ0FBRSxPQUFPLENBQUMsTUFBUztRQUNqQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ3JCLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUVuRCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFDdkIsT0FBTTtRQUNSLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBQ3ZCLE9BQU07UUFDUixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNkLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQTtnQkFDWCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDZCxDQUFDO1lBRUQsTUFBTSxNQUFNLENBQUE7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILENBQUUsS0FBSztRQUNMLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFFckIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUE7WUFDWCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDZCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -0,0 +1,19 @@
1
+ import type { Commit } from './types.js';
2
+ /**
3
+ * Filter reverted commits.
4
+ * @param commits
5
+ * @yields Commits without reverted commits.
6
+ */
7
+ export declare function filterRevertedCommits<T extends Commit = Commit>(commits: Iterable<T> | AsyncIterable<T>): AsyncGenerator<T, void, unknown>;
8
+ /**
9
+ * Filter reverted commits synchronously.
10
+ * @param commits
11
+ * @yields Commits without reverted commits.
12
+ */
13
+ export declare function filterRevertedCommitsSync<T extends Commit = Commit>(commits: Iterable<T>): Generator<T, void, unknown>;
14
+ /**
15
+ * Filter reverted commits stream.
16
+ * @returns Reverted commits filter stream.
17
+ */
18
+ export declare function filterRevertedCommitsStream(): import("stream").Duplex;
19
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../src/filters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAGxC;;;;GAIG;AACH,wBAAuB,qBAAqB,CAC1C,CAAC,SAAS,MAAM,GAAG,MAAM,EAEzB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,oCASxC;AAED;;;;GAIG;AACH,wBAAiB,yBAAyB,CACxC,CAAC,SAAS,MAAM,GAAG,MAAM,EAEzB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,+BASrB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,4BAE1C"}
@@ -0,0 +1,34 @@
1
+ import { Transform } from 'stream';
2
+ import { RevertedCommitsFilter } from './RevertedCommitsFilter.js';
3
+ /**
4
+ * Filter reverted commits.
5
+ * @param commits
6
+ * @yields Commits without reverted commits.
7
+ */
8
+ export async function* filterRevertedCommits(commits) {
9
+ const filter = new RevertedCommitsFilter();
10
+ for await (const commit of commits) {
11
+ yield* filter.process(commit);
12
+ }
13
+ yield* filter.flush();
14
+ }
15
+ /**
16
+ * Filter reverted commits synchronously.
17
+ * @param commits
18
+ * @yields Commits without reverted commits.
19
+ */
20
+ export function* filterRevertedCommitsSync(commits) {
21
+ const filter = new RevertedCommitsFilter();
22
+ for (const commit of commits) {
23
+ yield* filter.process(commit);
24
+ }
25
+ yield* filter.flush();
26
+ }
27
+ /**
28
+ * Filter reverted commits stream.
29
+ * @returns Reverted commits filter stream.
30
+ */
31
+ export function filterRevertedCommitsStream() {
32
+ return Transform.from(filterRevertedCommits);
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFbEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFbEU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLHFCQUFxQixDQUcxQyxPQUF1QztJQUV2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLHFCQUFxQixFQUFLLENBQUE7SUFFN0MsSUFBSSxLQUFLLEVBQUUsTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDbkMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0FBQ3ZCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxTQUFTLENBQUMsQ0FBQyx5QkFBeUIsQ0FHeEMsT0FBb0I7SUFFcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBcUIsRUFBSyxDQUFBO0lBRTdDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0FBQ3ZCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0FBQzlDLENBQUMifQ==
@@ -0,0 +1,4 @@
1
+ export type { Commit } from './types.js';
2
+ export * from './RevertedCommitsFilter.js';
3
+ export * from './filters.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './RevertedCommitsFilter.js';
2
+ export * from './filters.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQyxjQUFjLGNBQWMsQ0FBQSJ9
@@ -0,0 +1,6 @@
1
+ export type AnyObject = Record<string, any>;
2
+ export interface Commit {
3
+ revert?: AnyObject | null;
4
+ raw?: AnyObject | null;
5
+ }
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAE3C,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACzB,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,16 @@
1
+ import type { AnyObject, Commit } from './types.js';
2
+ /**
3
+ * Match commit with revert data
4
+ * @param object - Commit object
5
+ * @param source - Revert data
6
+ * @returns `true` if commit matches revert data, otherwise `false`
7
+ */
8
+ export declare function isMatch(object: AnyObject, source: AnyObject): boolean;
9
+ /**
10
+ * Find revert commit in set
11
+ * @param commit
12
+ * @param reverts
13
+ * @returns Revert commit if found, otherwise `null`
14
+ */
15
+ export declare function findRevertCommit<T extends Commit>(commit: T, reverts: Set<T>): T | null;
16
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,MAAM,EACP,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,SAAS,WAuBlB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,YAc5E"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Match commit with revert data
3
+ * @param object - Commit object
4
+ * @param source - Revert data
5
+ * @returns `true` if commit matches revert data, otherwise `false`
6
+ */
7
+ export function isMatch(object, source) {
8
+ let aValue;
9
+ let bValue;
10
+ for (const key in source) {
11
+ aValue = object[key];
12
+ bValue = source[key];
13
+ if (typeof aValue === 'string') {
14
+ aValue = aValue.trim();
15
+ }
16
+ if (typeof bValue === 'string') {
17
+ bValue = bValue.trim();
18
+ }
19
+ if (aValue !== bValue) {
20
+ return false;
21
+ }
22
+ }
23
+ return true;
24
+ }
25
+ /**
26
+ * Find revert commit in set
27
+ * @param commit
28
+ * @param reverts
29
+ * @returns Revert commit if found, otherwise `null`
30
+ */
31
+ export function findRevertCommit(commit, reverts) {
32
+ if (!reverts.size) {
33
+ return null;
34
+ }
35
+ const rawCommit = commit.raw || commit;
36
+ for (const revertCommit of reverts) {
37
+ if (revertCommit.revert && isMatch(rawCommit, revertCommit.revert)) {
38
+ return revertCommit;
39
+ }
40
+ }
41
+ return null;
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUNyQixNQUFpQixFQUNqQixNQUFpQjtJQUVqQixJQUFJLE1BQWUsQ0FBQTtJQUNuQixJQUFJLE1BQWUsQ0FBQTtJQUVuQixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDcEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVwQixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDeEIsQ0FBQztRQUVELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN4QixDQUFDO1FBRUQsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFtQixNQUFTLEVBQUUsT0FBZTtJQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFBO0lBRXRDLEtBQUssTUFBTSxZQUFZLElBQUksT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxZQUFZLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkUsT0FBTyxZQUFZLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMifQ==