🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

publint

Package Overview
Dependencies
Maintainers
1
Versions
55
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

publint - npm Package Compare versions

Comparing version
0.3.16
to
0.3.17
+1
-1
LICENSE
MIT License
Copyright (c) 2025 Bjorn Lu and publint contributors
Copyright (c) 2026 Bjorn Lu and publint contributors

@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy

{
"name": "publint",
"version": "0.3.16",
"version": "0.3.17",
"description": "Lint packaging errors",

@@ -44,3 +44,3 @@ "type": "module",

"sade": "^1.8.1",
"@publint/pack": "^0.1.2"
"@publint/pack": "^0.1.3"
},

@@ -51,3 +51,3 @@ "devDependencies": {

"prompts": "^2.4.2",
"vitest": "^4.0.15"
"vitest": "^4.0.17"
},

@@ -54,0 +54,0 @@ "scripts": {

@@ -18,14 +18,15 @@ import { unpack } from '@publint/pack'

let vfs
/** @type {string | undefined} */
let overridePkgDir
/** @type {string} */
let resolvedPkgDir
if ('tarball' in pack) {
const result = await unpack(pack.tarball)
vfs = createTarballVfs(result.files)
overridePkgDir = result.rootDir
resolvedPkgDir = options?.pkgDir ?? result.rootDir
} else {
vfs = createTarballVfs(pack.files)
resolvedPkgDir = options?.pkgDir ?? '/'
}
return await core({
pkgDir: options.pkgDir ?? overridePkgDir ?? '/',
pkgDir: resolvedPkgDir,
vfs,

@@ -32,0 +33,0 @@ level: options.level ?? 'suggestion',

import path from 'node:path'
import { packAsList, unpack } from '@publint/pack'
import { getPackDirectory, packAsList, unpack } from '@publint/pack'
import { createNodeVfs } from './node/vfs-node.js'

@@ -8,2 +8,7 @@ import { core } from './shared/core.js'

/**
* @typedef {T extends string ? T : never} ExtractStringLiteral
* @template T
*/
/**
* @type {import('./index.d.ts').publint}

@@ -18,4 +23,4 @@ */

let vfs
/** @type {string | undefined} */
let overridePkgDir
/** @type {string} */
let resolvedPkgDir
/** @type {string[] | undefined} */

@@ -32,5 +37,6 @@ let packedFiles

vfs = createTarballVfs(result.files)
overridePkgDir = result.rootDir
resolvedPkgDir = options?.pkgDir ?? result.rootDir
} else {
vfs = createTarballVfs(pack.files)
resolvedPkgDir = options?.pkgDir ?? process.cwd()
}

@@ -43,3 +49,8 @@ }

const pkgDir = options?.pkgDir ?? process.cwd()
packedFiles = await detectAndPack(pkgDir, pack, log)
const packageManager = await detectPackageManager(pkgDir, pack)
const packDir = await getPackDirectory(pkgDir, packageManager)
packedFiles = await getPackedFiles(pkgDir, packDir, packageManager, log)
resolvedPkgDir = packDir
} else {
resolvedPkgDir = options?.pkgDir ?? process.cwd()
}

@@ -54,3 +65,3 @@ vfs = createNodeVfs()

return core({
pkgDir: options?.pkgDir ?? overridePkgDir ?? process.cwd(),
pkgDir: resolvedPkgDir,
vfs,

@@ -64,12 +75,7 @@ level: options?.level ?? 'suggestion',

/**
* @typedef {T extends string ? T : never} ExtractStringLiteral
* @template T
*/
/**
* @param {string} pkgDir
* @param {ExtractStringLiteral<import('./index.d.ts').Options['pack']>} pack
* @param {boolean} log
* @return {Promise<import('@publint/pack').PackageManager>}
*/
async function detectAndPack(pkgDir, pack, log) {
async function detectPackageManager(pkgDir, pack) {
let packageManager = pack

@@ -87,2 +93,12 @@

return packageManager
}
/**
* @param {string} pkgDir
* @param {string} packDir
* @param {import('@publint/pack').PackageManager} packageManager
* @param {boolean} log
*/
async function getPackedFiles(pkgDir, packDir, packageManager, log) {
// When packing, we want to ignore scripts as `publint` itself could be used in one of them and could

@@ -110,3 +126,3 @@ // cause an infinite loop. Also, running scripts might be slow and unexpected.

const list = await packAsList(pkgDir, { packageManager, ignoreScripts: true })
return list.map((file) => path.join(pkgDir, file))
return list.map((file) => path.join(packDir, file))
}

@@ -377,3 +377,3 @@ import { lintableFileExtensions } from './constants.js'

if (sliceIndex === -1) return []
if (currentPath[sliceIndex + 1][0] === '.') sliceIndex++
if (currentPath[sliceIndex + 1]?.[0] === '.') sliceIndex++
return currentPath.slice(sliceIndex + 1)

@@ -380,0 +380,0 @@ }