@jsii/check-node 1.57.0 → 1.60.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.
@@ -1,50 +1,77 @@
1
- export declare const enum SupportLevel {
1
+ import { Range } from 'semver';
2
+ /**
3
+ * The support information for a given node release range.
4
+ *
5
+ * @see https://nodejs.org/en/about/releases/
6
+ */
7
+ export declare class NodeRelease {
8
+ /**
9
+ * How long before enf-of-life do we start warning customers? Expressed in
10
+ * milliseconds to make it easier to deal with JS dates.
11
+ */
12
+ private static readonly DEPRECATION_WINDOW_MS;
13
+ /**
14
+ * All registered node releases.
15
+ */
16
+ static readonly ALL_RELEASES: readonly NodeRelease[];
17
+ /**
18
+ * @returns the `NodeRelease` corresponding to the version of the node runtime
19
+ * executing this code (as provided by `process.version`), and a
20
+ * boolean indicating whether this version is known to be broken. If
21
+ * the runtime does not correspond to a known node major, this
22
+ * returns an `undefined` release object.
23
+ */
24
+ static forThisRuntime(): {
25
+ nodeRelease: NodeRelease | undefined;
26
+ knownBroken: boolean;
27
+ };
28
+ /**
29
+ * The major version of this node release.
30
+ */
31
+ readonly majorVersion: number;
32
+ /**
33
+ * The date on which this release range starts to be considered end-of-life.
34
+ * May be `undefined` for "ancient" releases (before Node 12).
35
+ */
36
+ readonly endOfLifeDate: Date | undefined;
2
37
  /**
3
- * Soft-deprecated, removed as of releases made starting at DEADLINE. This
4
- * will output a yellow warning to the console, until the DEADLINE has been
5
- * reached, at which point it'll be a SCARY RED WARNING.
38
+ * Determines whether this release is currently considered end-of-life.
6
39
  */
7
- DEPRECATED = "deprecated",
40
+ readonly endOfLife: boolean;
8
41
  /**
9
- * Supported releases, nothing to see. No message will be output.
42
+ * Determines whether this release is within the deprecation window ahead of
43
+ * it's end-of-life date.
10
44
  */
11
- SUPPORTED = "supported",
45
+ readonly deprecated: boolean;
12
46
  /**
13
- * EOL releases are unsupported, so this will emit a SCARY RED WARNING.
47
+ * If `true` denotes that this version of node has not been added to the test
48
+ * matrix yet. This is used when adding not-yet-released versions of node that
49
+ * are already planned (typically one or two years out).
50
+ *
51
+ * @default false
14
52
  */
15
- END_OF_LIFE = "end-of-life",
53
+ readonly untested: boolean;
16
54
  /**
17
- * Not end-of-life, but also not supported. This is usually the case for early
18
- * releases on a new major train, where some of the features are not available
19
- * yet. These emit a SCARY RED WARNING, but the messaging is slightly
20
- * different than that of END_OF_LIFE.
55
+ * The range of versions from this release line that are supported (early
56
+ * releases in a new line often lack essential features, and some have known
57
+ * bugs).
21
58
  */
22
- UNSUPPORTED = "unsupported",
59
+ readonly supportedRange: Range;
23
60
  /**
24
- * Those releases are newer than the current software package, so we have not
25
- * tested with it. People may encounter all kinds of weird bugs, especially
26
- * early in the release cycle... So we'll issue a yellow warning here.
61
+ * Determines whether this major version line is currently "in support",
62
+ * meaning it is not end-of-life nor pending.
27
63
  */
28
- UNTESTED = "untested"
64
+ readonly supported: boolean;
65
+ /** @internal visible for testing */
66
+ constructor(majorVersion: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11, opts: {
67
+ endOfLife: true;
68
+ });
69
+ /** @internal visible for testing */
70
+ constructor(majorVersion: number, opts: {
71
+ endOfLife: Date;
72
+ untested?: boolean;
73
+ supportedRange?: string;
74
+ });
75
+ toString(): string;
29
76
  }
30
- /**
31
- * The deadline after which deprecated releases will move to
32
- * `SupportLevel.END_OF_LIFE`.
33
- */
34
- export declare const DEADLINE = "2021-09-01";
35
- /**
36
- * The DEADLINE, expressed in milliseconds since the epoch.
37
- */
38
- export declare const DEADLINE_EPOCH_MS: number;
39
- /**
40
- * For each SemVer range, what is the support level for such versions of Node.
41
- * The ranges are checked in declaration order (so it is a good idea to keep the
42
- * left-open ranges at the beginning, and the right-open ranges at the end.
43
- * First match wins.
44
- *
45
- * Also, if you are setting a new entry to `SupportLevel.DEPRECATED`, do not
46
- * forget to also change the `DEADLINE` value.
47
- */
48
- export declare const VERSION_SUPPORT: {
49
- readonly [range: string]: SupportLevel;
50
- };
77
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAC;AAIvC;;;;GAIG;AACH,qBAAa,WAAW;IACtB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAgC;IAE7E;;OAEG;IACH,gBAAuB,YAAY,EAAE,SAAS,WAAW,EAAE,CAkCzD;IAEF;;;;;;OAMG;WACW,cAAc,IAAI;QAC9B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;QACrC,WAAW,EAAE,OAAO,CAAC;KACtB;IAgBD;;OAEG;IACH,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC;;;OAGG;IACH,SAAgB,aAAa,EAAE,IAAI,GAAG,SAAS,CAAC;IAEhD;;OAEG;IACH,SAAgB,SAAS,EAAE,OAAO,CAAC;IAEnC;;;OAGG;IACH,SAAgB,UAAU,EAAE,OAAO,CAAC;IAEpC;;;;;;OAMG;IACH,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAElC;;;;OAIG;IACH,SAAgB,cAAc,EAAE,KAAK,CAAC;IAEtC;;;OAGG;IACH,SAAgB,SAAS,EAAE,OAAO,CAAC;IAEnC,oCAAoC;gBAElC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAC7D,IAAI,EAAE;QAAE,SAAS,EAAE,IAAI,CAAA;KAAE;IAE3B,oCAAoC;gBAElC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;QACJ,SAAS,EAAE,IAAI,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IA6BI,QAAQ,IAAI,MAAM;CAQ1B"}
package/lib/constants.js CHANGED
@@ -1,35 +1,95 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VERSION_SUPPORT = exports.DEADLINE_EPOCH_MS = exports.DEADLINE = void 0;
3
+ exports.NodeRelease = void 0;
4
+ const process = require("process");
5
+ const semver_1 = require("semver");
6
+ const ONE_DAY_IN_MILLISECONDS = 86400000;
4
7
  /**
5
- * The deadline after which deprecated releases will move to
6
- * `SupportLevel.END_OF_LIFE`.
8
+ * The support information for a given node release range.
9
+ *
10
+ * @see https://nodejs.org/en/about/releases/
7
11
  */
8
- exports.DEADLINE = '2021-09-01';
12
+ class NodeRelease {
13
+ /** @internal visible for testing */
14
+ constructor(majorVersion, opts) {
15
+ this.majorVersion = majorVersion;
16
+ this.endOfLifeDate = opts.endOfLife === true ? undefined : opts.endOfLife;
17
+ this.untested = opts.untested ?? false;
18
+ this.supportedRange = new semver_1.Range(opts.supportedRange ?? `^${majorVersion}.0.0`);
19
+ this.endOfLife =
20
+ opts.endOfLife === true || opts.endOfLife.getTime() <= Date.now();
21
+ this.deprecated =
22
+ !this.endOfLife &&
23
+ opts.endOfLife !== true &&
24
+ opts.endOfLife.getTime() - NodeRelease.DEPRECATION_WINDOW_MS <=
25
+ Date.now();
26
+ this.supported = !this.untested && !this.endOfLife;
27
+ }
28
+ /**
29
+ * @returns the `NodeRelease` corresponding to the version of the node runtime
30
+ * executing this code (as provided by `process.version`), and a
31
+ * boolean indicating whether this version is known to be broken. If
32
+ * the runtime does not correspond to a known node major, this
33
+ * returns an `undefined` release object.
34
+ */
35
+ static forThisRuntime() {
36
+ const semver = new semver_1.SemVer(process.version);
37
+ const majorVersion = semver.major;
38
+ for (const nodeRelease of this.ALL_RELEASES) {
39
+ if (nodeRelease.majorVersion === majorVersion) {
40
+ return {
41
+ nodeRelease,
42
+ knownBroken: !nodeRelease.supportedRange.test(semver),
43
+ };
44
+ }
45
+ }
46
+ return { nodeRelease: undefined, knownBroken: false };
47
+ }
48
+ toString() {
49
+ const eolInfo = this.endOfLifeDate
50
+ ? ` (Planned end-of-life: ${this.endOfLifeDate
51
+ .toISOString()
52
+ .slice(0, 10)})`
53
+ : '';
54
+ return `${this.supportedRange.raw}${eolInfo}`;
55
+ }
56
+ }
57
+ exports.NodeRelease = NodeRelease;
9
58
  /**
10
- * The DEADLINE, expressed in milliseconds since the epoch.
59
+ * How long before enf-of-life do we start warning customers? Expressed in
60
+ * milliseconds to make it easier to deal with JS dates.
11
61
  */
12
- exports.DEADLINE_EPOCH_MS = new Date(`${exports.DEADLINE}T00:00:00.000Z`).getTime();
62
+ NodeRelease.DEPRECATION_WINDOW_MS = 30 * ONE_DAY_IN_MILLISECONDS;
13
63
  /**
14
- * For each SemVer range, what is the support level for such versions of Node.
15
- * The ranges are checked in declaration order (so it is a good idea to keep the
16
- * left-open ranges at the beginning, and the right-open ranges at the end.
17
- * First match wins.
18
- *
19
- * Also, if you are setting a new entry to `SupportLevel.DEPRECATED`, do not
20
- * forget to also change the `DEADLINE` value.
64
+ * All registered node releases.
21
65
  */
22
- exports.VERSION_SUPPORT = {
23
- '<12.0.0-0': "end-of-life" /* END_OF_LIFE */,
24
- '<12.7.0': "unsupported" /* UNSUPPORTED */,
25
- '^12.7.0': "supported" /* SUPPORTED */,
26
- '^13.0.0-0': "end-of-life" /* END_OF_LIFE */,
27
- '<14.5.0': "unsupported" /* UNSUPPORTED */,
28
- '^14.5.0': "supported" /* SUPPORTED */,
29
- '^15.0.0-0': "end-of-life" /* END_OF_LIFE */,
30
- '<16.3.0': "unsupported" /* UNSUPPORTED */,
31
- '^16.3.0': "supported" /* SUPPORTED */,
32
- '<17.3.0': "unsupported" /* UNSUPPORTED */,
33
- '^17.3.0': "supported" /* SUPPORTED */,
34
- };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrQ0E7OztHQUdHO0FBQ1UsUUFBQSxRQUFRLEdBQUcsWUFBWSxDQUFDO0FBQ3JDOztHQUVHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLElBQUksQ0FDdkMsR0FBRyxnQkFBUSxnQkFBZ0IsQ0FDNUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUVaOzs7Ozs7OztHQVFHO0FBQ1UsUUFBQSxlQUFlLEdBQStDO0lBQ3pFLFdBQVcsaUNBQTBCO0lBQ3JDLFNBQVMsaUNBQTBCO0lBQ25DLFNBQVMsNkJBQXdCO0lBQ2pDLFdBQVcsaUNBQTBCO0lBQ3JDLFNBQVMsaUNBQTBCO0lBQ25DLFNBQVMsNkJBQXdCO0lBQ2pDLFdBQVcsaUNBQTBCO0lBQ3JDLFNBQVMsaUNBQTBCO0lBQ25DLFNBQVMsNkJBQXdCO0lBQ2pDLFNBQVMsaUNBQTBCO0lBQ25DLFNBQVMsNkJBQXdCO0NBRWxDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBTdXBwb3J0TGV2ZWwge1xuICAvKipcbiAgICogU29mdC1kZXByZWNhdGVkLCByZW1vdmVkIGFzIG9mIHJlbGVhc2VzIG1hZGUgc3RhcnRpbmcgYXQgREVBRExJTkUuIFRoaXNcbiAgICogd2lsbCBvdXRwdXQgYSB5ZWxsb3cgd2FybmluZyB0byB0aGUgY29uc29sZSwgdW50aWwgdGhlIERFQURMSU5FIGhhcyBiZWVuXG4gICAqIHJlYWNoZWQsIGF0IHdoaWNoIHBvaW50IGl0J2xsIGJlIGEgU0NBUlkgUkVEIFdBUk5JTkcuXG4gICAqL1xuICBERVBSRUNBVEVEID0gJ2RlcHJlY2F0ZWQnLFxuXG4gIC8qKlxuICAgKiBTdXBwb3J0ZWQgcmVsZWFzZXMsIG5vdGhpbmcgdG8gc2VlLiBObyBtZXNzYWdlIHdpbGwgYmUgb3V0cHV0LlxuICAgKi9cbiAgU1VQUE9SVEVEID0gJ3N1cHBvcnRlZCcsXG5cbiAgLyoqXG4gICAqIEVPTCByZWxlYXNlcyBhcmUgdW5zdXBwb3J0ZWQsIHNvIHRoaXMgd2lsbCBlbWl0IGEgU0NBUlkgUkVEIFdBUk5JTkcuXG4gICAqL1xuICBFTkRfT0ZfTElGRSA9ICdlbmQtb2YtbGlmZScsXG5cbiAgLyoqXG4gICAqIE5vdCBlbmQtb2YtbGlmZSwgYnV0IGFsc28gbm90IHN1cHBvcnRlZC4gVGhpcyBpcyB1c3VhbGx5IHRoZSBjYXNlIGZvciBlYXJseVxuICAgKiByZWxlYXNlcyBvbiBhIG5ldyBtYWpvciB0cmFpbiwgd2hlcmUgc29tZSBvZiB0aGUgZmVhdHVyZXMgYXJlIG5vdCBhdmFpbGFibGVcbiAgICogeWV0LiBUaGVzZSBlbWl0IGEgU0NBUlkgUkVEIFdBUk5JTkcsIGJ1dCB0aGUgbWVzc2FnaW5nIGlzIHNsaWdodGx5XG4gICAqIGRpZmZlcmVudCB0aGFuIHRoYXQgb2YgRU5EX09GX0xJRkUuXG4gICAqL1xuICBVTlNVUFBPUlRFRCA9ICd1bnN1cHBvcnRlZCcsXG5cbiAgLyoqXG4gICAqIFRob3NlIHJlbGVhc2VzIGFyZSBuZXdlciB0aGFuIHRoZSBjdXJyZW50IHNvZnR3YXJlIHBhY2thZ2UsIHNvIHdlIGhhdmUgbm90XG4gICAqIHRlc3RlZCB3aXRoIGl0LiBQZW9wbGUgbWF5IGVuY291bnRlciBhbGwga2luZHMgb2Ygd2VpcmQgYnVncywgZXNwZWNpYWxseVxuICAgKiBlYXJseSBpbiB0aGUgcmVsZWFzZSBjeWNsZS4uLiBTbyB3ZSdsbCBpc3N1ZSBhIHllbGxvdyB3YXJuaW5nIGhlcmUuXG4gICAqL1xuICBVTlRFU1RFRCA9ICd1bnRlc3RlZCcsXG59XG5cbi8qKlxuICogVGhlIGRlYWRsaW5lIGFmdGVyIHdoaWNoIGRlcHJlY2F0ZWQgcmVsZWFzZXMgd2lsbCBtb3ZlIHRvXG4gKiBgU3VwcG9ydExldmVsLkVORF9PRl9MSUZFYC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFQURMSU5FID0gJzIwMjEtMDktMDEnO1xuLyoqXG4gKiBUaGUgREVBRExJTkUsIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGVwb2NoLlxuICovXG5leHBvcnQgY29uc3QgREVBRExJTkVfRVBPQ0hfTVMgPSBuZXcgRGF0ZShcbiAgYCR7REVBRExJTkV9VDAwOjAwOjAwLjAwMFpgLFxuKS5nZXRUaW1lKCk7XG5cbi8qKlxuICogRm9yIGVhY2ggU2VtVmVyIHJhbmdlLCB3aGF0IGlzIHRoZSBzdXBwb3J0IGxldmVsIGZvciBzdWNoIHZlcnNpb25zIG9mIE5vZGUuXG4gKiBUaGUgcmFuZ2VzIGFyZSBjaGVja2VkIGluIGRlY2xhcmF0aW9uIG9yZGVyIChzbyBpdCBpcyBhIGdvb2QgaWRlYSB0byBrZWVwIHRoZVxuICogbGVmdC1vcGVuIHJhbmdlcyBhdCB0aGUgYmVnaW5uaW5nLCBhbmQgdGhlIHJpZ2h0LW9wZW4gcmFuZ2VzIGF0IHRoZSBlbmQuXG4gKiBGaXJzdCBtYXRjaCB3aW5zLlxuICpcbiAqIEFsc28sIGlmIHlvdSBhcmUgc2V0dGluZyBhIG5ldyBlbnRyeSB0byBgU3VwcG9ydExldmVsLkRFUFJFQ0FURURgLCBkbyBub3RcbiAqIGZvcmdldCB0byBhbHNvIGNoYW5nZSB0aGUgYERFQURMSU5FYCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT05fU1VQUE9SVDogeyByZWFkb25seSBbcmFuZ2U6IHN0cmluZ106IFN1cHBvcnRMZXZlbCB9ID0ge1xuICAnPDEyLjAuMC0wJzogU3VwcG9ydExldmVsLkVORF9PRl9MSUZFLFxuICAnPDEyLjcuMCc6IFN1cHBvcnRMZXZlbC5VTlNVUFBPUlRFRCxcbiAgJ14xMi43LjAnOiBTdXBwb3J0TGV2ZWwuU1VQUE9SVEVELFxuICAnXjEzLjAuMC0wJzogU3VwcG9ydExldmVsLkVORF9PRl9MSUZFLFxuICAnPDE0LjUuMCc6IFN1cHBvcnRMZXZlbC5VTlNVUFBPUlRFRCxcbiAgJ14xNC41LjAnOiBTdXBwb3J0TGV2ZWwuU1VQUE9SVEVELFxuICAnXjE1LjAuMC0wJzogU3VwcG9ydExldmVsLkVORF9PRl9MSUZFLFxuICAnPDE2LjMuMCc6IFN1cHBvcnRMZXZlbC5VTlNVUFBPUlRFRCxcbiAgJ14xNi4zLjAnOiBTdXBwb3J0TGV2ZWwuU1VQUE9SVEVELFxuICAnPDE3LjMuMCc6IFN1cHBvcnRMZXZlbC5VTlNVUFBPUlRFRCxcbiAgJ14xNy4zLjAnOiBTdXBwb3J0TGV2ZWwuU1VQUE9SVEVELFxuICAvLyBBbnl0aGluZyBlbHNlIHdpbGwgYmUgdHJlYXRlZCBhcyBTdXBwb3J0TGV2ZWwuVU5URVNURUQuXG59O1xuIl19
66
+ NodeRelease.ALL_RELEASES = [
67
+ // Historical releases (not relevant at time of writing this as they're all EOL now...)
68
+ ...[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((majorVersion) => new NodeRelease(majorVersion, { endOfLife: true })),
69
+ // Past end-of-life releases
70
+ new NodeRelease(13, { endOfLife: new Date('2020-06-01') }),
71
+ new NodeRelease(15, { endOfLife: new Date('2021-06-01') }),
72
+ // Deprecated releases
73
+ new NodeRelease(12, {
74
+ endOfLife: new Date('2022-04-30'),
75
+ supportedRange: '^12.7.0',
76
+ }),
77
+ // Currently active releases
78
+ new NodeRelease(14, {
79
+ endOfLife: new Date('2023-04-30'),
80
+ supportedRange: '^14.5.0',
81
+ }),
82
+ new NodeRelease(16, {
83
+ endOfLife: new Date('2024-04-30'),
84
+ supportedRange: '^16.3.0',
85
+ }),
86
+ new NodeRelease(17, {
87
+ endOfLife: new Date('2022-06-01'),
88
+ supportedRange: '^17.3.0',
89
+ }),
90
+ new NodeRelease(18, { endOfLife: new Date('2025-04-30') }),
91
+ // Future (planned releases)
92
+ new NodeRelease(19, { endOfLife: new Date('2023-06-01'), untested: true }),
93
+ new NodeRelease(20, { endOfLife: new Date('2026-04-30'), untested: true }),
94
+ ];
95
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.test.d.ts","sourceRoot":"","sources":["../src/constants.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.test.js","sourceRoot":"","sources":["../src/constants.test.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -4,3 +4,4 @@
4
4
  * supported (i.e: it is deprecated, end-of-life, or untested).
5
5
  */
6
6
  export declare function checkNode(): void;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAoEhC"}
package/lib/index.js CHANGED
@@ -4,7 +4,6 @@ exports.checkNode = void 0;
4
4
  const chalk_1 = require("chalk");
5
5
  const console_1 = require("console");
6
6
  const process_1 = require("process");
7
- const semver_1 = require("semver");
8
7
  const constants_1 = require("./constants");
9
8
  /**
10
9
  * Checks the current process' node runtime version against the release support
@@ -12,54 +11,47 @@ const constants_1 = require("./constants");
12
11
  * supported (i.e: it is deprecated, end-of-life, or untested).
13
12
  */
14
13
  function checkNode() {
15
- const runtimeVersion = new semver_1.SemVer(process_1.version);
16
- let versionSupportLevel = "untested" /* UNTESTED */;
17
- for (const [rangeExpr, supportLevel] of Object.entries(constants_1.VERSION_SUPPORT)) {
18
- const range = new semver_1.Range(rangeExpr);
19
- if (range.test(runtimeVersion)) {
20
- versionSupportLevel = supportLevel;
21
- break;
22
- }
14
+ const { nodeRelease, knownBroken } = constants_1.NodeRelease.forThisRuntime();
15
+ if (nodeRelease?.endOfLife) {
16
+ const qualifier = nodeRelease.endOfLifeDate
17
+ ? ` on ${nodeRelease.endOfLifeDate.toISOString().slice(0, 10)}`
18
+ : '';
19
+ veryVisibleMessage(chalk_1.bgRed.white.bold, `Node ${nodeRelease.majorVersion} has reached end-of-life${qualifier} and is not supported.`, `Please upgrade to a supported node version as soon as possible.`);
20
+ }
21
+ else if (knownBroken) {
22
+ veryVisibleMessage(chalk_1.bgRed.white.bold, `Node ${process_1.version} is unsupported and has known compatibility issues with this software.`);
23
+ }
24
+ else if (!nodeRelease || nodeRelease.untested) {
25
+ veryVisibleMessage(chalk_1.bgYellow.black, `This software has not been tested with node ${process_1.version}.`);
23
26
  }
24
- switch (versionSupportLevel) {
25
- case "deprecated" /* DEPRECATED */:
26
- const deadlinePast = Date.now() > constants_1.DEADLINE_EPOCH_MS;
27
- veryVisibleMessage(deadlinePast ? chalk_1.bgRed.white.bold : chalk_1.bgYellowBright.black, `Node ${process_1.version} has reached end-of-life and will no longer be supported in new releases after ${constants_1.DEADLINE}.`, `Please upgrade to a supported node version as soon as possible.`);
28
- break;
29
- case "end-of-life" /* END_OF_LIFE */:
30
- veryVisibleMessage(chalk_1.bgRed.white.bold, `Node ${process_1.version} has reached end-of-life and is not supported.`);
31
- break;
32
- case "unsupported" /* UNSUPPORTED */:
33
- veryVisibleMessage(chalk_1.bgRed.white.bold, `Node ${process_1.version} is not supported. Early releases a node major often lack essential features of that line.`);
34
- break;
35
- case "supported" /* SUPPORTED */:
36
- // Nothing to do
37
- break;
38
- case "untested" /* UNTESTED */:
39
- veryVisibleMessage(chalk_1.bgYellow.black, `This software has not been tested with node ${process_1.version}.`);
40
- break;
27
+ else if (nodeRelease?.deprecated) {
28
+ const deadline = nodeRelease.endOfLifeDate.toISOString().slice(0, 10);
29
+ veryVisibleMessage(chalk_1.bgYellowBright.black, `Node ${nodeRelease.majorVersion} is approaching end-of-life and will no longer be supported in new releases after ${deadline}.`, `Please upgrade to a supported node version as soon as possible.`);
41
30
  }
42
31
  function veryVisibleMessage(chalk, message, callToAction = 'You may to encounter runtime issues, and should switch to a supported release.') {
43
32
  const lines = [
44
33
  message,
45
34
  callToAction,
46
35
  '',
47
- 'As of the current release, supported versions of node are:',
48
- ...Object.entries(constants_1.VERSION_SUPPORT)
49
- .filter(([, supportLevel]) => supportLevel === "supported" /* SUPPORTED */)
50
- .map(([rangeExpr]) => `- ${rangeExpr}`),
36
+ `This software is currently running on node ${process_1.version}.`,
37
+ 'As of the current release of this software, supported node releases are:',
38
+ ...constants_1.NodeRelease.ALL_RELEASES.filter((release) => release.supported)
39
+ // We display those from longest remaining support to shortest (to incitate people to be ahead of future derepcations).
40
+ .sort((l, r) => (r.endOfLifeDate?.getTime() ?? 0) -
41
+ (l.endOfLifeDate?.getTime() ?? 0))
42
+ .map((release) => `- ${release.toString()}${release.deprecated ? ' [DEPRECATED]' : ''}`),
51
43
  ];
52
44
  const len = Math.max(...lines.map((l) => l.length));
53
45
  const border = chalk('!'.repeat(len + 8));
54
46
  const spacer = chalk(`!! ${' '.repeat(len)} !!`);
55
- console_1.error(border);
56
- console_1.error(spacer);
47
+ (0, console_1.error)(border);
48
+ (0, console_1.error)(spacer);
57
49
  for (const line of lines) {
58
- console_1.error(chalk(`!! ${line.padEnd(len, ' ')} !!`));
50
+ (0, console_1.error)(chalk(`!! ${line.padEnd(len, ' ')} !!`));
59
51
  }
60
- console_1.error(spacer);
61
- console_1.error(border);
52
+ (0, console_1.error)(spacer);
53
+ (0, console_1.error)(border);
62
54
  }
63
55
  }
64
56
  exports.checkNode = checkNode;
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQStEO0FBQy9ELHFDQUFnQztBQUNoQyxxQ0FBa0M7QUFDbEMsbUNBQXVDO0FBRXZDLDJDQUtxQjtBQUVyQjs7OztHQUlHO0FBQ0gsU0FBZ0IsU0FBUztJQUN2QixNQUFNLGNBQWMsR0FBRyxJQUFJLGVBQU0sQ0FBQyxpQkFBTyxDQUFDLENBQUM7SUFDM0MsSUFBSSxtQkFBbUIsNEJBQXdCLENBQUM7SUFDaEQsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsMkJBQWUsQ0FBQyxFQUFFO1FBQ3ZFLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUM5QixtQkFBbUIsR0FBRyxZQUFZLENBQUM7WUFDbkMsTUFBTTtTQUNQO0tBQ0Y7SUFFRCxRQUFRLG1CQUFtQixFQUFFO1FBQzNCO1lBQ0UsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLDZCQUFpQixDQUFDO1lBQ3BELGtCQUFrQixDQUNoQixZQUFZLENBQUMsQ0FBQyxDQUFDLGFBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBYyxDQUFDLEtBQUssRUFDdEQsUUFBUSxpQkFBTyxrRkFBa0Ysb0JBQVEsR0FBRyxFQUM1RyxpRUFBaUUsQ0FDbEUsQ0FBQztZQUNGLE1BQU07UUFDUjtZQUNFLGtCQUFrQixDQUNoQixhQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFDaEIsUUFBUSxpQkFBTyxnREFBZ0QsQ0FDaEUsQ0FBQztZQUNGLE1BQU07UUFDUjtZQUNFLGtCQUFrQixDQUNoQixhQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFDaEIsUUFBUSxpQkFBTyw0RkFBNEYsQ0FDNUcsQ0FBQztZQUNGLE1BQU07UUFDUjtZQUNFLGdCQUFnQjtZQUNoQixNQUFNO1FBQ1I7WUFDRSxrQkFBa0IsQ0FDaEIsZ0JBQVEsQ0FBQyxLQUFLLEVBQ2QsK0NBQStDLGlCQUFPLEdBQUcsQ0FDMUQsQ0FBQztZQUNGLE1BQU07S0FDVDtJQUVELFNBQVMsa0JBQWtCLENBQ3pCLEtBQVksRUFDWixPQUFlLEVBQ2YsWUFBWSxHQUFHLGdGQUFnRjtRQUUvRixNQUFNLEtBQUssR0FBRztZQUNaLE9BQU87WUFDUCxZQUFZO1lBQ1osRUFBRTtZQUNGLDREQUE0RDtZQUM1RCxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsMkJBQWUsQ0FBQztpQkFDL0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLGdDQUEyQixDQUFDO2lCQUNyRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1NBQzFDLENBQUM7UUFDRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsZUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsZUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDeEIsZUFBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsZUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsZUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7QUFDSCxDQUFDO0FBckVELDhCQXFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYWxrLCBiZ1llbGxvdywgYmdZZWxsb3dCcmlnaHQsIGJnUmVkIH0gZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHsgZXJyb3IgfSBmcm9tICdjb25zb2xlJztcbmltcG9ydCB7IHZlcnNpb24gfSBmcm9tICdwcm9jZXNzJztcbmltcG9ydCB7IFJhbmdlLCBTZW1WZXIgfSBmcm9tICdzZW12ZXInO1xuXG5pbXBvcnQge1xuICBERUFETElORSxcbiAgREVBRExJTkVfRVBPQ0hfTVMsXG4gIFN1cHBvcnRMZXZlbCxcbiAgVkVSU0lPTl9TVVBQT1JULFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQ2hlY2tzIHRoZSBjdXJyZW50IHByb2Nlc3MnIG5vZGUgcnVudGltZSB2ZXJzaW9uIGFnYWluc3QgdGhlIHJlbGVhc2Ugc3VwcG9ydFxuICogbWF0cml4LCBhbmQgaXNzdWVzIGEgd2FybmluZyB0byBTVERFUlIgaWYgdGhlIGN1cnJlbnQgdmVyc2lvbiBpcyBub3QgZnVsbHlcbiAqIHN1cHBvcnRlZCAoaS5lOiBpdCBpcyBkZXByZWNhdGVkLCBlbmQtb2YtbGlmZSwgb3IgdW50ZXN0ZWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tOb2RlKCk6IHZvaWQge1xuICBjb25zdCBydW50aW1lVmVyc2lvbiA9IG5ldyBTZW1WZXIodmVyc2lvbik7XG4gIGxldCB2ZXJzaW9uU3VwcG9ydExldmVsID0gU3VwcG9ydExldmVsLlVOVEVTVEVEO1xuICBmb3IgKGNvbnN0IFtyYW5nZUV4cHIsIHN1cHBvcnRMZXZlbF0gb2YgT2JqZWN0LmVudHJpZXMoVkVSU0lPTl9TVVBQT1JUKSkge1xuICAgIGNvbnN0IHJhbmdlID0gbmV3IFJhbmdlKHJhbmdlRXhwcik7XG4gICAgaWYgKHJhbmdlLnRlc3QocnVudGltZVZlcnNpb24pKSB7XG4gICAgICB2ZXJzaW9uU3VwcG9ydExldmVsID0gc3VwcG9ydExldmVsO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoICh2ZXJzaW9uU3VwcG9ydExldmVsKSB7XG4gICAgY2FzZSBTdXBwb3J0TGV2ZWwuREVQUkVDQVRFRDpcbiAgICAgIGNvbnN0IGRlYWRsaW5lUGFzdCA9IERhdGUubm93KCkgPiBERUFETElORV9FUE9DSF9NUztcbiAgICAgIHZlcnlWaXNpYmxlTWVzc2FnZShcbiAgICAgICAgZGVhZGxpbmVQYXN0ID8gYmdSZWQud2hpdGUuYm9sZCA6IGJnWWVsbG93QnJpZ2h0LmJsYWNrLFxuICAgICAgICBgTm9kZSAke3ZlcnNpb259IGhhcyByZWFjaGVkIGVuZC1vZi1saWZlIGFuZCB3aWxsIG5vIGxvbmdlciBiZSBzdXBwb3J0ZWQgaW4gbmV3IHJlbGVhc2VzIGFmdGVyICR7REVBRExJTkV9LmAsXG4gICAgICAgIGBQbGVhc2UgdXBncmFkZSB0byBhIHN1cHBvcnRlZCBub2RlIHZlcnNpb24gYXMgc29vbiBhcyBwb3NzaWJsZS5gLFxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU3VwcG9ydExldmVsLkVORF9PRl9MSUZFOlxuICAgICAgdmVyeVZpc2libGVNZXNzYWdlKFxuICAgICAgICBiZ1JlZC53aGl0ZS5ib2xkLFxuICAgICAgICBgTm9kZSAke3ZlcnNpb259IGhhcyByZWFjaGVkIGVuZC1vZi1saWZlIGFuZCBpcyBub3Qgc3VwcG9ydGVkLmAsXG4gICAgICApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBTdXBwb3J0TGV2ZWwuVU5TVVBQT1JURUQ6XG4gICAgICB2ZXJ5VmlzaWJsZU1lc3NhZ2UoXG4gICAgICAgIGJnUmVkLndoaXRlLmJvbGQsXG4gICAgICAgIGBOb2RlICR7dmVyc2lvbn0gaXMgbm90IHN1cHBvcnRlZC4gRWFybHkgcmVsZWFzZXMgYSBub2RlIG1ham9yIG9mdGVuIGxhY2sgZXNzZW50aWFsIGZlYXR1cmVzIG9mIHRoYXQgbGluZS5gLFxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU3VwcG9ydExldmVsLlNVUFBPUlRFRDpcbiAgICAgIC8vIE5vdGhpbmcgdG8gZG9cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU3VwcG9ydExldmVsLlVOVEVTVEVEOlxuICAgICAgdmVyeVZpc2libGVNZXNzYWdlKFxuICAgICAgICBiZ1llbGxvdy5ibGFjayxcbiAgICAgICAgYFRoaXMgc29mdHdhcmUgaGFzIG5vdCBiZWVuIHRlc3RlZCB3aXRoIG5vZGUgJHt2ZXJzaW9ufS5gLFxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgZnVuY3Rpb24gdmVyeVZpc2libGVNZXNzYWdlKFxuICAgIGNoYWxrOiBDaGFsayxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgY2FsbFRvQWN0aW9uID0gJ1lvdSBtYXkgdG8gZW5jb3VudGVyIHJ1bnRpbWUgaXNzdWVzLCBhbmQgc2hvdWxkIHN3aXRjaCB0byBhIHN1cHBvcnRlZCByZWxlYXNlLicsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmVzID0gW1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGNhbGxUb0FjdGlvbixcbiAgICAgICcnLFxuICAgICAgJ0FzIG9mIHRoZSBjdXJyZW50IHJlbGVhc2UsIHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBub2RlIGFyZTonLFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXMoVkVSU0lPTl9TVVBQT1JUKVxuICAgICAgICAuZmlsdGVyKChbLCBzdXBwb3J0TGV2ZWxdKSA9PiBzdXBwb3J0TGV2ZWwgPT09IFN1cHBvcnRMZXZlbC5TVVBQT1JURUQpXG4gICAgICAgIC5tYXAoKFtyYW5nZUV4cHJdKSA9PiBgLSAke3JhbmdlRXhwcn1gKSxcbiAgICBdO1xuICAgIGNvbnN0IGxlbiA9IE1hdGgubWF4KC4uLmxpbmVzLm1hcCgobCkgPT4gbC5sZW5ndGgpKTtcbiAgICBjb25zdCBib3JkZXIgPSBjaGFsaygnIScucmVwZWF0KGxlbiArIDgpKTtcbiAgICBjb25zdCBzcGFjZXIgPSBjaGFsayhgISEgICR7JyAnLnJlcGVhdChsZW4pfSAgISFgKTtcblxuICAgIGVycm9yKGJvcmRlcik7XG4gICAgZXJyb3Ioc3BhY2VyKTtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgIGVycm9yKGNoYWxrKGAhISAgJHtsaW5lLnBhZEVuZChsZW4sICcgJyl9ICAhIWApKTtcbiAgICB9XG4gICAgZXJyb3Ioc3BhY2VyKTtcbiAgICBlcnJvcihib3JkZXIpO1xuICB9XG59XG4iXX0=
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":";;AAAA,2CAA0C;AAE1C,+EAA+E;AAC/E,8EAA8E;AAC9E,wCAAwC;AACxC,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACrE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,uBAAW,CAAC,cAAc,EAAE,CAAC;IAClE,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,+EAA+E;AAC/E,4EAA4E;AAC5E,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACtE,MAAM,EAAE,WAAW,EAAE,GAAG,uBAAW,CAAC,cAAc,EAAE,CAAC;IACrD,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,eAAe,CAC3D,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,QAAU,CAC7B,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/lib/run.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  declare const _default: {};
2
2
  export = _default;
3
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";AAKA,kBAAY"}
package/lib/run.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  const index_1 = require("./index");
3
- index_1.checkNode();
3
+ (0, index_1.checkNode)();
4
4
  module.exports = {};
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsbUNBQW9DO0FBRXBDLGlCQUFTLEVBQUUsQ0FBQztBQUdaLGlCQUFTLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrTm9kZSB9IGZyb20gJy4vaW5kZXgnO1xuXG5jaGVja05vZGUoKTtcblxuLy8gU28gdGhpcyBpcyBhIHZhbGlkIEVTTSBtb2R1bGUsIHRvby5cbmV4cG9ydCA9IHt9O1xuIl19
5
+ //# sourceMappingURL=run.js.map
package/lib/run.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";AAAA,mCAAoC;AAEpC,IAAA,iBAAS,GAAE,CAAC;AAGZ,iBAAS,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsii/check-node",
3
- "version": "1.57.0",
3
+ "version": "1.60.0",
4
4
  "description": "Checks for supported node versions",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -17,7 +17,7 @@
17
17
  "directory": "packages/@jsii/check-node"
18
18
  },
19
19
  "engines": {
20
- "node": ">= 10.3.0"
20
+ "node": ">= 14.5.0"
21
21
  },
22
22
  "main": "lib/index.js",
23
23
  "types": "lib/index.d.ts",
@@ -37,12 +37,9 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "chalk": "^4.1.2",
40
- "semver": "^7.3.5"
40
+ "semver": "^7.3.7"
41
41
  },
42
42
  "devDependencies": {
43
- "@types/chalk": "^2.2.0",
44
- "@types/jest": "^27.4.1",
45
- "@types/node": "^12.20.47",
46
- "jest": "^27.5.1"
43
+ "@types/chalk": "^2.2.0"
47
44
  }
48
45
  }