@contractual/changesets 0.1.0-dev.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.
Files changed (39) hide show
  1. package/LICENSE +21 -0
  2. package/dist/changesets/consume.d.ts +23 -0
  3. package/dist/changesets/consume.d.ts.map +1 -0
  4. package/dist/changesets/consume.js +89 -0
  5. package/dist/changesets/consume.js.map +1 -0
  6. package/dist/changesets/create.d.ts +23 -0
  7. package/dist/changesets/create.d.ts.map +1 -0
  8. package/dist/changesets/create.js +72 -0
  9. package/dist/changesets/create.js.map +1 -0
  10. package/dist/changesets/index.d.ts +5 -0
  11. package/dist/changesets/index.d.ts.map +1 -0
  12. package/dist/changesets/index.js +5 -0
  13. package/dist/changesets/index.js.map +1 -0
  14. package/dist/changesets/naming.d.ts +20 -0
  15. package/dist/changesets/naming.d.ts.map +1 -0
  16. package/dist/changesets/naming.js +115 -0
  17. package/dist/changesets/naming.js.map +1 -0
  18. package/dist/changesets/read.d.ts +37 -0
  19. package/dist/changesets/read.d.ts.map +1 -0
  20. package/dist/changesets/read.js +111 -0
  21. package/dist/changesets/read.js.map +1 -0
  22. package/dist/index.d.ts +7 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +9 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/tsconfig.build.tsbuildinfo +1 -0
  27. package/dist/versioning/changelog.d.ts +16 -0
  28. package/dist/versioning/changelog.d.ts.map +1 -0
  29. package/dist/versioning/changelog.js +63 -0
  30. package/dist/versioning/changelog.js.map +1 -0
  31. package/dist/versioning/index.d.ts +3 -0
  32. package/dist/versioning/index.d.ts.map +1 -0
  33. package/dist/versioning/index.js +3 -0
  34. package/dist/versioning/index.js.map +1 -0
  35. package/dist/versioning/manager.d.ts +149 -0
  36. package/dist/versioning/manager.d.ts.map +1 -0
  37. package/dist/versioning/manager.js +307 -0
  38. package/dist/versioning/manager.js.map +1 -0
  39. package/package.json +54 -0
@@ -0,0 +1,307 @@
1
+ import { existsSync, readFileSync, writeFileSync, copyFileSync, unlinkSync } from 'node:fs';
2
+ import { join, extname } from 'node:path';
3
+ import * as semver from 'semver';
4
+ /**
5
+ * Default version for new contracts
6
+ */
7
+ export const DEFAULT_VERSION = '0.0.0';
8
+ /**
9
+ * Supported spec file extensions for snapshot lookup
10
+ */
11
+ export const SPEC_EXTENSIONS = ['.yaml', '.yml', '.json'];
12
+ /**
13
+ * Error thrown when version operations fail
14
+ */
15
+ export class VersionError extends Error {
16
+ version;
17
+ bumpType;
18
+ constructor(message, version, bumpType) {
19
+ super(message);
20
+ this.version = version;
21
+ this.bumpType = bumpType;
22
+ this.name = 'VersionError';
23
+ }
24
+ }
25
+ /**
26
+ * Increment a version by a bump type
27
+ * @param version - The current version string (must be valid semver)
28
+ * @param bumpType - The type of version bump (major, minor, patch)
29
+ * @returns The new version string
30
+ * @throws {VersionError} If the version is invalid or increment fails
31
+ */
32
+ export function incrementVersion(version, bumpType) {
33
+ if (!semver.valid(version)) {
34
+ throw new VersionError(`Invalid semver version: ${version}`, version, bumpType);
35
+ }
36
+ const newVersion = semver.inc(version, bumpType);
37
+ if (!newVersion) {
38
+ throw new VersionError(`Failed to increment version ${version} with type ${bumpType}`, version, bumpType);
39
+ }
40
+ return newVersion;
41
+ }
42
+ /**
43
+ * Filename for the versions registry
44
+ */
45
+ export const VERSIONS_FILE = 'versions.json';
46
+ /**
47
+ * Directory name for snapshots
48
+ */
49
+ export const SNAPSHOTS_DIR = 'snapshots';
50
+ /**
51
+ * Directory name for changesets
52
+ */
53
+ export const CHANGESETS_DIR = 'changesets';
54
+ /**
55
+ * Filename for pre-release state
56
+ */
57
+ export const PRE_RELEASE_FILE = 'pre.json';
58
+ /**
59
+ * Manages contract versions and snapshots
60
+ */
61
+ export class VersionManager {
62
+ versionsPath;
63
+ snapshotsDir;
64
+ versions;
65
+ constructor(contractualDir) {
66
+ this.versionsPath = join(contractualDir, VERSIONS_FILE);
67
+ this.snapshotsDir = join(contractualDir, SNAPSHOTS_DIR);
68
+ this.versions = this.load();
69
+ }
70
+ /**
71
+ * Load versions.json from disk
72
+ * @throws {VersionError} If the file exists but contains invalid JSON
73
+ */
74
+ load() {
75
+ if (!existsSync(this.versionsPath)) {
76
+ return {};
77
+ }
78
+ const content = readFileSync(this.versionsPath, 'utf-8');
79
+ try {
80
+ const parsed = JSON.parse(content);
81
+ if (!this.isValidVersionsFile(parsed)) {
82
+ throw new VersionError(`Invalid versions.json format at ${this.versionsPath}`);
83
+ }
84
+ return parsed;
85
+ }
86
+ catch (error) {
87
+ if (error instanceof VersionError) {
88
+ throw error;
89
+ }
90
+ const message = error instanceof Error ? error.message : 'Unknown error';
91
+ throw new VersionError(`Failed to parse versions.json: ${message}`);
92
+ }
93
+ }
94
+ /**
95
+ * Type guard to validate VersionsFile structure
96
+ */
97
+ isValidVersionsFile(value) {
98
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
99
+ return false;
100
+ }
101
+ for (const entry of Object.values(value)) {
102
+ if (!this.isValidVersionEntry(entry)) {
103
+ return false;
104
+ }
105
+ }
106
+ return true;
107
+ }
108
+ /**
109
+ * Type guard to validate SimpleVersionEntry structure
110
+ */
111
+ isValidVersionEntry(value) {
112
+ if (typeof value !== 'object' || value === null) {
113
+ return false;
114
+ }
115
+ const entry = value;
116
+ return typeof entry.version === 'string' && typeof entry.released === 'string';
117
+ }
118
+ /**
119
+ * Get current version for a contract
120
+ * @param contractName - The contract name to look up
121
+ * @returns The version string, or null if not found
122
+ */
123
+ getVersion(contractName) {
124
+ const entry = this.versions[contractName];
125
+ return entry?.version ?? null;
126
+ }
127
+ /**
128
+ * Get snapshot path for a contract
129
+ * @param contractName - The contract name to look up
130
+ * @returns The snapshot file path, or null if not found
131
+ */
132
+ getSnapshotPath(contractName) {
133
+ for (const ext of SPEC_EXTENSIONS) {
134
+ const snapshotPath = join(this.snapshotsDir, `${contractName}${ext}`);
135
+ if (existsSync(snapshotPath)) {
136
+ return snapshotPath;
137
+ }
138
+ }
139
+ return null;
140
+ }
141
+ /**
142
+ * Bump version, update versions.json, and copy spec to snapshots
143
+ * @param contractName - The contract name to bump
144
+ * @param bumpType - The type of version bump (major, minor, patch)
145
+ * @param specPath - Path to the current spec file to snapshot
146
+ * @returns The old and new version strings
147
+ * @throws {VersionError} If the bump operation fails
148
+ */
149
+ bump(contractName, bumpType, specPath) {
150
+ const currentEntry = this.versions[contractName];
151
+ const oldVersion = currentEntry?.version ?? DEFAULT_VERSION;
152
+ // Use the shared incrementVersion function for consistent error handling
153
+ const newVersion = incrementVersion(oldVersion, bumpType);
154
+ // Update versions entry
155
+ this.versions[contractName] = {
156
+ version: newVersion,
157
+ released: new Date().toISOString(),
158
+ };
159
+ // Copy spec to snapshots directory
160
+ const ext = extname(specPath) || '.yaml';
161
+ const snapshotPath = join(this.snapshotsDir, `${contractName}${ext}`);
162
+ copyFileSync(specPath, snapshotPath);
163
+ // Save versions.json
164
+ this.save();
165
+ return { oldVersion, newVersion };
166
+ }
167
+ /**
168
+ * Set version for a contract (used for initial version setup)
169
+ * @param contractName - The contract name
170
+ * @param version - The version to set
171
+ * @param specPath - Path to the spec file to snapshot
172
+ */
173
+ setVersion(contractName, version, specPath) {
174
+ if (!semver.valid(version)) {
175
+ throw new VersionError(`Invalid semver version: ${version}`, version);
176
+ }
177
+ // Update versions entry
178
+ this.versions[contractName] = {
179
+ version,
180
+ released: new Date().toISOString(),
181
+ };
182
+ // Copy spec to snapshots directory
183
+ const ext = extname(specPath) || '.yaml';
184
+ const snapshotPath = join(this.snapshotsDir, `${contractName}${ext}`);
185
+ copyFileSync(specPath, snapshotPath);
186
+ // Save versions.json
187
+ this.save();
188
+ }
189
+ /**
190
+ * Save versions.json to disk
191
+ */
192
+ save() {
193
+ const content = JSON.stringify(this.versions, null, 2);
194
+ writeFileSync(this.versionsPath, content, 'utf-8');
195
+ }
196
+ /**
197
+ * Get all contract versions
198
+ * @returns Map of contract names to versions
199
+ */
200
+ getAllVersions() {
201
+ const result = {};
202
+ for (const [name, entry] of Object.entries(this.versions)) {
203
+ result[name] = entry.version;
204
+ }
205
+ return result;
206
+ }
207
+ }
208
+ /**
209
+ * Manages pre-release state
210
+ */
211
+ export class PreReleaseManager {
212
+ prePath;
213
+ constructor(contractualDir) {
214
+ this.prePath = join(contractualDir, PRE_RELEASE_FILE);
215
+ }
216
+ /**
217
+ * Check if pre-release mode is active
218
+ */
219
+ isActive() {
220
+ return existsSync(this.prePath);
221
+ }
222
+ /**
223
+ * Get current pre-release state
224
+ * @returns The pre-release state, or null if not in pre-release mode
225
+ */
226
+ getState() {
227
+ if (!this.isActive()) {
228
+ return null;
229
+ }
230
+ try {
231
+ const content = readFileSync(this.prePath, 'utf-8');
232
+ return JSON.parse(content);
233
+ }
234
+ catch {
235
+ return null;
236
+ }
237
+ }
238
+ /**
239
+ * Enter pre-release mode
240
+ * @param tag - The pre-release tag (e.g., "alpha", "beta", "rc")
241
+ * @param versionManager - VersionManager to get current versions
242
+ */
243
+ enter(tag, versionManager) {
244
+ if (this.isActive()) {
245
+ throw new VersionError(`Already in pre-release mode. Run 'pre exit' first.`);
246
+ }
247
+ // Validate tag
248
+ if (!/^[a-zA-Z][a-zA-Z0-9-]*$/.test(tag)) {
249
+ throw new VersionError(`Invalid pre-release tag: ${tag}. Must start with letter, contain only letters, numbers, and hyphens.`);
250
+ }
251
+ const state = {
252
+ tag,
253
+ enteredAt: new Date().toISOString(),
254
+ initialVersions: versionManager.getAllVersions(),
255
+ };
256
+ writeFileSync(this.prePath, JSON.stringify(state, null, 2), 'utf-8');
257
+ }
258
+ /**
259
+ * Exit pre-release mode
260
+ */
261
+ exit() {
262
+ if (!this.isActive()) {
263
+ throw new VersionError('Not in pre-release mode.');
264
+ }
265
+ unlinkSync(this.prePath);
266
+ }
267
+ /**
268
+ * Get the pre-release tag
269
+ * @returns The tag, or null if not in pre-release mode
270
+ */
271
+ getTag() {
272
+ const state = this.getState();
273
+ return state?.tag ?? null;
274
+ }
275
+ }
276
+ /**
277
+ * Increment a version with pre-release support
278
+ * @param version - The current version string
279
+ * @param bumpType - The type of version bump
280
+ * @param preReleaseTag - Optional pre-release tag (e.g., "beta")
281
+ * @returns The new version string
282
+ */
283
+ export function incrementVersionWithPreRelease(version, bumpType, preReleaseTag) {
284
+ if (!semver.valid(version)) {
285
+ throw new VersionError(`Invalid semver version: ${version}`, version, bumpType);
286
+ }
287
+ const parsed = semver.parse(version);
288
+ if (!parsed) {
289
+ throw new VersionError(`Failed to parse version: ${version}`, version, bumpType);
290
+ }
291
+ // If no pre-release tag, use normal increment
292
+ if (!preReleaseTag) {
293
+ return incrementVersion(version, bumpType);
294
+ }
295
+ // If already a pre-release with the same tag, just bump the pre-release number
296
+ if (parsed.prerelease.length > 0 && parsed.prerelease[0] === preReleaseTag) {
297
+ const newVersion = semver.inc(version, 'prerelease', preReleaseTag);
298
+ if (!newVersion) {
299
+ throw new VersionError(`Failed to increment pre-release version`, version, bumpType);
300
+ }
301
+ return newVersion;
302
+ }
303
+ // Otherwise, apply the bump type and start a new pre-release
304
+ const baseVersion = incrementVersion(version, bumpType);
305
+ return `${baseVersion}-${preReleaseTag}.0`;
306
+ }
307
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../versioning/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGjC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAgB,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGnB;IACA;IAHlB,YACE,OAAe,EACC,OAAgB,EAChB,QAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAW;QAGnC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAAkB;IAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,YAAY,CAAC,2BAA2B,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,YAAY,CACpB,+BAA+B,OAAO,cAAc,QAAQ,EAAE,EAC9D,OAAO,EACP,QAAQ,CACT,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,eAAwB,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,YAAqB,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,cAAc;IACR,YAAY,CAAS;IACrB,YAAY,CAAS;IAC9B,QAAQ,CAAe;IAE/B,YAAY,cAAsB;QAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACK,IAAI;QACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,YAAY,CAAC,mCAAmC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,MAAM,IAAI,YAAY,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAc;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAc;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,KAAgC,CAAC;QAC/C,OAAO,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,YAAoB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC1C,OAAO,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,YAAoB;QAClC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC;YACtE,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,YAAoB,EAAE,QAAkB,EAAE,QAAgB;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,YAAY,EAAE,OAAO,IAAI,eAAe,CAAC;QAE5D,yEAAyE;QACzE,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE1D,wBAAwB;QACxB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG;YAC5B,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC;QAEF,mCAAmC;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC;QACtE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAErC,qBAAqB;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,YAAoB,EAAE,OAAe,EAAE,QAAgB;QAChE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,YAAY,CAAC,2BAA2B,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG;YAC5B,OAAO;YACP,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC;QAEF,mCAAmC;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC;QACtE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAErC,qBAAqB;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACK,IAAI;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACX,OAAO,CAAS;IAEjC,YAAY,cAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAW,EAAE,cAA8B;QAC/C,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,YAAY,CAAC,oDAAoD,CAAC,CAAC;QAC/E,CAAC;QAED,eAAe;QACf,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,YAAY,CACpB,4BAA4B,GAAG,uEAAuE,CACvG,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAoB;YAC7B,GAAG;YACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,eAAe,EAAE,cAAc,CAAC,cAAc,EAAE;SACjD,CAAC;QAEF,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CAAC,0BAA0B,CAAC,CAAC;QACrD,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC;IAC5B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAe,EACf,QAAkB,EAClB,aAAsB;IAEtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,YAAY,CAAC,2BAA2B,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,YAAY,CAAC,4BAA4B,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,+EAA+E;IAC/E,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,YAAY,CAAC,yCAAyC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,6DAA6D;IAC7D,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxD,OAAO,GAAG,WAAW,IAAI,aAAa,IAAI,CAAC;AAC7C,CAAC"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@contractual/changesets",
3
+ "private": false,
4
+ "version": "0.1.0-dev.0",
5
+ "description": "Changeset creation, parsing, and versioning utilities for Contractual",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ },
16
+ "./changesets": {
17
+ "types": "./dist/changesets/index.d.ts",
18
+ "import": "./dist/changesets/index.js"
19
+ },
20
+ "./versioning": {
21
+ "types": "./dist/versioning/index.d.ts",
22
+ "import": "./dist/versioning/index.js"
23
+ }
24
+ },
25
+ "sideEffects": false,
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/contractual-dev/contractual.git",
29
+ "directory": "packages/changesets"
30
+ },
31
+ "engines": {
32
+ "node": ">=20.0.0"
33
+ },
34
+ "scripts": {
35
+ "prebuild": "pnpm rimraf dist",
36
+ "build": "tsc -p tsconfig.build.json"
37
+ },
38
+ "files": [
39
+ "dist"
40
+ ],
41
+ "dependencies": {
42
+ "@contractual/types": "0.1.0-dev.0",
43
+ "semver": "^7.7.1",
44
+ "yaml": "^2.7.0"
45
+ },
46
+ "devDependencies": {
47
+ "@types/semver": "^7.5.8"
48
+ },
49
+ "publishConfig": {
50
+ "access": "public",
51
+ "provenance": true
52
+ },
53
+ "gitHead": "a18dcec2397cf45cbd4ba86461d378ccd71ba657"
54
+ }