tackbox 0.1.79 → 0.1.80

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.
@@ -115,7 +115,8 @@ function validateDeclarations(decls) {
115
115
  // line: null (location-unknown) - the caller over-reports, never drops it.
116
116
  function emitMachine(results) {
117
117
  for (const r of results) {
118
- const file = path.relative(process.cwd(), r.filePath)
118
+ // The contract path is POSIX; path.relative yields `\` on Windows.
119
+ const file = path.relative(process.cwd(), r.filePath).replace(/\\/g, '/')
119
120
  for (const m of r.messages) {
120
121
  if (m.severity !== 2) continue
121
122
  process.stdout.write(JSON.stringify({ file, line: m.line ?? null, rule: m.ruleId, message: m.message }) + '\n')
@@ -158,10 +158,16 @@ function declaredReporters(context) {
158
158
  return Array.isArray(s) ? s : []
159
159
  }
160
160
 
161
+ // Declarations are POSIX; path.relative hands back `\` on Windows, and a key
162
+ // that keeps it stops matching its own declaration.
163
+ function toPosix(p) {
164
+ return p.replace(/\\/g, '/')
165
+ }
166
+
161
167
  function relFile(context) {
162
168
  const fn = context.filename || (context.getFilename && context.getFilename()) || ''
163
169
  const cwd = context.cwd || process.cwd()
164
- return path.isAbsolute(fn) ? path.relative(cwd, fn) : fn
170
+ return toPosix(path.isAbsolute(fn) ? path.relative(cwd, fn) : fn)
165
171
  }
166
172
 
167
173
  // Module extensions, compound first: a specifier that omits the extension must
@@ -235,7 +241,7 @@ function resolveAlias(context, source, absImporter) {
235
241
  dir = up
236
242
  }
237
243
  if (root === null) return null
238
- return path.relative(context.cwd || process.cwd(), path.join(root, 'src', 'lib', rest))
244
+ return toPosix(path.relative(context.cwd || process.cwd(), path.join(root, 'src', 'lib', rest)))
239
245
  }
240
246
 
241
247
  // resolveDeclTarget resolves an Identifier callee to the {file, name} of its
@@ -252,7 +258,7 @@ function resolveDeclTarget(context, idNode) {
252
258
  const importedName = info.kind === 'named' ? info.imported : idNode.name
253
259
  let resolved
254
260
  if (source.startsWith('.')) {
255
- resolved = path.normalize(path.join(path.dirname(relFile(context)), source))
261
+ resolved = path.posix.normalize(path.posix.join(path.posix.dirname(relFile(context)), source))
256
262
  } else {
257
263
  resolved = resolveAlias(context, source, absFile(context))
258
264
  if (resolved === null) return null
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tackbox",
3
- "version": "0.1.79",
3
+ "version": "0.1.80",
4
4
  "description": "ESLint and Markdown lint plugins plus direct error-reporting helpers for JavaScript and TypeScript.",
5
5
  "license": "MIT",
6
6
  "main": "./js/eslint-plugin.js",