aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/isexe/dist/commonjs/posix.js
diff options
context:
space:
mode:
authorpack <pack@packgekko.xyz>2026-08-09 10:54:08 +0000
committerpack <pack@packgekko.xyz>2026-08-09 10:54:08 +0000
commitd3adc16a08d95d6e331de55d7d3bf05a66a874a8 (patch)
treea2dabd199501e67c547c2ce79e1374ca3aa55443 /node_modules/isexe/dist/commonjs/posix.js
parent55a4f1fc869e41aca748c63d3018f0448b1606e0 (diff)
downloadcrud-d3adc16a08d95d6e331de55d7d3bf05a66a874a8.tar.gz
stop tracking node_modules/
Diffstat (limited to 'node_modules/isexe/dist/commonjs/posix.js')
-rw-r--r--node_modules/isexe/dist/commonjs/posix.js67
1 files changed, 0 insertions, 67 deletions
diff --git a/node_modules/isexe/dist/commonjs/posix.js b/node_modules/isexe/dist/commonjs/posix.js
deleted file mode 100644
index c6b9f63..0000000
--- a/node_modules/isexe/dist/commonjs/posix.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-/**
- * This is the Posix implementation of isexe, which uses the file
- * mode and uid/gid values.
- *
- * @module
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.sync = exports.isexe = void 0;
-const node_fs_1 = require("node:fs");
-const promises_1 = require("node:fs/promises");
-/**
- * Determine whether a path is executable according to the mode and
- * current (or specified) user and group IDs.
- */
-const isexe = async (path, options = {}) => {
- const { ignoreErrors = false } = options;
- try {
- return checkStat(await (0, promises_1.stat)(path), options);
- }
- catch (e) {
- const er = e;
- if (ignoreErrors || er.code === 'EACCES')
- return false;
- throw er;
- }
-};
-exports.isexe = isexe;
-/**
- * Synchronously determine whether a path is executable according to
- * the mode and current (or specified) user and group IDs.
- */
-const sync = (path, options = {}) => {
- const { ignoreErrors = false } = options;
- try {
- return checkStat((0, node_fs_1.statSync)(path), options);
- }
- catch (e) {
- const er = e;
- if (ignoreErrors || er.code === 'EACCES')
- return false;
- throw er;
- }
-};
-exports.sync = sync;
-const checkStat = (stat, options) => stat.isFile() && checkMode(stat, options);
-const checkMode = (stat, options) => {
- const myUid = options.uid ?? process.getuid?.();
- const myGroups = options.groups ?? process.getgroups?.() ?? [];
- const myGid = options.gid ?? process.getgid?.() ?? myGroups[0];
- if (myUid === undefined || myGid === undefined) {
- throw new Error('cannot get uid or gid');
- }
- const groups = new Set([myGid, ...myGroups]);
- const mod = stat.mode;
- const uid = stat.uid;
- const gid = stat.gid;
- const u = parseInt('100', 8);
- const g = parseInt('010', 8);
- const o = parseInt('001', 8);
- const ug = u | g;
- return !!(mod & o ||
- (mod & g && groups.has(gid)) ||
- (mod & u && uid === myUid) ||
- (mod & ug && myUid === 0));
-};
-//# sourceMappingURL=posix.js.map \ No newline at end of file