syncpack 14.3.0 → 15.0.0
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/README.md +19 -2
- package/index.cjs +13 -2
- package/package.json +9 -9
- package/schema.json +5 -0
- package/syncpack.d.ts +8 -0
package/README.md
CHANGED
|
@@ -6,7 +6,20 @@
|
|
|
6
6
|
<br><a href="https://syncpack.dev">https://syncpack.dev</a>
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
|
-
Syncpack is used by [AWS](https://github.com/aws/aws-pdk), [Cloudflare](https://github.com/cloudflare/mcp-server-cloudflare), [DataDog](https://github.com/DataDog/datadog-ci), [Electron](https://github.com/electron/forge), [GoDaddy](https://github.com/godaddy/gasket), [
|
|
9
|
+
Syncpack is used by [AWS](https://github.com/aws/aws-pdk), [Cloudflare](https://github.com/cloudflare/mcp-server-cloudflare), [DataDog](https://github.com/DataDog/datadog-ci), [Electron](https://github.com/electron/forge), [GoDaddy](https://github.com/godaddy/gasket), [Lottie](https://github.com/LottieFiles/dotlottie-web), [Microsoft](https://github.com/microsoft/fluentui), [PostHog](https://github.com/PostHog/posthog), [Qwik](https://github.com/QwikDev/qwik), [Raycast](https://github.com/raycast/extensions), [Salesforce](https://github.com/SalesforceCommerceCloud/pwa-kit), [TopTal](https://github.com/toptal/picasso), [Vercel](https://github.com/vercel/vercel), [VoltAgent](https://github.com/VoltAgent/voltagent), [WooCommerce](https://github.com/woocommerce/woocommerce) and others.
|
|
10
|
+
|
|
11
|
+
Some of the things it can do are:
|
|
12
|
+
|
|
13
|
+
- Find and fix dependency version mismatches.
|
|
14
|
+
- Enforce a single version policy, or create partitions with separate policies.
|
|
15
|
+
- Find and bump outdated versions from the npm registry.
|
|
16
|
+
- Ensure some dependencies always remain pinned at a specific version.
|
|
17
|
+
- Ban some dependencies from being used: anywhere, or in specific places.
|
|
18
|
+
- Define rules for where exact or loose semver ranges should be used, including in catalogs.
|
|
19
|
+
- Assign packages as the source of truth for specific dependencies' versions.
|
|
20
|
+
- Sort and format package.json files consistently.
|
|
21
|
+
- Auto-migrate all or parts of your repo to [pnpm catalogs](https://pnpm.io/catalogs) or [bun catalogs](https://bun.sh/docs/pm/catalogs).
|
|
22
|
+
- Bump outdated versions in catalogs.
|
|
10
23
|
|
|
11
24
|
## Installation
|
|
12
25
|
|
|
@@ -71,7 +84,7 @@ syncpack fix -h
|
|
|
71
84
|
|
|
72
85
|
### [update](https://syncpack.dev/command/update)
|
|
73
86
|
|
|
74
|
-
Update packages to the latest versions from the npm registry, wherever they are in your monorepo
|
|
87
|
+
Update packages to the latest versions from the npm registry, wherever they are in your monorepo, including pnpm catalog entries in `pnpm-workspace.yaml`.<br/>Semver range preferences are preserved when updating.
|
|
75
88
|
|
|
76
89
|
#### Examples
|
|
77
90
|
|
|
@@ -86,6 +99,10 @@ syncpack update --target patch
|
|
|
86
99
|
syncpack update --check --source 'packages/pingu/package.json'
|
|
87
100
|
# Update dependencies and devDependencies in the whole monorepo
|
|
88
101
|
syncpack update --dependency-types dev,prod
|
|
102
|
+
# Update only pnpm catalog entries in pnpm-workspace.yaml
|
|
103
|
+
syncpack update --dependency-types pnpmCatalog
|
|
104
|
+
# Update only the named pnpm catalog 'react18'
|
|
105
|
+
syncpack update --dependency-types 'pnpmCatalog:react18'
|
|
89
106
|
# Only update dependencies with a semver range specifier (^, ~, etc.)
|
|
90
107
|
syncpack update --specifier-types range
|
|
91
108
|
# Update dependencies where name exactly matches 'react'
|
package/index.cjs
CHANGED
|
@@ -6,7 +6,8 @@ const { dirname, join } = require('node:path');
|
|
|
6
6
|
const args = process.argv.slice(2);
|
|
7
7
|
const arch = process.arch;
|
|
8
8
|
const [os, extension] = ['win32', 'cygwin'].includes(process.platform) ? ['windows', '.exe'] : [process.platform, ''];
|
|
9
|
-
const
|
|
9
|
+
const libc = isMusl() ? '-musl' : '';
|
|
10
|
+
const optionalDep = `syncpack-${os}-${arch}${libc}`;
|
|
10
11
|
const binaryName = `syncpack${extension}`;
|
|
11
12
|
|
|
12
13
|
const pathToBinary = resolveBinaryPath();
|
|
@@ -19,6 +20,16 @@ process.exit(
|
|
|
19
20
|
}).status || 0,
|
|
20
21
|
);
|
|
21
22
|
|
|
23
|
+
function isMusl() {
|
|
24
|
+
try {
|
|
25
|
+
if (process.platform !== 'linux') return false;
|
|
26
|
+
const { sharedObjects } = process.report.getReport();
|
|
27
|
+
return sharedObjects.some(obj => obj.includes('musl'));
|
|
28
|
+
} catch (_) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
22
33
|
function resolveBinaryPath() {
|
|
23
34
|
// Strategy 1: Resolve via package.json for pnpm Plug'n'Play
|
|
24
35
|
try {
|
|
@@ -33,6 +44,6 @@ function resolveBinaryPath() {
|
|
|
33
44
|
} catch (_) {}
|
|
34
45
|
|
|
35
46
|
throw new Error(
|
|
36
|
-
`Failed to resolve binary for ${os}-${arch}. Please ensure ${optionalDep} is installed as an optional dependency.`,
|
|
47
|
+
`Failed to resolve binary for ${os}-${arch}${libc}. Please ensure ${optionalDep} is installed as an optional dependency.`,
|
|
37
48
|
);
|
|
38
49
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "syncpack",
|
|
3
3
|
"description": "Consistent dependency versions in large JavaScript Monorepos",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "15.0.0",
|
|
5
5
|
"author": "Jamie Mason <jamie@foldleft.io> (https://github.com/JamieMason)",
|
|
6
6
|
"bugs": "https://github.com/JamieMason/syncpack/issues",
|
|
7
7
|
"contributors": [
|
|
@@ -73,14 +73,14 @@
|
|
|
73
73
|
"syncpack": "./index.cjs"
|
|
74
74
|
},
|
|
75
75
|
"optionalDependencies": {
|
|
76
|
-
"syncpack-linux-x64": "
|
|
77
|
-
"syncpack-linux-x64-musl": "
|
|
78
|
-
"syncpack-linux-arm64": "
|
|
79
|
-
"syncpack-linux-arm64-musl": "
|
|
80
|
-
"syncpack-darwin-x64": "
|
|
81
|
-
"syncpack-darwin-arm64": "
|
|
82
|
-
"syncpack-windows-x64": "
|
|
83
|
-
"syncpack-windows-arm64": "
|
|
76
|
+
"syncpack-linux-x64": "15.0.0",
|
|
77
|
+
"syncpack-linux-x64-musl": "15.0.0",
|
|
78
|
+
"syncpack-linux-arm64": "15.0.0",
|
|
79
|
+
"syncpack-linux-arm64-musl": "15.0.0",
|
|
80
|
+
"syncpack-darwin-x64": "15.0.0",
|
|
81
|
+
"syncpack-darwin-arm64": "15.0.0",
|
|
82
|
+
"syncpack-windows-x64": "15.0.0",
|
|
83
|
+
"syncpack-windows-arm64": "15.0.0"
|
|
84
84
|
},
|
|
85
85
|
"types": "./syncpack.d.ts"
|
|
86
86
|
}
|
package/schema.json
CHANGED
|
@@ -218,6 +218,11 @@
|
|
|
218
218
|
"see": "https://syncpack.dev/config/max-concurrent-requests",
|
|
219
219
|
"type": "number"
|
|
220
220
|
},
|
|
221
|
+
"minimumReleaseAge": {
|
|
222
|
+
"description": "Skip dependency updates published less than this many minutes ago. `0` disables the filter. When omitted, the value from the project's `pnpm-workspace.yaml` is used; if neither is set, defaults to `1440` (one day). Setting it here always overrides the pnpm value.",
|
|
223
|
+
"see": "https://pnpm.io/settings#minimumreleaseage",
|
|
224
|
+
"type": "number"
|
|
225
|
+
},
|
|
221
226
|
"semverGroups": {
|
|
222
227
|
"items": {
|
|
223
228
|
"$ref": "#/definitions/SemverGroup.Any"
|
package/syncpack.d.ts
CHANGED
|
@@ -15,6 +15,14 @@ export interface RcFile {
|
|
|
15
15
|
indent?: string;
|
|
16
16
|
/** @see https://syncpack.dev/config/max-concurrent-requests */
|
|
17
17
|
maxConcurrentRequests?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Skip dependency updates published less than this many minutes ago.
|
|
20
|
+
* `0` disables the filter. When omitted, the value from the project's
|
|
21
|
+
* `pnpm-workspace.yaml` is used; if neither is set, defaults to `1440`
|
|
22
|
+
* (one day). Setting it here always overrides the pnpm value.
|
|
23
|
+
* @see https://pnpm.io/settings#minimumreleaseage
|
|
24
|
+
*/
|
|
25
|
+
minimumReleaseAge?: number;
|
|
18
26
|
/** @see https://syncpack.dev/semver-groups */
|
|
19
27
|
semverGroups?: SemverGroup.Any[];
|
|
20
28
|
/** @see https://syncpack.dev/config/sort-az */
|