install-module-linked
Advanced tools
@@ -64,3 +64,3 @@ "use strict"; | ||
| console.log("Could not install: ".concat(installString, ". Message: ").concat(err.message)); | ||
| return callback(); | ||
| return callback(err); | ||
| } | ||
@@ -67,0 +67,0 @@ // Use temp symlink + atomic rename to avoid cross-process race conditions |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked/src/workers/async.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\nimport { DEFAULT_CACHE_PATH } from '../constants.ts';\nimport cache from '../lib/cache.ts';\nimport parseInstallString from '../lib/parseInstallString.ts';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst symlinkType = isWindows ? 'junction' : 'dir';\n\nimport type { InstallCallback, InstallOptions } from '../types.ts';\n\nexport default function installModule(installString: string, nodeModulesPath: string, options: InstallOptions, callback: InstallCallback): void {\n const cachePath = options.cachePath || DEFAULT_CACHE_PATH;\n const { name } = parseInstallString(installString);\n const dest = path.join(nodeModulesPath, ...name.split('/'));\n\n fs.stat(dest, (err) => {\n if (!err) return callback(null, dest); // already installed\n\n cache(installString, cachePath, (err, cachedAt) => {\n if (err) {\n console.log(`Could not install: ${installString}. Message: ${err.message}`);\n return callback();\n }\n\n // Use temp symlink + atomic rename to avoid cross-process race conditions\n const tempDest = tempSuffix(dest);\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, path.dirname(dest)));\n queue.defer(fs.symlink.bind(null, cachedAt, tempDest, symlinkType));\n queue.defer((cb) => {\n fs.rename(tempDest, dest, (err) => {\n // If rename fails because dest exists, another process won - that's ok\n if (err && ['EEXIST', 'ENOTEMPTY', 'EPERM'].indexOf(err.code) >= 0) {\n safeRm(tempDest, () => cb());\n return;\n }\n cb(err);\n });\n });\n queue.await((err) => {\n if (err) {\n safeRm(tempDest, () => callback(err));\n return;\n }\n callback(null, dest);\n });\n });\n });\n}\n"],"names":["installModule","isWindows","process","platform","test","env","OSTYPE","symlinkType","installString","nodeModulesPath","options","callback","path","cachePath","DEFAULT_CACHE_PATH","name","parseInstallString","dest","join","split","fs","stat","err","cache","cachedAt","console","log","message","tempDest","tempSuffix","queue","Queue","defer","mkdirp","bind","dirname","symlink","cb","rename","indexOf","code","safeRm","await"],"mappings":";;;;+BAeA;;;eAAwBA;;;yDAfT;8BACQ;oEACJ;2DACF;8DACC;iEACK;2BACY;8DACjB;2EACa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/B,IAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,IAAMC,cAAcN,YAAY,aAAa;AAI9B,SAASD,cAAcQ,aAAqB,EAAEC,eAAuB,EAAEC,OAAuB,EAAEC,QAAyB;QAGzHC;IAFb,IAAMC,YAAYH,QAAQG,SAAS,IAAIC,+BAAkB;IACzD,IAAM,AAAEC,OAASC,IAAAA,6BAAkB,EAACR,eAA5BO;IACR,IAAME,OAAOL,CAAAA,SAAAA,aAAI,EAACM,IAAI,OAATN,QAAAA;QAAUH;KAAoC,CAA9CG,OAA2B,qBAAGG,KAAKI,KAAK,CAAC;IAEtDC,WAAE,CAACC,IAAI,CAACJ,MAAM,SAACK;QACb,IAAI,CAACA,KAAK,OAAOX,SAAS,MAAMM,OAAO,oBAAoB;QAE3DM,IAAAA,gBAAK,EAACf,eAAeK,WAAW,SAACS,KAAKE;YACpC,IAAIF,KAAK;gBACPG,QAAQC,GAAG,CAAC,AAAC,sBAAgDJ,OAA3Bd,eAAc,eAAyB,OAAZc,IAAIK,OAAO;gBACxE,OAAOhB;YACT;YAEA,0EAA0E;YAC1E,IAAMiB,WAAWC,IAAAA,mBAAU,EAACZ;YAC5B,IAAMa,QAAQ,IAAIC,gBAAK,CAAC;YACxBD,MAAME,KAAK,CAACC,sBAAM,CAACC,IAAI,CAAC,MAAMtB,aAAI,CAACuB,OAAO,CAAClB;YAC3Ca,MAAME,KAAK,CAACZ,WAAE,CAACgB,OAAO,CAACF,IAAI,CAAC,MAAMV,UAAUI,UAAUrB;YACtDuB,MAAME,KAAK,CAAC,SAACK;gBACXjB,WAAE,CAACkB,MAAM,CAACV,UAAUX,MAAM,SAACK;oBACzB,uEAAuE;oBACvE,IAAIA,OAAO;wBAAC;wBAAU;wBAAa;qBAAQ,CAACiB,OAAO,CAACjB,IAAIkB,IAAI,KAAK,GAAG;wBAClEC,IAAAA,sBAAM,EAACb,UAAU;mCAAMS;;wBACvB;oBACF;oBACAA,GAAGf;gBACL;YACF;YACAQ,MAAMY,KAAK,CAAC,SAACpB;gBACX,IAAIA,KAAK;oBACPmB,IAAAA,sBAAM,EAACb,UAAU;+BAAMjB,SAASW;;oBAChC;gBACF;gBACAX,SAAS,MAAMM;YACjB;QACF;IACF;AACF"} | ||
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked/src/workers/async.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\nimport { DEFAULT_CACHE_PATH } from '../constants.ts';\nimport cache from '../lib/cache.ts';\nimport parseInstallString from '../lib/parseInstallString.ts';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst symlinkType = isWindows ? 'junction' : 'dir';\n\nimport type { InstallCallback, InstallOptions } from '../types.ts';\n\nexport default function installModule(installString: string, nodeModulesPath: string, options: InstallOptions, callback: InstallCallback): void {\n const cachePath = options.cachePath || DEFAULT_CACHE_PATH;\n const { name } = parseInstallString(installString);\n const dest = path.join(nodeModulesPath, ...name.split('/'));\n\n fs.stat(dest, (err) => {\n if (!err) return callback(null, dest); // already installed\n\n cache(installString, cachePath, (err, cachedAt) => {\n if (err) {\n console.log(`Could not install: ${installString}. Message: ${err.message}`);\n return callback(err);\n }\n\n // Use temp symlink + atomic rename to avoid cross-process race conditions\n const tempDest = tempSuffix(dest);\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, path.dirname(dest)));\n queue.defer(fs.symlink.bind(null, cachedAt, tempDest, symlinkType));\n queue.defer((cb) => {\n fs.rename(tempDest, dest, (err) => {\n // If rename fails because dest exists, another process won - that's ok\n if (err && ['EEXIST', 'ENOTEMPTY', 'EPERM'].indexOf(err.code) >= 0) {\n safeRm(tempDest, () => cb());\n return;\n }\n cb(err);\n });\n });\n queue.await((err) => {\n if (err) {\n safeRm(tempDest, () => callback(err));\n return;\n }\n callback(null, dest);\n });\n });\n });\n}\n"],"names":["installModule","isWindows","process","platform","test","env","OSTYPE","symlinkType","installString","nodeModulesPath","options","callback","path","cachePath","DEFAULT_CACHE_PATH","name","parseInstallString","dest","join","split","fs","stat","err","cache","cachedAt","console","log","message","tempDest","tempSuffix","queue","Queue","defer","mkdirp","bind","dirname","symlink","cb","rename","indexOf","code","safeRm","await"],"mappings":";;;;+BAeA;;;eAAwBA;;;yDAfT;8BACQ;oEACJ;2DACF;8DACC;iEACK;2BACY;8DACjB;2EACa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/B,IAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,IAAMC,cAAcN,YAAY,aAAa;AAI9B,SAASD,cAAcQ,aAAqB,EAAEC,eAAuB,EAAEC,OAAuB,EAAEC,QAAyB;QAGzHC;IAFb,IAAMC,YAAYH,QAAQG,SAAS,IAAIC,+BAAkB;IACzD,IAAM,AAAEC,OAASC,IAAAA,6BAAkB,EAACR,eAA5BO;IACR,IAAME,OAAOL,CAAAA,SAAAA,aAAI,EAACM,IAAI,OAATN,QAAAA;QAAUH;KAAoC,CAA9CG,OAA2B,qBAAGG,KAAKI,KAAK,CAAC;IAEtDC,WAAE,CAACC,IAAI,CAACJ,MAAM,SAACK;QACb,IAAI,CAACA,KAAK,OAAOX,SAAS,MAAMM,OAAO,oBAAoB;QAE3DM,IAAAA,gBAAK,EAACf,eAAeK,WAAW,SAACS,KAAKE;YACpC,IAAIF,KAAK;gBACPG,QAAQC,GAAG,CAAC,AAAC,sBAAgDJ,OAA3Bd,eAAc,eAAyB,OAAZc,IAAIK,OAAO;gBACxE,OAAOhB,SAASW;YAClB;YAEA,0EAA0E;YAC1E,IAAMM,WAAWC,IAAAA,mBAAU,EAACZ;YAC5B,IAAMa,QAAQ,IAAIC,gBAAK,CAAC;YACxBD,MAAME,KAAK,CAACC,sBAAM,CAACC,IAAI,CAAC,MAAMtB,aAAI,CAACuB,OAAO,CAAClB;YAC3Ca,MAAME,KAAK,CAACZ,WAAE,CAACgB,OAAO,CAACF,IAAI,CAAC,MAAMV,UAAUI,UAAUrB;YACtDuB,MAAME,KAAK,CAAC,SAACK;gBACXjB,WAAE,CAACkB,MAAM,CAACV,UAAUX,MAAM,SAACK;oBACzB,uEAAuE;oBACvE,IAAIA,OAAO;wBAAC;wBAAU;wBAAa;qBAAQ,CAACiB,OAAO,CAACjB,IAAIkB,IAAI,KAAK,GAAG;wBAClEC,IAAAA,sBAAM,EAACb,UAAU;mCAAMS;;wBACvB;oBACF;oBACAA,GAAGf;gBACL;YACF;YACAQ,MAAMY,KAAK,CAAC,SAACpB;gBACX,IAAIA,KAAK;oBACPmB,IAAAA,sBAAM,EAACb,UAAU;+BAAMjB,SAASW;;oBAChC;gBACF;gBACAX,SAAS,MAAMM;YACjB;QACF;IACF;AACF"} |
@@ -21,3 +21,3 @@ import fs from 'fs'; | ||
| console.log(`Could not install: ${installString}. Message: ${err.message}`); | ||
| return callback(); | ||
| return callback(err); | ||
| } | ||
@@ -24,0 +24,0 @@ // Use temp symlink + atomic rename to avoid cross-process race conditions |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked/src/workers/async.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\nimport { DEFAULT_CACHE_PATH } from '../constants.ts';\nimport cache from '../lib/cache.ts';\nimport parseInstallString from '../lib/parseInstallString.ts';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst symlinkType = isWindows ? 'junction' : 'dir';\n\nimport type { InstallCallback, InstallOptions } from '../types.ts';\n\nexport default function installModule(installString: string, nodeModulesPath: string, options: InstallOptions, callback: InstallCallback): void {\n const cachePath = options.cachePath || DEFAULT_CACHE_PATH;\n const { name } = parseInstallString(installString);\n const dest = path.join(nodeModulesPath, ...name.split('/'));\n\n fs.stat(dest, (err) => {\n if (!err) return callback(null, dest); // already installed\n\n cache(installString, cachePath, (err, cachedAt) => {\n if (err) {\n console.log(`Could not install: ${installString}. Message: ${err.message}`);\n return callback();\n }\n\n // Use temp symlink + atomic rename to avoid cross-process race conditions\n const tempDest = tempSuffix(dest);\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, path.dirname(dest)));\n queue.defer(fs.symlink.bind(null, cachedAt, tempDest, symlinkType));\n queue.defer((cb) => {\n fs.rename(tempDest, dest, (err) => {\n // If rename fails because dest exists, another process won - that's ok\n if (err && ['EEXIST', 'ENOTEMPTY', 'EPERM'].indexOf(err.code) >= 0) {\n safeRm(tempDest, () => cb());\n return;\n }\n cb(err);\n });\n });\n queue.await((err) => {\n if (err) {\n safeRm(tempDest, () => callback(err));\n return;\n }\n callback(null, dest);\n });\n });\n });\n}\n"],"names":["fs","safeRm","mkdirp","path","Queue","tempSuffix","DEFAULT_CACHE_PATH","cache","parseInstallString","isWindows","process","platform","test","env","OSTYPE","symlinkType","installModule","installString","nodeModulesPath","options","callback","cachePath","name","dest","join","split","stat","err","cachedAt","console","log","message","tempDest","queue","defer","bind","dirname","symlink","cb","rename","indexOf","code","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,gBAAgB,cAAc;AACrC,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,OAAOC,WAAW,kBAAkB;AACpC,OAAOC,wBAAwB,+BAA+B;AAE9D,MAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,MAAMC,cAAcN,YAAY,aAAa;AAI7C,eAAe,SAASO,cAAcC,aAAqB,EAAEC,eAAuB,EAAEC,OAAuB,EAAEC,QAAyB;IACtI,MAAMC,YAAYF,QAAQE,SAAS,IAAIf;IACvC,MAAM,EAAEgB,IAAI,EAAE,GAAGd,mBAAmBS;IACpC,MAAMM,OAAOpB,KAAKqB,IAAI,CAACN,oBAAoBI,KAAKG,KAAK,CAAC;IAEtDzB,GAAG0B,IAAI,CAACH,MAAM,CAACI;QACb,IAAI,CAACA,KAAK,OAAOP,SAAS,MAAMG,OAAO,oBAAoB;QAE3DhB,MAAMU,eAAeI,WAAW,CAACM,KAAKC;YACpC,IAAID,KAAK;gBACPE,QAAQC,GAAG,CAAC,CAAC,mBAAmB,EAAEb,cAAc,WAAW,EAAEU,IAAII,OAAO,EAAE;gBAC1E,OAAOX;YACT;YAEA,0EAA0E;YAC1E,MAAMY,WAAW3B,WAAWkB;YAC5B,MAAMU,QAAQ,IAAI7B,MAAM;YACxB6B,MAAMC,KAAK,CAAChC,OAAOiC,IAAI,CAAC,MAAMhC,KAAKiC,OAAO,CAACb;YAC3CU,MAAMC,KAAK,CAAClC,GAAGqC,OAAO,CAACF,IAAI,CAAC,MAAMP,UAAUI,UAAUjB;YACtDkB,MAAMC,KAAK,CAAC,CAACI;gBACXtC,GAAGuC,MAAM,CAACP,UAAUT,MAAM,CAACI;oBACzB,uEAAuE;oBACvE,IAAIA,OAAO;wBAAC;wBAAU;wBAAa;qBAAQ,CAACa,OAAO,CAACb,IAAIc,IAAI,KAAK,GAAG;wBAClExC,OAAO+B,UAAU,IAAMM;wBACvB;oBACF;oBACAA,GAAGX;gBACL;YACF;YACAM,MAAMS,KAAK,CAAC,CAACf;gBACX,IAAIA,KAAK;oBACP1B,OAAO+B,UAAU,IAAMZ,SAASO;oBAChC;gBACF;gBACAP,SAAS,MAAMG;YACjB;QACF;IACF;AACF"} | ||
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked/src/workers/async.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\nimport { DEFAULT_CACHE_PATH } from '../constants.ts';\nimport cache from '../lib/cache.ts';\nimport parseInstallString from '../lib/parseInstallString.ts';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst symlinkType = isWindows ? 'junction' : 'dir';\n\nimport type { InstallCallback, InstallOptions } from '../types.ts';\n\nexport default function installModule(installString: string, nodeModulesPath: string, options: InstallOptions, callback: InstallCallback): void {\n const cachePath = options.cachePath || DEFAULT_CACHE_PATH;\n const { name } = parseInstallString(installString);\n const dest = path.join(nodeModulesPath, ...name.split('/'));\n\n fs.stat(dest, (err) => {\n if (!err) return callback(null, dest); // already installed\n\n cache(installString, cachePath, (err, cachedAt) => {\n if (err) {\n console.log(`Could not install: ${installString}. Message: ${err.message}`);\n return callback(err);\n }\n\n // Use temp symlink + atomic rename to avoid cross-process race conditions\n const tempDest = tempSuffix(dest);\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, path.dirname(dest)));\n queue.defer(fs.symlink.bind(null, cachedAt, tempDest, symlinkType));\n queue.defer((cb) => {\n fs.rename(tempDest, dest, (err) => {\n // If rename fails because dest exists, another process won - that's ok\n if (err && ['EEXIST', 'ENOTEMPTY', 'EPERM'].indexOf(err.code) >= 0) {\n safeRm(tempDest, () => cb());\n return;\n }\n cb(err);\n });\n });\n queue.await((err) => {\n if (err) {\n safeRm(tempDest, () => callback(err));\n return;\n }\n callback(null, dest);\n });\n });\n });\n}\n"],"names":["fs","safeRm","mkdirp","path","Queue","tempSuffix","DEFAULT_CACHE_PATH","cache","parseInstallString","isWindows","process","platform","test","env","OSTYPE","symlinkType","installModule","installString","nodeModulesPath","options","callback","cachePath","name","dest","join","split","stat","err","cachedAt","console","log","message","tempDest","queue","defer","bind","dirname","symlink","cb","rename","indexOf","code","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,gBAAgB,cAAc;AACrC,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,OAAOC,WAAW,kBAAkB;AACpC,OAAOC,wBAAwB,+BAA+B;AAE9D,MAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,MAAMC,cAAcN,YAAY,aAAa;AAI7C,eAAe,SAASO,cAAcC,aAAqB,EAAEC,eAAuB,EAAEC,OAAuB,EAAEC,QAAyB;IACtI,MAAMC,YAAYF,QAAQE,SAAS,IAAIf;IACvC,MAAM,EAAEgB,IAAI,EAAE,GAAGd,mBAAmBS;IACpC,MAAMM,OAAOpB,KAAKqB,IAAI,CAACN,oBAAoBI,KAAKG,KAAK,CAAC;IAEtDzB,GAAG0B,IAAI,CAACH,MAAM,CAACI;QACb,IAAI,CAACA,KAAK,OAAOP,SAAS,MAAMG,OAAO,oBAAoB;QAE3DhB,MAAMU,eAAeI,WAAW,CAACM,KAAKC;YACpC,IAAID,KAAK;gBACPE,QAAQC,GAAG,CAAC,CAAC,mBAAmB,EAAEb,cAAc,WAAW,EAAEU,IAAII,OAAO,EAAE;gBAC1E,OAAOX,SAASO;YAClB;YAEA,0EAA0E;YAC1E,MAAMK,WAAW3B,WAAWkB;YAC5B,MAAMU,QAAQ,IAAI7B,MAAM;YACxB6B,MAAMC,KAAK,CAAChC,OAAOiC,IAAI,CAAC,MAAMhC,KAAKiC,OAAO,CAACb;YAC3CU,MAAMC,KAAK,CAAClC,GAAGqC,OAAO,CAACF,IAAI,CAAC,MAAMP,UAAUI,UAAUjB;YACtDkB,MAAMC,KAAK,CAAC,CAACI;gBACXtC,GAAGuC,MAAM,CAACP,UAAUT,MAAM,CAACI;oBACzB,uEAAuE;oBACvE,IAAIA,OAAO;wBAAC;wBAAU;wBAAa;qBAAQ,CAACa,OAAO,CAACb,IAAIc,IAAI,KAAK,GAAG;wBAClExC,OAAO+B,UAAU,IAAMM;wBACvB;oBACF;oBACAA,GAAGX;gBACL;YACF;YACAM,MAAMS,KAAK,CAAC,CAACf;gBACX,IAAIA,KAAK;oBACP1B,OAAO+B,UAAU,IAAMZ,SAASO;oBAChC;gBACF;gBACAP,SAAS,MAAMG;YACjB;QACF;IACF;AACF"} |
+2
-2
| { | ||
| "name": "install-module-linked", | ||
| "version": "1.4.1", | ||
| "version": "1.4.2", | ||
| "description": "Installs and symlinks a module into node_modules", | ||
@@ -54,3 +54,3 @@ "keywords": [ | ||
| "cross-spawn-cb": "^2.0.0", | ||
| "exit-compat": "^1.0.3", | ||
| "exit-compat": "^1.0.0", | ||
| "fs-remove-compat": "^1.0.0", | ||
@@ -57,0 +57,0 @@ "get-file-compat": "^2.0.0", |
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
98577
0.03%Updated