@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (C) 2025 Omer Morad
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Changeset consumption utilities
3
+ * Processes changesets for the version command
4
+ */
5
+ import type { BumpType, ChangesetFile } from '@contractual/types';
6
+ /**
7
+ * Aggregate bumps from multiple changesets
8
+ * For each contract, the highest bump type wins
9
+ *
10
+ * @param changesets - Array of parsed changeset files
11
+ * @returns Map of contract name to aggregated bump type
12
+ */
13
+ export declare function aggregateBumps(changesets: readonly ChangesetFile[]): Record<string, BumpType>;
14
+ /**
15
+ * Extract the markdown section for a specific contract from changesets
16
+ * Combines all change descriptions for the contract across all changesets
17
+ *
18
+ * @param changesets - Array of parsed changeset files
19
+ * @param contractName - Name of the contract to extract changes for
20
+ * @returns Combined markdown content for the contract
21
+ */
22
+ export declare function extractContractChanges(changesets: readonly ChangesetFile[], contractName: string): string;
23
+ //# sourceMappingURL=consume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consume.d.ts","sourceRoot":"","sources":["../../changesets/consume.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkBlE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,SAAS,aAAa,EAAE,GACnC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAW1B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,YAAY,EAAE,MAAM,GACnB,MAAM,CAiBR"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Changeset consumption utilities
3
+ * Processes changesets for the version command
4
+ */
5
+ /**
6
+ * Bump type priority for comparison (higher = more significant)
7
+ */
8
+ const BUMP_PRIORITY = {
9
+ major: 3,
10
+ minor: 2,
11
+ patch: 1,
12
+ };
13
+ /**
14
+ * Compare two bump types and return the higher priority one
15
+ */
16
+ function higherBump(a, b) {
17
+ return BUMP_PRIORITY[a] >= BUMP_PRIORITY[b] ? a : b;
18
+ }
19
+ /**
20
+ * Aggregate bumps from multiple changesets
21
+ * For each contract, the highest bump type wins
22
+ *
23
+ * @param changesets - Array of parsed changeset files
24
+ * @returns Map of contract name to aggregated bump type
25
+ */
26
+ export function aggregateBumps(changesets) {
27
+ const aggregated = {};
28
+ for (const changeset of changesets) {
29
+ for (const [contract, bump] of Object.entries(changeset.bumps)) {
30
+ const existing = aggregated[contract];
31
+ aggregated[contract] = existing ? higherBump(existing, bump) : bump;
32
+ }
33
+ }
34
+ return aggregated;
35
+ }
36
+ /**
37
+ * Extract the markdown section for a specific contract from changesets
38
+ * Combines all change descriptions for the contract across all changesets
39
+ *
40
+ * @param changesets - Array of parsed changeset files
41
+ * @param contractName - Name of the contract to extract changes for
42
+ * @returns Combined markdown content for the contract
43
+ */
44
+ export function extractContractChanges(changesets, contractName) {
45
+ const sections = [];
46
+ for (const changeset of changesets) {
47
+ // Only process changesets that affect this contract
48
+ if (!(contractName in changeset.bumps)) {
49
+ continue;
50
+ }
51
+ // Extract the section for this contract from the body
52
+ const section = extractSectionFromBody(changeset.body, contractName);
53
+ if (section) {
54
+ sections.push(section);
55
+ }
56
+ }
57
+ return sections.join('\n\n');
58
+ }
59
+ /**
60
+ * Extract a contract's section from a changeset body
61
+ * Looks for ## ContractName and extracts content until the next ## or end
62
+ */
63
+ function extractSectionFromBody(body, contractName) {
64
+ const lines = body.split('\n');
65
+ const headerPattern = new RegExp(`^##\\s+${escapeRegex(contractName)}\\s*$`);
66
+ let inSection = false;
67
+ const sectionLines = [];
68
+ for (const line of lines) {
69
+ if (headerPattern.test(line)) {
70
+ inSection = true;
71
+ continue;
72
+ }
73
+ if (inSection) {
74
+ // Check if we've hit the next section
75
+ if (line.startsWith('## ')) {
76
+ break;
77
+ }
78
+ sectionLines.push(line);
79
+ }
80
+ }
81
+ return sectionLines.join('\n').trim();
82
+ }
83
+ /**
84
+ * Escape special regex characters in a string
85
+ */
86
+ function escapeRegex(str) {
87
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
88
+ }
89
+ //# sourceMappingURL=consume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consume.js","sourceRoot":"","sources":["../../changesets/consume.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,aAAa,GAAuC;IACxD,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACA,CAAC;AAEX;;GAEG;AACH,SAAS,UAAU,CAAC,CAAW,EAAE,CAAW;IAC1C,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAoC;IAEpC,MAAM,UAAU,GAA6B,EAAE,CAAC;IAEhD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAoC,EACpC,YAAoB;IAEpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,oDAAoD;QACpD,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,SAAS;QACX,CAAC;QAED,sDAAsD;QACtD,MAAM,OAAO,GAAG,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACrE,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,IAAY,EAAE,YAAoB;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,UAAU,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE7E,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,sCAAsC;YACtC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM;YACR,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Changeset creation utilities
3
+ * Creates changeset files from diff results
4
+ */
5
+ import type { DiffResult, BumpType } from '@contractual/types';
6
+ /**
7
+ * Result of creating a changeset file
8
+ */
9
+ export interface CreateChangesetResult {
10
+ /** Generated filename (e.g., "brave-tigers-fly.md") */
11
+ filename: string;
12
+ /** Full content of the changeset file including frontmatter and body */
13
+ content: string;
14
+ }
15
+ /**
16
+ * Create a changeset from diff results
17
+ *
18
+ * @param results - Array of diff results from comparing specs
19
+ * @param overrides - Optional map of contract name to bump type overrides
20
+ * @returns Object with filename and content for the changeset file
21
+ */
22
+ export declare function createChangeset(results: DiffResult[], overrides?: Readonly<Record<string, BumpType>>): CreateChangesetResult;
23
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../changesets/create.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAkB,MAAM,oBAAoB,CAAC;AAG/E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;CACjB;AAgCD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,UAAU,EAAE,EACrB,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GAC7C,qBAAqB,CA0CvB"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Changeset creation utilities
3
+ * Creates changeset files from diff results
4
+ */
5
+ import { generateChangesetName } from './naming.js';
6
+ /**
7
+ * Severity label mapping for display purposes
8
+ */
9
+ const SEVERITY_LABELS = {
10
+ breaking: 'BREAKING',
11
+ 'non-breaking': 'minor',
12
+ patch: 'patch',
13
+ unknown: 'unknown',
14
+ };
15
+ /**
16
+ * Map change severity to display label
17
+ */
18
+ function severityToLabel(severity) {
19
+ return SEVERITY_LABELS[severity];
20
+ }
21
+ /**
22
+ * Determine the suggested bump type for a contract based on its changes
23
+ */
24
+ function determineBumpType(result) {
25
+ if (result.summary.breaking > 0) {
26
+ return 'major';
27
+ }
28
+ if (result.summary.nonBreaking > 0) {
29
+ return 'minor';
30
+ }
31
+ return 'patch';
32
+ }
33
+ /**
34
+ * Create a changeset from diff results
35
+ *
36
+ * @param results - Array of diff results from comparing specs
37
+ * @param overrides - Optional map of contract name to bump type overrides
38
+ * @returns Object with filename and content for the changeset file
39
+ */
40
+ export function createChangeset(results, overrides) {
41
+ const filename = `${generateChangesetName()}.md`;
42
+ // Build YAML frontmatter
43
+ const bumps = {};
44
+ for (const result of results) {
45
+ if (result.changes.length === 0) {
46
+ continue;
47
+ }
48
+ const suggestedBump = determineBumpType(result);
49
+ bumps[result.contract] = overrides?.[result.contract] ?? suggestedBump;
50
+ }
51
+ // Generate YAML frontmatter
52
+ const yamlLines = Object.entries(bumps).map(([contract, bump]) => `"${contract}": ${bump}`);
53
+ const frontmatter = `---\n${yamlLines.join('\n')}\n---`;
54
+ // Generate markdown body with changes grouped by contract
55
+ const bodyParts = [];
56
+ for (const result of results) {
57
+ if (result.changes.length === 0) {
58
+ continue;
59
+ }
60
+ bodyParts.push(`## ${result.contract}`);
61
+ bodyParts.push('');
62
+ for (const change of result.changes) {
63
+ const label = severityToLabel(change.severity);
64
+ bodyParts.push(`- **[${label}]** ${change.message}`);
65
+ }
66
+ bodyParts.push('');
67
+ }
68
+ const body = bodyParts.join('\n').trim();
69
+ const content = `${frontmatter}\n\n${body}\n`;
70
+ return { filename, content };
71
+ }
72
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../changesets/create.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAYpD;;GAEG;AACH,MAAM,eAAe,GAAmC;IACtD,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,OAAO;IACvB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACV,CAAC;AAEX;;GAEG;AACH,SAAS,eAAe,CAAC,QAAwB;IAC/C,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAqB,EACrB,SAA8C;IAE9C,MAAM,QAAQ,GAAG,GAAG,qBAAqB,EAAE,KAAK,CAAC;IAEjD,yBAAyB;IACzB,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC;IACzE,CAAC;IAED,4BAA4B;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CACzC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,MAAM,IAAI,EAAE,CAC/C,CAAC;IACF,MAAM,WAAW,GAAG,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAExD,0DAA0D;IAC1D,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,GAAG,WAAW,OAAO,IAAI,IAAI,CAAC;IAE9C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './naming.js';
2
+ export * from './create.js';
3
+ export * from './read.js';
4
+ export * from './consume.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../changesets/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './naming.js';
2
+ export * from './create.js';
3
+ export * from './read.js';
4
+ export * from './consume.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../changesets/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Changeset naming utilities
3
+ * Generates random three-word names for changeset files
4
+ */
5
+ /**
6
+ * Generate a random three-word changeset name
7
+ * Format: adjective-noun-verb (e.g., "brave-tigers-fly")
8
+ */
9
+ export declare function generateChangesetName(): string;
10
+ /**
11
+ * Generate a unique changeset name that doesn't collide with existing names
12
+ * Retries with new random names until a unique one is found
13
+ *
14
+ * @param existingNames - Array of existing changeset names to avoid
15
+ * @param maxRetries - Maximum number of retries before giving up (default: 100)
16
+ * @returns A unique changeset name
17
+ * @throws Error if unable to generate a unique name after max retries
18
+ */
19
+ export declare function generateUniqueChangesetName(existingNames: string[], maxRetries?: number): string;
20
+ //# sourceMappingURL=naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../changesets/naming.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqFH;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAM9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,EAAE,EACvB,UAAU,SAAM,GACf,MAAM,CAaR"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Changeset naming utilities
3
+ * Generates random three-word names for changeset files
4
+ */
5
+ const ADJECTIVES = [
6
+ 'brave',
7
+ 'calm',
8
+ 'eager',
9
+ 'fancy',
10
+ 'gentle',
11
+ 'happy',
12
+ 'jolly',
13
+ 'kind',
14
+ 'lively',
15
+ 'mighty',
16
+ 'noble',
17
+ 'proud',
18
+ 'quick',
19
+ 'ready',
20
+ 'sharp',
21
+ 'swift',
22
+ 'tender',
23
+ 'vivid',
24
+ 'warm',
25
+ 'zesty',
26
+ ];
27
+ const NOUNS = [
28
+ 'bears',
29
+ 'cats',
30
+ 'dogs',
31
+ 'eagles',
32
+ 'foxes',
33
+ 'geese',
34
+ 'hawks',
35
+ 'ibis',
36
+ 'jays',
37
+ 'kites',
38
+ 'lions',
39
+ 'mice',
40
+ 'newts',
41
+ 'owls',
42
+ 'pandas',
43
+ 'quails',
44
+ 'ravens',
45
+ 'seals',
46
+ 'tigers',
47
+ 'wolves',
48
+ ];
49
+ const VERBS = [
50
+ 'fly',
51
+ 'run',
52
+ 'jump',
53
+ 'swim',
54
+ 'dance',
55
+ 'sing',
56
+ 'play',
57
+ 'rest',
58
+ 'hunt',
59
+ 'roam',
60
+ 'climb',
61
+ 'glide',
62
+ 'soar',
63
+ 'leap',
64
+ 'dash',
65
+ 'drift',
66
+ 'march',
67
+ 'prowl',
68
+ 'race',
69
+ 'sprint',
70
+ ];
71
+ /**
72
+ * Get a random element from an array
73
+ * @throws {Error} If the array is empty
74
+ */
75
+ function randomElement(array) {
76
+ if (array.length === 0) {
77
+ throw new Error('Cannot get random element from empty array');
78
+ }
79
+ const index = Math.floor(Math.random() * array.length);
80
+ const element = array[index];
81
+ // This assertion is safe because we've checked array.length > 0 and index is within bounds
82
+ return element;
83
+ }
84
+ /**
85
+ * Generate a random three-word changeset name
86
+ * Format: adjective-noun-verb (e.g., "brave-tigers-fly")
87
+ */
88
+ export function generateChangesetName() {
89
+ const adjective = randomElement(ADJECTIVES);
90
+ const noun = randomElement(NOUNS);
91
+ const verb = randomElement(VERBS);
92
+ return `${adjective}-${noun}-${verb}`;
93
+ }
94
+ /**
95
+ * Generate a unique changeset name that doesn't collide with existing names
96
+ * Retries with new random names until a unique one is found
97
+ *
98
+ * @param existingNames - Array of existing changeset names to avoid
99
+ * @param maxRetries - Maximum number of retries before giving up (default: 100)
100
+ * @returns A unique changeset name
101
+ * @throws Error if unable to generate a unique name after max retries
102
+ */
103
+ export function generateUniqueChangesetName(existingNames, maxRetries = 100) {
104
+ const existingSet = new Set(existingNames);
105
+ for (let i = 0; i < maxRetries; i++) {
106
+ const name = generateChangesetName();
107
+ if (!existingSet.has(name)) {
108
+ return name;
109
+ }
110
+ }
111
+ // Fallback: append timestamp to ensure uniqueness
112
+ const baseName = generateChangesetName();
113
+ return `${baseName}-${Date.now()}`;
114
+ }
115
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../changesets/naming.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,GAAG;IACjB,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;CACC,CAAC;AAEX,MAAM,KAAK,GAAG;IACZ,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;CACA,CAAC;AAEX,MAAM,KAAK,GAAG;IACZ,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,QAAQ;CACA,CAAC;AAEX;;;GAGG;AACH,SAAS,aAAa,CAAI,KAAmB;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,2FAA2F;IAC3F,OAAO,OAAY,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAElC,OAAO,GAAG,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,aAAuB,EACvB,UAAU,GAAG,GAAG;IAEhB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Changeset reading and parsing utilities
3
+ * Parses changeset files from the .contractual/changesets directory
4
+ */
5
+ import type { BumpType, ChangesetFile } from '@contractual/types';
6
+ /**
7
+ * Error thrown when parsing a changeset file fails
8
+ */
9
+ export declare class ChangesetParseError extends Error {
10
+ readonly filename?: string | undefined;
11
+ constructor(message: string, filename?: string | undefined);
12
+ }
13
+ /**
14
+ * Parsed changeset content (before wrapping with filename)
15
+ */
16
+ export interface ParsedChangesetContent {
17
+ /** Map of contract name to bump type */
18
+ bumps: Record<string, BumpType>;
19
+ /** Markdown body with change descriptions */
20
+ body: string;
21
+ }
22
+ /**
23
+ * Parse a changeset file content into its components
24
+ *
25
+ * @param content - Raw content of the changeset file
26
+ * @returns Parsed bumps and body
27
+ * @throws {ChangesetParseError} If the content is malformed
28
+ */
29
+ export declare function parseChangeset(content: string): ParsedChangesetContent;
30
+ /**
31
+ * Read all changeset files from a directory
32
+ *
33
+ * @param changesetsDir - Path to the changesets directory
34
+ * @returns Array of parsed changeset files
35
+ */
36
+ export declare function readChangesets(changesetsDir: string): Promise<ChangesetFile[]>;
37
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../changesets/read.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOlE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,QAAQ,CAAC,EAAE,MAAM;gBADjC,OAAO,EAAE,MAAM,EACC,QAAQ,CAAC,EAAE,MAAM,YAAA;CAKpC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,CA4CtE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAoCpF"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Changeset reading and parsing utilities
3
+ * Parses changeset files from the .contractual/changesets directory
4
+ */
5
+ import { readdir, readFile } from 'node:fs/promises';
6
+ import { join } from 'node:path';
7
+ import { parse as parseYaml } from 'yaml';
8
+ /**
9
+ * Valid bump type values
10
+ */
11
+ const VALID_BUMP_TYPES = ['major', 'minor', 'patch'];
12
+ /**
13
+ * Error thrown when parsing a changeset file fails
14
+ */
15
+ export class ChangesetParseError extends Error {
16
+ filename;
17
+ constructor(message, filename) {
18
+ super(filename ? `Failed to parse changeset "${filename}": ${message}` : message);
19
+ this.filename = filename;
20
+ this.name = 'ChangesetParseError';
21
+ }
22
+ }
23
+ /**
24
+ * Validate that a value is a valid bump type
25
+ */
26
+ function isValidBumpType(value) {
27
+ return VALID_BUMP_TYPES.includes(value);
28
+ }
29
+ /**
30
+ * Parse a changeset file content into its components
31
+ *
32
+ * @param content - Raw content of the changeset file
33
+ * @returns Parsed bumps and body
34
+ * @throws {ChangesetParseError} If the content is malformed
35
+ */
36
+ export function parseChangeset(content) {
37
+ const trimmed = content.trim();
38
+ // Check for frontmatter delimiter
39
+ if (!trimmed.startsWith('---')) {
40
+ throw new ChangesetParseError('Changeset must start with YAML frontmatter (---)');
41
+ }
42
+ // Find the closing frontmatter delimiter
43
+ const secondDelimiter = trimmed.indexOf('---', 3);
44
+ if (secondDelimiter === -1) {
45
+ throw new ChangesetParseError('Changeset frontmatter must be closed with ---');
46
+ }
47
+ // Extract YAML and body
48
+ const yamlContent = trimmed.slice(3, secondDelimiter).trim();
49
+ const body = trimmed.slice(secondDelimiter + 3).trim();
50
+ // Parse YAML
51
+ let parsed;
52
+ try {
53
+ parsed = parseYaml(yamlContent);
54
+ }
55
+ catch (yamlError) {
56
+ const message = yamlError instanceof Error ? yamlError.message : 'Invalid YAML';
57
+ throw new ChangesetParseError(`Invalid YAML in frontmatter: ${message}`);
58
+ }
59
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
60
+ throw new ChangesetParseError('Changeset frontmatter must contain a YAML object');
61
+ }
62
+ // Validate and extract bumps
63
+ const bumps = {};
64
+ for (const [key, value] of Object.entries(parsed)) {
65
+ if (!isValidBumpType(value)) {
66
+ throw new ChangesetParseError(`Invalid bump type "${String(value)}" for contract "${key}". Must be ${VALID_BUMP_TYPES.join(', ')}.`);
67
+ }
68
+ bumps[key] = value;
69
+ }
70
+ return { bumps, body };
71
+ }
72
+ /**
73
+ * Read all changeset files from a directory
74
+ *
75
+ * @param changesetsDir - Path to the changesets directory
76
+ * @returns Array of parsed changeset files
77
+ */
78
+ export async function readChangesets(changesetsDir) {
79
+ let files;
80
+ try {
81
+ files = await readdir(changesetsDir);
82
+ }
83
+ catch (error) {
84
+ // Directory doesn't exist or can't be read - no changesets
85
+ if (error.code === 'ENOENT') {
86
+ return [];
87
+ }
88
+ throw error;
89
+ }
90
+ // Filter to only .md files
91
+ const mdFiles = files.filter((file) => file.endsWith('.md'));
92
+ const changesets = [];
93
+ for (const filename of mdFiles) {
94
+ const filePath = join(changesetsDir, filename);
95
+ const content = await readFile(filePath, 'utf-8');
96
+ try {
97
+ const { bumps, body } = parseChangeset(content);
98
+ changesets.push({ filename, path: filePath, bumps, body });
99
+ }
100
+ catch (error) {
101
+ // Re-throw with filename context
102
+ if (error instanceof ChangesetParseError) {
103
+ throw new ChangesetParseError(error.message, filename);
104
+ }
105
+ const message = error instanceof Error ? error.message : 'Unknown error';
106
+ throw new ChangesetParseError(message, filename);
107
+ }
108
+ }
109
+ return changesets;
110
+ }
111
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../changesets/read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { generateChangesetName, generateUniqueChangesetName, } from './changesets/naming.js';
2
+ export { createChangeset, type CreateChangesetResult } from './changesets/create.js';
3
+ export { parseChangeset, readChangesets, ChangesetParseError, type ParsedChangesetContent, } from './changesets/read.js';
4
+ export { aggregateBumps, extractContractChanges } from './changesets/consume.js';
5
+ export { VersionManager, PreReleaseManager, VERSIONS_FILE, SNAPSHOTS_DIR, CHANGESETS_DIR, PRE_RELEASE_FILE, DEFAULT_VERSION, SPEC_EXTENSIONS, incrementVersion, incrementVersionWithPreRelease, VersionError, type BumpOperationResult, } from './versioning/manager.js';
6
+ export { formatDate, appendChangelog } from './versioning/changelog.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ // Changesets
2
+ export { generateChangesetName, generateUniqueChangesetName, } from './changesets/naming.js';
3
+ export { createChangeset } from './changesets/create.js';
4
+ export { parseChangeset, readChangesets, ChangesetParseError, } from './changesets/read.js';
5
+ export { aggregateBumps, extractContractChanges } from './changesets/consume.js';
6
+ // Versioning
7
+ export { VersionManager, PreReleaseManager, VERSIONS_FILE, SNAPSHOTS_DIR, CHANGESETS_DIR, PRE_RELEASE_FILE, DEFAULT_VERSION, SPEC_EXTENSIONS, incrementVersion, incrementVersionWithPreRelease, VersionError, } from './versioning/manager.js';
8
+ export { formatDate, appendChangelog } from './versioning/changelog.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAA8B,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,aAAa;AACb,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC"}