@@ -3,6 +3,8 @@ export interface RcFile {
33 $schema ?: string ;
44 /** @see https://jamiemason.github.io/syncpack/config/custom-types */
55 customTypes ?: Record < string , CustomType . Any > ;
6+ /** @see https://jamiemason.github.io/syncpack/config/dependency-groups */
7+ dependencyGroups ?: DependencyGroup [ ] ;
68 /** @see https://jamiemason.github.io/syncpack/config/format-bugs */
79 formatBugs ?: boolean ;
810 /** @see https://jamiemason.github.io/syncpack/config/format-repository */
@@ -38,7 +40,7 @@ export interface RcFile {
3840 specifierTypes ?: never ;
3941}
4042
41- export interface DependencyGroup {
43+ export interface GroupSelector {
4244 /** @see https://jamiemason.github.io/syncpack/config/version-groups/standard/#dependencies */
4345 dependencies ?: string [ ] ;
4446 /** @see https://jamiemason.github.io/syncpack/config/version-groups/standard/#dependencytypes */
@@ -51,42 +53,55 @@ export interface DependencyGroup {
5153 specifierTypes ?: SpecifierType [ ] ;
5254}
5355
56+ export interface DependencyGroup {
57+ /** @see https://jamiemason.github.io/syncpack/config/dependency-groups/#aliasname */
58+ aliasName : string ;
59+ /** @see https://jamiemason.github.io/syncpack/config/dependency-groups/#dependencies */
60+ dependencies ?: string [ ] ;
61+ /** @see https://jamiemason.github.io/syncpack/config/dependency-groups/#dependencytypes */
62+ dependencyTypes ?: DependencyType [ ] ;
63+ /** @see https://jamiemason.github.io/syncpack/config/dependency-groups/#packages */
64+ packages ?: string [ ] ;
65+ /** @see https://jamiemason.github.io/syncpack/config/dependency-groups/#specifiertypes */
66+ specifierTypes ?: SpecifierType [ ] ;
67+ }
68+
5469namespace SemverGroup {
55- export interface Ignored extends DependencyGroup {
70+ export interface Ignored extends GroupSelector {
5671 /** @see https://jamiemason.github.io/syncpack/config/semver-groups/ignored/#isignored */
5772 isIgnored : true ;
5873 }
59- export interface WithRange extends DependencyGroup {
74+ export interface WithRange extends GroupSelector {
6075 /** @see https://jamiemason.github.io/syncpack/config/semver-groups/with-range/#range */
6176 range : SemverRange ;
6277 }
6378 export type Any = Ignored | WithRange ;
6479}
6580
6681namespace VersionGroup {
67- export interface Banned extends DependencyGroup {
82+ export interface Banned extends GroupSelector {
6883 /** @see https://jamiemason.github.io/syncpack/config/version-groups/banned/#isbanned */
6984 isBanned : true ;
7085 }
71- export interface Ignored extends DependencyGroup {
86+ export interface Ignored extends GroupSelector {
7287 /** @see https://jamiemason.github.io/syncpack/config/version-groups/ignored/#isignored */
7388 isIgnored : true ;
7489 }
75- export interface Pinned extends DependencyGroup {
90+ export interface Pinned extends GroupSelector {
7691 /** @see https://jamiemason.github.io/syncpack/config/version-groups/pinned/#pinversion */
7792 pinVersion : string ;
7893 }
79- export interface SnappedTo extends DependencyGroup {
94+ export interface SnappedTo extends GroupSelector {
8095 /** @see https://jamiemason.github.io/syncpack/config/version-groups/snapped-to/#snapto */
8196 snapTo : string [ ] ;
8297 }
83- export interface SameRange extends DependencyGroup {
98+ export interface SameRange extends GroupSelector {
8499 /** @see https://jamiemason.github.io/syncpack/config/version-groups/same-range/#policy */
85- policy : " sameRange" ;
100+ policy : ' sameRange' ;
86101 }
87- export interface Standard extends DependencyGroup {
102+ export interface Standard extends GroupSelector {
88103 /** @see https://jamiemason.github.io/syncpack/config/version-groups/lowest-version/#preferversion */
89- preferVersion ?: " highestSemver" | " lowestSemver" ;
104+ preferVersion ?: ' highestSemver' | ' lowestSemver' ;
90105 }
91106 export type Any =
92107 | Banned
@@ -104,25 +119,25 @@ namespace CustomType {
104119 /** @see https://jamiemason.github.io/syncpack/config/custom-types/#name */
105120 path : string ;
106121 /** @see https://jamiemason.github.io/syncpack/config/custom-types/#namestrategy */
107- strategy : " name~version" ;
122+ strategy : ' name~version' ;
108123 }
109124 export interface NamedVersionString {
110125 /** @see https://jamiemason.github.io/syncpack/config/custom-types/#name */
111126 path : string ;
112127 /** @see https://jamiemason.github.io/syncpack/config/custom-types/#namestrategy */
113- strategy : " name@version" ;
128+ strategy : ' name@version' ;
114129 }
115130 export interface UnnamedVersionString {
116131 /** @see https://jamiemason.github.io/syncpack/config/custom-types/#name */
117132 path : string ;
118133 /** @see https://jamiemason.github.io/syncpack/config/custom-types/#namestrategy */
119- strategy : " version" ;
134+ strategy : ' version' ;
120135 }
121136 export interface VersionsByName {
122137 /** @see https://jamiemason.github.io/syncpack/config/custom-types/#name */
123138 path : string ;
124139 /** @see https://jamiemason.github.io/syncpack/config/custom-types/#namestrategy */
125- strategy : " versionsByName" ;
140+ strategy : ' versionsByName' ;
126141 }
127142 export type Any =
128143 | NameAndVersionProps
@@ -131,35 +146,35 @@ namespace CustomType {
131146 | VersionsByName ;
132147}
133148
134- type SemverRange = "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~" ;
149+ type SemverRange = '' | '*' | '>' | '>=' | '.x' | '<' | '<=' | '^' | '~' ;
135150
136151type DependencyType =
137- | " dev"
138- | " local"
139- | " overrides"
140- | " peer"
141- | " pnpmOverrides"
142- | " prod"
143- | " resolutions"
152+ | ' dev'
153+ | ' local'
154+ | ' overrides'
155+ | ' peer'
156+ | ' pnpmOverrides'
157+ | ' prod'
158+ | ' resolutions'
144159 | AnyString ;
145160
146161type SpecifierType =
147- | " alias"
148- | " exact"
149- | " file"
150- | " git"
151- | " latest"
152- | " major"
153- | " minor"
154- | " missing"
155- | " range"
156- | " range-complex"
157- | " range-major"
158- | " range-minor"
159- | " tag"
160- | " unsupported"
161- | " url"
162- | " workspace-protocol"
162+ | ' alias'
163+ | ' exact'
164+ | ' file'
165+ | ' git'
166+ | ' latest'
167+ | ' major'
168+ | ' minor'
169+ | ' missing'
170+ | ' range'
171+ | ' range-complex'
172+ | ' range-major'
173+ | ' range-minor'
174+ | ' tag'
175+ | ' unsupported'
176+ | ' url'
177+ | ' workspace-protocol'
163178 | AnyString ;
164179
165180type AnyString = string & { } ;
0 commit comments