node-install-release 1.19.1 → 1.19.3

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 (68) hide show
  1. package/dist/cjs/cli.js +62 -2
  2. package/dist/cjs/cli.js.map +1 -1
  3. package/dist/cjs/installNPM/installLib.js +7 -4
  4. package/dist/cjs/installNPM/installLib.js.map +1 -1
  5. package/dist/cjs/installNode/index.d.cts +2 -2
  6. package/dist/cjs/installNode/index.d.ts +2 -2
  7. package/dist/cjs/installNode/index.js.map +1 -1
  8. package/dist/cjs/installNode/installCompressed.d.cts +2 -2
  9. package/dist/cjs/installNode/installCompressed.d.ts +2 -2
  10. package/dist/cjs/installNode/installCompressed.js.map +1 -1
  11. package/dist/cjs/installNode/installExe.d.cts +2 -2
  12. package/dist/cjs/installNode/installExe.d.ts +2 -2
  13. package/dist/cjs/installNode/installExe.js.map +1 -1
  14. package/dist/cjs/installNode/installFilename.d.cts +2 -2
  15. package/dist/cjs/installNode/installFilename.d.ts +2 -2
  16. package/dist/cjs/installNode/installFilename.js +6 -2
  17. package/dist/cjs/installNode/installFilename.js.map +1 -1
  18. package/dist/cjs/installNode/installSource/buildPosix.js +7 -3
  19. package/dist/cjs/installNode/installSource/buildPosix.js.map +1 -1
  20. package/dist/cjs/installNode/installSource/buildWin32.js +6 -2
  21. package/dist/cjs/installNode/installSource/buildWin32.js.map +1 -1
  22. package/dist/cjs/installNode/installSource/index.d.cts +2 -2
  23. package/dist/cjs/installNode/installSource/index.d.ts +2 -2
  24. package/dist/cjs/installNode/installSource/index.js.map +1 -1
  25. package/dist/cjs/installNode/validateDownload.js +5 -2
  26. package/dist/cjs/installNode/validateDownload.js.map +1 -1
  27. package/dist/cjs/lib/conditionalCache.js +6 -2
  28. package/dist/cjs/lib/conditionalCache.js.map +1 -1
  29. package/dist/cjs/lib/copyFile.js +5 -2
  30. package/dist/cjs/lib/copyFile.js.map +1 -1
  31. package/dist/cjs/lib/extract.js +9 -6
  32. package/dist/cjs/lib/extract.js.map +1 -1
  33. package/dist/cjs/types.d.cts +1 -0
  34. package/dist/cjs/types.d.ts +1 -0
  35. package/dist/cjs/workers/install.js +47 -13
  36. package/dist/cjs/workers/install.js.map +1 -1
  37. package/dist/esm/cli.js +19 -3
  38. package/dist/esm/cli.js.map +1 -1
  39. package/dist/esm/installNPM/installLib.js +5 -2
  40. package/dist/esm/installNPM/installLib.js.map +1 -1
  41. package/dist/esm/installNode/index.d.ts +2 -2
  42. package/dist/esm/installNode/index.js.map +1 -1
  43. package/dist/esm/installNode/installCompressed.d.ts +2 -2
  44. package/dist/esm/installNode/installCompressed.js.map +1 -1
  45. package/dist/esm/installNode/installExe.d.ts +2 -2
  46. package/dist/esm/installNode/installExe.js.map +1 -1
  47. package/dist/esm/installNode/installFilename.d.ts +2 -2
  48. package/dist/esm/installNode/installFilename.js +5 -1
  49. package/dist/esm/installNode/installFilename.js.map +1 -1
  50. package/dist/esm/installNode/installSource/buildPosix.js +5 -1
  51. package/dist/esm/installNode/installSource/buildPosix.js.map +1 -1
  52. package/dist/esm/installNode/installSource/buildWin32.js +5 -1
  53. package/dist/esm/installNode/installSource/buildWin32.js.map +1 -1
  54. package/dist/esm/installNode/installSource/index.d.ts +2 -2
  55. package/dist/esm/installNode/installSource/index.js.map +1 -1
  56. package/dist/esm/installNode/validateDownload.js +4 -1
  57. package/dist/esm/installNode/validateDownload.js.map +1 -1
  58. package/dist/esm/lib/conditionalCache.js +6 -2
  59. package/dist/esm/lib/conditionalCache.js.map +1 -1
  60. package/dist/esm/lib/copyFile.js +7 -2
  61. package/dist/esm/lib/copyFile.js.map +1 -1
  62. package/dist/esm/lib/extract.js +8 -5
  63. package/dist/esm/lib/extract.js.map +1 -1
  64. package/dist/esm/types.d.ts +1 -0
  65. package/dist/esm/types.js.map +1 -1
  66. package/dist/esm/workers/install.js +23 -14
  67. package/dist/esm/workers/install.js.map +1 -1
  68. package/package.json +7 -1
package/dist/cjs/cli.js CHANGED
@@ -13,12 +13,47 @@ var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
13
13
  var _getoptscompat = /*#__PURE__*/ _interop_require_default(require("getopts-compat"));
14
14
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
15
15
  var _url = /*#__PURE__*/ _interop_require_default(require("url"));
16
- var _indexts = /*#__PURE__*/ _interop_require_default(require("./index.js"));
16
+ function _instanceof(left, right) {
17
+ "@swc/helpers - instanceof";
18
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
19
+ return !!right[Symbol.hasInstance](left);
20
+ } else return left instanceof right;
21
+ }
17
22
  function _interop_require_default(obj) {
18
23
  return obj && obj.__esModule ? obj : {
19
24
  default: obj
20
25
  };
21
26
  }
27
+ function _getRequireWildcardCache(nodeInterop) {
28
+ if (typeof WeakMap !== "function") return null;
29
+ var cacheBabelInterop = new WeakMap();
30
+ var cacheNodeInterop = new WeakMap();
31
+ return (_getRequireWildcardCache = function(nodeInterop) {
32
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
33
+ })(nodeInterop);
34
+ }
35
+ function _interop_require_wildcard(obj, nodeInterop) {
36
+ if (!nodeInterop && obj && obj.__esModule) return obj;
37
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") return {
38
+ default: obj
39
+ };
40
+ var cache = _getRequireWildcardCache(nodeInterop);
41
+ if (cache && cache.has(obj)) return cache.get(obj);
42
+ var newObj = {
43
+ __proto__: null
44
+ };
45
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
46
+ for(var key in obj){
47
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
48
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
49
+ if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);
50
+ else newObj[key] = obj[key];
51
+ }
52
+ }
53
+ newObj.default = obj;
54
+ if (cache) cache.set(obj, newObj);
55
+ return newObj;
56
+ }
22
57
  var ERROR_CODE = 9;
23
58
  var __dirname = _path.default.dirname(typeof __filename !== 'undefined' ? __filename : _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()));
24
59
  function getPackageVersion() {
@@ -80,7 +115,7 @@ var _default = function(argv, name) {
80
115
  (0, _exitcompat.default)(ERROR_CODE);
81
116
  return;
82
117
  }
83
- (0, _indexts.default)(args[0], options, function(err, result) {
118
+ var report = function report(err, result) {
84
119
  if (!options.silent) {
85
120
  console.log('\n======================');
86
121
  if (err) console.log("".concat(args[0], " not installed. Error: ").concat(err.message));
@@ -88,6 +123,31 @@ var _default = function(argv, name) {
88
123
  console.log('======================');
89
124
  }
90
125
  (0, _exitcompat.default)(err ? ERROR_CODE : 0);
126
+ };
127
+ // deferred: index.ts pulls the whole download+extract+build pipeline. require() cannot load this
128
+ // ESM sibling below Node 20.19 (require(esm)), so the ESM half needs a real dynamic import; the
129
+ // CJS half's sibling is genuine CommonJS, so a plain synchronous require avoids depending on
130
+ // Promise, which isn't global before Node 0.12.
131
+ loadIndex(function(err, install) {
132
+ return err || !install ? report(err) : install(args[0], options, report);
91
133
  });
92
134
  };
135
+ function loadIndex(callback) {
136
+ if (typeof require === 'undefined') {
137
+ Promise.resolve().then(function() {
138
+ return /*#__PURE__*/ _interop_require_wildcard(require("./index.js"));
139
+ }).then(function(mod) {
140
+ return callback(null, mod.default || mod);
141
+ }).catch(function(err) {
142
+ return callback(_instanceof(err, Error) ? err : new Error(String(err)));
143
+ });
144
+ } else {
145
+ try {
146
+ var mod = require('./index.js');
147
+ callback(null, mod.default || mod);
148
+ } catch (err) {
149
+ callback(_instanceof(err, Error) ? err : new Error(String(err)));
150
+ }
151
+ }
152
+ }
93
153
  /* 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; }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/cli.ts"],"sourcesContent":["import exit from 'exit-compat';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport url from 'url';\nimport install, { type InstallOptions } from './index.ts';\n\nconst ERROR_CODE = 9;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nfunction getPackageVersion(): string {\n const packagePath = path.join(__dirname, '..', '..', 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageJson.version;\n}\n\nfunction printHelp(name: string): void {\n const version = getPackageVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} <version> [options]`);\n console.log('');\n console.log('Arguments:');\n console.log(' version Node.js version to install (e.g., 18.0.0, lts, stable)');\n console.log('');\n console.log('Options:');\n console.log(' -p, --platform Target platform (default: current platform)');\n console.log(' -a, --arch Target architecture (default: current architecture)');\n console.log(' -f, --filename Specific filename to download');\n console.log(' -i, --installPath Installation directory');\n console.log(' -c, --storagePath Cache storage directory');\n console.log(' -si, --silent Suppress output');\n console.log(' -v, --version Show version number');\n console.log(' -h, --help Show this help message');\n}\n\nexport default (argv: string[], name?: string): void => {\n const cliName = name || 'nir';\n const options = getopts(argv, {\n alias: { platform: 'p', arch: 'a', filename: 'f', installPath: 'i', storagePath: 'c', silent: 'si', version: 'v', help: 'h' },\n boolean: ['silent', 'version', 'help'],\n });\n\n if (options.version) {\n console.log(getPackageVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n printHelp(cliName);\n exit(0);\n return;\n }\n\n const args = options._;\n if (args.length < 1) {\n console.log(`Missing command. Example usage: ${cliName} <version> [directory]`);\n exit(ERROR_CODE);\n return;\n }\n install(args[0], options as InstallOptions, (err, result) => {\n if (!options.silent) {\n console.log('\\n======================');\n if (err) console.log(`${args[0]} not installed. Error: ${err.message}`);\n else console.log(`${result?.version} installed in: ${result?.installPath}`);\n console.log('======================');\n }\n exit(err ? ERROR_CODE : 0);\n });\n};\n"],"names":["ERROR_CODE","__dirname","path","dirname","__filename","url","fileURLToPath","getPackageVersion","packagePath","join","packageJson","JSON","parse","fs","readFileSync","version","printHelp","name","console","log","argv","cliName","options","getopts","alias","platform","arch","filename","installPath","storagePath","silent","help","boolean","exit","args","_","length","install","err","result","message"],"mappings":";;;;+BAoCA;;;eAAA;;;iEApCiB;yDACF;oEACK;2DACH;0DACD;8DAC6B;;;;;;AAE7C,IAAMA,aAAa;AACnB,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAElG,SAASC;IACP,IAAMC,cAAcN,aAAI,CAACO,IAAI,CAACR,WAAW,MAAM,MAAM;IACrD,IAAMS,cAAcC,KAAKC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACN,aAAa;IAC5D,OAAOE,YAAYK,OAAO;AAC5B;AAEA,SAASC,UAAUC,IAAY;IAC7B,IAAMF,UAAUR;IAChBW,QAAQC,GAAG,CAAC,AAAC,GAAWJ,OAATE,MAAK,MAAY,OAARF;IACxBG,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC,AAAC,UAAc,OAALF,MAAK;IAC3BC,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;AACd;IAEA,WAAe,SAACC,MAAgBH;IAC9B,IAAMI,UAAUJ,QAAQ;IACxB,IAAMK,UAAUC,IAAAA,sBAAO,EAACH,MAAM;QAC5BI,OAAO;YAAEC,UAAU;YAAKC,MAAM;YAAKC,UAAU;YAAKC,aAAa;YAAKC,aAAa;YAAKC,QAAQ;YAAMf,SAAS;YAAKgB,MAAM;QAAI;QAC5HC,SAAS;YAAC;YAAU;YAAW;SAAO;IACxC;IAEA,IAAIV,QAAQP,OAAO,EAAE;QACnBG,QAAQC,GAAG,CAACZ;QACZ0B,IAAAA,mBAAI,EAAC;QACL;IACF;IAEA,IAAIX,QAAQS,IAAI,EAAE;QAChBf,UAAUK;QACVY,IAAAA,mBAAI,EAAC;QACL;IACF;IAEA,IAAMC,OAAOZ,QAAQa,CAAC;IACtB,IAAID,KAAKE,MAAM,GAAG,GAAG;QACnBlB,QAAQC,GAAG,CAAC,AAAC,mCAA0C,OAARE,SAAQ;QACvDY,IAAAA,mBAAI,EAACjC;QACL;IACF;IACAqC,IAAAA,gBAAO,EAACH,IAAI,CAAC,EAAE,EAAEZ,SAA2B,SAACgB,KAAKC;QAChD,IAAI,CAACjB,QAAQQ,MAAM,EAAE;YACnBZ,QAAQC,GAAG,CAAC;YACZ,IAAImB,KAAKpB,QAAQC,GAAG,CAAC,AAAC,GAAmCmB,OAAjCJ,IAAI,CAAC,EAAE,EAAC,2BAAqC,OAAZI,IAAIE,OAAO;iBAC/DtB,QAAQC,GAAG,CAAC,AAjEvB,AAiEwB,UAAEoB,mBAAAA,6BAAAA,OAAQxB,OAAO,EAAC,mBAAqC,OAApBwB,mBAAAA,6BAAAA,OAAQX,WAAW;YACxEV,QAAQC,GAAG,CAAC;QACd;QACAc,IAAAA,mBAAI,EAACK,MAAMtC,aAAa;IAC1B;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/cli.ts"],"sourcesContent":["import exit from 'exit-compat';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport url from 'url';\nimport type { InstallOptions, InstallResult } from './index.ts';\n\nconst ERROR_CODE = 9;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nfunction getPackageVersion(): string {\n const packagePath = path.join(__dirname, '..', '..', 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageJson.version;\n}\n\nfunction printHelp(name: string): void {\n const version = getPackageVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} <version> [options]`);\n console.log('');\n console.log('Arguments:');\n console.log(' version Node.js version to install (e.g., 18.0.0, lts, stable)');\n console.log('');\n console.log('Options:');\n console.log(' -p, --platform Target platform (default: current platform)');\n console.log(' -a, --arch Target architecture (default: current architecture)');\n console.log(' -f, --filename Specific filename to download');\n console.log(' -i, --installPath Installation directory');\n console.log(' -c, --storagePath Cache storage directory');\n console.log(' -si, --silent Suppress output');\n console.log(' -v, --version Show version number');\n console.log(' -h, --help Show this help message');\n}\n\nexport default (argv: string[], name?: string): void => {\n const cliName = name || 'nir';\n const options = getopts(argv, {\n alias: { platform: 'p', arch: 'a', filename: 'f', installPath: 'i', storagePath: 'c', silent: 'si', version: 'v', help: 'h' },\n boolean: ['silent', 'version', 'help'],\n });\n\n if (options.version) {\n console.log(getPackageVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n printHelp(cliName);\n exit(0);\n return;\n }\n\n const args = options._;\n if (args.length < 1) {\n console.log(`Missing command. Example usage: ${cliName} <version> [directory]`);\n exit(ERROR_CODE);\n return;\n }\n const report = (err?: Error | null, result?: InstallResult) => {\n if (!options.silent) {\n console.log('\\n======================');\n if (err) console.log(`${args[0]} not installed. Error: ${err.message}`);\n else console.log(`${result?.version} installed in: ${result?.installPath}`);\n console.log('======================');\n }\n exit(err ? ERROR_CODE : 0);\n };\n // deferred: index.ts pulls the whole download+extract+build pipeline. require() cannot load this\n // ESM sibling below Node 20.19 (require(esm)), so the ESM half needs a real dynamic import; the\n // CJS half's sibling is genuine CommonJS, so a plain synchronous require avoids depending on\n // Promise, which isn't global before Node 0.12.\n loadIndex((err, install) => (err || !install ? report(err) : install(args[0], options as InstallOptions, report)));\n};\n\ntype InstallFn = (versionExpression: string, options: InstallOptions, callback: (err?: Error | null, result?: InstallResult) => void) => void;\n\nfunction loadIndex(callback: (err: Error | null, install?: InstallFn) => void): void {\n if (typeof require === 'undefined') {\n import('./index.js').then((mod) => callback(null, mod.default || mod)).catch((err) => callback(err instanceof Error ? err : new Error(String(err))));\n } else {\n try {\n const mod = require('./index.js');\n callback(null, mod.default || mod);\n } catch (err) {\n callback(err instanceof Error ? err : new Error(String(err)));\n }\n }\n}\n"],"names":["ERROR_CODE","__dirname","path","dirname","__filename","url","fileURLToPath","getPackageVersion","packagePath","join","packageJson","JSON","parse","fs","readFileSync","version","printHelp","name","console","log","argv","cliName","options","getopts","alias","platform","arch","filename","installPath","storagePath","silent","help","boolean","exit","args","_","length","report","err","result","message","loadIndex","install","callback","require","then","mod","default","catch","Error","String"],"mappings":";;;;+BAoCA;;;eAAA;;;iEApCiB;yDACF;oEACK;2DACH;0DACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGhB,IAAMA,aAAa;AACnB,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAElG,SAASC;IACP,IAAMC,cAAcN,aAAI,CAACO,IAAI,CAACR,WAAW,MAAM,MAAM;IACrD,IAAMS,cAAcC,KAAKC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACN,aAAa;IAC5D,OAAOE,YAAYK,OAAO;AAC5B;AAEA,SAASC,UAAUC,IAAY;IAC7B,IAAMF,UAAUR;IAChBW,QAAQC,GAAG,CAAC,AAAC,GAAWJ,OAATE,MAAK,MAAY,OAARF;IACxBG,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC,AAAC,UAAc,OAALF,MAAK;IAC3BC,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC;AACd;IAEA,WAAe,SAACC,MAAgBH;IAC9B,IAAMI,UAAUJ,QAAQ;IACxB,IAAMK,UAAUC,IAAAA,sBAAO,EAACH,MAAM;QAC5BI,OAAO;YAAEC,UAAU;YAAKC,MAAM;YAAKC,UAAU;YAAKC,aAAa;YAAKC,aAAa;YAAKC,QAAQ;YAAMf,SAAS;YAAKgB,MAAM;QAAI;QAC5HC,SAAS;YAAC;YAAU;YAAW;SAAO;IACxC;IAEA,IAAIV,QAAQP,OAAO,EAAE;QACnBG,QAAQC,GAAG,CAACZ;QACZ0B,IAAAA,mBAAI,EAAC;QACL;IACF;IAEA,IAAIX,QAAQS,IAAI,EAAE;QAChBf,UAAUK;QACVY,IAAAA,mBAAI,EAAC;QACL;IACF;IAEA,IAAMC,OAAOZ,QAAQa,CAAC;IACtB,IAAID,KAAKE,MAAM,GAAG,GAAG;QACnBlB,QAAQC,GAAG,CAAC,AAAC,mCAA0C,OAARE,SAAQ;QACvDY,IAAAA,mBAAI,EAACjC;QACL;IACF;IACA,IAAMqC,SAAS,gBAACC,KAAoBC;QAClC,IAAI,CAACjB,QAAQQ,MAAM,EAAE;YACnBZ,QAAQC,GAAG,CAAC;YACZ,IAAImB,KAAKpB,QAAQC,GAAG,CAAC,AAAC,GAAmCmB,OAAjCJ,IAAI,CAAC,EAAE,EAAC,2BAAqC,OAAZI,IAAIE,OAAO;iBAC/DtB,QAAQC,GAAG,CAAC,AAjEvB,AAiEwB,UAAEoB,mBAAAA,6BAAAA,OAAQxB,OAAO,EAAC,mBAAqC,OAApBwB,mBAAAA,6BAAAA,OAAQX,WAAW;YACxEV,QAAQC,GAAG,CAAC;QACd;QACAc,IAAAA,mBAAI,EAACK,MAAMtC,aAAa;IAC1B;IACA,iGAAiG;IACjG,gGAAgG;IAChG,6FAA6F;IAC7F,gDAAgD;IAChDyC,UAAU,SAACH,KAAKI;eAAaJ,OAAO,CAACI,UAAUL,OAAOC,OAAOI,QAAQR,IAAI,CAAC,EAAE,EAAEZ,SAA2Be;;AAC3G;AAIA,SAASI,UAAUE,QAA0D;IAC3E,IAAI,OAAOC,YAAY,aAAa;QAClC;2DAAA,QAAO;WAAcC,IAAI,CAAC,SAACC;mBAAQH,SAAS,MAAMG,IAAIC,OAAO,IAAID;WAAME,KAAK,CAAC,SAACV;mBAAQK,SAASL,AAAG,YAAHA,KAAeW,SAAQX,MAAM,IAAIW,MAAMC,OAAOZ;;IAC/I,OAAO;QACL,IAAI;YACF,IAAMQ,MAAMF,QAAQ;YACpBD,SAAS,MAAMG,IAAIC,OAAO,IAAID;QAChC,EAAE,OAAOR,KAAK;YACZK,SAASL,AAAG,YAAHA,KAAeW,SAAQX,MAAM,IAAIW,MAAMC,OAAOZ;QACzD;IACF;AACF"}
@@ -10,8 +10,7 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _crypto = /*#__PURE__*/ _interop_require_default(require("crypto"));
12
12
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
13
- var _getfilecompat = require("get-file-compat");
14
- var _nodefilenametodistpaths = require("node-filename-to-dist-paths");
13
+ var _module = /*#__PURE__*/ _interop_require_default(require("module"));
15
14
  var _onone = /*#__PURE__*/ _interop_require_default(require("on-one"));
16
15
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
17
16
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
@@ -24,6 +23,7 @@ function _interop_require_default(obj) {
24
23
  default: obj
25
24
  };
26
25
  }
26
+ var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
27
27
  function calculateChecksum(filePath, callback) {
28
28
  var hash = _crypto.default.createHash('sha256');
29
29
  var stream = _fs.default.createReadStream(filePath);
@@ -44,10 +44,13 @@ function installLib(version, dest, options, callback) {
44
44
  var platform = options.platform;
45
45
  var libPath = platform === 'win32' ? dest : _path.default.join(dest, 'lib');
46
46
  var installPath = _path.default.join(libPath, 'node_modules', 'npm');
47
- (0, _nodefilenametodistpaths.getDistAsync)(version, function(_err, dist) {
47
+ // deferred: both pull fetch-json-cache / get-file-compat, only needed to actually install npm
48
+ var getDistAsync = _require('node-filename-to-dist-paths').getDistAsync;
49
+ var getContent = _require('get-file-compat').getContent;
50
+ getDistAsync(version, function(_err, dist) {
48
51
  // pin the npm major only when the dist index knows this version; unknown means use latest
49
52
  var npmMajor = dist && dist.npm ? Math.max(+dist.npm.split('.')[0], _constantsts.NPM_MIN_VERSION) : null;
50
- (0, _getfilecompat.getContent)(_constantsts.NPM_DIST_TAGS_URL, 'utf8', function(err, res) {
53
+ getContent(_constantsts.NPM_DIST_TAGS_URL, 'utf8', function(err, res) {
51
54
  if (err) return callback(err);
52
55
  try {
53
56
  var _ref, _options_cachePath;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installLib.ts"],"sourcesContent":["import crypto from 'crypto';\nimport fs from 'fs';\nimport { getContent } from 'get-file-compat';\nimport { getDistAsync } from 'node-filename-to-dist-paths';\nimport oo from 'on-one';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { tmpdir } from '../compat.ts';\nimport { NPM_DIST_TAGS_URL, NPM_DIST_URL, NPM_MIN_VERSION } from '../constants.ts';\nimport conditionalCache from '../lib/conditionalCache.ts';\nimport extract from '../lib/extract.ts';\n\nimport type { InstallOptions } from '../types.ts';\n\nexport type Callback = (error?: Error | null, npmVersion?: string, checksum?: string) => void;\n\nfunction calculateChecksum(filePath: string, callback: (err?: Error | null, checksum?: string) => void): void {\n const hash = crypto.createHash('sha256');\n const stream = fs.createReadStream(filePath);\n stream.on('data', (data) => hash.update(data));\n oo(stream, ['error', 'end', 'close', 'finish'], (err: Error | null) => {\n if (err) return callback(err);\n callback(undefined, hash.digest('hex'));\n });\n}\n\nexport default function installLib(version: string, dest: string, options: InstallOptions, callback: Callback): void {\n const platform = options.platform;\n const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');\n const installPath = path.join(libPath, 'node_modules', 'npm');\n\n getDistAsync(version, (_err, dist) => {\n // pin the npm major only when the dist index knows this version; unknown means use latest\n const npmMajor = dist && dist.npm ? Math.max(+dist.npm.split('.')[0], NPM_MIN_VERSION) : null;\n\n getContent(NPM_DIST_TAGS_URL, 'utf8', (err, res) => {\n if (err) return callback(err);\n try {\n const distTags = JSON.parse(res?.content ?? '{}') as Record<string, string>;\n const npmVersion = npmMajor === null ? distTags.latest : distTags[`latest-${npmMajor}`] || distTags[`next-${npmMajor}`] || distTags.latest;\n const downloadPath = `${NPM_DIST_URL}/-/npm-${npmVersion}.tgz`;\n const cachePath = path.join(options.cachePath ?? tmpdir(), path.basename(downloadPath));\n\n let checksum: string | undefined;\n const queue = new Queue(1);\n queue.defer((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => {\n calculateChecksum(cachePath, (err, hash) => {\n checksum = hash;\n cb(err);\n });\n });\n queue.defer((cb) => extract(cachePath, installPath, (err) => cb(err)));\n queue.await((err) => {\n err ? callback(err) : callback(undefined, npmVersion, checksum);\n });\n } catch (_e) {\n return callback(new Error('Failed to parse npm dist-tags'));\n }\n });\n });\n}\n"],"names":["installLib","calculateChecksum","filePath","callback","hash","crypto","createHash","stream","fs","createReadStream","on","data","update","oo","err","undefined","digest","version","dest","options","platform","libPath","path","join","installPath","getDistAsync","_err","dist","npmMajor","npm","Math","max","split","NPM_MIN_VERSION","getContent","NPM_DIST_TAGS_URL","res","distTags","JSON","parse","content","npmVersion","latest","downloadPath","NPM_DIST_URL","cachePath","tmpdir","basename","checksum","queue","Queue","defer","cb","conditionalCache","extract","await","_e","Error"],"mappings":";;;;+BA0BA;;;eAAwBA;;;6DA1BL;yDACJ;6BACY;uCACE;4DACd;2DACE;8DACC;wBACK;2BAC0C;yEACpC;gEACT;;;;;;AAMpB,SAASC,kBAAkBC,QAAgB,EAAEC,QAAyD;IACpG,IAAMC,OAAOC,eAAM,CAACC,UAAU,CAAC;IAC/B,IAAMC,SAASC,WAAE,CAACC,gBAAgB,CAACP;IACnCK,OAAOG,EAAE,CAAC,QAAQ,SAACC;eAASP,KAAKQ,MAAM,CAACD;;IACxCE,IAAAA,cAAE,EAACN,QAAQ;QAAC;QAAS;QAAO;QAAS;KAAS,EAAE,SAACO;QAC/C,IAAIA,KAAK,OAAOX,SAASW;QACzBX,SAASY,WAAWX,KAAKY,MAAM,CAAC;IAClC;AACF;AAEe,SAAShB,WAAWiB,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEhB,QAAkB;IAC3G,IAAMiB,WAAWD,QAAQC,QAAQ;IACjC,IAAMC,UAAUD,aAAa,UAAUF,OAAOI,aAAI,CAACC,IAAI,CAACL,MAAM;IAC9D,IAAMM,cAAcF,aAAI,CAACC,IAAI,CAACF,SAAS,gBAAgB;IAEvDI,IAAAA,qCAAY,EAACR,SAAS,SAACS,MAAMC;QAC3B,0FAA0F;QAC1F,IAAMC,WAAWD,QAAQA,KAAKE,GAAG,GAAGC,KAAKC,GAAG,CAAC,CAACJ,KAAKE,GAAG,CAACG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAEC,4BAAe,IAAI;QAEzFC,IAAAA,yBAAU,EAACC,8BAAiB,EAAE,QAAQ,SAACrB,KAAKsB;YAC1C,IAAItB,KAAK,OAAOX,SAASW;YACzB,IAAI;0BAI0BK;gBAH5B,IAAMkB,WAAWC,KAAKC,KAAK,SAACH,gBAAAA,0BAAAA,IAAKI,OAAO,uCAAI;gBAC5C,IAAMC,aAAab,aAAa,OAAOS,SAASK,MAAM,GAAGL,QAAQ,CAAC,AAAC,UAAkB,OAATT,UAAW,IAAIS,QAAQ,CAAC,AAAC,QAAgB,OAATT,UAAW,IAAIS,SAASK,MAAM;gBAC1I,IAAMC,eAAe,AAAC,GAAwBF,OAAtBG,yBAAY,EAAC,WAAoB,OAAXH,YAAW;gBACzD,IAAMI,YAAYvB,aAAI,CAACC,IAAI,EAACJ,qBAAAA,QAAQ0B,SAAS,cAAjB1B,gCAAAA,qBAAqB2B,IAAAA,gBAAM,KAAIxB,aAAI,CAACyB,QAAQ,CAACJ;gBAEzE,IAAIK;gBACJ,IAAMC,QAAQ,IAAIC,gBAAK,CAAC;gBACxBD,MAAME,KAAK,CAAC,SAACC;2BAAOC,IAAAA,2BAAgB,EAACV,cAAcE,WAAW1B,SAAS,SAACL;+BAAQsC,GAAGtC;;;gBACnFmC,MAAME,KAAK,CAAC,SAACC;oBACXnD,kBAAkB4C,WAAW,SAAC/B,KAAKV;wBACjC4C,WAAW5C;wBACXgD,GAAGtC;oBACL;gBACF;gBACAmC,MAAME,KAAK,CAAC,SAACC;2BAAOE,IAAAA,kBAAO,EAACT,WAAWrB,aAAa,SAACV;+BAAQsC,GAAGtC;;;gBAChEmC,MAAMM,KAAK,CAAC,SAACzC;oBACXA,MAAMX,SAASW,OAAOX,SAASY,WAAW0B,YAAYO;gBACxD;YACF,EAAE,OAAOQ,IAAI;gBACX,OAAOrD,SAAS,IAAIsD,MAAM;YAC5B;QACF;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNPM/installLib.ts"],"sourcesContent":["import crypto from 'crypto';\nimport fs from 'fs';\nimport Module from 'module';\nimport oo from 'on-one';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { tmpdir } from '../compat.ts';\nimport { NPM_DIST_TAGS_URL, NPM_DIST_URL, NPM_MIN_VERSION } from '../constants.ts';\nimport conditionalCache from '../lib/conditionalCache.ts';\nimport extract from '../lib/extract.ts';\n\nimport type { InstallOptions } from '../types.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nexport type Callback = (error?: Error | null, npmVersion?: string, checksum?: string) => void;\n\nfunction calculateChecksum(filePath: string, callback: (err?: Error | null, checksum?: string) => void): void {\n const hash = crypto.createHash('sha256');\n const stream = fs.createReadStream(filePath);\n stream.on('data', (data) => hash.update(data));\n oo(stream, ['error', 'end', 'close', 'finish'], (err: Error | null) => {\n if (err) return callback(err);\n callback(undefined, hash.digest('hex'));\n });\n}\n\nexport default function installLib(version: string, dest: string, options: InstallOptions, callback: Callback): void {\n const platform = options.platform;\n const libPath = platform === 'win32' ? dest : path.join(dest, 'lib');\n const installPath = path.join(libPath, 'node_modules', 'npm');\n\n // deferred: both pull fetch-json-cache / get-file-compat, only needed to actually install npm\n const { getDistAsync } = _require('node-filename-to-dist-paths');\n const { getContent } = _require('get-file-compat');\n getDistAsync(version, (_err: Error | null, dist: { npm?: string }) => {\n // pin the npm major only when the dist index knows this version; unknown means use latest\n const npmMajor = dist && dist.npm ? Math.max(+dist.npm.split('.')[0], NPM_MIN_VERSION) : null;\n\n getContent(NPM_DIST_TAGS_URL, 'utf8', (err: Error | null, res: { content?: string }) => {\n if (err) return callback(err);\n try {\n const distTags = JSON.parse(res?.content ?? '{}') as Record<string, string>;\n const npmVersion = npmMajor === null ? distTags.latest : distTags[`latest-${npmMajor}`] || distTags[`next-${npmMajor}`] || distTags.latest;\n const downloadPath = `${NPM_DIST_URL}/-/npm-${npmVersion}.tgz`;\n const cachePath = path.join(options.cachePath ?? tmpdir(), path.basename(downloadPath));\n\n let checksum: string | undefined;\n const queue = new Queue(1);\n queue.defer((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => {\n calculateChecksum(cachePath, (err, hash) => {\n checksum = hash;\n cb(err);\n });\n });\n queue.defer((cb) => extract(cachePath, installPath, (err) => cb(err)));\n queue.await((err) => {\n err ? callback(err) : callback(undefined, npmVersion, checksum);\n });\n } catch (_e) {\n return callback(new Error('Failed to parse npm dist-tags'));\n }\n });\n });\n}\n"],"names":["installLib","_require","require","Module","createRequire","calculateChecksum","filePath","callback","hash","crypto","createHash","stream","fs","createReadStream","on","data","update","oo","err","undefined","digest","version","dest","options","platform","libPath","path","join","installPath","getDistAsync","getContent","_err","dist","npmMajor","npm","Math","max","split","NPM_MIN_VERSION","NPM_DIST_TAGS_URL","res","distTags","JSON","parse","content","npmVersion","latest","downloadPath","NPM_DIST_URL","cachePath","tmpdir","basename","checksum","queue","Queue","defer","cb","conditionalCache","extract","await","_e","Error"],"mappings":";;;;+BA2BA;;;eAAwBA;;;6DA3BL;yDACJ;6DACI;4DACJ;2DACE;8DACC;wBACK;2BAC0C;yEACpC;gEACT;;;;;;AAIpB,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAI1F,SAASG,kBAAkBC,QAAgB,EAAEC,QAAyD;IACpG,IAAMC,OAAOC,eAAM,CAACC,UAAU,CAAC;IAC/B,IAAMC,SAASC,WAAE,CAACC,gBAAgB,CAACP;IACnCK,OAAOG,EAAE,CAAC,QAAQ,SAACC;eAASP,KAAKQ,MAAM,CAACD;;IACxCE,IAAAA,cAAE,EAACN,QAAQ;QAAC;QAAS;QAAO;QAAS;KAAS,EAAE,SAACO;QAC/C,IAAIA,KAAK,OAAOX,SAASW;QACzBX,SAASY,WAAWX,KAAKY,MAAM,CAAC;IAClC;AACF;AAEe,SAASpB,WAAWqB,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEhB,QAAkB;IAC3G,IAAMiB,WAAWD,QAAQC,QAAQ;IACjC,IAAMC,UAAUD,aAAa,UAAUF,OAAOI,aAAI,CAACC,IAAI,CAACL,MAAM;IAC9D,IAAMM,cAAcF,aAAI,CAACC,IAAI,CAACF,SAAS,gBAAgB;IAEvD,8FAA8F;IAC9F,IAAM,AAAEI,eAAiB5B,SAAS,+BAA1B4B;IACR,IAAM,AAAEC,aAAe7B,SAAS,mBAAxB6B;IACRD,aAAaR,SAAS,SAACU,MAAoBC;QACzC,0FAA0F;QAC1F,IAAMC,WAAWD,QAAQA,KAAKE,GAAG,GAAGC,KAAKC,GAAG,CAAC,CAACJ,KAAKE,GAAG,CAACG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAEC,4BAAe,IAAI;QAEzFR,WAAWS,8BAAiB,EAAE,QAAQ,SAACrB,KAAmBsB;YACxD,IAAItB,KAAK,OAAOX,SAASW;YACzB,IAAI;0BAI0BK;gBAH5B,IAAMkB,WAAWC,KAAKC,KAAK,SAACH,gBAAAA,0BAAAA,IAAKI,OAAO,uCAAI;gBAC5C,IAAMC,aAAaZ,aAAa,OAAOQ,SAASK,MAAM,GAAGL,QAAQ,CAAC,AAAC,UAAkB,OAATR,UAAW,IAAIQ,QAAQ,CAAC,AAAC,QAAgB,OAATR,UAAW,IAAIQ,SAASK,MAAM;gBAC1I,IAAMC,eAAe,AAAC,GAAwBF,OAAtBG,yBAAY,EAAC,WAAoB,OAAXH,YAAW;gBACzD,IAAMI,YAAYvB,aAAI,CAACC,IAAI,EAACJ,qBAAAA,QAAQ0B,SAAS,cAAjB1B,gCAAAA,qBAAqB2B,IAAAA,gBAAM,KAAIxB,aAAI,CAACyB,QAAQ,CAACJ;gBAEzE,IAAIK;gBACJ,IAAMC,QAAQ,IAAIC,gBAAK,CAAC;gBACxBD,MAAME,KAAK,CAAC,SAACC;2BAAOC,IAAAA,2BAAgB,EAACV,cAAcE,WAAW1B,SAAS,SAACL;+BAAQsC,GAAGtC;;;gBACnFmC,MAAME,KAAK,CAAC,SAACC;oBACXnD,kBAAkB4C,WAAW,SAAC/B,KAAKV;wBACjC4C,WAAW5C;wBACXgD,GAAGtC;oBACL;gBACF;gBACAmC,MAAME,KAAK,CAAC,SAACC;2BAAOE,IAAAA,kBAAO,EAACT,WAAWrB,aAAa,SAACV;+BAAQsC,GAAGtC;;;gBAChEmC,MAAMM,KAAK,CAAC,SAACzC;oBACXA,MAAMX,SAASW,OAAOX,SAASY,WAAW0B,YAAYO;gBACxD;YACF,EAAE,OAAOQ,IAAI;gBACX,OAAOrD,SAAS,IAAIsD,MAAM;YAC5B;QACF;IACF;AACF"}
@@ -1,2 +1,2 @@
1
- import type { InstallOptions, NoParamCallback } from '../types.js';
2
- export default function install(version: string, dest: string, options: InstallOptions, callback: NoParamCallback): void;
1
+ import type { NoParamCallback, ResolvedInstallOptions } from '../types.js';
2
+ export default function install(version: string, dest: string, options: ResolvedInstallOptions, callback: NoParamCallback): void;
@@ -1,2 +1,2 @@
1
- import type { InstallOptions, NoParamCallback } from '../types.js';
2
- export default function install(version: string, dest: string, options: InstallOptions, callback: NoParamCallback): void;
1
+ import type { NoParamCallback, ResolvedInstallOptions } from '../types.js';
2
+ export default function install(version: string, dest: string, options: ResolvedInstallOptions, callback: NoParamCallback): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/index.ts"],"sourcesContent":["import { FILE_PLATFORM_MAP, FILES } from '../constants.ts';\nimport type { ChecksumResult, InstallOptions, NoParamCallback } from '../types.ts';\nimport installFilename from './installFilename.ts';\n\nexport default function install(version: string, dest: string, options: InstallOptions, callback: NoParamCallback): void {\n let filenames: string[] | null = null;\n\n // a specific filename\n if (options.filename) filenames = [options.filename];\n // infer with fallbacks\n else {\n const { platform, arch } = options;\n const filePlatform = (FILE_PLATFORM_MAP as Record<string, string>)[platform as string] || platform;\n const parts = [filePlatform, arch];\n if (options.type) parts.push(options.type);\n if (options.compression) parts.push(options.compression as unknown as string);\n\n // generate the files in search order\n const archs = [arch, process.arch];\n filenames = archs.map((a) => [filePlatform, a].concat(parts.slice(2)).join('-'));\n ((FILES as Record<string, { filename: string }[]>)[filePlatform as string] || []).forEach((x: { filename: string }) => {\n filenames?.push(x.filename);\n });\n filenames?.push('src');\n filenames = filenames?.filter((filename, i) => filenames?.indexOf(filename) === i);\n }\n\n const tryNext = (cb: (err?: Error | null, checksum?: ChecksumResult) => void, lastErr?: Error) => {\n if (filenames == null || filenames.length === 0) {\n const msg = `Failed to find installable for ${version}${options.filename ? ` Filename: ${options.filename}` : ''}`;\n return cb(new Error(lastErr ? `${msg}: ${lastErr.message}` : msg));\n }\n const filename = filenames.shift() as string;\n installFilename(filename, version, dest, options, (err, checksum) => (err ? tryNext(cb, err) : cb(undefined, checksum)));\n };\n tryNext((err, checksum) => {\n let message = `node ${version.slice(1)}`;\n if (!err) {\n message += ' installed';\n if (checksum) message += ` (${checksum.actual.slice(0, 8)})`;\n } else {\n message += ' install failed';\n if (checksum) message += ` (${checksum.actual} expecting ${checksum.expected})`;\n message += `. Error: ${err.message}`;\n }\n console.log(message);\n callback(err);\n });\n}\n"],"names":["install","version","dest","options","callback","filenames","filename","platform","arch","filePlatform","FILE_PLATFORM_MAP","parts","type","push","compression","archs","process","map","a","concat","slice","join","FILES","forEach","x","filter","i","indexOf","tryNext","cb","lastErr","length","msg","Error","message","shift","installFilename","err","checksum","undefined","actual","expected","console","log"],"mappings":";;;;+BAIA;;;eAAwBA;;;2BAJiB;wEAEb;;;;;;AAEb,SAASA,QAAQC,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAAyB;IAC/G,IAAIC,YAA6B;IAEjC,sBAAsB;IACtB,IAAIF,QAAQG,QAAQ,EAAED,YAAY;QAACF,QAAQG,QAAQ;KAAC;SAE/C;QACH,IAAQC,WAAmBJ,QAAnBI,UAAUC,OAASL,QAATK;QAClB,IAAMC,eAAe,AAACC,8BAAiB,AAA2B,CAACH,SAAmB,IAAIA;QAC1F,IAAMI,QAAQ;YAACF;YAAcD;SAAK;QAClC,IAAIL,QAAQS,IAAI,EAAED,MAAME,IAAI,CAACV,QAAQS,IAAI;QACzC,IAAIT,QAAQW,WAAW,EAAEH,MAAME,IAAI,CAACV,QAAQW,WAAW;QAEvD,qCAAqC;QACrC,IAAMC,QAAQ;YAACP;YAAMQ,QAAQR,IAAI;SAAC;QAClCH,YAAYU,MAAME,GAAG,CAAC,SAACC;mBAAM;gBAACT;gBAAcS;aAAE,CAACC,MAAM,CAACR,MAAMS,KAAK,CAAC,IAAIC,IAAI,CAAC;;QAC1E,CAAA,AAACC,kBAAK,AAA2C,CAACb,aAAuB,IAAI,EAAE,AAAD,EAAGc,OAAO,CAAC,SAACC;YACzFnB,sBAAAA,gCAAAA,UAAWQ,IAAI,CAACW,EAAElB,QAAQ;QAC5B;QACAD,sBAAAA,gCAAAA,UAAWQ,IAAI,CAAC;QAChBR,YAAYA,sBAAAA,gCAAAA,UAAWoB,MAAM,CAAC,SAACnB,UAAUoB;mBAAMrB,CAAAA,sBAAAA,gCAAAA,UAAWsB,OAAO,CAACrB,eAAcoB;;IAClF;IAEA,IAAME,UAAU,kBAACC,IAA6DC;QAC5E,IAAIzB,aAAa,QAAQA,UAAU0B,MAAM,KAAK,GAAG;YAC/C,IAAMC,MAAM,AAAC,kCAA2C7B,OAAVF,SAAmE,OAAzDE,QAAQG,QAAQ,GAAG,AAAC,cAA8B,OAAjBH,QAAQG,QAAQ,IAAK;YAC9G,OAAOuB,GAAG,IAAII,MAAMH,UAAU,AAAC,GAAUA,OAARE,KAAI,MAAoB,OAAhBF,QAAQI,OAAO,IAAKF;QAC/D;QACA,IAAM1B,WAAWD,UAAU8B,KAAK;QAChCC,IAAAA,0BAAe,EAAC9B,UAAUL,SAASC,MAAMC,SAAS,SAACkC,KAAKC;mBAAcD,MAAMT,QAAQC,IAAIQ,OAAOR,GAAGU,WAAWD;;IAC/G;IACAV,QAAQ,SAACS,KAAKC;QACZ,IAAIJ,UAAU,AAAC,QAAwB,OAAjBjC,QAAQmB,KAAK,CAAC;QACpC,IAAI,CAACiB,KAAK;YACRH,WAAW;YACX,IAAII,UAAUJ,WAAW,AAAC,KAAgC,OAA5BI,SAASE,MAAM,CAACpB,KAAK,CAAC,GAAG,IAAG;QAC5D,OAAO;YACLc,WAAW;YACX,IAAII,UAAUJ,WAAW,AAAC,KAAiCI,OAA7BA,SAASE,MAAM,EAAC,eAA+B,OAAlBF,SAASG,QAAQ,EAAC;YAC7EP,WAAW,AAAC,YAAuB,OAAZG,IAAIH,OAAO;QACpC;QACAQ,QAAQC,GAAG,CAACT;QACZ9B,SAASiC;IACX;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/index.ts"],"sourcesContent":["import { FILE_PLATFORM_MAP, FILES } from '../constants.ts';\nimport type { ChecksumResult, NoParamCallback, ResolvedInstallOptions } from '../types.ts';\nimport installFilename from './installFilename.ts';\n\nexport default function install(version: string, dest: string, options: ResolvedInstallOptions, callback: NoParamCallback): void {\n let filenames: string[] | null = null;\n\n // a specific filename\n if (options.filename) filenames = [options.filename];\n // infer with fallbacks\n else {\n const { platform, arch } = options;\n const filePlatform = (FILE_PLATFORM_MAP as Record<string, string>)[platform as string] || platform;\n const parts = [filePlatform, arch];\n if (options.type) parts.push(options.type);\n if (options.compression) parts.push(options.compression as unknown as string);\n\n // generate the files in search order\n const archs = [arch, process.arch];\n filenames = archs.map((a) => [filePlatform, a].concat(parts.slice(2)).join('-'));\n ((FILES as Record<string, { filename: string }[]>)[filePlatform as string] || []).forEach((x: { filename: string }) => {\n filenames?.push(x.filename);\n });\n filenames?.push('src');\n filenames = filenames?.filter((filename, i) => filenames?.indexOf(filename) === i);\n }\n\n const tryNext = (cb: (err?: Error | null, checksum?: ChecksumResult) => void, lastErr?: Error) => {\n if (filenames == null || filenames.length === 0) {\n const msg = `Failed to find installable for ${version}${options.filename ? ` Filename: ${options.filename}` : ''}`;\n return cb(new Error(lastErr ? `${msg}: ${lastErr.message}` : msg));\n }\n const filename = filenames.shift() as string;\n installFilename(filename, version, dest, options, (err, checksum) => (err ? tryNext(cb, err) : cb(undefined, checksum)));\n };\n tryNext((err, checksum) => {\n let message = `node ${version.slice(1)}`;\n if (!err) {\n message += ' installed';\n if (checksum) message += ` (${checksum.actual.slice(0, 8)})`;\n } else {\n message += ' install failed';\n if (checksum) message += ` (${checksum.actual} expecting ${checksum.expected})`;\n message += `. Error: ${err.message}`;\n }\n console.log(message);\n callback(err);\n });\n}\n"],"names":["install","version","dest","options","callback","filenames","filename","platform","arch","filePlatform","FILE_PLATFORM_MAP","parts","type","push","compression","archs","process","map","a","concat","slice","join","FILES","forEach","x","filter","i","indexOf","tryNext","cb","lastErr","length","msg","Error","message","shift","installFilename","err","checksum","undefined","actual","expected","console","log"],"mappings":";;;;+BAIA;;;eAAwBA;;;2BAJiB;wEAEb;;;;;;AAEb,SAASA,QAAQC,OAAe,EAAEC,IAAY,EAAEC,OAA+B,EAAEC,QAAyB;IACvH,IAAIC,YAA6B;IAEjC,sBAAsB;IACtB,IAAIF,QAAQG,QAAQ,EAAED,YAAY;QAACF,QAAQG,QAAQ;KAAC;SAE/C;QACH,IAAQC,WAAmBJ,QAAnBI,UAAUC,OAASL,QAATK;QAClB,IAAMC,eAAe,AAACC,8BAAiB,AAA2B,CAACH,SAAmB,IAAIA;QAC1F,IAAMI,QAAQ;YAACF;YAAcD;SAAK;QAClC,IAAIL,QAAQS,IAAI,EAAED,MAAME,IAAI,CAACV,QAAQS,IAAI;QACzC,IAAIT,QAAQW,WAAW,EAAEH,MAAME,IAAI,CAACV,QAAQW,WAAW;QAEvD,qCAAqC;QACrC,IAAMC,QAAQ;YAACP;YAAMQ,QAAQR,IAAI;SAAC;QAClCH,YAAYU,MAAME,GAAG,CAAC,SAACC;mBAAM;gBAACT;gBAAcS;aAAE,CAACC,MAAM,CAACR,MAAMS,KAAK,CAAC,IAAIC,IAAI,CAAC;;QAC1E,CAAA,AAACC,kBAAK,AAA2C,CAACb,aAAuB,IAAI,EAAE,AAAD,EAAGc,OAAO,CAAC,SAACC;YACzFnB,sBAAAA,gCAAAA,UAAWQ,IAAI,CAACW,EAAElB,QAAQ;QAC5B;QACAD,sBAAAA,gCAAAA,UAAWQ,IAAI,CAAC;QAChBR,YAAYA,sBAAAA,gCAAAA,UAAWoB,MAAM,CAAC,SAACnB,UAAUoB;mBAAMrB,CAAAA,sBAAAA,gCAAAA,UAAWsB,OAAO,CAACrB,eAAcoB;;IAClF;IAEA,IAAME,UAAU,kBAACC,IAA6DC;QAC5E,IAAIzB,aAAa,QAAQA,UAAU0B,MAAM,KAAK,GAAG;YAC/C,IAAMC,MAAM,AAAC,kCAA2C7B,OAAVF,SAAmE,OAAzDE,QAAQG,QAAQ,GAAG,AAAC,cAA8B,OAAjBH,QAAQG,QAAQ,IAAK;YAC9G,OAAOuB,GAAG,IAAII,MAAMH,UAAU,AAAC,GAAUA,OAARE,KAAI,MAAoB,OAAhBF,QAAQI,OAAO,IAAKF;QAC/D;QACA,IAAM1B,WAAWD,UAAU8B,KAAK;QAChCC,IAAAA,0BAAe,EAAC9B,UAAUL,SAASC,MAAMC,SAAS,SAACkC,KAAKC;mBAAcD,MAAMT,QAAQC,IAAIQ,OAAOR,GAAGU,WAAWD;;IAC/G;IACAV,QAAQ,SAACS,KAAKC;QACZ,IAAIJ,UAAU,AAAC,QAAwB,OAAjBjC,QAAQmB,KAAK,CAAC;QACpC,IAAI,CAACiB,KAAK;YACRH,WAAW;YACX,IAAII,UAAUJ,WAAW,AAAC,KAAgC,OAA5BI,SAASE,MAAM,CAACpB,KAAK,CAAC,GAAG,IAAG;QAC5D,OAAO;YACLc,WAAW;YACX,IAAII,UAAUJ,WAAW,AAAC,KAAiCI,OAA7BA,SAASE,MAAM,EAAC,eAA+B,OAAlBF,SAASG,QAAQ,EAAC;YAC7EP,WAAW,AAAC,YAAuB,OAAZG,IAAIH,OAAO;QACpC;QACAQ,QAAQC,GAAG,CAACT;QACZ9B,SAASiC;IACX;AACF"}
@@ -1,2 +1,2 @@
1
- import type { ChecksumCallback, InstallOptions } from '../types.js';
2
- export default function installCompressed(distPath: string, dest: string, options: InstallOptions, callback: ChecksumCallback): void;
1
+ import type { ChecksumCallback, ResolvedInstallOptions } from '../types.js';
2
+ export default function installCompressed(distPath: string, dest: string, options: ResolvedInstallOptions, callback: ChecksumCallback): void;
@@ -1,2 +1,2 @@
1
- import type { ChecksumCallback, InstallOptions } from '../types.js';
2
- export default function installCompressed(distPath: string, dest: string, options: InstallOptions, callback: ChecksumCallback): void;
1
+ import type { ChecksumCallback, ResolvedInstallOptions } from '../types.js';
2
+ export default function installCompressed(distPath: string, dest: string, options: ResolvedInstallOptions, callback: ChecksumCallback): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installCompressed.ts"],"sourcesContent":["import path from 'path';\nimport Queue from 'queue-cb';\n\nimport { NODE_DIST_BASE_URL } from '../constants.ts';\nimport conditionalCache from '../lib/conditionalCache.ts';\nimport extract from '../lib/extract.ts';\nimport type { ChecksumCallback, ChecksumResult, InstallOptions } from '../types.ts';\nimport validateDownload from './validateDownload.ts';\n\nexport default function installCompressed(distPath: string, dest: string, options: InstallOptions, callback: ChecksumCallback): void {\n const downloadPath = `${NODE_DIST_BASE_URL}/${distPath}`;\n const cachePath = path.join(options.cachePath!, path.basename(downloadPath));\n\n let checksum: ChecksumResult | undefined;\n const queue = new Queue(1);\n queue.defer((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => {\n validateDownload(distPath, cachePath, (err, result) => {\n checksum = result;\n cb(err);\n });\n });\n queue.defer(extract.bind(null, cachePath, dest, { strip: 1, time: 1000 }));\n queue.await((err) => callback(err, checksum));\n}\n"],"names":["installCompressed","distPath","dest","options","callback","downloadPath","NODE_DIST_BASE_URL","cachePath","path","join","basename","checksum","queue","Queue","defer","cb","conditionalCache","err","validateDownload","result","extract","bind","strip","time","await"],"mappings":";;;;+BASA;;;eAAwBA;;;2DATP;8DACC;2BAEiB;yEACN;gEACT;yEAES;;;;;;AAEd,SAASA,kBAAkBC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC3H,IAAMC,eAAe,AAAC,GAAwBJ,OAAtBK,+BAAkB,EAAC,KAAY,OAATL;IAC9C,IAAMM,YAAYC,aAAI,CAACC,IAAI,CAACN,QAAQI,SAAS,EAAGC,aAAI,CAACE,QAAQ,CAACL;IAE9D,IAAIM;IACJ,IAAMC,QAAQ,IAAIC,gBAAK,CAAC;IACxBD,MAAME,KAAK,CAAC,SAACC;eAAOC,IAAAA,2BAAgB,EAACX,cAAcE,WAAWJ,SAAS,SAACc;mBAAQF,GAAGE;;;IACnFL,MAAME,KAAK,CAAC,SAACC;QACXG,IAAAA,2BAAgB,EAACjB,UAAUM,WAAW,SAACU,KAAKE;YAC1CR,WAAWQ;YACXJ,GAAGE;QACL;IACF;IACAL,MAAME,KAAK,CAACM,kBAAO,CAACC,IAAI,CAAC,MAAMd,WAAWL,MAAM;QAAEoB,OAAO;QAAGC,MAAM;IAAK;IACvEX,MAAMY,KAAK,CAAC,SAACP;eAAQb,SAASa,KAAKN;;AACrC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installCompressed.ts"],"sourcesContent":["import path from 'path';\nimport Queue from 'queue-cb';\n\nimport { NODE_DIST_BASE_URL } from '../constants.ts';\nimport conditionalCache from '../lib/conditionalCache.ts';\nimport extract from '../lib/extract.ts';\nimport type { ChecksumCallback, ChecksumResult, ResolvedInstallOptions } from '../types.ts';\nimport validateDownload from './validateDownload.ts';\n\nexport default function installCompressed(distPath: string, dest: string, options: ResolvedInstallOptions, callback: ChecksumCallback): void {\n const downloadPath = `${NODE_DIST_BASE_URL}/${distPath}`;\n const cachePath = path.join(options.cachePath, path.basename(downloadPath));\n\n let checksum: ChecksumResult | undefined;\n const queue = new Queue(1);\n queue.defer((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => {\n validateDownload(distPath, cachePath, (err, result) => {\n checksum = result;\n cb(err);\n });\n });\n queue.defer(extract.bind(null, cachePath, dest, { strip: 1, time: 1000 }));\n queue.await((err) => callback(err, checksum));\n}\n"],"names":["installCompressed","distPath","dest","options","callback","downloadPath","NODE_DIST_BASE_URL","cachePath","path","join","basename","checksum","queue","Queue","defer","cb","conditionalCache","err","validateDownload","result","extract","bind","strip","time","await"],"mappings":";;;;+BASA;;;eAAwBA;;;2DATP;8DACC;2BAEiB;yEACN;gEACT;yEAES;;;;;;AAEd,SAASA,kBAAkBC,QAAgB,EAAEC,IAAY,EAAEC,OAA+B,EAAEC,QAA0B;IACnI,IAAMC,eAAe,AAAC,GAAwBJ,OAAtBK,+BAAkB,EAAC,KAAY,OAATL;IAC9C,IAAMM,YAAYC,aAAI,CAACC,IAAI,CAACN,QAAQI,SAAS,EAAEC,aAAI,CAACE,QAAQ,CAACL;IAE7D,IAAIM;IACJ,IAAMC,QAAQ,IAAIC,gBAAK,CAAC;IACxBD,MAAME,KAAK,CAAC,SAACC;eAAOC,IAAAA,2BAAgB,EAACX,cAAcE,WAAWJ,SAAS,SAACc;mBAAQF,GAAGE;;;IACnFL,MAAME,KAAK,CAAC,SAACC;QACXG,IAAAA,2BAAgB,EAACjB,UAAUM,WAAW,SAACU,KAAKE;YAC1CR,WAAWQ;YACXJ,GAAGE;QACL;IACF;IACAL,MAAME,KAAK,CAACM,kBAAO,CAACC,IAAI,CAAC,MAAMd,WAAWL,MAAM;QAAEoB,OAAO;QAAGC,MAAM;IAAK;IACvEX,MAAMY,KAAK,CAAC,SAACP;eAAQb,SAASa,KAAKN;;AACrC"}
@@ -1,2 +1,2 @@
1
- import type { InstallOptions, NoParamCallback } from '../types.js';
2
- export default function installExe(distPath: string, dest: string, options: InstallOptions, callback: NoParamCallback): void;
1
+ import type { NoParamCallback, ResolvedInstallOptions } from '../types.js';
2
+ export default function installExe(distPath: string, dest: string, options: ResolvedInstallOptions, callback: NoParamCallback): void;
@@ -1,2 +1,2 @@
1
- import type { InstallOptions, NoParamCallback } from '../types.js';
2
- export default function installExe(distPath: string, dest: string, options: InstallOptions, callback: NoParamCallback): void;
1
+ import type { NoParamCallback, ResolvedInstallOptions } from '../types.js';
2
+ export default function installExe(distPath: string, dest: string, options: ResolvedInstallOptions, callback: NoParamCallback): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installExe.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport { NODE_DIST_BASE_URL, NODE_FILE_PATHS } from '../constants.ts';\nimport conditionalCache from '../lib/conditionalCache.ts';\nimport copyFile from '../lib/copyFile.ts';\nimport type { InstallOptions, NoParamCallback } from '../types.ts';\nimport validateDownload from './validateDownload.ts';\n\nexport default function installExe(distPath: string, dest: string, options: InstallOptions, callback: NoParamCallback): void {\n const platform = options.platform;\n const downloadPath = `${NODE_DIST_BASE_URL}/${distPath}`;\n const cachePath = path.join(options.cachePath!, `node-${distPath}.exe`);\n const nodePath = (NODE_FILE_PATHS as Record<string, string>)[platform as string] || NODE_FILE_PATHS.posix;\n const execPath = path.join(dest, nodePath);\n\n fs.stat(execPath, (err) => {\n if (!err) return callback(); // already exists\n\n const queue = new Queue(1);\n queue.defer((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => validateDownload(distPath, cachePath, (err) => cb(err)));\n queue.defer((cb) => copyFile(cachePath, execPath, (err) => cb(err)));\n queue.await(callback);\n });\n}\n"],"names":["installExe","distPath","dest","options","callback","platform","downloadPath","NODE_DIST_BASE_URL","cachePath","path","join","nodePath","NODE_FILE_PATHS","posix","execPath","fs","stat","err","queue","Queue","defer","cb","conditionalCache","validateDownload","copyFile","await"],"mappings":";;;;+BAUA;;;eAAwBA;;;yDAVT;2DACE;8DACC;2BAEkC;yEACvB;iEACR;yEAEQ;;;;;;AAEd,SAASA,WAAWC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAAyB;IACnH,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,eAAe,AAAC,GAAwBL,OAAtBM,+BAAkB,EAAC,KAAY,OAATN;IAC9C,IAAMO,YAAYC,aAAI,CAACC,IAAI,CAACP,QAAQK,SAAS,EAAG,AAAC,QAAgB,OAATP,UAAS;IACjE,IAAMU,WAAW,AAACC,4BAAe,AAA2B,CAACP,SAAmB,IAAIO,4BAAe,CAACC,KAAK;IACzG,IAAMC,WAAWL,aAAI,CAACC,IAAI,CAACR,MAAMS;IAEjCI,WAAE,CAACC,IAAI,CAACF,UAAU,SAACG;QACjB,IAAI,CAACA,KAAK,OAAOb,YAAY,iBAAiB;QAE9C,IAAMc,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAAC,SAACC;mBAAOC,IAAAA,2BAAgB,EAAChB,cAAcE,WAAWL,SAAS,SAACc;uBAAQI,GAAGJ;;;QACnFC,MAAME,KAAK,CAAC,SAACC;mBAAOE,IAAAA,2BAAgB,EAACtB,UAAUO,WAAW,SAACS;uBAAQI,GAAGJ;;;QACtEC,MAAME,KAAK,CAAC,SAACC;mBAAOG,IAAAA,mBAAQ,EAAChB,WAAWM,UAAU,SAACG;uBAAQI,GAAGJ;;;QAC9DC,MAAMO,KAAK,CAACrB;IACd;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installExe.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport { NODE_DIST_BASE_URL, NODE_FILE_PATHS } from '../constants.ts';\nimport conditionalCache from '../lib/conditionalCache.ts';\nimport copyFile from '../lib/copyFile.ts';\nimport type { NoParamCallback, ResolvedInstallOptions } from '../types.ts';\nimport validateDownload from './validateDownload.ts';\n\nexport default function installExe(distPath: string, dest: string, options: ResolvedInstallOptions, callback: NoParamCallback): void {\n const platform = options.platform;\n const downloadPath = `${NODE_DIST_BASE_URL}/${distPath}`;\n const cachePath = path.join(options.cachePath, `node-${distPath}.exe`);\n const nodePath = (NODE_FILE_PATHS as Record<string, string>)[platform as string] || NODE_FILE_PATHS.posix;\n const execPath = path.join(dest, nodePath);\n\n fs.stat(execPath, (err) => {\n if (!err) return callback(); // already exists\n\n const queue = new Queue(1);\n queue.defer((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => validateDownload(distPath, cachePath, (err) => cb(err)));\n queue.defer((cb) => copyFile(cachePath, execPath, (err) => cb(err)));\n queue.await(callback);\n });\n}\n"],"names":["installExe","distPath","dest","options","callback","platform","downloadPath","NODE_DIST_BASE_URL","cachePath","path","join","nodePath","NODE_FILE_PATHS","posix","execPath","fs","stat","err","queue","Queue","defer","cb","conditionalCache","validateDownload","copyFile","await"],"mappings":";;;;+BAUA;;;eAAwBA;;;yDAVT;2DACE;8DACC;2BAEkC;yEACvB;iEACR;yEAEQ;;;;;;AAEd,SAASA,WAAWC,QAAgB,EAAEC,IAAY,EAAEC,OAA+B,EAAEC,QAAyB;IAC3H,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,eAAe,AAAC,GAAwBL,OAAtBM,+BAAkB,EAAC,KAAY,OAATN;IAC9C,IAAMO,YAAYC,aAAI,CAACC,IAAI,CAACP,QAAQK,SAAS,EAAE,AAAC,QAAgB,OAATP,UAAS;IAChE,IAAMU,WAAW,AAACC,4BAAe,AAA2B,CAACP,SAAmB,IAAIO,4BAAe,CAACC,KAAK;IACzG,IAAMC,WAAWL,aAAI,CAACC,IAAI,CAACR,MAAMS;IAEjCI,WAAE,CAACC,IAAI,CAACF,UAAU,SAACG;QACjB,IAAI,CAACA,KAAK,OAAOb,YAAY,iBAAiB;QAE9C,IAAMc,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAAC,SAACC;mBAAOC,IAAAA,2BAAgB,EAAChB,cAAcE,WAAWL,SAAS,SAACc;uBAAQI,GAAGJ;;;QACnFC,MAAME,KAAK,CAAC,SAACC;mBAAOE,IAAAA,2BAAgB,EAACtB,UAAUO,WAAW,SAACS;uBAAQI,GAAGJ;;;QACtEC,MAAME,KAAK,CAAC,SAACC;mBAAOG,IAAAA,mBAAQ,EAAChB,WAAWM,UAAU,SAACG;uBAAQI,GAAGJ;;;QAC9DC,MAAMO,KAAK,CAACrB;IACd;AACF"}
@@ -1,2 +1,2 @@
1
- import type { ChecksumCallback, InstallOptions } from '../types.js';
2
- export default function installFilename(filename: string, version: string, dest: string, options: InstallOptions, callback: ChecksumCallback): void;
1
+ import type { ChecksumCallback, ResolvedInstallOptions } from '../types.js';
2
+ export default function installFilename(filename: string, version: string, dest: string, options: ResolvedInstallOptions, callback: ChecksumCallback): void;
@@ -1,2 +1,2 @@
1
- import type { ChecksumCallback, InstallOptions } from '../types.js';
2
- export default function installFilename(filename: string, version: string, dest: string, options: InstallOptions, callback: ChecksumCallback): void;
1
+ import type { ChecksumCallback, ResolvedInstallOptions } from '../types.js';
2
+ export default function installFilename(filename: string, version: string, dest: string, options: ResolvedInstallOptions, callback: ChecksumCallback): void;
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return installFilename;
9
9
  }
10
10
  });
11
- var _nodefilenametodistpaths = /*#__PURE__*/ _interop_require_default(require("node-filename-to-dist-paths"));
11
+ var _module = /*#__PURE__*/ _interop_require_default(require("module"));
12
12
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
13
  var _constantsts = require("../constants.js");
14
14
  var _installCompressedts = /*#__PURE__*/ _interop_require_default(require("./installCompressed.js"));
@@ -19,8 +19,12 @@ function _interop_require_default(obj) {
19
19
  default: obj
20
20
  };
21
21
  }
22
+ var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
22
23
  function installFilename(filename, version, dest, options, callback) {
23
- var distPath = (0, _nodefilenametodistpaths.default)(filename, version);
24
+ // deferred: node-filename-to-dist-paths pulls fetch-json-cache, only needed to actually resolve an install
25
+ var fromFilenameModule = _require('node-filename-to-dist-paths');
26
+ var fromFilename = fromFilenameModule.default || fromFilenameModule;
27
+ var distPath = fromFilename(filename, version);
24
28
  if (!distPath) {
25
29
  callback(new Error('Not found'));
26
30
  return;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installFilename.ts"],"sourcesContent":["import fromFilename from 'node-filename-to-dist-paths';\nimport path from 'path';\nimport { EXTENSIONS_COMPRESSED } from '../constants.ts';\nimport type { ChecksumCallback, InstallOptions } from '../types.ts';\nimport installCompressed from './installCompressed.ts';\nimport installExe from './installExe.ts';\nimport installSource from './installSource/index.ts';\n\nexport default function installFilename(filename: string, version: string, dest: string, options: InstallOptions, callback: ChecksumCallback): void {\n const distPath = fromFilename(filename, version);\n if (!distPath) {\n callback(new Error('Not found'));\n return;\n }\n const ext = path.extname(distPath);\n\n if (filename === 'src') return installSource(distPath, dest, options, callback);\n if (ext === '.exe') return installExe(distPath, dest, options, callback);\n if (EXTENSIONS_COMPRESSED.indexOf(ext) >= 0) {\n return installCompressed(distPath, dest, options, callback);\n }\n callback(new Error(`Unable to install ${version} distPath: ${distPath}`));\n}\n"],"names":["installFilename","filename","version","dest","options","callback","distPath","fromFilename","Error","ext","path","extname","installSource","installExe","EXTENSIONS_COMPRESSED","indexOf","installCompressed"],"mappings":";;;;+BAQA;;;eAAwBA;;;8EARC;2DACR;2BACqB;0EAER;mEACP;8DACG;;;;;;AAEX,SAASA,gBAAgBC,QAAgB,EAAEC,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC1I,IAAMC,WAAWC,IAAAA,gCAAY,EAACN,UAAUC;IACxC,IAAI,CAACI,UAAU;QACbD,SAAS,IAAIG,MAAM;QACnB;IACF;IACA,IAAMC,MAAMC,aAAI,CAACC,OAAO,CAACL;IAEzB,IAAIL,aAAa,OAAO,OAAOW,IAAAA,gBAAa,EAACN,UAAUH,MAAMC,SAASC;IACtE,IAAII,QAAQ,QAAQ,OAAOI,IAAAA,qBAAU,EAACP,UAAUH,MAAMC,SAASC;IAC/D,IAAIS,kCAAqB,CAACC,OAAO,CAACN,QAAQ,GAAG;QAC3C,OAAOO,IAAAA,4BAAiB,EAACV,UAAUH,MAAMC,SAASC;IACpD;IACAA,SAAS,IAAIG,MAAM,AAAC,qBAAyCF,OAArBJ,SAAQ,eAAsB,OAATI;AAC/D"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installFilename.ts"],"sourcesContent":["import Module from 'module';\nimport path from 'path';\nimport { EXTENSIONS_COMPRESSED } from '../constants.ts';\nimport type { ChecksumCallback, ResolvedInstallOptions } from '../types.ts';\nimport installCompressed from './installCompressed.ts';\nimport installExe from './installExe.ts';\nimport installSource from './installSource/index.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nexport default function installFilename(filename: string, version: string, dest: string, options: ResolvedInstallOptions, callback: ChecksumCallback): void {\n // deferred: node-filename-to-dist-paths pulls fetch-json-cache, only needed to actually resolve an install\n const fromFilenameModule = _require('node-filename-to-dist-paths');\n const fromFilename = fromFilenameModule.default || fromFilenameModule;\n const distPath = fromFilename(filename, version);\n if (!distPath) {\n callback(new Error('Not found'));\n return;\n }\n const ext = path.extname(distPath);\n\n if (filename === 'src') return installSource(distPath, dest, options, callback);\n if (ext === '.exe') return installExe(distPath, dest, options, callback);\n if (EXTENSIONS_COMPRESSED.indexOf(ext) >= 0) {\n return installCompressed(distPath, dest, options, callback);\n }\n callback(new Error(`Unable to install ${version} distPath: ${distPath}`));\n}\n"],"names":["installFilename","_require","require","Module","createRequire","filename","version","dest","options","callback","fromFilenameModule","fromFilename","default","distPath","Error","ext","path","extname","installSource","installExe","EXTENSIONS_COMPRESSED","indexOf","installCompressed"],"mappings":";;;;+BAUA;;;eAAwBA;;;6DAVL;2DACF;2BACqB;0EAER;mEACP;8DACG;;;;;;AAE1B,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE3E,SAASF,gBAAgBK,QAAgB,EAAEC,OAAe,EAAEC,IAAY,EAAEC,OAA+B,EAAEC,QAA0B;IAClJ,2GAA2G;IAC3G,IAAMC,qBAAqBT,SAAS;IACpC,IAAMU,eAAeD,mBAAmBE,OAAO,IAAIF;IACnD,IAAMG,WAAWF,aAAaN,UAAUC;IACxC,IAAI,CAACO,UAAU;QACbJ,SAAS,IAAIK,MAAM;QACnB;IACF;IACA,IAAMC,MAAMC,aAAI,CAACC,OAAO,CAACJ;IAEzB,IAAIR,aAAa,OAAO,OAAOa,IAAAA,gBAAa,EAACL,UAAUN,MAAMC,SAASC;IACtE,IAAIM,QAAQ,QAAQ,OAAOI,IAAAA,qBAAU,EAACN,UAAUN,MAAMC,SAASC;IAC/D,IAAIW,kCAAqB,CAACC,OAAO,CAACN,QAAQ,GAAG;QAC3C,OAAOO,IAAAA,4BAAiB,EAACT,UAAUN,MAAMC,SAASC;IACpD;IACAA,SAAS,IAAIK,MAAM,AAAC,qBAAyCD,OAArBP,SAAQ,eAAsB,OAATO;AAC/D"}
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return installPosix;
9
9
  }
10
10
  });
11
- var _crossspawncb = /*#__PURE__*/ _interop_require_default(require("cross-spawn-cb"));
12
11
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ var _module = /*#__PURE__*/ _interop_require_default(require("module"));
13
13
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
14
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
15
15
  function _interop_require_default(obj) {
@@ -17,13 +17,17 @@ function _interop_require_default(obj) {
17
17
  default: obj
18
18
  };
19
19
  }
20
+ var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
20
21
  function installPosix(buildPath, dest, _options, callback) {
21
22
  var buildTarget = _path.default.join(dest, 'node');
22
23
  _fs.default.stat(buildTarget, function(err) {
23
24
  if (!err) return callback(); // already exists
25
+ // deferred: cross-spawn-cb is only needed when a build from source actually runs
26
+ var spawnModule = _require('cross-spawn-cb');
27
+ var spawn = spawnModule.default || spawnModule;
24
28
  var queue = new _queuecb.default(1);
25
29
  queue.defer(function(cb) {
26
- return (0, _crossspawncb.default)('./configure', [
30
+ return spawn('./configure', [
27
31
  "--prefix=".concat(dest)
28
32
  ], {
29
33
  stdio: 'inherit',
@@ -33,7 +37,7 @@ function installPosix(buildPath, dest, _options, callback) {
33
37
  });
34
38
  });
35
39
  queue.defer(function(cb) {
36
- return (0, _crossspawncb.default)('make', [
40
+ return spawn('make', [
37
41
  'install'
38
42
  ], {
39
43
  stdio: 'inherit',
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/buildPosix.ts"],"sourcesContent":["import spawn from 'cross-spawn-cb';\nimport fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport type { InstallOptions, NoParamCallback } from '../../types.ts';\n\nexport default function installPosix(buildPath: string, dest: string, _options: InstallOptions, callback: NoParamCallback): void {\n const buildTarget = path.join(dest, 'node');\n\n fs.stat(buildTarget, (err) => {\n if (!err) return callback(); // already exists\n\n const queue = new Queue(1);\n queue.defer((cb) => spawn('./configure', [`--prefix=${dest}`], { stdio: 'inherit', cwd: buildPath }, (err) => cb(err)));\n queue.defer((cb) => spawn('make', ['install'], { stdio: 'inherit', cwd: buildPath }, (err) => cb(err)));\n queue.await(callback);\n });\n}\n"],"names":["installPosix","buildPath","dest","_options","callback","buildTarget","path","join","fs","stat","err","queue","Queue","defer","cb","spawn","stdio","cwd","await"],"mappings":";;;;+BAOA;;;eAAwBA;;;mEAPN;yDACH;2DACE;8DACC;;;;;;AAIH,SAASA,aAAaC,SAAiB,EAAEC,IAAY,EAAEC,QAAwB,EAAEC,QAAyB;IACvH,IAAMC,cAAcC,aAAI,CAACC,IAAI,CAACL,MAAM;IAEpCM,WAAE,CAACC,IAAI,CAACJ,aAAa,SAACK;QACpB,IAAI,CAACA,KAAK,OAAON,YAAY,iBAAiB;QAE9C,IAAMO,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAAC,SAACC;mBAAOC,IAAAA,qBAAK,EAAC,eAAe;gBAAE,YAAgB,OAALb;aAAO,EAAE;gBAAEc,OAAO;gBAAWC,KAAKhB;YAAU,GAAG,SAACS;uBAAQI,GAAGJ;;;QACjHC,MAAME,KAAK,CAAC,SAACC;mBAAOC,IAAAA,qBAAK,EAAC,QAAQ;gBAAC;aAAU,EAAE;gBAAEC,OAAO;gBAAWC,KAAKhB;YAAU,GAAG,SAACS;uBAAQI,GAAGJ;;;QACjGC,MAAMO,KAAK,CAACd;IACd;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/buildPosix.ts"],"sourcesContent":["import fs from 'fs';\nimport Module from 'module';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport type { InstallOptions, NoParamCallback } from '../../types.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nexport default function installPosix(buildPath: string, dest: string, _options: InstallOptions, callback: NoParamCallback): void {\n const buildTarget = path.join(dest, 'node');\n\n fs.stat(buildTarget, (err) => {\n if (!err) return callback(); // already exists\n\n // deferred: cross-spawn-cb is only needed when a build from source actually runs\n const spawnModule = _require('cross-spawn-cb');\n const spawn = spawnModule.default || spawnModule;\n const queue = new Queue(1);\n queue.defer((cb) => spawn('./configure', [`--prefix=${dest}`], { stdio: 'inherit', cwd: buildPath }, (err: Error | null) => cb(err)));\n queue.defer((cb) => spawn('make', ['install'], { stdio: 'inherit', cwd: buildPath }, (err: Error | null) => cb(err)));\n queue.await(callback);\n });\n}\n"],"names":["installPosix","_require","require","Module","createRequire","buildPath","dest","_options","callback","buildTarget","path","join","fs","stat","err","spawnModule","spawn","default","queue","Queue","defer","cb","stdio","cwd","await"],"mappings":";;;;+BASA;;;eAAwBA;;;yDATT;6DACI;2DACF;8DACC;;;;;;AAIlB,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE3E,SAASF,aAAaK,SAAiB,EAAEC,IAAY,EAAEC,QAAwB,EAAEC,QAAyB;IACvH,IAAMC,cAAcC,aAAI,CAACC,IAAI,CAACL,MAAM;IAEpCM,WAAE,CAACC,IAAI,CAACJ,aAAa,SAACK;QACpB,IAAI,CAACA,KAAK,OAAON,YAAY,iBAAiB;QAE9C,iFAAiF;QACjF,IAAMO,cAAcd,SAAS;QAC7B,IAAMe,QAAQD,YAAYE,OAAO,IAAIF;QACrC,IAAMG,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAAC,SAACC;mBAAOL,MAAM,eAAe;gBAAE,YAAgB,OAALV;aAAO,EAAE;gBAAEgB,OAAO;gBAAWC,KAAKlB;YAAU,GAAG,SAACS;uBAAsBO,GAAGP;;;QAC/HI,MAAME,KAAK,CAAC,SAACC;mBAAOL,MAAM,QAAQ;gBAAC;aAAU,EAAE;gBAAEM,OAAO;gBAAWC,KAAKlB;YAAU,GAAG,SAACS;uBAAsBO,GAAGP;;;QAC/GI,MAAMM,KAAK,CAAChB;IACd;AACF"}
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return installWin32;
9
9
  }
10
10
  });
11
- var _crossspawncb = /*#__PURE__*/ _interop_require_default(require("cross-spawn-cb"));
12
11
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ var _module = /*#__PURE__*/ _interop_require_default(require("module"));
13
13
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
14
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
15
15
  var _conditionalCopyts = /*#__PURE__*/ _interop_require_default(require("../../lib/conditionalCopy.js"));
@@ -18,6 +18,7 @@ function _interop_require_default(obj) {
18
18
  default: obj
19
19
  };
20
20
  }
21
+ var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
21
22
  function installWin32(buildPath, dest, _options, callback) {
22
23
  var buildSource = _path.default.join(buildPath, 'out', 'Release', 'node.exe');
23
24
  var buildTarget = _path.default.join(dest, 'node.exe');
@@ -30,7 +31,10 @@ function installWin32(buildPath, dest, _options, callback) {
30
31
  callback();
31
32
  return;
32
33
  }
33
- (0, _crossspawncb.default)('./vcbuild', [], {
34
+ // deferred: cross-spawn-cb is only needed when a build from source actually runs
35
+ var spawnModule = _require('cross-spawn-cb');
36
+ var spawn = spawnModule.default || spawnModule;
37
+ spawn('./vcbuild', [], {
34
38
  stdio: 'inherit',
35
39
  cwd: buildPath
36
40
  }, function(spawnErr) {
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/buildWin32.ts"],"sourcesContent":["import spawn from 'cross-spawn-cb';\nimport fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport conditionalCopy from '../../lib/conditionalCopy.ts';\n\nimport type { InstallOptions, NoParamCallback } from '../../types.ts';\n\nexport default function installWin32(buildPath: string, dest: string, _options: InstallOptions, callback: NoParamCallback): void {\n const buildSource = path.join(buildPath, 'out', 'Release', 'node.exe');\n const buildTarget = path.join(dest, 'node.exe');\n\n fs.stat(buildTarget, (err) => {\n if (!err) return callback(); // already exists\n\n const queue = new Queue(1);\n queue.defer((cb) => {\n fs.stat(buildSource, (err: NodeJS.ErrnoException | null) => {\n if (!err) {\n callback();\n return;\n }\n spawn('./vcbuild', [], { stdio: 'inherit', cwd: buildPath }, (spawnErr) => cb(spawnErr));\n });\n });\n queue.defer((cb) => conditionalCopy(buildSource, buildTarget, false, (err) => cb(err)));\n queue.await(callback);\n });\n}\n"],"names":["installWin32","buildPath","dest","_options","callback","buildSource","path","join","buildTarget","fs","stat","err","queue","Queue","defer","cb","spawn","stdio","cwd","spawnErr","conditionalCopy","await"],"mappings":";;;;+BAQA;;;eAAwBA;;;mEARN;yDACH;2DACE;8DACC;wEACU;;;;;;AAIb,SAASA,aAAaC,SAAiB,EAAEC,IAAY,EAAEC,QAAwB,EAAEC,QAAyB;IACvH,IAAMC,cAAcC,aAAI,CAACC,IAAI,CAACN,WAAW,OAAO,WAAW;IAC3D,IAAMO,cAAcF,aAAI,CAACC,IAAI,CAACL,MAAM;IAEpCO,WAAE,CAACC,IAAI,CAACF,aAAa,SAACG;QACpB,IAAI,CAACA,KAAK,OAAOP,YAAY,iBAAiB;QAE9C,IAAMQ,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAAC,SAACC;YACXN,WAAE,CAACC,IAAI,CAACL,aAAa,SAACM;gBACpB,IAAI,CAACA,KAAK;oBACRP;oBACA;gBACF;gBACAY,IAAAA,qBAAK,EAAC,aAAa,EAAE,EAAE;oBAAEC,OAAO;oBAAWC,KAAKjB;gBAAU,GAAG,SAACkB;2BAAaJ,GAAGI;;YAChF;QACF;QACAP,MAAME,KAAK,CAAC,SAACC;mBAAOK,IAAAA,0BAAe,EAACf,aAAaG,aAAa,OAAO,SAACG;uBAAQI,GAAGJ;;;QACjFC,MAAMS,KAAK,CAACjB;IACd;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/buildWin32.ts"],"sourcesContent":["import fs from 'fs';\nimport Module from 'module';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport conditionalCopy from '../../lib/conditionalCopy.ts';\n\nimport type { InstallOptions, NoParamCallback } from '../../types.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nexport default function installWin32(buildPath: string, dest: string, _options: InstallOptions, callback: NoParamCallback): void {\n const buildSource = path.join(buildPath, 'out', 'Release', 'node.exe');\n const buildTarget = path.join(dest, 'node.exe');\n\n fs.stat(buildTarget, (err) => {\n if (!err) return callback(); // already exists\n\n const queue = new Queue(1);\n queue.defer((cb) => {\n fs.stat(buildSource, (err: NodeJS.ErrnoException | null) => {\n if (!err) {\n callback();\n return;\n }\n // deferred: cross-spawn-cb is only needed when a build from source actually runs\n const spawnModule = _require('cross-spawn-cb');\n const spawn = spawnModule.default || spawnModule;\n spawn('./vcbuild', [], { stdio: 'inherit', cwd: buildPath }, (spawnErr: Error | null) => cb(spawnErr));\n });\n });\n queue.defer((cb) => conditionalCopy(buildSource, buildTarget, false, (err) => cb(err)));\n queue.await(callback);\n });\n}\n"],"names":["installWin32","_require","require","Module","createRequire","buildPath","dest","_options","callback","buildSource","path","join","buildTarget","fs","stat","err","queue","Queue","defer","cb","spawnModule","spawn","default","stdio","cwd","spawnErr","conditionalCopy","await"],"mappings":";;;;+BAUA;;;eAAwBA;;;yDAVT;6DACI;2DACF;8DACC;wEACU;;;;;;AAI5B,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE3E,SAASF,aAAaK,SAAiB,EAAEC,IAAY,EAAEC,QAAwB,EAAEC,QAAyB;IACvH,IAAMC,cAAcC,aAAI,CAACC,IAAI,CAACN,WAAW,OAAO,WAAW;IAC3D,IAAMO,cAAcF,aAAI,CAACC,IAAI,CAACL,MAAM;IAEpCO,WAAE,CAACC,IAAI,CAACF,aAAa,SAACG;QACpB,IAAI,CAACA,KAAK,OAAOP,YAAY,iBAAiB;QAE9C,IAAMQ,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAAC,SAACC;YACXN,WAAE,CAACC,IAAI,CAACL,aAAa,SAACM;gBACpB,IAAI,CAACA,KAAK;oBACRP;oBACA;gBACF;gBACA,iFAAiF;gBACjF,IAAMY,cAAcnB,SAAS;gBAC7B,IAAMoB,QAAQD,YAAYE,OAAO,IAAIF;gBACrCC,MAAM,aAAa,EAAE,EAAE;oBAAEE,OAAO;oBAAWC,KAAKnB;gBAAU,GAAG,SAACoB;2BAA2BN,GAAGM;;YAC9F;QACF;QACAT,MAAME,KAAK,CAAC,SAACC;mBAAOO,IAAAA,0BAAe,EAACjB,aAAaG,aAAa,OAAO,SAACG;uBAAQI,GAAGJ;;;QACjFC,MAAMW,KAAK,CAACnB;IACd;AACF"}
@@ -1,2 +1,2 @@
1
- import type { InstallOptions, NoParamCallback } from '../../types.js';
2
- export default function InstallSource(distPath: string, dest: string, options: InstallOptions, callback: NoParamCallback): void;
1
+ import type { NoParamCallback, ResolvedInstallOptions } from '../../types.js';
2
+ export default function InstallSource(distPath: string, dest: string, options: ResolvedInstallOptions, callback: NoParamCallback): void;
@@ -1,2 +1,2 @@
1
- import type { InstallOptions, NoParamCallback } from '../../types.js';
2
- export default function InstallSource(distPath: string, dest: string, options: InstallOptions, callback: NoParamCallback): void;
1
+ import type { NoParamCallback, ResolvedInstallOptions } from '../../types.js';
2
+ export default function InstallSource(distPath: string, dest: string, options: ResolvedInstallOptions, callback: NoParamCallback): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/index.ts"],"sourcesContent":["import { safeRm } from 'fs-remove-compat';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\n\nimport { NODE_DIST_BASE_URL } from '../../constants.ts';\nimport conditionalCache from '../../lib/conditionalCache.ts';\nimport extract from '../../lib/extract.ts';\nimport type { InstallOptions, NoParamCallback } from '../../types.ts';\nimport validateDownload from '../validateDownload.ts';\nimport buildPosix from './buildPosix.ts';\nimport buildWin32 from './buildWin32.ts';\n\nexport default function InstallSource(distPath: string, dest: string, options: InstallOptions, callback: NoParamCallback): void {\n const platform = options.platform;\n const build = platform === 'win32' ? buildWin32 : buildPosix;\n const downloadPath = `${NODE_DIST_BASE_URL}/${distPath}`;\n // Use temp build path to avoid race conditions with parallel builds\n const tempBuildPath = tempSuffix(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((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => validateDownload(distPath, cachePath, (err) => cb(err)));\n queue.defer((cb) => extract(cachePath, tempBuildPath, (err) => cb(err)));\n queue.defer((cb) => build(tempBuildPath, dest, options, (err) => cb(err)));\n queue.await((err) => {\n // Always clean up temp build directory\n safeRm(tempBuildPath, () => callback(err));\n });\n}\n"],"names":["InstallSource","distPath","dest","options","callback","platform","build","buildWin32","buildPosix","downloadPath","NODE_DIST_BASE_URL","tempBuildPath","tempSuffix","path","join","buildPath","basename","cachePath","queue","Queue","defer","cb","conditionalCache","err","validateDownload","extract","await","safeRm"],"mappings":";;;;+BAaA;;;eAAwBA;;;8BAbD;2DACN;8DACC;iEACK;2BAEY;yEACN;gEACT;yEAES;mEACN;mEACA;;;;;;AAER,SAASA,cAAcC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAAyB;IACtH,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,QAAQD,aAAa,UAAUE,qBAAU,GAAGC,qBAAU;IAC5D,IAAMC,eAAe,AAAC,GAAwBR,OAAtBS,+BAAkB,EAAC,KAAY,OAATT;IAC9C,oEAAoE;IACpE,IAAMU,gBAAgBC,IAAAA,mBAAU,EAACC,aAAI,CAACC,IAAI,CAACX,QAAQY,SAAS,EAAGF,aAAI,CAACG,QAAQ,CAACf;IAC7E,IAAMgB,YAAYJ,aAAI,CAACC,IAAI,CAACX,QAAQc,SAAS,EAAGJ,aAAI,CAACG,QAAQ,CAACP;IAE9D,IAAMS,QAAQ,IAAIC,gBAAK,CAAC;IACxBD,MAAME,KAAK,CAAC,SAACC;eAAOC,IAAAA,2BAAgB,EAACb,cAAcQ,WAAWd,SAAS,SAACoB;mBAAQF,GAAGE;;;IACnFL,MAAME,KAAK,CAAC,SAACC;eAAOG,IAAAA,2BAAgB,EAACvB,UAAUgB,WAAW,SAACM;mBAAQF,GAAGE;;;IACtEL,MAAME,KAAK,CAAC,SAACC;eAAOI,IAAAA,kBAAO,EAACR,WAAWN,eAAe,SAACY;mBAAQF,GAAGE;;;IAClEL,MAAME,KAAK,CAAC,SAACC;eAAOf,MAAMK,eAAeT,MAAMC,SAAS,SAACoB;mBAAQF,GAAGE;;;IACpEL,MAAMQ,KAAK,CAAC,SAACH;QACX,uCAAuC;QACvCI,IAAAA,sBAAM,EAAChB,eAAe;mBAAMP,SAASmB;;IACvC;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/installNode/installSource/index.ts"],"sourcesContent":["import { safeRm } from 'fs-remove-compat';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\n\nimport { NODE_DIST_BASE_URL } from '../../constants.ts';\nimport conditionalCache from '../../lib/conditionalCache.ts';\nimport extract from '../../lib/extract.ts';\nimport type { NoParamCallback, ResolvedInstallOptions } from '../../types.ts';\nimport validateDownload from '../validateDownload.ts';\nimport buildPosix from './buildPosix.ts';\nimport buildWin32 from './buildWin32.ts';\n\nexport default function InstallSource(distPath: string, dest: string, options: ResolvedInstallOptions, callback: NoParamCallback): void {\n const platform = options.platform;\n const build = platform === 'win32' ? buildWin32 : buildPosix;\n const downloadPath = `${NODE_DIST_BASE_URL}/${distPath}`;\n // Use temp build path to avoid race conditions with parallel builds\n const tempBuildPath = tempSuffix(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((cb) => conditionalCache(downloadPath, cachePath, options, (err) => cb(err)));\n queue.defer((cb) => validateDownload(distPath, cachePath, (err) => cb(err)));\n queue.defer((cb) => extract(cachePath, tempBuildPath, (err) => cb(err)));\n queue.defer((cb) => build(tempBuildPath, dest, options, (err) => cb(err)));\n queue.await((err) => {\n // Always clean up temp build directory\n safeRm(tempBuildPath, () => callback(err));\n });\n}\n"],"names":["InstallSource","distPath","dest","options","callback","platform","build","buildWin32","buildPosix","downloadPath","NODE_DIST_BASE_URL","tempBuildPath","tempSuffix","path","join","buildPath","basename","cachePath","queue","Queue","defer","cb","conditionalCache","err","validateDownload","extract","await","safeRm"],"mappings":";;;;+BAaA;;;eAAwBA;;;8BAbD;2DACN;8DACC;iEACK;2BAEY;yEACN;gEACT;yEAES;mEACN;mEACA;;;;;;AAER,SAASA,cAAcC,QAAgB,EAAEC,IAAY,EAAEC,OAA+B,EAAEC,QAAyB;IAC9H,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,QAAQD,aAAa,UAAUE,qBAAU,GAAGC,qBAAU;IAC5D,IAAMC,eAAe,AAAC,GAAwBR,OAAtBS,+BAAkB,EAAC,KAAY,OAATT;IAC9C,oEAAoE;IACpE,IAAMU,gBAAgBC,IAAAA,mBAAU,EAACC,aAAI,CAACC,IAAI,CAACX,QAAQY,SAAS,EAAEF,aAAI,CAACG,QAAQ,CAACf;IAC5E,IAAMgB,YAAYJ,aAAI,CAACC,IAAI,CAACX,QAAQc,SAAS,EAAEJ,aAAI,CAACG,QAAQ,CAACP;IAE7D,IAAMS,QAAQ,IAAIC,gBAAK,CAAC;IACxBD,MAAME,KAAK,CAAC,SAACC;eAAOC,IAAAA,2BAAgB,EAACb,cAAcQ,WAAWd,SAAS,SAACoB;mBAAQF,GAAGE;;;IACnFL,MAAME,KAAK,CAAC,SAACC;eAAOG,IAAAA,2BAAgB,EAACvB,UAAUgB,WAAW,SAACM;mBAAQF,GAAGE;;;IACtEL,MAAME,KAAK,CAAC,SAACC;eAAOI,IAAAA,kBAAO,EAACR,WAAWN,eAAe,SAACY;mBAAQF,GAAGE;;;IAClEL,MAAME,KAAK,CAAC,SAACC;eAAOf,MAAMK,eAAeT,MAAMC,SAAS,SAACoB;mBAAQF,GAAGE;;;IACpEL,MAAMQ,KAAK,CAAC,SAACH;QACX,uCAAuC;QACvCI,IAAAA,sBAAM,EAAChB,eAAe;mBAAMP,SAASmB;;IACvC;AACF"}
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _crypto = /*#__PURE__*/ _interop_require_default(require("crypto"));
12
12
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
13
- var _getfilecompat = require("get-file-compat");
13
+ var _module = /*#__PURE__*/ _interop_require_default(require("module"));
14
14
  var _onone = /*#__PURE__*/ _interop_require_default(require("on-one"));
15
15
  var _constantsts = require("../constants.js");
16
16
  function _interop_require_default(obj) {
@@ -18,10 +18,13 @@ function _interop_require_default(obj) {
18
18
  default: obj
19
19
  };
20
20
  }
21
+ var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
21
22
  function validateDownload(distPath, installPath, callback) {
22
23
  var version = distPath.split('/')[0];
23
24
  var downloadPath = "".concat(_constantsts.NODE_DIST_BASE_URL, "/").concat(version, "/SHASUMS256.txt");
24
- (0, _getfilecompat.getContent)(downloadPath, 'utf8', function(err, res) {
25
+ // deferred: get-file-compat is only needed to actually download and validate a release
26
+ var getContent = _require('get-file-compat').getContent;
27
+ getContent(downloadPath, 'utf8', function(err, res) {
25
28
  var _ref, _text_split__split_pop;
26
29
  if (err) return callback(err);
27
30
  var text = (_ref = res === null || res === void 0 ? void 0 : res.content) !== null && _ref !== void 0 ? _ref : '';
@@ -1 +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 { getContent } from 'get-file-compat';\nimport oo from 'on-one';\nimport { NODE_DIST_BASE_URL } from '../constants.ts';\n\nimport type { ChecksumCallback, ChecksumResult } from '../types.ts';\n\nexport default function validateDownload(distPath: string, installPath: string, callback: ChecksumCallback): void {\n const version = distPath.split('/')[0];\n const downloadPath = `${NODE_DIST_BASE_URL}/${version}/SHASUMS256.txt`;\n getContent(downloadPath, 'utf8', (err, res) => {\n if (err) return callback(err);\n const text = res?.content ?? '';\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 stream = fs.createReadStream(installPath);\n stream.on('data', (data) => hash.update(data));\n oo(stream, ['error', 'end', 'close', 'finish'], (err: Error | null) => {\n if (err) return callback(err);\n const actual = hash.digest('hex');\n const match = actual === expected;\n const checksum: ChecksumResult = { actual, expected, match };\n match ? callback(undefined, checksum) : callback(new Error(`${filename} checksum failed`), checksum);\n });\n });\n}\n"],"names":["validateDownload","distPath","installPath","callback","version","split","downloadPath","NODE_DIST_BASE_URL","getContent","err","res","text","content","filename","slice","join","expected","pop","trim","hash","crypto","createHash","stream","fs","createReadStream","on","data","update","oo","actual","digest","match","checksum","undefined","Error"],"mappings":";;;;+BAQA;;;eAAwBA;;;6DARL;yDACJ;6BACY;4DACZ;2BACoB;;;;;;AAIpB,SAASA,iBAAiBC,QAAgB,EAAEC,WAAmB,EAAEC,QAA0B;IACxG,IAAMC,UAAUH,SAASI,KAAK,CAAC,IAAI,CAAC,EAAE;IACtC,IAAMC,eAAe,AAAC,GAAwBF,OAAtBG,+BAAkB,EAAC,KAAW,OAARH,SAAQ;IACtDI,IAAAA,yBAAU,EAACF,cAAc,QAAQ,SAACG,KAAKC;kBAInBC;QAHlB,IAAIF,KAAK,OAAON,SAASM;QACzB,IAAME,eAAOD,gBAAAA,0BAAAA,IAAKE,OAAO,uCAAI;QAC7B,IAAMC,WAAWZ,SAASI,KAAK,CAAC,KAAKS,KAAK,CAAC,GAAGC,IAAI,CAAC;QACnD,IAAMC,WAAW,EAACL,yBAAAA,KAAKN,KAAK,CAACQ,SAAS,CAAC,EAAE,CAACR,KAAK,CAAC,MAAMY,GAAG,gBAAvCN,oCAAAA,yBAA6C,IAAIO,IAAI;QACvE,IAAMC,OAAOC,eAAM,CAACC,UAAU,CAAC;QAC/B,IAAMC,SAASC,WAAE,CAACC,gBAAgB,CAACtB;QACnCoB,OAAOG,EAAE,CAAC,QAAQ,SAACC;mBAASP,KAAKQ,MAAM,CAACD;;QACxCE,IAAAA,cAAE,EAACN,QAAQ;YAAC;YAAS;YAAO;YAAS;SAAS,EAAE,SAACb;YAC/C,IAAIA,KAAK,OAAON,SAASM;YACzB,IAAMoB,SAASV,KAAKW,MAAM,CAAC;YAC3B,IAAMC,QAAQF,WAAWb;YACzB,IAAMgB,WAA2B;gBAAEH,QAAAA;gBAAQb,UAAAA;gBAAUe,OAAAA;YAAM;YAC3DA,QAAQ5B,SAAS8B,WAAWD,YAAY7B,SAAS,IAAI+B,MAAM,AAAC,GAAW,OAATrB,UAAS,sBAAoBmB;QAC7F;IACF;AACF"}
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 Module from 'module';\nimport oo from 'on-one';\nimport { NODE_DIST_BASE_URL } from '../constants.ts';\n\nimport type { ChecksumCallback, ChecksumResult } from '../types.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nexport default function validateDownload(distPath: string, installPath: string, callback: ChecksumCallback): void {\n const version = distPath.split('/')[0];\n const downloadPath = `${NODE_DIST_BASE_URL}/${version}/SHASUMS256.txt`;\n // deferred: get-file-compat is only needed to actually download and validate a release\n const { getContent } = _require('get-file-compat');\n getContent(downloadPath, 'utf8', (err: Error | null, res: { content?: string }) => {\n if (err) return callback(err);\n const text = res?.content ?? '';\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 stream = fs.createReadStream(installPath);\n stream.on('data', (data) => hash.update(data));\n oo(stream, ['error', 'end', 'close', 'finish'], (err: Error | null) => {\n if (err) return callback(err);\n const actual = hash.digest('hex');\n const match = actual === expected;\n const checksum: ChecksumResult = { actual, expected, match };\n match ? callback(undefined, checksum) : callback(new Error(`${filename} checksum failed`), checksum);\n });\n });\n}\n"],"names":["validateDownload","_require","require","Module","createRequire","distPath","installPath","callback","version","split","downloadPath","NODE_DIST_BASE_URL","getContent","err","res","text","content","filename","slice","join","expected","pop","trim","hash","crypto","createHash","stream","fs","createReadStream","on","data","update","oo","actual","digest","match","checksum","undefined","Error"],"mappings":";;;;+BAUA;;;eAAwBA;;;6DAVL;yDACJ;6DACI;4DACJ;2BACoB;;;;;;AAInC,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE3E,SAASF,iBAAiBK,QAAgB,EAAEC,WAAmB,EAAEC,QAA0B;IACxG,IAAMC,UAAUH,SAASI,KAAK,CAAC,IAAI,CAAC,EAAE;IACtC,IAAMC,eAAe,AAAC,GAAwBF,OAAtBG,+BAAkB,EAAC,KAAW,OAARH,SAAQ;IACtD,uFAAuF;IACvF,IAAM,AAAEI,aAAeX,SAAS,mBAAxBW;IACRA,WAAWF,cAAc,QAAQ,SAACG,KAAmBC;kBAIjCC;QAHlB,IAAIF,KAAK,OAAON,SAASM;QACzB,IAAME,eAAOD,gBAAAA,0BAAAA,IAAKE,OAAO,uCAAI;QAC7B,IAAMC,WAAWZ,SAASI,KAAK,CAAC,KAAKS,KAAK,CAAC,GAAGC,IAAI,CAAC;QACnD,IAAMC,WAAW,EAACL,yBAAAA,KAAKN,KAAK,CAACQ,SAAS,CAAC,EAAE,CAACR,KAAK,CAAC,MAAMY,GAAG,gBAAvCN,oCAAAA,yBAA6C,IAAIO,IAAI;QACvE,IAAMC,OAAOC,eAAM,CAACC,UAAU,CAAC;QAC/B,IAAMC,SAASC,WAAE,CAACC,gBAAgB,CAACtB;QACnCoB,OAAOG,EAAE,CAAC,QAAQ,SAACC;mBAASP,KAAKQ,MAAM,CAACD;;QACxCE,IAAAA,cAAE,EAACN,QAAQ;YAAC;YAAS;YAAO;YAAS;SAAS,EAAE,SAACb;YAC/C,IAAIA,KAAK,OAAON,SAASM;YACzB,IAAMoB,SAASV,KAAKW,MAAM,CAAC;YAC3B,IAAMC,QAAQF,WAAWb;YACzB,IAAMgB,WAA2B;gBAAEH,QAAAA;gBAAQb,UAAAA;gBAAUe,OAAAA;YAAM;YAC3DA,QAAQ5B,SAAS8B,WAAWD,YAAY7B,SAAS,IAAI+B,MAAM,AAAC,GAAW,OAATrB,UAAS,sBAAoBmB;QAC7F;IACF;AACF"}
@@ -9,20 +9,24 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
- var _getfilecompat = require("get-file-compat");
12
+ var _module = /*#__PURE__*/ _interop_require_default(require("module"));
13
13
  var _ensureDestinationParentts = /*#__PURE__*/ _interop_require_default(require("./ensureDestinationParent.js"));
14
14
  function _interop_require_default(obj) {
15
15
  return obj && obj.__esModule ? obj : {
16
16
  default: obj
17
17
  };
18
18
  }
19
+ var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
19
20
  function conditionalCache(endpoint, dest, options, callback) {
20
21
  callback = typeof options === 'function' ? options : callback;
21
22
  options = typeof options === 'function' ? {} : options || {};
22
23
  _fs.default.stat(dest, function(err) {
23
24
  if (!err) return callback === null || callback === void 0 ? void 0 : callback(); // already exists
24
25
  (0, _ensureDestinationParentts.default)(dest, function(err) {
25
- err ? callback === null || callback === void 0 ? void 0 : callback(err) : (0, _getfilecompat.getFile)(endpoint, dest, function(err) {
26
+ if (err) return callback === null || callback === void 0 ? void 0 : callback(err);
27
+ // deferred: get-file-compat is only needed when the file is actually missing from cache
28
+ var getFile = _require('get-file-compat').getFile;
29
+ getFile(endpoint, dest, function(err) {
26
30
  return callback === null || callback === void 0 ? void 0 : callback(err);
27
31
  });
28
32
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/conditionalCache.ts"],"sourcesContent":["import fs from 'fs';\nimport { getFile } from 'get-file-compat';\nimport type { InstallOptions, NoParamCallback } from '../types.ts';\nimport ensureDestinationParent from './ensureDestinationParent.ts';\n\nexport default function conditionalCache(endpoint: string, dest: string, options: InstallOptions, callback?: NoParamCallback): void {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as InstallOptions);\n\n fs.stat(dest, (err) => {\n if (!err) return callback?.(); // already exists\n ensureDestinationParent(dest, (err) => {\n err ? callback?.(err) : getFile(endpoint, dest, (err: Error | null) => callback?.(err));\n });\n });\n}\n"],"names":["conditionalCache","endpoint","dest","options","callback","fs","stat","err","ensureDestinationParent","getFile"],"mappings":";;;;+BAKA;;;eAAwBA;;;yDALT;6BACS;gFAEY;;;;;;AAErB,SAASA,iBAAiBC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC1HA,WAAW,OAAOD,YAAY,aAAaA,UAAUC;IACrDD,UAAU,OAAOA,YAAY,aAAa,CAAC,IAAMA,WAAW,CAAC;IAE7DE,WAAE,CAACC,IAAI,CAACJ,MAAM,SAACK;QACb,IAAI,CAACA,KAAK,OAAOH,qBAAAA,+BAAAA,YAAc,iBAAiB;QAChDI,IAAAA,kCAAuB,EAACN,MAAM,SAACK;YAC7BA,MAAMH,qBAAAA,+BAAAA,SAAWG,OAAOE,IAAAA,sBAAO,EAACR,UAAUC,MAAM,SAACK;uBAAsBH,qBAAAA,+BAAAA,SAAWG;;QACpF;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/conditionalCache.ts"],"sourcesContent":["import fs from 'fs';\nimport Module from 'module';\nimport type { InstallOptions, NoParamCallback } from '../types.ts';\nimport ensureDestinationParent from './ensureDestinationParent.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nexport default function conditionalCache(endpoint: string, dest: string, options: InstallOptions, callback?: NoParamCallback): void {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as InstallOptions);\n\n fs.stat(dest, (err) => {\n if (!err) return callback?.(); // already exists\n ensureDestinationParent(dest, (err) => {\n if (err) return callback?.(err);\n // deferred: get-file-compat is only needed when the file is actually missing from cache\n const { getFile } = _require('get-file-compat');\n getFile(endpoint, dest, (err: Error | null) => callback?.(err));\n });\n });\n}\n"],"names":["conditionalCache","_require","require","Module","createRequire","endpoint","dest","options","callback","fs","stat","err","ensureDestinationParent","getFile"],"mappings":";;;;+BAOA;;;eAAwBA;;;yDAPT;6DACI;gFAEiB;;;;;;AAEpC,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE3E,SAASF,iBAAiBK,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC1HA,WAAW,OAAOD,YAAY,aAAaA,UAAUC;IACrDD,UAAU,OAAOA,YAAY,aAAa,CAAC,IAAMA,WAAW,CAAC;IAE7DE,WAAE,CAACC,IAAI,CAACJ,MAAM,SAACK;QACb,IAAI,CAACA,KAAK,OAAOH,qBAAAA,+BAAAA,YAAc,iBAAiB;QAChDI,IAAAA,kCAAuB,EAACN,MAAM,SAACK;YAC7B,IAAIA,KAAK,OAAOH,qBAAAA,+BAAAA,SAAWG;YAC3B,wFAAwF;YACxF,IAAM,AAAEE,UAAYZ,SAAS,mBAArBY;YACRA,QAAQR,UAAUC,MAAM,SAACK;uBAAsBH,qBAAAA,+BAAAA,SAAWG;;QAC5D;IACF;AACF"}
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return safeCopyFile;
9
9
  }
10
10
  });
11
- var _fscopycompat = require("fs-copy-compat");
12
11
  var _fsremovecompat = require("fs-remove-compat");
12
+ var _module = /*#__PURE__*/ _interop_require_default(require("module"));
13
13
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
14
14
  var _ensureDestinationParentts = /*#__PURE__*/ _interop_require_default(require("./ensureDestinationParent.js"));
15
15
  function _interop_require_default(obj) {
@@ -17,6 +17,7 @@ function _interop_require_default(obj) {
17
17
  default: obj
18
18
  };
19
19
  }
20
+ var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
20
21
  function safeCopyFile(src, dest, callback) {
21
22
  var queue = new _queuecb.default(1);
22
23
  queue.defer(_ensureDestinationParentts.default.bind(null, dest));
@@ -26,7 +27,9 @@ function safeCopyFile(src, dest, callback) {
26
27
  });
27
28
  });
28
29
  queue.defer(function(cb) {
29
- return (0, _fscopycompat.copyFile)(src, dest, function(err) {
30
+ // deferred: fs-copy-compat is only needed when a file is actually copied
31
+ var copyFile = _require('fs-copy-compat').copyFile;
32
+ copyFile(src, dest, function(err) {
30
33
  return cb(err);
31
34
  });
32
35
  });