periapsis 1.0.6 → 1.0.7

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/bin/periapsis.mjs CHANGED
@@ -696,7 +696,16 @@ export async function main(argv = process.argv.slice(2)) {
696
696
  cmdCheck(root, args);
697
697
  }
698
698
 
699
- if (process.argv[1] && path.resolve(process.argv[1]) === __filename) {
699
+ export function isDirectExecution(entryFilename = __filename, argv1 = process.argv[1]) {
700
+ if (!argv1) return false;
701
+ try {
702
+ return fs.realpathSync(argv1) === entryFilename;
703
+ } catch {
704
+ return path.resolve(argv1) === entryFilename;
705
+ }
706
+ }
707
+
708
+ if (isDirectExecution()) {
700
709
  main().catch((err) => {
701
710
  console.error(err.message);
702
711
  process.exit(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "periapsis",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "scripts": {
package/test/cli.test.mjs CHANGED
@@ -2,7 +2,8 @@ import test from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
3
  import fs from 'fs';
4
4
  import path from 'path';
5
- import { createTempDir, runCli, writePolicyBundle } from '../testing/helpers.mjs';
5
+ import { isDirectExecution } from '../bin/periapsis.mjs';
6
+ import { BIN, createTempDir, runCli, writePolicyBundle } from '../testing/helpers.mjs';
6
7
 
7
8
  function setupTempProject() {
8
9
  const dir = createTempDir('periapsis-test-');
@@ -136,3 +137,11 @@ test('checker respects --dep-types filter', async () => {
136
137
  });
137
138
  assert.match(failOutput, /license-not-allowed/);
138
139
  });
140
+
141
+ test('isDirectExecution resolves symlinked bin paths', () => {
142
+ const cwd = createTempDir('periapsis-bin-symlink-');
143
+ const symlinkPath = path.join(cwd, 'periapsis');
144
+ fs.symlinkSync(BIN, symlinkPath);
145
+
146
+ assert.equal(isDirectExecution(BIN, symlinkPath), true);
147
+ });