syncpack 8.4.11 → 9.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 +195 -109
- package/dist/bin-fix-mismatches/fix-mismatches-cli.d.ts +3 -0
- package/dist/bin-fix-mismatches/fix-mismatches-cli.js +10 -0
- package/dist/bin-fix-mismatches/fix-mismatches.d.ts +2 -3
- package/dist/bin-fix-mismatches/fix-mismatches.js +46 -58
- package/dist/bin-fix-mismatches/index.js +12 -22
- package/dist/bin-format/format-cli.d.ts +3 -0
- package/dist/bin-format/format-cli.js +10 -0
- package/dist/bin-format/format.d.ts +2 -3
- package/dist/bin-format/format.js +10 -11
- package/dist/bin-format/index.js +5 -4
- package/dist/bin-lint-semver-ranges/index.js +13 -23
- package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.d.ts +3 -0
- package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.js +10 -0
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +2 -3
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +72 -27
- package/dist/bin-list/index.js +12 -22
- package/dist/bin-list/list-cli.d.ts +3 -0
- package/dist/bin-list/list-cli.js +10 -0
- package/dist/bin-list/list.d.ts +2 -3
- package/dist/bin-list/list.js +60 -35
- package/dist/bin-list-mismatches/index.js +12 -22
- package/dist/bin-list-mismatches/list-mismatches-cli.d.ts +3 -0
- package/dist/bin-list-mismatches/list-mismatches-cli.js +10 -0
- package/dist/bin-list-mismatches/list-mismatches.d.ts +2 -3
- package/dist/bin-list-mismatches/list-mismatches.js +75 -73
- package/dist/bin-set-semver-ranges/index.js +13 -23
- package/dist/bin-set-semver-ranges/set-semver-ranges-cli.d.ts +3 -0
- package/dist/bin-set-semver-ranges/set-semver-ranges-cli.js +10 -0
- package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +2 -3
- package/dist/bin-set-semver-ranges/set-semver-ranges.js +5 -29
- package/dist/constants.d.ts +31 -21
- package/dist/constants.js +27 -42
- package/dist/get-context/$R.d.ts +13 -0
- package/dist/get-context/$R.js +56 -0
- package/dist/get-context/get-all-instances.d.ts +3 -0
- package/dist/get-context/get-all-instances.js +8 -0
- package/dist/get-context/get-config/get-core-types.d.ts +36 -0
- package/dist/get-context/get-config/get-core-types.js +68 -0
- package/dist/get-context/get-config/get-custom-types.d.ts +4 -0
- package/dist/get-context/get-config/get-custom-types.js +28 -0
- package/dist/get-context/get-config/get-enabled-types.d.ts +4 -0
- package/dist/get-context/get-config/get-enabled-types.js +19 -0
- package/dist/get-context/get-config/index.d.ts +7 -0
- package/dist/get-context/get-config/index.js +115 -0
- package/dist/get-context/get-config/path-strategy/index.d.ts +8 -0
- package/dist/get-context/get-config/path-strategy/index.js +18 -0
- package/dist/get-context/get-config/path-strategy/lib/get-non-empty-string-prop.d.ts +4 -0
- package/dist/get-context/get-config/path-strategy/lib/get-non-empty-string-prop.js +11 -0
- package/dist/get-context/get-config/path-strategy/name-and-version-props.d.ts +2 -0
- package/dist/get-context/get-config/path-strategy/name-and-version-props.js +66 -0
- package/dist/get-context/get-config/path-strategy/name-and-version-string.d.ts +2 -0
- package/dist/get-context/get-config/path-strategy/name-and-version-string.js +60 -0
- package/dist/get-context/get-config/path-strategy/types.d.ts +15 -0
- package/dist/{types/index.js → get-context/get-config/path-strategy/types.js} +0 -0
- package/dist/get-context/get-config/path-strategy/version-string.d.ts +2 -0
- package/dist/get-context/get-config/path-strategy/version-string.js +60 -0
- package/dist/get-context/get-config/path-strategy/versions-by-name.d.ts +2 -0
- package/dist/get-context/get-config/path-strategy/versions-by-name.js +39 -0
- package/dist/get-context/get-config/schema/base-group.d.ts +6 -0
- package/dist/get-context/get-config/schema/base-group.js +9 -0
- package/dist/get-context/get-config/schema/index.d.ts +1276 -0
- package/dist/get-context/get-config/schema/index.js +104 -0
- package/dist/get-context/get-config/schema/paths.d.ts +89 -0
- package/dist/get-context/get-config/schema/paths.js +33 -0
- package/dist/get-context/get-config/schema/semver-group.d.ts +101 -0
- package/dist/get-context/get-config/schema/semver-group.js +50 -0
- package/dist/get-context/get-config/schema/semver-range.d.ts +2 -0
- package/dist/get-context/get-config/schema/semver-range.js +16 -0
- package/dist/get-context/get-config/schema/version-group.d.ts +151 -0
- package/dist/get-context/get-config/schema/version-group.js +31 -0
- package/dist/get-context/get-groups/get-semver-groups.d.ts +4 -0
- package/dist/get-context/get-groups/get-semver-groups.js +46 -0
- package/dist/get-context/get-groups/get-version-groups.d.ts +4 -0
- package/dist/get-context/get-groups/get-version-groups.js +72 -0
- package/dist/get-context/get-groups/semver-group/index.d.ts +29 -0
- package/dist/get-context/get-groups/semver-group/index.js +56 -0
- package/dist/get-context/get-groups/version-group/index.d.ts +29 -0
- package/dist/get-context/get-groups/version-group/index.js +23 -0
- package/dist/{bin-fix-mismatches/get-expected-version → get-context/get-groups/version-group/instance-group}/get-highest-version.d.ts +0 -0
- package/dist/{bin-fix-mismatches/get-expected-version → get-context/get-groups/version-group/instance-group}/get-highest-version.js +10 -10
- package/dist/get-context/get-groups/version-group/instance-group/index.d.ts +34 -0
- package/dist/get-context/get-groups/version-group/instance-group/index.js +80 -0
- package/dist/{lib/get-input/get-wrappers → get-context/get-package-json-files}/get-file-paths.d.ts +7 -5
- package/dist/get-context/get-package-json-files/get-file-paths.js +40 -0
- package/dist/get-context/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +4 -0
- package/dist/get-context/get-package-json-files/get-patterns/get-lerna-patterns.js +19 -0
- package/dist/get-context/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +4 -0
- package/dist/get-context/get-package-json-files/get-patterns/get-pnpm-patterns.js +23 -0
- package/dist/get-context/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +4 -0
- package/dist/get-context/get-package-json-files/get-patterns/get-yarn-patterns.js +20 -0
- package/dist/get-context/get-package-json-files/get-patterns/index.d.ts +11 -0
- package/dist/get-context/get-package-json-files/get-patterns/index.js +70 -0
- package/dist/get-context/get-package-json-files/get-patterns/lib/get-array-of-strings.d.ts +1 -0
- package/dist/get-context/get-package-json-files/get-patterns/lib/get-array-of-strings.js +10 -0
- package/dist/get-context/get-package-json-files/get-patterns/props.d.ts +6 -0
- package/dist/get-context/get-package-json-files/get-patterns/props.js +48 -0
- package/dist/get-context/get-package-json-files/get-patterns/read-json-safe.d.ts +12 -0
- package/dist/get-context/get-package-json-files/get-patterns/read-json-safe.js +20 -0
- package/dist/get-context/get-package-json-files/get-patterns/read-yaml-safe.d.ts +4 -0
- package/dist/get-context/get-package-json-files/get-patterns/read-yaml-safe.js +11 -0
- package/dist/get-context/get-package-json-files/index.d.ts +5 -0
- package/dist/get-context/get-package-json-files/index.js +16 -0
- package/dist/get-context/get-package-json-files/package-json-file/index.d.ts +51 -0
- package/dist/get-context/get-package-json-files/package-json-file/index.js +85 -0
- package/dist/get-context/get-package-json-files/package-json-file/instance.d.ts +25 -0
- package/dist/get-context/get-package-json-files/package-json-file/instance.js +62 -0
- package/dist/get-context/index.d.ts +21 -0
- package/dist/get-context/index.js +38 -0
- package/dist/lib/disk.d.ts +11 -11
- package/dist/lib/disk.js +0 -1
- package/dist/lib/error.d.ts +12 -0
- package/dist/lib/error.js +43 -0
- package/dist/lib/exit-if-invalid.d.ts +2 -0
- package/dist/lib/exit-if-invalid.js +10 -0
- package/dist/lib/is-semver.d.ts +2 -2
- package/dist/lib/is-semver.js +9 -9
- package/dist/lib/log.d.ts +6 -0
- package/dist/lib/log.js +40 -1
- package/dist/lib/newlines.d.ts +6 -0
- package/dist/lib/newlines.js +24 -0
- package/dist/lib/set-semver-range.d.ts +2 -2
- package/dist/lib/set-semver-range.js +1 -1
- package/dist/lib/show-help-on-error.d.ts +2 -0
- package/dist/lib/show-help-on-error.js +16 -0
- package/dist/lib/write-if-changed.d.ts +2 -0
- package/dist/lib/{get-input/get-wrappers/get-patterns/read-yaml-safe.js → write-if-changed.js} +14 -8
- package/dist/option.d.ts +6 -11
- package/dist/option.js +10 -18
- package/dist/types.d.ts +88 -0
- package/dist/{types/semver-group.js → types.js} +0 -0
- package/package.json +24 -23
- package/dist/bin-fix-mismatches/get-expected-version/get-pinned-version.d.ts +0 -2
- package/dist/bin-fix-mismatches/get-expected-version/get-pinned-version.js +0 -7
- package/dist/bin-fix-mismatches/get-expected-version/get-workspace-version.d.ts +0 -6
- package/dist/bin-fix-mismatches/get-expected-version/get-workspace-version.js +0 -17
- package/dist/bin-fix-mismatches/get-expected-version/index.d.ts +0 -3
- package/dist/bin-fix-mismatches/get-expected-version/index.js +0 -27
- package/dist/bin-lint-semver-ranges/list-semver-group-mismatches.d.ts +0 -2
- package/dist/bin-lint-semver-ranges/list-semver-group-mismatches.js +0 -12
- package/dist/bin-list/list-version-groups.d.ts +0 -10
- package/dist/bin-list/list-version-groups.js +0 -52
- package/dist/lib/collect.d.ts +0 -1
- package/dist/lib/collect.js +0 -7
- package/dist/lib/get-input/get-config.d.ts +0 -12
- package/dist/lib/get-input/get-config.js +0 -135
- package/dist/lib/get-input/get-instances.d.ts +0 -29
- package/dist/lib/get-input/get-instances.js +0 -172
- package/dist/lib/get-input/get-wrappers/get-file-paths.js +0 -50
- package/dist/lib/get-input/get-wrappers/get-patterns/get-lerna-patterns.d.ts +0 -3
- package/dist/lib/get-input/get-wrappers/get-patterns/get-lerna-patterns.js +0 -40
- package/dist/lib/get-input/get-wrappers/get-patterns/get-pnpm-patterns.d.ts +0 -3
- package/dist/lib/get-input/get-wrappers/get-patterns/get-pnpm-patterns.js +0 -45
- package/dist/lib/get-input/get-wrappers/get-patterns/get-yarn-patterns.d.ts +0 -3
- package/dist/lib/get-input/get-wrappers/get-patterns/get-yarn-patterns.js +0 -46
- package/dist/lib/get-input/get-wrappers/get-patterns/index.d.ts +0 -10
- package/dist/lib/get-input/get-wrappers/get-patterns/index.js +0 -79
- package/dist/lib/get-input/get-wrappers/get-patterns/props.d.ts +0 -7
- package/dist/lib/get-input/get-wrappers/get-patterns/props.js +0 -43
- package/dist/lib/get-input/get-wrappers/get-patterns/read-json-safe.d.ts +0 -4
- package/dist/lib/get-input/get-wrappers/get-patterns/read-json-safe.js +0 -41
- package/dist/lib/get-input/get-wrappers/get-patterns/read-yaml-safe.d.ts +0 -3
- package/dist/lib/get-input/get-wrappers/index.d.ts +0 -38
- package/dist/lib/get-input/get-wrappers/index.js +0 -40
- package/dist/lib/get-input/get-wrappers/readonly.d.ts +0 -4
- package/dist/lib/get-input/get-wrappers/readonly.js +0 -10
- package/dist/lib/get-input/get-wrappers/tap.d.ts +0 -15
- package/dist/lib/get-input/get-wrappers/tap.js +0 -56
- package/dist/lib/get-input/get-wrappers/try-catch.d.ts +0 -5
- package/dist/lib/get-input/get-wrappers/try-catch.js +0 -13
- package/dist/lib/get-input/index.d.ts +0 -20
- package/dist/lib/get-input/index.js +0 -32
- package/dist/lib/group-by.d.ts +0 -1
- package/dist/lib/group-by.js +0 -11
- package/dist/lib/write-if-changed/index.d.ts +0 -10
- package/dist/lib/write-if-changed/index.js +0 -25
- package/dist/lib/write-if-changed/set-newlines.d.ts +0 -4
- package/dist/lib/write-if-changed/set-newlines.js +0 -24
- package/dist/types/index.d.ts +0 -77
- package/dist/types/semver-group.d.ts +0 -30
- package/dist/types/version-group.d.ts +0 -35
- package/dist/types/version-group.js +0 -2
package/README.md
CHANGED
|
@@ -5,23 +5,29 @@
|
|
|
5
5
|
|
|
6
6
|
[](https://www.npmjs.com/package/syncpack)
|
|
7
7
|
[](https://www.npmjs.com/package/syncpack)
|
|
8
|
-
[](https://github.com/JamieMason/syncpack/actions)
|
|
8
|
+
[](https://github.com/JamieMason/syncpack/actions)
|
|
9
9
|
[](https://codeclimate.com/github/JamieMason/syncpack/maintainability)
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Installation
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
npm install --
|
|
14
|
+
npm install --save-dev syncpack
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
> ### Breaking Changes
|
|
18
|
+
>
|
|
19
|
+
> Version [9.0.0](https://github.com/JamieMason/syncpack/releases/tag/9.0.0)
|
|
20
|
+
> required some breaking API changes to add support for a new
|
|
21
|
+
> [`customTypes`](#customtypes) feature, but they are very simple to make.
|
|
22
|
+
>
|
|
23
|
+
> ### GitHub Action
|
|
24
|
+
>
|
|
25
|
+
> As of May 2022 there is now a
|
|
26
|
+
> [Syncpack GitHub Action](https://github.com/marketplace/actions/syncpack-synchronise-monorepo-dependency-versions).
|
|
27
|
+
> It is new and less stable than syncpack itself, but please give it a try and
|
|
28
|
+
> [give your feedback](https://github.com/JamieMason/syncpack-github-action/issues/new).
|
|
23
29
|
|
|
24
|
-
##
|
|
30
|
+
## Commands
|
|
25
31
|
|
|
26
32
|
### fix-mismatches
|
|
27
33
|
|
|
@@ -37,15 +43,9 @@ See [`versionGroups`](#versiongroups) if you have advanced requirements.
|
|
|
37
43
|
```
|
|
38
44
|
-s, --source [pattern] glob pattern for package.json files to read from
|
|
39
45
|
-f, --filter [pattern] only include dependencies whose name matches this regex
|
|
40
|
-
-
|
|
41
|
-
-d, --dev include devDependencies
|
|
42
|
-
-P, --peer include peerDependencies
|
|
43
|
-
-R, --resolutions include resolutions (yarn)
|
|
44
|
-
-o, --overrides include overrides (npm)
|
|
45
|
-
-O, --pnpmOverrides include overrides (pnpm)
|
|
46
|
-
-w, --workspace include locally developed package versions
|
|
47
|
-
-i, --indent [value] override indentation. defaults to " "
|
|
46
|
+
-t, --types <names> only include dependencies matching these types (eg. types=dev,prod,myCustomType)
|
|
48
47
|
-c, --config <path> path to a syncpack config file
|
|
48
|
+
-i, --indent [value] override indentation. defaults to " "
|
|
49
49
|
-h, --help display help for command
|
|
50
50
|
```
|
|
51
51
|
|
|
@@ -64,9 +64,9 @@ syncpack fix-mismatches --source "apps/*/package.json" --source "core/*/package.
|
|
|
64
64
|
# uses dependencies regular expression defined by --filter when provided
|
|
65
65
|
syncpack fix-mismatches --filter "typescript|tslint"
|
|
66
66
|
# only inspect "devDependencies"
|
|
67
|
-
syncpack fix-mismatches --dev
|
|
67
|
+
syncpack fix-mismatches --types dev
|
|
68
68
|
# only inspect "devDependencies" and "peerDependencies"
|
|
69
|
-
syncpack fix-mismatches --dev
|
|
69
|
+
syncpack fix-mismatches --types dev,peer
|
|
70
70
|
# indent package.json with 4 spaces instead of 2
|
|
71
71
|
syncpack fix-mismatches --indent " "
|
|
72
72
|
```
|
|
@@ -85,8 +85,8 @@ Shorthand properties are used where available, such as the `"repository"` and
|
|
|
85
85
|
|
|
86
86
|
```
|
|
87
87
|
-s, --source [pattern] glob pattern for package.json files to read from
|
|
88
|
-
-i, --indent [value] override indentation. defaults to " "
|
|
89
88
|
-c, --config <path> path to a syncpack config file
|
|
89
|
+
-i, --indent [value] override indentation. defaults to " "
|
|
90
90
|
-h, --help display help for command
|
|
91
91
|
```
|
|
92
92
|
|
|
@@ -120,16 +120,10 @@ See [`semverGroups`](#semvergroups) if you have advanced requirements.
|
|
|
120
120
|
|
|
121
121
|
```
|
|
122
122
|
-s, --source [pattern] glob pattern for package.json files to read from
|
|
123
|
-
-p, --prod include dependencies
|
|
124
|
-
-d, --dev include devDependencies
|
|
125
|
-
-P, --peer include peerDependencies
|
|
126
|
-
-R, --resolutions include resolutions (yarn)
|
|
127
|
-
-o, --overrides include overrides (npm)
|
|
128
|
-
-O, --pnpmOverrides include overrides (pnpm)
|
|
129
123
|
-f, --filter [pattern] only include dependencies whose name matches this regex
|
|
130
124
|
-r, --semver-range <range> see supported ranges below. defaults to ""
|
|
131
125
|
-c, --config <path> path to a syncpack config file
|
|
132
|
-
-
|
|
126
|
+
-t, --types <names> only include dependencies matching these types (eg. types=dev,prod,myCustomType)
|
|
133
127
|
-h, --help display help for command
|
|
134
128
|
```
|
|
135
129
|
|
|
@@ -150,9 +144,9 @@ syncpack lint-semver-ranges --filter "typescript|tslint"
|
|
|
150
144
|
# use ~ range instead of default ""
|
|
151
145
|
syncpack lint-semver-ranges --semver-range ~
|
|
152
146
|
# use ~ range in "devDependencies"
|
|
153
|
-
syncpack lint-semver-ranges --dev --semver-range ~
|
|
147
|
+
syncpack lint-semver-ranges --types dev --semver-range ~
|
|
154
148
|
# use ~ range in "devDependencies" and "peerDependencies"
|
|
155
|
-
syncpack lint-semver-ranges --dev
|
|
149
|
+
syncpack lint-semver-ranges --types dev,peer semver-range ~
|
|
156
150
|
```
|
|
157
151
|
|
|
158
152
|
</details>
|
|
@@ -166,15 +160,9 @@ List all dependencies required by your packages.
|
|
|
166
160
|
|
|
167
161
|
```
|
|
168
162
|
-s, --source [pattern] glob pattern for package.json files to read from
|
|
169
|
-
-p, --prod include dependencies
|
|
170
|
-
-d, --dev include devDependencies
|
|
171
|
-
-P, --peer include peerDependencies
|
|
172
|
-
-R, --resolutions include resolutions (yarn)
|
|
173
|
-
-o, --overrides include overrides (npm)
|
|
174
|
-
-O, --pnpmOverrides include overrides (pnpm)
|
|
175
163
|
-f, --filter [pattern] only include dependencies whose name matches this regex
|
|
176
164
|
-c, --config <path> path to a syncpack config file
|
|
177
|
-
-
|
|
165
|
+
-t, --types <names> only include dependencies matching these types (eg. types=dev,prod,myCustomType)
|
|
178
166
|
-h, --help display help for command
|
|
179
167
|
```
|
|
180
168
|
|
|
@@ -193,9 +181,9 @@ syncpack list --source "apps/*/package.json" --source "core/*/package.json"
|
|
|
193
181
|
# uses dependencies regular expression defined by --filter when provided
|
|
194
182
|
syncpack list --filter "typescript|tslint"
|
|
195
183
|
# only inspect "devDependencies"
|
|
196
|
-
syncpack list --dev
|
|
184
|
+
syncpack list --types dev
|
|
197
185
|
# only inspect "devDependencies" and "peerDependencies"
|
|
198
|
-
syncpack list --dev
|
|
186
|
+
syncpack list --types dev,peer
|
|
199
187
|
```
|
|
200
188
|
|
|
201
189
|
</details>
|
|
@@ -212,15 +200,9 @@ See [`versionGroups`](#versiongroups) if you have advanced requirements.
|
|
|
212
200
|
|
|
213
201
|
```
|
|
214
202
|
-s, --source [pattern] glob pattern for package.json files to read from
|
|
215
|
-
-p, --prod include dependencies
|
|
216
|
-
-d, --dev include devDependencies
|
|
217
|
-
-P, --peer include peerDependencies
|
|
218
|
-
-R, --resolutions include resolutions (yarn)
|
|
219
|
-
-o, --overrides include overrides (npm)
|
|
220
|
-
-O, --pnpmOverrides include overrides (pnpm)
|
|
221
203
|
-f, --filter [pattern] only include dependencies whose name matches this regex
|
|
222
204
|
-c, --config <path> path to a syncpack config file
|
|
223
|
-
-
|
|
205
|
+
-t, --types <names> only include dependencies matching these types (eg. types=dev,prod,myCustomType)
|
|
224
206
|
-h, --help display help for command
|
|
225
207
|
```
|
|
226
208
|
|
|
@@ -239,9 +221,9 @@ syncpack list-mismatches --source "apps/*/package.json" --source "core/*/package
|
|
|
239
221
|
# uses dependencies regular expression defined by --filter when provided
|
|
240
222
|
syncpack list-mismatches --filter "typescript|tslint"
|
|
241
223
|
# only inspect "devDependencies"
|
|
242
|
-
syncpack list-mismatches --dev
|
|
224
|
+
syncpack list-mismatches --types dev
|
|
243
225
|
# only inspect "devDependencies" and "peerDependencies"
|
|
244
|
-
syncpack list-mismatches --dev
|
|
226
|
+
syncpack list-mismatches --types dev,peer
|
|
245
227
|
```
|
|
246
228
|
|
|
247
229
|
</details>
|
|
@@ -258,18 +240,11 @@ See [`semverGroups`](#semvergroups) if you have advanced requirements.
|
|
|
258
240
|
|
|
259
241
|
```
|
|
260
242
|
-s, --source [pattern] glob pattern for package.json files to read from
|
|
261
|
-
-r, --semver-range <range> see supported ranges below. defaults to ""
|
|
262
243
|
-f, --filter [pattern] only include dependencies whose name matches this regex
|
|
263
|
-
-p, --prod include dependencies
|
|
264
|
-
-d, --dev include devDependencies
|
|
265
|
-
-P, --peer include peerDependencies
|
|
266
|
-
-R, --resolutions include resolutions (yarn)
|
|
267
|
-
-o, --overrides include overrides (npm)
|
|
268
|
-
-O, --pnpmOverrides include overrides (pnpm)
|
|
269
|
-
-w, --workspace include locally developed package versions
|
|
270
|
-
-i, --indent [value] override indentation. defaults to " "
|
|
271
|
-
-r, --semver-range <range> see supported ranges below. defaults to ""
|
|
272
244
|
-c, --config <path> path to a syncpack config file
|
|
245
|
+
-r, --semver-range <range> see supported ranges below. defaults to ""
|
|
246
|
+
-t, --types <names> only include dependencies matching these types (eg. types=dev,prod,myCustomType)
|
|
247
|
+
-i, --indent [value] override indentation. defaults to " "
|
|
273
248
|
-h, --help display help for command
|
|
274
249
|
```
|
|
275
250
|
|
|
@@ -290,16 +265,16 @@ syncpack set-semver-ranges --filter "typescript|tslint"
|
|
|
290
265
|
# use ~ range instead of default ""
|
|
291
266
|
syncpack set-semver-ranges --semver-range ~
|
|
292
267
|
# set ~ range in "devDependencies"
|
|
293
|
-
syncpack set-semver-ranges --dev --semver-range ~
|
|
268
|
+
syncpack set-semver-ranges --types dev --semver-range ~
|
|
294
269
|
# set ~ range in "devDependencies" and "peerDependencies"
|
|
295
|
-
syncpack set-semver-ranges --dev
|
|
270
|
+
syncpack set-semver-ranges --types dev,peer --semver-range ~
|
|
296
271
|
# indent package.json with 4 spaces instead of 2
|
|
297
272
|
syncpack set-semver-ranges --indent " "
|
|
298
273
|
```
|
|
299
274
|
|
|
300
275
|
</details>
|
|
301
276
|
|
|
302
|
-
##
|
|
277
|
+
## Configuration File
|
|
303
278
|
|
|
304
279
|
Creating a configuration file is optional, syncpack will search up the directory
|
|
305
280
|
tree in the following places:
|
|
@@ -319,15 +294,17 @@ configuration file (if present), you can use the `--config` option.
|
|
|
319
294
|
|
|
320
295
|
```json
|
|
321
296
|
{
|
|
322
|
-
"
|
|
297
|
+
"dependencyTypes": [
|
|
298
|
+
"dev",
|
|
299
|
+
"overrides",
|
|
300
|
+
"peer",
|
|
301
|
+
"pnpmOverrides",
|
|
302
|
+
"prod",
|
|
303
|
+
"resolutions",
|
|
304
|
+
"workspace"
|
|
305
|
+
],
|
|
323
306
|
"filter": ".",
|
|
324
307
|
"indent": " ",
|
|
325
|
-
"overrides": true,
|
|
326
|
-
"peer": true,
|
|
327
|
-
"pnpmOverrides": true,
|
|
328
|
-
"prod": true,
|
|
329
|
-
"resolutions": true,
|
|
330
|
-
"workspace": true,
|
|
331
308
|
"semverGroups": [],
|
|
332
309
|
"semverRange": "",
|
|
333
310
|
"sortAz": [
|
|
@@ -345,42 +322,84 @@ configuration file (if present), you can use the `--config` option.
|
|
|
345
322
|
}
|
|
346
323
|
```
|
|
347
324
|
|
|
348
|
-
###
|
|
325
|
+
### Configuration Options
|
|
349
326
|
|
|
350
|
-
|
|
351
|
-
`resolutions` (Yarn), `overrides` (npm), `pnpmOverrides` (pnpm), and the
|
|
352
|
-
`version` property of the package.json files of your own packages developed
|
|
353
|
-
within your `workspace` respectively.
|
|
327
|
+
#### `--type` / `dependencyTypes`
|
|
354
328
|
|
|
355
|
-
All of
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
or `--workspace` then only the options you provide will be searched.
|
|
329
|
+
All of the properties in the table below are searched by default, but can be
|
|
330
|
+
disabled via the `dependencyTypes` property of your config file or the `--types`
|
|
331
|
+
option on the command line.
|
|
359
332
|
|
|
360
|
-
|
|
333
|
+
- If `dependencyTypes` is unset or is an empty array, nothing is disabled.
|
|
334
|
+
- If `dependencyTypes` is set, only those listed will be enabled.
|
|
335
|
+
- If `--types` is set, it takes precedence and only its values will be used.
|
|
361
336
|
|
|
362
|
-
|
|
363
|
-
|
|
337
|
+
In this example, only dependencies found in `dependencies` and `devDependencies`
|
|
338
|
+
will be inspected by syncpack.
|
|
364
339
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
340
|
+
```json
|
|
341
|
+
{
|
|
342
|
+
"dependencyTypes": ["dev", "prod"]
|
|
343
|
+
}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
| Value | Property in package.json |
|
|
347
|
+
| --------------- | ------------------------ |
|
|
348
|
+
| `dev` | `.devDependencies` |
|
|
349
|
+
| `overrides` | `.overrides` |
|
|
350
|
+
| `peer` | `.peerDependencies` |
|
|
351
|
+
| `pnpmOverrides` | `.pnpm.overrides` |
|
|
352
|
+
| `prod` | `.dependencies` |
|
|
353
|
+
| `resolutions` | `.resolutions` |
|
|
354
|
+
| `workspace` | `.version` |
|
|
355
|
+
|
|
356
|
+
This list can be extended with your own `customTypes`, so you can find and fix
|
|
357
|
+
versions found in other parts of your package.json files.
|
|
358
|
+
|
|
359
|
+
##### The `workspace` type
|
|
360
|
+
|
|
361
|
+
This option synchronises the versions of your dependencies with the `version`
|
|
362
|
+
properties of the package.json files developed in your own local
|
|
363
|
+
workspace/project, when they relate to eachother.
|
|
364
|
+
|
|
365
|
+
Take this example, `@your-repo/fetch` is developed in your repo:
|
|
366
|
+
|
|
367
|
+
```jsonc
|
|
368
|
+
{
|
|
369
|
+
"name": "@your-repo/fetch",
|
|
370
|
+
"version": "1.0.2"
|
|
371
|
+
// ...rest of the file
|
|
372
|
+
}
|
|
373
|
+
```
|
|
371
374
|
|
|
372
|
-
|
|
375
|
+
and another package developed in your repo depends on it:
|
|
376
|
+
|
|
377
|
+
```jsonc
|
|
378
|
+
{
|
|
379
|
+
"name": "@your-repo/ui",
|
|
380
|
+
// ...other stuff
|
|
381
|
+
"dependencies": {
|
|
382
|
+
"@your-repo/fetch": "0.9.4"
|
|
383
|
+
}
|
|
384
|
+
// ...rest of the file
|
|
385
|
+
}
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
When `workspace` is enabled, syncpack will fix `@your-repo/ui` so it depends on
|
|
389
|
+
version `1.0.2` of `@your-repo/fetch`.
|
|
390
|
+
|
|
391
|
+
#### `indent`
|
|
373
392
|
|
|
374
393
|
The character(s) to be used to indent your package.json files when writing to
|
|
375
394
|
disk.
|
|
376
395
|
|
|
377
|
-
|
|
396
|
+
#### `semverRange`
|
|
378
397
|
|
|
379
398
|
Defaulted to `""` to ensure that exact dependency versions are used instead of
|
|
380
399
|
loose ranges, but this can be overridden in your config file or via the
|
|
381
400
|
`--semver-range` command line option.
|
|
382
401
|
|
|
383
|
-
|
|
402
|
+
##### Supported Ranges
|
|
384
403
|
|
|
385
404
|
```
|
|
386
405
|
< <1.4.2
|
|
@@ -393,27 +412,82 @@ loose ranges, but this can be overridden in your config file or via the
|
|
|
393
412
|
* *
|
|
394
413
|
```
|
|
395
414
|
|
|
396
|
-
|
|
415
|
+
#### `sortAz`
|
|
397
416
|
|
|
398
417
|
When using the `format` command, determines which fields within package.json
|
|
399
418
|
files should be sorted alphabetically. When the value is an Object, its keys are
|
|
400
419
|
sorted alphabetically. When the value is an Array, its values are sorted
|
|
401
420
|
alphabetically. There is no equivalent CLI Option for this configuration.
|
|
402
421
|
|
|
403
|
-
|
|
422
|
+
#### `sortFirst`
|
|
404
423
|
|
|
405
424
|
When using the `format` command, determines which fields within package.json
|
|
406
425
|
files should appear at the top, and in what order. There is no equivalent CLI
|
|
407
426
|
Option for this configuration.
|
|
408
427
|
|
|
409
|
-
|
|
428
|
+
#### `source`
|
|
410
429
|
|
|
411
430
|
Defaults to `["package.json", "packages/*/package.json"]` to match most Projects
|
|
412
431
|
using Lerna or Yarn Workspaces, but this can be overridden in your config file
|
|
413
432
|
or via multiple `--source` command line options. Supports any patterns supported
|
|
414
433
|
by [glob](https://github.com/isaacs/node-glob).
|
|
415
434
|
|
|
416
|
-
|
|
435
|
+
#### `customTypes`
|
|
436
|
+
|
|
437
|
+
Extend syncpack to find and fix versions in your packages which are not
|
|
438
|
+
available by default. Custom types behave like any other dependency, so can be
|
|
439
|
+
included in [versionGroups](#versiongroups) or [semverGroups](#semvergroups)
|
|
440
|
+
etc.
|
|
441
|
+
|
|
442
|
+
The example below adds support for synchronising versions found in:
|
|
443
|
+
|
|
444
|
+
1. The
|
|
445
|
+
[`engines`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#engines)
|
|
446
|
+
object.
|
|
447
|
+
1. The [`packageManager`](https://nodejs.org/api/packages.html#packagemanager)
|
|
448
|
+
string.
|
|
449
|
+
|
|
450
|
+
```json
|
|
451
|
+
{
|
|
452
|
+
"customTypes": {
|
|
453
|
+
"engines": {
|
|
454
|
+
"path": "engines",
|
|
455
|
+
"strategy": "versionsByName"
|
|
456
|
+
},
|
|
457
|
+
"packageManager": {
|
|
458
|
+
"path": "packageManager",
|
|
459
|
+
"strategy": "name@version"
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
##### `customTypes[name]`
|
|
466
|
+
|
|
467
|
+
The key of each custom type is its name, this can be used in the following
|
|
468
|
+
places to toggle when it is enabled:
|
|
469
|
+
|
|
470
|
+
1. [`--type` / `dependencyTypes`](#--type--dependencytypes).
|
|
471
|
+
1. [`versionGroup.dependencyTypes`](#versiongroupdependencytypes)
|
|
472
|
+
1. [`semverGroup.dependencyTypes`](#semvergroupdependencytypes)
|
|
473
|
+
|
|
474
|
+
##### `customTypes[name].path`
|
|
475
|
+
|
|
476
|
+
Where the version can be found in each package.json file, such as `engines`,
|
|
477
|
+
`packageManager` or `some.nested.property`.
|
|
478
|
+
|
|
479
|
+
##### `customTypes[name].strategy`
|
|
480
|
+
|
|
481
|
+
A strategy defines how syncpack needs to read and write dependency names and
|
|
482
|
+
versions, there are 3 to choose from:
|
|
483
|
+
|
|
484
|
+
| Name | Example |
|
|
485
|
+
| ---------------- | -------------------------------------- |
|
|
486
|
+
| `name@version` | `pnpm@7.27.0` |
|
|
487
|
+
| `version` | `12.4.2` |
|
|
488
|
+
| `versionsByName` | `{"pnpm":"7.27.0", "semver": "7.3.8"}` |
|
|
489
|
+
|
|
490
|
+
#### `versionGroups`
|
|
417
491
|
|
|
418
492
|
The most common use case for version groups is when some of the packages in your
|
|
419
493
|
Monorepo are considered alpha (or legacy). Since those packages are much further
|
|
@@ -468,7 +542,7 @@ to apply to an entire package:
|
|
|
468
542
|
|
|
469
543
|
See [`semverGroups`](#semverGroups) for more examples, they work the same way.
|
|
470
544
|
|
|
471
|
-
|
|
545
|
+
##### `versionGroup.dependencies`
|
|
472
546
|
|
|
473
547
|
Required. An array of minimatch glob patterns which should match the key of
|
|
474
548
|
dependencies defined in your package.json files.
|
|
@@ -479,7 +553,7 @@ dependencies defined in your package.json files.
|
|
|
479
553
|
| `["@aws-sdk/**"]` | Any dependency with the scope `@aws-sdk` |
|
|
480
554
|
| `["react", "react-dom"]` | Specific dependencies by name |
|
|
481
555
|
|
|
482
|
-
|
|
556
|
+
##### `versionGroup.packages`
|
|
483
557
|
|
|
484
558
|
Required. An array of minimatch glob patterns which should match the `name`
|
|
485
559
|
property of packages developed within your monorepo.
|
|
@@ -490,7 +564,7 @@ property of packages developed within your monorepo.
|
|
|
490
564
|
| `["@my-repo/**"]` | Any package with the scope `@my-repo` |
|
|
491
565
|
| `["my-server", "my-client"]` | Specific packages by name |
|
|
492
566
|
|
|
493
|
-
|
|
567
|
+
##### `versionGroup.dependencyTypes`
|
|
494
568
|
|
|
495
569
|
Optional. If set, will result in only the dependency types included in that
|
|
496
570
|
array being considered a match for this version group.
|
|
@@ -511,7 +585,7 @@ used in `dependencies` or `devDependencies`.
|
|
|
511
585
|
}
|
|
512
586
|
```
|
|
513
587
|
|
|
514
|
-
|
|
588
|
+
##### `versionGroup.isBanned`
|
|
515
589
|
|
|
516
590
|
Remove dependencies which you've decided should never be allowed.
|
|
517
591
|
|
|
@@ -527,7 +601,7 @@ Remove dependencies which you've decided should never be allowed.
|
|
|
527
601
|
}
|
|
528
602
|
```
|
|
529
603
|
|
|
530
|
-
|
|
604
|
+
##### `versionGroup.isIgnored`
|
|
531
605
|
|
|
532
606
|
Have syncpack ignore these dependencies completely.
|
|
533
607
|
|
|
@@ -543,7 +617,7 @@ Have syncpack ignore these dependencies completely.
|
|
|
543
617
|
}
|
|
544
618
|
```
|
|
545
619
|
|
|
546
|
-
|
|
620
|
+
##### `versionGroup.pinVersion`
|
|
547
621
|
|
|
548
622
|
Pin the version of all dependencies in this group to match this specific version
|
|
549
623
|
you've defined.
|
|
@@ -560,13 +634,13 @@ you've defined.
|
|
|
560
634
|
}
|
|
561
635
|
```
|
|
562
636
|
|
|
563
|
-
|
|
637
|
+
#### `semverGroups`
|
|
564
638
|
|
|
565
639
|
Allow some packages to have different semver range rules to the rest of your
|
|
566
640
|
monorepo. Each dependency can only belong to one semver group, the first rule
|
|
567
641
|
which matches a given dependency and package will apply.
|
|
568
642
|
|
|
569
|
-
|
|
643
|
+
##### Example use cases
|
|
570
644
|
|
|
571
645
|
1: Every dependency of `@myrepo/library` should have a semver range of `~`,
|
|
572
646
|
regardless of what the rest of the monorepo uses:
|
|
@@ -648,28 +722,40 @@ and peer dependencies can be broader.
|
|
|
648
722
|
}
|
|
649
723
|
```
|
|
650
724
|
|
|
651
|
-
|
|
725
|
+
##### `semverGroup.range`
|
|
652
726
|
|
|
653
727
|
Which of the [Supported Ranges](#supported-ranges) this group should use.
|
|
654
728
|
|
|
655
|
-
|
|
729
|
+
##### `semverGroup.dependencies`
|
|
656
730
|
|
|
657
731
|
Works the same as [`versionGroup.dependencies`](#versiongroupdependencies).
|
|
658
732
|
|
|
659
|
-
|
|
733
|
+
##### `semverGroup.isIgnored`
|
|
660
734
|
|
|
661
735
|
Works the same as [`versionGroup.isIgnored`](#versiongroupisignored).
|
|
662
736
|
|
|
663
|
-
|
|
737
|
+
##### `semverGroup.packages`
|
|
664
738
|
|
|
665
739
|
Works the same as [`versionGroup.packages`](#versiongrouppackages).
|
|
666
740
|
|
|
667
|
-
|
|
741
|
+
##### `semverGroup.dependencyTypes`
|
|
668
742
|
|
|
669
743
|
Works the same as
|
|
670
744
|
[`versionGroup.dependencyTypes`](#versiongroupdependencytypes).
|
|
671
745
|
|
|
672
|
-
|
|
746
|
+
#### `filter`
|
|
747
|
+
|
|
748
|
+
A string which will be passed to `new RegExp()` to match against package names
|
|
749
|
+
that should be included.
|
|
750
|
+
|
|
751
|
+
> ⚠️ `filter` was originally intended as a convenience to be used from the
|
|
752
|
+
> command line to filter the output of `syncpack list`, **it is not recommended
|
|
753
|
+
> to add this to your config file to manage your project more generally**.
|
|
754
|
+
>
|
|
755
|
+
> Instead use [`versionGroups`](#versiongroups) and/or
|
|
756
|
+
> [`semverGroups`](#semvergroups).
|
|
757
|
+
|
|
758
|
+
## Resolving Packages
|
|
673
759
|
|
|
674
760
|
package.json files are resolved in this order of precendence:
|
|
675
761
|
|
|
@@ -687,7 +773,7 @@ package.json files are resolved in this order of precendence:
|
|
|
687
773
|
> 👋 Always add quotes around your `--source` patterns
|
|
688
774
|
> [[more info](https://github.com/JamieMason/syncpack/issues/66#issuecomment-1146011769)].
|
|
689
775
|
|
|
690
|
-
##
|
|
776
|
+
## Getting Help
|
|
691
777
|
|
|
692
778
|
Get help with issues by creating a [Bug Report] or discuss ideas by opening a
|
|
693
779
|
[Feature Request].
|
|
@@ -697,7 +783,7 @@ Get help with issues by creating a [Bug Report] or discuss ideas by opening a
|
|
|
697
783
|
[feature request]:
|
|
698
784
|
https://github.com/JamieMason/syncpack/issues/new?template=feature_request.md
|
|
699
785
|
|
|
700
|
-
##
|
|
786
|
+
## Other Projects
|
|
701
787
|
|
|
702
788
|
If you find my Open Source projects useful, please share them ❤️
|
|
703
789
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.fixMismatchesCli = void 0;
|
|
4
|
+
var get_context_1 = require("../get-context");
|
|
5
|
+
var write_if_changed_1 = require("../lib/write-if-changed");
|
|
6
|
+
var fix_mismatches_1 = require("./fix-mismatches");
|
|
7
|
+
function fixMismatchesCli(input, disk) {
|
|
8
|
+
(0, write_if_changed_1.writeIfChanged)((0, fix_mismatches_1.fixMismatches)((0, get_context_1.getContext)(input, disk)));
|
|
9
|
+
}
|
|
10
|
+
exports.fixMismatchesCli = fixMismatchesCli;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare function fixMismatches(input: ProgramInput, disk: Disk): void;
|
|
1
|
+
import type { Syncpack } from '../types';
|
|
2
|
+
export declare function fixMismatches(ctx: Syncpack.Ctx): Syncpack.Ctx;
|