node-install-release 1.7.6 → 1.7.7

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.
Files changed (102) hide show
  1. package/dist/cjs/constants.cjs +65 -0
  2. package/dist/cjs/constants.cjs.map +1 -1
  3. package/dist/cjs/index.cjs +0 -1
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/installNPM/installBin.cjs +2 -34
  6. package/dist/cjs/installNPM/installBin.cjs.map +1 -1
  7. package/dist/cjs/installNPM/installLib.cjs +12 -20
  8. package/dist/cjs/installNPM/installLib.cjs.map +1 -1
  9. package/dist/cjs/installNode/index.cjs +35 -21
  10. package/dist/cjs/installNode/index.cjs.map +1 -1
  11. package/dist/cjs/installNode/installCompressed.cjs +24 -22
  12. package/dist/cjs/installNode/installCompressed.cjs.map +1 -1
  13. package/dist/cjs/installNode/installExe.cjs +12 -8
  14. package/dist/cjs/installNode/installExe.cjs.map +1 -1
  15. package/dist/cjs/installNode/installFilename.cjs +31 -0
  16. package/dist/cjs/installNode/installFilename.cjs.map +1 -0
  17. package/dist/cjs/installNode/installSource/buildPosix.cjs +14 -18
  18. package/dist/cjs/installNode/installSource/buildPosix.cjs.map +1 -1
  19. package/dist/cjs/installNode/installSource/buildWin32.cjs +5 -8
  20. package/dist/cjs/installNode/installSource/buildWin32.cjs.map +1 -1
  21. package/dist/cjs/installNode/installSource/index.cjs +6 -3
  22. package/dist/cjs/installNode/installSource/index.cjs.map +1 -1
  23. package/dist/cjs/installNode/validateDownload.cjs +42 -0
  24. package/dist/cjs/installNode/validateDownload.cjs.map +1 -0
  25. package/dist/cjs/lib/checkMissing.cjs +11 -3
  26. package/dist/cjs/lib/checkMissing.cjs.map +1 -1
  27. package/dist/cjs/{lib → machine}/arch.cjs +3 -2
  28. package/dist/cjs/machine/arch.cjs.map +1 -0
  29. package/dist/cjs/{polyfills.cjs → machine/execSync/polyfill.cjs} +1 -1
  30. package/dist/cjs/machine/execSync/polyfill.cjs.map +1 -0
  31. package/dist/cjs/machine/execSync/worker.cjs.map +1 -0
  32. package/dist/cjs/workers/install.cjs +2 -33
  33. package/dist/cjs/workers/install.cjs.map +1 -1
  34. package/dist/esm/constants.mjs +44 -0
  35. package/dist/esm/constants.mjs.map +1 -1
  36. package/dist/esm/index.mjs +0 -1
  37. package/dist/esm/index.mjs.map +1 -1
  38. package/dist/esm/installNPM/installBin.mjs +2 -34
  39. package/dist/esm/installNPM/installBin.mjs.map +1 -1
  40. package/dist/esm/installNPM/installLib.mjs +12 -18
  41. package/dist/esm/installNPM/installLib.mjs.map +1 -1
  42. package/dist/esm/installNode/index.mjs +32 -22
  43. package/dist/esm/installNode/index.mjs.map +1 -1
  44. package/dist/esm/installNode/installCompressed.mjs +24 -24
  45. package/dist/esm/installNode/installCompressed.mjs.map +1 -1
  46. package/dist/esm/installNode/installExe.mjs +12 -8
  47. package/dist/esm/installNode/installExe.mjs.map +1 -1
  48. package/dist/esm/installNode/installFilename.mjs +15 -0
  49. package/dist/esm/installNode/installFilename.mjs.map +1 -0
  50. package/dist/esm/installNode/installSource/buildPosix.mjs +13 -17
  51. package/dist/esm/installNode/installSource/buildPosix.mjs.map +1 -1
  52. package/dist/esm/installNode/installSource/buildWin32.mjs +4 -9
  53. package/dist/esm/installNode/installSource/buildWin32.mjs.map +1 -1
  54. package/dist/esm/installNode/installSource/index.mjs +6 -3
  55. package/dist/esm/installNode/installSource/index.mjs.map +1 -1
  56. package/dist/esm/installNode/validateDownload.mjs +24 -0
  57. package/dist/esm/installNode/validateDownload.mjs.map +1 -0
  58. package/dist/esm/lib/checkMissing.mjs +1 -1
  59. package/dist/esm/lib/checkMissing.mjs.map +1 -1
  60. package/dist/esm/{lib → machine}/arch.cjs +1 -0
  61. package/dist/esm/machine/arch.cjs.map +1 -0
  62. package/dist/esm/{polyfills.cjs → machine/execSync/polyfill.cjs} +1 -1
  63. package/dist/esm/machine/execSync/polyfill.cjs.map +1 -0
  64. package/dist/esm/machine/execSync/worker.cjs.map +1 -0
  65. package/dist/esm/workers/install.mjs +2 -9
  66. package/dist/esm/workers/install.mjs.map +1 -1
  67. package/dist/types/constants.d.ts +26 -0
  68. package/dist/types/index.d.ts +0 -1
  69. package/dist/types/installNode/installCompressed.d.ts +1 -1
  70. package/dist/types/installNode/installExe.d.ts +1 -1
  71. package/dist/types/installNode/installFilename.d.ts +1 -0
  72. package/dist/types/installNode/installSource/buildPosix.d.ts +1 -1
  73. package/dist/types/installNode/installSource/index.d.ts +1 -1
  74. package/dist/types/installNode/validateDownload.d.ts +1 -0
  75. package/dist/types/lib/checkMissing.d.ts +10 -0
  76. package/package.json +6 -9
  77. package/dist/cjs/installNode/findDistPaths.cjs +0 -34
  78. package/dist/cjs/installNode/findDistPaths.cjs.map +0 -1
  79. package/dist/cjs/installNode/prebuilts.cjs +0 -53
  80. package/dist/cjs/installNode/prebuilts.cjs.map +0 -1
  81. package/dist/cjs/lib/arch.cjs.map +0 -1
  82. package/dist/cjs/lib/endsWithFn.cjs +0 -29
  83. package/dist/cjs/lib/endsWithFn.cjs.map +0 -1
  84. package/dist/cjs/polyfills/execCallback.cjs.map +0 -1
  85. package/dist/cjs/polyfills.cjs.map +0 -1
  86. package/dist/esm/installNode/findDistPaths.mjs +0 -18
  87. package/dist/esm/installNode/findDistPaths.mjs.map +0 -1
  88. package/dist/esm/installNode/prebuilts.mjs +0 -37
  89. package/dist/esm/installNode/prebuilts.mjs.map +0 -1
  90. package/dist/esm/lib/arch.cjs.map +0 -1
  91. package/dist/esm/lib/endsWithFn.mjs +0 -13
  92. package/dist/esm/lib/endsWithFn.mjs.map +0 -1
  93. package/dist/esm/polyfills/execCallback.cjs.map +0 -1
  94. package/dist/esm/polyfills.cjs.map +0 -1
  95. package/dist/types/installNode/findDistPaths.d.ts +0 -5
  96. package/dist/types/installNode/prebuilts.d.ts +0 -1
  97. package/dist/types/lib/endsWithFn.d.ts +0 -1
  98. /package/dist/cjs/{polyfills/execCallback.cjs → machine/execSync/worker.cjs} +0 -0
  99. /package/dist/esm/{polyfills/execCallback.cjs → machine/execSync/worker.cjs} +0 -0
  100. /package/dist/types/{lib → machine}/arch.d.cts +0 -0
  101. /package/dist/types/{polyfills.d.cts → machine/execSync/polyfill.d.cts} +0 -0
  102. /package/dist/types/{polyfills/execCallback.d.cts → machine/execSync/worker.d.cts} +0 -0
@@ -24,15 +24,12 @@ function installWin32(buildPath, dest, _options, callback) {
24
24
  (0, _fsaccesscompat.default)(buildTarget, function(err) {
25
25
  if (!err) return callback(); // already exists
26
26
  var queue = new _queuecb.default(1);
27
- queue.defer(function(callback) {
28
- (0, _fsaccesscompat.default)(buildSource, function(err) {
29
- if (!err) return callback(); // already exists
30
- (0, _crossspawncb.default)('./vcbuild', [], {
31
- stdio: 'inherit',
32
- cwd: buildPath
33
- }, callback);
27
+ queue.defer(_fsaccesscompat.default.bind(null, buildSource, function(err) {
28
+ return !err ? callback() : (0, _crossspawncb.default)('./vcbuild', [], {
29
+ stdio: 'inherit',
30
+ cwd: buildPath
34
31
  });
35
- });
32
+ }));
36
33
  queue.defer(_conditionalCopy.default.bind(null, buildSource, buildTarget));
37
34
  queue.await(callback);
38
35
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/buildWin32.ts"],"sourcesContent":["import path from 'path';\nimport spawn from 'cross-spawn-cb';\nimport Queue from 'queue-cb';\n\nimport access from 'fs-access-compat';\nimport conditionalCopy from '../../lib/conditionalCopy';\n\nexport default function installWin32(buildPath, dest, _options, callback) {\n const buildSource = path.join(buildPath, 'out', 'Release', 'node.exe');\n const buildTarget = path.join(dest, 'node.exe');\n\n access(buildTarget, (err) => {\n if (!err) return callback(); // already exists\n\n const queue = new Queue(1);\n queue.defer((callback) => {\n access(buildSource, (err) => {\n if (!err) return callback(); // already exists\n spawn('./vcbuild', [], { stdio: 'inherit', cwd: buildPath }, callback);\n });\n });\n queue.defer(conditionalCopy.bind(null, buildSource, buildTarget));\n queue.await(callback);\n });\n}\n"],"names":["installWin32","buildPath","dest","_options","callback","buildSource","path","join","buildTarget","access","err","queue","Queue","defer","spawn","stdio","cwd","conditionalCopy","bind","await"],"mappings":";;;;+BAOA;;;eAAwBA;;;2DAPP;mEACC;8DACA;qEAEC;sEACS;;;;;;AAEb,SAASA,aAAaC,SAAS,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,QAAQ;IACtE,IAAMC,cAAcC,aAAI,CAACC,IAAI,CAACN,WAAW,OAAO,WAAW;IAC3D,IAAMO,cAAcF,aAAI,CAACC,IAAI,CAACL,MAAM;IAEpCO,IAAAA,uBAAM,EAACD,aAAa,SAACE;QACnB,IAAI,CAACA,KAAK,OAAON,YAAY,iBAAiB;QAE9C,IAAMO,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAAC,SAACT;YACXK,IAAAA,uBAAM,EAACJ,aAAa,SAACK;gBACnB,IAAI,CAACA,KAAK,OAAON,YAAY,iBAAiB;gBAC9CU,IAAAA,qBAAK,EAAC,aAAa,EAAE,EAAE;oBAAEC,OAAO;oBAAWC,KAAKf;gBAAU,GAAGG;YAC/D;QACF;QACAO,MAAME,KAAK,CAACI,wBAAe,CAACC,IAAI,CAAC,MAAMb,aAAaG;QACpDG,MAAMQ,KAAK,CAACf;IACd;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/buildWin32.ts"],"sourcesContent":["import path from 'path';\nimport spawn from 'cross-spawn-cb';\nimport Queue from 'queue-cb';\n\nimport access from 'fs-access-compat';\nimport conditionalCopy from '../../lib/conditionalCopy';\n\nexport default function installWin32(buildPath, dest, _options, callback) {\n const buildSource = path.join(buildPath, 'out', 'Release', 'node.exe');\n const buildTarget = path.join(dest, 'node.exe');\n\n access(buildTarget, (err) => {\n if (!err) return callback(); // already exists\n\n const queue = new Queue(1);\n queue.defer(access.bind(null, buildSource, (err) => (!err ? callback() : spawn('./vcbuild', [], { stdio: 'inherit', cwd: buildPath }))));\n queue.defer(conditionalCopy.bind(null, buildSource, buildTarget));\n queue.await(callback);\n });\n}\n"],"names":["installWin32","buildPath","dest","_options","callback","buildSource","path","join","buildTarget","access","err","queue","Queue","defer","bind","spawn","stdio","cwd","conditionalCopy","await"],"mappings":";;;;+BAOA;;;eAAwBA;;;2DAPP;mEACC;8DACA;qEAEC;sEACS;;;;;;AAEb,SAASA,aAAaC,SAAS,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,QAAQ;IACtE,IAAMC,cAAcC,aAAI,CAACC,IAAI,CAACN,WAAW,OAAO,WAAW;IAC3D,IAAMO,cAAcF,aAAI,CAACC,IAAI,CAACL,MAAM;IAEpCO,IAAAA,uBAAM,EAACD,aAAa,SAACE;QACnB,IAAI,CAACA,KAAK,OAAON,YAAY,iBAAiB;QAE9C,IAAMO,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAACJ,uBAAM,CAACK,IAAI,CAAC,MAAMT,aAAa,SAACK;mBAAS,CAACA,MAAMN,aAAaW,IAAAA,qBAAK,EAAC,aAAa,EAAE,EAAE;gBAAEC,OAAO;gBAAWC,KAAKhB;YAAU;;QACnIU,MAAME,KAAK,CAACK,wBAAe,CAACJ,IAAI,CAAC,MAAMT,aAAaG;QACpDG,MAAMQ,KAAK,CAACf;IACd;AACF"}
@@ -10,8 +10,10 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
12
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
13
+ var _constants = require("../../constants.cjs");
13
14
  var _conditionalCache = /*#__PURE__*/ _interop_require_default(require("../../lib/conditionalCache.cjs"));
14
15
  var _conditionalExtract = /*#__PURE__*/ _interop_require_default(require("../../lib/conditionalExtract.cjs"));
16
+ var _validateDownload = /*#__PURE__*/ _interop_require_default(require("../validateDownload.cjs"));
15
17
  var _buildPosix = /*#__PURE__*/ _interop_require_default(require("./buildPosix.cjs"));
16
18
  var _buildWin32 = /*#__PURE__*/ _interop_require_default(require("./buildWin32.cjs"));
17
19
  function _interop_require_default(obj) {
@@ -19,14 +21,15 @@ function _interop_require_default(obj) {
19
21
  default: obj
20
22
  };
21
23
  }
22
- function InstallSource(relativePath, dest, _record, options, callback) {
24
+ function InstallSource(distPath, dest, options, callback) {
23
25
  var platform = options.platform || process.platform;
24
26
  var build = platform === 'win32' ? _buildWin32.default : _buildPosix.default;
25
- var downloadPath = options.downloadURL(relativePath);
26
- var buildPath = _path.default.join(options.buildPath, _path.default.basename(relativePath));
27
+ var downloadPath = "".concat(_constants.NODE_DIST_BASE_URL, "/").concat(distPath);
28
+ var buildPath = _path.default.join(options.buildPath, _path.default.basename(distPath));
27
29
  var cachePath = _path.default.join(options.cachePath, _path.default.basename(downloadPath));
28
30
  var queue = new _queuecb.default(1);
29
31
  queue.defer(_conditionalCache.default.bind(null, downloadPath, cachePath));
32
+ queue.defer(_validateDownload.default.bind(null, distPath, cachePath));
30
33
  queue.defer(_conditionalExtract.default.bind(null, cachePath, buildPath, {
31
34
  strip: 1
32
35
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/index.ts"],"sourcesContent":["import path from 'path';\nimport Queue from 'queue-cb';\n\nimport conditionalCache from '../../lib/conditionalCache';\nimport conditionalExtract from '../../lib/conditionalExtract';\nimport buildPosix from './buildPosix';\nimport buildWin32 from './buildWin32';\n\nexport default function InstallSource(relativePath, dest, _record, options, callback) {\n const platform = options.platform || process.platform;\n const build = platform === 'win32' ? buildWin32 : buildPosix;\n const downloadPath = options.downloadURL(relativePath);\n const buildPath = path.join(options.buildPath, path.basename(relativePath));\n const cachePath = path.join(options.cachePath, path.basename(downloadPath));\n\n const queue = new Queue(1);\n queue.defer(conditionalCache.bind(null, downloadPath, cachePath));\n queue.defer(conditionalExtract.bind(null, cachePath, buildPath, { strip: 1 }));\n queue.defer(build.bind(null, buildPath, dest, options));\n queue.await(callback);\n}\n"],"names":["InstallSource","relativePath","dest","_record","options","callback","platform","process","build","buildWin32","buildPosix","downloadPath","downloadURL","buildPath","path","join","basename","cachePath","queue","Queue","defer","conditionalCache","bind","conditionalExtract","strip","await"],"mappings":";;;;+BAQA;;;eAAwBA;;;2DARP;8DACC;uEAEW;yEACE;iEACR;iEACA;;;;;;AAER,SAASA,cAAcC,YAAY,EAAEC,IAAI,EAAEC,OAAO,EAAEC,OAAO,EAAEC,QAAQ;IAClF,IAAMC,WAAWF,QAAQE,QAAQ,IAAIC,QAAQD,QAAQ;IACrD,IAAME,QAAQF,aAAa,UAAUG,mBAAU,GAAGC,mBAAU;IAC5D,IAAMC,eAAeP,QAAQQ,WAAW,CAACX;IACzC,IAAMY,YAAYC,aAAI,CAACC,IAAI,CAACX,QAAQS,SAAS,EAAEC,aAAI,CAACE,QAAQ,CAACf;IAC7D,IAAMgB,YAAYH,aAAI,CAACC,IAAI,CAACX,QAAQa,SAAS,EAAEH,aAAI,CAACE,QAAQ,CAACL;IAE7D,IAAMO,QAAQ,IAAIC,gBAAK,CAAC;IACxBD,MAAME,KAAK,CAACC,yBAAgB,CAACC,IAAI,CAAC,MAAMX,cAAcM;IACtDC,MAAME,KAAK,CAACG,2BAAkB,CAACD,IAAI,CAAC,MAAML,WAAWJ,WAAW;QAAEW,OAAO;IAAE;IAC3EN,MAAME,KAAK,CAACZ,MAAMc,IAAI,CAAC,MAAMT,WAAWX,MAAME;IAC9Cc,MAAMO,KAAK,CAACpB;AACd"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/index.ts"],"sourcesContent":["import path from 'path';\nimport Queue from 'queue-cb';\n\nimport { NODE_DIST_BASE_URL } from '../../constants';\nimport conditionalCache from '../../lib/conditionalCache';\nimport conditionalExtract from '../../lib/conditionalExtract';\nimport validateDownload from '../validateDownload';\nimport buildPosix from './buildPosix';\nimport buildWin32 from './buildWin32';\n\nexport default function InstallSource(distPath, dest, options, callback) {\n const platform = options.platform || process.platform;\n const build = platform === 'win32' ? buildWin32 : buildPosix;\n const downloadPath = `${NODE_DIST_BASE_URL}/${distPath}`;\n const buildPath = path.join(options.buildPath, path.basename(distPath));\n const cachePath = path.join(options.cachePath, path.basename(downloadPath));\n\n const queue = new Queue(1);\n queue.defer(conditionalCache.bind(null, downloadPath, cachePath));\n queue.defer(validateDownload.bind(null, distPath, cachePath));\n queue.defer(conditionalExtract.bind(null, cachePath, buildPath, { strip: 1 }));\n queue.defer(build.bind(null, buildPath, dest, options));\n queue.await(callback);\n}\n"],"names":["InstallSource","distPath","dest","options","callback","platform","process","build","buildWin32","buildPosix","downloadPath","NODE_DIST_BASE_URL","buildPath","path","join","basename","cachePath","queue","Queue","defer","conditionalCache","bind","validateDownload","conditionalExtract","strip","await"],"mappings":";;;;+BAUA;;;eAAwBA;;;2DAVP;8DACC;yBAEiB;uEACN;yEACE;uEACF;iEACN;iEACA;;;;;;AAER,SAASA,cAAcC,QAAQ,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IACrE,IAAMC,WAAWF,QAAQE,QAAQ,IAAIC,QAAQD,QAAQ;IACrD,IAAME,QAAQF,aAAa,UAAUG,mBAAU,GAAGC,mBAAU;IAC5D,IAAMC,eAAe,AAAC,GAAwBT,OAAtBU,6BAAkB,EAAC,KAAY,OAATV;IAC9C,IAAMW,YAAYC,aAAI,CAACC,IAAI,CAACX,QAAQS,SAAS,EAAEC,aAAI,CAACE,QAAQ,CAACd;IAC7D,IAAMe,YAAYH,aAAI,CAACC,IAAI,CAACX,QAAQa,SAAS,EAAEH,aAAI,CAACE,QAAQ,CAACL;IAE7D,IAAMO,QAAQ,IAAIC,gBAAK,CAAC;IACxBD,MAAME,KAAK,CAACC,yBAAgB,CAACC,IAAI,CAAC,MAAMX,cAAcM;IACtDC,MAAME,KAAK,CAACG,yBAAgB,CAACD,IAAI,CAAC,MAAMpB,UAAUe;IAClDC,MAAME,KAAK,CAACI,2BAAkB,CAACF,IAAI,CAAC,MAAML,WAAWJ,WAAW;QAAEY,OAAO;IAAE;IAC3EP,MAAME,KAAK,CAACZ,MAAMc,IAAI,CAAC,MAAMT,WAAWV,MAAMC;IAC9Cc,MAAMQ,KAAK,CAACrB;AACd"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return validateDownload;
9
+ }
10
+ });
11
+ var _crypto = /*#__PURE__*/ _interop_require_default(require("crypto"));
12
+ var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
13
+ var _endofstream = /*#__PURE__*/ _interop_require_default(require("end-of-stream"));
14
+ var _getremote = /*#__PURE__*/ _interop_require_default(require("get-remote"));
15
+ var _constants = require("../constants.cjs");
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ function validateDownload(distPath, installPath, callback) {
22
+ var version = distPath.split('/')[0];
23
+ var downloadPath = "".concat(_constants.NODE_DIST_BASE_URL, "/").concat(version, "/SHASUMS256.txt");
24
+ (0, _getremote.default)(downloadPath).text(function(err, res) {
25
+ if (err) return callback(err);
26
+ var text = res.body;
27
+ var filename = distPath.split('/').slice(1).join('/');
28
+ var expected = text.split(filename)[0].split('\n').pop().trim();
29
+ var hash = _crypto.default.createHash('sha256');
30
+ var input = _fs.default.createReadStream(installPath);
31
+ input.on('data', function(data) {
32
+ return hash.update(data);
33
+ });
34
+ (0, _endofstream.default)(input, function(err) {
35
+ if (err) return callback(err);
36
+ var digest = hash.digest('hex');
37
+ console.log("hash ".concat(digest === expected ? 'matches' : 'different', " for ").concat(filename));
38
+ digest !== expected ? callback(new Error("SHASUMS256 failed for ".concat(filename))) : callback();
39
+ });
40
+ });
41
+ }
42
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/validateDownload.ts"],"sourcesContent":["import crypto from 'crypto';\nimport fs from 'fs';\nimport eos from 'end-of-stream';\nimport get from 'get-remote';\nimport { NODE_DIST_BASE_URL } from '../constants';\nexport default function validateDownload(distPath, installPath, callback) {\n const version = distPath.split('/')[0];\n const downloadPath = `${NODE_DIST_BASE_URL}/${version}/SHASUMS256.txt`;\n get(downloadPath).text((err, res) => {\n if (err) return callback(err);\n const text = res.body;\n const filename = distPath.split('/').slice(1).join('/');\n const expected = text.split(filename)[0].split('\\n').pop().trim();\n const hash = crypto.createHash('sha256');\n const input = fs.createReadStream(installPath);\n input.on('data', (data) => hash.update(data));\n eos(input, (err) => {\n if (err) return callback(err);\n const digest = hash.digest('hex');\n console.log(`hash ${digest === expected ? 'matches' : 'different'} for ${filename}`);\n digest !== expected ? callback(new Error(`SHASUMS256 failed for ${filename}`)) : callback();\n });\n });\n}\n"],"names":["validateDownload","distPath","installPath","callback","version","split","downloadPath","NODE_DIST_BASE_URL","get","text","err","res","body","filename","slice","join","expected","pop","trim","hash","crypto","createHash","input","fs","createReadStream","on","data","update","eos","digest","console","log","Error"],"mappings":";;;;+BAKA;;;eAAwBA;;;6DALL;yDACJ;kEACC;gEACA;yBACmB;;;;;;AACpB,SAASA,iBAAiBC,QAAQ,EAAEC,WAAW,EAAEC,QAAQ;IACtE,IAAMC,UAAUH,SAASI,KAAK,CAAC,IAAI,CAAC,EAAE;IACtC,IAAMC,eAAe,AAAC,GAAwBF,OAAtBG,6BAAkB,EAAC,KAAW,OAARH,SAAQ;IACtDI,IAAAA,kBAAG,EAACF,cAAcG,IAAI,CAAC,SAACC,KAAKC;QAC3B,IAAID,KAAK,OAAOP,SAASO;QACzB,IAAMD,OAAOE,IAAIC,IAAI;QACrB,IAAMC,WAAWZ,SAASI,KAAK,CAAC,KAAKS,KAAK,CAAC,GAAGC,IAAI,CAAC;QACnD,IAAMC,WAAWP,KAAKJ,KAAK,CAACQ,SAAS,CAAC,EAAE,CAACR,KAAK,CAAC,MAAMY,GAAG,GAAGC,IAAI;QAC/D,IAAMC,OAAOC,eAAM,CAACC,UAAU,CAAC;QAC/B,IAAMC,QAAQC,WAAE,CAACC,gBAAgB,CAACtB;QAClCoB,MAAMG,EAAE,CAAC,QAAQ,SAACC;mBAASP,KAAKQ,MAAM,CAACD;;QACvCE,IAAAA,oBAAG,EAACN,OAAO,SAACZ;YACV,IAAIA,KAAK,OAAOP,SAASO;YACzB,IAAMmB,SAASV,KAAKU,MAAM,CAAC;YAC3BC,QAAQC,GAAG,CAAC,AAAC,QAA4DlB,OAArDgB,WAAWb,WAAW,YAAY,aAAY,SAAgB,OAATH;YACzEgB,WAAWb,WAAWb,SAAS,IAAI6B,MAAM,AAAC,yBAAiC,OAATnB,cAAeV;QACnF;IACF;AACF"}
@@ -2,9 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ PLATFORM_FILES: function() {
13
+ return PLATFORM_FILES;
14
+ },
15
+ default: function() {
8
16
  return checkMissing;
9
17
  }
10
18
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/checkMissing.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport keys from 'lodash.keys';\n\nconst PLATFORM_FILES = {\n win32: {\n node: ['node.exe'],\n npm: ['npm', 'npm.cmd'],\n },\n posix: {\n node: ['node'],\n npm: ['npm'],\n },\n};\n\nexport default function checkMissing(dest, options, callback) {\n const platform = options.platform || process.platform;\n const files = PLATFORM_FILES[platform] || PLATFORM_FILES.posix;\n const binPath = platform === 'win32' ? dest : path.join(dest, 'bin');\n\n fs.readdir(binPath, (err, names) => {\n if (err || !names.length) return callback(null, keys(files));\n\n const missing = [];\n for (const key in files) {\n const needed = files[key];\n for (let index = 0; index < needed.length; index++) {\n if (!~names.indexOf(needed[index])) {\n missing.push(key);\n break;\n }\n }\n }\n return callback(null, missing);\n });\n}\n"],"names":["checkMissing","PLATFORM_FILES","win32","node","npm","posix","dest","options","callback","platform","process","files","binPath","path","join","fs","readdir","err","names","length","keys","missing","key","needed","index","indexOf","push"],"mappings":";;;;+BAeA;;;eAAwBA;;;yDAfT;2DACE;iEACA;;;;;;AAEjB,IAAMC,iBAAiB;IACrBC,OAAO;QACLC,MAAM;YAAC;SAAW;QAClBC,KAAK;YAAC;YAAO;SAAU;IACzB;IACAC,OAAO;QACLF,MAAM;YAAC;SAAO;QACdC,KAAK;YAAC;SAAM;IACd;AACF;AAEe,SAASJ,aAAaM,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC1D,IAAMC,WAAWF,QAAQE,QAAQ,IAAIC,QAAQD,QAAQ;IACrD,IAAME,QAAQV,cAAc,CAACQ,SAAS,IAAIR,eAAeI,KAAK;IAC9D,IAAMO,UAAUH,aAAa,UAAUH,OAAOO,aAAI,CAACC,IAAI,CAACR,MAAM;IAE9DS,WAAE,CAACC,OAAO,CAACJ,SAAS,SAACK,KAAKC;QACxB,IAAID,OAAO,CAACC,MAAMC,MAAM,EAAE,OAAOX,SAAS,MAAMY,IAAAA,mBAAI,EAACT;QAErD,IAAMU,UAAU,EAAE;QAClB,IAAK,IAAMC,OAAOX,MAAO;YACvB,IAAMY,SAASZ,KAAK,CAACW,IAAI;YACzB,IAAK,IAAIE,QAAQ,GAAGA,QAAQD,OAAOJ,MAAM,EAAEK,QAAS;gBAClD,IAAI,CAAC,CAACN,MAAMO,OAAO,CAACF,MAAM,CAACC,MAAM,GAAG;oBAClCH,QAAQK,IAAI,CAACJ;oBACb;gBACF;YACF;QACF;QACA,OAAOd,SAAS,MAAMa;IACxB;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/checkMissing.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport keys from 'lodash.keys';\n\nexport const PLATFORM_FILES = {\n win32: {\n node: ['node.exe'],\n npm: ['npm', 'npm.cmd'],\n },\n posix: {\n node: ['node'],\n npm: ['npm'],\n },\n};\n\nexport default function checkMissing(dest, options, callback) {\n const platform = options.platform || process.platform;\n const files = PLATFORM_FILES[platform] || PLATFORM_FILES.posix;\n const binPath = platform === 'win32' ? dest : path.join(dest, 'bin');\n\n fs.readdir(binPath, (err, names) => {\n if (err || !names.length) return callback(null, keys(files));\n\n const missing = [];\n for (const key in files) {\n const needed = files[key];\n for (let index = 0; index < needed.length; index++) {\n if (!~names.indexOf(needed[index])) {\n missing.push(key);\n break;\n }\n }\n }\n return callback(null, missing);\n });\n}\n"],"names":["PLATFORM_FILES","checkMissing","win32","node","npm","posix","dest","options","callback","platform","process","files","binPath","path","join","fs","readdir","err","names","length","keys","missing","key","needed","index","indexOf","push"],"mappings":";;;;;;;;;;;IAIaA,cAAc;eAAdA;;IAWb,OAoBC;eApBuBC;;;yDAfT;2DACE;iEACA;;;;;;AAEV,IAAMD,iBAAiB;IAC5BE,OAAO;QACLC,MAAM;YAAC;SAAW;QAClBC,KAAK;YAAC;YAAO;SAAU;IACzB;IACAC,OAAO;QACLF,MAAM;YAAC;SAAO;QACdC,KAAK;YAAC;SAAM;IACd;AACF;AAEe,SAASH,aAAaK,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC1D,IAAMC,WAAWF,QAAQE,QAAQ,IAAIC,QAAQD,QAAQ;IACrD,IAAME,QAAQX,cAAc,CAACS,SAAS,IAAIT,eAAeK,KAAK;IAC9D,IAAMO,UAAUH,aAAa,UAAUH,OAAOO,aAAI,CAACC,IAAI,CAACR,MAAM;IAE9DS,WAAE,CAACC,OAAO,CAACJ,SAAS,SAACK,KAAKC;QACxB,IAAID,OAAO,CAACC,MAAMC,MAAM,EAAE,OAAOX,SAAS,MAAMY,IAAAA,mBAAI,EAACT;QAErD,IAAMU,UAAU,EAAE;QAClB,IAAK,IAAMC,OAAOX,MAAO;YACvB,IAAMY,SAASZ,KAAK,CAACW,IAAI;YACzB,IAAK,IAAIE,QAAQ,GAAGA,QAAQD,OAAOJ,MAAM,EAAEK,QAAS;gBAClD,IAAI,CAAC,CAACN,MAAMO,OAAO,CAACF,MAAM,CAACC,MAAM,GAAG;oBAClCH,QAAQK,IAAI,CAACJ;oBACb;gBACF;YACF;QACF;QACA,OAAOd,SAAS,MAAMa;IACxB;AACF"}
@@ -1,8 +1,9 @@
1
1
  // <<<<****************************>>>>
2
2
  // Inline until merged: https://github.com/jakejarvis/arch/blob/detect-arm/index.js
3
3
  // <<<<****************************>>>>
4
- /*! arch. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */ "use strict";
5
- var cp = require('child_process');
4
+ "use strict";
5
+ require('./execSync/polyfill.cjs');
6
+ /*! arch. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */ var cp = require('child_process');
6
7
  var fs = require('fs');
7
8
  var path = require('path');
8
9
  // <<<<****************************>>>>
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/machine/arch.cjs"],"sourcesContent":["// <<<<****************************>>>>\n// Inline until merged: https://github.com/jakejarvis/arch/blob/detect-arm/index.js\n// <<<<****************************>>>>\nrequire('./execSync/polyfill.cjs');\n\n/*! arch. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\nconst cp = require('child_process');\nconst fs = require('fs');\nconst path = require('path');\n\n// <<<<****************************>>>>\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\n// <<<<****************************>>>>\n\n/**\n * Returns the operating system's CPU architecture. This is different than\n * `process.arch` or `os.arch()` which returns the architecture the Node.js (or\n * Electron) binary was compiled for.\n */\nmodule.exports = function arch() {\n /**\n * On macOS, we need to detect if x64 Node is running because the CPU is truly\n * an Intel chip, or if it's running on Apple Silicon via Rosetta 2:\n * https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment\n */\n if (process.platform === 'darwin') {\n const nativeArm = process.arch === 'arm64';\n const rosettaArm = cp.execSync('sysctl -in sysctl.proc_translated', { encoding: 'utf8' }) === '1\\n';\n\n return nativeArm || rosettaArm ? 'arm64' : 'x64';\n }\n\n /**\n * On Windows, the most reliable way to detect a 64-bit OS from within a 32-bit\n * app is based on the presence of a WOW64 file: %SystemRoot%\\SysNative.\n * See: https://twitter.com/feross/status/776949077208510464\n */\n // <<<<****************************>>>>\n if (isWindows) {\n // <<<<****************************>>>>\n let useEnv = false;\n try {\n useEnv = !!(process.env.SYSTEMROOT && fs.statSync(process.env.SYSTEMROOT));\n } catch (_err) {}\n\n const sysRoot = useEnv ? process.env.SYSTEMROOT : 'C:\\\\Windows';\n\n // If %SystemRoot%\\SysNative exists, we are in a WOW64 FS Redirected application.\n let isWOW64 = false;\n try {\n isWOW64 = !!fs.statSync(path.join(sysRoot, 'sysnative'));\n } catch (_err) {}\n\n return isWOW64 ? 'x64' : 'x86';\n }\n\n /**\n * On Linux, use the `getconf` command to get the architecture.\n */\n if (process.platform === 'linux') {\n try {\n const output1 = cp.execSync('uname -a', { encoding: 'utf8' });\n if (~output1.indexOf('raspberrypi')) return 'arm-pi';\n } catch (_err) {}\n\n const output = cp.execSync('getconf LONG_BIT', { encoding: 'utf8' });\n return output === '64\\n' ? 'x64' : 'x86';\n }\n\n // <<<<****************************>>>>\n /**\n * The running binary is 64-bit, so the OS is clearly 64-bit.\n */\n if (process.arch === 'x64') {\n return 'x64';\n }\n // <<<<****************************>>>>\n\n /**\n * If none of the above, assume the architecture is 32-bit.\n */\n return 'x86';\n};\n"],"names":["require","cp","fs","path","isWindows","process","platform","test","env","OSTYPE","module","exports","arch","nativeArm","rosettaArm","execSync","encoding","useEnv","SYSTEMROOT","statSync","_err","sysRoot","isWOW64","join","output1","indexOf","output"],"mappings":"AAAA,uCAAuC;AACvC,mFAAmF;AACnF,uCAAuC;;AACvCA,QAAQ;AAER,2EAA2E,GAC3E,IAAMC,KAAKD,QAAQ;AACnB,IAAME,KAAKF,QAAQ;AACnB,IAAMG,OAAOH,QAAQ;AAErB,uCAAuC;AACvC,IAAMI,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,uCAAuC;AAEvC;;;;CAIC,GACDC,OAAOC,OAAO,GAAG,SAASC;IACxB;;;;GAIC,GACD,IAAIP,QAAQC,QAAQ,KAAK,UAAU;QACjC,IAAMO,YAAYR,QAAQO,IAAI,KAAK;QACnC,IAAME,aAAab,GAAGc,QAAQ,CAAC,qCAAqC;YAAEC,UAAU;QAAO,OAAO;QAE9F,OAAOH,aAAaC,aAAa,UAAU;IAC7C;IAEA;;;;GAIC,GACD,uCAAuC;IACvC,IAAIV,WAAW;QACb,uCAAuC;QACvC,IAAIa,SAAS;QACb,IAAI;YACFA,SAAS,CAAC,CAAEZ,CAAAA,QAAQG,GAAG,CAACU,UAAU,IAAIhB,GAAGiB,QAAQ,CAACd,QAAQG,GAAG,CAACU,UAAU,CAAA;QAC1E,EAAE,OAAOE,MAAM,CAAC;QAEhB,IAAMC,UAAUJ,SAASZ,QAAQG,GAAG,CAACU,UAAU,GAAG;QAElD,iFAAiF;QACjF,IAAII,UAAU;QACd,IAAI;YACFA,UAAU,CAAC,CAACpB,GAAGiB,QAAQ,CAAChB,KAAKoB,IAAI,CAACF,SAAS;QAC7C,EAAE,OAAOD,MAAM,CAAC;QAEhB,OAAOE,UAAU,QAAQ;IAC3B;IAEA;;GAEC,GACD,IAAIjB,QAAQC,QAAQ,KAAK,SAAS;QAChC,IAAI;YACF,IAAMkB,UAAUvB,GAAGc,QAAQ,CAAC,YAAY;gBAAEC,UAAU;YAAO;YAC3D,IAAI,CAACQ,QAAQC,OAAO,CAAC,gBAAgB,OAAO;QAC9C,EAAE,OAAOL,MAAM,CAAC;QAEhB,IAAMM,SAASzB,GAAGc,QAAQ,CAAC,oBAAoB;YAAEC,UAAU;QAAO;QAClE,OAAOU,WAAW,SAAS,QAAQ;IACrC;IAEA,uCAAuC;IACvC;;GAEC,GACD,IAAIrB,QAAQO,IAAI,KAAK,OAAO;QAC1B,OAAO;IACT;IACA,uCAAuC;IAEvC;;GAEC,GACD,OAAO;AACT"}
@@ -2,7 +2,7 @@
2
2
  var cp = require('child_process');
3
3
  if (!cp.execSync) {
4
4
  var path = require('path');
5
- var execCallback = path.join(__dirname, 'polyfills', 'execCallback.cjs');
5
+ var execCallback = path.join(__dirname, 'worker.cjs');
6
6
  var functionExec = null; // break dependencies
7
7
  cp.execSync = function execSyncPolyfill(cmd) {
8
8
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/machine/execSync/polyfill.cjs"],"sourcesContent":["const cp = require('child_process');\nif (!cp.execSync) {\n const path = require('path');\n const execCallback = path.join(__dirname, 'worker.cjs');\n\n let functionExec = null; // break dependencies\n cp.execSync = function execSyncPolyfill(cmd, options = {}) {\n if (!functionExec) functionExec = require('function-exec-sync');\n return functionExec({ callbacks: true }, execCallback, cmd, options);\n };\n}\n"],"names":["cp","require","execSync","path","execCallback","join","__dirname","functionExec","execSyncPolyfill","cmd","options","callbacks"],"mappings":";AAAA,IAAMA,KAAKC,QAAQ;AACnB,IAAI,CAACD,GAAGE,QAAQ,EAAE;IAChB,IAAMC,OAAOF,QAAQ;IACrB,IAAMG,eAAeD,KAAKE,IAAI,CAACC,WAAW;IAE1C,IAAIC,eAAe,MAAM,qBAAqB;IAC9CP,GAAGE,QAAQ,GAAG,SAASM,iBAAiBC,GAAG;YAAEC,UAAAA,iEAAU,CAAC;QACtD,IAAI,CAACH,cAAcA,eAAeN,QAAQ;QAC1C,OAAOM,aAAa;YAAEI,WAAW;QAAK,GAAGP,cAAcK,KAAKC;IAC9D;AACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/machine/execSync/worker.cjs"],"sourcesContent":["const cp = require('child_process');\n\nmodule.exports = function execCallback(cmd, options, callback) {\n return cp.exec(cmd, options, callback);\n};\n"],"names":["cp","require","module","exports","execCallback","cmd","options","callback","exec"],"mappings":";AAAA,IAAMA,KAAKC,QAAQ;AAEnBC,OAAOC,OAAO,GAAG,SAASC,aAAaC,GAAG,EAAEC,OAAO,EAAEC,QAAQ;IAC3D,OAAOP,GAAGQ,IAAI,CAACH,KAAKC,SAASC;AAC/B"}
@@ -51,40 +51,9 @@ function _object_spread(target) {
51
51
  }
52
52
  return target;
53
53
  }
54
- function ownKeys(object, enumerableOnly) {
55
- var keys = Object.keys(object);
56
- if (Object.getOwnPropertySymbols) {
57
- var symbols = Object.getOwnPropertySymbols(object);
58
- if (enumerableOnly) {
59
- symbols = symbols.filter(function(sym) {
60
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
61
- });
62
- }
63
- keys.push.apply(keys, symbols);
64
- }
65
- return keys;
66
- }
67
- function _object_spread_props(target, source) {
68
- source = source != null ? source : {};
69
- if (Object.getOwnPropertyDescriptors) {
70
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
71
- } else {
72
- ownKeys(Object(source)).forEach(function(key) {
73
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
74
- });
75
- }
76
- return target;
77
- }
78
- var DEFAULT_OPTIONS = {
79
- downloadURL: function downloadURL(relativePath) {
80
- return "https://nodejs.org/dist/".concat(relativePath);
81
- }
82
- };
83
54
  function install(versionExpression, options, callback) {
84
55
  var storagePaths = options.storagePath ? (0, _createStoragePaths.default)(options.storagePath) : _constants.DEFAULT_STORAGE_PATHS;
85
- options = _object_spread_props(_object_spread({}, storagePaths, DEFAULT_OPTIONS, options), {
86
- path: 'raw'
87
- });
56
+ options = _object_spread({}, storagePaths, options);
88
57
  (0, _noderesolveversions.default)(versionExpression, options, function(err, versions) {
89
58
  if (err) return callback(err);
90
59
  if (!versions.length) return callback(new Error("Could not resolve versions for: ".concat(versionExpression)));
@@ -94,7 +63,7 @@ function install(versionExpression, options, callback) {
94
63
  (0, _mkdirpclassic.default)(options.cachePath, function(err) {
95
64
  if (err) return callback(err);
96
65
  var version = versions[0];
97
- var result = (0, _createResult.default)(options, version.version);
66
+ var result = (0, _createResult.default)(options, version);
98
67
  (0, _checkMissing.default)(result.installPath, options, function(err, missing) {
99
68
  if (err || !missing.length) return callback(err, result);
100
69
  var queue = new _queuecb.default(1);
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/workers/install.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport { DEFAULT_STORAGE_PATHS } from '../constants';\n\nimport createResult from '../createResult';\nimport createStoragePaths from '../createStoragePaths';\n\nimport resolveVersions from 'node-resolve-versions';\n\nimport installNPM from '../installNPM/index';\nimport installNode from '../installNode/index';\nimport checkMissing from '../lib/checkMissing';\nimport ensureDestinationParent from '../lib/ensureDestinationParent';\n\nconst DEFAULT_OPTIONS = {\n downloadURL: function downloadURL(relativePath) {\n return `https://nodejs.org/dist/${relativePath}`;\n },\n};\n\nexport default function install(versionExpression, options, callback) {\n const storagePaths = options.storagePath ? createStoragePaths(options.storagePath) : DEFAULT_STORAGE_PATHS;\n\n options = { ...storagePaths, ...DEFAULT_OPTIONS, ...options, path: 'raw' };\n resolveVersions(versionExpression, options, (err, versions) => {\n if (err) return callback(err);\n if (!versions.length) return callback(new Error(`Could not resolve versions for: ${versionExpression}`));\n if (versions.length !== 1) return callback(new Error(`Version ${versionExpression} resolved to multiple versions: ${versions.map((x) => x.version)}. Expecting one.`));\n\n mkdirp(options.cachePath, (err) => {\n if (err) return callback(err);\n const version = versions[0];\n const result = createResult(options, version.version);\n\n checkMissing(result.installPath, options, (err, missing) => {\n if (err || !missing.length) return callback(err, result);\n\n const queue = new Queue(1);\n queue.defer(ensureDestinationParent.bind(null, result.installPath));\n !~missing.indexOf('node') || queue.defer(installNode.bind(null, version, result.installPath, options));\n !~missing.indexOf('npm') || queue.defer(installNPM.bind(null, version, result.installPath, options));\n queue.await((err) => (err ? callback(err) : callback(null, result)));\n });\n });\n });\n}\n"],"names":["install","DEFAULT_OPTIONS","downloadURL","relativePath","versionExpression","options","callback","storagePaths","storagePath","createStoragePaths","DEFAULT_STORAGE_PATHS","path","resolveVersions","err","versions","length","Error","map","x","version","mkdirp","cachePath","result","createResult","checkMissing","installPath","missing","queue","Queue","defer","ensureDestinationParent","bind","indexOf","installNode","installNPM","await"],"mappings":";;;;+BAoBA;;;eAAwBA;;;oEApBL;8DACD;yBACoB;mEAEb;yEACM;0EAEH;4DAEL;6DACC;mEACC;8EACW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpC,IAAMC,kBAAkB;IACtBC,aAAa,SAASA,YAAYC,YAAY;QAC5C,OAAO,AAAC,2BAAuC,OAAbA;IACpC;AACF;AAEe,SAASH,QAAQI,iBAAiB,EAAEC,OAAO,EAAEC,QAAQ;IAClE,IAAMC,eAAeF,QAAQG,WAAW,GAAGC,IAAAA,2BAAkB,EAACJ,QAAQG,WAAW,IAAIE,gCAAqB;IAE1GL,UAAU,wCAAKE,cAAiBN,iBAAoBI;QAASM,MAAM;;IACnEC,IAAAA,4BAAe,EAACR,mBAAmBC,SAAS,SAACQ,KAAKC;QAChD,IAAID,KAAK,OAAOP,SAASO;QACzB,IAAI,CAACC,SAASC,MAAM,EAAE,OAAOT,SAAS,IAAIU,MAAM,AAAC,mCAAoD,OAAlBZ;QACnF,IAAIU,SAASC,MAAM,KAAK,GAAG,OAAOT,SAAS,IAAIU,MAAM,AAAC,WAA8DF,OAApDV,mBAAkB,oCAAiE,OAA/BU,SAASG,GAAG,CAAC,SAACC;mBAAMA,EAAEC,OAAO;YAAE;QAEnJC,IAAAA,sBAAM,EAACf,QAAQgB,SAAS,EAAE,SAACR;YACzB,IAAIA,KAAK,OAAOP,SAASO;YACzB,IAAMM,UAAUL,QAAQ,CAAC,EAAE;YAC3B,IAAMQ,SAASC,IAAAA,qBAAY,EAAClB,SAASc,QAAQA,OAAO;YAEpDK,IAAAA,qBAAY,EAACF,OAAOG,WAAW,EAAEpB,SAAS,SAACQ,KAAKa;gBAC9C,IAAIb,OAAO,CAACa,QAAQX,MAAM,EAAE,OAAOT,SAASO,KAAKS;gBAEjD,IAAMK,QAAQ,IAAIC,gBAAK,CAAC;gBACxBD,MAAME,KAAK,CAACC,gCAAuB,CAACC,IAAI,CAAC,MAAMT,OAAOG,WAAW;gBACjE,CAAC,CAACC,QAAQM,OAAO,CAAC,WAAWL,MAAME,KAAK,CAACI,eAAW,CAACF,IAAI,CAAC,MAAMZ,SAASG,OAAOG,WAAW,EAAEpB;gBAC7F,CAAC,CAACqB,QAAQM,OAAO,CAAC,UAAUL,MAAME,KAAK,CAACK,cAAU,CAACH,IAAI,CAAC,MAAMZ,SAASG,OAAOG,WAAW,EAAEpB;gBAC3FsB,MAAMQ,KAAK,CAAC,SAACtB;2BAASA,MAAMP,SAASO,OAAOP,SAAS,MAAMgB;;YAC7D;QACF;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/workers/install.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport { DEFAULT_STORAGE_PATHS } from '../constants';\n\nimport createResult from '../createResult';\nimport createStoragePaths from '../createStoragePaths';\n\nimport resolveVersions from 'node-resolve-versions';\n\nimport installNPM from '../installNPM/index';\nimport installNode from '../installNode/index';\nimport checkMissing from '../lib/checkMissing';\nimport ensureDestinationParent from '../lib/ensureDestinationParent';\n\nexport default function install(versionExpression, options, callback) {\n const storagePaths = options.storagePath ? createStoragePaths(options.storagePath) : DEFAULT_STORAGE_PATHS;\n\n options = { ...storagePaths, ...options };\n resolveVersions(versionExpression, options, (err, versions) => {\n if (err) return callback(err);\n if (!versions.length) return callback(new Error(`Could not resolve versions for: ${versionExpression}`));\n if (versions.length !== 1) return callback(new Error(`Version ${versionExpression} resolved to multiple versions: ${versions.map((x) => x.version)}. Expecting one.`));\n\n mkdirp(options.cachePath, (err) => {\n if (err) return callback(err);\n const version = versions[0];\n const result = createResult(options, version);\n\n checkMissing(result.installPath, options, (err, missing) => {\n if (err || !missing.length) return callback(err, result);\n\n const queue = new Queue(1);\n queue.defer(ensureDestinationParent.bind(null, result.installPath));\n !~missing.indexOf('node') || queue.defer(installNode.bind(null, version, result.installPath, options));\n !~missing.indexOf('npm') || queue.defer(installNPM.bind(null, version, result.installPath, options));\n queue.await((err) => (err ? callback(err) : callback(null, result)));\n });\n });\n });\n}\n"],"names":["install","versionExpression","options","callback","storagePaths","storagePath","createStoragePaths","DEFAULT_STORAGE_PATHS","resolveVersions","err","versions","length","Error","map","x","version","mkdirp","cachePath","result","createResult","checkMissing","installPath","missing","queue","Queue","defer","ensureDestinationParent","bind","indexOf","installNode","installNPM","await"],"mappings":";;;;+BAcA;;;eAAwBA;;;oEAdL;8DACD;yBACoB;mEAEb;yEACM;0EAEH;4DAEL;6DACC;mEACC;8EACW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAErB,SAASA,QAAQC,iBAAiB,EAAEC,OAAO,EAAEC,QAAQ;IAClE,IAAMC,eAAeF,QAAQG,WAAW,GAAGC,IAAAA,2BAAkB,EAACJ,QAAQG,WAAW,IAAIE,gCAAqB;IAE1GL,UAAU,mBAAKE,cAAiBF;IAChCM,IAAAA,4BAAe,EAACP,mBAAmBC,SAAS,SAACO,KAAKC;QAChD,IAAID,KAAK,OAAON,SAASM;QACzB,IAAI,CAACC,SAASC,MAAM,EAAE,OAAOR,SAAS,IAAIS,MAAM,AAAC,mCAAoD,OAAlBX;QACnF,IAAIS,SAASC,MAAM,KAAK,GAAG,OAAOR,SAAS,IAAIS,MAAM,AAAC,WAA8DF,OAApDT,mBAAkB,oCAAiE,OAA/BS,SAASG,GAAG,CAAC,SAACC;mBAAMA,EAAEC,OAAO;YAAE;QAEnJC,IAAAA,sBAAM,EAACd,QAAQe,SAAS,EAAE,SAACR;YACzB,IAAIA,KAAK,OAAON,SAASM;YACzB,IAAMM,UAAUL,QAAQ,CAAC,EAAE;YAC3B,IAAMQ,SAASC,IAAAA,qBAAY,EAACjB,SAASa;YAErCK,IAAAA,qBAAY,EAACF,OAAOG,WAAW,EAAEnB,SAAS,SAACO,KAAKa;gBAC9C,IAAIb,OAAO,CAACa,QAAQX,MAAM,EAAE,OAAOR,SAASM,KAAKS;gBAEjD,IAAMK,QAAQ,IAAIC,gBAAK,CAAC;gBACxBD,MAAME,KAAK,CAACC,gCAAuB,CAACC,IAAI,CAAC,MAAMT,OAAOG,WAAW;gBACjE,CAAC,CAACC,QAAQM,OAAO,CAAC,WAAWL,MAAME,KAAK,CAACI,eAAW,CAACF,IAAI,CAAC,MAAMZ,SAASG,OAAOG,WAAW,EAAEnB;gBAC7F,CAAC,CAACoB,QAAQM,OAAO,CAAC,UAAUL,MAAME,KAAK,CAACK,cAAU,CAACH,IAAI,CAAC,MAAMZ,SAASG,OAAOG,WAAW,EAAEnB;gBAC3FqB,MAAMQ,KAAK,CAAC,SAACtB;2BAASA,MAAMN,SAASM,OAAON,SAAS,MAAMe;;YAC7D;QACF;IACF;AACF"}
@@ -5,3 +5,47 @@ export const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(
5
5
  export const NODE = isWindows ? 'node.exe' : 'node';
6
6
  export const DEFAULT_STORAGE_PATH = path.join(home(), '.nir');
7
7
  export const DEFAULT_STORAGE_PATHS = createStoragePaths(DEFAULT_STORAGE_PATH);
8
+ export const EXTENSIONS_COMPRESSED = [
9
+ '.gz',
10
+ '.zip',
11
+ '.xz',
12
+ '.7z'
13
+ ];
14
+ export const NODE_DIST_BASE_URL = 'https://nodejs.org/dist';
15
+ export const NODE_SCHEDULES_URL = 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json';
16
+ export const NPM_DIST_URL = 'https://registry.npmjs.org/npm';
17
+ export const NPM_DIST_TAGS_URL = 'https://registry.npmjs.org/-/package/npm/dist-tags';
18
+ export const NPM_MIN_VERSION = 3;
19
+ export const NPM_PLATFORM_FILES = {
20
+ win32: [
21
+ {
22
+ src: path.join('node_modules', 'npm', 'bin', 'npm'),
23
+ dest: 'npm'
24
+ },
25
+ {
26
+ src: path.join('node_modules', 'npm', 'bin', 'npm.cmd'),
27
+ dest: 'npm.cmd'
28
+ },
29
+ {
30
+ src: path.join('node_modules', 'npm', 'bin', 'npx'),
31
+ dest: 'npx',
32
+ optional: true
33
+ },
34
+ {
35
+ src: path.join('node_modules', 'npm', 'bin', 'npx.cmd'),
36
+ dest: 'npx.cmd',
37
+ optional: true
38
+ }
39
+ ],
40
+ posix: [
41
+ {
42
+ src: path.join('node_modules', 'npm', 'bin', 'npm-cli.js'),
43
+ dest: 'npm'
44
+ },
45
+ {
46
+ src: path.join('node_modules', 'npm', 'bin', 'npx-cli.js'),
47
+ dest: 'npx',
48
+ optional: true
49
+ }
50
+ ]
51
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/constants.ts"],"sourcesContent":["import path from 'path';\nimport home from 'homedir-polyfill';\nimport createStoragePaths from './createStoragePaths';\n\nexport const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nexport const NODE = isWindows ? 'node.exe' : 'node';\n\nexport const DEFAULT_STORAGE_PATH = path.join(home(), '.nir');\nexport const DEFAULT_STORAGE_PATHS = createStoragePaths(DEFAULT_STORAGE_PATH);\n"],"names":["path","home","createStoragePaths","isWindows","process","platform","test","env","OSTYPE","NODE","DEFAULT_STORAGE_PATH","join","DEFAULT_STORAGE_PATHS"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,UAAU,mBAAmB;AACpC,OAAOC,wBAAwB,uBAAuB;AAEtD,OAAO,MAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM,EAAE;AACpG,OAAO,MAAMC,OAAON,YAAY,aAAa,OAAO;AAEpD,OAAO,MAAMO,uBAAuBV,KAAKW,IAAI,CAACV,QAAQ,QAAQ;AAC9D,OAAO,MAAMW,wBAAwBV,mBAAmBQ,sBAAsB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/constants.ts"],"sourcesContent":["import path from 'path';\nimport home from 'homedir-polyfill';\nimport createStoragePaths from './createStoragePaths';\n\nexport const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nexport const NODE = isWindows ? 'node.exe' : 'node';\n\nexport const DEFAULT_STORAGE_PATH = path.join(home(), '.nir');\nexport const DEFAULT_STORAGE_PATHS = createStoragePaths(DEFAULT_STORAGE_PATH);\n\nexport const EXTENSIONS_COMPRESSED = ['.gz', '.zip', '.xz', '.7z'];\n\nexport const NODE_DIST_BASE_URL = 'https://nodejs.org/dist';\nexport const NODE_SCHEDULES_URL = 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json';\n\nexport const NPM_DIST_URL = 'https://registry.npmjs.org/npm';\nexport const NPM_DIST_TAGS_URL = 'https://registry.npmjs.org/-/package/npm/dist-tags';\nexport const NPM_MIN_VERSION = 3;\nexport const NPM_PLATFORM_FILES = {\n win32: [\n { src: path.join('node_modules', 'npm', 'bin', 'npm'), dest: 'npm' },\n { src: path.join('node_modules', 'npm', 'bin', 'npm.cmd'), dest: 'npm.cmd' },\n { src: path.join('node_modules', 'npm', 'bin', 'npx'), dest: 'npx', optional: true },\n { src: path.join('node_modules', 'npm', 'bin', 'npx.cmd'), dest: 'npx.cmd', optional: true },\n ],\n posix: [\n { src: path.join('node_modules', 'npm', 'bin', 'npm-cli.js'), dest: 'npm' },\n { src: path.join('node_modules', 'npm', 'bin', 'npx-cli.js'), dest: 'npx', optional: true },\n ],\n};\n"],"names":["path","home","createStoragePaths","isWindows","process","platform","test","env","OSTYPE","NODE","DEFAULT_STORAGE_PATH","join","DEFAULT_STORAGE_PATHS","EXTENSIONS_COMPRESSED","NODE_DIST_BASE_URL","NODE_SCHEDULES_URL","NPM_DIST_URL","NPM_DIST_TAGS_URL","NPM_MIN_VERSION","NPM_PLATFORM_FILES","win32","src","dest","optional","posix"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,UAAU,mBAAmB;AACpC,OAAOC,wBAAwB,uBAAuB;AAEtD,OAAO,MAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM,EAAE;AACpG,OAAO,MAAMC,OAAON,YAAY,aAAa,OAAO;AAEpD,OAAO,MAAMO,uBAAuBV,KAAKW,IAAI,CAACV,QAAQ,QAAQ;AAC9D,OAAO,MAAMW,wBAAwBV,mBAAmBQ,sBAAsB;AAE9E,OAAO,MAAMG,wBAAwB;IAAC;IAAO;IAAQ;IAAO;CAAM,CAAC;AAEnE,OAAO,MAAMC,qBAAqB,0BAA0B;AAC5D,OAAO,MAAMC,qBAAqB,wEAAwE;AAE1G,OAAO,MAAMC,eAAe,iCAAiC;AAC7D,OAAO,MAAMC,oBAAoB,qDAAqD;AACtF,OAAO,MAAMC,kBAAkB,EAAE;AACjC,OAAO,MAAMC,qBAAqB;IAChCC,OAAO;QACL;YAAEC,KAAKrB,KAAKW,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAQW,MAAM;QAAM;QACnE;YAAED,KAAKrB,KAAKW,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAYW,MAAM;QAAU;QAC3E;YAAED,KAAKrB,KAAKW,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAQW,MAAM;YAAOC,UAAU;QAAK;QACnF;YAAEF,KAAKrB,KAAKW,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAYW,MAAM;YAAWC,UAAU;QAAK;KAC5F;IACDC,OAAO;QACL;YAAEH,KAAKrB,KAAKW,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAeW,MAAM;QAAM;QAC1E;YAAED,KAAKrB,KAAKW,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAeW,MAAM;YAAOC,UAAU;QAAK;KAC3F;AACH,EAAE"}
@@ -1,4 +1,3 @@
1
- import './polyfills.cjs';
2
1
  import worker from './workers/install.mjs';
3
2
  export default function install(versionExpression, options, callback) {
4
3
  if (typeof options === 'function') {
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/index.ts"],"sourcesContent":["import './polyfills.cjs';\nimport worker from './workers/install';\n\nimport type { InstallCallback, InstallOptions, InstallResult } from './types';\n\nexport type * from './types';\nexport default function install(versionExpression: string, options?: InstallOptions | InstallCallback, callback?: InstallCallback): undefined | Promise<InstallResult> {\n if (typeof options === 'function') {\n callback = options as InstallCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(versionExpression, options, callback) as undefined;\n return new Promise((resolve, reject) => worker(versionExpression, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\nexport { default as createResult } from './createResult';\nexport { default as createStoragePaths } from './createStoragePaths';\n"],"names":["worker","install","versionExpression","options","callback","Promise","resolve","reject","err","result","default","createResult","createStoragePaths"],"mappings":"AAAA,OAAO,kBAAkB;AACzB,OAAOA,YAAY,oBAAoB;AAKvC,eAAe,SAASC,QAAQC,iBAAyB,EAAEC,OAA0C,EAAEC,QAA0B;IAC/H,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOJ,OAAOE,mBAAmBC,SAASC;IAC9E,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAAWP,OAAOE,mBAAmBC,SAAS,CAACK,KAAKC,SAAYD,MAAMD,OAAOC,OAAOF,QAAQG;AAC3H;AACA,SAASC,WAAWC,YAAY,QAAQ,iBAAiB;AACzD,SAASD,WAAWE,kBAAkB,QAAQ,uBAAuB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/index.ts"],"sourcesContent":["import worker from './workers/install';\n\nimport type { InstallCallback, InstallOptions, InstallResult } from './types';\n\nexport type * from './types';\nexport default function install(versionExpression: string, options?: InstallOptions | InstallCallback, callback?: InstallCallback): undefined | Promise<InstallResult> {\n if (typeof options === 'function') {\n callback = options as InstallCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(versionExpression, options, callback) as undefined;\n return new Promise((resolve, reject) => worker(versionExpression, options, (err, result) => (err ? reject(err) : resolve(result))));\n}\nexport { default as createResult } from './createResult';\nexport { default as createStoragePaths } from './createStoragePaths';\n"],"names":["worker","install","versionExpression","options","callback","Promise","resolve","reject","err","result","default","createResult","createStoragePaths"],"mappings":"AAAA,OAAOA,YAAY,oBAAoB;AAKvC,eAAe,SAASC,QAAQC,iBAAyB,EAAEC,OAA0C,EAAEC,QAA0B;IAC/H,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOJ,OAAOE,mBAAmBC,SAASC;IAC9E,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAAWP,OAAOE,mBAAmBC,SAAS,CAACK,KAAKC,SAAYD,MAAMD,OAAOC,OAAOF,QAAQG;AAC3H;AACA,SAASC,WAAWC,YAAY,QAAQ,iBAAiB;AACzD,SAASD,WAAWE,kBAAkB,QAAQ,uBAAuB"}
@@ -1,45 +1,13 @@
1
1
  import path from 'path';
2
2
  import Queue from 'queue-cb';
3
3
  import conditionalCopy from '../lib/conditionalCopy.mjs';
4
- const PLATFORM_FILES = {
5
- win32: [
6
- {
7
- src: path.join('node_modules', 'npm', 'bin', 'npm'),
8
- dest: 'npm'
9
- },
10
- {
11
- src: path.join('node_modules', 'npm', 'bin', 'npm.cmd'),
12
- dest: 'npm.cmd'
13
- },
14
- {
15
- src: path.join('node_modules', 'npm', 'bin', 'npx'),
16
- dest: 'npx',
17
- optional: true
18
- },
19
- {
20
- src: path.join('node_modules', 'npm', 'bin', 'npx.cmd'),
21
- dest: 'npx.cmd',
22
- optional: true
23
- }
24
- ],
25
- posix: [
26
- {
27
- src: path.join('node_modules', 'npm', 'bin', 'npm-cli.js'),
28
- dest: 'npm'
29
- },
30
- {
31
- src: path.join('node_modules', 'npm', 'bin', 'npx-cli.js'),
32
- dest: 'npx',
33
- optional: true
34
- }
35
- ]
36
- };
4
+ import { NPM_PLATFORM_FILES } from '../constants.mjs';
37
5
  export default function installBin(_version, dest, options, callback) {
38
6
  const platform = options.platform || process.platform;
39
7
  const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');
40
8
  const binPath = platform === 'win32' ? dest : path.join(dest, 'bin');
41
9
  const queue = new Queue();
42
- const files = PLATFORM_FILES[platform] || PLATFORM_FILES.posix;
10
+ const files = NPM_PLATFORM_FILES[platform] || NPM_PLATFORM_FILES.posix;
43
11
  for(let index = 0; index < files.length; index++){
44
12
  const file = files[index];
45
13
  queue.defer(conditionalCopy.bind(null, path.join(libPath, file.src), path.join(binPath, file.dest), file.optional));
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installBin.ts"],"sourcesContent":["import path from 'path';\nimport Queue from 'queue-cb';\nimport conditionalCopy from '../lib/conditionalCopy';\n\nconst PLATFORM_FILES = {\n win32: [\n { src: path.join('node_modules', 'npm', 'bin', 'npm'), dest: 'npm' },\n { src: path.join('node_modules', 'npm', 'bin', 'npm.cmd'), dest: 'npm.cmd' },\n { src: path.join('node_modules', 'npm', 'bin', 'npx'), dest: 'npx', optional: true },\n { src: path.join('node_modules', 'npm', 'bin', 'npx.cmd'), dest: 'npx.cmd', optional: true },\n ],\n posix: [\n { src: path.join('node_modules', 'npm', 'bin', 'npm-cli.js'), dest: 'npm' },\n { src: path.join('node_modules', 'npm', 'bin', 'npx-cli.js'), dest: 'npx', optional: true },\n ],\n};\n\nexport default function installBin(_version, dest, options, callback) {\n const platform = options.platform || process.platform;\n const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');\n const binPath = platform === 'win32' ? dest : path.join(dest, 'bin');\n\n const queue = new Queue();\n const files = PLATFORM_FILES[platform] || PLATFORM_FILES.posix;\n for (let index = 0; index < files.length; index++) {\n const file = files[index];\n queue.defer(conditionalCopy.bind(null, path.join(libPath, file.src), path.join(binPath, file.dest), file.optional));\n }\n\n queue.await(callback);\n}\n"],"names":["path","Queue","conditionalCopy","PLATFORM_FILES","win32","src","join","dest","optional","posix","installBin","_version","options","callback","platform","process","libPath","binPath","queue","files","index","length","file","defer","bind","await"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,qBAAqB,yBAAyB;AAErD,MAAMC,iBAAiB;IACrBC,OAAO;QACL;YAAEC,KAAKL,KAAKM,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAQC,MAAM;QAAM;QACnE;YAAEF,KAAKL,KAAKM,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAYC,MAAM;QAAU;QAC3E;YAAEF,KAAKL,KAAKM,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAQC,MAAM;YAAOC,UAAU;QAAK;QACnF;YAAEH,KAAKL,KAAKM,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAYC,MAAM;YAAWC,UAAU;QAAK;KAC5F;IACDC,OAAO;QACL;YAAEJ,KAAKL,KAAKM,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAeC,MAAM;QAAM;QAC1E;YAAEF,KAAKL,KAAKM,IAAI,CAAC,gBAAgB,OAAO,OAAO;YAAeC,MAAM;YAAOC,UAAU;QAAK;KAC3F;AACH;AAEA,eAAe,SAASE,WAAWC,QAAQ,EAAEJ,IAAI,EAAEK,OAAO,EAAEC,QAAQ;IAClE,MAAMC,WAAWF,QAAQE,QAAQ,IAAIC,QAAQD,QAAQ;IACrD,MAAME,UAAUF,aAAa,UAAUP,OAAOP,KAAKM,IAAI,CAACC,MAAM;IAC9D,MAAMU,UAAUH,aAAa,UAAUP,OAAOP,KAAKM,IAAI,CAACC,MAAM;IAE9D,MAAMW,QAAQ,IAAIjB;IAClB,MAAMkB,QAAQhB,cAAc,CAACW,SAAS,IAAIX,eAAeM,KAAK;IAC9D,IAAK,IAAIW,QAAQ,GAAGA,QAAQD,MAAME,MAAM,EAAED,QAAS;QACjD,MAAME,OAAOH,KAAK,CAACC,MAAM;QACzBF,MAAMK,KAAK,CAACrB,gBAAgBsB,IAAI,CAAC,MAAMxB,KAAKM,IAAI,CAACU,SAASM,KAAKjB,GAAG,GAAGL,KAAKM,IAAI,CAACW,SAASK,KAAKf,IAAI,GAAGe,KAAKd,QAAQ;IACnH;IAEAU,MAAMO,KAAK,CAACZ;AACd"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installBin.ts"],"sourcesContent":["import path from 'path';\nimport Queue from 'queue-cb';\nimport conditionalCopy from '../lib/conditionalCopy';\n\nimport { NPM_PLATFORM_FILES } from '../constants';\n\nexport default function installBin(_version, dest, options, callback) {\n const platform = options.platform || process.platform;\n const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');\n const binPath = platform === 'win32' ? dest : path.join(dest, 'bin');\n\n const queue = new Queue();\n const files = NPM_PLATFORM_FILES[platform] || NPM_PLATFORM_FILES.posix;\n for (let index = 0; index < files.length; index++) {\n const file = files[index];\n queue.defer(conditionalCopy.bind(null, path.join(libPath, file.src), path.join(binPath, file.dest), file.optional));\n }\n\n queue.await(callback);\n}\n"],"names":["path","Queue","conditionalCopy","NPM_PLATFORM_FILES","installBin","_version","dest","options","callback","platform","process","libPath","join","binPath","queue","files","posix","index","length","file","defer","bind","src","optional","await"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,qBAAqB,yBAAyB;AAErD,SAASC,kBAAkB,QAAQ,eAAe;AAElD,eAAe,SAASC,WAAWC,QAAQ,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAClE,MAAMC,WAAWF,QAAQE,QAAQ,IAAIC,QAAQD,QAAQ;IACrD,MAAME,UAAUF,aAAa,UAAUH,OAAON,KAAKY,IAAI,CAACN,MAAM;IAC9D,MAAMO,UAAUJ,aAAa,UAAUH,OAAON,KAAKY,IAAI,CAACN,MAAM;IAE9D,MAAMQ,QAAQ,IAAIb;IAClB,MAAMc,QAAQZ,kBAAkB,CAACM,SAAS,IAAIN,mBAAmBa,KAAK;IACtE,IAAK,IAAIC,QAAQ,GAAGA,QAAQF,MAAMG,MAAM,EAAED,QAAS;QACjD,MAAME,OAAOJ,KAAK,CAACE,MAAM;QACzBH,MAAMM,KAAK,CAAClB,gBAAgBmB,IAAI,CAAC,MAAMrB,KAAKY,IAAI,CAACD,SAASQ,KAAKG,GAAG,GAAGtB,KAAKY,IAAI,CAACC,SAASM,KAAKb,IAAI,GAAGa,KAAKI,QAAQ;IACnH;IAEAT,MAAMU,KAAK,CAAChB;AACd"}
@@ -1,31 +1,25 @@
1
1
  import path from 'path';
2
2
  import get from 'get-remote';
3
+ import { getDist } from 'node-filename-to-dist-paths';
3
4
  import conditionalCache from '../lib/conditionalCache.mjs';
4
5
  import conditionalExtract from '../lib/conditionalExtract.mjs';
5
- const NODE_DIST_URL = 'https://nodejs.org/dist/index.json';
6
- const NPM_DIST_TAGS_URL = 'https://registry.npmjs.org/-/package/npm/dist-tags';
7
- const NPM_DIST_URL = 'https://registry.npmjs.org/npm';
8
- const NPM_MIN_VERSION = 3;
6
+ import { NPM_DIST_TAGS_URL, NPM_DIST_URL, NPM_MIN_VERSION } from '../constants.mjs';
9
7
  export default function installLib(version, dest, options, callback) {
10
8
  const platform = options.platform || process.platform;
11
9
  const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');
12
10
  const installPath = path.join(libPath, 'node_modules', 'npm');
13
- get(NODE_DIST_URL).json((err, res1)=>{
11
+ const dist = getDist(version);
12
+ const npmMajorPair = dist && dist.npm ? +dist.npm.split('.')[0] : NPM_MIN_VERSION;
13
+ const npmMajor = Math.max(npmMajorPair, NPM_MIN_VERSION);
14
+ get(NPM_DIST_TAGS_URL).json((err, res)=>{
14
15
  if (err) return callback(err);
15
- const releases = res1.body;
16
- const found = releases.find((record)=>record.version === version.version);
17
- const npmMajorPair = found && found.npm ? +found.npm.split('.')[0] : NPM_MIN_VERSION;
18
- const npmMajor = Math.max(npmMajorPair, NPM_MIN_VERSION);
19
- get(NPM_DIST_TAGS_URL).json((err, res2)=>{
16
+ const distTags = res.body;
17
+ const installVersion = distTags[`latest-${npmMajor}`] || distTags[`next-${npmMajor}`] || distTags.latest;
18
+ const downloadPath = `${NPM_DIST_URL}/-/npm-${installVersion}.tgz`;
19
+ const cachePath = path.join(options.cachePath, path.basename(downloadPath));
20
+ conditionalCache(downloadPath, cachePath, (err)=>{
20
21
  if (err) return callback(err);
21
- const distTags = res2.body;
22
- const installVersion = distTags[`latest-${npmMajor}`] || distTags[`next-${npmMajor}`] || distTags.latest;
23
- const downloadPath = `${NPM_DIST_URL}/-/npm-${installVersion}.tgz`;
24
- const cachePath = path.join(options.cachePath, path.basename(downloadPath));
25
- conditionalCache(downloadPath, cachePath, (err)=>{
26
- if (err) return callback(err);
27
- conditionalExtract(cachePath, installPath, callback);
28
- });
22
+ conditionalExtract(cachePath, installPath, callback);
29
23
  });
30
24
  });
31
25
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installLib.ts"],"sourcesContent":["import path from 'path';\nimport get from 'get-remote';\n\nimport conditionalCache from '../lib/conditionalCache';\nimport conditionalExtract from '../lib/conditionalExtract';\n\nconst NODE_DIST_URL = 'https://nodejs.org/dist/index.json';\nconst NPM_DIST_TAGS_URL = 'https://registry.npmjs.org/-/package/npm/dist-tags';\nconst NPM_DIST_URL = 'https://registry.npmjs.org/npm';\nconst NPM_MIN_VERSION = 3;\n\ninterface ReleaseRecord {\n version: string;\n npm: string;\n}\n\ninterface DistRecord {\n latest: string;\n}\n\nexport default function installLib(version, dest, options, callback) {\n const platform = options.platform || process.platform;\n const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');\n const installPath = path.join(libPath, 'node_modules', 'npm');\n\n get(NODE_DIST_URL).json((err, res1) => {\n if (err) return callback(err);\n const releases = res1.body as ReleaseRecord[];\n\n const found = releases.find((record) => record.version === version.version);\n const npmMajorPair = found && found.npm ? +found.npm.split('.')[0] : NPM_MIN_VERSION;\n const npmMajor = Math.max(npmMajorPair, NPM_MIN_VERSION);\n\n get(NPM_DIST_TAGS_URL).json((err, res2) => {\n if (err) return callback(err);\n const distTags = res2.body as DistRecord;\n const installVersion = distTags[`latest-${npmMajor}`] || distTags[`next-${npmMajor}`] || distTags.latest;\n const downloadPath = `${NPM_DIST_URL}/-/npm-${installVersion}.tgz`;\n const cachePath = path.join(options.cachePath, path.basename(downloadPath));\n conditionalCache(downloadPath, cachePath, (err) => {\n if (err) return callback(err);\n conditionalExtract(cachePath, installPath, callback);\n });\n });\n });\n}\n"],"names":["path","get","conditionalCache","conditionalExtract","NODE_DIST_URL","NPM_DIST_TAGS_URL","NPM_DIST_URL","NPM_MIN_VERSION","installLib","version","dest","options","callback","platform","process","libPath","join","installPath","json","err","res1","releases","body","found","find","record","npmMajorPair","npm","split","npmMajor","Math","max","res2","distTags","installVersion","latest","downloadPath","cachePath","basename"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,aAAa;AAE7B,OAAOC,sBAAsB,0BAA0B;AACvD,OAAOC,wBAAwB,4BAA4B;AAE3D,MAAMC,gBAAgB;AACtB,MAAMC,oBAAoB;AAC1B,MAAMC,eAAe;AACrB,MAAMC,kBAAkB;AAWxB,eAAe,SAASC,WAAWC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IACjE,MAAMC,WAAWF,QAAQE,QAAQ,IAAIC,QAAQD,QAAQ;IACrD,MAAME,UAAUF,aAAa,UAAUH,OAAOV,KAAKgB,IAAI,CAACN,MAAM;IAC9D,MAAMO,cAAcjB,KAAKgB,IAAI,CAACD,SAAS,gBAAgB;IAEvDd,IAAIG,eAAec,IAAI,CAAC,CAACC,KAAKC;QAC5B,IAAID,KAAK,OAAOP,SAASO;QACzB,MAAME,WAAWD,KAAKE,IAAI;QAE1B,MAAMC,QAAQF,SAASG,IAAI,CAAC,CAACC,SAAWA,OAAOhB,OAAO,KAAKA,QAAQA,OAAO;QAC1E,MAAMiB,eAAeH,SAASA,MAAMI,GAAG,GAAG,CAACJ,MAAMI,GAAG,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAGrB;QACrE,MAAMsB,WAAWC,KAAKC,GAAG,CAACL,cAAcnB;QAExCN,IAAII,mBAAmBa,IAAI,CAAC,CAACC,KAAKa;YAChC,IAAIb,KAAK,OAAOP,SAASO;YACzB,MAAMc,WAAWD,KAAKV,IAAI;YAC1B,MAAMY,iBAAiBD,QAAQ,CAAC,CAAC,OAAO,EAAEJ,UAAU,CAAC,IAAII,QAAQ,CAAC,CAAC,KAAK,EAAEJ,UAAU,CAAC,IAAII,SAASE,MAAM;YACxG,MAAMC,eAAe,GAAG9B,aAAa,OAAO,EAAE4B,eAAe,IAAI,CAAC;YAClE,MAAMG,YAAYrC,KAAKgB,IAAI,CAACL,QAAQ0B,SAAS,EAAErC,KAAKsC,QAAQ,CAACF;YAC7DlC,iBAAiBkC,cAAcC,WAAW,CAAClB;gBACzC,IAAIA,KAAK,OAAOP,SAASO;gBACzBhB,mBAAmBkC,WAAWpB,aAAaL;YAC7C;QACF;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installLib.ts"],"sourcesContent":["import path from 'path';\nimport get from 'get-remote';\nimport { getDist } from 'node-filename-to-dist-paths';\n\nimport conditionalCache from '../lib/conditionalCache';\nimport conditionalExtract from '../lib/conditionalExtract';\n\nimport { NPM_DIST_TAGS_URL, NPM_DIST_URL, NPM_MIN_VERSION } from '../constants';\n\ninterface DistRecord {\n latest: string;\n}\n\nexport default function installLib(version, dest, options, callback) {\n const platform = options.platform || process.platform;\n const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');\n const installPath = path.join(libPath, 'node_modules', 'npm');\n\n const dist = getDist(version);\n const npmMajorPair = dist && dist.npm ? +dist.npm.split('.')[0] : NPM_MIN_VERSION;\n const npmMajor = Math.max(npmMajorPair, NPM_MIN_VERSION);\n\n get(NPM_DIST_TAGS_URL).json((err, res) => {\n if (err) return callback(err);\n const distTags = res.body as DistRecord;\n const installVersion = distTags[`latest-${npmMajor}`] || distTags[`next-${npmMajor}`] || distTags.latest;\n const downloadPath = `${NPM_DIST_URL}/-/npm-${installVersion}.tgz`;\n const cachePath = path.join(options.cachePath, path.basename(downloadPath));\n conditionalCache(downloadPath, cachePath, (err) => {\n if (err) return callback(err);\n conditionalExtract(cachePath, installPath, callback);\n });\n });\n}\n"],"names":["path","get","getDist","conditionalCache","conditionalExtract","NPM_DIST_TAGS_URL","NPM_DIST_URL","NPM_MIN_VERSION","installLib","version","dest","options","callback","platform","process","libPath","join","installPath","dist","npmMajorPair","npm","split","npmMajor","Math","max","json","err","res","distTags","body","installVersion","latest","downloadPath","cachePath","basename"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,aAAa;AAC7B,SAASC,OAAO,QAAQ,8BAA8B;AAEtD,OAAOC,sBAAsB,0BAA0B;AACvD,OAAOC,wBAAwB,4BAA4B;AAE3D,SAASC,iBAAiB,EAAEC,YAAY,EAAEC,eAAe,QAAQ,eAAe;AAMhF,eAAe,SAASC,WAAWC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IACjE,MAAMC,WAAWF,QAAQE,QAAQ,IAAIC,QAAQD,QAAQ;IACrD,MAAME,UAAUF,aAAa,UAAUH,OAAOV,KAAKgB,IAAI,CAACN,MAAM;IAC9D,MAAMO,cAAcjB,KAAKgB,IAAI,CAACD,SAAS,gBAAgB;IAEvD,MAAMG,OAAOhB,QAAQO;IACrB,MAAMU,eAAeD,QAAQA,KAAKE,GAAG,GAAG,CAACF,KAAKE,GAAG,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAGd;IAClE,MAAMe,WAAWC,KAAKC,GAAG,CAACL,cAAcZ;IAExCN,IAAII,mBAAmBoB,IAAI,CAAC,CAACC,KAAKC;QAChC,IAAID,KAAK,OAAOd,SAASc;QACzB,MAAME,WAAWD,IAAIE,IAAI;QACzB,MAAMC,iBAAiBF,QAAQ,CAAC,CAAC,OAAO,EAAEN,UAAU,CAAC,IAAIM,QAAQ,CAAC,CAAC,KAAK,EAAEN,UAAU,CAAC,IAAIM,SAASG,MAAM;QACxG,MAAMC,eAAe,GAAG1B,aAAa,OAAO,EAAEwB,eAAe,IAAI,CAAC;QAClE,MAAMG,YAAYjC,KAAKgB,IAAI,CAACL,QAAQsB,SAAS,EAAEjC,KAAKkC,QAAQ,CAACF;QAC7D7B,iBAAiB6B,cAAcC,WAAW,CAACP;YACzC,IAAIA,KAAK,OAAOd,SAASc;YACzBtB,mBAAmB6B,WAAWhB,aAAaL;QAC7C;IACF;AACF"}
@@ -1,24 +1,34 @@
1
- import find from 'lodash.find';
2
- import endsWithFn from '../lib/endsWithFn.mjs';
3
- import findDistPaths from './findDistPaths.mjs';
4
- import installCompressed from './installCompressed.mjs';
5
- import installExe from './installExe.mjs';
6
- import installSource from './installSource/index.mjs';
1
+ import realArch from '../machine/arch.cjs';
2
+ import installFilename from './installFilename.mjs';
3
+ const PLATFORM_MAP = {
4
+ win32: 'win',
5
+ darwin: 'osx'
6
+ };
7
+ let archMachine;
7
8
  export default function install(version, dest, options, callback) {
8
- let record = findDistPaths(version, options);
9
- if (record) {
10
- if (record.filename === 'src') return installSource(record.relativePaths[0], dest, record, options, callback);
11
- let relativePath = find(record.relativePaths, endsWithFn([
12
- '.tar.gz',
13
- '.zip'
14
- ]));
15
- if (relativePath) return installCompressed(relativePath, dest, record, options, callback);
16
- relativePath = find(record.relativePaths, endsWithFn('.exe'));
17
- if (relativePath) return installExe(relativePath, dest, record, options, callback);
18
- }
19
- record = findDistPaths(version, {
20
- filename: 'src'
21
- });
22
- if (record && record.relativePaths.length) return installSource(record.relativePaths[0], dest, record, options, callback);
23
- callback(new Error(`Unable to install ${version}`));
9
+ if (!archMachine) archMachine = realArch();
10
+ let platform = options.platform || process.platform;
11
+ platform = PLATFORM_MAP[platform] || platform;
12
+ const arch = options.arch || archMachine || process.arch;
13
+ const parts = [
14
+ platform,
15
+ arch
16
+ ];
17
+ if (options.type) parts.push(options.type);
18
+ if (options.compression) parts.push(options.compression);
19
+ const archs = [
20
+ arch
21
+ ];
22
+ if (archs.indexOf('x64') < 0) archs.push('x64');
23
+ if (arch !== process.arch && archs.indexOf(process.arch) < 0) archs.push(process.arch);
24
+ const filenames = archs.map((a)=>[
25
+ platform,
26
+ a
27
+ ].concat(parts.slice(2)).join('-'));
28
+ filenames.push('src');
29
+ const tryNext = (cb)=>{
30
+ if (filenames.length === 0) return cb(new Error(`Failed to find installable for ${version}`));
31
+ installFilename(filenames.shift(), version, dest, options, (err)=>err ? tryNext(cb) : cb());
32
+ };
33
+ tryNext(callback);
24
34
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/index.ts"],"sourcesContent":["import find from 'lodash.find';\n\nimport endsWithFn from '../lib/endsWithFn';\nimport findDistPaths from './findDistPaths';\nimport installCompressed from './installCompressed';\nimport installExe from './installExe';\nimport installSource from './installSource/index';\n\nexport default function install(version, dest, options, callback) {\n let record = findDistPaths(version, options);\n if (record) {\n if (record.filename === 'src') return installSource(record.relativePaths[0], dest, record, options, callback);\n\n let relativePath = find(record.relativePaths, endsWithFn(['.tar.gz', '.zip']));\n if (relativePath) return installCompressed(relativePath, dest, record, options, callback);\n\n relativePath = find(record.relativePaths, endsWithFn('.exe'));\n if (relativePath) return installExe(relativePath, dest, record, options, callback);\n }\n\n record = findDistPaths(version, { filename: 'src' });\n if (record && record.relativePaths.length) return installSource(record.relativePaths[0], dest, record, options, callback);\n callback(new Error(`Unable to install ${version}`));\n}\n"],"names":["find","endsWithFn","findDistPaths","installCompressed","installExe","installSource","install","version","dest","options","callback","record","filename","relativePaths","relativePath","length","Error"],"mappings":"AAAA,OAAOA,UAAU,cAAc;AAE/B,OAAOC,gBAAgB,oBAAoB;AAC3C,OAAOC,mBAAmB,kBAAkB;AAC5C,OAAOC,uBAAuB,sBAAsB;AACpD,OAAOC,gBAAgB,eAAe;AACtC,OAAOC,mBAAmB,wBAAwB;AAElD,eAAe,SAASC,QAAQC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC9D,IAAIC,SAAST,cAAcK,SAASE;IACpC,IAAIE,QAAQ;QACV,IAAIA,OAAOC,QAAQ,KAAK,OAAO,OAAOP,cAAcM,OAAOE,aAAa,CAAC,EAAE,EAAEL,MAAMG,QAAQF,SAASC;QAEpG,IAAII,eAAed,KAAKW,OAAOE,aAAa,EAAEZ,WAAW;YAAC;YAAW;SAAO;QAC5E,IAAIa,cAAc,OAAOX,kBAAkBW,cAAcN,MAAMG,QAAQF,SAASC;QAEhFI,eAAed,KAAKW,OAAOE,aAAa,EAAEZ,WAAW;QACrD,IAAIa,cAAc,OAAOV,WAAWU,cAAcN,MAAMG,QAAQF,SAASC;IAC3E;IAEAC,SAAST,cAAcK,SAAS;QAAEK,UAAU;IAAM;IAClD,IAAID,UAAUA,OAAOE,aAAa,CAACE,MAAM,EAAE,OAAOV,cAAcM,OAAOE,aAAa,CAAC,EAAE,EAAEL,MAAMG,QAAQF,SAASC;IAChHA,SAAS,IAAIM,MAAM,CAAC,kBAAkB,EAAET,SAAS;AACnD"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/index.ts"],"sourcesContent":["import realArch from '../machine/arch.cjs';\nimport installFilename from './installFilename';\n\nconst PLATFORM_MAP = {\n win32: 'win',\n darwin: 'osx',\n};\n\nlet archMachine: NodeJS.Architecture;\nexport default function install(version, dest, options, callback) {\n if (!archMachine) archMachine = realArch() as NodeJS.Architecture;\n let platform = options.platform || process.platform;\n platform = PLATFORM_MAP[platform] || platform;\n const arch = options.arch || archMachine || process.arch;\n const parts = [platform, arch];\n if (options.type) parts.push(options.type);\n if (options.compression) parts.push(options.compression);\n\n const archs = [arch];\n if (archs.indexOf('x64') < 0) archs.push('x64');\n if (arch !== process.arch && archs.indexOf(process.arch) < 0) archs.push(process.arch);\n const filenames = archs.map((a) => [platform, a].concat(parts.slice(2)).join('-'));\n filenames.push('src');\n\n const tryNext = (cb) => {\n if (filenames.length === 0) return cb(new Error(`Failed to find installable for ${version}`));\n installFilename(filenames.shift(), version, dest, options, (err) => (err ? tryNext(cb) : cb()));\n };\n tryNext(callback);\n}\n"],"names":["realArch","installFilename","PLATFORM_MAP","win32","darwin","archMachine","install","version","dest","options","callback","platform","process","arch","parts","type","push","compression","archs","indexOf","filenames","map","a","concat","slice","join","tryNext","cb","length","Error","shift","err"],"mappings":"AAAA,OAAOA,cAAc,sBAAsB;AAC3C,OAAOC,qBAAqB,oBAAoB;AAEhD,MAAMC,eAAe;IACnBC,OAAO;IACPC,QAAQ;AACV;AAEA,IAAIC;AACJ,eAAe,SAASC,QAAQC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC9D,IAAI,CAACL,aAAaA,cAAcL;IAChC,IAAIW,WAAWF,QAAQE,QAAQ,IAAIC,QAAQD,QAAQ;IACnDA,WAAWT,YAAY,CAACS,SAAS,IAAIA;IACrC,MAAME,OAAOJ,QAAQI,IAAI,IAAIR,eAAeO,QAAQC,IAAI;IACxD,MAAMC,QAAQ;QAACH;QAAUE;KAAK;IAC9B,IAAIJ,QAAQM,IAAI,EAAED,MAAME,IAAI,CAACP,QAAQM,IAAI;IACzC,IAAIN,QAAQQ,WAAW,EAAEH,MAAME,IAAI,CAACP,QAAQQ,WAAW;IAEvD,MAAMC,QAAQ;QAACL;KAAK;IACpB,IAAIK,MAAMC,OAAO,CAAC,SAAS,GAAGD,MAAMF,IAAI,CAAC;IACzC,IAAIH,SAASD,QAAQC,IAAI,IAAIK,MAAMC,OAAO,CAACP,QAAQC,IAAI,IAAI,GAAGK,MAAMF,IAAI,CAACJ,QAAQC,IAAI;IACrF,MAAMO,YAAYF,MAAMG,GAAG,CAAC,CAACC,IAAM;YAACX;YAAUW;SAAE,CAACC,MAAM,CAACT,MAAMU,KAAK,CAAC,IAAIC,IAAI,CAAC;IAC7EL,UAAUJ,IAAI,CAAC;IAEf,MAAMU,UAAU,CAACC;QACf,IAAIP,UAAUQ,MAAM,KAAK,GAAG,OAAOD,GAAG,IAAIE,MAAM,CAAC,+BAA+B,EAAEtB,SAAS;QAC3FN,gBAAgBmB,UAAUU,KAAK,IAAIvB,SAASC,MAAMC,SAAS,CAACsB,MAASA,MAAML,QAAQC,MAAMA;IAC3F;IACAD,QAAQhB;AACV"}