@@ -119,6 +119,8 @@ export const EVENT_HEADING = /^Event: +`?['"]?([^'"]+)['"]?`?$/i;
119119// TYPE AND REFERENCE PATTERNS
120120// ============================================================================
121121
122+ const TYPE_SAFE = '[^<({})>]+' ;
123+
122124/**
123125 * Matches API type references enclosed in curly braces or angle brackets.
124126 * Used to normalize type references across documentation.
@@ -127,7 +129,10 @@ export const EVENT_HEADING = /^Event: +`?['"]?([^'"]+)['"]?`?$/i;
127129 * - '{Buffer|string}'
128130 * - '<Object>'
129131 */
130- export const NORMALIZE_TYPES = / ( \{ | < ) (? ! ) [ ^ < ( { } ) > ] + (? ! ) ( \} | > ) / g;
132+ export const TYPE_EXPRESSION = new RegExp (
133+ `(?:\\{|<)(${ TYPE_SAFE } )(?:\\}|>)` ,
134+ 'g'
135+ ) ;
131136
132137/**
133138 * Matches already-parsed API type references in Markdown link format.
@@ -136,7 +141,10 @@ export const NORMALIZE_TYPES = /(\{|<)(?! )[^<({})>]+(?! )(\}|>)/g;
136141 * - '[`<string>`](/api/string)'
137142 * - '[`<Buffer>`](/api/buffer)'
138143 */
139- export const LINKS_WITH_TYPES = / \[ ` < [ ^ < ( { } ) > ] + > ` \] \( ( \S + ) \) / g;
144+ export const LINKS_WITH_TYPES = new RegExp (
145+ `\\[\`<${ TYPE_SAFE } >\`\\]\\((\\S+)\\)` ,
146+ 'g'
147+ ) ;
140148
141149/**
142150 * Matches headings that start typed lists in documentation.
@@ -149,15 +157,6 @@ export const LINKS_WITH_TYPES = /\[`<[^<({})>]+>`\]\((\S+)\)/g;
149157 */
150158export const TYPED_LIST_STARTERS = / ^ ( R e t u r n s | E x t e n d s | T y p e ) : ? \s * / ;
151159
152- /**
153- * Matches type expressions in curly braces.
154- * Examples:
155- * - '{string}'
156- * - '{Buffer|null}'
157- * - '{Object}'
158- */
159- export const TYPE_EXPRESSION = / ^ \{ ( [ ^ } ] + ) \} \s * / ;
160-
161160// ============================================================================
162161// PARAMETER AND EXPRESSION PATTERNS
163162// ============================================================================
@@ -188,14 +187,6 @@ export const PARAM_EXPRESSION = /\((.+)\);?$/;
188187 */
189188export const DEFAULT_EXPRESSION = / \s * \* \* D e f a u l t : \* \* \s * ( [ ^ ] + ) $ / i;
190189
191- /**
192- * Matches leading hyphens in list items.
193- * Examples:
194- * - '- item'
195- * - '- spaced item'
196- */
197- export const LEADING_HYPHEN = / ^ - \s * / ;
198-
199190// ============================================================================
200191// URL AND REFERENCE PATTERNS
201192// ============================================================================
@@ -259,8 +250,7 @@ export const STABILITY_INDEX = new RegExp(
259250 * - '<!-- YAML foo bar -->'
260251 * - '<!-- description -->'
261252 */
262- export const YAML_INNER_CONTENT =
263- / ^ < ! - - [ ] ? (?: Y A M L ( [ \s \S ] * ?) | ( [ \S ] * ?) ) ? [ ] ? - - > / ;
253+ export const YAML_INNER_CONTENT = / ^ < ! - - * (?: Y A M L ( [ \s \S ] * ?) | ( [ \S ] * ?) ) ? * - - > / ;
264254
265255/**
266256 * Matches code filename comments at the beginning of files.
@@ -276,14 +266,14 @@ export const EXTRACT_CODE_FILENAME_COMMENT = /^\/\/\s+(.*\.(?:cc|h|js))[\r\n]/;
276266 * Examples:
277267 * - '<!-- introduced_in=v10.0.0 -->'
278268 */
279- export const INTRODUCED_IN = / < ! - - \s ? i n t r o d u c e d _ i n = .* - - > / ;
269+ export const INTRODUCED_IN = / < ! - - * i n t r o d u c e d _ i n = .* - - > / ;
280270
281271/**
282272 * Matches HTML comments with LLM description metadata.
283273 * Examples:
284274 * - '<!-- llm_description=... -->'
285275 */
286- export const LLM_DESCRIPTION = / < ! - - \s ? l l m _ d e s c r i p t i o n = .* - - > / ;
276+ export const LLM_DESCRIPTION = / < ! - - * l l m _ d e s c r i p t i o n = .* - - > / ;
287277
288278// ============================================================================
289279// NODE.JS VERSION AND LIST PATTERNS
@@ -303,12 +293,4 @@ export const NODE_VERSIONS = /\* \[Node\.js ([0-9.]+)\]\S+ (.*)\r?\n/g;
303293 * - '* [Buffer](buffer.md)'
304294 * - '* [File System](fs.md)'
305295 */
306- export const LIST_ITEM = / \* \[ ( .* ?) \] \( ( .* ?) \. m d \) / g;
307-
308- /**
309- * Matches Long Term Support indicators in version descriptions.
310- * Examples:
311- * - 'Long Term Support'
312- * - 'long term support'
313- */
314- export const NODE_LTS_VERSION = / L o n g T e r m S u p p o r t / i;
296+ export const MD_LINKED_LIST_ITEM = / \* \[ ( .* ?) \] \( ( .* ?) \. m d \) / g;
0 commit comments