@electron/lint-roller 2.3.0 → 3.0.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @electron/lint-roller
2
2
 
3
- [![CircleCI](https://dl.circleci.com/status-badge/img/gh/electron/lint-roller/tree/main.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/electron/lint-roller/tree/main)
3
+ [![Test](https://github.com/electron/lint-roller/actions/workflows/test.yml/badge.svg)](https://github.com/electron/lint-roller/actions/workflows/test.yml)
4
4
  [![npm version](http://img.shields.io/npm/v/@electron/lint-roller.svg)](https://npmjs.org/package/@electron/lint-roller)
5
5
 
6
6
  > Markdown linting helpers for Electron org repos
@@ -10,7 +10,6 @@
10
10
  ```bash
11
11
  yarn global add @electron/lint-roller
12
12
 
13
- electron-markdownlint "**/*.md"
14
13
  lint-roller-markdown-links --root docs/ "docs/**/*.md"
15
14
  ```
16
15
 
@@ -25,9 +24,6 @@ across repos. To use the base config, extend it in `.markdownlint.json`:
25
24
  }
26
25
  ```
27
26
 
28
- `electron-markdownlint` is provided as a wrapper command which adds extra
29
- rules found in this package automatically.
30
-
31
27
  `lint-roller-markdown-links` is a command to further lint links to find
32
28
  broken relative links, including URL fragments, and can also be used to
33
29
  check external links with the `--fetch-external-links` option.
@@ -1,24 +1,23 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.findPossibleApiHistoryBlocks = void 0;
5
- const promises_1 = require("node:fs/promises");
6
- const node_path_1 = require("node:path");
7
- const ajv_1 = require("ajv");
8
- const minimist = require("minimist");
9
- const vscode_uri_1 = require("vscode-uri");
10
- const yaml_1 = require("yaml");
11
- const helpers_1 = require("../lib/helpers");
12
- const markdown_1 = require("../lib/markdown");
2
+ import { readFile } from 'node:fs/promises';
3
+ import { resolve } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { parseArgs } from 'node:util';
6
+ import Ajv from 'ajv';
7
+ import { fromHtml } from 'hast-util-from-html';
8
+ import { fromMarkdown } from 'mdast-util-from-markdown';
9
+ import { visit } from 'unist-util-visit';
10
+ import { URI } from 'vscode-uri';
11
+ import { parseDocument, visit as yamlVisit } from 'yaml';
12
+ import { DocsWorkspace } from '../lib/markdown.js';
13
13
  // "<any char>: <match group>"
14
14
  const possibleStringRegex = /^[ \S]+?: *?(\S[ \S]+?)$/gm;
15
15
  const nonAlphaNumericDotRegex = /[^a-zA-Z0-9.]/g;
16
+ const possibleDescriptionRegex = /^[ \S]+?description: *?(\S[ \S]+?)$/gm;
16
17
  function isHTML(node) {
17
18
  return node.type === 'html';
18
19
  }
19
- async function findPossibleApiHistoryBlocks(content) {
20
- const { fromMarkdown } = (await (0, helpers_1.dynamicImport)('mdast-util-from-markdown'));
21
- const { visit } = (await (0, helpers_1.dynamicImport)('unist-util-visit'));
20
+ export async function findPossibleApiHistoryBlocks(content) {
22
21
  const tree = fromMarkdown(content);
23
22
  const codeBlocks = [];
24
23
  visit(tree,
@@ -34,22 +33,18 @@ async function findPossibleApiHistoryBlocks(content) {
34
33
  });
35
34
  return codeBlocks;
36
35
  }
37
- exports.findPossibleApiHistoryBlocks = findPossibleApiHistoryBlocks;
38
- async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile, checkStrings, schema, ignoreGlobs = [] }) {
39
- var _a, _b, _c, _d, _e, _f;
36
+ async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile, checkStrings, checkDescriptions, disallowComments, schema, ignoreGlobs = [], }) {
40
37
  let documentCounter = 0;
41
38
  let historyBlockCounter = 0;
42
39
  let errorCounter = 0;
43
40
  let warningCounter = 0;
44
41
  try {
45
- const { fromHtml } = (await (0, helpers_1.dynamicImport)('hast-util-from-html'));
46
- const { fromMarkdown } = (await (0, helpers_1.dynamicImport)('mdast-util-from-markdown'));
47
- const workspace = new markdown_1.DocsWorkspace(workspaceRoot, globs, ignoreGlobs);
42
+ const workspace = new DocsWorkspace(workspaceRoot, globs, ignoreGlobs);
48
43
  let validateAgainstSchema = null;
49
44
  if (schema) {
50
45
  try {
51
- const ajv = new ajv_1.default();
52
- const ApiHistorySchemaFile = await (0, promises_1.readFile)(schema, { encoding: 'utf-8' });
46
+ const ajv = new Ajv();
47
+ const ApiHistorySchemaFile = await readFile(schema, { encoding: 'utf-8' });
53
48
  const ApiHistorySchema = JSON.parse(ApiHistorySchemaFile);
54
49
  validateAgainstSchema = ajv.compile(ApiHistorySchema);
55
50
  }
@@ -60,7 +55,7 @@ async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile,
60
55
  let breakingChangesFileHeadingIds = null;
61
56
  if (breakingChangesFile) {
62
57
  try {
63
- const breakingChanges = await (0, promises_1.readFile)(breakingChangesFile, { encoding: 'utf-8' });
58
+ const breakingChanges = await readFile(breakingChangesFile, { encoding: 'utf-8' });
64
59
  const markdownBreakingChanges = fromMarkdown(breakingChanges);
65
60
  const headings = markdownBreakingChanges.children.filter((e) => e.type === 'heading' && e.depth === 3);
66
61
  // Convert to GitHub heading ID format
@@ -75,22 +70,22 @@ async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile,
75
70
  }
76
71
  }
77
72
  for (const document of await workspace.getAllMarkdownDocuments()) {
78
- const uri = vscode_uri_1.URI.parse(document.uri);
73
+ const uri = URI.parse(document.uri);
79
74
  const filepath = workspace.getWorkspaceRelativePath(uri);
80
75
  documentCounter++;
81
76
  const documentText = document.getText();
82
77
  if (!documentText.includes('<!--'))
83
78
  continue;
84
79
  const possibleHistoryBlocks = await findPossibleApiHistoryBlocks(documentText);
85
- for (const possibleHistoryBlock of possibleHistoryBlocks) {
80
+ historyBlockForLoop: for (const possibleHistoryBlock of possibleHistoryBlocks) {
86
81
  historyBlockCounter++;
87
82
  const { children: [htmlComment], } = fromHtml(possibleHistoryBlock.value);
88
83
  if (htmlComment.type !== 'comment')
89
84
  continue;
90
85
  const { children: [codeBlock], } = fromMarkdown(htmlComment.value);
91
86
  if (codeBlock.type !== 'code' ||
92
- ((_a = codeBlock.lang) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== 'yaml' ||
93
- ((_b = codeBlock.meta) === null || _b === void 0 ? void 0 : _b.trim().toLowerCase()) !== 'history') {
87
+ codeBlock.lang?.toLowerCase() !== 'yaml' ||
88
+ codeBlock.meta?.trim().toLowerCase() !== 'history') {
94
89
  console.error('Error occurred while parsing Markdown document:\n\n' +
95
90
  `'${filepath}'\n\n` +
96
91
  "Couldn't extract matches from possible API history block, did you use the correct format?\n\n" +
@@ -113,7 +108,7 @@ async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile,
113
108
  continue;
114
109
  // I've only seen errors occur when the first or last character is a special character - @piotrpdev
115
110
  const isFirstCharNonAlphaNumeric = trimmedMatchedGroup[0].match(nonAlphaNumericDotRegex) !== null;
116
- const isLastCharNonAlphaNumeric = ((_c = trimmedMatchedGroup.at(-1)) === null || _c === void 0 ? void 0 : _c.match(nonAlphaNumericDotRegex)) !== null;
111
+ const isLastCharNonAlphaNumeric = trimmedMatchedGroup.at(-1)?.match(nonAlphaNumericDotRegex) !== null;
117
112
  if (isFirstCharNonAlphaNumeric || isLastCharNonAlphaNumeric) {
118
113
  console.warn('Warning occurred while parsing Markdown document:\n\n' +
119
114
  `'${filepath}'\n\n` +
@@ -130,8 +125,31 @@ async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile,
130
125
  }
131
126
  }
132
127
  }
128
+ // Throw an error if a description isn't surrounded by double quotation marks
129
+ if (checkDescriptions) {
130
+ const possibleDescription = codeBlock.value.matchAll(possibleDescriptionRegex);
131
+ for (const [matchedLine, matchedGroup] of possibleDescription) {
132
+ const trimmedMatchedGroup = matchedGroup.trim();
133
+ const isMatchedGroupInsideQuotes = trimmedMatchedGroup.startsWith('"') && trimmedMatchedGroup.endsWith('"');
134
+ if (!isMatchedGroupInsideQuotes) {
135
+ console.error('Error occurred while parsing Markdown document:\n\n' +
136
+ `'${filepath}'\n\n` +
137
+ 'Possible description field is not surrounded by double quotes.\n\n' +
138
+ 'This might cause issues when parsing the YAML (might not throw an error)\n\n' +
139
+ 'Matched group:\n\n' +
140
+ `${matchedGroup}\n\n` +
141
+ 'Matched line:\n\n' +
142
+ `${matchedLine}\n\n` +
143
+ 'API history block:\n\n' +
144
+ `${possibleHistoryBlock.value}\n`);
145
+ errorCounter++;
146
+ // Behold, one of the rare occasions when a labeled statement is useful.
147
+ continue historyBlockForLoop;
148
+ }
149
+ }
150
+ }
133
151
  if (checkPlacement) {
134
- if (((_d = possibleHistoryBlock.previousNode) === null || _d === void 0 ? void 0 : _d.type) !== 'heading') {
152
+ if (possibleHistoryBlock.previousNode?.type !== 'heading') {
135
153
  console.error('Error occurred while parsing Markdown document:\n\n' +
136
154
  `'${filepath}'\n\n` +
137
155
  'API history block must be preceded by a heading\n\n' +
@@ -141,9 +159,11 @@ async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile,
141
159
  continue;
142
160
  }
143
161
  }
162
+ let unsafeHistoryDocument = null;
144
163
  let unsafeHistory = null;
145
164
  try {
146
- unsafeHistory = (0, yaml_1.parse)(codeBlock.value);
165
+ unsafeHistoryDocument = parseDocument(codeBlock.value);
166
+ unsafeHistory = unsafeHistoryDocument.toJS();
147
167
  }
148
168
  catch (error) {
149
169
  console.error('Error occurred while parsing Markdown document:\n\n' +
@@ -154,6 +174,26 @@ async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile,
154
174
  errorCounter++;
155
175
  continue;
156
176
  }
177
+ if (disallowComments) {
178
+ let commentFound = false;
179
+ yamlVisit(unsafeHistoryDocument, (_, node) => {
180
+ if (typeof node === 'object' &&
181
+ node !== null &&
182
+ ('comment' in node || 'commentBefore' in node)) {
183
+ commentFound = true;
184
+ return yamlVisit.BREAK;
185
+ }
186
+ });
187
+ if (commentFound) {
188
+ console.error('Error occurred while parsing Markdown document:\n\n' +
189
+ `'${filepath}'\n\n` +
190
+ 'API History cannot contain YAML comments.\n\n' +
191
+ 'API history block:\n\n' +
192
+ `${possibleHistoryBlock.value}\n`);
193
+ errorCounter++;
194
+ continue;
195
+ }
196
+ }
157
197
  if (!schema || validateAgainstSchema === null)
158
198
  continue;
159
199
  const isValid = validateAgainstSchema(unsafeHistory);
@@ -174,8 +214,8 @@ async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile,
174
214
  const safeHistory = unsafeHistory;
175
215
  const breakingChangeHeaders = [];
176
216
  const changesAndDeprecations = [
177
- ...((_e = safeHistory.changes) !== null && _e !== void 0 ? _e : []),
178
- ...((_f = safeHistory.deprecated) !== null && _f !== void 0 ? _f : []),
217
+ ...(safeHistory.changes ?? []),
218
+ ...(safeHistory.deprecated ?? []),
179
219
  ];
180
220
  for (const change of changesAndDeprecations) {
181
221
  if (change['breaking-changes-header']) {
@@ -212,33 +252,67 @@ async function main(workspaceRoot, globs, { checkPlacement, breakingChangesFile,
212
252
  }
213
253
  }
214
254
  function parseCommandLine() {
215
- const showUsage = (arg) => {
216
- if (!arg || arg.startsWith('-')) {
217
- console.log('Usage: lint-roller-markdown-api-history [--root <dir>] <globs>' +
218
- ' [-h|--help]' +
219
- ' [--check-placement] [--breaking-changes-file <path>] [--check-strings]' +
220
- ' [--schema <path>]' +
221
- ' [--ignore <globs>] [--ignore-path <path>]');
222
- process.exit(1);
223
- }
224
- return true;
255
+ const showUsage = () => {
256
+ console.log('Usage: lint-roller-markdown-api-history [--root <dir>] <globs>' +
257
+ ' [-h|--help]' +
258
+ ' [--check-placement] [--breaking-changes-file <path>] [--check-strings] [--check-descriptions] [--disallow-comments]' +
259
+ ' [--schema <path>]' +
260
+ ' [--ignore <globs>] [--ignore-path <path>]');
261
+ process.exit(1);
225
262
  };
226
- const opts = minimist(process.argv.slice(2), {
227
- boolean: ['help', 'check-placement', 'check-strings'],
228
- string: ['root', 'ignore', 'ignore-path', 'schema', 'breaking-changes-file'],
229
- unknown: showUsage,
230
- default: {
231
- 'check-placement': true,
232
- 'check-strings': true,
233
- },
234
- });
235
- if (opts.help || !opts._.length)
236
- showUsage();
237
- return opts;
263
+ try {
264
+ const opts = parseArgs({
265
+ allowNegative: true,
266
+ allowPositionals: true,
267
+ options: {
268
+ 'check-placement': {
269
+ type: 'boolean',
270
+ default: true,
271
+ },
272
+ 'check-strings': {
273
+ type: 'boolean',
274
+ default: true,
275
+ },
276
+ 'check-descriptions': {
277
+ type: 'boolean',
278
+ default: true,
279
+ },
280
+ 'disallow-comments': {
281
+ type: 'boolean',
282
+ default: true,
283
+ },
284
+ root: {
285
+ type: 'string',
286
+ },
287
+ ignore: {
288
+ type: 'string',
289
+ multiple: true,
290
+ },
291
+ 'ignore-path': {
292
+ type: 'string',
293
+ },
294
+ schema: {
295
+ type: 'string',
296
+ },
297
+ 'breaking-changes-file': {
298
+ type: 'string',
299
+ },
300
+ help: {
301
+ type: 'boolean',
302
+ },
303
+ },
304
+ });
305
+ if (opts.values.help || !opts.positionals.length)
306
+ return showUsage();
307
+ return opts;
308
+ }
309
+ catch {
310
+ return showUsage();
311
+ }
238
312
  }
239
313
  async function init() {
240
314
  try {
241
- const opts = parseCommandLine();
315
+ const { values: opts, positionals } = parseCommandLine();
242
316
  if (!opts.root) {
243
317
  opts.root = '.';
244
318
  }
@@ -249,21 +323,23 @@ async function init() {
249
323
  opts.ignore = [];
250
324
  }
251
325
  if (opts['ignore-path']) {
252
- const ignores = await (0, promises_1.readFile)((0, node_path_1.resolve)(opts['ignore-path']), { encoding: 'utf-8' });
326
+ const ignores = await readFile(resolve(opts['ignore-path']), { encoding: 'utf-8' });
253
327
  for (const ignore of ignores.split('\n')) {
254
328
  opts.ignore.push(ignore.trimEnd());
255
329
  }
256
330
  }
257
331
  if (opts.schema) {
258
- opts.schema = (0, node_path_1.resolve)(process.cwd(), opts.schema);
332
+ opts.schema = resolve(process.cwd(), opts.schema);
259
333
  }
260
334
  if (opts['breaking-changes-file']) {
261
- opts['breaking-changes-file'] = (0, node_path_1.resolve)(process.cwd(), opts['breaking-changes-file']);
335
+ opts['breaking-changes-file'] = resolve(process.cwd(), opts['breaking-changes-file']);
262
336
  }
263
- const { historyBlockCounter, documentCounter, errorCounter, warningCounter } = await main((0, node_path_1.resolve)(process.cwd(), opts.root), opts._, {
337
+ const { historyBlockCounter, documentCounter, errorCounter, warningCounter } = await main(resolve(process.cwd(), opts.root), positionals, {
264
338
  checkPlacement: opts['check-placement'],
265
339
  breakingChangesFile: opts['breaking-changes-file'],
266
340
  checkStrings: opts['check-strings'],
341
+ checkDescriptions: opts['check-descriptions'],
342
+ disallowComments: opts['disallow-comments'],
267
343
  ignoreGlobs: opts.ignore,
268
344
  schema: opts.schema,
269
345
  });
@@ -276,7 +352,7 @@ async function init() {
276
352
  process.exit(1);
277
353
  }
278
354
  }
279
- if (require.main === module) {
355
+ if (process.argv[1] === fileURLToPath(import.meta.url)) {
280
356
  init().catch((error) => {
281
357
  console.error(error);
282
358
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"lint-markdown-api-history.js","sourceRoot":"","sources":["../../bin/lint-markdown-api-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint-markdown-api-history.js","sourceRoot":"","sources":["../../bin/lint-markdown-api-history.ts"],"names":[],"mappings":";AAEA,OAAO,EAAqB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,GAAyB,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAKzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,8BAA8B;AAC9B,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;AACzD,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AACjD,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAuCzE,SAAS,MAAM,CAAC,IAAU;IACxB,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAe;IAEf,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAE9C,KAAK,CACH,IAAI;IACJ,oEAAoE;IACpE,CAAC,IAAI,EAAgB,EAAE,CACrB,MAAM,CAAC,IAAI,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC9C,CAAC,IAAU,EAAE,KAAK,EAAE,EAAE;QACpB,UAAU,CAAC,IAAI,CAAC;YACd,YAAY,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACnE,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AASD,KAAK,UAAU,IAAI,CACjB,aAAqB,EACrB,KAAe,EACf,EACE,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,WAAW,GAAG,EAAE,GACR;IAEV,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAEvE,IAAI,qBAAqB,GAAwC,IAAI,CAAC;QAEtE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;gBACtB,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAC1D,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAa,gBAAgB,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,0FAA0F,KAAK,IAAI,CACpG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,6BAA6B,GAAoB,IAAI,CAAC;QAE1D,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACnF,MAAM,uBAAuB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;gBAC9D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAChC,CAAC;gBACf,sCAAsC;gBACtC,6BAA6B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CACrB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACX,GAAG;oBACF,GAAuB,CAAC,KAAK;yBAC3B,WAAW,EAAE;yBACb,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;yBAClB,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAClC,EAAE,CACH,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,6FAA6F,KAAK,IAAI,CACvG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,MAAM,SAAS,CAAC,uBAAuB,EAAE,EAAE,CAAC;YACjE,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAEzD,eAAe,EAAE,CAAC;YAElB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS;YAE7C,MAAM,qBAAqB,GAAG,MAAM,4BAA4B,CAAC,YAAY,CAAC,CAAC;YAE/E,mBAAmB,EAAE,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE,CAAC;gBAC9E,mBAAmB,EAAE,CAAC;gBAEtB,MAAM,EACJ,QAAQ,EAAE,CAAC,WAAW,CAAC,GACxB,GAAG,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAEzC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;oBAAE,SAAS;gBAE7C,MAAM,EACJ,QAAQ,EAAE,CAAC,SAAS,CAAC,GACtB,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAEpC,IACE,SAAS,CAAC,IAAI,KAAK,MAAM;oBACzB,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,MAAM;oBACxC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,SAAS,EAClD,CAAC;oBACD,OAAO,CAAC,KAAK,CACX,qDAAqD;wBACnD,IAAI,QAAQ,OAAO;wBACnB,+FAA+F;wBAC/F,iCAAiC;wBACjC,GAAG,oBAAoB,CAAC,KAAK,IAAI,CACpC,CAAC;oBACF,YAAY,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,kFAAkF;gBAClF,0FAA0F;gBAC1F,4FAA4F;gBAC5F,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;oBAEtE,KAAK,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,eAAe,EAAE,CAAC;wBAC1D,MAAM,mBAAmB,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;wBAChD,MAAM,0BAA0B,GAC9B,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BAC1E,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;wBAE7E,yEAAyE;wBACzE,IAAI,0BAA0B;4BAAE,SAAS;wBAEzC,mGAAmG;wBACnG,MAAM,0BAA0B,GAC9B,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;wBACjE,MAAM,yBAAyB,GAC7B,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;wBACtE,IAAI,0BAA0B,IAAI,yBAAyB,EAAE,CAAC;4BAC5D,OAAO,CAAC,IAAI,CACV,uDAAuD;gCACrD,IAAI,QAAQ,OAAO;gCACnB,0EAA0E;gCAC1E,8EAA8E;gCAC9E,oBAAoB;gCACpB,GAAG,YAAY,MAAM;gCACrB,mBAAmB;gCACnB,GAAG,WAAW,MAAM;gCACpB,wBAAwB;gCACxB,GAAG,oBAAoB,CAAC,KAAK,IAAI,CACpC,CAAC;4BACF,iFAAiF;4BACjF,cAAc,EAAE,CAAC;wBACnB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,6EAA6E;gBAC7E,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,mBAAmB,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;oBAE/E,KAAK,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,mBAAmB,EAAE,CAAC;wBAC9D,MAAM,mBAAmB,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;wBAChD,MAAM,0BAA0B,GAC9B,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBAE3E,IAAI,CAAC,0BAA0B,EAAE,CAAC;4BAChC,OAAO,CAAC,KAAK,CACX,qDAAqD;gCACnD,IAAI,QAAQ,OAAO;gCACnB,oEAAoE;gCACpE,8EAA8E;gCAC9E,oBAAoB;gCACpB,GAAG,YAAY,MAAM;gCACrB,mBAAmB;gCACnB,GAAG,WAAW,MAAM;gCACpB,wBAAwB;gCACxB,GAAG,oBAAoB,CAAC,KAAK,IAAI,CACpC,CAAC;4BACF,YAAY,EAAE,CAAC;4BACf,wEAAwE;4BACxE,SAAS,mBAAmB,CAAC;wBAC/B,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,oBAAoB,CAAC,YAAY,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC1D,OAAO,CAAC,KAAK,CACX,qDAAqD;4BACnD,IAAI,QAAQ,OAAO;4BACnB,qDAAqD;4BACrD,wBAAwB;4BACxB,GAAG,oBAAoB,CAAC,KAAK,IAAI,CACpC,CAAC;wBACF,YAAY,EAAE,CAAC;wBACf,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,IAAI,qBAAqB,GAAG,IAAI,CAAC;gBACjC,IAAI,aAAa,GAAG,IAAI,CAAC;gBAEzB,IAAI,CAAC;oBACH,qBAAqB,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACvD,aAAa,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAC;gBAC/C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CACX,qDAAqD;wBACnD,IAAI,QAAQ,OAAO;wBACnB,UAAU,KAAK,MAAM;wBACrB,wBAAwB;wBACxB,GAAG,oBAAoB,CAAC,KAAK,IAAI,CACpC,CAAC;oBACF,YAAY,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,gBAAgB,EAAE,CAAC;oBACrB,IAAI,YAAY,GAAG,KAAK,CAAC;oBAEzB,SAAS,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;wBAC3C,IACE,OAAO,IAAI,KAAK,QAAQ;4BACxB,IAAI,KAAK,IAAI;4BACb,CAAC,SAAS,IAAI,IAAI,IAAI,eAAe,IAAI,IAAI,CAAC,EAC9C,CAAC;4BACD,YAAY,GAAG,IAAI,CAAC;4BACpB,OAAO,SAAS,CAAC,KAAK,CAAC;wBACzB,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,IAAI,YAAY,EAAE,CAAC;wBACjB,OAAO,CAAC,KAAK,CACX,qDAAqD;4BACnD,IAAI,QAAQ,OAAO;4BACnB,+CAA+C;4BAC/C,wBAAwB;4BACxB,GAAG,oBAAoB,CAAC,KAAK,IAAI,CACpC,CAAC;wBACF,YAAY,EAAE,CAAC;wBACf,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM,IAAI,qBAAqB,KAAK,IAAI;oBAAE,SAAS;gBAExD,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;gBAErD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CACX,qDAAqD;wBACnD,IAAI,QAAQ,OAAO;wBACnB,2BAA2B;wBAC3B,wBAAwB;wBACxB,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM;wBAC9D,kBAAkB;wBAClB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM;wBAC/C,wBAAwB;wBACxB,GAAG,oBAAoB,CAAC,KAAK,IAAI,CACpC,CAAC;oBACF,YAAY,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,mBAAmB,IAAI,6BAA6B,KAAK,IAAI,EAAE,CAAC;oBAClE,MAAM,WAAW,GAAG,aAA2B,CAAC;oBAEhD,MAAM,qBAAqB,GAAa,EAAE,CAAC;oBAE3C,MAAM,sBAAsB,GAAG;wBAC7B,GAAG,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;wBAC9B,GAAG,CAAC,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC;qBAClC,CAAC;oBAEF,KAAK,MAAM,MAAM,IAAI,sBAAsB,EAAE,CAAC;wBAC5C,IAAI,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC;4BACtC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;wBAChE,CAAC;oBACH,CAAC;oBAED,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;wBAC3C,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;4BACpD,OAAO,CAAC,KAAK,CACX,qDAAqD;gCACnD,IAAI,QAAQ,OAAO;gCACnB,0DAA0D;gCAC1D,IAAI,MAAM,OAAO;gCACjB,oCAAoC;gCACpC,IAAI,mBAAmB,OAAO;gCAC9B,kBAAkB;gCAClB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM;gCAC7C,wBAAwB;gCACxB,GAAG,oBAAoB,CAAC,KAAK,MAAM,CACtC,CAAC;4BACF,YAAY,EAAE,CAAC;wBACjB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,iFAAiF;YACnF,CAAC;YAED,4HAA4H;QAC9H,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;IAChF,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,SAAS,GAAG,GAAU,EAAE;QAC5B,OAAO,CAAC,GAAG,CACT,gEAAgE;YAC9D,cAAc;YACd,sHAAsH;YACtH,oBAAoB;YACpB,4CAA4C,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC;YACrB,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE;gBACP,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;iBACd;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;iBACd;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;iBACd;gBACD,mBAAmB,EAAE;oBACnB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;iBACd;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;iBACf;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;iBACf;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;iBACf;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;iBACf;gBACD,uBAAuB,EAAE;oBACvB,IAAI,EAAE,QAAQ;iBACf;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,SAAS;iBAChB;aACF;SACF,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,SAAS,EAAE,CAAC;QAErE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAEzD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAEpF,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CACvF,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EACjC,WAAW,EACX;YACE,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC;YACvC,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,CAAC;YAClD,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;YACnC,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC;YAC7C,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC;YAC3C,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CACF,CAAC;QAEF,OAAO,CAAC,GAAG,CACT,aAAa,mBAAmB,4BAA4B,eAAe,qBAAqB,YAAY,iBAAiB,cAAc,cAAc,CAC1J,CAAC;QAEF,IAAI,YAAY,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sEAAsE,KAAK,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACvD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,27 +1,24 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const fs = require("node:fs");
5
- const path = require("node:path");
6
- const vscode_markdown_languageservice_1 = require("@dsanders11/vscode-markdown-languageservice");
7
- const minimist = require("minimist");
8
- const vscode_languageserver_1 = require("vscode-languageserver");
9
- const vscode_uri_1 = require("vscode-uri");
10
- const markdown_1 = require("../lib/markdown");
2
+ import * as fs from 'node:fs';
3
+ import * as path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { parseArgs } from 'node:util';
6
+ import { createLanguageService, DiagnosticLevel, LogLevel, } from '@dsanders11/vscode-markdown-languageservice';
7
+ import { CancellationTokenSource } from 'vscode-languageserver';
8
+ import { URI } from 'vscode-uri';
9
+ import { DocsWorkspace, MarkdownLinkComputer, MarkdownParser } from '../lib/markdown.js';
11
10
  class NoOpLogger {
12
- constructor() {
13
- this.level = vscode_markdown_languageservice_1.LogLevel.Off;
14
- }
11
+ level = LogLevel.Off;
15
12
  log() { }
16
13
  }
17
14
  const diagnosticOptions = {
18
15
  ignoreLinks: [],
19
- validateDuplicateLinkDefinitions: vscode_markdown_languageservice_1.DiagnosticLevel.error,
20
- validateFileLinks: vscode_markdown_languageservice_1.DiagnosticLevel.error,
21
- validateFragmentLinks: vscode_markdown_languageservice_1.DiagnosticLevel.error,
22
- validateMarkdownFileLinkFragments: vscode_markdown_languageservice_1.DiagnosticLevel.error,
23
- validateReferences: vscode_markdown_languageservice_1.DiagnosticLevel.error,
24
- validateUnusedLinkDefinitions: vscode_markdown_languageservice_1.DiagnosticLevel.error,
16
+ validateDuplicateLinkDefinitions: DiagnosticLevel.error,
17
+ validateFileLinks: DiagnosticLevel.error,
18
+ validateFragmentLinks: DiagnosticLevel.error,
19
+ validateMarkdownFileLinkFragments: DiagnosticLevel.error,
20
+ validateReferences: DiagnosticLevel.error,
21
+ validateUnusedLinkDefinitions: DiagnosticLevel.error,
25
22
  };
26
23
  async function fetchExternalLink(link, checkRedirects = false) {
27
24
  try {
@@ -47,23 +44,22 @@ async function fetchExternalLink(link, checkRedirects = false) {
47
44
  return true;
48
45
  }
49
46
  }
50
- catch (_a) {
47
+ catch {
51
48
  console.log('Broken link', link);
52
49
  }
53
50
  return false;
54
51
  }
55
52
  async function main(workspaceRoot, globs, { fetchExternalLinks = false, checkRedirects = false, ignoreGlobs = [] }) {
56
- var _a;
57
- const workspace = new markdown_1.DocsWorkspace(workspaceRoot, globs, ignoreGlobs);
58
- const parser = new markdown_1.MarkdownParser();
59
- const linkComputer = new markdown_1.MarkdownLinkComputer(workspace);
60
- const languageService = (0, vscode_markdown_languageservice_1.createLanguageService)({
53
+ const workspace = new DocsWorkspace(workspaceRoot, globs, ignoreGlobs);
54
+ const parser = new MarkdownParser();
55
+ const linkComputer = new MarkdownLinkComputer(workspace);
56
+ const languageService = createLanguageService({
61
57
  workspace,
62
58
  parser,
63
59
  logger: new NoOpLogger(),
64
60
  linkComputer,
65
61
  });
66
- const cts = new vscode_languageserver_1.CancellationTokenSource();
62
+ const cts = new CancellationTokenSource();
67
63
  let errors = false;
68
64
  const externalLinks = new Set();
69
65
  try {
@@ -71,7 +67,7 @@ async function main(workspaceRoot, globs, { fetchExternalLinks = false, checkRed
71
67
  for (const document of await workspace.getAllMarkdownDocuments()) {
72
68
  for (let link of await languageService.getDocumentLinks(document, cts.token)) {
73
69
  if (link.target === undefined) {
74
- link = (_a = (await languageService.resolveDocumentLink(link, cts.token))) !== null && _a !== void 0 ? _a : link;
70
+ link = (await languageService.resolveDocumentLink(link, cts.token)) ?? link;
75
71
  }
76
72
  if (link.target &&
77
73
  link.target.startsWith('http') &&
@@ -81,7 +77,7 @@ async function main(workspaceRoot, globs, { fetchExternalLinks = false, checkRed
81
77
  }
82
78
  const diagnostics = await languageService.computeDiagnostics(document, diagnosticOptions, cts.token);
83
79
  if (diagnostics.length) {
84
- console.log('File Location:', path.relative(vscode_uri_1.URI.file(workspace.root).path, vscode_uri_1.URI.parse(document.uri).path));
80
+ console.log('File Location:', path.relative(URI.file(workspace.root).path, URI.parse(document.uri).path));
85
81
  }
86
82
  for (const diagnostic of diagnostics) {
87
83
  console.log(`\tBroken link on line ${diagnostic.range.start.line + 1}:`, diagnostic.message);
@@ -99,25 +95,46 @@ async function main(workspaceRoot, globs, { fetchExternalLinks = false, checkRed
99
95
  return errors;
100
96
  }
101
97
  function parseCommandLine() {
102
- const showUsage = (arg) => {
103
- if (!arg || arg.startsWith('-')) {
104
- console.log('Usage: lint-roller-markdown-links [--root <dir>] <globs> [-h|--help] [--fetch-external-links] ' +
105
- '[--check-redirects] [--ignore <globs>]');
106
- process.exit(1);
107
- }
108
- return true;
98
+ const showUsage = () => {
99
+ console.log('Usage: lint-roller-markdown-links [--root <dir>] <globs> [-h|--help] [--fetch-external-links] ' +
100
+ '[--check-redirects] [--ignore <globs>]');
101
+ process.exit(1);
109
102
  };
110
- const opts = minimist(process.argv.slice(2), {
111
- boolean: ['help', 'fetch-external-links', 'check-redirects'],
112
- string: ['root', 'ignore', 'ignore-path'],
113
- unknown: showUsage,
114
- });
115
- if (opts.help || !opts._.length)
116
- showUsage();
117
- return opts;
103
+ try {
104
+ const opts = parseArgs({
105
+ allowPositionals: true,
106
+ options: {
107
+ 'fetch-external-links': {
108
+ type: 'boolean',
109
+ },
110
+ 'check-redirects': {
111
+ type: 'boolean',
112
+ },
113
+ root: {
114
+ type: 'string',
115
+ },
116
+ ignore: {
117
+ type: 'string',
118
+ multiple: true,
119
+ },
120
+ 'ignore-path': {
121
+ type: 'string',
122
+ },
123
+ help: {
124
+ type: 'boolean',
125
+ },
126
+ },
127
+ });
128
+ if (opts.values.help || !opts.positionals.length)
129
+ return showUsage();
130
+ return opts;
131
+ }
132
+ catch {
133
+ return showUsage();
134
+ }
118
135
  }
119
- if (require.main === module) {
120
- const opts = parseCommandLine();
136
+ if (process.argv[1] === fileURLToPath(import.meta.url)) {
137
+ const { values: opts, positionals } = parseCommandLine();
121
138
  if (!opts.root) {
122
139
  opts.root = '.';
123
140
  }
@@ -133,7 +150,7 @@ if (require.main === module) {
133
150
  opts.ignore.push(ignore.trimEnd());
134
151
  }
135
152
  }
136
- main(path.resolve(process.cwd(), opts.root), opts._, {
153
+ main(path.resolve(process.cwd(), opts.root), positionals, {
137
154
  fetchExternalLinks: opts['fetch-external-links'],
138
155
  checkRedirects: opts['check-redirects'],
139
156
  ignoreGlobs: opts.ignore,
@@ -1 +1 @@
1
- {"version":3,"file":"lint-markdown-links.js","sourceRoot":"","sources":["../../bin/lint-markdown-links.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint-markdown-links.js","sourceRoot":"","sources":["../../bin/lint-markdown-links.ts"],"names":[],"mappings":"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"}