Updated the files.

This commit is contained in:
Batuhan Berk Başoğlu 2024-02-08 19:38:41 -05:00
parent 1553e6b971
commit 753967d4f5
23418 changed files with 3784666 additions and 0 deletions

View file

@ -0,0 +1,11 @@
const { stat } = require('node:fs/promises')
const { resolve } = require('node:path')
module.exports = async path => {
try {
const st = await stat(resolve(path, 'server.js'))
return st.isFile()
} catch (er) {
return false
}
}

View file

@ -0,0 +1,40 @@
/* eslint camelcase: "off" */
const setPATH = require('./set-path.js')
const { resolve } = require('path')
const npm_config_node_gyp = require.resolve('node-gyp/bin/node-gyp.js')
const makeSpawnArgs = options => {
const {
event,
path,
scriptShell = true,
binPaths,
env,
stdio,
cmd,
args,
stdioString,
} = options
const spawnEnv = setPATH(path, binPaths, {
// we need to at least save the PATH environment var
...process.env,
...env,
npm_package_json: resolve(path, 'package.json'),
npm_lifecycle_event: event,
npm_lifecycle_script: cmd,
npm_config_node_gyp,
})
const spawnOpts = {
env: spawnEnv,
stdioString,
stdio,
cwd: path,
shell: scriptShell,
}
return [cmd, args, spawnOpts]
}
module.exports = makeSpawnArgs

View file

@ -0,0 +1,2 @@
#!/usr/bin/env sh
node "$npm_config_node_gyp" "$@"

View file

@ -0,0 +1 @@
@node "%npm_config_node_gyp%" %*

29
my-app/node_modules/@npmcli/run-script/lib/package-envs.js generated vendored Executable file
View file

@ -0,0 +1,29 @@
const packageEnvs = (vals, prefix, env = {}) => {
for (const [key, val] of Object.entries(vals)) {
if (val === undefined) {
continue
} else if (val === null || val === false) {
env[`${prefix}${key}`] = ''
} else if (Array.isArray(val)) {
val.forEach((item, index) => {
packageEnvs({ [`${key}_${index}`]: item }, `${prefix}`, env)
})
} else if (typeof val === 'object') {
packageEnvs(val, `${prefix}${key}_`, env)
} else {
env[`${prefix}${key}`] = String(val)
}
}
return env
}
// https://github.com/npm/rfcs/pull/183 defines which fields we put into the environment
module.exports = pkg => {
return packageEnvs({
name: pkg.name,
version: pkg.version,
config: pkg.config,
engines: pkg.engines,
bin: pkg.bin,
}, 'npm_package_')
}

114
my-app/node_modules/@npmcli/run-script/lib/run-script-pkg.js generated vendored Executable file
View file

@ -0,0 +1,114 @@
const makeSpawnArgs = require('./make-spawn-args.js')
const promiseSpawn = require('@npmcli/promise-spawn')
const packageEnvs = require('./package-envs.js')
const { isNodeGypPackage, defaultGypInstallScript } = require('@npmcli/node-gyp')
const signalManager = require('./signal-manager.js')
const isServerPackage = require('./is-server-package.js')
// you wouldn't like me when I'm angry...
const bruce = (id, event, cmd, args) => {
let banner = id
? `\n> ${id} ${event}\n`
: `\n> ${event}\n`
banner += `> ${cmd.trim().replace(/\n/g, '\n> ')}`
if (args.length) {
banner += ` ${args.join(' ')}`
}
banner += '\n'
return banner
}
const runScriptPkg = async options => {
const {
event,
path,
scriptShell,
binPaths = false,
env = {},
stdio = 'pipe',
pkg,
args = [],
stdioString,
// note: only used when stdio:inherit
banner = true,
// how long to wait for a process.kill signal
// only exposed here so that we can make the test go a bit faster.
signalTimeout = 500,
} = options
const { scripts = {}, gypfile } = pkg
let cmd = null
if (options.cmd) {
cmd = options.cmd
} else if (pkg.scripts && pkg.scripts[event]) {
cmd = pkg.scripts[event]
} else if (
// If there is no preinstall or install script, default to rebuilding node-gyp packages.
event === 'install' &&
!scripts.install &&
!scripts.preinstall &&
gypfile !== false &&
await isNodeGypPackage(path)
) {
cmd = defaultGypInstallScript
} else if (event === 'start' && await isServerPackage(path)) {
cmd = 'node server.js'
}
if (!cmd) {
return { code: 0, signal: null }
}
if (stdio === 'inherit' && banner !== false) {
// we're dumping to the parent's stdout, so print the banner
console.log(bruce(pkg._id, event, cmd, args))
}
const [spawnShell, spawnArgs, spawnOpts] = makeSpawnArgs({
event,
path,
scriptShell,
binPaths,
env: { ...env, ...packageEnvs(pkg) },
stdio,
cmd,
args,
stdioString,
})
const p = promiseSpawn(spawnShell, spawnArgs, spawnOpts, {
event,
script: cmd,
pkgid: pkg._id,
path,
})
if (stdio === 'inherit') {
signalManager.add(p.process)
}
if (p.stdin) {
p.stdin.end()
}
return p.catch(er => {
const { signal } = er
// coverage disabled because win32 never emits signals
/* istanbul ignore next */
if (stdio === 'inherit' && signal) {
// by the time we reach here, the child has already exited. we send the
// signal back to ourselves again so that npm will exit with the same
// status as the child
process.kill(process.pid, signal)
// just in case we don't die, reject after 500ms
// this also keeps the node process open long enough to actually
// get the signal, rather than terminating gracefully.
return new Promise((res, rej) => setTimeout(() => rej(er), signalTimeout))
} else {
throw er
}
})
}
module.exports = runScriptPkg

15
my-app/node_modules/@npmcli/run-script/lib/run-script.js generated vendored Executable file
View file

@ -0,0 +1,15 @@
const PackageJson = require('@npmcli/package-json')
const runScriptPkg = require('./run-script-pkg.js')
const validateOptions = require('./validate-options.js')
const isServerPackage = require('./is-server-package.js')
const runScript = async options => {
validateOptions(options)
if (options.pkg) {
return runScriptPkg(options)
}
const { content: pkg } = await PackageJson.normalize(options.path)
return runScriptPkg({ ...options, pkg })
}
module.exports = Object.assign(runScript, { isServerPackage })

45
my-app/node_modules/@npmcli/run-script/lib/set-path.js generated vendored Executable file
View file

@ -0,0 +1,45 @@
const { resolve, dirname, delimiter } = require('path')
// the path here is relative, even though it does not need to be
// in order to make the posix tests pass in windows
const nodeGypPath = resolve(__dirname, '../lib/node-gyp-bin')
// Windows typically calls its PATH environ 'Path', but this is not
// guaranteed, nor is it guaranteed to be the only one. Merge them
// all together in the order they appear in the object.
const setPATH = (projectPath, binPaths, env) => {
const PATH = Object.keys(env).filter(p => /^path$/i.test(p) && env[p])
.map(p => env[p].split(delimiter))
.reduce((set, p) => set.concat(p.filter(concatted => !set.includes(concatted))), [])
.join(delimiter)
const pathArr = []
if (binPaths) {
pathArr.push(...binPaths)
}
// unshift the ./node_modules/.bin from every folder
// walk up until dirname() does nothing, at the root
// XXX we should specify a cwd that we don't go above
let p = projectPath
let pp
do {
pathArr.push(resolve(p, 'node_modules', '.bin'))
pp = p
p = dirname(p)
} while (p !== pp)
pathArr.push(nodeGypPath, PATH)
const pathVal = pathArr.join(delimiter)
// XXX include the node-gyp-bin path somehow? Probably better for
// npm or arborist or whoever to just provide that by putting it in
// the PATH environ, since that's preserved anyway.
for (const key of Object.keys(env)) {
if (/^path$/i.test(key)) {
env[key] = pathVal
}
}
return env
}
module.exports = setPATH

50
my-app/node_modules/@npmcli/run-script/lib/signal-manager.js generated vendored Executable file
View file

@ -0,0 +1,50 @@
const runningProcs = new Set()
let handlersInstalled = false
const forwardedSignals = [
'SIGINT',
'SIGTERM',
]
// no-op, this is so receiving the signal doesn't cause us to exit immediately
// instead, we exit after all children have exited when we re-send the signal
// to ourselves. see the catch handler at the bottom of run-script-pkg.js
const handleSignal = signal => {
for (const proc of runningProcs) {
proc.kill(signal)
}
}
const setupListeners = () => {
for (const signal of forwardedSignals) {
process.on(signal, handleSignal)
}
handlersInstalled = true
}
const cleanupListeners = () => {
if (runningProcs.size === 0) {
for (const signal of forwardedSignals) {
process.removeListener(signal, handleSignal)
}
handlersInstalled = false
}
}
const add = proc => {
runningProcs.add(proc)
if (!handlersInstalled) {
setupListeners()
}
proc.once('exit', () => {
runningProcs.delete(proc)
cleanupListeners()
})
}
module.exports = {
add,
handleSignal,
forwardedSignals,
}

View file

@ -0,0 +1,39 @@
const validateOptions = options => {
if (typeof options !== 'object' || !options) {
throw new TypeError('invalid options object provided to runScript')
}
const {
event,
path,
scriptShell,
env = {},
stdio = 'pipe',
args = [],
cmd,
} = options
if (!event || typeof event !== 'string') {
throw new TypeError('valid event not provided to runScript')
}
if (!path || typeof path !== 'string') {
throw new TypeError('valid path not provided to runScript')
}
if (scriptShell !== undefined && typeof scriptShell !== 'string') {
throw new TypeError('invalid scriptShell option provided to runScript')
}
if (typeof env !== 'object' || !env) {
throw new TypeError('invalid env option provided to runScript')
}
if (typeof stdio !== 'string' && !Array.isArray(stdio)) {
throw new TypeError('invalid stdio option provided to runScript')
}
if (!Array.isArray(args) || args.some(a => typeof a !== 'string')) {
throw new TypeError('invalid args option provided to runScript')
}
if (cmd !== undefined && typeof cmd !== 'string') {
throw new TypeError('invalid cmd option provided to runScript')
}
}
module.exports = validateOptions