@visulima/package 3.5.10 → 3.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/error.cjs +1 -9
- package/dist/error.mjs +1 -1
- package/dist/index.cjs +1 -33
- package/dist/index.mjs +1 -5
- package/dist/monorepo.cjs +1 -103
- package/dist/monorepo.mjs +1 -98
- package/dist/package-json.cjs +3 -1287
- package/dist/package-json.mjs +3 -1265
- package/dist/package-manager.cjs +9 -176
- package/dist/package-manager.mjs +9 -166
- package/dist/package.cjs +1 -67
- package/dist/package.mjs +1 -62
- package/dist/packem_shared/PackageNotFoundError-CEETCi0X.mjs +1 -0
- package/dist/packem_shared/PackageNotFoundError-CY57YCot.cjs +1 -0
- package/package.json +2 -2
- package/dist/packem_shared/PackageNotFoundError-Ck8Sk4z9.mjs +0 -51
- package/dist/packem_shared/PackageNotFoundError-g9G2-W3s.cjs +0 -53
package/dist/package-manager.cjs
CHANGED
|
@@ -1,180 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var w=Object.defineProperty;var l=(e,n)=>w(e,"name",{value:n,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const P=require("node:child_process"),p=require("node:fs"),o=require("@visulima/fs"),k=require("@visulima/fs/error"),i=require("@visulima/path"),f=require("./package-json.cjs");var v=Object.defineProperty,r=l((e,n)=>v(e,"name",{value:n,configurable:!0}),"r");const d=["yarn.lock","package-lock.json","pnpm-lock.yaml","npm-shrinkwrap.json","bun.lockb"],u=r(e=>{let n;if(d.forEach(t=>{!n&&p.existsSync(i.join(e,t))&&(n=i.join(e,t))}),n)return n;const a=i.join(e,"package.json");if(p.existsSync(a)&&f.parsePackageJson(p.readFileSync(a,"utf8")).packageManager!==void 0)return a},"packageMangerFindUpMatcher"),m=r(e=>{if(!e)throw new k.NotFoundError("Could not find a package manager");if(e.endsWith("package.json")){const n=f.parsePackageJson(e);if(n.packageManager){const a=["npm","yarn","pnpm","bun"].find(t=>n.packageManager.startsWith(t));if(a)return{packageManager:a,path:i.dirname(e)}}}if(e.endsWith("yarn.lock"))return{packageManager:"yarn",path:i.dirname(e)};if(e.endsWith("package-lock.json")||e.endsWith("npm-shrinkwrap.json"))return{packageManager:"npm",path:i.dirname(e)};if(e.endsWith("pnpm-lock.yaml"))return{packageManager:"pnpm",path:i.dirname(e)};if(e.endsWith("bun.lockb"))return{packageManager:"bun",path:i.dirname(e)};throw new k.NotFoundError("Could not find a package manager")},"findPackageManagerOnFile"),S=r(async e=>{const n=await o.findUp(d,{type:"file",...e&&{cwd:e}});if(!n)throw new Error("Could not find lock file");return n},"findLockFile"),j=r(e=>{const n=o.findUpSync(d,{type:"file",...e&&{cwd:e}});if(!n)throw new Error("Could not find lock file");return n},"findLockFileSync"),b=r(async e=>{const n=await o.findUp(u,{...e&&{cwd:e}});return m(n)},"findPackageManager"),F=r(e=>{const n=o.findUpSync(u,{...e&&{cwd:e}});return m(n)},"findPackageManagerSync"),_=r(e=>P.execSync(`${e} --version`).toString("utf8").trim(),"getPackageManagerVersion"),$=r(async()=>{if(!process.env.npm_config_user_agent)return;const e=process.env.npm_config_user_agent.split(" ")[0],n=e.lastIndexOf("/"),a=e.slice(0,Math.max(0,n));return{name:a==="npminstall"?"cnpm":a,version:e.slice(Math.max(0,n+1))}},"identifyInitiatingPackageManager"),E=r((e,n,a)=>{const t=n.length===1?"":"s";if(a.packageManagers===void 0&&(a.packageManagers=["npm","pnpm","yarn"]),a.packageManagers.length===0)throw new Error("No package managers provided, please provide at least one package manager");if(n.length===0)throw new Error("No missing packages provided, please provide at least one missing package");let g=`
|
|
2
|
+
${a.preMessage??""}
|
|
3
|
+
${e} could not find the following package${t}
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
${n.join(`
|
|
6
|
+
`)}
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const fs = require('@visulima/fs');
|
|
8
|
-
const error = require('@visulima/fs/error');
|
|
9
|
-
const path = require('@visulima/path');
|
|
10
|
-
const packageJson = require('./package-json.cjs');
|
|
8
|
+
To install the missing package${t}, please run the following command:
|
|
9
|
+
`;const M=r(s=>s.split("@").includes("@")?s:`${s}@latest`,"atLatest"),h=a.packageManagers.map(s=>{const c=n.map(y=>M(y)).join(" ");switch(s){case"bun":return` bun add ${c} -D`;case"npm":return` npm install ${c} --save-dev`;case"pnpm":return` pnpm add ${c} -D`;case"yarn":return` yarn add ${c} --dev`;default:throw new Error("Unknown package manager")}});return g+=h.join(`
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
14
|
-
const lockFileNames = ["yarn.lock", "package-lock.json", "pnpm-lock.yaml", "npm-shrinkwrap.json", "bun.lockb"];
|
|
15
|
-
const packageMangerFindUpMatcher = /* @__PURE__ */ __name((directory) => {
|
|
16
|
-
let lockFile;
|
|
17
|
-
lockFileNames.forEach((lockFileName) => {
|
|
18
|
-
if (!lockFile && node_fs.existsSync(path.join(directory, lockFileName))) {
|
|
19
|
-
lockFile = path.join(directory, lockFileName);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
if (lockFile) {
|
|
23
|
-
return lockFile;
|
|
24
|
-
}
|
|
25
|
-
const packageJsonFilePath = path.join(directory, "package.json");
|
|
26
|
-
if (node_fs.existsSync(packageJsonFilePath)) {
|
|
27
|
-
const packageJson$1 = packageJson.parsePackageJson(node_fs.readFileSync(packageJsonFilePath, "utf8"));
|
|
28
|
-
if (packageJson$1.packageManager !== void 0) {
|
|
29
|
-
return packageJsonFilePath;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return void 0;
|
|
33
|
-
}, "packageMangerFindUpMatcher");
|
|
34
|
-
const findPackageManagerOnFile = /* @__PURE__ */ __name((foundFile) => {
|
|
35
|
-
if (!foundFile) {
|
|
36
|
-
throw new error.NotFoundError("Could not find a package manager");
|
|
37
|
-
}
|
|
38
|
-
if (foundFile.endsWith("package.json")) {
|
|
39
|
-
const packageJson$1 = packageJson.parsePackageJson(foundFile);
|
|
40
|
-
if (packageJson$1.packageManager) {
|
|
41
|
-
const packageManagerNames = ["npm", "yarn", "pnpm", "bun"];
|
|
42
|
-
const foundPackageManager = packageManagerNames.find((prefix) => packageJson$1.packageManager.startsWith(prefix));
|
|
43
|
-
if (foundPackageManager) {
|
|
44
|
-
return {
|
|
45
|
-
packageManager: foundPackageManager,
|
|
46
|
-
path: path.dirname(foundFile)
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (foundFile.endsWith("yarn.lock")) {
|
|
52
|
-
return {
|
|
53
|
-
packageManager: "yarn",
|
|
54
|
-
path: path.dirname(foundFile)
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
if (foundFile.endsWith("package-lock.json") || foundFile.endsWith("npm-shrinkwrap.json")) {
|
|
58
|
-
return {
|
|
59
|
-
packageManager: "npm",
|
|
60
|
-
path: path.dirname(foundFile)
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
if (foundFile.endsWith("pnpm-lock.yaml")) {
|
|
64
|
-
return {
|
|
65
|
-
packageManager: "pnpm",
|
|
66
|
-
path: path.dirname(foundFile)
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
if (foundFile.endsWith("bun.lockb")) {
|
|
70
|
-
return {
|
|
71
|
-
packageManager: "bun",
|
|
72
|
-
path: path.dirname(foundFile)
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
throw new error.NotFoundError("Could not find a package manager");
|
|
76
|
-
}, "findPackageManagerOnFile");
|
|
77
|
-
const findLockFile = /* @__PURE__ */ __name(async (cwd) => {
|
|
78
|
-
const filePath = await fs.findUp(lockFileNames, {
|
|
79
|
-
type: "file",
|
|
80
|
-
...cwd && { cwd }
|
|
81
|
-
});
|
|
82
|
-
if (!filePath) {
|
|
83
|
-
throw new Error("Could not find lock file");
|
|
84
|
-
}
|
|
85
|
-
return filePath;
|
|
86
|
-
}, "findLockFile");
|
|
87
|
-
const findLockFileSync = /* @__PURE__ */ __name((cwd) => {
|
|
88
|
-
const filePath = fs.findUpSync(lockFileNames, {
|
|
89
|
-
type: "file",
|
|
90
|
-
...cwd && { cwd }
|
|
91
|
-
});
|
|
92
|
-
if (!filePath) {
|
|
93
|
-
throw new Error("Could not find lock file");
|
|
94
|
-
}
|
|
95
|
-
return filePath;
|
|
96
|
-
}, "findLockFileSync");
|
|
97
|
-
const findPackageManager = /* @__PURE__ */ __name(async (cwd) => {
|
|
98
|
-
const foundFile = await fs.findUp(packageMangerFindUpMatcher, {
|
|
99
|
-
...cwd && { cwd }
|
|
100
|
-
});
|
|
101
|
-
return findPackageManagerOnFile(foundFile);
|
|
102
|
-
}, "findPackageManager");
|
|
103
|
-
const findPackageManagerSync = /* @__PURE__ */ __name((cwd) => {
|
|
104
|
-
const foundFile = fs.findUpSync(packageMangerFindUpMatcher, {
|
|
105
|
-
...cwd && { cwd }
|
|
106
|
-
});
|
|
107
|
-
return findPackageManagerOnFile(foundFile);
|
|
108
|
-
}, "findPackageManagerSync");
|
|
109
|
-
const getPackageManagerVersion = /* @__PURE__ */ __name((name) => node_child_process.execSync(`${name} --version`).toString("utf8").trim(), "getPackageManagerVersion");
|
|
110
|
-
const identifyInitiatingPackageManager = /* @__PURE__ */ __name(async () => {
|
|
111
|
-
if (!process.env.npm_config_user_agent) {
|
|
112
|
-
return void 0;
|
|
113
|
-
}
|
|
114
|
-
const pmSpec = process.env.npm_config_user_agent.split(" ")[0];
|
|
115
|
-
const separatorPos = pmSpec.lastIndexOf("/");
|
|
116
|
-
const name = pmSpec.slice(0, Math.max(0, separatorPos));
|
|
117
|
-
return {
|
|
118
|
-
name: name === "npminstall" ? "cnpm" : name,
|
|
119
|
-
version: pmSpec.slice(Math.max(0, separatorPos + 1))
|
|
120
|
-
};
|
|
121
|
-
}, "identifyInitiatingPackageManager");
|
|
122
|
-
const generateMissingPackagesInstallMessage = /* @__PURE__ */ __name((packageName, missingPackages, options) => {
|
|
123
|
-
const s = missingPackages.length === 1 ? "" : "s";
|
|
124
|
-
if (options.packageManagers === void 0) {
|
|
125
|
-
options.packageManagers = ["npm", "pnpm", "yarn"];
|
|
126
|
-
}
|
|
127
|
-
if (options.packageManagers.length === 0) {
|
|
128
|
-
throw new Error("No package managers provided, please provide at least one package manager");
|
|
129
|
-
}
|
|
130
|
-
if (missingPackages.length === 0) {
|
|
131
|
-
throw new Error("No missing packages provided, please provide at least one missing package");
|
|
132
|
-
}
|
|
133
|
-
let message = `
|
|
134
|
-
${options.preMessage ?? ""}
|
|
135
|
-
${packageName} could not find the following package${s}
|
|
11
|
+
or
|
|
136
12
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
To install the missing package${s}, please run the following command:
|
|
140
|
-
`;
|
|
141
|
-
const atLatest = /* @__PURE__ */ __name((name) => {
|
|
142
|
-
if (!name.split("@").includes("@")) {
|
|
143
|
-
return `${name}@latest`;
|
|
144
|
-
}
|
|
145
|
-
return name;
|
|
146
|
-
}, "atLatest");
|
|
147
|
-
const packageManagerCommands = options.packageManagers.map((packageManager) => {
|
|
148
|
-
const missingPackagesString = missingPackages.map((element) => atLatest(element)).join(" ");
|
|
149
|
-
switch (packageManager) {
|
|
150
|
-
case "bun": {
|
|
151
|
-
return ` bun add ${missingPackagesString} -D`;
|
|
152
|
-
}
|
|
153
|
-
case "npm": {
|
|
154
|
-
return ` npm install ${missingPackagesString} --save-dev`;
|
|
155
|
-
}
|
|
156
|
-
case "pnpm": {
|
|
157
|
-
return ` pnpm add ${missingPackagesString} -D`;
|
|
158
|
-
}
|
|
159
|
-
case "yarn": {
|
|
160
|
-
return ` yarn add ${missingPackagesString} --dev`;
|
|
161
|
-
}
|
|
162
|
-
default: {
|
|
163
|
-
throw new Error("Unknown package manager");
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
message += packageManagerCommands.join("\n\nor\n\n");
|
|
168
|
-
if (options.postMessage) {
|
|
169
|
-
message += options.postMessage;
|
|
170
|
-
}
|
|
171
|
-
return message;
|
|
172
|
-
}, "generateMissingPackagesInstallMessage");
|
|
173
|
-
|
|
174
|
-
exports.findLockFile = findLockFile;
|
|
175
|
-
exports.findLockFileSync = findLockFileSync;
|
|
176
|
-
exports.findPackageManager = findPackageManager;
|
|
177
|
-
exports.findPackageManagerSync = findPackageManagerSync;
|
|
178
|
-
exports.generateMissingPackagesInstallMessage = generateMissingPackagesInstallMessage;
|
|
179
|
-
exports.getPackageManagerVersion = getPackageManagerVersion;
|
|
180
|
-
exports.identifyInitiatingPackageManager = identifyInitiatingPackageManager;
|
|
13
|
+
`),a.postMessage&&(g+=a.postMessage),g},"generateMissingPackagesInstallMessage");exports.findLockFile=S;exports.findLockFileSync=j;exports.findPackageManager=b;exports.findPackageManagerSync=F;exports.generateMissingPackagesInstallMessage=E;exports.getPackageManagerVersion=_;exports.identifyInitiatingPackageManager=$;
|
package/dist/package-manager.mjs
CHANGED
|
@@ -1,170 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { NotFoundError } from '@visulima/fs/error';
|
|
5
|
-
import { join, dirname } from '@visulima/path';
|
|
6
|
-
import { parsePackageJson } from './package-json.mjs';
|
|
1
|
+
var P=Object.defineProperty;var l=(n,a)=>P(n,"name",{value:a,configurable:!0});import{execSync as j}from"node:child_process";import{existsSync as d,readFileSync as $}from"node:fs";import{findUpSync as k,findUp as m}from"@visulima/fs";import{NotFoundError as f}from"@visulima/fs/error";import{join as g,dirname as o}from"@visulima/path";import{parsePackageJson as u}from"./package-json.mjs";var b=Object.defineProperty,r=l((n,a)=>b(n,"name",{value:a,configurable:!0}),"r");const p=["yarn.lock","package-lock.json","pnpm-lock.yaml","npm-shrinkwrap.json","bun.lockb"],h=r(n=>{let a;if(p.forEach(t=>{!a&&d(g(n,t))&&(a=g(n,t))}),a)return a;const e=g(n,"package.json");if(d(e)&&u($(e,"utf8")).packageManager!==void 0)return e},"packageMangerFindUpMatcher"),M=r(n=>{if(!n)throw new f("Could not find a package manager");if(n.endsWith("package.json")){const a=u(n);if(a.packageManager){const e=["npm","yarn","pnpm","bun"].find(t=>a.packageManager.startsWith(t));if(e)return{packageManager:e,path:o(n)}}}if(n.endsWith("yarn.lock"))return{packageManager:"yarn",path:o(n)};if(n.endsWith("package-lock.json")||n.endsWith("npm-shrinkwrap.json"))return{packageManager:"npm",path:o(n)};if(n.endsWith("pnpm-lock.yaml"))return{packageManager:"pnpm",path:o(n)};if(n.endsWith("bun.lockb"))return{packageManager:"bun",path:o(n)};throw new f("Could not find a package manager")},"findPackageManagerOnFile"),L=r(async n=>{const a=await m(p,{type:"file",...n&&{cwd:n}});if(!a)throw new Error("Could not find lock file");return a},"findLockFile"),C=r(n=>{const a=k(p,{type:"file",...n&&{cwd:n}});if(!a)throw new Error("Could not find lock file");return a},"findLockFileSync"),U=r(async n=>{const a=await m(h,{...n&&{cwd:n}});return M(a)},"findPackageManager"),N=r(n=>{const a=k(h,{...n&&{cwd:n}});return M(a)},"findPackageManagerSync"),O=r(n=>j(`${n} --version`).toString("utf8").trim(),"getPackageManagerVersion"),D=r(async()=>{if(!process.env.npm_config_user_agent)return;const n=process.env.npm_config_user_agent.split(" ")[0],a=n.lastIndexOf("/"),e=n.slice(0,Math.max(0,a));return{name:e==="npminstall"?"cnpm":e,version:n.slice(Math.max(0,a+1))}},"identifyInitiatingPackageManager"),V=r((n,a,e)=>{const t=a.length===1?"":"s";if(e.packageManagers===void 0&&(e.packageManagers=["npm","pnpm","yarn"]),e.packageManagers.length===0)throw new Error("No package managers provided, please provide at least one package manager");if(a.length===0)throw new Error("No missing packages provided, please provide at least one missing package");let c=`
|
|
2
|
+
${e.preMessage??""}
|
|
3
|
+
${n} could not find the following package${t}
|
|
7
4
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const lockFileNames = ["yarn.lock", "package-lock.json", "pnpm-lock.yaml", "npm-shrinkwrap.json", "bun.lockb"];
|
|
11
|
-
const packageMangerFindUpMatcher = /* @__PURE__ */ __name((directory) => {
|
|
12
|
-
let lockFile;
|
|
13
|
-
lockFileNames.forEach((lockFileName) => {
|
|
14
|
-
if (!lockFile && existsSync(join(directory, lockFileName))) {
|
|
15
|
-
lockFile = join(directory, lockFileName);
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
if (lockFile) {
|
|
19
|
-
return lockFile;
|
|
20
|
-
}
|
|
21
|
-
const packageJsonFilePath = join(directory, "package.json");
|
|
22
|
-
if (existsSync(packageJsonFilePath)) {
|
|
23
|
-
const packageJson = parsePackageJson(readFileSync(packageJsonFilePath, "utf8"));
|
|
24
|
-
if (packageJson.packageManager !== void 0) {
|
|
25
|
-
return packageJsonFilePath;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return void 0;
|
|
29
|
-
}, "packageMangerFindUpMatcher");
|
|
30
|
-
const findPackageManagerOnFile = /* @__PURE__ */ __name((foundFile) => {
|
|
31
|
-
if (!foundFile) {
|
|
32
|
-
throw new NotFoundError("Could not find a package manager");
|
|
33
|
-
}
|
|
34
|
-
if (foundFile.endsWith("package.json")) {
|
|
35
|
-
const packageJson = parsePackageJson(foundFile);
|
|
36
|
-
if (packageJson.packageManager) {
|
|
37
|
-
const packageManagerNames = ["npm", "yarn", "pnpm", "bun"];
|
|
38
|
-
const foundPackageManager = packageManagerNames.find((prefix) => packageJson.packageManager.startsWith(prefix));
|
|
39
|
-
if (foundPackageManager) {
|
|
40
|
-
return {
|
|
41
|
-
packageManager: foundPackageManager,
|
|
42
|
-
path: dirname(foundFile)
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (foundFile.endsWith("yarn.lock")) {
|
|
48
|
-
return {
|
|
49
|
-
packageManager: "yarn",
|
|
50
|
-
path: dirname(foundFile)
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
if (foundFile.endsWith("package-lock.json") || foundFile.endsWith("npm-shrinkwrap.json")) {
|
|
54
|
-
return {
|
|
55
|
-
packageManager: "npm",
|
|
56
|
-
path: dirname(foundFile)
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
if (foundFile.endsWith("pnpm-lock.yaml")) {
|
|
60
|
-
return {
|
|
61
|
-
packageManager: "pnpm",
|
|
62
|
-
path: dirname(foundFile)
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
if (foundFile.endsWith("bun.lockb")) {
|
|
66
|
-
return {
|
|
67
|
-
packageManager: "bun",
|
|
68
|
-
path: dirname(foundFile)
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
throw new NotFoundError("Could not find a package manager");
|
|
72
|
-
}, "findPackageManagerOnFile");
|
|
73
|
-
const findLockFile = /* @__PURE__ */ __name(async (cwd) => {
|
|
74
|
-
const filePath = await findUp(lockFileNames, {
|
|
75
|
-
type: "file",
|
|
76
|
-
...cwd && { cwd }
|
|
77
|
-
});
|
|
78
|
-
if (!filePath) {
|
|
79
|
-
throw new Error("Could not find lock file");
|
|
80
|
-
}
|
|
81
|
-
return filePath;
|
|
82
|
-
}, "findLockFile");
|
|
83
|
-
const findLockFileSync = /* @__PURE__ */ __name((cwd) => {
|
|
84
|
-
const filePath = findUpSync(lockFileNames, {
|
|
85
|
-
type: "file",
|
|
86
|
-
...cwd && { cwd }
|
|
87
|
-
});
|
|
88
|
-
if (!filePath) {
|
|
89
|
-
throw new Error("Could not find lock file");
|
|
90
|
-
}
|
|
91
|
-
return filePath;
|
|
92
|
-
}, "findLockFileSync");
|
|
93
|
-
const findPackageManager = /* @__PURE__ */ __name(async (cwd) => {
|
|
94
|
-
const foundFile = await findUp(packageMangerFindUpMatcher, {
|
|
95
|
-
...cwd && { cwd }
|
|
96
|
-
});
|
|
97
|
-
return findPackageManagerOnFile(foundFile);
|
|
98
|
-
}, "findPackageManager");
|
|
99
|
-
const findPackageManagerSync = /* @__PURE__ */ __name((cwd) => {
|
|
100
|
-
const foundFile = findUpSync(packageMangerFindUpMatcher, {
|
|
101
|
-
...cwd && { cwd }
|
|
102
|
-
});
|
|
103
|
-
return findPackageManagerOnFile(foundFile);
|
|
104
|
-
}, "findPackageManagerSync");
|
|
105
|
-
const getPackageManagerVersion = /* @__PURE__ */ __name((name) => execSync(`${name} --version`).toString("utf8").trim(), "getPackageManagerVersion");
|
|
106
|
-
const identifyInitiatingPackageManager = /* @__PURE__ */ __name(async () => {
|
|
107
|
-
if (!process.env.npm_config_user_agent) {
|
|
108
|
-
return void 0;
|
|
109
|
-
}
|
|
110
|
-
const pmSpec = process.env.npm_config_user_agent.split(" ")[0];
|
|
111
|
-
const separatorPos = pmSpec.lastIndexOf("/");
|
|
112
|
-
const name = pmSpec.slice(0, Math.max(0, separatorPos));
|
|
113
|
-
return {
|
|
114
|
-
name: name === "npminstall" ? "cnpm" : name,
|
|
115
|
-
version: pmSpec.slice(Math.max(0, separatorPos + 1))
|
|
116
|
-
};
|
|
117
|
-
}, "identifyInitiatingPackageManager");
|
|
118
|
-
const generateMissingPackagesInstallMessage = /* @__PURE__ */ __name((packageName, missingPackages, options) => {
|
|
119
|
-
const s = missingPackages.length === 1 ? "" : "s";
|
|
120
|
-
if (options.packageManagers === void 0) {
|
|
121
|
-
options.packageManagers = ["npm", "pnpm", "yarn"];
|
|
122
|
-
}
|
|
123
|
-
if (options.packageManagers.length === 0) {
|
|
124
|
-
throw new Error("No package managers provided, please provide at least one package manager");
|
|
125
|
-
}
|
|
126
|
-
if (missingPackages.length === 0) {
|
|
127
|
-
throw new Error("No missing packages provided, please provide at least one missing package");
|
|
128
|
-
}
|
|
129
|
-
let message = `
|
|
130
|
-
${options.preMessage ?? ""}
|
|
131
|
-
${packageName} could not find the following package${s}
|
|
5
|
+
${a.join(`
|
|
6
|
+
`)}
|
|
132
7
|
|
|
133
|
-
|
|
8
|
+
To install the missing package${t}, please run the following command:
|
|
9
|
+
`;const w=r(i=>i.split("@").includes("@")?i:`${i}@latest`,"atLatest"),y=e.packageManagers.map(i=>{const s=a.map(v=>w(v)).join(" ");switch(i){case"bun":return` bun add ${s} -D`;case"npm":return` npm install ${s} --save-dev`;case"pnpm":return` pnpm add ${s} -D`;case"yarn":return` yarn add ${s} --dev`;default:throw new Error("Unknown package manager")}});return c+=y.join(`
|
|
134
10
|
|
|
135
|
-
|
|
136
|
-
`;
|
|
137
|
-
const atLatest = /* @__PURE__ */ __name((name) => {
|
|
138
|
-
if (!name.split("@").includes("@")) {
|
|
139
|
-
return `${name}@latest`;
|
|
140
|
-
}
|
|
141
|
-
return name;
|
|
142
|
-
}, "atLatest");
|
|
143
|
-
const packageManagerCommands = options.packageManagers.map((packageManager) => {
|
|
144
|
-
const missingPackagesString = missingPackages.map((element) => atLatest(element)).join(" ");
|
|
145
|
-
switch (packageManager) {
|
|
146
|
-
case "bun": {
|
|
147
|
-
return ` bun add ${missingPackagesString} -D`;
|
|
148
|
-
}
|
|
149
|
-
case "npm": {
|
|
150
|
-
return ` npm install ${missingPackagesString} --save-dev`;
|
|
151
|
-
}
|
|
152
|
-
case "pnpm": {
|
|
153
|
-
return ` pnpm add ${missingPackagesString} -D`;
|
|
154
|
-
}
|
|
155
|
-
case "yarn": {
|
|
156
|
-
return ` yarn add ${missingPackagesString} --dev`;
|
|
157
|
-
}
|
|
158
|
-
default: {
|
|
159
|
-
throw new Error("Unknown package manager");
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
message += packageManagerCommands.join("\n\nor\n\n");
|
|
164
|
-
if (options.postMessage) {
|
|
165
|
-
message += options.postMessage;
|
|
166
|
-
}
|
|
167
|
-
return message;
|
|
168
|
-
}, "generateMissingPackagesInstallMessage");
|
|
11
|
+
or
|
|
169
12
|
|
|
170
|
-
export
|
|
13
|
+
`),e.postMessage&&(c+=e.postMessage),c},"generateMissingPackagesInstallMessage");export{L as findLockFile,C as findLockFileSync,U as findPackageManager,N as findPackageManagerSync,V as generateMissingPackagesInstallMessage,O as getPackageManagerVersion,D as identifyInitiatingPackageManager};
|
package/dist/package.cjs
CHANGED
|
@@ -1,67 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
-
|
|
5
|
-
const node_fs = require('node:fs');
|
|
6
|
-
const fs = require('@visulima/fs');
|
|
7
|
-
const path = require('@visulima/path');
|
|
8
|
-
const packageManager = require('./package-manager.cjs');
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
|
-
const packageJsonMatcher = /* @__PURE__ */ __name((directory) => {
|
|
13
|
-
if (node_fs.existsSync(path.join(directory, "package.json"))) {
|
|
14
|
-
const packageJson = fs.readJsonSync(path.join(directory, "package.json"));
|
|
15
|
-
if (packageJson.name && packageJson.private !== true) {
|
|
16
|
-
return "package.json";
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return void 0;
|
|
20
|
-
}, "packageJsonMatcher");
|
|
21
|
-
const findPackageRoot = /* @__PURE__ */ __name(async (cwd) => {
|
|
22
|
-
try {
|
|
23
|
-
const lockFile = await packageManager.findLockFile(cwd);
|
|
24
|
-
return path.dirname(lockFile);
|
|
25
|
-
} catch {
|
|
26
|
-
}
|
|
27
|
-
const gitConfig = await fs.findUp(".git/config", {
|
|
28
|
-
...cwd && { cwd },
|
|
29
|
-
type: "file"
|
|
30
|
-
});
|
|
31
|
-
if (gitConfig) {
|
|
32
|
-
return path.dirname(path.dirname(gitConfig));
|
|
33
|
-
}
|
|
34
|
-
const filePath = await fs.findUp(packageJsonMatcher, {
|
|
35
|
-
...cwd && { cwd },
|
|
36
|
-
type: "file"
|
|
37
|
-
});
|
|
38
|
-
if (filePath) {
|
|
39
|
-
return path.dirname(filePath);
|
|
40
|
-
}
|
|
41
|
-
throw new Error("Could not find root directory");
|
|
42
|
-
}, "findPackageRoot");
|
|
43
|
-
const findPackageRootSync = /* @__PURE__ */ __name((cwd) => {
|
|
44
|
-
try {
|
|
45
|
-
const lockFile = packageManager.findLockFileSync(cwd);
|
|
46
|
-
return path.dirname(lockFile);
|
|
47
|
-
} catch {
|
|
48
|
-
}
|
|
49
|
-
const gitConfig = fs.findUpSync(".git/config", {
|
|
50
|
-
...cwd && { cwd },
|
|
51
|
-
type: "file"
|
|
52
|
-
});
|
|
53
|
-
if (gitConfig) {
|
|
54
|
-
return path.dirname(path.dirname(gitConfig));
|
|
55
|
-
}
|
|
56
|
-
const filePath = fs.findUpSync(packageJsonMatcher, {
|
|
57
|
-
...cwd && { cwd },
|
|
58
|
-
type: "file"
|
|
59
|
-
});
|
|
60
|
-
if (filePath) {
|
|
61
|
-
return path.dirname(filePath);
|
|
62
|
-
}
|
|
63
|
-
throw new Error("Could not find root directory");
|
|
64
|
-
}, "findPackageRootSync");
|
|
65
|
-
|
|
66
|
-
exports.findPackageRoot = findPackageRoot;
|
|
67
|
-
exports.findPackageRootSync = findPackageRootSync;
|
|
1
|
+
"use strict";var s=Object.defineProperty;var c=(e,n)=>s(e,"name",{value:n,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("node:fs"),o=require("@visulima/fs"),r=require("@visulima/path"),d=require("./package-manager.cjs");var g=Object.defineProperty,t=c((e,n)=>g(e,"name",{value:n,configurable:!0}),"r");const f=t(e=>{if(u.existsSync(r.join(e,"package.json"))){const n=o.readJsonSync(r.join(e,"package.json"));if(n.name&&n.private!==!0)return"package.json"}},"packageJsonMatcher"),y=t(async e=>{try{const a=await d.findLockFile(e);return r.dirname(a)}catch{}const n=await o.findUp(".git/config",{...e&&{cwd:e},type:"file"});if(n)return r.dirname(r.dirname(n));const i=await o.findUp(f,{...e&&{cwd:e},type:"file"});if(i)return r.dirname(i);throw new Error("Could not find root directory")},"findPackageRoot"),p=t(e=>{try{const a=d.findLockFileSync(e);return r.dirname(a)}catch{}const n=o.findUpSync(".git/config",{...e&&{cwd:e},type:"file"});if(n)return r.dirname(r.dirname(n));const i=o.findUpSync(f,{...e&&{cwd:e},type:"file"});if(i)return r.dirname(i);throw new Error("Could not find root directory")},"findPackageRootSync");exports.findPackageRoot=y;exports.findPackageRootSync=p;
|
package/dist/package.mjs
CHANGED
|
@@ -1,62 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { findUpSync, readJsonSync, findUp } from '@visulima/fs';
|
|
3
|
-
import { dirname, join } from '@visulima/path';
|
|
4
|
-
import { findLockFileSync, findLockFile } from './package-manager.mjs';
|
|
5
|
-
|
|
6
|
-
var __defProp = Object.defineProperty;
|
|
7
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
-
const packageJsonMatcher = /* @__PURE__ */ __name((directory) => {
|
|
9
|
-
if (existsSync(join(directory, "package.json"))) {
|
|
10
|
-
const packageJson = readJsonSync(join(directory, "package.json"));
|
|
11
|
-
if (packageJson.name && packageJson.private !== true) {
|
|
12
|
-
return "package.json";
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return void 0;
|
|
16
|
-
}, "packageJsonMatcher");
|
|
17
|
-
const findPackageRoot = /* @__PURE__ */ __name(async (cwd) => {
|
|
18
|
-
try {
|
|
19
|
-
const lockFile = await findLockFile(cwd);
|
|
20
|
-
return dirname(lockFile);
|
|
21
|
-
} catch {
|
|
22
|
-
}
|
|
23
|
-
const gitConfig = await findUp(".git/config", {
|
|
24
|
-
...cwd && { cwd },
|
|
25
|
-
type: "file"
|
|
26
|
-
});
|
|
27
|
-
if (gitConfig) {
|
|
28
|
-
return dirname(dirname(gitConfig));
|
|
29
|
-
}
|
|
30
|
-
const filePath = await findUp(packageJsonMatcher, {
|
|
31
|
-
...cwd && { cwd },
|
|
32
|
-
type: "file"
|
|
33
|
-
});
|
|
34
|
-
if (filePath) {
|
|
35
|
-
return dirname(filePath);
|
|
36
|
-
}
|
|
37
|
-
throw new Error("Could not find root directory");
|
|
38
|
-
}, "findPackageRoot");
|
|
39
|
-
const findPackageRootSync = /* @__PURE__ */ __name((cwd) => {
|
|
40
|
-
try {
|
|
41
|
-
const lockFile = findLockFileSync(cwd);
|
|
42
|
-
return dirname(lockFile);
|
|
43
|
-
} catch {
|
|
44
|
-
}
|
|
45
|
-
const gitConfig = findUpSync(".git/config", {
|
|
46
|
-
...cwd && { cwd },
|
|
47
|
-
type: "file"
|
|
48
|
-
});
|
|
49
|
-
if (gitConfig) {
|
|
50
|
-
return dirname(dirname(gitConfig));
|
|
51
|
-
}
|
|
52
|
-
const filePath = findUpSync(packageJsonMatcher, {
|
|
53
|
-
...cwd && { cwd },
|
|
54
|
-
type: "file"
|
|
55
|
-
});
|
|
56
|
-
if (filePath) {
|
|
57
|
-
return dirname(filePath);
|
|
58
|
-
}
|
|
59
|
-
throw new Error("Could not find root directory");
|
|
60
|
-
}, "findPackageRootSync");
|
|
61
|
-
|
|
62
|
-
export { findPackageRoot, findPackageRootSync };
|
|
1
|
+
var p=Object.defineProperty;var c=(n,o)=>p(n,"name",{value:o,configurable:!0});import{existsSync as y}from"node:fs";import{findUp as a,findUpSync as f,readJsonSync as g}from"@visulima/fs";import{dirname as r,join as d}from"@visulima/path";import{findLockFile as u,findLockFileSync as m}from"./package-manager.mjs";var w=Object.defineProperty,i=c((n,o)=>w(n,"name",{value:o,configurable:!0}),"r");const s=i(n=>{if(y(d(n,"package.json"))){const o=g(d(n,"package.json"));if(o.name&&o.private!==!0)return"package.json"}},"packageJsonMatcher"),P=i(async n=>{try{const t=await u(n);return r(t)}catch{}const o=await a(".git/config",{...n&&{cwd:n},type:"file"});if(o)return r(r(o));const e=await a(s,{...n&&{cwd:n},type:"file"});if(e)return r(e);throw new Error("Could not find root directory")},"findPackageRoot"),v=i(n=>{try{const t=m(n);return r(t)}catch{}const o=f(".git/config",{...n&&{cwd:n},type:"file"});if(o)return r(r(o));const e=f(s,{...n&&{cwd:n},type:"file"});if(e)return r(e);throw new Error("Could not find root directory")},"findPackageRootSync");export{P as findPackageRoot,v as findPackageRootSync};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o=Object.defineProperty;var a=(t,e)=>o(t,"name",{value:e,configurable:!0});import{findPackageManagerSync as n}from"../package-manager.mjs";var c=Object.defineProperty,i=a((t,e)=>c(t,"name",{value:e,configurable:!0}),"t");class g extends Error{static{a(this,"u")}static{i(this,"PackageNotFoundError")}constructor(e,r){if(typeof e=="string"&&(e=[e]),e.length===0){super("Package was not found.");return}if(r===void 0)try{r=n().packageManager}catch{}r===void 0&&(r="npm"),super(`Package '${e.join(" ")}' was not found. Please install it using '${r} install ${e.join(" ")}'`)}get code(){return"PACKAGE_NOT_FOUND"}set code(e){throw new Error("Cannot overwrite code PACKAGE_NOT_FOUND")}get name(){return"PackageNotFoundError"}set name(e){throw new Error("Cannot overwrite name of PackageNotFoundError")}}export{g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var o=Object.defineProperty;var t=(a,e)=>o(a,"name",{value:e,configurable:!0});const n=require("../package-manager.cjs");var c=Object.defineProperty,s=t((a,e)=>c(a,"name",{value:e,configurable:!0}),"t");class i extends Error{static{t(this,"u")}static{s(this,"PackageNotFoundError")}constructor(e,r){if(typeof e=="string"&&(e=[e]),e.length===0){super("Package was not found.");return}if(r===void 0)try{r=n.findPackageManagerSync().packageManager}catch{}r===void 0&&(r="npm"),super(`Package '${e.join(" ")}' was not found. Please install it using '${r} install ${e.join(" ")}'`)}get code(){return"PACKAGE_NOT_FOUND"}set code(e){throw new Error("Cannot overwrite code PACKAGE_NOT_FOUND")}get name(){return"PackageNotFoundError"}set name(e){throw new Error("Cannot overwrite name of PackageNotFoundError")}}module.exports=i;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visulima/package",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.11",
|
|
4
4
|
"description": "One Package to rule them all, finds your root-dir, monorepo, or package manager.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"anolilab",
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
],
|
|
147
147
|
"dependencies": {
|
|
148
148
|
"@inquirer/confirm": "^5.1.10",
|
|
149
|
-
"@visulima/fs": "3.1.
|
|
149
|
+
"@visulima/fs": "3.1.8",
|
|
150
150
|
"@visulima/path": "1.4.0",
|
|
151
151
|
"normalize-package-data": "^7.0.0"
|
|
152
152
|
},
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { findPackageManagerSync } from '../package-manager.mjs';
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
-
class PackageNotFoundError extends Error {
|
|
6
|
-
static {
|
|
7
|
-
__name(this, "PackageNotFoundError");
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* @param {string} packageName - The name of the package that was not found.
|
|
11
|
-
* @param {string} packageManager - The package manager used to install the package.
|
|
12
|
-
*/
|
|
13
|
-
constructor(packageName, packageManager) {
|
|
14
|
-
if (typeof packageName === "string") {
|
|
15
|
-
packageName = [packageName];
|
|
16
|
-
}
|
|
17
|
-
if (packageName.length === 0) {
|
|
18
|
-
super("Package was not found.");
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
if (packageManager === void 0) {
|
|
22
|
-
try {
|
|
23
|
-
const foundManager = findPackageManagerSync();
|
|
24
|
-
packageManager = foundManager.packageManager;
|
|
25
|
-
} catch {
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
if (packageManager === void 0) {
|
|
29
|
-
packageManager = "npm";
|
|
30
|
-
}
|
|
31
|
-
super(`Package '${packageName.join(" ")}' was not found. Please install it using '${packageManager} install ${packageName.join(" ")}'`);
|
|
32
|
-
}
|
|
33
|
-
// eslint-disable-next-line class-methods-use-this
|
|
34
|
-
get code() {
|
|
35
|
-
return "PACKAGE_NOT_FOUND";
|
|
36
|
-
}
|
|
37
|
-
// eslint-disable-next-line class-methods-use-this,@typescript-eslint/explicit-module-boundary-types
|
|
38
|
-
set code(_name) {
|
|
39
|
-
throw new Error("Cannot overwrite code PACKAGE_NOT_FOUND");
|
|
40
|
-
}
|
|
41
|
-
// eslint-disable-next-line class-methods-use-this
|
|
42
|
-
get name() {
|
|
43
|
-
return "PackageNotFoundError";
|
|
44
|
-
}
|
|
45
|
-
// eslint-disable-next-line class-methods-use-this,@typescript-eslint/explicit-module-boundary-types
|
|
46
|
-
set name(_name) {
|
|
47
|
-
throw new Error("Cannot overwrite name of PackageNotFoundError");
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export { PackageNotFoundError as default };
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const packageManager = require('../package-manager.cjs');
|
|
4
|
-
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
-
class PackageNotFoundError extends Error {
|
|
8
|
-
static {
|
|
9
|
-
__name(this, "PackageNotFoundError");
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* @param {string} packageName - The name of the package that was not found.
|
|
13
|
-
* @param {string} packageManager - The package manager used to install the package.
|
|
14
|
-
*/
|
|
15
|
-
constructor(packageName, packageManager$1) {
|
|
16
|
-
if (typeof packageName === "string") {
|
|
17
|
-
packageName = [packageName];
|
|
18
|
-
}
|
|
19
|
-
if (packageName.length === 0) {
|
|
20
|
-
super("Package was not found.");
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
if (packageManager$1 === void 0) {
|
|
24
|
-
try {
|
|
25
|
-
const foundManager = packageManager.findPackageManagerSync();
|
|
26
|
-
packageManager$1 = foundManager.packageManager;
|
|
27
|
-
} catch {
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (packageManager$1 === void 0) {
|
|
31
|
-
packageManager$1 = "npm";
|
|
32
|
-
}
|
|
33
|
-
super(`Package '${packageName.join(" ")}' was not found. Please install it using '${packageManager$1} install ${packageName.join(" ")}'`);
|
|
34
|
-
}
|
|
35
|
-
// eslint-disable-next-line class-methods-use-this
|
|
36
|
-
get code() {
|
|
37
|
-
return "PACKAGE_NOT_FOUND";
|
|
38
|
-
}
|
|
39
|
-
// eslint-disable-next-line class-methods-use-this,@typescript-eslint/explicit-module-boundary-types
|
|
40
|
-
set code(_name) {
|
|
41
|
-
throw new Error("Cannot overwrite code PACKAGE_NOT_FOUND");
|
|
42
|
-
}
|
|
43
|
-
// eslint-disable-next-line class-methods-use-this
|
|
44
|
-
get name() {
|
|
45
|
-
return "PackageNotFoundError";
|
|
46
|
-
}
|
|
47
|
-
// eslint-disable-next-line class-methods-use-this,@typescript-eslint/explicit-module-boundary-types
|
|
48
|
-
set name(_name) {
|
|
49
|
-
throw new Error("Cannot overwrite name of PackageNotFoundError");
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
module.exports = PackageNotFoundError;
|