@electron/lint-roller 3.1.3 → 3.3.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.
@@ -57,10 +57,10 @@ async function fetchExternalLink(link, checkRedirects = false) {
57
57
  }
58
58
  return false;
59
59
  }
60
- async function main(workspaceRoot, globs, { allowAbsoluteLinks = false, fetchExternalLinks = false, checkRedirects = false, ignoreGlobs = [], }) {
61
- const workspace = new DocsWorkspace(workspaceRoot, globs, ignoreGlobs);
60
+ async function main(workspaceRoot, globs, { allowAbsoluteLinks = false, fetchExternalLinks = false, checkRedirects = false, ignoreGlobs = [], resourceRoot, }) {
61
+ const workspace = new DocsWorkspace(workspaceRoot, globs, ignoreGlobs, resourceRoot);
62
62
  const parser = new MarkdownParser();
63
- const linkComputer = new MarkdownLinkComputer(workspace);
63
+ const linkComputer = new MarkdownLinkComputer(workspace, resourceRoot);
64
64
  const languageService = createLanguageService({
65
65
  workspace,
66
66
  parser,
@@ -113,7 +113,7 @@ async function main(workspaceRoot, globs, { allowAbsoluteLinks = false, fetchExt
113
113
  function parseCommandLine() {
114
114
  const showUsage = () => {
115
115
  console.log('Usage: lint-roller-markdown-links [--root <dir>] <globs> [-h|--help] [--allow-absolute-links]' +
116
- '[--fetch-external-links] [--check-redirects] [--ignore <globs>]');
116
+ '[--fetch-external-links] [--check-redirects] [--ignore <globs>] [--resource-root <dir>]');
117
117
  process.exit(1);
118
118
  };
119
119
  try {
@@ -132,6 +132,9 @@ function parseCommandLine() {
132
132
  root: {
133
133
  type: 'string',
134
134
  },
135
+ 'resource-root': {
136
+ type: 'string',
137
+ },
135
138
  ignore: {
136
139
  type: 'string',
137
140
  multiple: true,
@@ -174,6 +177,9 @@ if ((await fs.promises.realpath(process.argv[1])) === fileURLToPath(import.meta.
174
177
  fetchExternalLinks: opts['fetch-external-links'],
175
178
  checkRedirects: opts['check-redirects'],
176
179
  ignoreGlobs: opts.ignore,
180
+ resourceRoot: opts['resource-root']
181
+ ? path.resolve(process.cwd(), opts['resource-root'])
182
+ : undefined,
177
183
  })
178
184
  .then((errors) => {
179
185
  if (errors)
@@ -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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"}
@@ -33,10 +33,12 @@ export declare class DocsWorkspace implements IWorkspace {
33
33
  readonly root: string;
34
34
  readonly globs: string[];
35
35
  readonly ignoreGlobs: string[];
36
- constructor(root: string, globs: string[], ignoreGlobs?: string[]);
36
+ readonly resourceRoot?: string;
37
+ constructor(root: string, globs: string[], ignoreGlobs?: string[], resourceRoot?: string);
37
38
  get workspaceFolders(): URI[];
38
39
  getAllMarkdownDocuments(): Promise<Iterable<TextDocument>>;
39
40
  hasMarkdownDocument(resource: URI): boolean;
41
+ getResourceRootRelativePath(resource: URI): string;
40
42
  getWorkspaceRelativePath(resource: URI): string;
41
43
  openMarkdownDocument(resource: URI): Promise<TextDocument | undefined>;
42
44
  stat(resource: URI): Promise<FileStat | undefined>;
@@ -48,7 +50,8 @@ export declare class DocsWorkspace implements IWorkspace {
48
50
  export declare class MarkdownLinkComputer implements IMdLinkComputer {
49
51
  #private;
50
52
  private readonly workspace;
51
- constructor(workspace: IWorkspace);
53
+ private readonly resourceRoot?;
54
+ constructor(workspace: IWorkspace, resourceRoot?: string);
52
55
  getAllLinks(document: ITextDocument): Promise<MdLink[]>;
53
56
  }
54
57
  export declare function getCodeBlocks(content: string): Promise<Code[]>;
@@ -18,12 +18,23 @@ function tryDecodeUri(str) {
18
18
  }
19
19
  }
20
20
  // Helper function from `vscode-markdown-languageservice` codebase
21
- function createHref(sourceDocUri, link, workspace) {
21
+ function createHref(sourceDocUri, link, workspace, resourceRoot) {
22
22
  if (/^[a-z-][a-z-]+:/i.test(link)) {
23
23
  // Looks like a uri
24
24
  return { kind: HrefKind.External, uri: URI.parse(tryDecodeUri(link)) };
25
25
  }
26
- const resolved = resolveInternalDocumentLink(sourceDocUri, link, workspace);
26
+ let resolved = resolveInternalDocumentLink(sourceDocUri, link, workspace);
27
+ // If it's an absolute link that doesn't resolve to a valid path, check if it's within the resource root
28
+ if (resolved &&
29
+ !fs.existsSync(resolved.resource.fsPath) &&
30
+ link.startsWith('/') &&
31
+ resourceRoot) {
32
+ const absolutePath = path.join(resourceRoot, link);
33
+ if (fs.existsSync(absolutePath)) {
34
+ link = path.relative(path.dirname(sourceDocUri.fsPath), absolutePath);
35
+ resolved = resolveInternalDocumentLink(sourceDocUri, link, workspace);
36
+ }
37
+ }
27
38
  if (!resolved) {
28
39
  return undefined;
29
40
  }
@@ -54,11 +65,13 @@ export class DocsWorkspace {
54
65
  root;
55
66
  globs;
56
67
  ignoreGlobs;
57
- constructor(root, globs, ignoreGlobs = []) {
68
+ resourceRoot;
69
+ constructor(root, globs, ignoreGlobs = [], resourceRoot) {
58
70
  this.documentCache = new Map();
59
71
  this.root = root;
60
72
  this.globs = globs;
61
73
  this.ignoreGlobs = ignoreGlobs;
74
+ this.resourceRoot = resourceRoot;
62
75
  }
63
76
  get workspaceFolders() {
64
77
  return [URI.file(this.root)];
@@ -77,6 +90,9 @@ export class DocsWorkspace {
77
90
  !path.isAbsolute(relativePath) &&
78
91
  fs.existsSync(resource.fsPath));
79
92
  }
93
+ getResourceRootRelativePath(resource) {
94
+ return path.relative(path.resolve(this.resourceRoot || this.root), resource.fsPath);
95
+ }
80
96
  getWorkspaceRelativePath(resource) {
81
97
  return path.relative(path.resolve(this.root), resource.fsPath);
82
98
  }
@@ -93,11 +109,20 @@ export class DocsWorkspace {
93
109
  return this.documentCache.get(resource.fsPath);
94
110
  }
95
111
  async stat(resource) {
96
- if (this.hasMarkdownDocument(resource)) {
112
+ if (!this.hasMarkdownDocument(resource)) {
113
+ // If it's not a markdown document, check if it's within the resource root
114
+ const relativePath = this.getResourceRootRelativePath(resource);
115
+ if (relativePath.startsWith('..') || path.isAbsolute(relativePath)) {
116
+ return undefined;
117
+ }
118
+ }
119
+ try {
97
120
  const stats = fs.statSync(resource.fsPath);
98
121
  return { isDirectory: stats.isDirectory() };
99
122
  }
100
- return undefined;
123
+ catch {
124
+ return undefined;
125
+ }
101
126
  }
102
127
  async readDirectory() {
103
128
  throw new Error('Not implemented');
@@ -115,8 +140,10 @@ export class DocsWorkspace {
115
140
  }
116
141
  export class MarkdownLinkComputer {
117
142
  workspace;
118
- constructor(workspace) {
143
+ resourceRoot;
144
+ constructor(workspace, resourceRoot) {
119
145
  this.workspace = workspace;
146
+ this.resourceRoot = resourceRoot;
120
147
  }
121
148
  async getAllLinks(document) {
122
149
  const tree = fromMarkdown(document.getText());
@@ -130,9 +157,9 @@ export class MarkdownLinkComputer {
130
157
  async #getInlineLinks(document, tree) {
131
158
  const documentUri = URI.parse(document.uri);
132
159
  const links = [];
133
- visit(tree, 'link', (node) => {
160
+ visit(tree, ['image', 'link'], (node) => {
134
161
  const link = node;
135
- const href = createHref(documentUri, link.url, this.workspace);
162
+ const href = createHref(documentUri, link.url, this.workspace, this.resourceRoot);
136
163
  if (href) {
137
164
  const range = positionToRange(link.position);
138
165
  // NOTE - These haven't been implemented properly, but their
@@ -190,7 +217,7 @@ export class MarkdownLinkComputer {
190
217
  const links = [];
191
218
  visit(tree, 'definition', (node) => {
192
219
  const definition = node;
193
- const href = createHref(documentUri, definition.url, this.workspace);
220
+ const href = createHref(documentUri, definition.url, this.workspace, this.resourceRoot);
194
221
  if (href) {
195
222
  const range = positionToRange(definition.position);
196
223
  // NOTE - These haven't been implemented properly, but their
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../lib/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../lib/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,eAAe,EACf,2BAA2B,EAG3B,QAAQ,EAOR,UAAU,GACX,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAS,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAOjC,kEAAkE;AAClE,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,SAAS,UAAU,CACjB,YAAiB,EACjB,IAAY,EACZ,SAAqB,EACrB,YAAqB;IAErB,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,mBAAmB;QACnB,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,IAAI,QAAQ,GAAG,2BAA2B,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAE1E,wGAAwG;IACxG,IACE,QAAQ;QACR,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACpB,YAAY,EACZ,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEnD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;YACtE,QAAQ,GAAG,2BAA2B,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,QAAQ;QACvB,IAAI,EAAE,QAAQ,CAAC,QAAQ;QACvB,QAAQ,EAAE,QAAQ,CAAC,YAAY;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB;IACzC,OAAO;QACL,KAAK,EAAE;YACL,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACpC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;SAC9B;QACD,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAExC,MAAM,OAAO,cAAc;IACzB,SAAS,GAAG,eAAe,CAAC;IAE5B,KAAK,CAAC,QAAQ,CAAC,QAAsB;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IACP,aAAa,CAA4B;IACjD,IAAI,CAAS;IACb,KAAK,CAAW;IAChB,WAAW,CAAW;IACtB,YAAY,CAAU;IAE/B,YAAY,IAAY,EAAE,KAAe,EAAE,cAAwB,EAAE,EAAE,YAAqB;QAC1F,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CACjF,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAClC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EACzB,UAAU,EACV,CAAC,EACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAC9B,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC;IAED,mBAAmB,CAAC,QAAa;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC7D,OAAO,CACL,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAC9B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC/B,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,QAAa;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,wBAAwB,CAAC,QAAa;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,QAAa;QACtC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAClC,QAAQ,CAAC,QAAQ,EAAE,EACnB,UAAU,EACV,CAAC,EACD,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CACzC,CAAC;gBAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAa;QACtB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,0EAA0E;YAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YAEhE,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnE,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,EAAE;IACF,2EAA2E;IAC3E,uEAAuE;IACvE,EAAE;IAEF,4BAA4B,GAAG,IAAI,OAAO,EAAiB,CAAC;IAC5D,2BAA2B,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC;IAEtE,4BAA4B,GAAG,IAAI,OAAO,EAAiB,CAAC;IAC5D,2BAA2B,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC;IAEtE,4BAA4B,GAAG,IAAI,OAAO,EAAO,CAAC;IAClD,2BAA2B,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC;CACvE;AAED,MAAM,OAAO,oBAAoB;IACd,SAAS,CAAa;IACtB,YAAY,CAAU;IAEvC,YAAY,SAAqB,EAAE,YAAqB;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAuB;QACvC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG;YACZ,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/C,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAClD,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACpD,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAuB,EAAE,IAAU;QACvD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAU,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,IAAY,CAAC;YAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAElF,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC;gBAE9C,4DAA4D;gBAC5D,0DAA0D;gBAC1D,MAAM,WAAW,GAAG,KAAK,CAAC;gBAC1B,MAAM,SAAS,GAAG,KAAK,CAAC;gBACxB,MAAM,aAAa,GAAG,SAAS,CAAC;gBAEhC,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,IAAI;oBACJ,MAAM,EAAE;wBACN,QAAQ,EAAE,IAAI,CAAC,GAAG;wBAClB,QAAQ,EAAE,WAAW;wBACrB,KAAK;wBACL,WAAW;wBACX,SAAS;wBACT,aAAa;wBACb,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACjC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAuB,EAAE,IAAU;QAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC,EAAE,CAAC,IAAU,EAAE,EAAE;YAC9D,MAAM,IAAI,GAAG,IAAsC,CAAC;YACpD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC;YAE9C,4DAA4D;YAC5D,0DAA0D;YAC1D,MAAM,WAAW,GAAG,KAAK,CAAC;YAC1B,MAAM,SAAS,GAAG,KAAK,CAAC;YAExB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ,CAAC,SAAS;oBACxB,GAAG,EAAE,IAAI,CAAC,KAAM;iBACjB;gBACD,MAAM,EAAE;oBACN,QAAQ,EAAE,IAAI,CAAC,KAAM;oBACrB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACjC,KAAK;oBACL,WAAW;oBACX,SAAS;oBACT,aAAa,EAAE,SAAS;oBACxB,QAAQ,EAAE,IAAI,CAAC,KAAM;iBACtB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAuB,EAAE,IAAU;QAC3D,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAU,EAAE,EAAE;YACvC,MAAM,UAAU,GAAG,IAAkB,CAAC;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAExF,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,QAAS,CAAC,CAAC;gBAEpD,4DAA4D;gBAC5D,0DAA0D;gBAC1D,MAAM,WAAW,GAAG,KAAK,CAAC;gBAC1B,MAAM,SAAS,GAAG,KAAK,CAAC;gBACxB,MAAM,aAAa,GAAG,SAAS,CAAC;gBAEhC,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,UAAU,CAAC,UAAU;oBAC3B,IAAI;oBACJ,GAAG,EAAE;wBACH,KAAK;wBACL,IAAI,EAAE,UAAU,CAAC,KAAM;qBACxB;oBACD,MAAM,EAAE;wBACN,QAAQ,EAAE,UAAU,CAAC,GAAG;wBACxB,QAAQ,EAAE,WAAW;wBACrB,KAAK;wBACL,WAAW;wBACX,SAAS;wBACT,aAAa;wBACb,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACvC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,UAAU,GAAW,EAAE,CAAC;IAE9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAU,EAAE,EAAE;QACjC,UAAU,CAAC,IAAI,CAAC,IAAY,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC"}
package/lib/markdown.ts CHANGED
@@ -42,13 +42,30 @@ function createHref(
42
42
  sourceDocUri: URI,
43
43
  link: string,
44
44
  workspace: IWorkspace,
45
+ resourceRoot?: string,
45
46
  ): ExternalHref | InternalHref | undefined {
46
47
  if (/^[a-z-][a-z-]+:/i.test(link)) {
47
48
  // Looks like a uri
48
49
  return { kind: HrefKind.External, uri: URI.parse(tryDecodeUri(link)) };
49
50
  }
50
51
 
51
- const resolved = resolveInternalDocumentLink(sourceDocUri, link, workspace);
52
+ let resolved = resolveInternalDocumentLink(sourceDocUri, link, workspace);
53
+
54
+ // If it's an absolute link that doesn't resolve to a valid path, check if it's within the resource root
55
+ if (
56
+ resolved &&
57
+ !fs.existsSync(resolved.resource.fsPath) &&
58
+ link.startsWith('/') &&
59
+ resourceRoot
60
+ ) {
61
+ const absolutePath = path.join(resourceRoot, link);
62
+
63
+ if (fs.existsSync(absolutePath)) {
64
+ link = path.relative(path.dirname(sourceDocUri.fsPath), absolutePath);
65
+ resolved = resolveInternalDocumentLink(sourceDocUri, link, workspace);
66
+ }
67
+ }
68
+
52
69
  if (!resolved) {
53
70
  return undefined;
54
71
  }
@@ -85,12 +102,14 @@ export class DocsWorkspace implements IWorkspace {
85
102
  readonly root: string;
86
103
  readonly globs: string[];
87
104
  readonly ignoreGlobs: string[];
105
+ readonly resourceRoot?: string;
88
106
 
89
- constructor(root: string, globs: string[], ignoreGlobs: string[] = []) {
107
+ constructor(root: string, globs: string[], ignoreGlobs: string[] = [], resourceRoot?: string) {
90
108
  this.documentCache = new Map();
91
109
  this.root = root;
92
110
  this.globs = globs;
93
111
  this.ignoreGlobs = ignoreGlobs;
112
+ this.resourceRoot = resourceRoot;
94
113
  }
95
114
 
96
115
  get workspaceFolders() {
@@ -125,6 +144,10 @@ export class DocsWorkspace implements IWorkspace {
125
144
  );
126
145
  }
127
146
 
147
+ getResourceRootRelativePath(resource: URI) {
148
+ return path.relative(path.resolve(this.resourceRoot || this.root), resource.fsPath);
149
+ }
150
+
128
151
  getWorkspaceRelativePath(resource: URI) {
129
152
  return path.relative(path.resolve(this.root), resource.fsPath);
130
153
  }
@@ -149,12 +172,21 @@ export class DocsWorkspace implements IWorkspace {
149
172
  }
150
173
 
151
174
  async stat(resource: URI): Promise<FileStat | undefined> {
152
- if (this.hasMarkdownDocument(resource)) {
175
+ if (!this.hasMarkdownDocument(resource)) {
176
+ // If it's not a markdown document, check if it's within the resource root
177
+ const relativePath = this.getResourceRootRelativePath(resource);
178
+
179
+ if (relativePath.startsWith('..') || path.isAbsolute(relativePath)) {
180
+ return undefined;
181
+ }
182
+ }
183
+
184
+ try {
153
185
  const stats = fs.statSync(resource.fsPath);
154
186
  return { isDirectory: stats.isDirectory() };
187
+ } catch {
188
+ return undefined;
155
189
  }
156
-
157
- return undefined;
158
190
  }
159
191
 
160
192
  async readDirectory(): Promise<Iterable<readonly [string, FileStat]>> {
@@ -178,9 +210,11 @@ export class DocsWorkspace implements IWorkspace {
178
210
 
179
211
  export class MarkdownLinkComputer implements IMdLinkComputer {
180
212
  private readonly workspace: IWorkspace;
213
+ private readonly resourceRoot?: string;
181
214
 
182
- constructor(workspace: IWorkspace) {
215
+ constructor(workspace: IWorkspace, resourceRoot?: string) {
183
216
  this.workspace = workspace;
217
+ this.resourceRoot = resourceRoot;
184
218
  }
185
219
 
186
220
  async getAllLinks(document: ITextDocument): Promise<MdLink[]> {
@@ -199,9 +233,9 @@ export class MarkdownLinkComputer implements IMdLinkComputer {
199
233
  const documentUri = URI.parse(document.uri);
200
234
  const links: MdLink[] = [];
201
235
 
202
- visit(tree, 'link', (node: Node) => {
236
+ visit(tree, ['image', 'link'], (node: Node) => {
203
237
  const link = node as Link;
204
- const href = createHref(documentUri, link.url, this.workspace);
238
+ const href = createHref(documentUri, link.url, this.workspace, this.resourceRoot);
205
239
 
206
240
  if (href) {
207
241
  const range = positionToRange(link.position!);
@@ -270,7 +304,7 @@ export class MarkdownLinkComputer implements IMdLinkComputer {
270
304
 
271
305
  visit(tree, 'definition', (node: Node) => {
272
306
  const definition = node as Definition;
273
- const href = createHref(documentUri, definition.url, this.workspace);
307
+ const href = createHref(documentUri, definition.url, this.workspace, this.resourceRoot);
274
308
 
275
309
  if (href) {
276
310
  const range = positionToRange(definition.position!);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electron/lint-roller",
3
- "version": "3.1.3",
3
+ "version": "3.3.0",
4
4
  "description": "Markdown linting helpers for Electron org repos",
5
5
  "type": "module",
6
6
  "engines": {