@@ -49469,6 +49469,17 @@ const validVersionNumberRegex = /^v\d+\.\d+\.\d+$/; |
49469 | 49469 | const prUrlRegex = new RegExp("^https://github.com/nodejs/node/pull/\\d+$"); |
49470 | 49470 | const privatePRUrl = "https://github.com/nodejs-private/node-private/pull/"; |
49471 | 49471 |
|
| 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 | + |
49472 | 49483 | const kContainsIllegalKey = Symbol("illegal key"); |
49473 | 49484 | const kWrongKeyOrder = Symbol("Wrong key order"); |
49474 | 49485 | function unorderedKeys(meta) { |
@@ -49488,11 +49499,16 @@ function containsInvalidVersionNumber(version) { |
49488 | 49499 | return version.some(containsInvalidVersionNumber); |
49489 | 49500 | } |
49490 | 49501 |
|
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); |
49496 | 49512 | } |
49497 | 49513 | const getValidSemver = (version) => |
49498 | 49514 | version === VERSION_PLACEHOLDER ? MAX_SAFE_SEMVER_VERSION : version; |
@@ -49569,11 +49585,7 @@ function validateChanges(file, node, changes) { |
49569 | 49585 | } |
49570 | 49586 |
|
49571 | 49587 | 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); |
49577 | 49589 | } else if (areVersionsUnordered(change.version)) { |
49578 | 49590 | file.message(`changes[${index}]: list of versions is not in order`, node); |
49579 | 49591 | } |
@@ -49627,31 +49639,22 @@ function validateMeta(node, file, meta) { |
49627 | 49639 | } |
49628 | 49640 |
|
49629 | 49641 | 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); |
49635 | 49643 | } else if (areVersionsUnordered(meta.added)) { |
49636 | 49644 | file.message("Versions in `added` list are not in order", node); |
49637 | 49645 | } |
49638 | 49646 |
|
49639 | 49647 | if (containsInvalidVersionNumber(meta.deprecated)) { |
49640 | 49648 | 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}`, |
49643 | 49650 | node |
49644 | 49651 | ); |
49645 | 49652 | } else if (areVersionsUnordered(meta.deprecated)) { |
49646 | 49653 | file.message("Versions in `deprecated` list are not in order", node); |
49647 | 49654 | } |
49648 | 49655 |
|
49649 | 49656 | 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); |
49655 | 49658 | } else if (areVersionsUnordered(meta.removed)) { |
49656 | 49659 | file.message("Versions in `removed` list are not in order", node); |
49657 | 49660 | } |
@@ -50490,6 +50493,7 @@ var plugins$2 = [ |
50490 | 50493 | flags: [ |
50491 | 50494 | "bash", |
50492 | 50495 | "c", |
| 50496 | + "cjs", |
50493 | 50497 | "coffee", |
50494 | 50498 | "console", |
50495 | 50499 | "cpp", |
@@ -50498,6 +50502,7 @@ var plugins$2 = [ |
50498 | 50502 | "js", |
50499 | 50503 | "json", |
50500 | 50504 | "markdown", |
| 50505 | + "mjs", |
50501 | 50506 | "powershell", |
50502 | 50507 | "r", |
50503 | 50508 | "text", |
|