@hardlydifficult/ci-scripts 1.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.
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Checks that all dependencies in package.json files use pinned versions.
4
+ * Fails if any dependency uses ^ or ~ prefixes.
5
+ *
6
+ * Usage:
7
+ * npx check-pinned-deps
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=check-pinned-deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-pinned-deps.d.ts","sourceRoot":"","sources":["../src/check-pinned-deps.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG"}
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Checks that all dependencies in package.json files use pinned versions.
5
+ * Fails if any dependency uses ^ or ~ prefixes.
6
+ *
7
+ * Usage:
8
+ * npx check-pinned-deps
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ const fs_1 = require("fs");
12
+ const path_1 = require("path");
13
+ const DEPENDENCY_FIELDS = [
14
+ 'dependencies',
15
+ 'devDependencies',
16
+ 'peerDependencies',
17
+ 'optionalDependencies',
18
+ ];
19
+ const UNPINNED_PATTERN = /^[\^~]/;
20
+ function findPackageJsonFiles(dir, files = []) {
21
+ const entries = (0, fs_1.readdirSync)(dir);
22
+ for (const entry of entries) {
23
+ const fullPath = (0, path_1.join)(dir, entry);
24
+ if (entry === 'node_modules' || entry === 'dist') {
25
+ continue;
26
+ }
27
+ const stat = (0, fs_1.statSync)(fullPath);
28
+ if (stat.isDirectory()) {
29
+ findPackageJsonFiles(fullPath, files);
30
+ }
31
+ else if (entry === 'package.json') {
32
+ files.push(fullPath);
33
+ }
34
+ }
35
+ return files;
36
+ }
37
+ function checkPackageJson(filePath) {
38
+ const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
39
+ const pkg = JSON.parse(content);
40
+ const errors = [];
41
+ for (const field of DEPENDENCY_FIELDS) {
42
+ const deps = pkg[field];
43
+ if (!deps) {
44
+ continue;
45
+ }
46
+ for (const [name, version] of Object.entries(deps)) {
47
+ if (UNPINNED_PATTERN.test(version)) {
48
+ errors.push({
49
+ file: filePath,
50
+ field,
51
+ package: name,
52
+ version,
53
+ });
54
+ }
55
+ }
56
+ }
57
+ return errors;
58
+ }
59
+ function main() {
60
+ const rootDir = process.cwd();
61
+ const packageFiles = findPackageJsonFiles(rootDir);
62
+ const allErrors = [];
63
+ for (const file of packageFiles) {
64
+ const errors = checkPackageJson(file);
65
+ allErrors.push(...errors);
66
+ }
67
+ if (allErrors.length > 0) {
68
+ console.error('Found unpinned dependencies:\n');
69
+ for (const error of allErrors) {
70
+ console.error(` ${error.file}\n ${error.field}.${error.package}: "${error.version}"\n`);
71
+ }
72
+ console.error('\nAll dependencies must use exact versions (no ^ or ~ prefixes).');
73
+ console.error('Fix by removing the ^ or ~ prefix from each version.\n');
74
+ process.exit(1);
75
+ }
76
+ // eslint-disable-next-line no-console
77
+ console.log(`Checked ${String(packageFiles.length)} package.json file(s) - all dependencies are pinned.`);
78
+ }
79
+ main();
80
+ //# sourceMappingURL=check-pinned-deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-pinned-deps.js","sourceRoot":"","sources":["../src/check-pinned-deps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Publishes packages that have changed since the last publish.
4
+ * Auto-increments the patch version for each changed package.
5
+ *
6
+ * Handles inter-package dependencies:
7
+ * - Detects dependency order and publishes dependencies first
8
+ * - Auto-updates dependency versions before publishing dependent packages
9
+ * - Transforms file: references to real versions at publish time
10
+ *
11
+ * Usage:
12
+ * npx monorepo-publish [--packages-dir <dir>]
13
+ *
14
+ * Options:
15
+ * --packages-dir Directory containing packages (default: "packages")
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,357 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Publishes packages that have changed since the last publish.
5
+ * Auto-increments the patch version for each changed package.
6
+ *
7
+ * Handles inter-package dependencies:
8
+ * - Detects dependency order and publishes dependencies first
9
+ * - Auto-updates dependency versions before publishing dependent packages
10
+ * - Transforms file: references to real versions at publish time
11
+ *
12
+ * Usage:
13
+ * npx monorepo-publish [--packages-dir <dir>]
14
+ *
15
+ * Options:
16
+ * --packages-dir Directory containing packages (default: "packages")
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ const child_process_1 = require("child_process");
20
+ const fs_1 = require("fs");
21
+ const path_1 = require("path");
22
+ function parseArgs() {
23
+ const args = process.argv.slice(2);
24
+ let packagesDir = 'packages';
25
+ for (let i = 0; i < args.length; i++) {
26
+ if (args[i] === '--packages-dir') {
27
+ const next = args[i + 1];
28
+ if (next !== undefined && next !== '') {
29
+ packagesDir = next;
30
+ }
31
+ }
32
+ }
33
+ return { packagesDir };
34
+ }
35
+ function exec(command, options = {}) {
36
+ // eslint-disable-next-line no-console
37
+ console.log(`$ ${command}`);
38
+ try {
39
+ const { ignoreError: _ignoreError, ...execOptions } = options;
40
+ const result = (0, child_process_1.execSync)(command, { encoding: 'utf-8', stdio: 'pipe', ...execOptions });
41
+ return typeof result === 'string' ? result.trim() : '';
42
+ }
43
+ catch (error) {
44
+ if (options.ignoreError === true) {
45
+ return '';
46
+ }
47
+ throw error;
48
+ }
49
+ }
50
+ function getPackages(packagesDir) {
51
+ const packagesPath = (0, path_1.join)(process.cwd(), packagesDir);
52
+ const entries = (0, fs_1.readdirSync)(packagesPath);
53
+ const packages = [];
54
+ for (const entry of entries) {
55
+ const packagePath = (0, path_1.join)(packagesPath, entry);
56
+ const stat = (0, fs_1.statSync)(packagePath);
57
+ if (!stat.isDirectory()) {
58
+ continue;
59
+ }
60
+ const packageJsonPath = (0, path_1.join)(packagePath, 'package.json');
61
+ try {
62
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
63
+ if (packageJson.private === true) {
64
+ continue;
65
+ }
66
+ packages.push({
67
+ name: packageJson.name,
68
+ path: packagePath,
69
+ packageJsonPath,
70
+ relativePath: `${packagesDir}/${entry}`,
71
+ version: packageJson.version,
72
+ dependencies: packageJson.dependencies ?? {},
73
+ devDependencies: packageJson.devDependencies ?? {},
74
+ peerDependencies: packageJson.peerDependencies ?? {},
75
+ });
76
+ }
77
+ catch {
78
+ // Skip if no package.json
79
+ }
80
+ }
81
+ return packages;
82
+ }
83
+ /**
84
+ * Sort packages so dependencies are published first.
85
+ * Uses topological sort based on inter-package dependencies.
86
+ */
87
+ function sortByDependencyOrder(packages) {
88
+ const packageNames = new Set(packages.map((p) => p.name));
89
+ const graph = new Map();
90
+ const inDegree = new Map();
91
+ // Initialize
92
+ for (const pkg of packages) {
93
+ graph.set(pkg.name, []);
94
+ inDegree.set(pkg.name, 0);
95
+ }
96
+ // Build dependency graph (only for packages in this monorepo)
97
+ for (const pkg of packages) {
98
+ const allDeps = {
99
+ ...pkg.dependencies,
100
+ ...pkg.devDependencies,
101
+ ...pkg.peerDependencies,
102
+ };
103
+ for (const dep of Object.keys(allDeps)) {
104
+ if (packageNames.has(dep)) {
105
+ // dep must be published before pkg
106
+ const dependents = graph.get(dep);
107
+ if (dependents) {
108
+ dependents.push(pkg.name);
109
+ }
110
+ const currentDegree = inDegree.get(pkg.name);
111
+ if (currentDegree !== undefined) {
112
+ inDegree.set(pkg.name, currentDegree + 1);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ // Kahn's algorithm for topological sort
118
+ const queue = [];
119
+ for (const [name, degree] of inDegree) {
120
+ if (degree === 0) {
121
+ queue.push(name);
122
+ }
123
+ }
124
+ const sorted = [];
125
+ while (queue.length > 0) {
126
+ const current = queue.shift();
127
+ if (current === undefined) {
128
+ break;
129
+ }
130
+ sorted.push(current);
131
+ const dependents = graph.get(current);
132
+ if (dependents) {
133
+ for (const dependent of dependents) {
134
+ const currentDegree = inDegree.get(dependent);
135
+ if (currentDegree !== undefined) {
136
+ const newDegree = currentDegree - 1;
137
+ inDegree.set(dependent, newDegree);
138
+ if (newDegree === 0) {
139
+ queue.push(dependent);
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ if (sorted.length !== packages.length) {
146
+ throw new Error('Circular dependency detected between packages');
147
+ }
148
+ // Return packages in sorted order
149
+ const packageMap = new Map(packages.map((p) => [p.name, p]));
150
+ return sorted
151
+ .map((name) => packageMap.get(name))
152
+ .filter((pkg) => pkg !== undefined);
153
+ }
154
+ function hasChanges(packagePath, lastTag) {
155
+ if (lastTag === null || lastTag === '') {
156
+ return true;
157
+ }
158
+ try {
159
+ const diff = exec(`git diff --name-only ${lastTag} HEAD -- ${packagePath}`, {
160
+ ignoreError: true,
161
+ });
162
+ return diff.length > 0;
163
+ }
164
+ catch {
165
+ return true;
166
+ }
167
+ }
168
+ function getLastTag(packageName) {
169
+ try {
170
+ const safeName = packageName.replace('@', '').replace('/', '-');
171
+ const tags = exec(`git tag -l "${safeName}-v*" --sort=-v:refname`, { ignoreError: true });
172
+ const tagList = tags.split('\n').filter(Boolean);
173
+ return tagList[0] ?? null;
174
+ }
175
+ catch {
176
+ return null;
177
+ }
178
+ }
179
+ /**
180
+ * Get the latest patch version of a package from npm for a given major.minor.
181
+ * Returns the full version string (e.g., "1.1.5") or null if no versions exist for that major.minor.
182
+ */
183
+ function getLatestNpmPatchVersion(packageName, majorMinor) {
184
+ try {
185
+ // Get all versions from npm and filter to the major.minor we want
186
+ const allVersions = exec(`npm view ${packageName} versions --json`, { ignoreError: false });
187
+ const versions = JSON.parse(allVersions);
188
+ // Filter to versions matching our major.minor and find the highest patch
189
+ const matchingVersions = versions
190
+ .filter((v) => v.startsWith(`${majorMinor}.`))
191
+ .map((v) => {
192
+ const parts = v.split('.');
193
+ return { full: v, patch: parseInt(parts[2] ?? '0', 10) };
194
+ })
195
+ .sort((a, b) => b.patch - a.patch);
196
+ return matchingVersions[0]?.full ?? null;
197
+ }
198
+ catch {
199
+ return null;
200
+ }
201
+ }
202
+ /**
203
+ * Update a package's dependencies to use newly published versions.
204
+ * Handles both:
205
+ * - file:../packageName references (transforms to real version)
206
+ * - version numbers that need updating
207
+ *
208
+ * Note: peerDependencies are excluded from file: transformations since they
209
+ * should use version ranges for compatibility, not exact versions.
210
+ */
211
+ function updateInternalDependencies(pkg, publishedVersions) {
212
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(pkg.packageJsonPath, 'utf-8'));
213
+ let updated = false;
214
+ const depTypes = ['dependencies', 'devDependencies', 'peerDependencies'];
215
+ for (const depType of depTypes) {
216
+ const deps = packageJson[depType];
217
+ if (!deps) {
218
+ continue;
219
+ }
220
+ for (const [depName, currentVersion] of Object.entries(deps)) {
221
+ // Check if this is a file: reference to a monorepo package
222
+ if (currentVersion.startsWith('file:')) {
223
+ // Skip file: transformations for peerDependencies - they should use
224
+ // version ranges for compatibility, not exact versions
225
+ if (depType === 'peerDependencies') {
226
+ console.warn(` Warning: ${depName} in peerDependencies uses file: reference. ` +
227
+ `Consider using a version range instead.`);
228
+ continue;
229
+ }
230
+ const newVersion = publishedVersions.get(depName);
231
+ if (newVersion !== undefined && newVersion !== '') {
232
+ // eslint-disable-next-line no-console
233
+ console.log(` Transforming ${depName}: ${currentVersion} → ${newVersion}`);
234
+ deps[depName] = newVersion;
235
+ updated = true;
236
+ }
237
+ }
238
+ // Check if this is a version that needs updating
239
+ else {
240
+ const newVersion = publishedVersions.get(depName);
241
+ if (newVersion !== undefined && newVersion !== '' && currentVersion !== newVersion) {
242
+ // eslint-disable-next-line no-console
243
+ console.log(` Updating ${depName}: ${currentVersion} → ${newVersion}`);
244
+ deps[depName] = newVersion;
245
+ updated = true;
246
+ }
247
+ }
248
+ }
249
+ }
250
+ if (updated) {
251
+ (0, fs_1.writeFileSync)(pkg.packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n');
252
+ }
253
+ return updated;
254
+ }
255
+ function main() {
256
+ const { packagesDir } = parseArgs();
257
+ const packages = getPackages(packagesDir);
258
+ if (packages.length === 0) {
259
+ // eslint-disable-next-line no-console
260
+ console.log('No publishable packages found.');
261
+ return;
262
+ }
263
+ // Sort packages so dependencies are published first
264
+ const sortedPackages = sortByDependencyOrder(packages);
265
+ // eslint-disable-next-line no-console
266
+ console.log(`Found ${String(packages.length)} package(s) (in publish order):`);
267
+ sortedPackages.forEach((p, i) => {
268
+ // eslint-disable-next-line no-console
269
+ console.log(` ${String(i + 1)}. ${p.name}`);
270
+ });
271
+ // Track versions we've published this run
272
+ const publishedVersions = new Map();
273
+ for (const pkg of sortedPackages) {
274
+ // eslint-disable-next-line no-console
275
+ console.log(`\n--- Processing ${pkg.name} ---`);
276
+ const lastTag = getLastTag(pkg.name);
277
+ const changed = hasChanges(pkg.relativePath, lastTag);
278
+ // Check if any of its internal dependencies were just published
279
+ const depsUpdated = updateInternalDependencies(pkg, publishedVersions);
280
+ if (!changed && !depsUpdated) {
281
+ // eslint-disable-next-line no-console
282
+ console.log(`No changes since last publish (${lastTag ?? 'none'}). Skipping.`);
283
+ continue;
284
+ }
285
+ if (depsUpdated && !changed) {
286
+ // eslint-disable-next-line no-console
287
+ console.log('Internal dependencies updated. Publishing new version.');
288
+ }
289
+ else {
290
+ // eslint-disable-next-line no-console
291
+ console.log(lastTag !== null && lastTag !== ''
292
+ ? `Changes detected since ${lastTag}.`
293
+ : 'No previous tag found. Publishing initial version.');
294
+ }
295
+ // Get the major.minor version from package.json - this is controlled by developers.
296
+ // Then auto-determine the patch version based on what's already published to npm.
297
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(pkg.packageJsonPath, 'utf-8'));
298
+ const versionParts = packageJson.version.split('.');
299
+ const major = versionParts[0] ?? '0';
300
+ const minor = versionParts[1] ?? '0';
301
+ const majorMinor = `${major}.${minor}`;
302
+ // Check npm for the latest patch version of this major.minor
303
+ const latestNpmVersion = getLatestNpmPatchVersion(pkg.name, majorMinor);
304
+ let newVersion;
305
+ if (latestNpmVersion !== null) {
306
+ // Increment patch from the latest npm version
307
+ const npmParts = latestNpmVersion.split('.');
308
+ const nextPatch = parseInt(npmParts[2] ?? '0', 10) + 1;
309
+ newVersion = `${majorMinor}.${String(nextPatch)}`;
310
+ // eslint-disable-next-line no-console
311
+ console.log(`Latest npm version for ${majorMinor}.x: ${latestNpmVersion}`);
312
+ }
313
+ else {
314
+ // No versions exist for this major.minor, start at .0
315
+ newVersion = `${majorMinor}.0`;
316
+ // eslint-disable-next-line no-console
317
+ console.log(`No existing versions for ${majorMinor}.x on npm.`);
318
+ }
319
+ // Update package.json with the new version
320
+ packageJson.version = newVersion;
321
+ (0, fs_1.writeFileSync)(pkg.packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n');
322
+ // eslint-disable-next-line no-console
323
+ console.log(`New version: ${newVersion}`);
324
+ // Track this version for dependent packages
325
+ publishedVersions.set(pkg.name, newVersion);
326
+ // Publish
327
+ // eslint-disable-next-line no-console
328
+ console.log('Publishing to npm...');
329
+ try {
330
+ exec(`npm publish --access public`, { cwd: pkg.path });
331
+ // eslint-disable-next-line no-console
332
+ console.log(`Successfully published ${pkg.name}@${newVersion}`);
333
+ // Create and push git tag
334
+ const safeName = pkg.name.replace('@', '').replace('/', '-');
335
+ const tagName = `${safeName}-v${newVersion}`;
336
+ exec(`git tag ${tagName}`);
337
+ exec(`git push origin ${tagName}`);
338
+ // eslint-disable-next-line no-console
339
+ console.log(`Created and pushed tag: ${tagName}`);
340
+ }
341
+ catch (error) {
342
+ const message = error instanceof Error ? error.message : String(error);
343
+ console.error(`Failed to publish ${pkg.name}:`, message);
344
+ process.exit(1);
345
+ }
346
+ }
347
+ // eslint-disable-next-line no-console
348
+ console.log('\nDone!');
349
+ }
350
+ try {
351
+ main();
352
+ }
353
+ catch (error) {
354
+ console.error('Publish failed:', error);
355
+ process.exit(1);
356
+ }
357
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "@hardlydifficult/ci-scripts",
3
+ "version": "1.0.0",
4
+ "description": "Reusable CI scripts",
5
+ "bin": {
6
+ "check-pinned-deps": "./dist/check-pinned-deps.js",
7
+ "monorepo-publish": "./dist/publish.js"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "clean": "rm -rf dist",
15
+ "lint": "tsc --noEmit"
16
+ },
17
+ "devDependencies": {
18
+ "@types/node": "20.19.31",
19
+ "typescript": "5.8.3"
20
+ }
21
+ }