@coinagerie/vocabulary 0.0.16 → 0.0.18

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,25 @@
1
+ ## 0.0.18 (2026-11-11)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **codometer:** ✨ tighten the comment budgets and shorten every comment over them ([#2262](https://github.com/organizzolini/codebase/pull/2262), [#2261](https://github.com/organizzolini/codebase/issues/2261))
6
+
7
+ ### 🧱 Updated Dependencies
8
+
9
+ - Updated coinagerie-configuration to 0.0.18
10
+ - Updated coinagerie-languages to 0.0.18
11
+
12
+ ## 0.0.17 (2026-11-10)
13
+
14
+ ### 🚀 Features
15
+
16
+ - **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))
17
+
18
+ ### 🧱 Updated Dependencies
19
+
20
+ - Updated coinagerie-configuration to 0.0.17
21
+ - Updated coinagerie-languages to 0.0.17
22
+
1
23
  ## 0.0.16 (2026-11-10)
2
24
 
3
25
  ### 🧱 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
  /**
@@ -70,27 +63,19 @@ export declare class FoldingModule {
70
63
  }
71
64
 
72
65
  /**
73
- * Folds the surface forms of a word into one headword, so the glossary lists
74
- * a term once however the code inflects it.
66
+ * Folds a word's surface forms into one headword, so each term is listed once.
75
67
  *
76
- * Plurals fold into their singular and inflected verbs into their lemma:
77
- * `aspects` into `aspect`, `configured` and `configuring` into `configure`.
78
- * Derivational families stay apart, so `configuration` keeps its own entry —
79
- * unless the configuration's own `fold` merges them.
68
+ * Plurals fold into their singular and inflected verbs into their lemma: `aspects` into `aspect`, `configured` into `configure`.
69
+ * Derivational families stay apart, so `configuration` keeps its own entry unless `fold` merges them.
80
70
  */
81
71
  export declare class FoldingService {
82
72
  constructor();
83
73
  /**
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.
74
+ * 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
75
  */
89
76
  fold(word: string): string;
90
77
  /**
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.
78
+ * The headword a word is listed under: folded, then passed through the configuration's `fold` when it has one. Faults name the file.
94
79
  */
95
80
  headword(word: string, configuration: ResolvedCoinagerieConfiguration): string;
96
81
  }
@@ -106,26 +91,16 @@ declare class IgnoreRulesService {
106
91
  /** A path as a scope sees it, or `undefined` when it lies outside the scope. */
107
92
  private toScopedPath;
108
93
  /**
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.
94
+ * Whether the scopes ignore a repository-relative path. The innermost scope decides, so a nested `!pattern` re-includes a file.
112
95
  */
113
96
  isIgnored(scopes: IgnoreScope[], relativePath: string): boolean;
114
97
  /**
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.
98
+ * Reads one ignore file, or `undefined` when absent. Matching is case-sensitive on every platform, so CI agrees with local runs.
119
99
  */
120
100
  readScope(args: ReadIgnoreScopeArguments): IgnoreScope | undefined;
121
101
  }
122
102
 
123
- /**
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.
128
- */
103
+ /** A `.gitignore`'s rules and folder; `base` is repo-relative. */
129
104
  declare interface IgnoreScope {
130
105
  base: string;
131
106
  matcher: Ignore;
@@ -145,15 +120,10 @@ export declare class VocabularyModule {
145
120
  }
146
121
 
147
122
  /**
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.
123
+ * The coinagerie pipeline: from a configuration to the sorted words the code
124
+ * uses. Splits paths and identifiers into words, folds each into its headword,
125
+ * drops excluded headwords, then de-duplicates. A fault in `fold` aborts the
126
+ * run, naming the configuration file.
157
127
  */
158
128
  export declare class VocabularyService {
159
129
  private readonly discoveryService;
@@ -164,22 +134,13 @@ export declare class VocabularyService {
164
134
  /** The words of one file: its path's, then its identifiers'. */
165
135
  private collectFile;
166
136
  /**
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.
137
+ * The headwords the configuration excludes by exact word. Words fold the way code words do, so excluding `service` covers `services`.
172
138
  */
173
139
  private excludedHeadwords;
174
140
  /** Whether a pattern leaves out a word: it matches the word or its headword. */
175
141
  private matchesPattern;
176
142
  /**
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.
143
+ * Every word the configured files use, sorted and de-duplicated. Output files are skipped, so a run never reads its own glossary back.
183
144
  */
184
145
  collect(configuration: ResolvedCoinagerieConfiguration): Promise<string[]>;
185
146
  }
@@ -202,16 +163,11 @@ export declare class WordsService {
202
163
  /** Whether a lowercase word is a term rather than noise. */
203
164
  private isTerm;
204
165
  /**
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`.
166
+ * 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
167
  */
210
168
  splitIdentifier(raw: string): string[];
211
169
  /**
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`.
170
+ * The words of a relative file path: every folder name, plus the file name without its final extension.
215
171
  */
216
172
  splitPath(relativePath: string): string[];
217
173
  }
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.18",
8
+ "@coinagerie/languages": "0.0.18",
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.18"
66
66
  }