@coinagerie/vocabulary 0.0.16 → 0.0.17

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## 0.0.17 (2026-11-10)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **codometer:** ✨ gate JSDoc on every declaration kind and shorten long comments ([#2227](https://github.com/organizzolini/codebase/pull/2227), [#2226](https://github.com/organizzolini/codebase/issues/2226))
6
+
7
+ ### 🧱 Updated Dependencies
8
+
9
+ - Updated coinagerie-configuration to 0.0.17
10
+ - Updated coinagerie-languages to 0.0.17
11
+
1
12
  ## 0.0.16 (2026-11-10)
2
13
 
3
14
  ### 🧱 Updated Dependencies
@@ -32,30 +32,23 @@ export declare class DiscoveryService {
32
32
  private readonly ignoreRulesService;
33
33
  constructor(ignoreRulesService: IgnoreRulesService);
34
34
  /**
35
- * The nearest folder at or above the root holding a `.git` entry, or the
36
- * root itself outside any repository. A worktree's `.git` is a file, which
37
- * counts the same.
35
+ * The nearest folder at or above `directory` holding `.git`, or `directory` itself. A worktree's `.git` file counts.
38
36
  */
39
37
  private findRepositoryRoot;
40
38
  /**
41
- * Whether an `exclude.paths` glob names a folder outright, which excludes
42
- * everything in it — so `exclude: ["dist"]` reads the way a `.gitignore`
43
- * line does, and the folder is never walked.
39
+ * Whether an `exclude.paths` glob names a whole folder, so the folder is never walked, as a `.gitignore` line would.
44
40
  */
45
41
  private isExcludedFolder;
46
42
  /** Whether the configuration's globs keep a root-relative file. */
47
43
  private isSelected;
48
44
  /**
49
- * The ignore files of every folder from the repository root down to, but
50
- * not including, the scan root — whose own file the walk reads.
45
+ * Ignore files from the repository root down to, excluding, the scan root, whose own file the walk reads.
51
46
  */
52
47
  private readAncestorScopes;
53
48
  /** A path with forward slashes, which is what every glob is written in. */
54
49
  private toPosix;
55
50
  /**
56
- * Every file under one folder that no ignore file claims, as absolute
57
- * paths. Symbolic links are skipped rather than followed, so nothing is
58
- * read twice and a link to an ancestor cannot loop.
51
+ * Every unignored file under one folder, as absolute paths. Symbolic links are skipped, so nothing is read twice or loops.
59
52
  */
60
53
  private walk;
61
54
  /**
@@ -81,16 +74,11 @@ export declare class FoldingModule {
81
74
  export declare class FoldingService {
82
75
  constructor();
83
76
  /**
84
- * The headword a lowercase word folds into: its singular, then its lemma.
85
- *
86
- * A fold that would leave a single letter (`ts` into `t`) is refused, since
87
- * one-letter words are not terms.
77
+ * The headword a lowercase word folds into: its singular, then its lemma. A one-letter result is refused, since one-letter words are not terms.
88
78
  */
89
79
  fold(word: string): string;
90
80
  /**
91
- * The headword a word is listed under: folded into its singular and lemma,
92
- * then through the configuration's own `fold` when it has one. A fault in
93
- * that function surfaces as an `InvalidConfigurationError` naming the file.
81
+ * The headword a word is listed under: folded, then passed through the configuration's `fold` when it has one. Faults name the file.
94
82
  */
95
83
  headword(word: string, configuration: ResolvedCoinagerieConfiguration): string;
96
84
  }
@@ -106,25 +94,17 @@ declare class IgnoreRulesService {
106
94
  /** A path as a scope sees it, or `undefined` when it lies outside the scope. */
107
95
  private toScopedPath;
108
96
  /**
109
- * Whether the scopes ignore a repository-relative path, the innermost
110
- * deciding — which is how a nested `!pattern` re-includes a file its parent
111
- * ignored. A folder is judged with a trailing slash.
97
+ * Whether the scopes ignore a repository-relative path. The innermost scope decides, so a nested `!pattern` re-includes a file.
112
98
  */
113
99
  isIgnored(scopes: IgnoreScope[], relativePath: string): boolean;
114
100
  /**
115
- * Reads one ignore file, or `undefined` when it does not exist.
116
- *
117
- * Case-sensitive on every platform, so the same file ignores the same paths
118
- * on a developer's machine and in CI.
101
+ * Reads one ignore file, or `undefined` when absent. Matching is case-sensitive on every platform, so CI agrees with local runs.
119
102
  */
120
103
  readScope(args: ReadIgnoreScopeArguments): IgnoreScope | undefined;
121
104
  }
122
105
 
123
106
  /**
124
- * The rules of one `.gitignore`, and the folder they were written in.
125
- *
126
- * `base` is relative to the repository root, `""` for the root itself; the
127
- * patterns only ever see paths relative to it.
107
+ * The rules of one `.gitignore`, and its folder: `base` is relative to the repository root.
128
108
  */
129
109
  declare interface IgnoreScope {
130
110
  base: string;
@@ -145,15 +125,10 @@ export declare class VocabularyModule {
145
125
  }
146
126
 
147
127
  /**
148
- * The coinagerie pipeline: from a configuration to the sorted list of every
149
- * word the code uses.
150
- *
151
- * Discovers the files, splits every path into words, tokenizes every file a
152
- * language claims and splits its identifiers into words, folds each word into
153
- * its headword, leaves out the headwords the configuration excludes, then
154
- * de-duplicates and sorts. A fault in the configuration's `fold` aborts the
155
- * run, naming the configuration file. A file no language claims still
156
- * contributes its path.
128
+ * The coinagerie pipeline: from a configuration to the sorted words the code
129
+ * uses. Splits paths and identifiers into words, folds each into its headword,
130
+ * drops excluded headwords, then de-duplicates. A fault in `fold` aborts the
131
+ * run, naming the configuration file.
157
132
  */
158
133
  export declare class VocabularyService {
159
134
  private readonly discoveryService;
@@ -164,22 +139,13 @@ export declare class VocabularyService {
164
139
  /** The words of one file: its path's, then its identifiers'. */
165
140
  private collectFile;
166
141
  /**
167
- * The headwords the configuration leaves out by exact word.
168
- *
169
- * Its words are folded the way the code's are, so exclusion compares
170
- * headwords: excluding `service` covers `services`, and excluding
171
- * `implements` covers the `implement` it folds into.
142
+ * The headwords the configuration excludes by exact word. Words fold the way code words do, so excluding `service` covers `services`.
172
143
  */
173
144
  private excludedHeadwords;
174
145
  /** Whether a pattern leaves out a word: it matches the word or its headword. */
175
146
  private matchesPattern;
176
147
  /**
177
- * Every word the configured files use, sorted and de-duplicated.
178
- *
179
- * The files a configuration writes a glossary to are left out, so a run
180
- * never reads its own output back as vocabulary. A headword a pattern
181
- * matches is left out wholly, as a string leaves out a headword: the pattern
182
- * is tested against each occurrence's lowercase word and its headword.
148
+ * Every word the configured files use, sorted and de-duplicated. Output files are skipped, so a run never reads its own glossary back.
183
149
  */
184
150
  collect(configuration: ResolvedCoinagerieConfiguration): Promise<string[]>;
185
151
  }
@@ -202,16 +168,11 @@ export declare class WordsService {
202
168
  /** Whether a lowercase word is a term rather than noise. */
203
169
  private isTerm;
204
170
  /**
205
- * The words of one identifier, in the order written, repeats kept.
206
- *
207
- * Splits on every separator, then on case changes, keeping acronym runs
208
- * together: `XMLHttpRequest` is `xml`, `http`, and `request`.
171
+ * The words of one identifier, in order, repeats kept. Splits on separators and case changes, keeping acronyms whole: `XMLHttpRequest` is `xml`, `http`, and `request`.
209
172
  */
210
173
  splitIdentifier(raw: string): string[];
211
174
  /**
212
- * The words of a relative file path: every folder name, and the file name
213
- * with only its final extension removed, so `glossary.service.ts`
214
- * contributes `glossary` and `service`.
175
+ * The words of a relative file path: every folder name, plus the file name without its final extension.
215
176
  */
216
177
  splitPath(relativePath: string): string[];
217
178
  }
package/package.json CHANGED
@@ -4,8 +4,8 @@
4
4
  "url": "https://github.com/organizzolini/codebase/issues"
5
5
  },
6
6
  "dependencies": {
7
- "@coinagerie/configuration": "0.0.16",
8
- "@coinagerie/languages": "0.0.16",
7
+ "@coinagerie/configuration": "0.0.17",
8
+ "@coinagerie/languages": "0.0.17",
9
9
  "@nestjs/common": "^11.1.21 || ^12.0.1",
10
10
  "ignore": "7.0.14",
11
11
  "pluralize": "^8.0.0",
@@ -62,5 +62,5 @@
62
62
  "strict": true
63
63
  },
64
64
  "types": "./dist/src/index.d.ts",
65
- "version": "0.0.16"
65
+ "version": "0.0.17"
66
66
  }