@savvy-web/silk-effects 9.5.4 → 9.6.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 (143) hide show
  1. package/_virtual/_rolldown/runtime.js +1 -2
  2. package/changesets/api/categories.js +1 -2
  3. package/changesets/api/changelog.js +1 -2
  4. package/changesets/api/dependency-table.js +1 -2
  5. package/changesets/api/linter.js +1 -2
  6. package/changesets/api/transformer.js +1 -2
  7. package/changesets/categories/index.js +1 -2
  8. package/changesets/categories/types.js +1 -2
  9. package/changesets/changelog/formatting.js +1 -2
  10. package/changesets/changelog/getDependencyReleaseLine.js +1 -2
  11. package/changesets/changelog/getReleaseLine.js +20 -57
  12. package/changesets/changelog/index.js +1 -2
  13. package/changesets/changelog/vanilla.js +1 -2
  14. package/changesets/constants.js +1 -2
  15. package/changesets/errors.js +1 -2
  16. package/changesets/index.js +1 -2
  17. package/changesets/markdownlint/index.js +1 -2
  18. package/changesets/markdownlint/rules/content-structure.js +1 -2
  19. package/changesets/markdownlint/rules/dependency-table-format.js +1 -2
  20. package/changesets/markdownlint/rules/heading-hierarchy.js +1 -2
  21. package/changesets/markdownlint/rules/required-sections.js +1 -2
  22. package/changesets/markdownlint/rules/uncategorized-content.js +1 -2
  23. package/changesets/markdownlint/rules/utils.js +1 -2
  24. package/changesets/remark/plugins/aggregate-dependency-tables.js +1 -2
  25. package/changesets/remark/plugins/contributor-footnotes.js +1 -2
  26. package/changesets/remark/plugins/deduplicate-items.js +1 -2
  27. package/changesets/remark/plugins/issue-link-refs.js +1 -2
  28. package/changesets/remark/plugins/maintenance-note.js +1 -2
  29. package/changesets/remark/plugins/merge-sections.js +1 -2
  30. package/changesets/remark/plugins/normalize-format.js +1 -2
  31. package/changesets/remark/plugins/reorder-sections.js +1 -2
  32. package/changesets/remark/presets.js +1 -2
  33. package/changesets/remark/rules/content-structure.js +1 -2
  34. package/changesets/remark/rules/dependency-table-format.js +1 -2
  35. package/changesets/remark/rules/heading-hierarchy.js +1 -2
  36. package/changesets/remark/rules/required-sections.js +1 -2
  37. package/changesets/remark/rules/uncategorized-content.js +1 -2
  38. package/changesets/schemas/changeset.js +1 -2
  39. package/changesets/schemas/dependency-table.js +1 -2
  40. package/changesets/schemas/deps-regen.js +1 -2
  41. package/changesets/schemas/git.js +1 -2
  42. package/changesets/schemas/github.js +1 -2
  43. package/changesets/schemas/options.js +1 -2
  44. package/changesets/schemas/package-scope.js +1 -2
  45. package/changesets/schemas/primitives.js +1 -2
  46. package/changesets/schemas/release-plan.js +1 -2
  47. package/changesets/schemas/version-files.js +1 -2
  48. package/changesets/services/branch-analyzer.js +1 -2
  49. package/changesets/services/changelog.js +1 -2
  50. package/changesets/services/config-inspector.js +1 -2
  51. package/changesets/services/deps-regen.js +1 -2
  52. package/changesets/services/github.js +1 -2
  53. package/changesets/services/maintenance-reason.js +1 -2
  54. package/changesets/services/release-planner.js +1 -2
  55. package/changesets/utils/commit-parser.js +1 -2
  56. package/changesets/utils/dep-diff.js +1 -2
  57. package/changesets/utils/dependency-section.js +1 -2
  58. package/changesets/utils/dependency-table.js +1 -2
  59. package/changesets/utils/git.js +1 -2
  60. package/changesets/utils/issue-refs.js +1 -2
  61. package/changesets/utils/jsonpath.js +1 -2
  62. package/changesets/utils/logger.js +1 -2
  63. package/changesets/utils/markdown-emit.js +42 -19
  64. package/changesets/utils/markdown-link.js +1 -2
  65. package/changesets/utils/publishability.js +1 -2
  66. package/changesets/utils/remark-pipeline.js +2 -50
  67. package/changesets/utils/section-parser.js +33 -64
  68. package/changesets/utils/strip-frontmatter.js +1 -2
  69. package/changesets/utils/version-blocks.js +1 -2
  70. package/changesets/utils/version-files.js +1 -2
  71. package/changesets/vendor/github-info.js +1 -2
  72. package/commitlint/config/factory.js +1 -2
  73. package/commitlint/config/plugins.js +1 -2
  74. package/commitlint/config/rules.js +1 -2
  75. package/commitlint/config/schema.js +1 -2
  76. package/commitlint/detection/dco.js +1 -2
  77. package/commitlint/detection/scopes.js +1 -2
  78. package/commitlint/formatter/format.js +1 -2
  79. package/commitlint/formatter/messages.js +1 -2
  80. package/commitlint/hook/diagnostics/branch.js +1 -2
  81. package/commitlint/hook/diagnostics/cache.js +1 -2
  82. package/commitlint/hook/diagnostics/commitlint-config.js +1 -2
  83. package/commitlint/hook/diagnostics/open-issues.js +1 -2
  84. package/commitlint/hook/diagnostics/package-manager.js +1 -2
  85. package/commitlint/hook/diagnostics/signing.js +1 -2
  86. package/commitlint/hook/envelope.js +1 -2
  87. package/commitlint/hook/output.js +1 -2
  88. package/commitlint/hook/parse-bash-command.js +1 -2
  89. package/commitlint/hook/rules/closes-trailer.js +1 -2
  90. package/commitlint/hook/rules/forbidden-content.js +1 -2
  91. package/commitlint/hook/rules/plan-leakage.js +1 -2
  92. package/commitlint/hook/rules/signing-flag-conflict.js +1 -2
  93. package/commitlint/hook/rules/soft-wrap.js +1 -2
  94. package/commitlint/hook/rules/types.js +1 -2
  95. package/commitlint/hook/rules/verbosity.js +1 -2
  96. package/commitlint/hook/silence-logger.js +1 -2
  97. package/commitlint/index.js +1 -2
  98. package/commitlint/prompt/config.js +1 -2
  99. package/commitlint/prompt/emojis.js +1 -2
  100. package/commitlint/prompt/prompter.js +1 -2
  101. package/commitlint/static.js +1 -2
  102. package/index.d.ts +87 -251
  103. package/index.js +2 -2
  104. package/lint/Handler.js +1 -2
  105. package/lint/cli/sections.js +1 -2
  106. package/lint/cli/templates/markdownlint.gen.js +1 -2
  107. package/lint/config/Preset.js +1 -2
  108. package/lint/config/createConfig.js +1 -2
  109. package/lint/handlers/Biome.js +1 -2
  110. package/lint/handlers/Markdown.js +1 -2
  111. package/lint/handlers/PackageJson.js +1 -2
  112. package/lint/handlers/PnpmWorkspace.js +1 -2
  113. package/lint/handlers/ShellScripts.js +1 -2
  114. package/lint/handlers/TextFiles.js +1 -2
  115. package/lint/handlers/TypeScript.js +1 -2
  116. package/lint/handlers/Yaml.js +1 -2
  117. package/lint/index.js +1 -2
  118. package/lint/utils/Command.js +1 -2
  119. package/lint/utils/Filter.js +1 -2
  120. package/lint/utils/Workspace.js +1 -2
  121. package/package.json +14 -15
  122. package/repos/constants.js +1 -2
  123. package/repos/errors.js +1 -2
  124. package/repos/index.js +1 -2
  125. package/repos/schemas/drift.js +1 -2
  126. package/repos/schemas/manifest.js +1 -2
  127. package/repos/schemas/reports.js +1 -2
  128. package/repos/services/config-store.js +1 -2
  129. package/repos/services/drift.js +1 -2
  130. package/repos/services/lockdown.js +1 -2
  131. package/repos/services/manager.js +1 -2
  132. package/services/BiomeSchemaSync.js +1 -2
  133. package/services/ChangesetConfig.js +1 -2
  134. package/services/ChangesetConfigReader.js +1 -2
  135. package/services/ConfigDiscovery.js +1 -2
  136. package/services/SilkPublishability.js +147 -6
  137. package/services/SilkWorkspaceAnalyzer.js +1 -2
  138. package/turbo/digest.js +1 -2
  139. package/turbo/errors.js +1 -2
  140. package/turbo/index.js +1 -2
  141. package/turbo/schemas/DryRun.js +1 -2
  142. package/turbo/schemas/results.js +1 -2
  143. package/turbo/services/TurboInspector.js +1 -2
@@ -1,96 +1,65 @@
1
1
  import { fromHeading } from "../categories/index.js";
2
- import { parseMarkdown, stringifyMarkdown } from "./remark-pipeline.js";
3
- import { toString } from "mdast-util-to-string";
2
+ import { emitKitMarkdown } from "./markdown-emit.js";
3
+ import { MarkdownTransform, Mdast, Root } from "@effected/markdown";
4
4
 
5
- //#region src/changesets/utils/section-parser.ts
5
+ // src/changesets/utils/section-parser.ts
6
6
  /**
7
- * Parse a changeset summary into structured sections.
7
+ * Slice an already-parsed changeset tree into categorized sections.
8
8
  *
9
9
  * @remarks
10
- * The algorithm works in three steps:
11
- * 1. Parse the summary markdown into an MDAST tree via {@link parseMarkdown}
12
- * 2. Scan `tree.children` for h2 (`depth === 2`) headings, recording their
13
- * indices
14
- * 3. For each h2, extract the heading text, resolve it to a
15
- * {@link SectionCategory} via `fromHeading()`, and collect all nodes
16
- * between this h2 and the next h2 (or end of document) as the section
17
- * content
10
+ * Split from {@link parseChangesetSections} so a caller can transform the
11
+ * tree (the renderer appends attribution with `MarkdownTransform.map`) and
12
+ * re-slice it without re-parsing. A section runs from its h2 to the next
13
+ * root-level h2 (or the end of the summary); a stray h1 inside a section stays
14
+ * in that section's content, as it always has.
18
15
  *
19
- * If the summary contains h2 (`##`) headings, they are mapped to categories
20
- * via `fromHeading()`. Content between headings becomes the section content.
21
- * Content before the first h2 becomes the preamble.
22
- *
23
- * If no h2 headings are present, the entire content is returned as the preamble
24
- * with an empty sections array (backward-compatible flat-text mode).
25
- *
26
- * Unknown headings (those not recognized by `fromHeading()`) are silently
27
- * skipped; validation of heading names is the responsibility of Layer 1
28
- * (remark-lint).
29
- *
30
- * @param summary - The changeset summary markdown
16
+ * @param tree - The parsed summary
17
+ * @param summary - The summary source, returned verbatim as the preamble in
18
+ * flat-text mode
31
19
  * @returns Parsed sections and optional preamble
32
20
  *
33
- * @example
34
- * ```typescript
35
- * import { parseChangesetSections } from "../utils/section-parser.js";
36
- *
37
- * const result = parseChangesetSections("## Features\n\n- New API\n\n## Bug Fixes\n\n- Fixed crash");
38
- * // result.sections.length === 2
39
- * // result.sections[0].category === "Features"
40
- * // result.preamble === undefined
41
- * ```
42
- *
43
21
  * @internal
44
22
  */
45
- function parseChangesetSections(summary) {
46
- const tree = parseMarkdown(summary);
47
- const h2Indices = [];
48
- for (let i = 0; i < tree.children.length; i++) {
49
- const node = tree.children[i];
50
- if (node.type === "heading" && node.depth === 2) h2Indices.push(i);
51
- }
52
- if (h2Indices.length === 0) return {
23
+ function sectionsOf(tree, summary) {
24
+ const spans = MarkdownTransform.sections(tree, { depth: 2 });
25
+ if (spans.length === 0) return {
53
26
  preamble: summary.trim(),
54
27
  sections: []
55
28
  };
56
29
  const result = { sections: [] };
57
- if (h2Indices[0] > 0) result.preamble = stringifyAstSlice(tree.children.slice(0, h2Indices[0]));
58
- for (let i = 0; i < h2Indices.length; i++) {
59
- const headingIndex = h2Indices[i];
60
- const headingNode = tree.children[headingIndex];
61
- const headingText = toString(headingNode);
62
- const nextIndex = i + 1 < h2Indices.length ? h2Indices[i + 1] : tree.children.length;
63
- const contentNodes = tree.children.slice(headingIndex + 1, nextIndex);
64
- const content = stringifyAstSlice(contentNodes);
30
+ if (spans[0].headingIndex > 0) result.preamble = stringifyAstSlice(tree.children.slice(0, spans[0].headingIndex));
31
+ for (let i = 0; i < spans.length; i++) {
32
+ const span = spans[i];
33
+ const headingText = Mdast.toText(span.heading);
34
+ const end = i + 1 < spans.length ? spans[i + 1].headingIndex : tree.children.length;
35
+ const contentNodes = tree.children.slice(span.headingIndex + 1, end).filter(isFlowContent);
65
36
  const category = fromHeading(headingText);
66
37
  if (category) result.sections.push({
67
38
  category,
68
39
  heading: headingText,
69
- content,
40
+ content: stringifyAstSlice(contentNodes),
70
41
  contentNodes
71
42
  });
72
43
  }
73
44
  return result;
74
45
  }
75
46
  /**
76
- * Stringify a slice of MDAST nodes back to markdown.
47
+ * Narrow a root child to block content (frontmatter capture is off and the
48
+ * dialect is GFM, so this only ever drops nothing).
77
49
  *
78
- * @remarks
79
- * Wraps the nodes in a synthetic root node and delegates to
80
- * {@link stringifyMarkdown}. Returns an empty string for empty slices.
81
- *
82
- * @param nodes - Array of MDAST content nodes
83
- * @returns Trimmed markdown string, or empty string if no nodes
50
+ * @internal
51
+ */
52
+ function isFlowContent(node) {
53
+ return node.type !== "frontmatter" && node.type !== "mdxjsEsm";
54
+ }
55
+ /**
56
+ * Stringify a slice of root children back to trimmed markdown.
84
57
  *
85
58
  * @internal
86
59
  */
87
60
  function stringifyAstSlice(nodes) {
88
61
  if (nodes.length === 0) return "";
89
- return stringifyMarkdown({
90
- type: "root",
91
- children: nodes
92
- }).trim();
62
+ return emitKitMarkdown(new Root({ children: nodes })).trim();
93
63
  }
94
64
 
95
- //#endregion
96
- export { parseChangesetSections };
65
+ export { sectionsOf };
@@ -1,4 +1,4 @@
1
- //#region src/changesets/utils/strip-frontmatter.ts
1
+ // src/changesets/utils/strip-frontmatter.ts
2
2
  /**
3
3
  * Strip leading YAML frontmatter from a markdown string.
4
4
  *
@@ -23,5 +23,4 @@ function stripFrontmatter(content) {
23
23
  return content.replace(/^---\n[\s\S]*?\n---\n?/, "");
24
24
  }
25
25
 
26
- //#endregion
27
26
  export { stripFrontmatter };
@@ -1,6 +1,6 @@
1
1
  import { toString } from "mdast-util-to-string";
2
2
 
3
- //#region src/changesets/utils/version-blocks.ts
3
+ // src/changesets/utils/version-blocks.ts
4
4
  /**
5
5
  * Extract all version blocks from a CHANGELOG AST.
6
6
  *
@@ -104,5 +104,4 @@ function getHeadingText(heading) {
104
104
  return toString(heading);
105
105
  }
106
106
 
107
- //#endregion
108
107
  export { getBlockSections, getHeadingText, getVersionBlocks };
@@ -7,7 +7,7 @@ import { GlobPatternOptions } from "@effected/glob";
7
7
  import { compileAndExpand } from "@effected/walker";
8
8
  import { Jsonc, JsoncEdit, JsoncFormattingOptions, JsoncModifier } from "@effected/jsonc";
9
9
 
10
- //#region src/changesets/utils/version-files.ts
10
+ // src/changesets/utils/version-files.ts
11
11
  /**
12
12
  * Utilities for updating version fields in additional JSON files.
13
13
  *
@@ -501,5 +501,4 @@ function readPackageVersion(dir) {
501
501
  }).pipe(Effect.orElseSucceed(() => void 0));
502
502
  }
503
503
 
504
- //#endregion
505
504
  export { VersionFiles };
@@ -2,7 +2,7 @@ import { GitHubApiError } from "../errors.js";
2
2
  import { Effect } from "effect";
3
3
  import { getCommitInfo } from "@changesets/get-github-info";
4
4
 
5
- //#region src/changesets/vendor/github-info.ts
5
+ // src/changesets/vendor/github-info.ts
6
6
  /**
7
7
  * Effect wrapper around `\@changesets/get-github-info`.
8
8
  *
@@ -73,5 +73,4 @@ function getGitHubInfo(params) {
73
73
  });
74
74
  }
75
75
 
76
- //#endregion
77
76
  export { getGitHubInfo };
@@ -3,7 +3,7 @@ import { COMMIT_TYPES } from "./rules.js";
3
3
  import { createPromptConfig } from "../prompt/config.js";
4
4
  import { createScopeEnumRule, silkPlugin } from "./plugins.js";
5
5
 
6
- //#region src/commitlint/config/factory.ts
6
+ // src/commitlint/config/factory.ts
7
7
  /**
8
8
  * Configuration factory implementation.
9
9
  *
@@ -65,5 +65,4 @@ function createConfig(options) {
65
65
  };
66
66
  }
67
67
 
68
- //#endregion
69
68
  export { createConfig };
@@ -1,6 +1,6 @@
1
1
  import { TDD_SCOPE_PATTERN } from "./rules.js";
2
2
 
3
- //#region src/commitlint/config/plugins.ts
3
+ // src/commitlint/config/plugins.ts
4
4
  /**
5
5
  * Custom commitlint plugin rules.
6
6
  *
@@ -226,5 +226,4 @@ function createScopeEnumRule(scopes) {
226
226
  };
227
227
  }
228
228
 
229
- //#endregion
230
229
  export { createScopeEnumRule, silkPlugin };
@@ -1,4 +1,4 @@
1
- //#region src/commitlint/config/rules.ts
1
+ // src/commitlint/config/rules.ts
2
2
  /**
3
3
  * Allowed commit types for conventional commits.
4
4
  *
@@ -151,5 +151,4 @@ const COMMIT_TYPE_DEFINITIONS = [
151
151
  */
152
152
  const DCO_SIGNOFF_TEXT = "Signed-off-by:";
153
153
 
154
- //#endregion
155
154
  export { COMMIT_TYPES, COMMIT_TYPE_DEFINITIONS, DCO_SIGNOFF_TEXT, TDD_SCOPE_PATTERN, TDD_STATES };
@@ -1,6 +1,6 @@
1
1
  import { Effect, Schema } from "effect";
2
2
 
3
- //#region src/commitlint/config/schema.ts
3
+ // src/commitlint/config/schema.ts
4
4
  /**
5
5
  * Effect Schemas for commitlint configuration options.
6
6
  *
@@ -46,5 +46,4 @@ const ConfigOptionsSchema = Schema.Struct({
46
46
  */
47
47
  const decodeConfigOptions = Schema.decodeUnknownSync(ConfigOptionsSchema);
48
48
 
49
- //#endregion
50
49
  export { ConfigOptionsSchema, ReleaseFormatSchema, decodeConfigOptions };
@@ -1,7 +1,7 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { dirname, join, resolve } from "node:path";
3
3
 
4
- //#region src/commitlint/detection/dco.ts
4
+ // src/commitlint/detection/dco.ts
5
5
  /**
6
6
  * DCO (Developer Certificate of Origin) detection module.
7
7
  *
@@ -50,5 +50,4 @@ function detectDCO(cwd = process.cwd()) {
50
50
  return existsSync(join(searchDir, DCO_FILENAME));
51
51
  }
52
52
 
53
- //#endregion
54
53
  export { detectDCO };
@@ -1,7 +1,7 @@
1
1
  import { Effect } from "effect";
2
2
  import { WorkspaceDiscovery } from "@effected/workspaces";
3
3
 
4
- //#region src/commitlint/detection/scopes.ts
4
+ // src/commitlint/detection/scopes.ts
5
5
  /**
6
6
  * Extract scope-friendly name from a package name.
7
7
  *
@@ -36,5 +36,4 @@ const detectScopes = Effect.gen(function* () {
36
36
  return scopes.sort();
37
37
  });
38
38
 
39
- //#endregion
40
39
  export { detectScopes };
@@ -1,6 +1,6 @@
1
1
  import { getExplanation, getSuggestion } from "./messages.js";
2
2
 
3
- //#region src/commitlint/formatter/format.ts
3
+ // src/commitlint/formatter/format.ts
4
4
  /**
5
5
  * Custom formatter implementation for commitlint.
6
6
  *
@@ -81,5 +81,4 @@ function format(formatterResult) {
81
81
  return output.join("\n");
82
82
  }
83
83
 
84
- //#endregion
85
84
  export { format };
@@ -1,4 +1,4 @@
1
- //#region src/commitlint/formatter/messages.ts
1
+ // src/commitlint/formatter/messages.ts
2
2
  /**
3
3
  * Detailed error explanations for common rule failures.
4
4
  *
@@ -70,5 +70,4 @@ function getSuggestion(ruleName) {
70
70
  return ERROR_SUGGESTIONS[ruleName];
71
71
  }
72
72
 
73
- //#endregion
74
73
  export { ERROR_EXPLANATIONS, ERROR_SUGGESTIONS, getExplanation, getSuggestion };
@@ -1,7 +1,7 @@
1
1
  import { Effect, Option } from "effect";
2
2
  import { Git } from "@effected/git";
3
3
 
4
- //#region src/commitlint/hook/diagnostics/branch.ts
4
+ // src/commitlint/hook/diagnostics/branch.ts
5
5
  /**
6
6
  * Branch and inferred-ticket detection.
7
7
  *
@@ -32,5 +32,4 @@ function readBranchInfo() {
32
32
  })));
33
33
  }
34
34
 
35
- //#endregion
36
35
  export { inferTicketId, readBranchInfo };
@@ -2,7 +2,7 @@ import { Effect } from "effect";
2
2
  import { dirname } from "node:path";
3
3
  import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
4
4
 
5
- //#region src/commitlint/hook/diagnostics/cache.ts
5
+ // src/commitlint/hook/diagnostics/cache.ts
6
6
  /**
7
7
  * JSON file cache with TTL. Writes are atomic-ish (mkdir -p, write,
8
8
  * rename). Reads return null on any error or staleness — callers
@@ -33,5 +33,4 @@ function writeCache(path, data, when = /* @__PURE__ */ new Date()) {
33
33
  }).pipe(Effect.orElseSucceed(() => void 0));
34
34
  }
35
35
 
36
- //#endregion
37
36
  export { readCache, writeCache };
@@ -1,7 +1,7 @@
1
1
  import { isAbsolute, join, resolve } from "node:path";
2
2
  import { readFile } from "node:fs/promises";
3
3
 
4
- //#region src/commitlint/hook/diagnostics/commitlint-config.ts
4
+ // src/commitlint/hook/diagnostics/commitlint-config.ts
5
5
  /**
6
6
  * Resolve the commitlint config path used by the husky commit-msg hook.
7
7
  *
@@ -32,5 +32,4 @@ async function readCommitlintConfigPath(root) {
32
32
  }
33
33
  }
34
34
 
35
- //#endregion
36
35
  export { parseHuskyConfigPath, readCommitlintConfigPath };
@@ -4,7 +4,7 @@ import { resolve } from "node:path";
4
4
  import { Git } from "@effected/git";
5
5
  import { ChildProcess, ChildProcessSpawner } from "effect/process";
6
6
 
7
- //#region src/commitlint/hook/diagnostics/open-issues.ts
7
+ // src/commitlint/hook/diagnostics/open-issues.ts
8
8
  /**
9
9
  * Open-issue lookup via gh CLI, cached on disk.
10
10
  *
@@ -78,5 +78,4 @@ function readOrFetchOpenIssues(cachePath) {
78
78
  });
79
79
  }
80
80
 
81
- //#endregion
82
81
  export { ISSUES_CACHE_RELATIVE_PATH, fetchAndCacheOpenIssues, readOpenIssuesFromCache, readOrFetchOpenIssues, resolveIssuesCachePath };
@@ -2,7 +2,7 @@ import { existsSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import { readFile } from "node:fs/promises";
4
4
 
5
- //#region src/commitlint/hook/diagnostics/package-manager.ts
5
+ // src/commitlint/hook/diagnostics/package-manager.ts
6
6
  /**
7
7
  * Package manager detection for the commit-time hooks.
8
8
  *
@@ -59,5 +59,4 @@ async function detectPackageManager(root) {
59
59
  });
60
60
  }
61
61
 
62
- //#endregion
63
62
  export { detectFromLockfiles, detectPackageManager, parsePackageManagerField };
@@ -3,7 +3,7 @@ import { Git } from "@effected/git";
3
3
  import { stat } from "node:fs/promises";
4
4
  import { ChildProcess, ChildProcessSpawner } from "effect/process";
5
5
 
6
- //#region src/commitlint/hook/diagnostics/signing.ts
6
+ // src/commitlint/hook/diagnostics/signing.ts
7
7
  /**
8
8
  * GPG / SSH signing diagnostic.
9
9
  *
@@ -98,5 +98,4 @@ function readSigningDiagnostic() {
98
98
  }).pipe(Effect.orElseSucceed(() => FALLBACK_DIAGNOSTIC));
99
99
  }
100
100
 
101
- //#endregion
102
101
  export { buildSigningDiagnostic, parseGpgKeyExpiry, readSigningDiagnostic };
@@ -1,6 +1,6 @@
1
1
  import { Schema } from "effect";
2
2
 
3
- //#region src/commitlint/hook/envelope.ts
3
+ // src/commitlint/hook/envelope.ts
4
4
  /**
5
5
  * Schemas for the JSON stdin envelopes Claude passes to plugin hooks.
6
6
  *
@@ -32,5 +32,4 @@ const SessionStartEnvelope = Schema.Struct({
32
32
  source: Schema.optional(Schema.String)
33
33
  });
34
34
 
35
- //#endregion
36
35
  export { PostToolUseEnvelope, PreToolUseEnvelope, SessionStartEnvelope };
@@ -1,4 +1,4 @@
1
- //#region src/commitlint/hook/output.ts
1
+ // src/commitlint/hook/output.ts
2
2
  function preToolUseAllow(reason) {
3
3
  return { hookSpecificOutput: {
4
4
  hookEventName: "PreToolUse",
@@ -35,5 +35,4 @@ function postToolUseAdvise(message) {
35
35
  } };
36
36
  }
37
37
 
38
- //#endregion
39
38
  export { postToolUseAdvise, preToolUseAdvise, preToolUseAllow, preToolUseDeny, preToolUseSilent, sessionStartContext };
@@ -1,6 +1,6 @@
1
1
  import { parse } from "shell-quote";
2
2
 
3
- //#region src/commitlint/hook/parse-bash-command.ts
3
+ // src/commitlint/hook/parse-bash-command.ts
4
4
  /**
5
5
  * Parse a Bash command string to extract the commit message and flags
6
6
  * for `git commit` / `gh pr create` / `gh pr edit` invocations.
@@ -101,5 +101,4 @@ function extractFlagValue(tokens, ...names) {
101
101
  return null;
102
102
  }
103
103
 
104
- //#endregion
105
104
  export { parseBashCommand };
@@ -1,7 +1,7 @@
1
1
  import { Effect } from "effect";
2
2
  import { parseClosingLists } from "@effected/github-references";
3
3
 
4
- //#region src/commitlint/hook/rules/closes-trailer.ts
4
+ // src/commitlint/hook/rules/closes-trailer.ts
5
5
  /**
6
6
  * closes-trailer rule — advises when the branch encodes a ticket id but
7
7
  * the message body has no Closes/Fixes/Resolves trailer for it.
@@ -43,5 +43,4 @@ const closesTrailerRule = {
43
43
  })
44
44
  };
45
45
 
46
- //#endregion
47
46
  export { closesTrailerRule, hasClosingTrailer };
@@ -1,6 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
 
3
- //#region src/commitlint/hook/rules/forbidden-content.ts
3
+ // src/commitlint/hook/rules/forbidden-content.ts
4
4
  /**
5
5
  * forbidden-content rule — denies markdown headers and code fences in
6
6
  * commit message bodies.
@@ -28,5 +28,4 @@ const forbiddenContentRule = {
28
28
  })
29
29
  };
30
30
 
31
- //#endregion
32
31
  export { forbiddenContentRule };
@@ -1,6 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
 
3
- //#region src/commitlint/hook/rules/plan-leakage.ts
3
+ // src/commitlint/hook/rules/plan-leakage.ts
4
4
  /**
5
5
  * plan-leakage rule — advises when commit bodies reference plan files
6
6
  * (`.claude/plans/`, `.claude/design/`, or the `okf/` knowledge bundle)
@@ -37,5 +37,4 @@ const planLeakageRule = {
37
37
  })
38
38
  };
39
39
 
40
- //#endregion
41
40
  export { planLeakageRule };
@@ -1,6 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
 
3
- //#region src/commitlint/hook/rules/signing-flag-conflict.ts
3
+ // src/commitlint/hook/rules/signing-flag-conflict.ts
4
4
  /**
5
5
  * signing-flag-conflict rule — denies when the command explicitly opts out
6
6
  * of signing while the project is configured to require signing.
@@ -21,5 +21,4 @@ const signingFlagConflictRule = {
21
21
  })
22
22
  };
23
23
 
24
- //#endregion
25
24
  export { signingFlagConflictRule };
@@ -1,6 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
 
3
- //#region src/commitlint/hook/rules/soft-wrap.ts
3
+ // src/commitlint/hook/rules/soft-wrap.ts
4
4
  /**
5
5
  * soft-wrap rule — advises when a bullet point appears to have an
6
6
  * artificial mid-bullet line wrap.
@@ -33,5 +33,4 @@ const softWrapRule = {
33
33
  })
34
34
  };
35
35
 
36
- //#endregion
37
36
  export { softWrapRule };
@@ -1,4 +1,4 @@
1
- //#region src/commitlint/hook/rules/types.ts
1
+ // src/commitlint/hook/rules/types.ts
2
2
  function partitionHits(hits) {
3
3
  const deny = [];
4
4
  const advise = [];
@@ -10,5 +10,4 @@ function partitionHits(hits) {
10
10
  };
11
11
  }
12
12
 
13
- //#endregion
14
13
  export { partitionHits };
@@ -1,6 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
 
3
- //#region src/commitlint/hook/rules/verbosity.ts
3
+ // src/commitlint/hook/rules/verbosity.ts
4
4
  /**
5
5
  * verbosity rule — advises when the body exceeds line or word thresholds.
6
6
  *
@@ -45,5 +45,4 @@ const verbosityRule = {
45
45
  })
46
46
  };
47
47
 
48
- //#endregion
49
48
  export { verbosityRule };
@@ -1,6 +1,6 @@
1
1
  import { Layer, Logger, References } from "effect";
2
2
 
3
- //#region src/commitlint/hook/silence-logger.ts
3
+ // src/commitlint/hook/silence-logger.ts
4
4
  /**
5
5
  * Logger configuration shared by all hook subcommands.
6
6
  *
@@ -37,5 +37,4 @@ const MinLogLevel = Layer.succeed(References.MinimumLogLevel, "Warn");
37
37
  */
38
38
  const HookSilencer = Layer.merge(StderrLogger, MinLogLevel);
39
39
 
40
- //#endregion
41
40
  export { HookSilencer };
@@ -28,7 +28,7 @@ import { softWrapRule } from "./hook/rules/soft-wrap.js";
28
28
  import { partitionHits } from "./hook/rules/types.js";
29
29
  import { verbosityRule } from "./hook/rules/verbosity.js";
30
30
 
31
- //#region src/commitlint/index.ts
31
+ // src/commitlint/index.ts
32
32
  /**
33
33
  * Commitlint namespace — commitlint business logic extracted from \@savvy-web/commitlint.
34
34
  *
@@ -141,5 +141,4 @@ var CommitlintConfig = class {
141
141
  constructor() {}
142
142
  };
143
143
 
144
- //#endregion
145
144
  export { COMMIT_TYPES, COMMIT_TYPE_DEFINITIONS, CommitlintConfig, CommitlintConfig as default, DCO_SIGNOFF_TEXT, ERROR_EXPLANATIONS, ERROR_SUGGESTIONS, HookSilencer, ISSUES_CACHE_RELATIVE_PATH, PostToolUseEnvelope, PreToolUseEnvelope, SessionStartEnvelope, TDD_SCOPE_PATTERN, TDD_STATES, TYPE_EMOJIS, TYPE_EMOJIS_UNICODE, buildSigningDiagnostic, closesTrailerRule, commitlint_exports, createPromptConfig, createTypeEnum, defaultPromptConfig, detectDCO, detectFromLockfiles, detectPackageManager, detectScopes, emojiPromptConfig, fetchAndCacheOpenIssues, forbiddenContentRule, format, getExplanation, getSuggestion, getTypeEmoji, hasClosingTrailer, inferTicketId, parseBashCommand, parseGpgKeyExpiry, parseHuskyConfigPath, parsePackageManagerField, partitionHits, planLeakageRule, postToolUseAdvise, preToolUseAdvise, preToolUseAllow, preToolUseDeny, preToolUseSilent, prompter, readBranchInfo, readCache, readCommitlintConfigPath, readOpenIssuesFromCache, readOrFetchOpenIssues, readSigningDiagnostic, resolveIssuesCachePath, sessionStartContext, signingFlagConflictRule, softWrapRule, staticConfig, verbosityRule, writeCache };
@@ -1,7 +1,7 @@
1
1
  import { COMMIT_TYPE_DEFINITIONS } from "../config/rules.js";
2
2
  import { TYPE_EMOJIS } from "./emojis.js";
3
3
 
4
- //#region src/commitlint/prompt/config.ts
4
+ // src/commitlint/prompt/config.ts
5
5
  /**
6
6
  * Create type enum configuration for prompts.
7
7
  *
@@ -87,5 +87,4 @@ const defaultPromptConfig = createPromptConfig();
87
87
  */
88
88
  const emojiPromptConfig = createPromptConfig({ emojis: true });
89
89
 
90
- //#endregion
91
90
  export { createPromptConfig, createTypeEnum, defaultPromptConfig, emojiPromptConfig };
@@ -1,4 +1,4 @@
1
- //#region src/commitlint/prompt/emojis.ts
1
+ // src/commitlint/prompt/emojis.ts
2
2
  /**
3
3
  * Emoji shortcode mapping for commit types.
4
4
  *
@@ -70,5 +70,4 @@ function getTypeEmoji(type, unicode = false) {
70
70
  return unicode ? TYPE_EMOJIS_UNICODE[type] : TYPE_EMOJIS[type];
71
71
  }
72
72
 
73
- //#endregion
74
73
  export { TYPE_EMOJIS, TYPE_EMOJIS_UNICODE, getTypeEmoji };
@@ -1,7 +1,7 @@
1
1
  import { COMMIT_TYPE_DEFINITIONS } from "../config/rules.js";
2
2
  import { TYPE_EMOJIS_UNICODE } from "./emojis.js";
3
3
 
4
- //#region src/commitlint/prompt/prompter.ts
4
+ // src/commitlint/prompt/prompter.ts
5
5
  /** Default prompter options */
6
6
  const DEFAULT_OPTIONS = {
7
7
  emojis: true,
@@ -131,5 +131,4 @@ function prompter(cz, commit, options = {}) {
131
131
  }).catch(() => {});
132
132
  }
133
133
 
134
- //#endregion
135
134
  export { prompter };
@@ -1,7 +1,7 @@
1
1
  import { COMMIT_TYPES, COMMIT_TYPE_DEFINITIONS, DCO_SIGNOFF_TEXT, TDD_SCOPE_PATTERN, TDD_STATES } from "./config/rules.js";
2
2
  import { silkPlugin } from "./config/plugins.js";
3
3
 
4
- //#region src/commitlint/static.ts
4
+ // src/commitlint/static.ts
5
5
  /**
6
6
  * Static commitlint configuration (no auto-detection).
7
7
  *
@@ -69,5 +69,4 @@ const staticConfig = {
69
69
  } }
70
70
  };
71
71
 
72
- //#endregion
73
72
  export { staticConfig as default };