node-install-release 1.16.5 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/cjs/cli.d.cts +1 -1
  2. package/dist/cjs/cli.d.ts +1 -1
  3. package/dist/cjs/cli.js.map +1 -1
  4. package/dist/cjs/compat.js +1 -4
  5. package/dist/cjs/compat.js.map +1 -1
  6. package/dist/cjs/constants.js.map +1 -1
  7. package/dist/cjs/createResult.js.map +1 -1
  8. package/dist/cjs/createStoragePaths.js.map +1 -1
  9. package/dist/cjs/files.js.map +1 -1
  10. package/dist/cjs/index.d.cts +2 -2
  11. package/dist/cjs/index.d.ts +2 -2
  12. package/dist/cjs/index.js +5 -8
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/installNPM/index.d.cts +1 -1
  15. package/dist/cjs/installNPM/index.d.ts +1 -1
  16. package/dist/cjs/installNPM/index.js.map +1 -1
  17. package/dist/cjs/installNPM/installBin.js.map +1 -1
  18. package/dist/cjs/installNPM/installLib.d.cts +2 -2
  19. package/dist/cjs/installNPM/installLib.d.ts +2 -2
  20. package/dist/cjs/installNPM/installLib.js +22 -18
  21. package/dist/cjs/installNPM/installLib.js.map +1 -1
  22. package/dist/cjs/installNode/index.d.cts +1 -1
  23. package/dist/cjs/installNode/index.d.ts +1 -1
  24. package/dist/cjs/installNode/index.js.map +1 -1
  25. package/dist/cjs/installNode/installCompressed.d.cts +1 -1
  26. package/dist/cjs/installNode/installCompressed.d.ts +1 -1
  27. package/dist/cjs/installNode/installCompressed.js.map +1 -1
  28. package/dist/cjs/installNode/installExe.d.cts +1 -1
  29. package/dist/cjs/installNode/installExe.d.ts +1 -1
  30. package/dist/cjs/installNode/installExe.js.map +1 -1
  31. package/dist/cjs/installNode/installFilename.d.cts +1 -1
  32. package/dist/cjs/installNode/installFilename.d.ts +1 -1
  33. package/dist/cjs/installNode/installFilename.js.map +1 -1
  34. package/dist/cjs/installNode/installSource/buildPosix.d.cts +1 -1
  35. package/dist/cjs/installNode/installSource/buildPosix.d.ts +1 -1
  36. package/dist/cjs/installNode/installSource/buildPosix.js.map +1 -1
  37. package/dist/cjs/installNode/installSource/buildWin32.d.cts +1 -1
  38. package/dist/cjs/installNode/installSource/buildWin32.d.ts +1 -1
  39. package/dist/cjs/installNode/installSource/buildWin32.js.map +1 -1
  40. package/dist/cjs/installNode/installSource/index.d.cts +1 -1
  41. package/dist/cjs/installNode/installSource/index.d.ts +1 -1
  42. package/dist/cjs/installNode/installSource/index.js.map +1 -1
  43. package/dist/cjs/installNode/validateDownload.d.cts +1 -1
  44. package/dist/cjs/installNode/validateDownload.d.ts +1 -1
  45. package/dist/cjs/installNode/validateDownload.js +4 -7
  46. package/dist/cjs/installNode/validateDownload.js.map +1 -1
  47. package/dist/cjs/lib/checkMissing.d.cts +2 -2
  48. package/dist/cjs/lib/checkMissing.d.ts +2 -2
  49. package/dist/cjs/lib/checkMissing.js.map +1 -1
  50. package/dist/cjs/lib/conditionalCache.d.cts +1 -1
  51. package/dist/cjs/lib/conditionalCache.d.ts +1 -1
  52. package/dist/cjs/lib/conditionalCache.js +4 -12
  53. package/dist/cjs/lib/conditionalCache.js.map +1 -1
  54. package/dist/cjs/lib/conditionalCopy.d.cts +1 -1
  55. package/dist/cjs/lib/conditionalCopy.d.ts +1 -1
  56. package/dist/cjs/lib/conditionalCopy.js.map +1 -1
  57. package/dist/cjs/lib/copyFile.js.map +1 -1
  58. package/dist/cjs/lib/ensureDestinationParent.d.cts +1 -1
  59. package/dist/cjs/lib/ensureDestinationParent.d.ts +1 -1
  60. package/dist/cjs/lib/ensureDestinationParent.js +1 -4
  61. package/dist/cjs/lib/ensureDestinationParent.js.map +1 -1
  62. package/dist/cjs/lib/extract.d.cts +1 -1
  63. package/dist/cjs/lib/extract.d.ts +1 -1
  64. package/dist/cjs/lib/extract.js.map +1 -1
  65. package/dist/cjs/lib/getTarget.js.map +1 -1
  66. package/dist/cjs/workers/install.d.cts +1 -1
  67. package/dist/cjs/workers/install.d.ts +1 -1
  68. package/dist/cjs/workers/install.js +2 -8
  69. package/dist/cjs/workers/install.js.map +1 -1
  70. package/dist/esm/cli.d.ts +1 -1
  71. package/dist/esm/cli.js.map +1 -1
  72. package/dist/esm/compat.js +1 -4
  73. package/dist/esm/compat.js.map +1 -1
  74. package/dist/esm/constants.js.map +1 -1
  75. package/dist/esm/createResult.js.map +1 -1
  76. package/dist/esm/createStoragePaths.js.map +1 -1
  77. package/dist/esm/files.js.map +1 -1
  78. package/dist/esm/index.d.ts +2 -2
  79. package/dist/esm/index.js +5 -10
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/esm/installNPM/index.d.ts +1 -1
  82. package/dist/esm/installNPM/index.js.map +1 -1
  83. package/dist/esm/installNPM/installBin.js.map +1 -1
  84. package/dist/esm/installNPM/installLib.d.ts +2 -2
  85. package/dist/esm/installNPM/installLib.js +22 -18
  86. package/dist/esm/installNPM/installLib.js.map +1 -1
  87. package/dist/esm/installNode/index.d.ts +1 -1
  88. package/dist/esm/installNode/index.js.map +1 -1
  89. package/dist/esm/installNode/installCompressed.d.ts +1 -1
  90. package/dist/esm/installNode/installCompressed.js.map +1 -1
  91. package/dist/esm/installNode/installExe.d.ts +1 -1
  92. package/dist/esm/installNode/installExe.js.map +1 -1
  93. package/dist/esm/installNode/installFilename.d.ts +1 -1
  94. package/dist/esm/installNode/installFilename.js.map +1 -1
  95. package/dist/esm/installNode/installSource/buildPosix.d.ts +1 -1
  96. package/dist/esm/installNode/installSource/buildPosix.js.map +1 -1
  97. package/dist/esm/installNode/installSource/buildWin32.d.ts +1 -1
  98. package/dist/esm/installNode/installSource/buildWin32.js.map +1 -1
  99. package/dist/esm/installNode/installSource/index.d.ts +1 -1
  100. package/dist/esm/installNode/installSource/index.js.map +1 -1
  101. package/dist/esm/installNode/validateDownload.d.ts +1 -1
  102. package/dist/esm/installNode/validateDownload.js +4 -7
  103. package/dist/esm/installNode/validateDownload.js.map +1 -1
  104. package/dist/esm/lib/checkMissing.d.ts +2 -2
  105. package/dist/esm/lib/checkMissing.js.map +1 -1
  106. package/dist/esm/lib/conditionalCache.d.ts +1 -1
  107. package/dist/esm/lib/conditionalCache.js +4 -12
  108. package/dist/esm/lib/conditionalCache.js.map +1 -1
  109. package/dist/esm/lib/conditionalCopy.d.ts +1 -1
  110. package/dist/esm/lib/conditionalCopy.js.map +1 -1
  111. package/dist/esm/lib/copyFile.js.map +1 -1
  112. package/dist/esm/lib/ensureDestinationParent.d.ts +1 -1
  113. package/dist/esm/lib/ensureDestinationParent.js +1 -4
  114. package/dist/esm/lib/ensureDestinationParent.js.map +1 -1
  115. package/dist/esm/lib/extract.d.ts +1 -1
  116. package/dist/esm/lib/extract.js.map +1 -1
  117. package/dist/esm/lib/getTarget.js.map +1 -1
  118. package/dist/esm/types.js.map +1 -1
  119. package/dist/esm/workers/install.d.ts +1 -1
  120. package/dist/esm/workers/install.js +2 -8
  121. package/dist/esm/workers/install.js.map +1 -1
  122. package/package.json +18 -19
@@ -1,2 +1,2 @@
1
1
  import type { InstallOptions, NoParamCallback } from '../types.js';
2
- export default function install(version: string, dest: string, options: InstallOptions, callback: NoParamCallback): undefined;
2
+ export default function install(version: string, dest: string, options: InstallOptions, 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): undefined {\n let filenames = 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[platform] || platform;\n const parts = [filePlatform, arch];\n if (options.type) parts.push(options.type);\n if (options.compression) parts.push(options.compression);\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[filePlatform] || []).forEach((x) => {\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, checksum?: ChecksumResult) => void, lastErr?: Error) => {\n if (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 installFilename(filenames.shift(), version, dest, options, (err, checksum) => (err ? tryNext(cb, err) : cb(null, 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":["FILE_PLATFORM_MAP","FILES","installFilename","install","version","dest","options","callback","filenames","filename","platform","arch","filePlatform","parts","type","push","compression","archs","process","map","a","concat","slice","join","forEach","x","filter","i","indexOf","tryNext","cb","lastErr","length","msg","Error","message","shift","err","checksum","actual","expected","console","log"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,KAAK,QAAQ,kBAAkB;AAE3D,OAAOC,qBAAqB,uBAAuB;AAEnD,eAAe,SAASC,QAAQC,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAAyB;IAC/G,IAAIC,YAAY;IAEhB,sBAAsB;IACtB,IAAIF,QAAQG,QAAQ,EAAED,YAAY;QAACF,QAAQG,QAAQ;KAAC;SAE/C;QACH,MAAM,EAAEC,QAAQ,EAAEC,IAAI,EAAE,GAAGL;QAC3B,MAAMM,eAAeZ,iBAAiB,CAACU,SAAS,IAAIA;QACpD,MAAMG,QAAQ;YAACD;YAAcD;SAAK;QAClC,IAAIL,QAAQQ,IAAI,EAAED,MAAME,IAAI,CAACT,QAAQQ,IAAI;QACzC,IAAIR,QAAQU,WAAW,EAAEH,MAAME,IAAI,CAACT,QAAQU,WAAW;QAEvD,qCAAqC;QACrC,MAAMC,QAAQ;YAACN;YAAMO,QAAQP,IAAI;SAAC;QAClCH,YAAYS,MAAME,GAAG,CAAC,CAACC,IAAM;gBAACR;gBAAcQ;aAAE,CAACC,MAAM,CAACR,MAAMS,KAAK,CAAC,IAAIC,IAAI,CAAC;QAC1EtB,CAAAA,KAAK,CAACW,aAAa,IAAI,EAAE,AAAD,EAAGY,OAAO,CAAC,CAACC;YACnCjB,UAAUO,IAAI,CAACU,EAAEhB,QAAQ;QAC3B;QACAD,UAAUO,IAAI,CAAC;QACfP,YAAYA,UAAUkB,MAAM,CAAC,CAACjB,UAAUkB,IAAMnB,UAAUoB,OAAO,CAACnB,cAAckB;IAChF;IAEA,MAAME,UAAU,CAACC,IAAsDC;QACrE,IAAIvB,UAAUwB,MAAM,KAAK,GAAG;YAC1B,MAAMC,MAAM,CAAC,+BAA+B,EAAE7B,UAAUE,QAAQG,QAAQ,GAAG,CAAC,WAAW,EAAEH,QAAQG,QAAQ,EAAE,GAAG,IAAI;YAClH,OAAOqB,GAAG,IAAII,MAAMH,UAAU,GAAGE,IAAI,EAAE,EAAEF,QAAQI,OAAO,EAAE,GAAGF;QAC/D;QACA/B,gBAAgBM,UAAU4B,KAAK,IAAIhC,SAASC,MAAMC,SAAS,CAAC+B,KAAKC,WAAcD,MAAMR,QAAQC,IAAIO,OAAOP,GAAG,MAAMQ;IACnH;IACAT,QAAQ,CAACQ,KAAKC;QACZ,IAAIH,UAAU,CAAC,KAAK,EAAE/B,QAAQkB,KAAK,CAAC,IAAI;QACxC,IAAI,CAACe,KAAK;YACRF,WAAW;YACX,IAAIG,UAAUH,WAAW,CAAC,EAAE,EAAEG,SAASC,MAAM,CAACjB,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAC9D,OAAO;YACLa,WAAW;YACX,IAAIG,UAAUH,WAAW,CAAC,EAAE,EAAEG,SAASC,MAAM,CAAC,WAAW,EAAED,SAASE,QAAQ,CAAC,CAAC,CAAC;YAC/EL,WAAW,CAAC,SAAS,EAAEE,IAAIF,OAAO,EAAE;QACtC;QACAM,QAAQC,GAAG,CAACP;QACZ5B,SAAS8B;IACX;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/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 = 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[platform] || platform;\n const parts = [filePlatform, arch];\n if (options.type) parts.push(options.type);\n if (options.compression) parts.push(options.compression);\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[filePlatform] || []).forEach((x) => {\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, checksum?: ChecksumResult) => void, lastErr?: Error) => {\n if (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 installFilename(filenames.shift(), version, dest, options, (err, checksum) => (err ? tryNext(cb, err) : cb(null, 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":["FILE_PLATFORM_MAP","FILES","installFilename","install","version","dest","options","callback","filenames","filename","platform","arch","filePlatform","parts","type","push","compression","archs","process","map","a","concat","slice","join","forEach","x","filter","i","indexOf","tryNext","cb","lastErr","length","msg","Error","message","shift","err","checksum","actual","expected","console","log"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,KAAK,QAAQ,kBAAkB;AAE3D,OAAOC,qBAAqB,uBAAuB;AAEnD,eAAe,SAASC,QAAQC,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAAyB;IAC/G,IAAIC,YAAY;IAEhB,sBAAsB;IACtB,IAAIF,QAAQG,QAAQ,EAAED,YAAY;QAACF,QAAQG,QAAQ;KAAC;SAE/C;QACH,MAAM,EAAEC,QAAQ,EAAEC,IAAI,EAAE,GAAGL;QAC3B,MAAMM,eAAeZ,iBAAiB,CAACU,SAAS,IAAIA;QACpD,MAAMG,QAAQ;YAACD;YAAcD;SAAK;QAClC,IAAIL,QAAQQ,IAAI,EAAED,MAAME,IAAI,CAACT,QAAQQ,IAAI;QACzC,IAAIR,QAAQU,WAAW,EAAEH,MAAME,IAAI,CAACT,QAAQU,WAAW;QAEvD,qCAAqC;QACrC,MAAMC,QAAQ;YAACN;YAAMO,QAAQP,IAAI;SAAC;QAClCH,YAAYS,MAAME,GAAG,CAAC,CAACC,IAAM;gBAACR;gBAAcQ;aAAE,CAACC,MAAM,CAACR,MAAMS,KAAK,CAAC,IAAIC,IAAI,CAAC;QAC1EtB,CAAAA,KAAK,CAACW,aAAa,IAAI,EAAE,AAAD,EAAGY,OAAO,CAAC,CAACC;YACnCjB,UAAUO,IAAI,CAACU,EAAEhB,QAAQ;QAC3B;QACAD,UAAUO,IAAI,CAAC;QACfP,YAAYA,UAAUkB,MAAM,CAAC,CAACjB,UAAUkB,IAAMnB,UAAUoB,OAAO,CAACnB,cAAckB;IAChF;IAEA,MAAME,UAAU,CAACC,IAAsDC;QACrE,IAAIvB,UAAUwB,MAAM,KAAK,GAAG;YAC1B,MAAMC,MAAM,CAAC,+BAA+B,EAAE7B,UAAUE,QAAQG,QAAQ,GAAG,CAAC,WAAW,EAAEH,QAAQG,QAAQ,EAAE,GAAG,IAAI;YAClH,OAAOqB,GAAG,IAAII,MAAMH,UAAU,GAAGE,IAAI,EAAE,EAAEF,QAAQI,OAAO,EAAE,GAAGF;QAC/D;QACA/B,gBAAgBM,UAAU4B,KAAK,IAAIhC,SAASC,MAAMC,SAAS,CAAC+B,KAAKC,WAAcD,MAAMR,QAAQC,IAAIO,OAAOP,GAAG,MAAMQ;IACnH;IACAT,QAAQ,CAACQ,KAAKC;QACZ,IAAIH,UAAU,CAAC,KAAK,EAAE/B,QAAQkB,KAAK,CAAC,IAAI;QACxC,IAAI,CAACe,KAAK;YACRF,WAAW;YACX,IAAIG,UAAUH,WAAW,CAAC,EAAE,EAAEG,SAASC,MAAM,CAACjB,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAC9D,OAAO;YACLa,WAAW;YACX,IAAIG,UAAUH,WAAW,CAAC,EAAE,EAAEG,SAASC,MAAM,CAAC,WAAW,EAAED,SAASE,QAAQ,CAAC,CAAC,CAAC;YAC/EL,WAAW,CAAC,SAAS,EAAEE,IAAIF,OAAO,EAAE;QACtC;QACAM,QAAQC,GAAG,CAACP;QACZ5B,SAAS8B;IACX;AACF"}
@@ -1,2 +1,2 @@
1
1
  import type { ChecksumCallback, InstallOptions } from '../types.js';
2
- export default function installCompressed(distPath: string, dest: string, options: InstallOptions, callback: ChecksumCallback): undefined;
2
+ export default function installCompressed(distPath: string, dest: string, options: InstallOptions, 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): undefined {\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(conditionalCache.bind(null, downloadPath, cachePath));\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":["path","Queue","NODE_DIST_BASE_URL","conditionalCache","extract","validateDownload","installCompressed","distPath","dest","options","callback","downloadPath","cachePath","join","basename","checksum","queue","defer","bind","cb","err","result","strip","time","await"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,OAAOC,sBAAsB,6BAA6B;AAC1D,OAAOC,aAAa,oBAAoB;AAExC,OAAOC,sBAAsB,wBAAwB;AAErD,eAAe,SAASC,kBAAkBC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC3H,MAAMC,eAAe,GAAGT,mBAAmB,CAAC,EAAEK,UAAU;IACxD,MAAMK,YAAYZ,KAAKa,IAAI,CAACJ,QAAQG,SAAS,EAAEZ,KAAKc,QAAQ,CAACH;IAE7D,IAAII;IACJ,MAAMC,QAAQ,IAAIf,MAAM;IACxBe,MAAMC,KAAK,CAACd,iBAAiBe,IAAI,CAAC,MAAMP,cAAcC;IACtDI,MAAMC,KAAK,CAAC,CAACE;QACXd,iBAAiBE,UAAUK,WAAW,CAACQ,KAAKC;YAC1CN,WAAWM;YACXF,GAAGC;QACL;IACF;IACAJ,MAAMC,KAAK,CAACb,QAAQc,IAAI,CAAC,MAAMN,WAAWJ,MAAM;QAAEc,OAAO;QAAGC,MAAM;IAAK;IACvEP,MAAMQ,KAAK,CAAC,CAACJ,MAAQV,SAASU,KAAKL;AACrC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/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(conditionalCache.bind(null, downloadPath, cachePath));\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":["path","Queue","NODE_DIST_BASE_URL","conditionalCache","extract","validateDownload","installCompressed","distPath","dest","options","callback","downloadPath","cachePath","join","basename","checksum","queue","defer","bind","cb","err","result","strip","time","await"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,SAASC,kBAAkB,QAAQ,kBAAkB;AACrD,OAAOC,sBAAsB,6BAA6B;AAC1D,OAAOC,aAAa,oBAAoB;AAExC,OAAOC,sBAAsB,wBAAwB;AAErD,eAAe,SAASC,kBAAkBC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC3H,MAAMC,eAAe,GAAGT,mBAAmB,CAAC,EAAEK,UAAU;IACxD,MAAMK,YAAYZ,KAAKa,IAAI,CAACJ,QAAQG,SAAS,EAAEZ,KAAKc,QAAQ,CAACH;IAE7D,IAAII;IACJ,MAAMC,QAAQ,IAAIf,MAAM;IACxBe,MAAMC,KAAK,CAACd,iBAAiBe,IAAI,CAAC,MAAMP,cAAcC;IACtDI,MAAMC,KAAK,CAAC,CAACE;QACXd,iBAAiBE,UAAUK,WAAW,CAACQ,KAAKC;YAC1CN,WAAWM;YACXF,GAAGC;QACL;IACF;IACAJ,MAAMC,KAAK,CAACb,QAAQc,IAAI,CAAC,MAAMN,WAAWJ,MAAM;QAAEc,OAAO;QAAGC,MAAM;IAAK;IACvEP,MAAMQ,KAAK,CAAC,CAACJ,MAAQV,SAASU,KAAKL;AACrC"}
@@ -1,2 +1,2 @@
1
1
  import type { InstallOptions, NoParamCallback } from '../types.js';
2
- export default function installExe(distPath: string, dest: string, options: InstallOptions, callback: NoParamCallback): undefined;
2
+ export default function installExe(distPath: string, dest: string, options: InstallOptions, 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): undefined {\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[platform] || 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(conditionalCache.bind(null, downloadPath, cachePath));\n queue.defer(validateDownload.bind(null, distPath, cachePath));\n queue.defer(copyFile.bind(null, cachePath, execPath));\n queue.await(callback);\n });\n}\n"],"names":["fs","path","Queue","NODE_DIST_BASE_URL","NODE_FILE_PATHS","conditionalCache","copyFile","validateDownload","installExe","distPath","dest","options","callback","platform","downloadPath","cachePath","join","nodePath","posix","execPath","stat","err","queue","defer","bind","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,kBAAkB;AACtE,OAAOC,sBAAsB,6BAA6B;AAC1D,OAAOC,cAAc,qBAAqB;AAE1C,OAAOC,sBAAsB,wBAAwB;AAErD,eAAe,SAASC,WAAWC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAAyB;IACnH,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,eAAe,GAAGX,mBAAmB,CAAC,EAAEM,UAAU;IACxD,MAAMM,YAAYd,KAAKe,IAAI,CAACL,QAAQI,SAAS,EAAE,CAAC,KAAK,EAAEN,SAAS,IAAI,CAAC;IACrE,MAAMQ,WAAWb,eAAe,CAACS,SAAS,IAAIT,gBAAgBc,KAAK;IACnE,MAAMC,WAAWlB,KAAKe,IAAI,CAACN,MAAMO;IAEjCjB,GAAGoB,IAAI,CAACD,UAAU,CAACE;QACjB,IAAI,CAACA,KAAK,OAAOT,YAAY,iBAAiB;QAE9C,MAAMU,QAAQ,IAAIpB,MAAM;QACxBoB,MAAMC,KAAK,CAAClB,iBAAiBmB,IAAI,CAAC,MAAMV,cAAcC;QACtDO,MAAMC,KAAK,CAAChB,iBAAiBiB,IAAI,CAAC,MAAMf,UAAUM;QAClDO,MAAMC,KAAK,CAACjB,SAASkB,IAAI,CAAC,MAAMT,WAAWI;QAC3CG,MAAMG,KAAK,CAACb;IACd;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/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[platform] || 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(conditionalCache.bind(null, downloadPath, cachePath));\n queue.defer(validateDownload.bind(null, distPath, cachePath));\n queue.defer(copyFile.bind(null, cachePath, execPath));\n queue.await(callback);\n });\n}\n"],"names":["fs","path","Queue","NODE_DIST_BASE_URL","NODE_FILE_PATHS","conditionalCache","copyFile","validateDownload","installExe","distPath","dest","options","callback","platform","downloadPath","cachePath","join","nodePath","posix","execPath","stat","err","queue","defer","bind","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,kBAAkB;AACtE,OAAOC,sBAAsB,6BAA6B;AAC1D,OAAOC,cAAc,qBAAqB;AAE1C,OAAOC,sBAAsB,wBAAwB;AAErD,eAAe,SAASC,WAAWC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAAyB;IACnH,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,eAAe,GAAGX,mBAAmB,CAAC,EAAEM,UAAU;IACxD,MAAMM,YAAYd,KAAKe,IAAI,CAACL,QAAQI,SAAS,EAAE,CAAC,KAAK,EAAEN,SAAS,IAAI,CAAC;IACrE,MAAMQ,WAAWb,eAAe,CAACS,SAAS,IAAIT,gBAAgBc,KAAK;IACnE,MAAMC,WAAWlB,KAAKe,IAAI,CAACN,MAAMO;IAEjCjB,GAAGoB,IAAI,CAACD,UAAU,CAACE;QACjB,IAAI,CAACA,KAAK,OAAOT,YAAY,iBAAiB;QAE9C,MAAMU,QAAQ,IAAIpB,MAAM;QACxBoB,MAAMC,KAAK,CAAClB,iBAAiBmB,IAAI,CAAC,MAAMV,cAAcC;QACtDO,MAAMC,KAAK,CAAChB,iBAAiBiB,IAAI,CAAC,MAAMf,UAAUM;QAClDO,MAAMC,KAAK,CAACjB,SAASkB,IAAI,CAAC,MAAMT,WAAWI;QAC3CG,MAAMG,KAAK,CAACb;IACd;AACF"}
@@ -1,2 +1,2 @@
1
1
  import type { ChecksumCallback, InstallOptions } from '../types.js';
2
- export default function installFilename(filename: string, version: string, dest: string, options: InstallOptions, callback: ChecksumCallback): undefined;
2
+ export default function installFilename(filename: string, version: string, dest: string, options: InstallOptions, callback: ChecksumCallback): void;
@@ -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): undefined {\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":["fromFilename","path","EXTENSIONS_COMPRESSED","installCompressed","installExe","installSource","installFilename","filename","version","dest","options","callback","distPath","Error","ext","extname","indexOf"],"mappings":"AAAA,OAAOA,kBAAkB,8BAA8B;AACvD,OAAOC,UAAU,OAAO;AACxB,SAASC,qBAAqB,QAAQ,kBAAkB;AAExD,OAAOC,uBAAuB,yBAAyB;AACvD,OAAOC,gBAAgB,kBAAkB;AACzC,OAAOC,mBAAmB,2BAA2B;AAErD,eAAe,SAASC,gBAAgBC,QAAgB,EAAEC,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC1I,MAAMC,WAAWZ,aAAaO,UAAUC;IACxC,IAAI,CAACI,UAAU;QACbD,SAAS,IAAIE,MAAM;QACnB;IACF;IACA,MAAMC,MAAMb,KAAKc,OAAO,CAACH;IAEzB,IAAIL,aAAa,OAAO,OAAOF,cAAcO,UAAUH,MAAMC,SAASC;IACtE,IAAIG,QAAQ,QAAQ,OAAOV,WAAWQ,UAAUH,MAAMC,SAASC;IAC/D,IAAIT,sBAAsBc,OAAO,CAACF,QAAQ,GAAG;QAC3C,OAAOX,kBAAkBS,UAAUH,MAAMC,SAASC;IACpD;IACAA,SAAS,IAAIE,MAAM,CAAC,kBAAkB,EAAEL,QAAQ,WAAW,EAAEI,UAAU;AACzE"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/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":["fromFilename","path","EXTENSIONS_COMPRESSED","installCompressed","installExe","installSource","installFilename","filename","version","dest","options","callback","distPath","Error","ext","extname","indexOf"],"mappings":"AAAA,OAAOA,kBAAkB,8BAA8B;AACvD,OAAOC,UAAU,OAAO;AACxB,SAASC,qBAAqB,QAAQ,kBAAkB;AAExD,OAAOC,uBAAuB,yBAAyB;AACvD,OAAOC,gBAAgB,kBAAkB;AACzC,OAAOC,mBAAmB,2BAA2B;AAErD,eAAe,SAASC,gBAAgBC,QAAgB,EAAEC,OAAe,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC1I,MAAMC,WAAWZ,aAAaO,UAAUC;IACxC,IAAI,CAACI,UAAU;QACbD,SAAS,IAAIE,MAAM;QACnB;IACF;IACA,MAAMC,MAAMb,KAAKc,OAAO,CAACH;IAEzB,IAAIL,aAAa,OAAO,OAAOF,cAAcO,UAAUH,MAAMC,SAASC;IACtE,IAAIG,QAAQ,QAAQ,OAAOV,WAAWQ,UAAUH,MAAMC,SAASC;IAC/D,IAAIT,sBAAsBc,OAAO,CAACF,QAAQ,GAAG;QAC3C,OAAOX,kBAAkBS,UAAUH,MAAMC,SAASC;IACpD;IACAA,SAAS,IAAIE,MAAM,CAAC,kBAAkB,EAAEL,QAAQ,WAAW,EAAEI,UAAU;AACzE"}
@@ -1,2 +1,2 @@
1
1
  import type { InstallOptions, NoParamCallback } from '../../types.js';
2
- export default function installPosix(buildPath: string, dest: string, _options: InstallOptions, callback: NoParamCallback): undefined;
2
+ export default function installPosix(buildPath: string, dest: string, _options: InstallOptions, callback: NoParamCallback): void;
@@ -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): undefined {\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(spawn.bind(null, './configure', [`--prefix=${dest}`], { stdio: 'inherit', cwd: buildPath }));\n queue.defer(spawn.bind(null, 'make', ['install'], { stdio: 'inherit', cwd: buildPath }, callback));\n queue.await(callback);\n });\n}\n"],"names":["spawn","fs","path","Queue","installPosix","buildPath","dest","_options","callback","buildTarget","join","stat","err","queue","defer","bind","stdio","cwd","await"],"mappings":"AAAA,OAAOA,WAAW,iBAAiB;AACnC,OAAOC,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAI7B,eAAe,SAASC,aAAaC,SAAiB,EAAEC,IAAY,EAAEC,QAAwB,EAAEC,QAAyB;IACvH,MAAMC,cAAcP,KAAKQ,IAAI,CAACJ,MAAM;IAEpCL,GAAGU,IAAI,CAACF,aAAa,CAACG;QACpB,IAAI,CAACA,KAAK,OAAOJ,YAAY,iBAAiB;QAE9C,MAAMK,QAAQ,IAAIV,MAAM;QACxBU,MAAMC,KAAK,CAACd,MAAMe,IAAI,CAAC,MAAM,eAAe;YAAC,CAAC,SAAS,EAAET,MAAM;SAAC,EAAE;YAAEU,OAAO;YAAWC,KAAKZ;QAAU;QACrGQ,MAAMC,KAAK,CAACd,MAAMe,IAAI,CAAC,MAAM,QAAQ;YAAC;SAAU,EAAE;YAAEC,OAAO;YAAWC,KAAKZ;QAAU,GAAGG;QACxFK,MAAMK,KAAK,CAACV;IACd;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/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(spawn.bind(null, './configure', [`--prefix=${dest}`], { stdio: 'inherit', cwd: buildPath }));\n queue.defer(spawn.bind(null, 'make', ['install'], { stdio: 'inherit', cwd: buildPath }, callback));\n queue.await(callback);\n });\n}\n"],"names":["spawn","fs","path","Queue","installPosix","buildPath","dest","_options","callback","buildTarget","join","stat","err","queue","defer","bind","stdio","cwd","await"],"mappings":"AAAA,OAAOA,WAAW,iBAAiB;AACnC,OAAOC,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAI7B,eAAe,SAASC,aAAaC,SAAiB,EAAEC,IAAY,EAAEC,QAAwB,EAAEC,QAAyB;IACvH,MAAMC,cAAcP,KAAKQ,IAAI,CAACJ,MAAM;IAEpCL,GAAGU,IAAI,CAACF,aAAa,CAACG;QACpB,IAAI,CAACA,KAAK,OAAOJ,YAAY,iBAAiB;QAE9C,MAAMK,QAAQ,IAAIV,MAAM;QACxBU,MAAMC,KAAK,CAACd,MAAMe,IAAI,CAAC,MAAM,eAAe;YAAC,CAAC,SAAS,EAAET,MAAM;SAAC,EAAE;YAAEU,OAAO;YAAWC,KAAKZ;QAAU;QACrGQ,MAAMC,KAAK,CAACd,MAAMe,IAAI,CAAC,MAAM,QAAQ;YAAC;SAAU,EAAE;YAAEC,OAAO;YAAWC,KAAKZ;QAAU,GAAGG;QACxFK,MAAMK,KAAK,CAACV;IACd;AACF"}
@@ -1,2 +1,2 @@
1
1
  import type { InstallOptions, NoParamCallback } from '../../types.js';
2
- export default function installWin32(buildPath: string, dest: string, _options: InstallOptions, callback: NoParamCallback): undefined;
2
+ export default function installWin32(buildPath: string, dest: string, _options: InstallOptions, callback: NoParamCallback): void;
@@ -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): undefined {\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(fs.stat.bind(null, buildSource, (err) => (!err ? callback() : spawn('./vcbuild', [], { stdio: 'inherit', cwd: buildPath }))));\n queue.defer(conditionalCopy.bind(null, buildSource, buildTarget, false));\n queue.await(callback);\n });\n}\n"],"names":["spawn","fs","path","Queue","conditionalCopy","installWin32","buildPath","dest","_options","callback","buildSource","join","buildTarget","stat","err","queue","defer","bind","stdio","cwd","await"],"mappings":"AAAA,OAAOA,WAAW,iBAAiB;AACnC,OAAOC,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,qBAAqB,+BAA+B;AAI3D,eAAe,SAASC,aAAaC,SAAiB,EAAEC,IAAY,EAAEC,QAAwB,EAAEC,QAAyB;IACvH,MAAMC,cAAcR,KAAKS,IAAI,CAACL,WAAW,OAAO,WAAW;IAC3D,MAAMM,cAAcV,KAAKS,IAAI,CAACJ,MAAM;IAEpCN,GAAGY,IAAI,CAACD,aAAa,CAACE;QACpB,IAAI,CAACA,KAAK,OAAOL,YAAY,iBAAiB;QAE9C,MAAMM,QAAQ,IAAIZ,MAAM;QACxBY,MAAMC,KAAK,CAACf,GAAGY,IAAI,CAACI,IAAI,CAAC,MAAMP,aAAa,CAACI,MAAS,CAACA,MAAML,aAAaT,MAAM,aAAa,EAAE,EAAE;gBAAEkB,OAAO;gBAAWC,KAAKb;YAAU;QACpIS,MAAMC,KAAK,CAACZ,gBAAgBa,IAAI,CAAC,MAAMP,aAAaE,aAAa;QACjEG,MAAMK,KAAK,CAACX;IACd;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/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(fs.stat.bind(null, buildSource, (err) => (!err ? callback() : spawn('./vcbuild', [], { stdio: 'inherit', cwd: buildPath }))));\n queue.defer(conditionalCopy.bind(null, buildSource, buildTarget, false));\n queue.await(callback);\n });\n}\n"],"names":["spawn","fs","path","Queue","conditionalCopy","installWin32","buildPath","dest","_options","callback","buildSource","join","buildTarget","stat","err","queue","defer","bind","stdio","cwd","await"],"mappings":"AAAA,OAAOA,WAAW,iBAAiB;AACnC,OAAOC,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,qBAAqB,+BAA+B;AAI3D,eAAe,SAASC,aAAaC,SAAiB,EAAEC,IAAY,EAAEC,QAAwB,EAAEC,QAAyB;IACvH,MAAMC,cAAcR,KAAKS,IAAI,CAACL,WAAW,OAAO,WAAW;IAC3D,MAAMM,cAAcV,KAAKS,IAAI,CAACJ,MAAM;IAEpCN,GAAGY,IAAI,CAACD,aAAa,CAACE;QACpB,IAAI,CAACA,KAAK,OAAOL,YAAY,iBAAiB;QAE9C,MAAMM,QAAQ,IAAIZ,MAAM;QACxBY,MAAMC,KAAK,CAACf,GAAGY,IAAI,CAACI,IAAI,CAAC,MAAMP,aAAa,CAACI,MAAS,CAACA,MAAML,aAAaT,MAAM,aAAa,EAAE,EAAE;gBAAEkB,OAAO;gBAAWC,KAAKb;YAAU;QACpIS,MAAMC,KAAK,CAACZ,gBAAgBa,IAAI,CAAC,MAAMP,aAAaE,aAAa;QACjEG,MAAMK,KAAK,CAACX;IACd;AACF"}
@@ -1,2 +1,2 @@
1
1
  import type { InstallOptions, NoParamCallback } from '../../types.js';
2
- export default function InstallSource(distPath: string, dest: string, options: InstallOptions, callback: NoParamCallback): undefined;
2
+ export default function InstallSource(distPath: string, dest: string, options: InstallOptions, 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): undefined {\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(conditionalCache.bind(null, downloadPath, cachePath));\n queue.defer(validateDownload.bind(null, distPath, cachePath));\n queue.defer(extract.bind(null, cachePath, tempBuildPath));\n queue.defer(build.bind(null, tempBuildPath, dest, options));\n queue.await((err) => {\n // Always clean up temp build directory\n safeRm(tempBuildPath, () => callback(err));\n });\n}\n"],"names":["safeRm","path","Queue","tempSuffix","NODE_DIST_BASE_URL","conditionalCache","extract","validateDownload","buildPosix","buildWin32","InstallSource","distPath","dest","options","callback","platform","build","downloadPath","tempBuildPath","join","buildPath","basename","cachePath","queue","defer","bind","await","err"],"mappings":"AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,gBAAgB,cAAc;AAErC,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,OAAOC,sBAAsB,gCAAgC;AAC7D,OAAOC,aAAa,uBAAuB;AAE3C,OAAOC,sBAAsB,yBAAyB;AACtD,OAAOC,gBAAgB,kBAAkB;AACzC,OAAOC,gBAAgB,kBAAkB;AAEzC,eAAe,SAASC,cAAcC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAAyB;IACtH,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,QAAQD,aAAa,UAAUN,aAAaD;IAClD,MAAMS,eAAe,GAAGb,mBAAmB,CAAC,EAAEO,UAAU;IACxD,oEAAoE;IACpE,MAAMO,gBAAgBf,WAAWF,KAAKkB,IAAI,CAACN,QAAQO,SAAS,EAAEnB,KAAKoB,QAAQ,CAACV;IAC5E,MAAMW,YAAYrB,KAAKkB,IAAI,CAACN,QAAQS,SAAS,EAAErB,KAAKoB,QAAQ,CAACJ;IAE7D,MAAMM,QAAQ,IAAIrB,MAAM;IACxBqB,MAAMC,KAAK,CAACnB,iBAAiBoB,IAAI,CAAC,MAAMR,cAAcK;IACtDC,MAAMC,KAAK,CAACjB,iBAAiBkB,IAAI,CAAC,MAAMd,UAAUW;IAClDC,MAAMC,KAAK,CAAClB,QAAQmB,IAAI,CAAC,MAAMH,WAAWJ;IAC1CK,MAAMC,KAAK,CAACR,MAAMS,IAAI,CAAC,MAAMP,eAAeN,MAAMC;IAClDU,MAAMG,KAAK,CAAC,CAACC;QACX,uCAAuC;QACvC3B,OAAOkB,eAAe,IAAMJ,SAASa;IACvC;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/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(conditionalCache.bind(null, downloadPath, cachePath));\n queue.defer(validateDownload.bind(null, distPath, cachePath));\n queue.defer(extract.bind(null, cachePath, tempBuildPath));\n queue.defer(build.bind(null, tempBuildPath, dest, options));\n queue.await((err) => {\n // Always clean up temp build directory\n safeRm(tempBuildPath, () => callback(err));\n });\n}\n"],"names":["safeRm","path","Queue","tempSuffix","NODE_DIST_BASE_URL","conditionalCache","extract","validateDownload","buildPosix","buildWin32","InstallSource","distPath","dest","options","callback","platform","build","downloadPath","tempBuildPath","join","buildPath","basename","cachePath","queue","defer","bind","await","err"],"mappings":"AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,gBAAgB,cAAc;AAErC,SAASC,kBAAkB,QAAQ,qBAAqB;AACxD,OAAOC,sBAAsB,gCAAgC;AAC7D,OAAOC,aAAa,uBAAuB;AAE3C,OAAOC,sBAAsB,yBAAyB;AACtD,OAAOC,gBAAgB,kBAAkB;AACzC,OAAOC,gBAAgB,kBAAkB;AAEzC,eAAe,SAASC,cAAcC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAAyB;IACtH,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,QAAQD,aAAa,UAAUN,aAAaD;IAClD,MAAMS,eAAe,GAAGb,mBAAmB,CAAC,EAAEO,UAAU;IACxD,oEAAoE;IACpE,MAAMO,gBAAgBf,WAAWF,KAAKkB,IAAI,CAACN,QAAQO,SAAS,EAAEnB,KAAKoB,QAAQ,CAACV;IAC5E,MAAMW,YAAYrB,KAAKkB,IAAI,CAACN,QAAQS,SAAS,EAAErB,KAAKoB,QAAQ,CAACJ;IAE7D,MAAMM,QAAQ,IAAIrB,MAAM;IACxBqB,MAAMC,KAAK,CAACnB,iBAAiBoB,IAAI,CAAC,MAAMR,cAAcK;IACtDC,MAAMC,KAAK,CAACjB,iBAAiBkB,IAAI,CAAC,MAAMd,UAAUW;IAClDC,MAAMC,KAAK,CAAClB,QAAQmB,IAAI,CAAC,MAAMH,WAAWJ;IAC1CK,MAAMC,KAAK,CAACR,MAAMS,IAAI,CAAC,MAAMP,eAAeN,MAAMC;IAClDU,MAAMG,KAAK,CAAC,CAACC;QACX,uCAAuC;QACvC3B,OAAOkB,eAAe,IAAMJ,SAASa;IACvC;AACF"}
@@ -1,2 +1,2 @@
1
1
  import type { ChecksumCallback } from '../types.js';
2
- export default function validateDownload(distPath: string, installPath: string, callback: ChecksumCallback): undefined;
2
+ export default function validateDownload(distPath: string, installPath: string, callback: ChecksumCallback): void;
@@ -1,14 +1,14 @@
1
1
  import crypto from 'crypto';
2
2
  import fs from 'fs';
3
- import get from 'get-remote';
3
+ import { getContent } from 'get-file-compat';
4
4
  import oo from 'on-one';
5
5
  import { NODE_DIST_BASE_URL } from '../constants.js';
6
6
  export default function validateDownload(distPath, installPath, callback) {
7
7
  const version = distPath.split('/')[0];
8
8
  const downloadPath = `${NODE_DIST_BASE_URL}/${version}/SHASUMS256.txt`;
9
- get(downloadPath).text((err, res)=>{
9
+ getContent(downloadPath, 'utf8', (err, res)=>{
10
10
  if (err) return callback(err);
11
- const text = res.body;
11
+ const text = res.content;
12
12
  const filename = distPath.split('/').slice(1).join('/');
13
13
  const expected = text.split(filename)[0].split('\n').pop().trim();
14
14
  const hash = crypto.createHash('sha256');
@@ -20,10 +20,7 @@ export default function validateDownload(distPath, installPath, callback) {
20
20
  'close',
21
21
  'finish'
22
22
  ], (err)=>{
23
- if (err) {
24
- callback(err);
25
- return;
26
- }
23
+ if (err) return callback(err);
27
24
  const actual = hash.digest('hex');
28
25
  const match = actual === expected;
29
26
  const checksum = {
@@ -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 get from 'get-remote';\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): undefined {\n const version = distPath.split('/')[0];\n const downloadPath = `${NODE_DIST_BASE_URL}/${version}/SHASUMS256.txt`;\n get(downloadPath).text((err, res) => {\n if (err) return callback(err);\n const text = res.body;\n const filename = distPath.split('/').slice(1).join('/');\n const expected = text.split(filename)[0].split('\\n').pop().trim();\n const hash = crypto.createHash('sha256');\n const stream = fs.createReadStream(installPath);\n stream.on('data', (data) => hash.update(data));\n oo(stream, ['error', 'end', 'close', 'finish'], (err?: Error) => {\n if (err) {\n callback(err);\n return;\n }\n const actual = hash.digest('hex');\n const match = actual === expected;\n const checksum: ChecksumResult = { actual, expected, match };\n match ? callback(null, checksum) : callback(new Error(`${filename} checksum failed`), checksum);\n });\n });\n}\n"],"names":["crypto","fs","get","oo","NODE_DIST_BASE_URL","validateDownload","distPath","installPath","callback","version","split","downloadPath","text","err","res","body","filename","slice","join","expected","pop","trim","hash","createHash","stream","createReadStream","on","data","update","actual","digest","match","checksum","Error"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAC5B,OAAOC,QAAQ,KAAK;AACpB,OAAOC,SAAS,aAAa;AAC7B,OAAOC,QAAQ,SAAS;AACxB,SAASC,kBAAkB,QAAQ,kBAAkB;AAIrD,eAAe,SAASC,iBAAiBC,QAAgB,EAAEC,WAAmB,EAAEC,QAA0B;IACxG,MAAMC,UAAUH,SAASI,KAAK,CAAC,IAAI,CAAC,EAAE;IACtC,MAAMC,eAAe,GAAGP,mBAAmB,CAAC,EAAEK,QAAQ,eAAe,CAAC;IACtEP,IAAIS,cAAcC,IAAI,CAAC,CAACC,KAAKC;QAC3B,IAAID,KAAK,OAAOL,SAASK;QACzB,MAAMD,OAAOE,IAAIC,IAAI;QACrB,MAAMC,WAAWV,SAASI,KAAK,CAAC,KAAKO,KAAK,CAAC,GAAGC,IAAI,CAAC;QACnD,MAAMC,WAAWP,KAAKF,KAAK,CAACM,SAAS,CAAC,EAAE,CAACN,KAAK,CAAC,MAAMU,GAAG,GAAGC,IAAI;QAC/D,MAAMC,OAAOtB,OAAOuB,UAAU,CAAC;QAC/B,MAAMC,SAASvB,GAAGwB,gBAAgB,CAAClB;QACnCiB,OAAOE,EAAE,CAAC,QAAQ,CAACC,OAASL,KAAKM,MAAM,CAACD;QACxCxB,GAAGqB,QAAQ;YAAC;YAAS;YAAO;YAAS;SAAS,EAAE,CAACX;YAC/C,IAAIA,KAAK;gBACPL,SAASK;gBACT;YACF;YACA,MAAMgB,SAASP,KAAKQ,MAAM,CAAC;YAC3B,MAAMC,QAAQF,WAAWV;YACzB,MAAMa,WAA2B;gBAAEH;gBAAQV;gBAAUY;YAAM;YAC3DA,QAAQvB,SAAS,MAAMwB,YAAYxB,SAAS,IAAIyB,MAAM,GAAGjB,SAAS,gBAAgB,CAAC,GAAGgB;QACxF;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/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) => {\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(null, checksum) : callback(new Error(`${filename} checksum failed`), checksum);\n });\n });\n}\n"],"names":["crypto","fs","getContent","oo","NODE_DIST_BASE_URL","validateDownload","distPath","installPath","callback","version","split","downloadPath","err","res","text","content","filename","slice","join","expected","pop","trim","hash","createHash","stream","createReadStream","on","data","update","actual","digest","match","checksum","Error"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAC5B,OAAOC,QAAQ,KAAK;AACpB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,OAAOC,QAAQ,SAAS;AACxB,SAASC,kBAAkB,QAAQ,kBAAkB;AAIrD,eAAe,SAASC,iBAAiBC,QAAgB,EAAEC,WAAmB,EAAEC,QAA0B;IACxG,MAAMC,UAAUH,SAASI,KAAK,CAAC,IAAI,CAAC,EAAE;IACtC,MAAMC,eAAe,GAAGP,mBAAmB,CAAC,EAAEK,QAAQ,eAAe,CAAC;IACtEP,WAAWS,cAAc,QAAQ,CAACC,KAAKC;QACrC,IAAID,KAAK,OAAOJ,SAASI;QACzB,MAAME,OAAOD,IAAIE,OAAO;QACxB,MAAMC,WAAWV,SAASI,KAAK,CAAC,KAAKO,KAAK,CAAC,GAAGC,IAAI,CAAC;QACnD,MAAMC,WAAWL,KAAKJ,KAAK,CAACM,SAAS,CAAC,EAAE,CAACN,KAAK,CAAC,MAAMU,GAAG,GAAGC,IAAI;QAC/D,MAAMC,OAAOtB,OAAOuB,UAAU,CAAC;QAC/B,MAAMC,SAASvB,GAAGwB,gBAAgB,CAAClB;QACnCiB,OAAOE,EAAE,CAAC,QAAQ,CAACC,OAASL,KAAKM,MAAM,CAACD;QACxCxB,GAAGqB,QAAQ;YAAC;YAAS;YAAO;YAAS;SAAS,EAAE,CAACZ;YAC/C,IAAIA,KAAK,OAAOJ,SAASI;YACzB,MAAMiB,SAASP,KAAKQ,MAAM,CAAC;YAC3B,MAAMC,QAAQF,WAAWV;YACzB,MAAMa,WAA2B;gBAAEH;gBAAQV;gBAAUY;YAAM;YAC3DA,QAAQvB,SAAS,MAAMwB,YAAYxB,SAAS,IAAIyB,MAAM,GAAGjB,SAAS,gBAAgB,CAAC,GAAGgB;QACxF;IACF;AACF"}
@@ -1,3 +1,3 @@
1
1
  import type { InstallOptions } from '../types.js';
2
- export type Callback = (error?: Error, missing?: string[]) => undefined;
3
- export default function checkMissing(dest: string, options: InstallOptions, callback: Callback): undefined;
2
+ export type Callback = (error?: Error, missing?: string[]) => void;
3
+ export default function checkMissing(dest: string, options: InstallOptions, callback: Callback): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/checkMissing.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport { NODE_FILE_PATHS, NPM_PACKAGE_PATH } from '../constants.ts';\n\nimport type { InstallOptions } from '../types.ts';\n\nexport type Callback = (error?: Error, missing?: string[]) => undefined;\n\nexport default function checkMissing(dest: string, options: InstallOptions, callback: Callback): undefined {\n const platform = options.platform;\n const nodePath = NODE_FILE_PATHS[platform] || NODE_FILE_PATHS.posix;\n const npmPackagePath = NPM_PACKAGE_PATH[platform] || NPM_PACKAGE_PATH.posix;\n\n const missing: string[] = [];\n function check(filePath, key, cb) {\n fs.stat(path.join(dest, filePath), (err) => {\n if (err && missing.indexOf(key) < 0) missing.push(key);\n cb();\n });\n }\n\n const queue = new Queue();\n queue.defer(check.bind(null, nodePath, 'node'));\n queue.defer(check.bind(null, npmPackagePath, 'npm'));\n queue.await(() => callback(null, missing));\n}\n"],"names":["fs","path","Queue","NODE_FILE_PATHS","NPM_PACKAGE_PATH","checkMissing","dest","options","callback","platform","nodePath","posix","npmPackagePath","missing","check","filePath","key","cb","stat","join","err","indexOf","push","queue","defer","bind","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,kBAAkB;AAMpE,eAAe,SAASC,aAAaC,IAAY,EAAEC,OAAuB,EAAEC,QAAkB;IAC5F,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,WAAWP,eAAe,CAACM,SAAS,IAAIN,gBAAgBQ,KAAK;IACnE,MAAMC,iBAAiBR,gBAAgB,CAACK,SAAS,IAAIL,iBAAiBO,KAAK;IAE3E,MAAME,UAAoB,EAAE;IAC5B,SAASC,MAAMC,QAAQ,EAAEC,GAAG,EAAEC,EAAE;QAC9BjB,GAAGkB,IAAI,CAACjB,KAAKkB,IAAI,CAACb,MAAMS,WAAW,CAACK;YAClC,IAAIA,OAAOP,QAAQQ,OAAO,CAACL,OAAO,GAAGH,QAAQS,IAAI,CAACN;YAClDC;QACF;IACF;IAEA,MAAMM,QAAQ,IAAIrB;IAClBqB,MAAMC,KAAK,CAACV,MAAMW,IAAI,CAAC,MAAMf,UAAU;IACvCa,MAAMC,KAAK,CAACV,MAAMW,IAAI,CAAC,MAAMb,gBAAgB;IAC7CW,MAAMG,KAAK,CAAC,IAAMlB,SAAS,MAAMK;AACnC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/node-install-release/src/lib/checkMissing.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport { NODE_FILE_PATHS, NPM_PACKAGE_PATH } from '../constants.ts';\n\nimport type { InstallOptions } from '../types.ts';\n\nexport type Callback = (error?: Error, missing?: string[]) => void;\n\nexport default function checkMissing(dest: string, options: InstallOptions, callback: Callback): void {\n const platform = options.platform;\n const nodePath = NODE_FILE_PATHS[platform] || NODE_FILE_PATHS.posix;\n const npmPackagePath = NPM_PACKAGE_PATH[platform] || NPM_PACKAGE_PATH.posix;\n\n const missing: string[] = [];\n function check(filePath, key, cb) {\n fs.stat(path.join(dest, filePath), (err) => {\n if (err && missing.indexOf(key) < 0) missing.push(key);\n cb();\n });\n }\n\n const queue = new Queue();\n queue.defer(check.bind(null, nodePath, 'node'));\n queue.defer(check.bind(null, npmPackagePath, 'npm'));\n queue.await(() => callback(null, missing));\n}\n"],"names":["fs","path","Queue","NODE_FILE_PATHS","NPM_PACKAGE_PATH","checkMissing","dest","options","callback","platform","nodePath","posix","npmPackagePath","missing","check","filePath","key","cb","stat","join","err","indexOf","push","queue","defer","bind","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,kBAAkB;AAMpE,eAAe,SAASC,aAAaC,IAAY,EAAEC,OAAuB,EAAEC,QAAkB;IAC5F,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,WAAWP,eAAe,CAACM,SAAS,IAAIN,gBAAgBQ,KAAK;IACnE,MAAMC,iBAAiBR,gBAAgB,CAACK,SAAS,IAAIL,iBAAiBO,KAAK;IAE3E,MAAME,UAAoB,EAAE;IAC5B,SAASC,MAAMC,QAAQ,EAAEC,GAAG,EAAEC,EAAE;QAC9BjB,GAAGkB,IAAI,CAACjB,KAAKkB,IAAI,CAACb,MAAMS,WAAW,CAACK;YAClC,IAAIA,OAAOP,QAAQQ,OAAO,CAACL,OAAO,GAAGH,QAAQS,IAAI,CAACN;YAClDC;QACF;IACF;IAEA,MAAMM,QAAQ,IAAIrB;IAClBqB,MAAMC,KAAK,CAACV,MAAMW,IAAI,CAAC,MAAMf,UAAU;IACvCa,MAAMC,KAAK,CAACV,MAAMW,IAAI,CAAC,MAAMb,gBAAgB;IAC7CW,MAAMG,KAAK,CAAC,IAAMlB,SAAS,MAAMK;AACnC"}
@@ -1,2 +1,2 @@
1
1
  import type { InstallOptions, NoParamCallback } from '../types.js';
2
- export default function conditionalCache(endpoint: string, dest: string, options: InstallOptions, callback?: NoParamCallback): undefined;
2
+ export default function conditionalCache(endpoint: string, dest: string, options: InstallOptions, callback?: NoParamCallback): void;
@@ -1,21 +1,13 @@
1
1
  import fs from 'fs';
2
- import get from 'get-remote';
3
- import path from 'path';
2
+ import { getFile } from 'get-file-compat';
4
3
  import ensureDestinationParent from './ensureDestinationParent.js';
5
4
  export default function conditionalCache(endpoint, dest, options, callback) {
6
- if (typeof options === 'function') {
7
- callback = options;
8
- options = null;
9
- }
10
- options = options || {};
5
+ callback = typeof options === 'function' ? options : callback;
6
+ options = typeof options === 'function' ? {} : options || {};
11
7
  fs.stat(dest, (err)=>{
12
8
  if (!err) return callback(); // already exists
13
9
  ensureDestinationParent(dest, (err)=>{
14
- if (err) return callback(err);
15
- get(endpoint, {
16
- filename: path.basename(dest),
17
- time: 1000
18
- }).file(path.dirname(dest), callback);
10
+ err ? callback(err) : getFile(endpoint, dest, callback);
19
11
  });
20
12
  });
21
13
  }
@@ -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 get from 'get-remote';\nimport path from 'path';\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): undefined {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n\n fs.stat(dest, (err) => {\n if (!err) return callback(); // already exists\n\n ensureDestinationParent(dest, (err) => {\n if (err) return callback(err);\n get(endpoint, { filename: path.basename(dest), time: 1000 }).file(path.dirname(dest), callback);\n });\n });\n}\n"],"names":["fs","get","path","ensureDestinationParent","conditionalCache","endpoint","dest","options","callback","stat","err","filename","basename","time","file","dirname"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,SAAS,aAAa;AAC7B,OAAOC,UAAU,OAAO;AAExB,OAAOC,6BAA6B,+BAA+B;AAEnE,eAAe,SAASC,iBAAiBC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC1H,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU;IACZ;IACAA,UAAUA,WAAW,CAAC;IAEtBP,GAAGS,IAAI,CAACH,MAAM,CAACI;QACb,IAAI,CAACA,KAAK,OAAOF,YAAY,iBAAiB;QAE9CL,wBAAwBG,MAAM,CAACI;YAC7B,IAAIA,KAAK,OAAOF,SAASE;YACzBT,IAAII,UAAU;gBAAEM,UAAUT,KAAKU,QAAQ,CAACN;gBAAOO,MAAM;YAAK,GAAGC,IAAI,CAACZ,KAAKa,OAAO,CAACT,OAAOE;QACxF;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/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, callback);\n });\n });\n}\n"],"names":["fs","getFile","ensureDestinationParent","conditionalCache","endpoint","dest","options","callback","stat","err"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,SAASC,OAAO,QAAQ,kBAAkB;AAE1C,OAAOC,6BAA6B,+BAA+B;AAEnE,eAAe,SAASC,iBAAiBC,QAAgB,EAAEC,IAAY,EAAEC,OAAuB,EAAEC,QAA0B;IAC1HA,WAAW,OAAOD,YAAY,aAAaA,UAAUC;IACrDD,UAAU,OAAOA,YAAY,aAAa,CAAC,IAAMA,WAAW,CAAC;IAE7DN,GAAGQ,IAAI,CAACH,MAAM,CAACI;QACb,IAAI,CAACA,KAAK,OAAOF,YAAY,iBAAiB;QAC9CL,wBAAwBG,MAAM,CAACI;YAC7BA,MAAMF,SAASE,OAAOR,QAAQG,UAAUC,MAAME;QAChD;IACF;AACF"}
@@ -1,2 +1,2 @@
1
1
  import type { NoParamCallback } from '../types.js';
2
- export default function conditionalCopy(src: string, dest: string, optional: boolean, callback: NoParamCallback): undefined;
2
+ export default function conditionalCopy(src: string, dest: string, optional: boolean, callback: NoParamCallback): void;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/conditionalCopy.ts"],"sourcesContent":["import fs from 'fs';\nimport type { NoParamCallback } from '../types.ts';\nimport copyFile from './copyFile.ts';\n\nexport default function conditionalCopy(src: string, dest: string, optional: boolean, callback: NoParamCallback): undefined {\n if (typeof optional === 'function') {\n callback(new Error('conditionalCopy missing options'));\n return;\n }\n\n fs.stat(dest, (err) => {\n if (!err) return callback(); // already exists\n\n fs.stat(src, (err) => {\n err && optional ? callback() : copyFile(src, dest, callback); // optional file missing\n });\n });\n}\n"],"names":["fs","copyFile","conditionalCopy","src","dest","optional","callback","Error","stat","err"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AAEpB,OAAOC,cAAc,gBAAgB;AAErC,eAAe,SAASC,gBAAgBC,GAAW,EAAEC,IAAY,EAAEC,QAAiB,EAAEC,QAAyB;IAC7G,IAAI,OAAOD,aAAa,YAAY;QAClCC,SAAS,IAAIC,MAAM;QACnB;IACF;IAEAP,GAAGQ,IAAI,CAACJ,MAAM,CAACK;QACb,IAAI,CAACA,KAAK,OAAOH,YAAY,iBAAiB;QAE9CN,GAAGQ,IAAI,CAACL,KAAK,CAACM;YACZA,OAAOJ,WAAWC,aAAaL,SAASE,KAAKC,MAAME,WAAW,wBAAwB;QACxF;IACF;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/node-install-release/src/lib/conditionalCopy.ts"],"sourcesContent":["import fs from 'fs';\nimport type { NoParamCallback } from '../types.ts';\nimport copyFile from './copyFile.ts';\n\nexport default function conditionalCopy(src: string, dest: string, optional: boolean, callback: NoParamCallback): void {\n if (typeof optional === 'function') {\n callback(new Error('conditionalCopy missing options'));\n return;\n }\n\n fs.stat(dest, (err) => {\n if (!err) return callback(); // already exists\n\n fs.stat(src, (err) => {\n err && optional ? callback() : copyFile(src, dest, callback); // optional file missing\n });\n });\n}\n"],"names":["fs","copyFile","conditionalCopy","src","dest","optional","callback","Error","stat","err"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AAEpB,OAAOC,cAAc,gBAAgB;AAErC,eAAe,SAASC,gBAAgBC,GAAW,EAAEC,IAAY,EAAEC,QAAiB,EAAEC,QAAyB;IAC7G,IAAI,OAAOD,aAAa,YAAY;QAClCC,SAAS,IAAIC,MAAM;QACnB;IACF;IAEAP,GAAGQ,IAAI,CAACJ,MAAM,CAACK;QACb,IAAI,CAACA,KAAK,OAAOH,YAAY,iBAAiB;QAE9CN,GAAGQ,IAAI,CAACL,KAAK,CAACM;YACZA,OAAOJ,WAAWC,aAAaL,SAASE,KAAKC,MAAME,WAAW,wBAAwB;QACxF;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/copyFile.ts"],"sourcesContent":["import type { NoParamCallback } from 'fs';\nimport { copyFile } from 'fs-copy-compat';\nimport { safeRm } from 'fs-remove-compat';\nimport Queue from 'queue-cb';\n\nimport ensureDestinationParent from './ensureDestinationParent.ts';\n\nexport default function safeCopyFile(src: string, dest: string, callback: NoParamCallback) {\n const queue = new Queue(1);\n\n queue.defer(ensureDestinationParent.bind(null, dest));\n queue.defer((callback) => {\n safeRm(dest, callback);\n });\n queue.defer(copyFile.bind(null, src, dest));\n queue.await(callback);\n}\n"],"names":["copyFile","safeRm","Queue","ensureDestinationParent","safeCopyFile","src","dest","callback","queue","defer","bind","await"],"mappings":"AACA,SAASA,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,WAAW,WAAW;AAE7B,OAAOC,6BAA6B,+BAA+B;AAEnE,eAAe,SAASC,aAAaC,GAAW,EAAEC,IAAY,EAAEC,QAAyB;IACvF,MAAMC,QAAQ,IAAIN,MAAM;IAExBM,MAAMC,KAAK,CAACN,wBAAwBO,IAAI,CAAC,MAAMJ;IAC/CE,MAAMC,KAAK,CAAC,CAACF;QACXN,OAAOK,MAAMC;IACf;IACAC,MAAMC,KAAK,CAACT,SAASU,IAAI,CAAC,MAAML,KAAKC;IACrCE,MAAMG,KAAK,CAACJ;AACd"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/node-install-release/src/lib/copyFile.ts"],"sourcesContent":["import type { NoParamCallback } from 'fs';\nimport { copyFile } from 'fs-copy-compat';\nimport { safeRm } from 'fs-remove-compat';\nimport Queue from 'queue-cb';\n\nimport ensureDestinationParent from './ensureDestinationParent.ts';\n\nexport default function safeCopyFile(src: string, dest: string, callback: NoParamCallback) {\n const queue = new Queue(1);\n\n queue.defer(ensureDestinationParent.bind(null, dest));\n queue.defer((callback) => {\n safeRm(dest, callback);\n });\n queue.defer(copyFile.bind(null, src, dest));\n queue.await(callback);\n}\n"],"names":["copyFile","safeRm","Queue","ensureDestinationParent","safeCopyFile","src","dest","callback","queue","defer","bind","await"],"mappings":"AACA,SAASA,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,WAAW,WAAW;AAE7B,OAAOC,6BAA6B,+BAA+B;AAEnE,eAAe,SAASC,aAAaC,GAAW,EAAEC,IAAY,EAAEC,QAAyB;IACvF,MAAMC,QAAQ,IAAIN,MAAM;IAExBM,MAAMC,KAAK,CAACN,wBAAwBO,IAAI,CAAC,MAAMJ;IAC/CE,MAAMC,KAAK,CAAC,CAACF;QACXN,OAAOK,MAAMC;IACf;IACAC,MAAMC,KAAK,CAACT,SAASU,IAAI,CAAC,MAAML,KAAKC;IACrCE,MAAMG,KAAK,CAACJ;AACd"}
@@ -1,2 +1,2 @@
1
1
  import type { NoParamCallback } from '../types.js';
2
- export default function ensureDestinationParent(dest: string, callback: NoParamCallback): undefined;
2
+ export default function ensureDestinationParent(dest: string, callback: NoParamCallback): void;
@@ -2,9 +2,6 @@ import mkdirp from 'mkdirp-classic';
2
2
  import path from 'path';
3
3
  export default function ensureDestinationParent(dest, callback) {
4
4
  const parent = path.dirname(dest);
5
- if (parent === '.' || parent === '/') {
6
- callback();
7
- return;
8
- }
5
+ if (parent === '.' || parent === '/') return callback();
9
6
  mkdirp(parent, callback);
10
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/ensureDestinationParent.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport path from 'path';\n\nimport type { NoParamCallback } from '../types.ts';\n\nexport default function ensureDestinationParent(dest: string, callback: NoParamCallback): undefined {\n const parent = path.dirname(dest);\n if (parent === '.' || parent === '/') {\n callback();\n return;\n }\n mkdirp(parent, callback);\n}\n"],"names":["mkdirp","path","ensureDestinationParent","dest","callback","parent","dirname"],"mappings":"AAAA,OAAOA,YAAY,iBAAiB;AACpC,OAAOC,UAAU,OAAO;AAIxB,eAAe,SAASC,wBAAwBC,IAAY,EAAEC,QAAyB;IACrF,MAAMC,SAASJ,KAAKK,OAAO,CAACH;IAC5B,IAAIE,WAAW,OAAOA,WAAW,KAAK;QACpCD;QACA;IACF;IACAJ,OAAOK,QAAQD;AACjB"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/node-install-release/src/lib/ensureDestinationParent.ts"],"sourcesContent":["import mkdirp from 'mkdirp-classic';\nimport path from 'path';\n\nimport type { NoParamCallback } from '../types.ts';\n\nexport default function ensureDestinationParent(dest: string, callback: NoParamCallback): void {\n const parent = path.dirname(dest);\n if (parent === '.' || parent === '/') return callback();\n mkdirp(parent, callback);\n}\n"],"names":["mkdirp","path","ensureDestinationParent","dest","callback","parent","dirname"],"mappings":"AAAA,OAAOA,YAAY,iBAAiB;AACpC,OAAOC,UAAU,OAAO;AAIxB,eAAe,SAASC,wBAAwBC,IAAY,EAAEC,QAAyB;IACrF,MAAMC,SAASJ,KAAKK,OAAO,CAACH;IAC5B,IAAIE,WAAW,OAAOA,WAAW,KAAK,OAAOD;IAC7CJ,OAAOK,QAAQD;AACjB"}
@@ -3,5 +3,5 @@ interface ExtractOptions {
3
3
  strip?: number;
4
4
  time?: number;
5
5
  }
6
- export default function extract(src: string, dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined;
6
+ export default function extract(src: string, dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): void;
7
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/extract.ts"],"sourcesContent":["import fastExtract from 'fast-extract';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport type { NoParamCallback } from '../types.ts';\n\ninterface ExtractOptions {\n strip?: number;\n time?: number;\n}\n\nexport default function extract(src: string, dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): undefined {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n const extractOptions = { strip: 1, time: 1000, ...options };\n\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, path.dirname(dest)));\n queue.defer(fastExtract.bind(null, src, dest, extractOptions));\n queue.await(callback);\n}\n"],"names":["fastExtract","mkdirp","path","Queue","extract","src","dest","options","callback","extractOptions","strip","time","queue","defer","bind","dirname","await"],"mappings":"AAAA,OAAOA,iBAAiB,eAAe;AACvC,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAS7B,eAAe,SAASC,QAAQC,GAAW,EAAEC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B;IAC9H,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IAEA,MAAME,iBAAiB;QAAEC,OAAO;QAAGC,MAAM;QAAM,GAAGJ,OAAO;IAAC;IAE1D,MAAMK,QAAQ,IAAIT,MAAM;IACxBS,MAAMC,KAAK,CAACZ,OAAOa,IAAI,CAAC,MAAMZ,KAAKa,OAAO,CAACT;IAC3CM,MAAMC,KAAK,CAACb,YAAYc,IAAI,CAAC,MAAMT,KAAKC,MAAMG;IAC9CG,MAAMI,KAAK,CAACR;AACd"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/node-install-release/src/lib/extract.ts"],"sourcesContent":["import fastExtract from 'fast-extract';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport type { NoParamCallback } from '../types.ts';\n\ninterface ExtractOptions {\n strip?: number;\n time?: number;\n}\n\nexport default function extract(src: string, dest: string, options: ExtractOptions | NoParamCallback, callback?: NoParamCallback): void {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n const extractOptions = { strip: 1, time: 1000, ...options };\n\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, path.dirname(dest)));\n queue.defer(fastExtract.bind(null, src, dest, extractOptions));\n queue.await(callback);\n}\n"],"names":["fastExtract","mkdirp","path","Queue","extract","src","dest","options","callback","extractOptions","strip","time","queue","defer","bind","dirname","await"],"mappings":"AAAA,OAAOA,iBAAiB,eAAe;AACvC,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAS7B,eAAe,SAASC,QAAQC,GAAW,EAAEC,IAAY,EAAEC,OAAyC,EAAEC,QAA0B;IAC9H,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IAEA,MAAME,iBAAiB;QAAEC,OAAO;QAAGC,MAAM;QAAM,GAAGJ,OAAO;IAAC;IAE1D,MAAMK,QAAQ,IAAIT,MAAM;IACxBS,MAAMC,KAAK,CAACZ,OAAOa,IAAI,CAAC,MAAMZ,KAAKa,OAAO,CAACT;IAC3CM,MAAMC,KAAK,CAACb,YAAYc,IAAI,CAAC,MAAMT,KAAKC,MAAMG;IAC9CG,MAAMI,KAAK,CAACR;AACd"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/lib/getTarget.ts"],"sourcesContent":["import cpuArch from 'cpu-arch';\nimport { FILE_PLATFORM_MAP, FILE_PLATFORMS } from '../constants.ts';\n\nimport type { InstallOptions, Target } from '../types.ts';\n\nconst archCPU = cpuArch();\n\nexport default function getTarget(options: InstallOptions): Target {\n let platform = options.platform;\n let arch = options.arch;\n if (options.filename) {\n const filePlatform = options.filename.split('-')[0];\n if (FILE_PLATFORMS.indexOf(filePlatform) >= 0) platform = FILE_PLATFORM_MAP[filePlatform] || filePlatform;\n arch = options.filename.split('-')[1] as NodeJS.Architecture;\n }\n if (!platform) platform = process.platform;\n if (!arch) arch = archCPU as NodeJS.Architecture;\n return { platform, arch };\n}\n"],"names":["cpuArch","FILE_PLATFORM_MAP","FILE_PLATFORMS","archCPU","getTarget","options","platform","arch","filename","filePlatform","split","indexOf","process"],"mappings":"AAAA,OAAOA,aAAa,WAAW;AAC/B,SAASC,iBAAiB,EAAEC,cAAc,QAAQ,kBAAkB;AAIpE,MAAMC,UAAUH;AAEhB,eAAe,SAASI,UAAUC,OAAuB;IACvD,IAAIC,WAAWD,QAAQC,QAAQ;IAC/B,IAAIC,OAAOF,QAAQE,IAAI;IACvB,IAAIF,QAAQG,QAAQ,EAAE;QACpB,MAAMC,eAAeJ,QAAQG,QAAQ,CAACE,KAAK,CAAC,IAAI,CAAC,EAAE;QACnD,IAAIR,eAAeS,OAAO,CAACF,iBAAiB,GAAGH,WAAWL,iBAAiB,CAACQ,aAAa,IAAIA;QAC7FF,OAAOF,QAAQG,QAAQ,CAACE,KAAK,CAAC,IAAI,CAAC,EAAE;IACvC;IACA,IAAI,CAACJ,UAAUA,WAAWM,QAAQN,QAAQ;IAC1C,IAAI,CAACC,MAAMA,OAAOJ;IAClB,OAAO;QAAEG;QAAUC;IAAK;AAC1B"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/node-install-release/src/lib/getTarget.ts"],"sourcesContent":["import cpuArch from 'cpu-arch';\nimport { FILE_PLATFORM_MAP, FILE_PLATFORMS } from '../constants.ts';\n\nimport type { InstallOptions, Target } from '../types.ts';\n\nconst archCPU = cpuArch();\n\nexport default function getTarget(options: InstallOptions): Target {\n let platform = options.platform;\n let arch = options.arch;\n if (options.filename) {\n const filePlatform = options.filename.split('-')[0];\n if (FILE_PLATFORMS.indexOf(filePlatform) >= 0) platform = FILE_PLATFORM_MAP[filePlatform] || filePlatform;\n arch = options.filename.split('-')[1] as NodeJS.Architecture;\n }\n if (!platform) platform = process.platform;\n if (!arch) arch = archCPU as NodeJS.Architecture;\n return { platform, arch };\n}\n"],"names":["cpuArch","FILE_PLATFORM_MAP","FILE_PLATFORMS","archCPU","getTarget","options","platform","arch","filename","filePlatform","split","indexOf","process"],"mappings":"AAAA,OAAOA,aAAa,WAAW;AAC/B,SAASC,iBAAiB,EAAEC,cAAc,QAAQ,kBAAkB;AAIpE,MAAMC,UAAUH;AAEhB,eAAe,SAASI,UAAUC,OAAuB;IACvD,IAAIC,WAAWD,QAAQC,QAAQ;IAC/B,IAAIC,OAAOF,QAAQE,IAAI;IACvB,IAAIF,QAAQG,QAAQ,EAAE;QACpB,MAAMC,eAAeJ,QAAQG,QAAQ,CAACE,KAAK,CAAC,IAAI,CAAC,EAAE;QACnD,IAAIR,eAAeS,OAAO,CAACF,iBAAiB,GAAGH,WAAWL,iBAAiB,CAACQ,aAAa,IAAIA;QAC7FF,OAAOF,QAAQG,QAAQ,CAACE,KAAK,CAAC,IAAI,CAAC,EAAE;IACvC;IACA,IAAI,CAACJ,UAAUA,WAAWM,QAAQN,QAAQ;IAC1C,IAAI,CAACC,MAAMA,OAAOJ;IAClB,OAAO;QAAEG;QAAUC;IAAK;AAC1B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/types.ts"],"sourcesContent":["import type { VersionOptions } from 'node-resolve-versions';\n\nexport interface File {\n filename: string;\n starting: string;\n}\n\nexport interface FilePath {\n src: string;\n dest: string;\n optional?: boolean;\n}\n\nexport type StorageLocations = {\n cachePath: string;\n buildPath: string;\n installPath: string;\n};\n\nexport type InstallResult = {\n version: string;\n installPath: string;\n execPath: string;\n platform: NodeJS.Platform;\n};\n\nexport interface InstallOptions extends VersionOptions {\n type?: string;\n compression?: boolean;\n installPath?: string;\n buildPath?: string;\n name?: string;\n storagePath?: string;\n filename?: string;\n platform?: NodeJS.Platform;\n arch?: NodeJS.Architecture;\n cachePath?: string;\n}\n\nexport interface Target {\n platform: NodeJS.Platform;\n arch: NodeJS.Architecture;\n}\n\nexport type ChecksumResult = {\n actual: string;\n expected: string;\n match: boolean;\n};\n\nexport type InstallCallback = (err?: Error, result?: InstallResult) => void;\nexport type NoParamCallback = (err?: Error) => void;\nexport type ChecksumCallback = (err?: Error, checksum?: ChecksumResult) => void;\n"],"names":[],"mappings":"AAoDA,WAAgF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/node-install-release/src/types.ts"],"sourcesContent":["import type { VersionOptions } from 'node-resolve-versions';\n\nexport interface File {\n filename: string;\n starting: string;\n}\n\nexport interface FilePath {\n src: string;\n dest: string;\n optional?: boolean;\n}\n\nexport type StorageLocations = {\n cachePath: string;\n buildPath: string;\n installPath: string;\n};\n\nexport type InstallResult = {\n version: string;\n installPath: string;\n execPath: string;\n platform: NodeJS.Platform;\n};\n\nexport interface InstallOptions extends VersionOptions {\n type?: string;\n compression?: boolean;\n installPath?: string;\n buildPath?: string;\n name?: string;\n storagePath?: string;\n filename?: string;\n platform?: NodeJS.Platform;\n arch?: NodeJS.Architecture;\n cachePath?: string;\n}\n\nexport interface Target {\n platform: NodeJS.Platform;\n arch: NodeJS.Architecture;\n}\n\nexport type ChecksumResult = {\n actual: string;\n expected: string;\n match: boolean;\n};\n\nexport type InstallCallback = (err?: Error, result?: InstallResult) => void;\nexport type NoParamCallback = (err?: Error) => void;\nexport type ChecksumCallback = (err?: Error, checksum?: ChecksumResult) => void;\n"],"names":[],"mappings":"AAoDA,WAAgF"}
@@ -1,2 +1,2 @@
1
1
  import type { InstallCallback, InstallOptions } from '../types.js';
2
- export default function install(versionExpression: string, options: InstallOptions, callback: InstallCallback): undefined;
2
+ export default function install(versionExpression: string, options: InstallOptions, callback: InstallCallback): void;
@@ -29,10 +29,7 @@ export default function install(versionExpression, options, callback) {
29
29
  ...getTarget(options)
30
30
  };
31
31
  getVersions(versionExpression, options, (err, versions)=>{
32
- if (err) {
33
- callback(err);
34
- return;
35
- }
32
+ if (err) return callback(err);
36
33
  if (!versions.length) {
37
34
  callback(new Error(`Could not resolve versions for: ${versionExpression}`));
38
35
  return;
@@ -45,10 +42,7 @@ export default function install(versionExpression, options, callback) {
45
42
  const result = createResult(options, version);
46
43
  // Fast path: with atomic installs, folder exists = complete installation
47
44
  fs.stat(result.installPath, (err)=>{
48
- if (!err) {
49
- callback(null, result);
50
- return;
51
- }
45
+ if (!err) return callback(null, result);
52
46
  // Folder doesn't exist - do atomic install with temp folder
53
47
  const tempPath = tempSuffix(result.installPath);
54
48
  const queue = new Queue(1);
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-install-release/src/workers/install.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport isVersion from 'is-version';\nimport mkdirp from 'mkdirp-classic';\nimport { getDist } from 'node-filename-to-dist-paths';\nimport resolveVersions from 'node-resolve-versions';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\n\nimport { DEFAULT_STORAGE_PATHS } from '../constants.ts';\n\nimport createResult from '../createResult.ts';\nimport createStoragePaths from '../createStoragePaths.ts';\nimport installNode from '../installNode/index.ts';\n\nimport installNPM from '../installNPM/index.ts';\nimport checkMissing from '../lib/checkMissing.ts';\nimport ensureDestinationParent from '../lib/ensureDestinationParent.ts';\nimport getTarget from '../lib/getTarget.ts';\n\nimport type { InstallCallback, InstallOptions } from '../types.ts';\n\ntype GetVersionsCallback = (error?: Error, results?: string[]) => undefined;\nfunction getVersions(versionExpression: string, options: InstallOptions, callback: GetVersionsCallback): undefined {\n // short circuit\n isVersion(versionExpression) ? callback(null, [versionExpression]) : resolveVersions(versionExpression, options, callback);\n}\n\nexport default function install(versionExpression: string, options: InstallOptions, callback: InstallCallback): undefined {\n const storagePaths = options.storagePath ? createStoragePaths(options.storagePath) : DEFAULT_STORAGE_PATHS;\n options = { ...storagePaths, ...options, ...getTarget(options) };\n getVersions(versionExpression, options, (err?: Error, versions?: string[]): undefined => {\n if (err) {\n callback(err);\n return;\n }\n if (!versions.length) {\n callback(new Error(`Could not resolve versions for: ${versionExpression}`));\n return;\n }\n if (versions.length !== 1) {\n callback(new Error(`Version ${versionExpression} resolved to multiple versions: ${versions.map((x) => x)}. Expecting one.`));\n return;\n }\n\n const version = versions[0];\n const result = createResult(options, version);\n\n // Fast path: with atomic installs, folder exists = complete installation\n fs.stat(result.installPath, (err) => {\n if (!err) {\n callback(null, result);\n return;\n }\n\n // Folder doesn't exist - do atomic install with temp folder\n const tempPath = tempSuffix(result.installPath);\n\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, options.cachePath));\n queue.defer(ensureDestinationParent.bind(null, tempPath));\n\n // Install node to temp folder\n queue.defer(installNode.bind(null, version, tempPath, options));\n\n // Check and install npm to temp folder\n // Skip npm download only if bundled npm is modern (>= 3)\n queue.defer((cb) => {\n checkMissing(tempPath, options, (err, npmMissing): undefined => {\n if (err) {\n cb(err);\n return;\n }\n if (!~npmMissing.indexOf('npm')) {\n // npm is present (bundled with node) - check if it's modern enough to keep\n const dist = getDist(version);\n const bundledNpmMajor = dist && dist.npm ? +dist.npm.split('.')[0] : 0;\n if (bundledNpmMajor >= 3) {\n cb(); // npm >= 3 bundled, skip download\n return;\n }\n // old npm (<3) is buggy - delete it so installNPM can override\n const platform = options.platform;\n const libPath = platform === 'win32' ? tempPath : path.join(tempPath, 'lib');\n const npmPath = path.join(libPath, 'node_modules', 'npm');\n safeRm(npmPath, () => installNPM(version, tempPath, options, cb));\n return;\n }\n installNPM(version, tempPath, options, cb);\n });\n });\n\n // Atomic rename: move temp folder to final destination\n queue.defer((cb) => {\n fs.rename(tempPath, result.installPath, (err) => {\n if (!err) return cb();\n // Race condition: another process may have already created dest\n if (err.code === 'EEXIST' || err.code === 'ENOTEMPTY' || err.code === 'EPERM') {\n // Another process won the race - clean up temp and succeed\n safeRm(tempPath, () => cb());\n return;\n }\n cb(err);\n });\n });\n\n queue.await((err) => {\n if (err) {\n // Clean up temp folder on error\n safeRm(tempPath, () => callback(err));\n return;\n }\n callback(null, result);\n });\n });\n });\n}\n"],"names":["fs","safeRm","isVersion","mkdirp","getDist","resolveVersions","path","Queue","tempSuffix","DEFAULT_STORAGE_PATHS","createResult","createStoragePaths","installNode","installNPM","checkMissing","ensureDestinationParent","getTarget","getVersions","versionExpression","options","callback","install","storagePaths","storagePath","err","versions","length","Error","map","x","version","result","stat","installPath","tempPath","queue","defer","bind","cachePath","cb","npmMissing","indexOf","dist","bundledNpmMajor","npm","split","platform","libPath","join","npmPath","rename","code","await"],"mappings":"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"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/_later/node-install-release/src/workers/install.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport isVersion from 'is-version';\nimport mkdirp from 'mkdirp-classic';\nimport { getDist } from 'node-filename-to-dist-paths';\nimport resolveVersions from 'node-resolve-versions';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\n\nimport { DEFAULT_STORAGE_PATHS } from '../constants.ts';\n\nimport createResult from '../createResult.ts';\nimport createStoragePaths from '../createStoragePaths.ts';\nimport installNode from '../installNode/index.ts';\n\nimport installNPM from '../installNPM/index.ts';\nimport checkMissing from '../lib/checkMissing.ts';\nimport ensureDestinationParent from '../lib/ensureDestinationParent.ts';\nimport getTarget from '../lib/getTarget.ts';\n\nimport type { InstallCallback, InstallOptions } from '../types.ts';\n\ntype GetVersionsCallback = (error?: Error, results?: string[]) => void;\nfunction getVersions(versionExpression: string, options: InstallOptions, callback: GetVersionsCallback) {\n // short circuit\n isVersion(versionExpression) ? callback(null, [versionExpression]) : resolveVersions(versionExpression, options, callback);\n}\n\nexport default function install(versionExpression: string, options: InstallOptions, callback: InstallCallback): void {\n const storagePaths = options.storagePath ? createStoragePaths(options.storagePath) : DEFAULT_STORAGE_PATHS;\n options = { ...storagePaths, ...options, ...getTarget(options) };\n getVersions(versionExpression, options, (err?: Error, versions?: string[]): void => {\n if (err) return callback(err);\n if (!versions.length) {\n callback(new Error(`Could not resolve versions for: ${versionExpression}`));\n return;\n }\n if (versions.length !== 1) {\n callback(new Error(`Version ${versionExpression} resolved to multiple versions: ${versions.map((x) => x)}. Expecting one.`));\n return;\n }\n\n const version = versions[0];\n const result = createResult(options, version);\n\n // Fast path: with atomic installs, folder exists = complete installation\n fs.stat(result.installPath, (err) => {\n if (!err) return callback(null, result);\n\n // Folder doesn't exist - do atomic install with temp folder\n const tempPath = tempSuffix(result.installPath);\n\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, options.cachePath));\n queue.defer(ensureDestinationParent.bind(null, tempPath));\n\n // Install node to temp folder\n queue.defer(installNode.bind(null, version, tempPath, options));\n\n // Check and install npm to temp folder\n // Skip npm download only if bundled npm is modern (>= 3)\n queue.defer((cb) => {\n checkMissing(tempPath, options, (err, npmMissing): void => {\n if (err) {\n cb(err);\n return;\n }\n if (!~npmMissing.indexOf('npm')) {\n // npm is present (bundled with node) - check if it's modern enough to keep\n const dist = getDist(version);\n const bundledNpmMajor = dist && dist.npm ? +dist.npm.split('.')[0] : 0;\n if (bundledNpmMajor >= 3) {\n cb(); // npm >= 3 bundled, skip download\n return;\n }\n // old npm (<3) is buggy - delete it so installNPM can override\n const platform = options.platform;\n const libPath = platform === 'win32' ? tempPath : path.join(tempPath, 'lib');\n const npmPath = path.join(libPath, 'node_modules', 'npm');\n safeRm(npmPath, () => installNPM(version, tempPath, options, cb));\n return;\n }\n installNPM(version, tempPath, options, cb);\n });\n });\n\n // Atomic rename: move temp folder to final destination\n queue.defer((cb) => {\n fs.rename(tempPath, result.installPath, (err) => {\n if (!err) return cb();\n // Race condition: another process may have already created dest\n if (err.code === 'EEXIST' || err.code === 'ENOTEMPTY' || err.code === 'EPERM') {\n // Another process won the race - clean up temp and succeed\n safeRm(tempPath, () => cb());\n return;\n }\n cb(err);\n });\n });\n\n queue.await((err) => {\n if (err) {\n // Clean up temp folder on error\n safeRm(tempPath, () => callback(err));\n return;\n }\n callback(null, result);\n });\n });\n });\n}\n"],"names":["fs","safeRm","isVersion","mkdirp","getDist","resolveVersions","path","Queue","tempSuffix","DEFAULT_STORAGE_PATHS","createResult","createStoragePaths","installNode","installNPM","checkMissing","ensureDestinationParent","getTarget","getVersions","versionExpression","options","callback","install","storagePaths","storagePath","err","versions","length","Error","map","x","version","result","stat","installPath","tempPath","queue","defer","bind","cachePath","cb","npmMissing","indexOf","dist","bundledNpmMajor","npm","split","platform","libPath","join","npmPath","rename","code","await"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-install-release",
3
- "version": "1.16.5",
3
+ "version": "1.18.0",
4
4
  "description": "Cross-platform solution for installing releases of Node.js",
5
5
  "keywords": [
6
6
  "node",
@@ -43,36 +43,35 @@
43
43
  "version": "tsds version"
44
44
  },
45
45
  "dependencies": {
46
- "cpu-arch": "^1.0.8",
47
- "cross-spawn-cb": "^2.4.14",
48
- "exit-compat": "^1.0.4",
49
- "fast-extract": "^1.8.16",
50
- "fs-copy-compat": "^0.1.5",
51
- "fs-remove-compat": "^0.2.4",
52
- "get-remote": "^2.3.4",
46
+ "cpu-arch": "^1.0.1",
47
+ "cross-spawn-cb": "^3.0.0",
48
+ "exit-compat": "^1.0.0",
49
+ "fast-extract": "^1.0.1",
50
+ "fs-copy-compat": "^1.0.0",
51
+ "fs-remove-compat": "^1.0.0",
52
+ "get-file-compat": "^2.0.0",
53
53
  "getopts-compat": "^2.2.6",
54
54
  "homedir-polyfill": "^1.0.3",
55
55
  "is-version": "^1.0.9",
56
56
  "lodash.keys": "^4.2.0",
57
- "mkdirp-classic": "^0.5.3",
57
+ "mkdirp-classic": "^0.5.2",
58
58
  "node-filename-to-dist-paths": "^1.3.15",
59
59
  "node-resolve-versions": "^1.3.13",
60
- "on-one": "^1.0.10",
61
- "queue-cb": "^1.6.3",
60
+ "on-one": "^1.0.0",
61
+ "queue-cb": "^1.0.0",
62
62
  "temp-suffix": "^1.0.10"
63
63
  },
64
64
  "devDependencies": {
65
- "@types/mocha": "^10.0.10",
66
- "@types/node": "^25.0.2",
65
+ "@types/mocha": "*",
66
+ "@types/node": "*",
67
67
  "cr": "^0.1.0",
68
- "lodash.find": "^4.6.0",
69
68
  "lodash.values": "^4.3.0",
70
69
  "node-version-compare": "^1.0.3",
71
- "node-version-use": "^2.1.7",
72
- "node-version-utils": "^1.3.17",
73
- "pinkie-promise": "^2.0.1",
74
- "ts-dev-stack": "^1.21.3",
75
- "tsds-config": "^0.2.2"
70
+ "node-version-use": "*",
71
+ "node-version-utils": "^1.0.2",
72
+ "pinkie-promise": "*",
73
+ "ts-dev-stack": "*",
74
+ "tsds-config": "*"
76
75
  },
77
76
  "engines": {
78
77
  "node": ">=0.8"