@reliverse/dler 2.1.18 → 2.1.20
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/dist/cmds/update/cmd.js +5 -14
- package/dist/cmds/update/impl.d.ts +2 -3
- package/dist/cmds/update/impl.js +11 -131
- package/package.json +11 -11
package/dist/cmds/update/cmd.js
CHANGED
|
@@ -19,10 +19,6 @@ export default defineCommand({
|
|
|
19
19
|
"dler update",
|
|
20
20
|
"dler update --install",
|
|
21
21
|
"dler update --dryRun",
|
|
22
|
-
'dler update --filter "@reliverse/dler-prompt,@reliverse/dler-build"',
|
|
23
|
-
'dler update --filter "@reliverse/dler-*"',
|
|
24
|
-
"dler update --filter cli,packages/build",
|
|
25
|
-
'dler update --ignore "@reliverse/*"',
|
|
26
22
|
"dler update --name @types/* --name react*",
|
|
27
23
|
'dler update --ignore "eslint-*" --ignore "@babel/*"',
|
|
28
24
|
"dler update --no-allowMajor",
|
|
@@ -30,8 +26,7 @@ export default defineCommand({
|
|
|
30
26
|
"dler update --ignoreFields peerDependencies",
|
|
31
27
|
"dler update --dryRun --install",
|
|
32
28
|
"dler update --name react --name react-dom --install",
|
|
33
|
-
"dler update --ignore @types/* --allowMajor"
|
|
34
|
-
'dler update --filter "@reliverse/dler-*" --name react --install'
|
|
29
|
+
"dler update --ignore @types/* --allowMajor"
|
|
35
30
|
]
|
|
36
31
|
},
|
|
37
32
|
args: defineArgs({
|
|
@@ -45,17 +40,13 @@ export default defineCommand({
|
|
|
45
40
|
description: msgs.args.cwd,
|
|
46
41
|
default: getCurrentWorkingDirectory()
|
|
47
42
|
},
|
|
48
|
-
|
|
43
|
+
name: {
|
|
49
44
|
type: "string",
|
|
50
|
-
description: "
|
|
45
|
+
description: "Specific dependencies to update, supports glob patterns (e.g. '@types/*', 'react*'). Can be specified multiple times or comma-separated."
|
|
51
46
|
},
|
|
52
47
|
ignore: {
|
|
53
48
|
type: "string",
|
|
54
|
-
description: "
|
|
55
|
-
},
|
|
56
|
-
name: {
|
|
57
|
-
type: "string",
|
|
58
|
-
description: "Specific dependencies to update, supports glob patterns (e.g. '@types/*', 'react*'). Can be specified multiple times or comma-separated."
|
|
49
|
+
description: "Dependencies to exclude from updates, supports glob patterns (e.g. 'eslint-*', '@types/*')"
|
|
59
50
|
},
|
|
60
51
|
dryRun: {
|
|
61
52
|
type: "boolean",
|
|
@@ -92,7 +83,7 @@ export default defineCommand({
|
|
|
92
83
|
const showDetails = Boolean(details);
|
|
93
84
|
const fieldsToIgnore = Array.isArray(ignoreFields) ? ignoreFields : [];
|
|
94
85
|
await validatePackageJson();
|
|
95
|
-
const { packageJsonFiles, fileDepsMap } = await prepareAllUpdateCandidates(
|
|
86
|
+
const { packageJsonFiles, fileDepsMap } = await prepareAllUpdateCandidates();
|
|
96
87
|
if (packageJsonFiles.length === 0) {
|
|
97
88
|
logger.log("No package.json files found");
|
|
98
89
|
return;
|
|
@@ -2,9 +2,8 @@ import { type UpdateResult } from "./utils.js";
|
|
|
2
2
|
interface UpdateArgs {
|
|
3
3
|
ci?: boolean;
|
|
4
4
|
cwd?: string;
|
|
5
|
-
filter?: string | string[];
|
|
6
5
|
name?: string[];
|
|
7
|
-
ignore?: string
|
|
6
|
+
ignore?: string[];
|
|
8
7
|
dryRun?: boolean;
|
|
9
8
|
install?: boolean;
|
|
10
9
|
allowMajor?: boolean;
|
|
@@ -12,7 +11,7 @@ interface UpdateArgs {
|
|
|
12
11
|
ignoreFields?: string[];
|
|
13
12
|
}
|
|
14
13
|
export declare function validatePackageJson(): Promise<string>;
|
|
15
|
-
export declare function prepareAllUpdateCandidates(
|
|
14
|
+
export declare function prepareAllUpdateCandidates(): Promise<{
|
|
16
15
|
packageJsonFiles: string[];
|
|
17
16
|
fileDepsMap: Map<string, Record<string, any>>;
|
|
18
17
|
}>;
|
package/dist/cmds/update/impl.js
CHANGED
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
import { logger } from "@reliverse/dler-logger";
|
|
2
2
|
import pMap from "@reliverse/dler-mapper";
|
|
3
|
-
import {
|
|
4
|
-
createIncludeFilter,
|
|
5
|
-
normalizePatterns
|
|
6
|
-
} from "@reliverse/dler-matcher";
|
|
7
|
-
import {
|
|
8
|
-
getWorkspacePatterns,
|
|
9
|
-
hasWorkspaces,
|
|
10
|
-
readPackageJSON
|
|
11
|
-
} from "@reliverse/dler-pkg-tsc";
|
|
12
3
|
import { Glob } from "bun";
|
|
13
4
|
import fs from "fs/promises";
|
|
14
|
-
import path
|
|
5
|
+
import path from "path";
|
|
15
6
|
import {
|
|
16
7
|
applyVersionUpdate,
|
|
17
8
|
checkPackageUpdate,
|
|
@@ -29,128 +20,17 @@ export async function validatePackageJson() {
|
|
|
29
20
|
}
|
|
30
21
|
return packageJsonPath;
|
|
31
22
|
}
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
relativePath = relative(resolve(pkg.path, ".."), pkg.path).replace(
|
|
43
|
-
/\\/g,
|
|
44
|
-
"/"
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
if (relativePath === normalizedPattern || relativePath.endsWith(normalizedPattern)) {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
const pathFilter = createIncludeFilter(normalizedPattern);
|
|
51
|
-
if (pathFilter([{ name: relativePath, path: pkg.path }]).length > 0) {
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
return false;
|
|
55
|
-
};
|
|
56
|
-
const filterPackagesByPatterns = (packages, patterns, monorepoRoot) => {
|
|
57
|
-
const patternArray = Array.isArray(patterns) ? patterns : [patterns];
|
|
58
|
-
const normalizedPatterns = patternArray.flatMap(
|
|
59
|
-
(p) => typeof p === "string" ? p.split(",").map((s) => s.trim()) : [p]
|
|
60
|
-
);
|
|
61
|
-
return packages.filter(
|
|
62
|
-
(pkg) => normalizedPatterns.some(
|
|
63
|
-
(pattern) => matchesPattern(pkg, pattern, monorepoRoot)
|
|
64
|
-
)
|
|
65
|
-
);
|
|
66
|
-
};
|
|
67
|
-
export async function prepareAllUpdateCandidates(filter, ignore, cwd) {
|
|
68
|
-
const workingDir = cwd ? path.resolve(cwd) : process.cwd();
|
|
69
|
-
let packageJsonFiles = [];
|
|
70
|
-
let isMonorepo = false;
|
|
71
|
-
let monorepoRoot = null;
|
|
72
|
-
try {
|
|
73
|
-
const rootPkg = await readPackageJSON(workingDir);
|
|
74
|
-
if (rootPkg && hasWorkspaces(rootPkg)) {
|
|
75
|
-
isMonorepo = true;
|
|
76
|
-
monorepoRoot = workingDir;
|
|
77
|
-
const patterns = getWorkspacePatterns(rootPkg);
|
|
78
|
-
for (const pattern of patterns) {
|
|
79
|
-
const glob = new Glob(path.join(pattern, "package.json"));
|
|
80
|
-
for await (const file of glob.scan({
|
|
81
|
-
cwd: workingDir,
|
|
82
|
-
onlyFiles: true
|
|
83
|
-
})) {
|
|
84
|
-
packageJsonFiles.push(path.resolve(workingDir, file));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (filter || ignore) {
|
|
88
|
-
const packageInfos = [];
|
|
89
|
-
for (const pkgPath of packageJsonFiles) {
|
|
90
|
-
try {
|
|
91
|
-
const pkg = await readPackageJSON(path.dirname(pkgPath));
|
|
92
|
-
if (pkg?.name) {
|
|
93
|
-
packageInfos.push({
|
|
94
|
-
name: pkg.name,
|
|
95
|
-
path: path.dirname(pkgPath)
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
} catch {
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (filter) {
|
|
102
|
-
const filtered = filterPackagesByPatterns(
|
|
103
|
-
packageInfos,
|
|
104
|
-
filter,
|
|
105
|
-
monorepoRoot || void 0
|
|
106
|
-
);
|
|
107
|
-
packageJsonFiles = filtered.map(
|
|
108
|
-
(info) => path.join(info.path, "package.json")
|
|
109
|
-
);
|
|
110
|
-
if (filtered.length > 0) {
|
|
111
|
-
const patterns2 = normalizePatterns(filter);
|
|
112
|
-
logger.debug(
|
|
113
|
-
` Filtering to ${filtered.length} packages matching: ${patterns2.join(", ")}`
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
} else if (ignore) {
|
|
117
|
-
const filtered = packageInfos.filter((pkg) => {
|
|
118
|
-
const ignorePatterns = Array.isArray(ignore) ? ignore : [ignore];
|
|
119
|
-
const normalizedIgnorePatterns = ignorePatterns.flatMap(
|
|
120
|
-
(p) => typeof p === "string" ? p.split(",").map((s) => s.trim()) : [p]
|
|
121
|
-
);
|
|
122
|
-
return !normalizedIgnorePatterns.some(
|
|
123
|
-
(pattern) => matchesPattern(pkg, pattern, monorepoRoot || void 0)
|
|
124
|
-
);
|
|
125
|
-
});
|
|
126
|
-
packageJsonFiles = filtered.map(
|
|
127
|
-
(info) => path.join(info.path, "package.json")
|
|
128
|
-
);
|
|
129
|
-
const ignoredCount = packageInfos.length - filtered.length;
|
|
130
|
-
if (ignoredCount > 0) {
|
|
131
|
-
const patterns2 = normalizePatterns(ignore);
|
|
132
|
-
logger.debug(
|
|
133
|
-
` Ignoring ${ignoredCount} packages matching: ${patterns2.join(", ")}`
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
} catch {
|
|
140
|
-
}
|
|
141
|
-
if (!isMonorepo) {
|
|
142
|
-
const glob = new Glob("**/package.json");
|
|
143
|
-
const allFiles = [];
|
|
144
|
-
for await (const file of glob.scan({
|
|
145
|
-
cwd: workingDir,
|
|
146
|
-
onlyFiles: true
|
|
147
|
-
})) {
|
|
148
|
-
const fullPath = path.resolve(workingDir, file);
|
|
149
|
-
if (!file.includes("node_modules") && !file.includes("dist") && !file.includes("build") && !file.includes(".git") && !file.includes("coverage") && !file.includes(".next") && !file.includes("out") && !file.includes("target") && !file.includes(".turbo")) {
|
|
150
|
-
allFiles.push(fullPath);
|
|
151
|
-
}
|
|
23
|
+
export async function prepareAllUpdateCandidates() {
|
|
24
|
+
const glob = new Glob("**/package.json");
|
|
25
|
+
const packageJsonFiles = [];
|
|
26
|
+
for await (const file of glob.scan({
|
|
27
|
+
cwd: process.cwd(),
|
|
28
|
+
onlyFiles: true
|
|
29
|
+
})) {
|
|
30
|
+
const fullPath = path.resolve(process.cwd(), file);
|
|
31
|
+
if (!file.includes("node_modules") && !file.includes("dist") && !file.includes("build") && !file.includes(".git") && !file.includes("coverage") && !file.includes(".next") && !file.includes("out") && !file.includes("target") && !file.includes(".turbo")) {
|
|
32
|
+
packageJsonFiles.push(fullPath);
|
|
152
33
|
}
|
|
153
|
-
packageJsonFiles = allFiles;
|
|
154
34
|
}
|
|
155
35
|
if (packageJsonFiles.length === 0) {
|
|
156
36
|
logger.warn("No package.json files found");
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@reliverse/dler",
|
|
3
3
|
"description": "@reliverse/dler is a framework which helps TypeScript and JavaScript developers create their libraries and CLI tools. It provides ready-to-use primitives, so you don't have to write them from scratch.",
|
|
4
4
|
"author": "reliverse",
|
|
5
|
-
"version": "2.1.
|
|
5
|
+
"version": "2.1.20",
|
|
6
6
|
"private": false,
|
|
7
7
|
"type": "module",
|
|
8
8
|
"bin": {
|
|
@@ -13,16 +13,16 @@
|
|
|
13
13
|
"semver": "^7.7.3",
|
|
14
14
|
"lookpath": "^1.2.3",
|
|
15
15
|
"clipboardy": "^5.0.0",
|
|
16
|
-
"@reliverse/dler-publish": "2.1.
|
|
17
|
-
"@reliverse/dler-bump": "2.1.
|
|
18
|
-
"@reliverse/dler-build": "2.1.
|
|
19
|
-
"@reliverse/dler-logger": "2.1.
|
|
20
|
-
"@reliverse/dler-matcher": "2.1.
|
|
21
|
-
"@reliverse/dler-launcher": "2.1.
|
|
22
|
-
"@reliverse/dler-prompt": "2.1.
|
|
23
|
-
"@reliverse/dler-helpers": "2.1.
|
|
24
|
-
"@reliverse/dler-pkg-tsc": "2.1.
|
|
25
|
-
"@reliverse/dler-mapper": "2.1.
|
|
16
|
+
"@reliverse/dler-publish": "^2.1.18",
|
|
17
|
+
"@reliverse/dler-bump": "^2.1.18",
|
|
18
|
+
"@reliverse/dler-build": "^2.1.18",
|
|
19
|
+
"@reliverse/dler-logger": "^2.1.18",
|
|
20
|
+
"@reliverse/dler-matcher": "^2.1.18",
|
|
21
|
+
"@reliverse/dler-launcher": "^2.1.18",
|
|
22
|
+
"@reliverse/dler-prompt": "^2.1.18",
|
|
23
|
+
"@reliverse/dler-helpers": "^2.1.18",
|
|
24
|
+
"@reliverse/dler-pkg-tsc": "^2.1.18",
|
|
25
|
+
"@reliverse/dler-mapper": "^2.1.18"
|
|
26
26
|
},
|
|
27
27
|
"keywords": [
|
|
28
28
|
"dler",
|