From 9ac2550fde1a9ee2d3ca4278553b7735e623ec54 Mon Sep 17 00:00:00 2001 From: Anton Nguyen Date: Mon, 23 Mar 2026 12:03:46 -0400 Subject: [PATCH] Upgrade to node24 --- .nvmrc | 2 +- action.yml | 2 +- dist/index.js | 57 ++++++++++++++++++++++++++--------------------- package-lock.json | 43 +++++++++++++++++++++++------------ package.json | 4 ++-- tsconfig.json | 3 ++- yarn.lock | 26 ++++++++++----------- 7 files changed, 79 insertions(+), 58 deletions(-) diff --git a/.nvmrc b/.nvmrc index 0510f29..1b1b507 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -12.7.0 \ No newline at end of file +v24.12.0 \ No newline at end of file diff --git a/action.yml b/action.yml index 88bd6d9..6bcb84e 100644 --- a/action.yml +++ b/action.yml @@ -25,5 +25,5 @@ outputs: changelog: description: A markdown representation of the changes in the new release runs: - using: 'node20' + using: 'node24' main: 'dist/index.js' \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 28561c3..70256e9 100644 --- a/dist/index.js +++ b/dist/index.js @@ -8,7 +8,11 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -18,27 +22,28 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? ( }) : function(o, v) { o["default"] = v; }); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); Object.defineProperty(exports, "__esModule", ({ value: true })); const core = __importStar(__nccwpck_require__(2186)); const github = __importStar(__nccwpck_require__(5438)); const semver = __importStar(__nccwpck_require__(1383)); -const run = () => __awaiter(void 0, void 0, void 0, function* () { +const run = async () => { try { const includePrerelease = parseBoolean(core.getInput('include-prerelease', { required: false @@ -58,7 +63,7 @@ const run = () => __awaiter(void 0, void 0, void 0, function* () { const nwo = process.env['GITHUB_REPOSITORY'] || '/'; const [owner, repo] = nwo.split('/'); core.info(`Listing releases for ${owner}/${repo}`); - const { data: releases } = yield octokit.rest.repos.listReleases({ + const { data: releases } = await octokit.rest.repos.listReleases({ owner, repo }); @@ -71,16 +76,16 @@ const run = () => __awaiter(void 0, void 0, void 0, function* () { core.error(`Latest release for "${nwo}" could not be found`); return; } - const base = (latestRelease === null || latestRelease === void 0 ? void 0 : latestRelease.tag_name) || ''; + const base = latestRelease?.tag_name || ''; core.info(`Comparing commits for ${owner}/${repo} on ${base} against ${defaultBranch}`); - const { data: comparison } = yield octokit.rest.repos.compareCommits({ + const { data: comparison } = await octokit.rest.repos.compareCommits({ owner, repo, base, head: defaultBranch }); core.info(`${defaultBranch} is ${comparison.status} by ${comparison.total_commits} commit(s)`); - const lastReleaseDate = (latestRelease === null || latestRelease === void 0 ? void 0 : latestRelease.published_at) || ''; + const lastReleaseDate = latestRelease?.published_at || ''; core.setOutput('latest-release-date', lastReleaseDate); core.info(`latest release date is ${lastReleaseDate}`); core.setOutput('commit-count', comparison.total_commits.toString()); @@ -88,7 +93,7 @@ const run = () => __awaiter(void 0, void 0, void 0, function* () { core.info('Release is up-to-date'); return; } - const newTag = semver.inc(latestRelease === null || latestRelease === void 0 ? void 0 : latestRelease.tag_name, 'patch'); + const newTag = semver.inc(latestRelease?.tag_name, 'patch'); let newVersion = `v${newTag}`; if (versionOverride) { newVersion = versionOverride; @@ -119,10 +124,10 @@ const run = () => __awaiter(void 0, void 0, void 0, function* () { const changeLog = `## Authors\n\n${authors}\n## Changes\n\n${compareUrl}\n\n${commitSummary}`; core.setOutput('changelog', changeLog); core.info(`Creating release ${newVersion} for ${owner}/${repo}`); - yield octokit.rest.repos.createRelease({ + await octokit.rest.repos.createRelease({ owner, repo, - tag_name: newVersion, + tag_name: newVersion, // eslint-disable-line @typescript-eslint/camelcase name: newVersion, body: changeLog }); @@ -130,7 +135,7 @@ const run = () => __awaiter(void 0, void 0, void 0, function* () { catch (error) { core.setFailed(`create-release failure: ${error}`); } -}); +}; exports["default"] = run; function parseBoolean(toParse) { return !!(toParse && toParse.toLowerCase() === 'true'); diff --git a/package-lock.json b/package-lock.json index ddad2d0..4ee1e4e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@actions/github": "^5.1.1", "@types/jest": "^29.5.0", "@types/js-yaml": "3.12.1", - "@types/node": "20.11.1", + "@types/node": "^24.12.0", "@typescript-eslint/eslint-plugin": "2.3.0", "@typescript-eslint/parser": "2.3.0", "@vercel/ncc": "^0.36.1", @@ -30,7 +30,7 @@ "nock": "^13.0.2", "prettier": "2.0.4", "ts-jest": "^29.1.0", - "typescript": "^4.9.5" + "typescript": "^5.7.2" } }, "node_modules/@actions/core": { @@ -121,6 +121,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -1591,6 +1592,7 @@ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", "dev": true, + "peer": true, "dependencies": { "@octokit/auth-token": "^2.4.4", "@octokit/graphql": "^4.5.8", @@ -1885,12 +1887,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.11.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.1.tgz", - "integrity": "sha512-DsXojJUES2M+FE8CpptJTKpg+r54moV9ZEncPstni1WHFmTcCzeFLnMFfyhCVS8XNOy/OQG+8lVxRLRrVHmV5A==", + "version": "24.12.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.0.tgz", + "integrity": "sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==", "dev": true, + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~7.16.0" } }, "node_modules/@types/parse-json": { @@ -2008,6 +2011,7 @@ "integrity": "sha512-Dc+LAtHts0yDuusxG0NVjGvrpPy2kZauxqPbfFs0fmcMB4JhNs+WwIDMFGWeKjbGoPt/SIUC9XJ7E0ZD/f8InQ==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@types/eslint-visitor-keys": "^1.0.0", "@typescript-eslint/experimental-utils": "2.3.0", @@ -2140,6 +2144,7 @@ "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2630,6 +2635,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -3368,6 +3374,7 @@ "integrity": "sha512-WTVEzK3lSFoXUovDHEbkJqCVPEPwbhCq4trDktNI6ygs7aO41d4cDT0JFAT5MivzZeVLWlg7vHL+bgrQv/t3vA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", @@ -3656,6 +3663,7 @@ "integrity": "sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@types/eslint-visitor-keys": "^1.0.0", "@typescript-eslint/experimental-utils": "1.13.0", @@ -3735,6 +3743,7 @@ "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -4869,6 +4878,7 @@ "integrity": "sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 10.x" } @@ -5481,6 +5491,7 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -7847,6 +7858,7 @@ "integrity": "sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -8875,16 +8887,18 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, + "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/uglify-js": { @@ -8913,10 +8927,11 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" }, "node_modules/universal-user-agent": { "version": "6.0.1", diff --git a/package.json b/package.json index 8c2a0e5..4fdc5f2 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@actions/github": "^5.1.1", "@types/jest": "^29.5.0", "@types/js-yaml": "3.12.1", - "@types/node": "20.11.1", + "@types/node": "^24.12.0", "@typescript-eslint/eslint-plugin": "2.3.0", "@typescript-eslint/parser": "2.3.0", "@vercel/ncc": "^0.36.1", @@ -46,7 +46,7 @@ "nock": "^13.0.2", "prettier": "2.0.4", "ts-jest": "^29.1.0", - "typescript": "^4.9.5" + "typescript": "^5.7.2" }, "bugs": { "url": "https://github.com/ecobee/create-release/issues" diff --git a/tsconfig.json b/tsconfig.json index 6764e85..c662902 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,8 @@ { "compilerOptions": { - "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ + "target": "ES2022", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ + "lib": ["ES2022"], /* Specify library files to be included in the compilation. */ "outDir": "./lib", /* Redirect output structure to the directory. */ "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ "strict": true, /* Enable all strict type-checking options. */ diff --git a/yarn.lock b/yarn.lock index 37dcb98..1b7ffe4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -897,12 +897,12 @@ resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/node@*", "@types/node@20.11.1": - version "20.11.1" - resolved "https://registry.npmjs.org/@types/node/-/node-20.11.1.tgz" - integrity sha512-DsXojJUES2M+FE8CpptJTKpg+r54moV9ZEncPstni1WHFmTcCzeFLnMFfyhCVS8XNOy/OQG+8lVxRLRrVHmV5A== +"@types/node@*", "@types/node@^24.12.0": + version "24.12.0" + resolved "https://registry.npmjs.org/@types/node/-/node-24.12.0.tgz" + integrity sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ== dependencies: - undici-types "~5.26.4" + undici-types "~7.16.0" "@types/parse-json@^4.0.0": version "4.0.0" @@ -4426,20 +4426,20 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^4.9.5, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=4.3 <6": - version "4.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@^5.7.2, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=4.3 <6": + version "5.9.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== uglify-js@^3.1.4: version "3.19.3" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz" integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== undici@^5.25.4: version "5.29.0"