From da5117c4498b4f4bb750df20d4ec7eaebe3b538d Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Mon, 30 Jan 2023 22:34:03 -0800 Subject: [PATCH] deps(rollup): Update to v3.12. --- packages/packemon/package.json | 4 +- .../__snapshots__/cjsMjsWrapper.test.ts.snap | 253 ++++++++++-------- yarn.lock | 14 +- 3 files changed, 153 insertions(+), 118 deletions(-) diff --git a/packages/packemon/package.json b/packages/packemon/package.json index e9d964ea4..922b384e2 100644 --- a/packages/packemon/package.json +++ b/packages/packemon/package.json @@ -63,7 +63,7 @@ }, "dependencies": { "@babel/core": "^7.20.12", - "@babel/plugin-proposal-decorators": "^7.20.7", + "@babel/plugin-proposal-decorators": "^7.20.13", "@babel/preset-env": "^7.20.2", "@babel/preset-flow": "^7.18.6", "@babel/preset-react": "^7.18.6", @@ -97,7 +97,7 @@ "micromatch": "^4.0.5", "react": "^17.0.2", "resolve": "^1.22.1", - "rollup": "^3.9.1", + "rollup": "^3.12.0", "rollup-plugin-node-externals": "^5.0.3", "rollup-plugin-polyfill-node": "^0.11.0", "semver": "^7.3.8", diff --git a/packages/packemon/tests/examples/__snapshots__/cjsMjsWrapper.test.ts.snap b/packages/packemon/tests/examples/__snapshots__/cjsMjsWrapper.test.ts.snap index 023aa7b2f..937d26555 100644 --- a/packages/packemon/tests/examples/__snapshots__/cjsMjsWrapper.test.ts.snap +++ b/packages/packemon/tests/examples/__snapshots__/cjsMjsWrapper.test.ts.snap @@ -57,12 +57,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-browser-current-lib.js.map ", ] @@ -192,12 +192,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-browser-experimental-lib.js.map ", ] @@ -345,8 +345,9 @@ Object.defineProperty(exports, 'useState', { return react.useState; }.bind(this) }); -var _loop2 = function _loop2(k) { +Object.keys(optimal).forEach(function (k) { var _this3 = this; + _newArrowCheck(this, _this2); if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: function get() { @@ -354,10 +355,7 @@ var _loop2 = function _loop2(k) { return optimal[k]; }.bind(this) }); -}; -for (var k in optimal) { - _loop2(k); -} +}.bind(this)); //# sourceMappingURL=index-browser-legacy-lib.js.map ", ] @@ -488,12 +486,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-browser-stable-lib.js.map ", ] @@ -623,12 +621,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-electron-current-lib.js.map ", ] @@ -691,12 +689,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-electron-experimental-lib.js.map ", ] @@ -759,12 +757,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-electron-legacy-lib.js.map ", ] @@ -827,12 +825,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-electron-stable-lib.js.map ", ] @@ -879,12 +877,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-native-current-lib.js.map ", ] @@ -931,12 +929,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-native-experimental-lib.js.map ", ] @@ -983,12 +981,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-native-legacy-lib.js.map ", ] @@ -1035,12 +1033,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-native-stable-lib.js.map ", ] @@ -1102,12 +1100,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-node-current-cjs.cjs.map ", ] @@ -1154,12 +1152,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-node-current-lib.js.map ", ] @@ -1237,12 +1235,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-node-experimental-cjs.cjs.map ", ] @@ -1289,12 +1287,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-node-experimental-lib.js.map ", ] @@ -1372,12 +1370,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-node-legacy-cjs.cjs.map ", ] @@ -1424,12 +1422,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-node-legacy-lib.js.map ", ] @@ -1507,12 +1505,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-node-stable-cjs.cjs.map ", ] @@ -1559,12 +1557,12 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: () => react.useState }); -for (const k in optimal) { +Object.keys(optimal).forEach(k => { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: () => optimal[k] }); -} +}); //# sourceMappingURL=index-node-stable-lib.js.map ", ] @@ -1638,9 +1636,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-browser-current-lib.js.map ", @@ -1784,9 +1784,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-browser-experimental-lib.js.map ", @@ -1899,14 +1901,6 @@ exports[`CJS -> MJS wrapper (externals) swc transforms example test case: browse "// Bundled with Packemon: https://packemon.dev // Platform: browser, Support: legacy, Format: lib 'use strict'; -var _loop = function(k) { - if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: function() { - return optimal[k]; - } - }); -}; var optimal = require('optimal'); var react = require('react'); function _interopNamespace(e) { @@ -1949,7 +1943,14 @@ Object.defineProperty(exports, 'useState', { return react.useState; } }); -for(var k in optimal)_loop(k); +Object.keys(optimal).forEach(function(k) { + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: function() { + return optimal[k]; + } + }); +}); //# sourceMappingURL=index-browser-legacy-lib.js.map ", ] @@ -2100,9 +2101,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-browser-stable-lib.js.map ", @@ -2246,9 +2249,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-electron-current-lib.js.map ", @@ -2307,9 +2312,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-electron-experimental-lib.js.map ", @@ -2368,9 +2375,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-electron-legacy-lib.js.map ", @@ -2429,9 +2438,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-electron-stable-lib.js.map ", @@ -2475,9 +2486,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-native-current-lib.js.map ", @@ -2521,9 +2534,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-native-experimental-lib.js.map ", @@ -2567,9 +2582,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-native-legacy-lib.js.map ", @@ -2613,9 +2630,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-native-stable-lib.js.map ", @@ -2674,9 +2693,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-node-current-cjs.cjs.map ", @@ -2720,9 +2741,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-node-current-lib.js.map ", @@ -2796,9 +2819,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-node-experimental-cjs.cjs.map ", @@ -2842,9 +2867,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-node-experimental-lib.js.map ", @@ -2918,9 +2945,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-node-legacy-cjs.cjs.map ", @@ -2964,9 +2993,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-node-legacy-lib.js.map ", @@ -3040,9 +3071,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-node-stable-cjs.cjs.map ", @@ -3086,9 +3119,11 @@ Object.defineProperty(exports, 'useState', { enumerable: true, get: ()=>react.useState }); -for(const k in optimal)if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { - enumerable: true, - get: ()=>optimal[k] +Object.keys(optimal).forEach((k)=>{ + if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { + enumerable: true, + get: ()=>optimal[k] + }); }); //# sourceMappingURL=index-node-stable-lib.js.map ", diff --git a/yarn.lock b/yarn.lock index 7c348ecab..b61ce3312 100644 --- a/yarn.lock +++ b/yarn.lock @@ -636,7 +636,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-decorators@npm:^7.20.13, @babel/plugin-proposal-decorators@npm:^7.20.7": +"@babel/plugin-proposal-decorators@npm:^7.20.13": version: 7.20.13 resolution: "@babel/plugin-proposal-decorators@npm:7.20.13" dependencies: @@ -17540,7 +17540,7 @@ __metadata: resolution: "packemon@workspace:packages/packemon" dependencies: "@babel/core": ^7.20.12 - "@babel/plugin-proposal-decorators": ^7.20.7 + "@babel/plugin-proposal-decorators": ^7.20.13 "@babel/preset-env": ^7.20.2 "@babel/preset-flow": ^7.18.6 "@babel/preset-react": ^7.18.6 @@ -17576,7 +17576,7 @@ __metadata: micromatch: ^4.0.5 react: ^17.0.2 resolve: ^1.22.1 - rollup: ^3.9.1 + rollup: ^3.12.0 rollup-plugin-node-externals: ^5.0.3 rollup-plugin-polyfill-node: ^0.11.0 semver: ^7.3.8 @@ -19826,9 +19826,9 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.7.0, rollup@npm:^3.9.1": - version: 3.9.1 - resolution: "rollup@npm:3.9.1" +"rollup@npm:^3.12.0, rollup@npm:^3.7.0": + version: 3.12.0 + resolution: "rollup@npm:3.12.0" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -19836,7 +19836,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 929cfab6b8bb2e20c28d7a4c3909b53729f4a63d8cc14f3b1a217d5f8e550737ee0903124ba58a1f2e7efd45c596e044a968aa379411731d0e76c910621d7d3f + checksum: 66182947ea74bd4777e1a02514124f49eacc6b123e23738cf31342f8e73b79e43da05671aebe6d5f55b5830ebf3dd11f2eaba1b98b8fc6a9e6d96fd4c3ecc534 languageName: node linkType: hard