| import { existsSync, statSync, copyFileSync, readdirSync } from 'fs'; | ||
| import { resolve, sep, basename, join } from 'path'; | ||
| import mkdirSyncRecursive from 'mkdir-sync-recursive'; | ||
| const name = "node-cpr"; | ||
| const version = "1.4.2"; | ||
| function exit(name2) { | ||
| console.error(`Try \`${name2} --help\` for more information.`); | ||
| return 1; | ||
| } | ||
| function isFile(path) { | ||
| try { | ||
| const stat = statSync(resolve(path)); | ||
| return stat.isFile(); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function isDirectory(path) { | ||
| try { | ||
| const stat = statSync(resolve(path)); | ||
| return stat.isDirectory(); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function isPathExist(path) { | ||
| try { | ||
| return existsSync(path); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function errorMsg(source, dest, mkdirp) { | ||
| if (!dest) { | ||
| console.error( | ||
| `${name}: missing destination file operand after '${source}'` | ||
| ); | ||
| return exit(name); | ||
| } else if (typeof source === "string") { | ||
| const exist = isPathExist(source); | ||
| if (exist && isDirectory(source) && isFile(dest)) { | ||
| console.error( | ||
| `${name}: cannot overwrite non-directory '${dest}' with directory ${source}'` | ||
| ); | ||
| return exit(name); | ||
| } | ||
| if (!exist) { | ||
| console.error( | ||
| `${name}: cannot stat '${source}': No such file or directory` | ||
| ); | ||
| return exit(name); | ||
| } | ||
| } else { | ||
| const paths = source.filter((f) => !isFile(f) && !isDirectory(f)); | ||
| const index = paths.length - 1; | ||
| if (!mkdirp && !isDirectory(dest)) { | ||
| console.error(`${name}: target '${dest}' is not a directory`); | ||
| return exit(name); | ||
| } else { | ||
| paths.forEach((p, idx) => { | ||
| if (!isFile(p) && !isDirectory(p)) { | ||
| console.error( | ||
| `${name}: cannot stat '${p}': No such file or directory` | ||
| ); | ||
| if (idx === index) { | ||
| return 1; | ||
| } | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| function copyFile(src, dest) { | ||
| let destPath = dest; | ||
| if (isDirectory(dest)) { | ||
| destPath = dest + sep + src; | ||
| if (isFile(src)) { | ||
| destPath = dest + sep + basename(src); | ||
| } | ||
| } | ||
| copyFileSync(src, destPath); | ||
| } | ||
| function copyDir(src, dest) { | ||
| mkdirSyncRecursive(dest); | ||
| try { | ||
| const files = readdirSync(src, { encoding: "utf-8" }); | ||
| for (const file of files) { | ||
| let srcPath = join(src, file); | ||
| let destPath = join(dest, file); | ||
| if (isDirectory(srcPath)) { | ||
| copyDir(srcPath, destPath); | ||
| } | ||
| if (isFile(srcPath)) { | ||
| copyFile(srcPath, destPath); | ||
| } | ||
| } | ||
| } catch (err) { | ||
| console.error(err); | ||
| } | ||
| } | ||
| function cpr(source, dest, mkdirp) { | ||
| if (errorMsg(source, dest, mkdirp)) { | ||
| return; | ||
| } | ||
| if (mkdirp && !isPathExist(dest)) { | ||
| mkdirSyncRecursive(dest); | ||
| } | ||
| const sources = typeof source === "string" ? [source] : source; | ||
| sources.forEach((s) => { | ||
| if (isFile(s)) { | ||
| copyFile(s, dest); | ||
| } | ||
| if (isDirectory(s)) { | ||
| let _dest = dest; | ||
| if (isPathExist(dest)) { | ||
| _dest = dest + sep + s; | ||
| } | ||
| copyDir(s, _dest); | ||
| } | ||
| }); | ||
| } | ||
| export { cpr as c, exit as e, name as n, version as v }; |
| 'use strict'; | ||
| const fs = require('fs'); | ||
| const path = require('path'); | ||
| const mkdirSyncRecursive = require('mkdir-sync-recursive'); | ||
| function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; } | ||
| const mkdirSyncRecursive__default = /*#__PURE__*/_interopDefaultCompat(mkdirSyncRecursive); | ||
| const name = "node-cpr"; | ||
| const version = "1.4.2"; | ||
| function exit(name2) { | ||
| console.error(`Try \`${name2} --help\` for more information.`); | ||
| return 1; | ||
| } | ||
| function isFile(path$1) { | ||
| try { | ||
| const stat = fs.statSync(path.resolve(path$1)); | ||
| return stat.isFile(); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function isDirectory(path$1) { | ||
| try { | ||
| const stat = fs.statSync(path.resolve(path$1)); | ||
| return stat.isDirectory(); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function isPathExist(path) { | ||
| try { | ||
| return fs.existsSync(path); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function errorMsg(source, dest, mkdirp) { | ||
| if (!dest) { | ||
| console.error( | ||
| `${name}: missing destination file operand after '${source}'` | ||
| ); | ||
| return exit(name); | ||
| } else if (typeof source === "string") { | ||
| const exist = isPathExist(source); | ||
| if (exist && isDirectory(source) && isFile(dest)) { | ||
| console.error( | ||
| `${name}: cannot overwrite non-directory '${dest}' with directory ${source}'` | ||
| ); | ||
| return exit(name); | ||
| } | ||
| if (!exist) { | ||
| console.error( | ||
| `${name}: cannot stat '${source}': No such file or directory` | ||
| ); | ||
| return exit(name); | ||
| } | ||
| } else { | ||
| const paths = source.filter((f) => !isFile(f) && !isDirectory(f)); | ||
| const index = paths.length - 1; | ||
| if (!mkdirp && !isDirectory(dest)) { | ||
| console.error(`${name}: target '${dest}' is not a directory`); | ||
| return exit(name); | ||
| } else { | ||
| paths.forEach((p, idx) => { | ||
| if (!isFile(p) && !isDirectory(p)) { | ||
| console.error( | ||
| `${name}: cannot stat '${p}': No such file or directory` | ||
| ); | ||
| if (idx === index) { | ||
| return 1; | ||
| } | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| function copyFile(src, dest) { | ||
| let destPath = dest; | ||
| if (isDirectory(dest)) { | ||
| destPath = dest + path.sep + src; | ||
| if (isFile(src)) { | ||
| destPath = dest + path.sep + path.basename(src); | ||
| } | ||
| } | ||
| fs.copyFileSync(src, destPath); | ||
| } | ||
| function copyDir(src, dest) { | ||
| mkdirSyncRecursive__default(dest); | ||
| try { | ||
| const files = fs.readdirSync(src, { encoding: "utf-8" }); | ||
| for (const file of files) { | ||
| let srcPath = path.join(src, file); | ||
| let destPath = path.join(dest, file); | ||
| if (isDirectory(srcPath)) { | ||
| copyDir(srcPath, destPath); | ||
| } | ||
| if (isFile(srcPath)) { | ||
| copyFile(srcPath, destPath); | ||
| } | ||
| } | ||
| } catch (err) { | ||
| console.error(err); | ||
| } | ||
| } | ||
| function cpr(source, dest, mkdirp) { | ||
| if (errorMsg(source, dest, mkdirp)) { | ||
| return; | ||
| } | ||
| if (mkdirp && !isPathExist(dest)) { | ||
| mkdirSyncRecursive__default(dest); | ||
| } | ||
| const sources = typeof source === "string" ? [source] : source; | ||
| sources.forEach((s) => { | ||
| if (isFile(s)) { | ||
| copyFile(s, dest); | ||
| } | ||
| if (isDirectory(s)) { | ||
| let _dest = dest; | ||
| if (isPathExist(dest)) { | ||
| _dest = dest + path.sep + s; | ||
| } | ||
| copyDir(s, _dest); | ||
| } | ||
| }); | ||
| } | ||
| exports.cpr = cpr; | ||
| exports.exit = exit; | ||
| exports.name = name; | ||
| exports.version = version; |
+1
-1
@@ -5,3 +5,3 @@ #!/usr/bin/env node | ||
| const readline = require('readline'); | ||
| const index = require('./shared/node-cpr.CdHN1S7r.cjs'); | ||
| const index = require('./shared/node-cpr.Bj94Te_Y.cjs'); | ||
| require('fs'); | ||
@@ -8,0 +8,0 @@ require('path'); |
+1
-1
| #!/usr/bin/env node | ||
| import { createInterface } from 'readline'; | ||
| import { n as name, e as exit, v as version, c as cpr } from './shared/node-cpr.CPOdvmyH.mjs'; | ||
| import { n as name, e as exit, v as version, c as cpr } from './shared/node-cpr.B36rmSuV.mjs'; | ||
| import 'fs'; | ||
@@ -5,0 +5,0 @@ import 'path'; |
+1
-1
@@ -5,3 +5,3 @@ 'use strict'; | ||
| require('path'); | ||
| const index = require('./shared/node-cpr.CdHN1S7r.cjs'); | ||
| const index = require('./shared/node-cpr.Bj94Te_Y.cjs'); | ||
| require('mkdir-sync-recursive'); | ||
@@ -8,0 +8,0 @@ |
+1
-1
| import 'fs'; | ||
| import 'path'; | ||
| export { c as cpr } from './shared/node-cpr.CPOdvmyH.mjs'; | ||
| export { c as cpr } from './shared/node-cpr.B36rmSuV.mjs'; | ||
| import 'mkdir-sync-recursive'; |
+6
-6
| { | ||
| "name": "node-cpr", | ||
| "version": "1.4.1", | ||
| "version": "1.4.2", | ||
| "author": "lxf <infiniment@163.com>", | ||
@@ -44,10 +44,10 @@ "license": "MIT", | ||
| "devDependencies": { | ||
| "@types/node": "^22.15.2", | ||
| "prettier": "^3.5.3", | ||
| "typescript": "^5.8.3", | ||
| "unbuild": "^3.5.0" | ||
| "@types/node": "^24.10.1", | ||
| "prettier": "^3.6.2", | ||
| "typescript": "^5.9.3", | ||
| "unbuild": "^3.6.1" | ||
| }, | ||
| "dependencies": { | ||
| "mkdir-sync-recursive": "^1.2.1" | ||
| "mkdir-sync-recursive": "^1.2.2" | ||
| } | ||
| } |
| 'use strict'; | ||
| const fs = require('fs'); | ||
| const path = require('path'); | ||
| const mkdirSyncRecursive = require('mkdir-sync-recursive'); | ||
| function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; } | ||
| const mkdirSyncRecursive__default = /*#__PURE__*/_interopDefaultCompat(mkdirSyncRecursive); | ||
| const name = "node-cpr"; | ||
| const version = "1.4.1"; | ||
| function exit(name2) { | ||
| console.error(`Try \`${name2} --help\` for more information.`); | ||
| return 1; | ||
| } | ||
| function isFile(path$1) { | ||
| try { | ||
| const stat = fs.statSync(path.resolve(path$1)); | ||
| return stat.isFile(); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function isDirectory(path$1) { | ||
| try { | ||
| const stat = fs.statSync(path.resolve(path$1)); | ||
| return stat.isDirectory(); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function isPathExist(path) { | ||
| try { | ||
| return fs.existsSync(path); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function errorMsg(source, dest, mkdirp) { | ||
| if (!dest) { | ||
| console.error( | ||
| `${name}: missing destination file operand after '${source}'` | ||
| ); | ||
| return exit(name); | ||
| } else if (typeof source === "string") { | ||
| const exist = isPathExist(source); | ||
| if (exist && isDirectory(source) && isFile(dest)) { | ||
| console.error( | ||
| `${name}: cannot overwrite non-directory '${dest}' with directory ${source}'` | ||
| ); | ||
| return exit(name); | ||
| } | ||
| if (!exist) { | ||
| console.error( | ||
| `${name}: cannot stat '${source}': No such file or directory` | ||
| ); | ||
| return exit(name); | ||
| } | ||
| } else { | ||
| const paths = source.filter((f) => !isFile(f) && !isDirectory(f)); | ||
| const index = paths.length - 1; | ||
| if (!mkdirp && !isDirectory(dest)) { | ||
| console.error(`${name}: target '${dest}' is not a directory`); | ||
| return exit(name); | ||
| } else { | ||
| paths.forEach((p, idx) => { | ||
| if (!isFile(p) && !isDirectory(p)) { | ||
| console.error( | ||
| `${name}: cannot stat '${p}': No such file or directory` | ||
| ); | ||
| if (idx === index) { | ||
| return 1; | ||
| } | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| function copyFile(src, dest) { | ||
| let destPath = dest; | ||
| if (isDirectory(dest)) { | ||
| destPath = dest + path.sep + src; | ||
| if (isFile(src)) { | ||
| destPath = dest + path.sep + path.basename(src); | ||
| } | ||
| } | ||
| fs.copyFileSync(src, destPath); | ||
| } | ||
| function copyDir(src, dest) { | ||
| mkdirSyncRecursive__default(dest); | ||
| try { | ||
| const files = fs.readdirSync(src, { encoding: "utf-8" }); | ||
| for (const file of files) { | ||
| let srcPath = path.join(src, file); | ||
| let destPath = path.join(dest, file); | ||
| if (isDirectory(srcPath)) { | ||
| copyDir(srcPath, destPath); | ||
| } | ||
| if (isFile(srcPath)) { | ||
| copyFile(srcPath, destPath); | ||
| } | ||
| } | ||
| } catch (err) { | ||
| console.error(err); | ||
| } | ||
| } | ||
| function cpr(source, dest, mkdirp) { | ||
| if (errorMsg(source, dest, mkdirp)) { | ||
| return; | ||
| } | ||
| if (mkdirp && !isPathExist(dest)) { | ||
| mkdirSyncRecursive__default(dest); | ||
| } | ||
| const sources = typeof source === "string" ? [source] : source; | ||
| sources.forEach((s) => { | ||
| if (isFile(s)) { | ||
| copyFile(s, dest); | ||
| } | ||
| if (isDirectory(s)) { | ||
| let _dest = dest; | ||
| if (isPathExist(dest)) { | ||
| _dest = dest + path.sep + s; | ||
| } | ||
| copyDir(s, _dest); | ||
| } | ||
| }); | ||
| } | ||
| exports.cpr = cpr; | ||
| exports.exit = exit; | ||
| exports.name = name; | ||
| exports.version = version; |
| import { existsSync, statSync, copyFileSync, readdirSync } from 'fs'; | ||
| import { resolve, sep, basename, join } from 'path'; | ||
| import mkdirSyncRecursive from 'mkdir-sync-recursive'; | ||
| const name = "node-cpr"; | ||
| const version = "1.4.1"; | ||
| function exit(name2) { | ||
| console.error(`Try \`${name2} --help\` for more information.`); | ||
| return 1; | ||
| } | ||
| function isFile(path) { | ||
| try { | ||
| const stat = statSync(resolve(path)); | ||
| return stat.isFile(); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function isDirectory(path) { | ||
| try { | ||
| const stat = statSync(resolve(path)); | ||
| return stat.isDirectory(); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function isPathExist(path) { | ||
| try { | ||
| return existsSync(path); | ||
| } catch { | ||
| return false; | ||
| } | ||
| } | ||
| function errorMsg(source, dest, mkdirp) { | ||
| if (!dest) { | ||
| console.error( | ||
| `${name}: missing destination file operand after '${source}'` | ||
| ); | ||
| return exit(name); | ||
| } else if (typeof source === "string") { | ||
| const exist = isPathExist(source); | ||
| if (exist && isDirectory(source) && isFile(dest)) { | ||
| console.error( | ||
| `${name}: cannot overwrite non-directory '${dest}' with directory ${source}'` | ||
| ); | ||
| return exit(name); | ||
| } | ||
| if (!exist) { | ||
| console.error( | ||
| `${name}: cannot stat '${source}': No such file or directory` | ||
| ); | ||
| return exit(name); | ||
| } | ||
| } else { | ||
| const paths = source.filter((f) => !isFile(f) && !isDirectory(f)); | ||
| const index = paths.length - 1; | ||
| if (!mkdirp && !isDirectory(dest)) { | ||
| console.error(`${name}: target '${dest}' is not a directory`); | ||
| return exit(name); | ||
| } else { | ||
| paths.forEach((p, idx) => { | ||
| if (!isFile(p) && !isDirectory(p)) { | ||
| console.error( | ||
| `${name}: cannot stat '${p}': No such file or directory` | ||
| ); | ||
| if (idx === index) { | ||
| return 1; | ||
| } | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| } | ||
| function copyFile(src, dest) { | ||
| let destPath = dest; | ||
| if (isDirectory(dest)) { | ||
| destPath = dest + sep + src; | ||
| if (isFile(src)) { | ||
| destPath = dest + sep + basename(src); | ||
| } | ||
| } | ||
| copyFileSync(src, destPath); | ||
| } | ||
| function copyDir(src, dest) { | ||
| mkdirSyncRecursive(dest); | ||
| try { | ||
| const files = readdirSync(src, { encoding: "utf-8" }); | ||
| for (const file of files) { | ||
| let srcPath = join(src, file); | ||
| let destPath = join(dest, file); | ||
| if (isDirectory(srcPath)) { | ||
| copyDir(srcPath, destPath); | ||
| } | ||
| if (isFile(srcPath)) { | ||
| copyFile(srcPath, destPath); | ||
| } | ||
| } | ||
| } catch (err) { | ||
| console.error(err); | ||
| } | ||
| } | ||
| function cpr(source, dest, mkdirp) { | ||
| if (errorMsg(source, dest, mkdirp)) { | ||
| return; | ||
| } | ||
| if (mkdirp && !isPathExist(dest)) { | ||
| mkdirSyncRecursive(dest); | ||
| } | ||
| const sources = typeof source === "string" ? [source] : source; | ||
| sources.forEach((s) => { | ||
| if (isFile(s)) { | ||
| copyFile(s, dest); | ||
| } | ||
| if (isDirectory(s)) { | ||
| let _dest = dest; | ||
| if (isPathExist(dest)) { | ||
| _dest = dest + sep + s; | ||
| } | ||
| copyDir(s, _dest); | ||
| } | ||
| }); | ||
| } | ||
| export { cpr as c, exit as e, name as n, version as v }; |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
14449
-0.41%Updated