syncpack 13.0.0 → 13.0.2

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 CHANGED
@@ -6,6 +6,9 @@
6
6
  <br><a href="https://jamiemason.github.io/syncpack">https://jamiemason.github.io/syncpack</a>
7
7
  </p>
8
8
 
9
+ > [!TIP]
10
+ > 🦀 A Rust rewrite is available to try at [`npm install -g syncpack@alpha`](https://github.com/JamieMason/syncpack/releases?q=14.0.0)
11
+
9
12
  ## Installation
10
13
 
11
14
  ```bash
@@ -1,7 +1,5 @@
1
1
  import chalk from 'chalk-template';
2
2
  import { Context, Effect, flow, pipe } from 'effect';
3
- import { isObject } from 'tightrope/guard/is-object.js';
4
- import { isUndefined } from 'tightrope/guard/is-undefined.js';
5
3
  import { logIgnoredSize } from '../bin-lint-semver-ranges/lint-semver-ranges.js';
6
4
  import { logMissingLocalVersion, logMissingSnappedToMismatch, logSameRangeMismatch, logUnsupportedMismatch, } from '../bin-list-mismatches/list-mismatches.js';
7
5
  import { CliConfigTag } from '../config/tag.js';
@@ -73,7 +71,6 @@ export function fixMismatches({ io, cli, errorHandlers = defaultErrorHandlers, }
73
71
  }
74
72
  index++;
75
73
  }
76
- yield* $(removeEmptyObjects(ctx));
77
74
  return ctx;
78
75
  }), Effect.flatMap(writeIfChanged), Effect.catchTags({
79
76
  WriteFileError: flow(errorHandlers.WriteFileError, Effect.map(() => {
@@ -85,22 +82,6 @@ export function fixMismatches({ io, cli, errorHandlers = defaultErrorHandlers, }
85
82
  export function fixMismatch(report) {
86
83
  return report.fixable.instance.write(report._tag === 'Banned' ? DELETE : report.fixable.raw);
87
84
  }
88
- /** Remove empty objects such as `{"dependencies": {}}` left after deleting */
89
- function removeEmptyObjects(ctx) {
90
- return Effect.sync(() => {
91
- ctx.packageJsonFiles.forEach(file => {
92
- const contents = file.jsonFile.contents;
93
- Object.keys(contents).forEach(key => {
94
- const value = contents[key];
95
- if (isObject(value) &&
96
- value &&
97
- Object.values(value).every(isUndefined)) {
98
- delete contents[key];
99
- }
100
- });
101
- });
102
- });
103
- }
104
85
  export function logAlreadyValidSize(amount) {
105
86
  const msg = chalk `${padStart(amount)} {green ${ICON.tick}} already valid`;
106
87
  return Effect.logInfo(msg);
@@ -28,7 +28,7 @@ export function prompt({ io, cli, errorHandlers = defaultErrorHandlers, }) {
28
28
  unfixable.push(report);
29
29
  }
30
30
  }
31
- if (unfixable.length) {
31
+ if (unfixable.length > 0) {
32
32
  unfixableCount += unfixable.length;
33
33
  Effect.logInfo(getVersionGroupHeader({ group, index }));
34
34
  yield* $(askForNextVersion(groupReport, unfixable));
@@ -95,7 +95,9 @@ export interface RcConfig {
95
95
  /** @see https://jamiemason.github.io/syncpack/integrations/json-schema */
96
96
  $schema?: string;
97
97
  /** @see https://jamiemason.github.io/syncpack/config/custom-types */
98
- customTypes: Record<string, CustomTypeConfig.Any>;
98
+ customTypes: {
99
+ [name: string]: CustomTypeConfig.Any;
100
+ };
99
101
  /** @see https://jamiemason.github.io/syncpack/config/dependency-types */
100
102
  dependencyTypes: DependencyType[];
101
103
  /** @see https://jamiemason.github.io/syncpack/config/filter */
package/dist/schema.json CHANGED
@@ -2,6 +2,77 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "additionalProperties": false,
4
4
  "definitions": {
5
+ "CustomTypeConfig.Any": {
6
+ "anyOf": [
7
+ {
8
+ "$ref": "#/definitions/CustomTypeConfig.NameAndVersionProps"
9
+ },
10
+ {
11
+ "$ref": "#/definitions/CustomTypeConfig.NamedVersionString"
12
+ },
13
+ {
14
+ "$ref": "#/definitions/CustomTypeConfig.UnnamedVersionString"
15
+ },
16
+ {
17
+ "$ref": "#/definitions/CustomTypeConfig.VersionsByName"
18
+ }
19
+ ]
20
+ },
21
+ "CustomTypeConfig.NameAndVersionProps": {
22
+ "additionalProperties": false,
23
+ "properties": {
24
+ "namePath": {
25
+ "type": "string"
26
+ },
27
+ "path": {
28
+ "type": "string"
29
+ },
30
+ "strategy": {
31
+ "const": "name~version",
32
+ "type": "string"
33
+ }
34
+ },
35
+ "type": "object"
36
+ },
37
+ "CustomTypeConfig.NamedVersionString": {
38
+ "additionalProperties": false,
39
+ "properties": {
40
+ "path": {
41
+ "type": "string"
42
+ },
43
+ "strategy": {
44
+ "const": "name@version",
45
+ "type": "string"
46
+ }
47
+ },
48
+ "type": "object"
49
+ },
50
+ "CustomTypeConfig.UnnamedVersionString": {
51
+ "additionalProperties": false,
52
+ "properties": {
53
+ "path": {
54
+ "type": "string"
55
+ },
56
+ "strategy": {
57
+ "const": "version",
58
+ "type": "string"
59
+ }
60
+ },
61
+ "type": "object"
62
+ },
63
+ "CustomTypeConfig.VersionsByName": {
64
+ "additionalProperties": false,
65
+ "properties": {
66
+ "path": {
67
+ "type": "string"
68
+ },
69
+ "strategy": {
70
+ "const": "versionsByName",
71
+ "type": "string"
72
+ }
73
+ },
74
+ "type": "object"
75
+ },
5
76
  "DependencyType": {
6
77
  "anyOf": [
7
78
  {
@@ -30,10 +101,6 @@
30
101
  }
31
102
  ]
32
103
  },
33
- "Record<string,CustomTypeConfig.Any>": {
34
- "additionalProperties": false,
35
- "type": "object"
36
- },
37
104
  "SemverGroupConfig.Any": {
38
105
  "anyOf": [
39
106
  {
@@ -464,7 +531,10 @@
464
531
  "type": "string"
465
532
  },
466
533
  "customTypes": {
467
- "$ref": "#/definitions/Record<string,CustomTypeConfig.Any>"
534
+ "additionalProperties": {
535
+ "$ref": "#/definitions/CustomTypeConfig.Any"
536
+ },
537
+ "type": "object"
468
538
  },
469
539
  "dependencyTypes": {
470
540
  "items": {
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": "13.0.0",
4
+ "version": "13.0.2",
5
5
  "author": "Jamie Mason <jamie@foldleft.io> (https://github.com/JamieMason)",
6
6
  "bin": {
7
7
  "syncpack": "dist/bin.js",
@@ -26,6 +26,7 @@
26
26
  "Aparajita Fishman (https://github.com/aparajita)",
27
27
  "Artur Wierzbicki (https://github.com/ArturWierzbicki)",
28
28
  "Chase Holdren (https://github.com/chaseholdren)",
29
+ "Chase Tamnoon (https://github.com/chase-tamnoon)",
29
30
  "Daniel Silva (https://github.com/dsilvasc)",
30
31
  "Elchin Valiyev (https://github.com/evaliyev)",
31
32
  "Gabriel Pereira Woitechen (https://github.com/wtchnm)",
@@ -45,43 +46,43 @@
45
46
  "Tom Fletcher (https://github.com/tom-fletcher)"
46
47
  ],
47
48
  "dependencies": {
48
- "@effect/schema": "0.71.1",
49
- "chalk": "5.3.0",
49
+ "@effect/schema": "0.75.5",
50
+ "chalk": "5.4.1",
50
51
  "chalk-template": "1.1.0",
51
- "commander": "12.1.0",
52
+ "commander": "13.1.0",
52
53
  "cosmiconfig": "9.0.0",
53
- "effect": "3.6.5",
54
+ "effect": "3.12.7",
54
55
  "enquirer": "2.4.1",
55
- "fast-check": "3.21.0",
56
+ "fast-check": "3.23.2",
56
57
  "globby": "14.0.2",
57
58
  "jsonc-parser": "3.3.1",
58
59
  "minimatch": "9.0.5",
59
- "npm-package-arg": "11.0.3",
60
- "ora": "8.0.1",
60
+ "npm-package-arg": "12.0.1",
61
+ "ora": "8.2.0",
61
62
  "prompts": "2.4.2",
62
63
  "read-yaml-file": "2.1.0",
63
- "semver": "7.6.3",
64
+ "semver": "7.7.0",
64
65
  "tightrope": "0.2.0",
65
66
  "ts-toolbelt": "9.6.0"
66
67
  },
67
68
  "devDependencies": {
68
- "@biomejs/biome": "1.8.3",
69
- "@release-it/conventional-changelog": "8.0.1",
69
+ "@biomejs/biome": "1.9.4",
70
+ "@release-it/conventional-changelog": "8.0.2",
70
71
  "@tsconfig/node18": "18.2.4",
71
- "@types/node": "22.5.0",
72
+ "@types/node": "22.13.0",
72
73
  "@types/npm-package-arg": "6.1.4",
73
74
  "@types/prompts": "2.4.9",
74
75
  "@types/semver": "7.5.8",
75
- "@vitest/coverage-v8": "2.0.5",
76
- "auto-changelog": "2.4.0",
77
- "memfs": "4.11.1",
78
- "prettier": "3.3.3",
76
+ "@vitest/coverage-v8": "3.0.4",
77
+ "auto-changelog": "2.5.0",
78
+ "memfs": "4.17.0",
79
+ "prettier": "3.4.2",
79
80
  "prettier-plugin-astro": "0.14.1",
80
- "release-it": "17.6.0",
81
+ "release-it": "17.11.0",
81
82
  "ts-node": "10.9.2",
82
- "typescript": "5.5.4",
83
+ "typescript": "5.7.3",
83
84
  "typescript-json-schema": "0.65.1",
84
- "vitest": "2.0.5"
85
+ "vitest": "3.0.4"
85
86
  },
86
87
  "engines": {
87
88
  "node": ">=18.18.0"