syncpack 12.4.0 → 13.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/dist/bin-fix-mismatches/fix-mismatches.d.ts +2 -2
- package/dist/bin-fix-mismatches/fix-mismatches.js +13 -8
- package/dist/bin-fix-mismatches/index.js +1 -32
- package/dist/bin-format/format.d.ts +2 -2
- package/dist/bin-format/format.js +7 -5
- package/dist/bin-format/index.js +1 -26
- package/dist/bin-lint/index.js +1 -22
- package/dist/bin-lint/lint.d.ts +1 -1
- package/dist/bin-lint/lint.js +23 -23
- package/dist/bin-lint-semver-ranges/index.js +1 -36
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +2 -2
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +5 -4
- package/dist/bin-list/index.js +1 -31
- package/dist/bin-list/list.d.ts +1 -1
- package/dist/bin-list/list.js +9 -5
- package/dist/bin-list-mismatches/index.js +1 -31
- package/dist/bin-list-mismatches/list-mismatches.d.ts +2 -2
- package/dist/bin-list-mismatches/list-mismatches.js +15 -9
- package/dist/bin-prompt/index.js +1 -33
- package/dist/bin-prompt/prompt.d.ts +2 -2
- package/dist/bin-prompt/prompt.js +13 -11
- package/dist/bin-set-semver-ranges/index.js +1 -38
- package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +2 -2
- package/dist/bin-set-semver-ranges/set-semver-ranges.js +8 -5
- package/dist/bin-update/effects.js +43 -28
- package/dist/bin-update/index.js +1 -31
- package/dist/bin-update/update.d.ts +1 -1
- package/dist/bin-update/update.js +4 -4
- package/dist/bin.js +3 -3
- package/dist/config/get-custom-types.js +20 -13
- package/dist/config/get-enabled-types.js +27 -12
- package/dist/config/get-sort-exports.js +2 -1
- package/dist/error-handlers/default-error-handlers.js +2 -2
- package/dist/get-context/index.d.ts +2 -2
- package/dist/get-context/index.js +1 -1
- package/dist/get-instances/index.js +6 -6
- package/dist/get-instances/instance.js +6 -2
- package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +4 -2
- package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +1 -1
- package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +2 -2
- package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +2 -2
- package/dist/get-package-json-files/get-patterns/index.js +3 -3
- package/dist/get-package-json-files/index.js +1 -1
- package/dist/get-package-json-files/package-json-file.d.ts +7 -0
- package/dist/get-package-json-files/package-json-file.js +18 -3
- package/dist/guards/can-add-to-group.js +15 -9
- package/dist/guards/is-semver.js +3 -1
- package/dist/io/ask-for-choice.js +3 -3
- package/dist/io/ask-for-input.js +2 -2
- package/dist/io/exit-if-invalid.js +1 -1
- package/dist/io/glob-sync.js +1 -1
- package/dist/io/index.d.ts +1 -1
- package/dist/io/index.js +1 -1
- package/dist/io/read-config-file.js +5 -3
- package/dist/io/read-file-sync.js +1 -1
- package/dist/io/read-json-file-sync.d.ts +2 -1
- package/dist/io/read-json-file-sync.js +9 -5
- package/dist/io/read-yaml-file-sync.js +1 -1
- package/dist/io/{to-json.d.ts → to-formatted-json.d.ts} +1 -1
- package/dist/io/{to-json.js → to-formatted-json.js} +11 -8
- package/dist/io/write-file-sync.js +2 -2
- package/dist/io/write-if-changed.js +3 -4
- package/dist/lib/format-repository-url.js +8 -5
- package/dist/lib/get-group-header.js +3 -1
- package/dist/lib/get.js +20 -12
- package/dist/lib/ring-buffer.js +1 -1
- package/dist/lib/set-semver-range.js +8 -4
- package/dist/lib/with-logger.js +1 -2
- package/dist/option.js +4 -1
- package/dist/semver-group/create-semver-groups.js +7 -3
- package/dist/semver-group/disabled.js +1 -1
- package/dist/semver-group/filtered-out.js +1 -1
- package/dist/semver-group/ignored.js +1 -1
- package/dist/semver-group/with-range.js +3 -3
- package/dist/specifier/alias.js +3 -2
- package/dist/specifier/exact.js +1 -1
- package/dist/specifier/hosted-git.js +5 -3
- package/dist/specifier/index.js +27 -15
- package/dist/specifier/latest.js +1 -1
- package/dist/specifier/lib/parse-specifier.js +3 -1
- package/dist/specifier/range.js +1 -1
- package/dist/specifier/workspace-protocol.js +2 -1
- package/dist/strategy/lib/get-non-empty-string-prop.js +1 -1
- package/dist/strategy/name-and-version-props.js +7 -7
- package/dist/strategy/named-version-string.js +11 -8
- package/dist/strategy/unnamed-version-string.js +6 -6
- package/dist/strategy/versions-by-name.js +4 -2
- package/dist/version-group/banned.js +1 -1
- package/dist/version-group/create-version-groups.js +11 -7
- package/dist/version-group/filtered-out.js +1 -1
- package/dist/version-group/ignored.js +1 -1
- package/dist/version-group/lib/get-preferred-version.js +22 -13
- package/dist/version-group/lib/get-range-score.js +3 -1
- package/dist/version-group/pinned.js +2 -2
- package/dist/version-group/same-range.js +6 -6
- package/dist/version-group/snapped-to.js +7 -5
- package/dist/version-group/standard.js +19 -16
- package/package.json +22 -25
|
@@ -14,13 +14,13 @@ export class PinnedVersionGroup extends Data.TaggedClass('Pinned') {
|
|
|
14
14
|
return true;
|
|
15
15
|
}
|
|
16
16
|
inspectAll() {
|
|
17
|
-
return Effect.all(Object.entries(groupBy('name', this.instances)).map(([name, instances]) => pipe(instances, Effect.forEach(
|
|
17
|
+
return Effect.all(Object.entries(groupBy('name', this.instances)).map(([name, instances]) => pipe(instances, Effect.forEach(instance => pipe(Effect.succeed(Specifier.create(instance, this.config.pinVersion)), Effect.map(expected => instance.rawSpecifier.raw === expected.raw
|
|
18
18
|
? // ✓ pinned takes precedence over any semver group
|
|
19
19
|
// ✓ current version matches expected
|
|
20
20
|
new Report.Valid(expected)
|
|
21
21
|
: // ✓ pinned takes precedence over any semver group
|
|
22
22
|
// ✘ current version mismatches expected
|
|
23
23
|
// ✓ is a mismatch we can auto-fix
|
|
24
|
-
new Report.PinnedMismatch(expected)))), Effect.map(
|
|
24
|
+
new Report.PinnedMismatch(expected)))), Effect.map(reports => ({ name, reports })))));
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -17,7 +17,7 @@ export class SameRangeVersionGroup extends Data.TaggedClass('SameRange') {
|
|
|
17
17
|
return true;
|
|
18
18
|
}
|
|
19
19
|
inspectAll() {
|
|
20
|
-
return Effect.all(Object.entries(groupBy('name', this.instances)).flatMap(([name, instances]) => pipe(instances, Effect.partition(
|
|
20
|
+
return Effect.all(Object.entries(groupBy('name', this.instances)).flatMap(([name, instances]) => pipe(instances, Effect.partition(instance => pipe(Effect.succeed(Specifier.create(instance, instance.rawSpecifier.raw)), Effect.flatMap(specifier => pipe(specifier.getSemver(), Effect.matchEffect({
|
|
21
21
|
onFailure: () => Effect.fail(
|
|
22
22
|
// ✘ expected version is not semver
|
|
23
23
|
// ✘ is a mismatch we can't auto-fix
|
|
@@ -28,7 +28,7 @@ export class SameRangeVersionGroup extends Data.TaggedClass('SameRange') {
|
|
|
28
28
|
// ✘ expected version is not fixable by its semver group
|
|
29
29
|
// ✘ is a mismatch we can't auto-fix
|
|
30
30
|
new Report.UnsupportedMismatch(specifier.instance)),
|
|
31
|
-
onSuccess:
|
|
31
|
+
onSuccess: valid => specifier.instance.rawSpecifier.raw === valid.raw
|
|
32
32
|
? Effect.succeed(
|
|
33
33
|
// ✓ expected version is semver
|
|
34
34
|
// ✓ expected version matches its semver group
|
|
@@ -42,7 +42,7 @@ export class SameRangeVersionGroup extends Data.TaggedClass('SameRange') {
|
|
|
42
42
|
new Report.SemverRangeMismatch(valid)),
|
|
43
43
|
})),
|
|
44
44
|
}))))), Effect.map(([allMismatches, allMatches]) => allMismatches.length === 0
|
|
45
|
-
? allMatches.map(
|
|
45
|
+
? allMatches.map(thisMatch => {
|
|
46
46
|
if (thisMatch.specifier.instance.strategy.name === 'local') {
|
|
47
47
|
// ✓ every instance is valid on its own
|
|
48
48
|
// ✓ expected version is semver
|
|
@@ -66,18 +66,18 @@ export class SameRangeVersionGroup extends Data.TaggedClass('SameRange') {
|
|
|
66
66
|
// ✓ current version matches expected
|
|
67
67
|
// ! is not the original local package
|
|
68
68
|
// ✘ current specifier does not match every other specifier
|
|
69
|
-
return new Report.SameRangeMismatch(thisMatch.specifier.instance, uniq(mismatches.map(
|
|
69
|
+
return new Report.SameRangeMismatch(thisMatch.specifier.instance, uniq(mismatches.map(report => String(report.specifier.instance.rawSpecifier.raw))));
|
|
70
70
|
})
|
|
71
71
|
: // ✘ not every instance is valid on its own
|
|
72
72
|
// ! report on their validity individually ! when all are valid
|
|
73
73
|
// they can progress to being checked for having compatible
|
|
74
74
|
// ranges
|
|
75
|
-
[...allMatches, ...allMismatches]), Effect.map(
|
|
75
|
+
[...allMatches, ...allMismatches]), Effect.map(reports => ({ name, reports })))));
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
/** Find all ranges/versions which this semver version does not cover */
|
|
79
79
|
function getRangeMismatches(ctx, report, others) {
|
|
80
|
-
return others.filter(
|
|
80
|
+
return others.filter(other => !matchesRange(ctx, report, other));
|
|
81
81
|
}
|
|
82
82
|
/** Does semver version `a` match semver version `b`? */
|
|
83
83
|
function matchesRange(ctx, a, b) {
|
|
@@ -15,18 +15,19 @@ export class SnappedToVersionGroup extends Data.TaggedClass('SnappedTo') {
|
|
|
15
15
|
}
|
|
16
16
|
inspectAll() {
|
|
17
17
|
return Effect.all(Object.entries(groupBy('name', this.instances)).flatMap(([name, instances]) => pipe(findSnappedToInstance(name, this.config.snapTo, instances), Effect.matchEffect({
|
|
18
|
-
onFailure: () => Effect.succeed(instances.map(
|
|
18
|
+
onFailure: () => Effect.succeed(instances.map(instance =>
|
|
19
19
|
// ✘ none of the snapTo packages contain this dependency
|
|
20
20
|
// ✘ is a user configuration error we can't auto-fix
|
|
21
21
|
new Report.MissingSnappedToMismatch(instance))),
|
|
22
|
-
onSuccess:
|
|
22
|
+
onSuccess: expected => pipe(instances, Effect.forEach(instance => pipe(Effect.Do, Effect.bind('specifier', () => Effect.succeed(Specifier.create(instance, instance.rawSpecifier.raw))), Effect.bind('expected', () => Effect.succeed(Specifier.create(instance, expected.rawSpecifier.raw))), Effect.flatMap(({ expected, specifier }) => pipe(expected.getSemver(), Effect.matchEffect({
|
|
23
23
|
onFailure: () => pipe(specifier.replaceWith(expected), specifier.instance.semverGroup.getFixed, Effect.match({
|
|
24
24
|
onFailure: () =>
|
|
25
25
|
// ✘ expected version is not semver
|
|
26
26
|
// ✘ semver group expects semver
|
|
27
27
|
// ✘ is a mismatch we can't auto-fix
|
|
28
28
|
new Report.UnsupportedMismatch(specifier.instance),
|
|
29
|
-
onSuccess:
|
|
29
|
+
onSuccess: valid => specifier.instance.rawSpecifier.raw ===
|
|
30
|
+
valid.raw
|
|
30
31
|
? // ! expected version is not semver
|
|
31
32
|
// ✓ semver group is disabled/ignored
|
|
32
33
|
// ✓ current version matches expected
|
|
@@ -44,7 +45,8 @@ export class SnappedToVersionGroup extends Data.TaggedClass('SnappedTo') {
|
|
|
44
45
|
// ✘ is a mismatch we can't auto-fix
|
|
45
46
|
// ✘ this should be impossible - we already proved the local version is exact semver
|
|
46
47
|
new Report.UnsupportedMismatch(specifier.instance),
|
|
47
|
-
onSuccess:
|
|
48
|
+
onSuccess: valid => specifier.instance.rawSpecifier.raw ===
|
|
49
|
+
valid.raw
|
|
48
50
|
? // ✓ expected version is semver
|
|
49
51
|
// ✓ expected version matches its semver group
|
|
50
52
|
// ✓ current version matches expected
|
|
@@ -56,7 +58,7 @@ export class SnappedToVersionGroup extends Data.TaggedClass('SnappedTo') {
|
|
|
56
58
|
new Report.SnappedToMismatch(valid, expected.instance),
|
|
57
59
|
})),
|
|
58
60
|
})))))),
|
|
59
|
-
}), Effect.map(
|
|
61
|
+
}), Effect.map(reports => ({ name, reports })))));
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
function findSnappedToInstance(name, snapTo, instances) {
|
|
@@ -21,15 +21,15 @@ export class StandardVersionGroup extends Data.TaggedClass('Standard') {
|
|
|
21
21
|
const localInstance = getLocalInstance(instances);
|
|
22
22
|
if (localInstance) {
|
|
23
23
|
const localVersion = localInstance?.rawSpecifier.raw;
|
|
24
|
-
return pipe(Effect.succeed(Specifier.create(localInstance, localVersion)), Effect.flatMap(
|
|
25
|
-
? instances.map(
|
|
24
|
+
return pipe(Effect.succeed(Specifier.create(localInstance, localVersion)), Effect.flatMap(local => Effect.all(local._tag !== 'Exact' && instances.length > 1
|
|
25
|
+
? instances.map(instance =>
|
|
26
26
|
// ! dependency is a package developed in this repo
|
|
27
27
|
// ✘ local package has an invalid .version property
|
|
28
28
|
// ✘ is a mismatch we can't auto-fix
|
|
29
29
|
Effect.succeed(new Report.MissingLocalVersion(instance, localInstance)))
|
|
30
|
-
: instances.flatMap(
|
|
30
|
+
: instances.flatMap(instance =>
|
|
31
31
|
// instances.flatMap((instance) =>
|
|
32
|
-
pipe(Effect.succeed(Specifier.create(instance, instance.rawSpecifier.raw)), Effect.flatMap(
|
|
32
|
+
pipe(Effect.succeed(Specifier.create(instance, instance.rawSpecifier.raw)), Effect.flatMap(specifier => specifier.instance === localInstance
|
|
33
33
|
? // ✓ this is the local package which the others should match
|
|
34
34
|
// ! its version must always remain as exact semver
|
|
35
35
|
// ! other instances need to be adjusted for their semver groups
|
|
@@ -41,12 +41,14 @@ export class StandardVersionGroup extends Data.TaggedClass('Standard') {
|
|
|
41
41
|
// ✘ is a mismatch we can't auto-fix
|
|
42
42
|
// ✘ this should be impossible - we already proved the local version is exact semver
|
|
43
43
|
new Report.UnsupportedMismatch(specifier.instance),
|
|
44
|
-
onSuccess:
|
|
44
|
+
onSuccess: valid => specifier.instance.rawSpecifier.raw ===
|
|
45
|
+
valid.raw
|
|
45
46
|
? // ! is not the local package instance
|
|
46
47
|
// ✓ local version matches this semver group
|
|
47
48
|
// ✓ current version matches local
|
|
48
49
|
new Report.Valid(specifier)
|
|
49
|
-
: localVersion ===
|
|
50
|
+
: localVersion ===
|
|
51
|
+
'PACKAGE_JSON_HAS_NO_VERSION'
|
|
50
52
|
? // ! is not the local package instance
|
|
51
53
|
// ✘ local package has a version defined
|
|
52
54
|
// ✓ local version matches this semver group
|
|
@@ -57,37 +59,38 @@ export class StandardVersionGroup extends Data.TaggedClass('Standard') {
|
|
|
57
59
|
// ✓ local version matches this semver group
|
|
58
60
|
// ✘ current version mismatches local
|
|
59
61
|
new Report.LocalPackageMismatch(valid, localInstance),
|
|
60
|
-
}))))))), Effect.map(
|
|
62
|
+
}))))))), Effect.map(reports => ({ name, reports })));
|
|
61
63
|
}
|
|
62
64
|
const PreferredMismatch = this.config.preferVersion === 'lowestSemver'
|
|
63
65
|
? Report.LowestSemverMismatch
|
|
64
66
|
: Report.HighestSemverMismatch;
|
|
65
|
-
return pipe(Effect.succeed(instances.map(
|
|
66
|
-
onFailure: () => Effect.succeed(uniq(specifiers.map(
|
|
67
|
-
.
|
|
68
|
-
? specifiers.map((specifier) =>
|
|
67
|
+
return pipe(Effect.succeed(instances.map(instance => Specifier.create(instance, instance.rawSpecifier.raw))), Effect.flatMap(specifiers => pipe(getPreferredVersion(this.config.preferVersion, specifiers), Effect.matchEffect({
|
|
68
|
+
onFailure: () => Effect.succeed(uniq(specifiers.map(specifier => specifier.instance.rawSpecifier.raw)).length === 1
|
|
69
|
+
? specifiers.map(specifier =>
|
|
69
70
|
// ✘ not every version is semver
|
|
70
71
|
// ✓ every version is identical
|
|
71
72
|
// ✓ is a match
|
|
72
73
|
new Report.Valid(specifier))
|
|
73
|
-
: instances.map(
|
|
74
|
+
: instances.map(instance =>
|
|
74
75
|
// ✘ not every version is semver
|
|
75
76
|
// ✘ some versions are not identical
|
|
76
77
|
// ✘ is a mismatch we can't auto-fix
|
|
77
78
|
new Report.UnsupportedMismatch(instance))),
|
|
78
|
-
onSuccess:
|
|
79
|
+
onSuccess: expectedVersion => pipe(specifiers, Effect.forEach(current => pipe(current.replaceWith(expectedVersion), current.instance.semverGroup.getFixed, Effect.match({
|
|
79
80
|
onFailure: /* istanbul ignore next */ () =>
|
|
80
81
|
// ✓ every version is semver
|
|
81
82
|
// ✘ expected version is not fixable by its semver group
|
|
82
83
|
// ✘ is a mismatch we can't auto-fix
|
|
83
84
|
// ✘ this should be impossible - any valid semver is fixable by a semver group
|
|
84
85
|
new Report.UnsupportedMismatch(current.instance),
|
|
85
|
-
onSuccess:
|
|
86
|
+
onSuccess: expectedRange => current.instance.rawSpecifier.raw ===
|
|
87
|
+
expectedRange.raw
|
|
86
88
|
? // ✓ every version is semver
|
|
87
89
|
// ✓ current version matches expected semver
|
|
88
90
|
// ✓ current version matches expected version
|
|
89
91
|
new Report.Valid(current)
|
|
90
|
-
: current.instance.rawSpecifier.raw ===
|
|
92
|
+
: current.instance.rawSpecifier.raw ===
|
|
93
|
+
expectedVersion.raw
|
|
91
94
|
? // ✓ every version is semver
|
|
92
95
|
// ✓ current version matches expected version
|
|
93
96
|
// ✘ current version does not match expected semver
|
|
@@ -99,7 +102,7 @@ export class StandardVersionGroup extends Data.TaggedClass('Standard') {
|
|
|
99
102
|
// ✓ is a mismatch we can auto-fix
|
|
100
103
|
new PreferredMismatch(expectedRange),
|
|
101
104
|
})))),
|
|
102
|
-
}))), Effect.map(
|
|
105
|
+
}))), Effect.map(reports => ({ name, reports })));
|
|
103
106
|
}));
|
|
104
107
|
}
|
|
105
108
|
}
|
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": "13.0.0",
|
|
5
5
|
"author": "Jamie Mason <jamie@foldleft.io> (https://github.com/JamieMason)",
|
|
6
6
|
"bin": {
|
|
7
7
|
"syncpack": "dist/bin.js",
|
|
@@ -41,19 +41,21 @@
|
|
|
41
41
|
"Michał Warać (https://github.com/auto200)",
|
|
42
42
|
"Nick Saunders (https://github.com/nsaunders)",
|
|
43
43
|
"Siraj (https://github.com/Syhner)",
|
|
44
|
+
"Stuart Knightley (https://github.com/Stuk)",
|
|
44
45
|
"Tom Fletcher (https://github.com/tom-fletcher)"
|
|
45
46
|
],
|
|
46
47
|
"dependencies": {
|
|
47
|
-
"@effect/schema": "0.
|
|
48
|
+
"@effect/schema": "0.71.1",
|
|
48
49
|
"chalk": "5.3.0",
|
|
49
50
|
"chalk-template": "1.1.0",
|
|
50
51
|
"commander": "12.1.0",
|
|
51
52
|
"cosmiconfig": "9.0.0",
|
|
52
|
-
"effect": "3.5
|
|
53
|
+
"effect": "3.6.5",
|
|
53
54
|
"enquirer": "2.4.1",
|
|
54
|
-
"fast-check": "3.
|
|
55
|
+
"fast-check": "3.21.0",
|
|
55
56
|
"globby": "14.0.2",
|
|
56
|
-
"
|
|
57
|
+
"jsonc-parser": "3.3.1",
|
|
58
|
+
"minimatch": "9.0.5",
|
|
57
59
|
"npm-package-arg": "11.0.3",
|
|
58
60
|
"ora": "8.0.1",
|
|
59
61
|
"prompts": "2.4.2",
|
|
@@ -63,32 +65,26 @@
|
|
|
63
65
|
"ts-toolbelt": "9.6.0"
|
|
64
66
|
},
|
|
65
67
|
"devDependencies": {
|
|
68
|
+
"@biomejs/biome": "1.8.3",
|
|
66
69
|
"@release-it/conventional-changelog": "8.0.1",
|
|
67
70
|
"@tsconfig/node18": "18.2.4",
|
|
68
|
-
"@types/node": "
|
|
71
|
+
"@types/node": "22.5.0",
|
|
69
72
|
"@types/npm-package-arg": "6.1.4",
|
|
70
73
|
"@types/prompts": "2.4.9",
|
|
71
74
|
"@types/semver": "7.5.8",
|
|
72
|
-
"@
|
|
73
|
-
"@typescript-eslint/parser": "7.17.0",
|
|
74
|
-
"@vitest/coverage-v8": "2.0.4",
|
|
75
|
+
"@vitest/coverage-v8": "2.0.5",
|
|
75
76
|
"auto-changelog": "2.4.0",
|
|
76
|
-
"
|
|
77
|
-
"eslint-plugin-import": "2.29.1",
|
|
78
|
-
"memfs": "4.9.4",
|
|
77
|
+
"memfs": "4.11.1",
|
|
79
78
|
"prettier": "3.3.3",
|
|
80
79
|
"prettier-plugin-astro": "0.14.1",
|
|
81
|
-
"quill-delta": "5.1.0",
|
|
82
80
|
"release-it": "17.6.0",
|
|
83
|
-
"rxjs": "7.8.1",
|
|
84
81
|
"ts-node": "10.9.2",
|
|
85
|
-
"tslib": "2.6.3",
|
|
86
82
|
"typescript": "5.5.4",
|
|
87
|
-
"typescript-json-schema": "0.
|
|
88
|
-
"vitest": "2.0.
|
|
83
|
+
"typescript-json-schema": "0.65.1",
|
|
84
|
+
"vitest": "2.0.5"
|
|
89
85
|
},
|
|
90
86
|
"engines": {
|
|
91
|
-
"node": ">=
|
|
87
|
+
"node": ">=18.18.0"
|
|
92
88
|
},
|
|
93
89
|
"exports": "./dist/index.js",
|
|
94
90
|
"files": [
|
|
@@ -122,15 +118,16 @@
|
|
|
122
118
|
"build:json-schema": "typescript-json-schema --esModuleInterop --noExtraProps --ignoreErrors src/index.ts RcFile --out dist/schema.json",
|
|
123
119
|
"build:source": "tsc --project tsconfig.build.json",
|
|
124
120
|
"clean": "rm -rf ./dist",
|
|
125
|
-
"format": "pnpm run format:
|
|
126
|
-
"format:
|
|
127
|
-
"format:source": "
|
|
128
|
-
"lint": "
|
|
129
|
-
"lint:
|
|
130
|
-
"lint:
|
|
121
|
+
"format": "pnpm run format:source && pnpm run format:astro",
|
|
122
|
+
"format:astro": "prettier --write site/src",
|
|
123
|
+
"format:source": "biome check --write --unsafe",
|
|
124
|
+
"lint": "npm run lint:source && npm run lint:engines",
|
|
125
|
+
"lint:engines": "node scripts/check-engines.mjs",
|
|
126
|
+
"lint:source": "biome check && tsc --noEmit",
|
|
131
127
|
"prepack": "pnpm run build",
|
|
132
128
|
"release": "release-it",
|
|
133
|
-
"test": "vitest run --
|
|
129
|
+
"test": "vitest run --coverage src",
|
|
130
|
+
"test:watch": "vitest run --no-coverage --watch"
|
|
134
131
|
},
|
|
135
132
|
"type": "module",
|
|
136
133
|
"types": "./dist/index.d.ts"
|