uawdijnntqw1x1x1
IP : 216.73.216.86
Hostname : 6.87.74.97.host.secureserver.net
Kernel : Linux 6.87.74.97.host.secureserver.net 4.18.0-553.83.1.el8_10.x86_64 #1 SMP Mon Nov 10 04:22:44 EST 2025 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
emeraadmin
/
www
/
node_modules
/
tss-react
/
..
/
ini
/
..
/
d3-timer
/
..
/
..
/
4d695
/
write-file-atomic.tar
/
/
package.json000064400000003035151701442710007035 0ustar00{ "_id": "write-file-atomic@5.0.1", "_inBundle": true, "_location": "/npm/write-file-atomic", "_phantomChildren": {}, "_requiredBy": [ "/npm", "/npm/bin-links" ], "author": { "name": "GitHub Inc." }, "bugs": { "url": "https://github.com/npm/write-file-atomic/issues" }, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" }, "description": "Write files in an atomic fashion w/configurable ownership", "devDependencies": { "@npmcli/eslint-config": "^4.0.0", "@npmcli/template-oss": "4.14.1", "tap": "^16.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "files": [ "bin/", "lib/" ], "homepage": "https://github.com/npm/write-file-atomic", "keywords": [ "writeFile", "atomic" ], "license": "ISC", "main": "./lib/index.js", "name": "write-file-atomic", "repository": { "type": "git", "url": "git+https://github.com/npm/write-file-atomic.git" }, "scripts": { "lint": "eslint \"**/*.js\"", "lintfix": "npm run lint -- --fix", "postlint": "template-oss-check", "posttest": "npm run lint", "snap": "tap", "template-oss-apply": "template-oss-apply --force", "test": "tap" }, "tap": { "nyc-arg": [ "--exclude", "tap-snapshots/**" ] }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", "windowsCI": false, "version": "4.14.1", "publish": "true" }, "version": "5.0.1" } lib/index.js000064400000015136151701442710006767 0ustar00'use strict' module.exports = writeFile module.exports.sync = writeFileSync module.exports._getTmpname = getTmpname // for testing module.exports._cleanupOnExit = cleanupOnExit const fs = require('fs') const MurmurHash3 = require('imurmurhash') const { onExit } = require('signal-exit') const path = require('path') const { promisify } = require('util') const activeFiles = {} // if we run inside of a worker_thread, `process.pid` is not unique /* istanbul ignore next */ const threadId = (function getId () { try { const workerThreads = require('worker_threads') /// if we are in main thread, this is set to `0` return workerThreads.threadId } catch (e) { // worker_threads are not available, fallback to 0 return 0 } })() let invocations = 0 function getTmpname (filename) { return filename + '.' + MurmurHash3(__filename) .hash(String(process.pid)) .hash(String(threadId)) .hash(String(++invocations)) .result() } function cleanupOnExit (tmpfile) { return () => { try { fs.unlinkSync(typeof tmpfile === 'function' ? tmpfile() : tmpfile) } catch { // ignore errors } } } function serializeActiveFile (absoluteName) { return new Promise(resolve => { // make a queue if it doesn't already exist if (!activeFiles[absoluteName]) { activeFiles[absoluteName] = [] } activeFiles[absoluteName].push(resolve) // add this job to the queue if (activeFiles[absoluteName].length === 1) { resolve() } // kick off the first one }) } // https://github.com/isaacs/node-graceful-fs/blob/master/polyfills.js#L315-L342 function isChownErrOk (err) { if (err.code === 'ENOSYS') { return true } const nonroot = !process.getuid || process.getuid() !== 0 if (nonroot) { if (err.code === 'EINVAL' || err.code === 'EPERM') { return true } } return false } async function writeFileAsync (filename, data, options = {}) { if (typeof options === 'string') { options = { encoding: options } } let fd let tmpfile /* istanbul ignore next -- The closure only gets called when onExit triggers */ const removeOnExitHandler = onExit(cleanupOnExit(() => tmpfile)) const absoluteName = path.resolve(filename) try { await serializeActiveFile(absoluteName) const truename = await promisify(fs.realpath)(filename).catch(() => filename) tmpfile = getTmpname(truename) if (!options.mode || !options.chown) { // Either mode or chown is not explicitly set // Default behavior is to copy it from original file const stats = await promisify(fs.stat)(truename).catch(() => {}) if (stats) { if (options.mode == null) { options.mode = stats.mode } if (options.chown == null && process.getuid) { options.chown = { uid: stats.uid, gid: stats.gid } } } } fd = await promisify(fs.open)(tmpfile, 'w', options.mode) if (options.tmpfileCreated) { await options.tmpfileCreated(tmpfile) } if (ArrayBuffer.isView(data)) { await promisify(fs.write)(fd, data, 0, data.length, 0) } else if (data != null) { await promisify(fs.write)(fd, String(data), 0, String(options.encoding || 'utf8')) } if (options.fsync !== false) { await promisify(fs.fsync)(fd) } await promisify(fs.close)(fd) fd = null if (options.chown) { await promisify(fs.chown)(tmpfile, options.chown.uid, options.chown.gid).catch(err => { if (!isChownErrOk(err)) { throw err } }) } if (options.mode) { await promisify(fs.chmod)(tmpfile, options.mode).catch(err => { if (!isChownErrOk(err)) { throw err } }) } await promisify(fs.rename)(tmpfile, truename) } finally { if (fd) { await promisify(fs.close)(fd).catch( /* istanbul ignore next */ () => {} ) } removeOnExitHandler() await promisify(fs.unlink)(tmpfile).catch(() => {}) activeFiles[absoluteName].shift() // remove the element added by serializeSameFile if (activeFiles[absoluteName].length > 0) { activeFiles[absoluteName][0]() // start next job if one is pending } else { delete activeFiles[absoluteName] } } } async function writeFile (filename, data, options, callback) { if (options instanceof Function) { callback = options options = {} } const promise = writeFileAsync(filename, data, options) if (callback) { try { const result = await promise return callback(result) } catch (err) { return callback(err) } } return promise } function writeFileSync (filename, data, options) { if (typeof options === 'string') { options = { encoding: options } } else if (!options) { options = {} } try { filename = fs.realpathSync(filename) } catch (ex) { // it's ok, it'll happen on a not yet existing file } const tmpfile = getTmpname(filename) if (!options.mode || !options.chown) { // Either mode or chown is not explicitly set // Default behavior is to copy it from original file try { const stats = fs.statSync(filename) options = Object.assign({}, options) if (!options.mode) { options.mode = stats.mode } if (!options.chown && process.getuid) { options.chown = { uid: stats.uid, gid: stats.gid } } } catch (ex) { // ignore stat errors } } let fd const cleanup = cleanupOnExit(tmpfile) const removeOnExitHandler = onExit(cleanup) let threw = true try { fd = fs.openSync(tmpfile, 'w', options.mode || 0o666) if (options.tmpfileCreated) { options.tmpfileCreated(tmpfile) } if (ArrayBuffer.isView(data)) { fs.writeSync(fd, data, 0, data.length, 0) } else if (data != null) { fs.writeSync(fd, String(data), 0, String(options.encoding || 'utf8')) } if (options.fsync !== false) { fs.fsyncSync(fd) } fs.closeSync(fd) fd = null if (options.chown) { try { fs.chownSync(tmpfile, options.chown.uid, options.chown.gid) } catch (err) { if (!isChownErrOk(err)) { throw err } } } if (options.mode) { try { fs.chmodSync(tmpfile, options.mode) } catch (err) { if (!isChownErrOk(err)) { throw err } } } fs.renameSync(tmpfile, filename) threw = false } finally { if (fd) { try { fs.closeSync(fd) } catch (ex) { // ignore close errors at this stage, error may have closed fd already. } } removeOnExitHandler() if (threw) { cleanup() } } } LICENSE.md000064400000001336151701442710006155 0ustar00Copyright (c) 2015, Rebecca Turner Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/home/emeraadmin/www/node_modules/tss-react/../ini/../d3-timer/../../4d695/write-file-atomic.tar