@@ -49469,6 +49469,17 @@ const validVersionNumberRegex = /^v\d+\.\d+\.\d+$/;
4946949469const prUrlRegex = new RegExp("^https://github.com/nodejs/node/pull/\\d+$");
4947049470const privatePRUrl = "https://github.com/nodejs-private/node-private/pull/";
4947149471
49472+ let releasedVersions;
49473+ let invalidVersionMessage = "version(s) must respect the pattern `vx.x.x` or";
49474+ if (process.env.NODE_RELEASED_VERSIONS) {
49475+ console.log("Using release list from env...");
49476+ releasedVersions = process.env.NODE_RELEASED_VERSIONS.split(",").map(
49477+ (v) => `v${v}`
49478+ );
49479+ invalidVersionMessage = `version not listed in the changelogs, `;
49480+ }
49481+ invalidVersionMessage += `use the placeholder \`${VERSION_PLACEHOLDER}\``;
49482+
4947249483const kContainsIllegalKey = Symbol("illegal key");
4947349484const kWrongKeyOrder = Symbol("Wrong key order");
4947449485function unorderedKeys(meta) {
@@ -49488,11 +49499,16 @@ function containsInvalidVersionNumber(version) {
4948849499 return version.some(containsInvalidVersionNumber);
4948949500 }
4949049501
49491- return (
49492- version !== undefined &&
49493- version !== VERSION_PLACEHOLDER &&
49494- !validVersionNumberRegex.test(version)
49495- );
49502+ if (version === undefined || version === VERSION_PLACEHOLDER) return false;
49503+
49504+ if (
49505+ releasedVersions &&
49506+ // Always ignore 0.0.x and 0.1.x release numbers:
49507+ (version[1] !== "0" || (version[3] !== "0" && version[3] !== "1"))
49508+ )
49509+ return !releasedVersions.includes(version);
49510+
49511+ return !validVersionNumberRegex.test(version);
4949649512}
4949749513const getValidSemver = (version) =>
4949849514 version === VERSION_PLACEHOLDER ? MAX_SAFE_SEMVER_VERSION : version;
@@ -49569,11 +49585,7 @@ function validateChanges(file, node, changes) {
4956949585 }
4957049586
4957149587 if (containsInvalidVersionNumber(change.version)) {
49572- file.message(
49573- `changes[${index}]: version(s) must respect the pattern \`vx.x.x\` ` +
49574- `or use the placeholder \`${VERSION_PLACEHOLDER}\``,
49575- node
49576- );
49588+ file.message(`changes[${index}]: ${invalidVersionMessage}`, node);
4957749589 } else if (areVersionsUnordered(change.version)) {
4957849590 file.message(`changes[${index}]: list of versions is not in order`, node);
4957949591 }
@@ -49627,31 +49639,22 @@ function validateMeta(node, file, meta) {
4962749639 }
4962849640
4962949641 if (containsInvalidVersionNumber(meta.added)) {
49630- file.message(
49631- "Invalid `added` value: version(s) must respect the pattern `vx.x.x` " +
49632- `or use the placeholder \`${VERSION_PLACEHOLDER}\``,
49633- node
49634- );
49642+ file.message(`Invalid \`added\` value: ${invalidVersionMessage}`, node);
4963549643 } else if (areVersionsUnordered(meta.added)) {
4963649644 file.message("Versions in `added` list are not in order", node);
4963749645 }
4963849646
4963949647 if (containsInvalidVersionNumber(meta.deprecated)) {
4964049648 file.message(
49641- "Invalid `deprecated` value: version(s) must respect the pattern `vx.x.x` " +
49642- `or use the placeholder \`${VERSION_PLACEHOLDER}\``,
49649+ `Invalid \`deprecated\` value: ${invalidVersionMessage}`,
4964349650 node
4964449651 );
4964549652 } else if (areVersionsUnordered(meta.deprecated)) {
4964649653 file.message("Versions in `deprecated` list are not in order", node);
4964749654 }
4964849655
4964949656 if (containsInvalidVersionNumber(meta.removed)) {
49650- file.message(
49651- "Invalid `removed` value: version(s) must respect the pattern `vx.x.x` " +
49652- `or use the placeholder \`${VERSION_PLACEHOLDER}\``,
49653- node
49654- );
49657+ file.message(`Invalid \`removed\` value: ${invalidVersionMessage}`, node);
4965549658 } else if (areVersionsUnordered(meta.removed)) {
4965649659 file.message("Versions in `removed` list are not in order", node);
4965749660 }
@@ -50490,6 +50493,7 @@ var plugins$2 = [
5049050493 flags: [
5049150494 "bash",
5049250495 "c",
50496+ "cjs",
5049350497 "coffee",
5049450498 "console",
5049550499 "cpp",
@@ -50498,6 +50502,7 @@ var plugins$2 = [
5049850502 "js",
5049950503 "json",
5050050504 "markdown",
50505+ "mjs",
5050150506 "powershell",
5050250507 "r",
5050350508 "text",
0 commit comments