mintyPT
The library entry point carries a shebang it should not have. `dist/index.js` is what `import { ... } from "@maurogoncalo/marky"` resolves to, and its first line is: ```js #!/usr/bin/env node // src/index.ts import { mkdir, readFile, stat } from "fs/promises"; ``` ## Cause `tsup.config.ts` applies the banner to every entry, and there are two: ```ts entry: ["src/index.ts", "src/cli/index.ts"], banner: { js: "#!/usr/bin/env node", }, ``` Only the CLI entry should get it. ## Why it is worth fixing It is harmless when Node imports the file, since a shebang on line 1 is stripped. It is not harmless everywhere else: bundlers and minifiers that treat the first line as code, tools that compare or lint the published output, and anything that infers "this file is an executable script" from the shebang can all trip on it. It also makes the package's own build output ambiguous about which file is the binary. ## Suggested fix Drop the shared `banner` and keep the shebang in `src/cli/index.ts`, which tsup preserves for that entry only. That also fixes the duplicate shebang that currently makes the CLI unrunnable, filed separately as the more urgent one. Observed on marky 0.1.1, `npm install -g`, Node v23.11.0.