install-module-linked-compat 0.1.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 (97) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/bin/cli.js +5 -0
  4. package/dist/cjs/cli.d.cts +3 -0
  5. package/dist/cjs/cli.d.ts +3 -0
  6. package/dist/cjs/cli.js +82 -0
  7. package/dist/cjs/cli.js.map +1 -0
  8. package/dist/cjs/compat.d.cts +1 -0
  9. package/dist/cjs/compat.d.ts +1 -0
  10. package/dist/cjs/compat.js +20 -0
  11. package/dist/cjs/compat.js.map +1 -0
  12. package/dist/cjs/constants.d.cts +1 -0
  13. package/dist/cjs/constants.d.ts +1 -0
  14. package/dist/cjs/constants.js +19 -0
  15. package/dist/cjs/constants.js.map +1 -0
  16. package/dist/cjs/index.d.cts +9 -0
  17. package/dist/cjs/index.d.ts +9 -0
  18. package/dist/cjs/index.js +51 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/lib/cache.d.cts +2 -0
  21. package/dist/cjs/lib/cache.d.ts +2 -0
  22. package/dist/cjs/lib/cache.js +182 -0
  23. package/dist/cjs/lib/cache.js.map +1 -0
  24. package/dist/cjs/lib/clear.d.cts +2 -0
  25. package/dist/cjs/lib/clear.d.ts +2 -0
  26. package/dist/cjs/lib/clear.js +17 -0
  27. package/dist/cjs/lib/clear.js.map +1 -0
  28. package/dist/cjs/lib/getSpecifier.d.cts +2 -0
  29. package/dist/cjs/lib/getSpecifier.d.ts +2 -0
  30. package/dist/cjs/lib/getSpecifier.js +34 -0
  31. package/dist/cjs/lib/getSpecifier.js.map +1 -0
  32. package/dist/cjs/lib/install.d.cts +2 -0
  33. package/dist/cjs/lib/install.d.ts +2 -0
  34. package/dist/cjs/lib/install.js +69 -0
  35. package/dist/cjs/lib/install.js.map +1 -0
  36. package/dist/cjs/lib/parseInstallString.d.cts +4 -0
  37. package/dist/cjs/lib/parseInstallString.d.ts +4 -0
  38. package/dist/cjs/lib/parseInstallString.js +51 -0
  39. package/dist/cjs/lib/parseInstallString.js.map +1 -0
  40. package/dist/cjs/lib/renameWithFallback.d.cts +1 -0
  41. package/dist/cjs/lib/renameWithFallback.d.ts +1 -0
  42. package/dist/cjs/lib/renameWithFallback.js +32 -0
  43. package/dist/cjs/lib/renameWithFallback.js.map +1 -0
  44. package/dist/cjs/package.json +1 -0
  45. package/dist/cjs/types.d.cts +9 -0
  46. package/dist/cjs/types.d.ts +9 -0
  47. package/dist/cjs/types.js +5 -0
  48. package/dist/cjs/types.js.map +1 -0
  49. package/dist/cjs/workers/async.d.cts +2 -0
  50. package/dist/cjs/workers/async.d.ts +2 -0
  51. package/dist/cjs/workers/async.js +108 -0
  52. package/dist/cjs/workers/async.js.map +1 -0
  53. package/dist/cjs/workers/sync.d.cts +1 -0
  54. package/dist/cjs/workers/sync.d.ts +1 -0
  55. package/dist/cjs/workers/sync.js +30 -0
  56. package/dist/cjs/workers/sync.js.map +1 -0
  57. package/dist/esm/cli.d.ts +3 -0
  58. package/dist/esm/cli.js +66 -0
  59. package/dist/esm/cli.js.map +1 -0
  60. package/dist/esm/compat.d.ts +1 -0
  61. package/dist/esm/compat.js +4 -0
  62. package/dist/esm/compat.js.map +1 -0
  63. package/dist/esm/constants.d.ts +1 -0
  64. package/dist/esm/constants.js +3 -0
  65. package/dist/esm/constants.js.map +1 -0
  66. package/dist/esm/index.d.ts +9 -0
  67. package/dist/esm/index.js +14 -0
  68. package/dist/esm/index.js.map +1 -0
  69. package/dist/esm/lib/cache.d.ts +2 -0
  70. package/dist/esm/lib/cache.js +93 -0
  71. package/dist/esm/lib/cache.js.map +1 -0
  72. package/dist/esm/lib/clear.d.ts +2 -0
  73. package/dist/esm/lib/clear.js +6 -0
  74. package/dist/esm/lib/clear.js.map +1 -0
  75. package/dist/esm/lib/getSpecifier.d.ts +2 -0
  76. package/dist/esm/lib/getSpecifier.js +18 -0
  77. package/dist/esm/lib/getSpecifier.js.map +1 -0
  78. package/dist/esm/lib/install.d.ts +2 -0
  79. package/dist/esm/lib/install.js +23 -0
  80. package/dist/esm/lib/install.js.map +1 -0
  81. package/dist/esm/lib/parseInstallString.d.ts +4 -0
  82. package/dist/esm/lib/parseInstallString.js +14 -0
  83. package/dist/esm/lib/parseInstallString.js.map +1 -0
  84. package/dist/esm/lib/renameWithFallback.d.ts +1 -0
  85. package/dist/esm/lib/renameWithFallback.js +16 -0
  86. package/dist/esm/lib/renameWithFallback.js.map +1 -0
  87. package/dist/esm/package.json +1 -0
  88. package/dist/esm/types.d.ts +9 -0
  89. package/dist/esm/types.js +1 -0
  90. package/dist/esm/types.js.map +1 -0
  91. package/dist/esm/workers/async.d.ts +2 -0
  92. package/dist/esm/workers/async.js +50 -0
  93. package/dist/esm/workers/async.js.map +1 -0
  94. package/dist/esm/workers/sync.d.ts +1 -0
  95. package/dist/esm/workers/sync.js +14 -0
  96. package/dist/esm/workers/sync.js.map +1 -0
  97. package/package.json +83 -0
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return install;
9
+ }
10
+ });
11
+ var _crossspawncb = /*#__PURE__*/ _interop_require_default(require("cross-spawn-cb"));
12
+ var _nodeversioncalllocal = require("node-version-call-local");
13
+ var _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
+ var _url = /*#__PURE__*/ _interop_require_default(require("url"));
15
+ function _array_like_to_array(arr, len) {
16
+ if (len == null || len > arr.length) len = arr.length;
17
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
18
+ return arr2;
19
+ }
20
+ function _array_without_holes(arr) {
21
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
22
+ }
23
+ function _interop_require_default(obj) {
24
+ return obj && obj.__esModule ? obj : {
25
+ default: obj
26
+ };
27
+ }
28
+ function _iterable_to_array(iter) {
29
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
30
+ return Array.from(iter);
31
+ }
32
+ }
33
+ function _non_iterable_spread() {
34
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
+ }
36
+ function _to_consumable_array(arr) {
37
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
38
+ }
39
+ function _unsupported_iterable_to_array(o, minLen) {
40
+ if (!o) return;
41
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
42
+ var n = Object.prototype.toString.call(o).slice(8, -1);
43
+ if (n === "Object" && o.constructor) n = o.constructor.name;
44
+ if (n === "Map" || n === "Set") return Array.from(n);
45
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
46
+ }
47
+ var __dirname = _path.default.dirname(typeof __filename !== 'undefined' ? __filename : _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()));
48
+ var major = +process.versions.node.split('.')[0];
49
+ var workerPath = _path.default.join(__dirname, '..', '..', 'cjs', 'lib', 'install.js');
50
+ function run(specifier, dest, callback) {
51
+ (0, _crossspawncb.default)('npm', [
52
+ 'install',
53
+ specifier
54
+ ], {
55
+ cwd: dest
56
+ }, function(err) {
57
+ var _path1;
58
+ err ? callback(err) : callback(undefined, (_path1 = _path.default).join.apply(_path1, [
59
+ dest
60
+ ].concat(_to_consumable_array(specifier.split('/')))));
61
+ });
62
+ }
63
+ var worker = major > 0 ? run : (0, _nodeversioncalllocal.bind)('>0.12', workerPath, {
64
+ callbacks: true
65
+ });
66
+ function install(specifier, dest, callback) {
67
+ worker(specifier, dest, callback);
68
+ }
69
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked-compat/src/lib/install.ts"],"sourcesContent":["import spawn from 'cross-spawn-cb';\nimport { bind } from 'node-version-call-local';\nimport path from 'path';\nimport url from 'url';\nimport type { InstallCallback } from '../types.ts';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst major = +process.versions.node.split('.')[0];\nconst workerPath = path.join(__dirname, '..', '..', 'cjs', 'lib', 'install.js');\n\nfunction run(specifier: string, dest: string, callback: InstallCallback): void {\n spawn('npm', ['install', specifier], { cwd: dest }, (err) => {\n err ? callback(err) : callback(undefined, path.join(dest, ...specifier.split('/')));\n });\n}\n\ntype installFunction = (specifier: string, dest: string, callback: InstallCallback) => void;\n\nconst worker = (major > 0 ? run : bind('>0.12', workerPath, { callbacks: true })) as installFunction;\n\nexport default function install(specifier: string, dest: string, callback: InstallCallback): void {\n worker(specifier, dest, callback);\n}\n"],"names":["install","__dirname","path","dirname","__filename","url","fileURLToPath","major","process","versions","node","split","workerPath","join","run","specifier","dest","callback","spawn","cwd","err","undefined","worker","bind","callbacks"],"mappings":";;;;+BAoBA;;;eAAwBA;;;mEApBN;oCACG;2DACJ;0DACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGhB,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAClG,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,aAAaV,aAAI,CAACW,IAAI,CAACZ,WAAW,MAAM,MAAM,OAAO,OAAO;AAElE,SAASa,IAAIC,SAAiB,EAAEC,IAAY,EAAEC,QAAyB;IACrEC,IAAAA,qBAAK,EAAC,OAAO;QAAC;QAAWH;KAAU,EAAE;QAAEI,KAAKH;IAAK,GAAG,SAACI;YACTlB;QAA1CkB,MAAMH,SAASG,OAAOH,SAASI,WAAWnB,CAAAA,SAAAA,aAAI,EAACW,IAAI,OAATX,QAAAA;YAAUc;SAA8B,CAAxCd,OAAgB,qBAAGa,UAAUJ,KAAK,CAAC;IAC/E;AACF;AAIA,IAAMW,SAAUf,QAAQ,IAAIO,MAAMS,IAAAA,0BAAI,EAAC,SAASX,YAAY;IAAEY,WAAW;AAAK;AAE/D,SAASxB,QAAQe,SAAiB,EAAEC,IAAY,EAAEC,QAAyB;IACxFK,OAAOP,WAAWC,MAAMC;AAC1B"}
@@ -0,0 +1,4 @@
1
+ export default function parseInstallString(installString: string): {
2
+ name: string;
3
+ version: string | undefined;
4
+ };
@@ -0,0 +1,4 @@
1
+ export default function parseInstallString(installString: string): {
2
+ name: string;
3
+ version: string | undefined;
4
+ };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return parseInstallString;
9
+ }
10
+ });
11
+ function _array_like_to_array(arr, len) {
12
+ if (len == null || len > arr.length) len = arr.length;
13
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
14
+ return arr2;
15
+ }
16
+ function _array_without_holes(arr) {
17
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
18
+ }
19
+ function _iterable_to_array(iter) {
20
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
21
+ return Array.from(iter);
22
+ }
23
+ }
24
+ function _non_iterable_spread() {
25
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
26
+ }
27
+ function _to_consumable_array(arr) {
28
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
29
+ }
30
+ function _unsupported_iterable_to_array(o, minLen) {
31
+ if (!o) return;
32
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
33
+ var n = Object.prototype.toString.call(o).slice(8, -1);
34
+ if (n === "Object" && o.constructor) n = o.constructor.name;
35
+ if (n === "Map" || n === "Set") return Array.from(n);
36
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
37
+ }
38
+ function parseInstallString(installString) {
39
+ var _installParts_pop;
40
+ var installParts = installString.split('/');
41
+ var nameVersionParts = ((_installParts_pop = installParts.pop()) !== null && _installParts_pop !== void 0 ? _installParts_pop : '').split('@');
42
+ var version = nameVersionParts.length > 1 ? nameVersionParts.pop() : undefined;
43
+ var name = _to_consumable_array(installParts).concat([
44
+ nameVersionParts.join('@')
45
+ ]).join('/');
46
+ return {
47
+ name: name,
48
+ version: version
49
+ };
50
+ }
51
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked-compat/src/lib/parseInstallString.ts"],"sourcesContent":["export default function parseInstallString(installString: string) {\n const installParts = installString.split('/');\n const nameVersionParts = (installParts.pop() ?? '').split('@');\n const version = nameVersionParts.length > 1 ? nameVersionParts.pop() : undefined;\n const name = [...installParts, nameVersionParts.join('@')].join('/');\n return {\n name,\n version,\n };\n}\n"],"names":["parseInstallString","installString","installParts","split","nameVersionParts","pop","version","length","undefined","name","join"],"mappings":";;;;+BAAA;;;eAAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAT,SAASA,mBAAmBC,aAAqB;QAEpCC;IAD1B,IAAMA,eAAeD,cAAcE,KAAK,CAAC;IACzC,IAAMC,mBAAmB,EAACF,oBAAAA,aAAaG,GAAG,gBAAhBH,+BAAAA,oBAAsB,IAAIC,KAAK,CAAC;IAC1D,IAAMG,UAAUF,iBAAiBG,MAAM,GAAG,IAAIH,iBAAiBC,GAAG,KAAKG;IACvE,IAAMC,OAAO,AAAC,qBAAGP,qBAAJ;QAAkBE,iBAAiBM,IAAI,CAAC;KAAK,EAACA,IAAI,CAAC;IAChE,OAAO;QACLD,MAAAA;QACAH,SAAAA;IACF;AACF"}
@@ -0,0 +1 @@
1
+ export default function renameWithFallback(src: string, dest: string, callback: (err?: Error | null) => void): void;
@@ -0,0 +1 @@
1
+ export default function renameWithFallback(src: string, dest: string, callback: (err?: Error | null) => void): void;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return renameWithFallback;
9
+ }
10
+ });
11
+ var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function renameWithFallback(src, dest, callback) {
18
+ _fs.default.rename(src, dest, function(err) {
19
+ if (!err) return callback();
20
+ // Another process may have already created dest - check if it exists
21
+ // On Windows, concurrent renames to the same destination throw EPERM
22
+ if (err.code === 'EEXIST' || err.code === 'ENOTEMPTY' || err.code === 'EPERM') {
23
+ _fs.default.stat(dest, function(statErr) {
24
+ if (!statErr) return callback(); // dest exists, race was won by another process
25
+ callback(err); // dest doesn't exist, actual error
26
+ });
27
+ return;
28
+ }
29
+ callback(err);
30
+ });
31
+ }
32
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked-compat/src/lib/renameWithFallback.ts"],"sourcesContent":["import fs from 'fs';\n\nexport default function renameWithFallback(src: string, dest: string, callback: (err?: Error | null) => void): void {\n fs.rename(src, dest, (err) => {\n if (!err) return callback();\n\n // Another process may have already created dest - check if it exists\n // On Windows, concurrent renames to the same destination throw EPERM\n if (err.code === 'EEXIST' || err.code === 'ENOTEMPTY' || err.code === 'EPERM') {\n fs.stat(dest, (statErr) => {\n if (!statErr) return callback(); // dest exists, race was won by another process\n callback(err); // dest doesn't exist, actual error\n });\n return;\n }\n\n callback(err);\n });\n}\n"],"names":["renameWithFallback","src","dest","callback","fs","rename","err","code","stat","statErr"],"mappings":";;;;+BAEA;;;eAAwBA;;;yDAFT;;;;;;AAEA,SAASA,mBAAmBC,GAAW,EAAEC,IAAY,EAAEC,QAAsC;IAC1GC,WAAE,CAACC,MAAM,CAACJ,KAAKC,MAAM,SAACI;QACpB,IAAI,CAACA,KAAK,OAAOH;QAEjB,qEAAqE;QACrE,qEAAqE;QACrE,IAAIG,IAAIC,IAAI,KAAK,YAAYD,IAAIC,IAAI,KAAK,eAAeD,IAAIC,IAAI,KAAK,SAAS;YAC7EH,WAAE,CAACI,IAAI,CAACN,MAAM,SAACO;gBACb,IAAI,CAACA,SAAS,OAAON,YAAY,+CAA+C;gBAChFA,SAASG,MAAM,mCAAmC;YACpD;YACA;QACF;QAEAH,SAASG;IACX;AACF"}
@@ -0,0 +1 @@
1
+ { "type": "commonjs" }
@@ -0,0 +1,9 @@
1
+ export interface CleanOptions {
2
+ slient?: boolean;
3
+ }
4
+ export type GetScopedSpecifiedCallback = (err?: Error | null, installSpecifier?: string) => void;
5
+ export type EnsureCachedCallback = (err?: Error | null, cachedAt?: string) => void;
6
+ export type InstallCallback = (err?: Error | null, installedAt?: string) => void;
7
+ export interface InstallOptions {
8
+ cachePath?: string;
9
+ }
@@ -0,0 +1,9 @@
1
+ export interface CleanOptions {
2
+ slient?: boolean;
3
+ }
4
+ export type GetScopedSpecifiedCallback = (err?: Error | null, installSpecifier?: string) => void;
5
+ export type EnsureCachedCallback = (err?: Error | null, cachedAt?: string) => void;
6
+ export type InstallCallback = (err?: Error | null, installedAt?: string) => void;
7
+ export interface InstallOptions {
8
+ cachePath?: string;
9
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import type { InstallCallback, InstallOptions } from '../types.js';
2
+ export default function installModule(installString: string, nodeModulesPath: string, options: InstallOptions, callback: InstallCallback): void;
@@ -0,0 +1,2 @@
1
+ import type { InstallCallback, InstallOptions } from '../types.js';
2
+ export default function installModule(installString: string, nodeModulesPath: string, options: InstallOptions, callback: InstallCallback): void;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return installModule;
9
+ }
10
+ });
11
+ var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ var _fsremovecompat = require("fs-remove-compat");
13
+ var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
14
+ var _path = /*#__PURE__*/ _interop_require_default(require("path"));
15
+ var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
16
+ var _tempsuffix = /*#__PURE__*/ _interop_require_default(require("temp-suffix"));
17
+ var _constantsts = require("../constants.js");
18
+ var _cachets = /*#__PURE__*/ _interop_require_default(require("../lib/cache.js"));
19
+ var _parseInstallStringts = /*#__PURE__*/ _interop_require_default(require("../lib/parseInstallString.js"));
20
+ function _array_like_to_array(arr, len) {
21
+ if (len == null || len > arr.length) len = arr.length;
22
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
23
+ return arr2;
24
+ }
25
+ function _array_without_holes(arr) {
26
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
27
+ }
28
+ function _interop_require_default(obj) {
29
+ return obj && obj.__esModule ? obj : {
30
+ default: obj
31
+ };
32
+ }
33
+ function _iterable_to_array(iter) {
34
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
35
+ return Array.from(iter);
36
+ }
37
+ }
38
+ function _non_iterable_spread() {
39
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
40
+ }
41
+ function _to_consumable_array(arr) {
42
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
43
+ }
44
+ function _unsupported_iterable_to_array(o, minLen) {
45
+ if (!o) return;
46
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
47
+ var n = Object.prototype.toString.call(o).slice(8, -1);
48
+ if (n === "Object" && o.constructor) n = o.constructor.name;
49
+ if (n === "Map" || n === "Set") return Array.from(n);
50
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
51
+ }
52
+ var _process_env_OSTYPE;
53
+ var isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test((_process_env_OSTYPE = process.env.OSTYPE) !== null && _process_env_OSTYPE !== void 0 ? _process_env_OSTYPE : '');
54
+ var symlinkType = isWindows ? 'junction' : 'dir';
55
+ function installModule(installString, nodeModulesPath, options, callback) {
56
+ var _path1;
57
+ var cachePath = options.cachePath || _constantsts.DEFAULT_CACHE_PATH;
58
+ var name = (0, _parseInstallStringts.default)(installString).name;
59
+ var dest = (_path1 = _path.default).join.apply(_path1, [
60
+ nodeModulesPath
61
+ ].concat(_to_consumable_array(name.split('/'))));
62
+ _fs.default.stat(dest, function(err) {
63
+ if (!err) return callback(undefined, dest); // already installed
64
+ (0, _cachets.default)(installString, cachePath, function(err, cachedAt) {
65
+ if (err) {
66
+ console.log("Could not install: ".concat(installString, ". Message: ").concat(err.message));
67
+ return callback(err);
68
+ }
69
+ // Use temp symlink + atomic rename to avoid cross-process race conditions
70
+ var tempDest = (0, _tempsuffix.default)(dest);
71
+ var queue = new _queuecb.default(1);
72
+ queue.defer(function(cb) {
73
+ return (0, _mkdirpclassic.default)(_path.default.dirname(dest), function(err) {
74
+ return cb(err);
75
+ });
76
+ });
77
+ // biome-ignore lint/style/noNonNullAssertion: cache always sets cachedAt when err is null
78
+ queue.defer(function(cb) {
79
+ return _fs.default.symlink(cachedAt, tempDest, symlinkType, function(err) {
80
+ return cb(err);
81
+ });
82
+ });
83
+ queue.defer(function(cb) {
84
+ _fs.default.rename(tempDest, dest, function(err) {
85
+ var _err_code;
86
+ // If rename fails because dest exists, another process won - that's ok
87
+ if (err && [
88
+ 'EEXIST',
89
+ 'ENOTEMPTY',
90
+ 'EPERM'
91
+ ].indexOf((_err_code = err.code) !== null && _err_code !== void 0 ? _err_code : '') >= 0) {
92
+ (0, _fsremovecompat.safeRm)(tempDest, function() {
93
+ return cb();
94
+ });
95
+ return;
96
+ }
97
+ cb(err);
98
+ });
99
+ });
100
+ queue.await(function(err) {
101
+ err ? (0, _fsremovecompat.safeRm)(tempDest, function() {
102
+ return callback(err);
103
+ }) : callback(undefined, dest);
104
+ });
105
+ });
106
+ });
107
+ }
108
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked-compat/src/workers/async.ts"],"sourcesContent":["import fs from 'fs';\nimport { safeRm } from 'fs-remove-compat';\nimport mkdirp from 'mkdirp-classic';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport tempSuffix from 'temp-suffix';\nimport { DEFAULT_CACHE_PATH } from '../constants.ts';\nimport cache from '../lib/cache.ts';\nimport parseInstallString from '../lib/parseInstallString.ts';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE ?? '');\nconst symlinkType = isWindows ? 'junction' : 'dir';\n\nimport type { InstallCallback, InstallOptions } from '../types.ts';\n\nexport default function installModule(installString: string, nodeModulesPath: string, options: InstallOptions, callback: InstallCallback): void {\n const cachePath = options.cachePath || DEFAULT_CACHE_PATH;\n const { name } = parseInstallString(installString);\n const dest = path.join(nodeModulesPath, ...name.split('/'));\n\n fs.stat(dest, (err) => {\n if (!err) return callback(undefined, dest); // already installed\n\n cache(installString, cachePath, (err, cachedAt) => {\n if (err) {\n console.log(`Could not install: ${installString}. Message: ${err.message}`);\n return callback(err);\n }\n\n // Use temp symlink + atomic rename to avoid cross-process race conditions\n const tempDest = tempSuffix(dest);\n const queue = new Queue(1);\n queue.defer((cb) => mkdirp(path.dirname(dest), (err) => cb(err)));\n // biome-ignore lint/style/noNonNullAssertion: cache always sets cachedAt when err is null\n queue.defer((cb) => fs.symlink(cachedAt!, tempDest, symlinkType, (err) => cb(err)));\n queue.defer((cb) => {\n fs.rename(tempDest, dest, (err) => {\n // If rename fails because dest exists, another process won - that's ok\n if (err && ['EEXIST', 'ENOTEMPTY', 'EPERM'].indexOf(err.code ?? '') >= 0) {\n safeRm(tempDest, () => cb());\n return;\n }\n cb(err);\n });\n });\n queue.await((err) => {\n err ? safeRm(tempDest, () => callback(err)) : callback(undefined, dest);\n });\n });\n });\n}\n"],"names":["installModule","process","isWindows","platform","test","env","OSTYPE","symlinkType","installString","nodeModulesPath","options","callback","path","cachePath","DEFAULT_CACHE_PATH","name","parseInstallString","dest","join","split","fs","stat","err","undefined","cache","cachedAt","console","log","message","tempDest","tempSuffix","queue","Queue","defer","cb","mkdirp","dirname","symlink","rename","indexOf","code","safeRm","await"],"mappings":";;;;+BAeA;;;eAAwBA;;;yDAfT;8BACQ;oEACJ;2DACF;8DACC;iEACK;2BACY;8DACjB;2EACa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE0CC;AAAzE,IAAMC,YAAYD,QAAQE,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,EAACH,sBAAAA,QAAQI,GAAG,CAACC,MAAM,cAAlBL,iCAAAA,sBAAsB;AAC/F,IAAMM,cAAcL,YAAY,aAAa;AAI9B,SAASF,cAAcQ,aAAqB,EAAEC,eAAuB,EAAEC,OAAuB,EAAEC,QAAyB;QAGzHC;IAFb,IAAMC,YAAYH,QAAQG,SAAS,IAAIC,+BAAkB;IACzD,IAAM,AAAEC,OAASC,IAAAA,6BAAkB,EAACR,eAA5BO;IACR,IAAME,OAAOL,CAAAA,SAAAA,aAAI,EAACM,IAAI,OAATN,QAAAA;QAAUH;KAAoC,CAA9CG,OAA2B,qBAAGG,KAAKI,KAAK,CAAC;IAEtDC,WAAE,CAACC,IAAI,CAACJ,MAAM,SAACK;QACb,IAAI,CAACA,KAAK,OAAOX,SAASY,WAAWN,OAAO,oBAAoB;QAEhEO,IAAAA,gBAAK,EAAChB,eAAeK,WAAW,SAACS,KAAKG;YACpC,IAAIH,KAAK;gBACPI,QAAQC,GAAG,CAAC,AAAC,sBAAgDL,OAA3Bd,eAAc,eAAyB,OAAZc,IAAIM,OAAO;gBACxE,OAAOjB,SAASW;YAClB;YAEA,0EAA0E;YAC1E,IAAMO,WAAWC,IAAAA,mBAAU,EAACb;YAC5B,IAAMc,QAAQ,IAAIC,gBAAK,CAAC;YACxBD,MAAME,KAAK,CAAC,SAACC;uBAAOC,IAAAA,sBAAM,EAACvB,aAAI,CAACwB,OAAO,CAACnB,OAAO,SAACK;2BAAQY,GAAGZ;;;YAC3D,0FAA0F;YAC1FS,MAAME,KAAK,CAAC,SAACC;uBAAOd,WAAE,CAACiB,OAAO,CAACZ,UAAWI,UAAUtB,aAAa,SAACe;2BAAQY,GAAGZ;;;YAC7ES,MAAME,KAAK,CAAC,SAACC;gBACXd,WAAE,CAACkB,MAAM,CAACT,UAAUZ,MAAM,SAACK;wBAE2BA;oBADpD,uEAAuE;oBACvE,IAAIA,OAAO;wBAAC;wBAAU;wBAAa;qBAAQ,CAACiB,OAAO,EAACjB,YAAAA,IAAIkB,IAAI,cAARlB,uBAAAA,YAAY,OAAO,GAAG;wBACxEmB,IAAAA,sBAAM,EAACZ,UAAU;mCAAMK;;wBACvB;oBACF;oBACAA,GAAGZ;gBACL;YACF;YACAS,MAAMW,KAAK,CAAC,SAACpB;gBACXA,MAAMmB,IAAAA,sBAAM,EAACZ,UAAU;2BAAMlB,SAASW;qBAAQX,SAASY,WAAWN;YACpE;QACF;IACF;AACF"}
@@ -0,0 +1 @@
1
+ export default function installModuleSync(installString: string, nodeModulesPath: string, options?: object): string | undefined;
@@ -0,0 +1 @@
1
+ export default function installModuleSync(installString: string, nodeModulesPath: string, options?: object): string | undefined;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return installModuleSync;
9
+ }
10
+ });
11
+ var _module = /*#__PURE__*/ _interop_require_default(require("module"));
12
+ var _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
+ var _url = /*#__PURE__*/ _interop_require_default(require("url"));
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
20
+ var __dirname = _path.default.dirname(typeof __filename !== 'undefined' ? __filename : _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()));
21
+ // Worker MUST always load from dist/cjs/ for old Node compatibility (works from both cjs and esm)
22
+ var workerPath = _path.default.join(__dirname, '..', '..', 'cjs', 'workers', 'async.js');
23
+ var functionExec = null; // break dependencies
24
+ function installModuleSync(installString, nodeModulesPath, options) {
25
+ if (!functionExec) functionExec = _require('function-exec-sync');
26
+ return functionExec === null || functionExec === void 0 ? void 0 : functionExec({
27
+ callbacks: true
28
+ }, workerPath, installString, nodeModulesPath, options);
29
+ }
30
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked-compat/src/workers/sync.ts"],"sourcesContent":["import Module from 'module';\nimport path from 'path';\nimport url from 'url';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\n// Worker MUST always load from dist/cjs/ for old Node compatibility (works from both cjs and esm)\nconst workerPath = path.join(__dirname, '..', '..', 'cjs', 'workers', 'async.js');\n\nlet functionExec: ((opts: object, ...args: unknown[]) => unknown) | null = null; // break dependencies\nexport default function installModuleSync(installString: string, nodeModulesPath: string, options?: object): string | undefined {\n if (!functionExec) functionExec = _require('function-exec-sync');\n return functionExec?.({ callbacks: true }, workerPath, installString, nodeModulesPath, options) as string | undefined;\n}\n"],"names":["installModuleSync","_require","require","Module","createRequire","__dirname","path","dirname","__filename","url","fileURLToPath","workerPath","join","functionExec","installString","nodeModulesPath","options","callbacks"],"mappings":";;;;+BAWA;;;eAAwBA;;;6DAXL;2DACF;0DACD;;;;;;AAEhB,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAElG,kGAAkG;AAClG,IAAMC,aAAaL,aAAI,CAACM,IAAI,CAACP,WAAW,MAAM,MAAM,OAAO,WAAW;AAEtE,IAAIQ,eAAuE,MAAM,qBAAqB;AACvF,SAASb,kBAAkBc,aAAqB,EAAEC,eAAuB,EAAEC,OAAgB;IACxG,IAAI,CAACH,cAAcA,eAAeZ,SAAS;IAC3C,OAAOY,yBAAAA,mCAAAA,aAAe;QAAEI,WAAW;IAAK,GAAGN,YAAYG,eAAeC,iBAAiBC;AACzF"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ declare const _default: (argv: string[], name?: string) => void;
3
+ export default _default;
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env node
2
+ import exit from 'exit-compat';
3
+ import fs from 'fs';
4
+ import getopts from 'getopts-compat';
5
+ import path from 'path';
6
+ import url from 'url';
7
+ import clear from './lib/clear.js';
8
+ const __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));
9
+ const ERROR_CODE = 7;
10
+ function getVersion() {
11
+ const packageJsonPath = path.join(__dirname, '..', '..', 'package.json');
12
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
13
+ return packageJson.version;
14
+ }
15
+ function printHelp(name) {
16
+ const version = getVersion();
17
+ console.log(`${name} v${version}`);
18
+ console.log('');
19
+ console.log(`Usage: ${name} [options] [command]`);
20
+ console.log('');
21
+ console.log('Commands:');
22
+ console.log(' clear Clear the module cache');
23
+ console.log('');
24
+ console.log('Options:');
25
+ console.log(' -v, --version Print version number');
26
+ console.log(' -h, --help Print this help message');
27
+ }
28
+ export default ((argv, name)=>{
29
+ name = name || 'iml';
30
+ const options = getopts(argv, {
31
+ alias: {
32
+ version: 'v',
33
+ help: 'h'
34
+ },
35
+ boolean: [
36
+ 'version',
37
+ 'help'
38
+ ],
39
+ stopEarly: true
40
+ });
41
+ if (options.version) {
42
+ console.log(getVersion());
43
+ exit(0);
44
+ return;
45
+ }
46
+ if (options.help) {
47
+ printHelp(name);
48
+ exit(0);
49
+ return;
50
+ }
51
+ const args = options._;
52
+ if (!args.length) {
53
+ console.log(`Missing command. Example usage: ${name} [command]`);
54
+ console.log(`Run "${name} --help" for more information.`);
55
+ exit(ERROR_CODE);
56
+ return;
57
+ }
58
+ if (args[0] === 'clear') {
59
+ clear();
60
+ exit(0);
61
+ return;
62
+ }
63
+ console.log(`Unrecognized command: ${args[0]}. Example usage: ${name} [command]`);
64
+ console.log(`Run "${name} --help" for more information.`);
65
+ exit(ERROR_CODE);
66
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked-compat/src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport exit from 'exit-compat';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport url from 'url';\nimport clear from './lib/clear.ts';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nconst ERROR_CODE = 7;\n\nfunction getVersion(): string {\n const packageJsonPath = path.join(__dirname, '..', '..', 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));\n return packageJson.version;\n}\n\nfunction printHelp(name: string): void {\n const version = getVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} [options] [command]`);\n console.log('');\n console.log('Commands:');\n console.log(' clear Clear the module cache');\n console.log('');\n console.log('Options:');\n console.log(' -v, --version Print version number');\n console.log(' -h, --help Print this help message');\n}\n\nexport default (argv: string[], name?: string): void => {\n name = name || 'iml';\n const options = getopts(argv, {\n alias: { version: 'v', help: 'h' },\n boolean: ['version', 'help'],\n stopEarly: true,\n });\n\n if (options.version) {\n console.log(getVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n printHelp(name);\n exit(0);\n return;\n }\n\n const args = options._;\n if (!args.length) {\n console.log(`Missing command. Example usage: ${name} [command]`);\n console.log(`Run \"${name} --help\" for more information.`);\n exit(ERROR_CODE);\n return;\n }\n\n if (args[0] === 'clear') {\n clear();\n exit(0);\n return;\n }\n\n console.log(`Unrecognized command: ${args[0]}. Example usage: ${name} [command]`);\n console.log(`Run \"${name} --help\" for more information.`);\n exit(ERROR_CODE);\n};\n"],"names":["exit","fs","getopts","path","url","clear","__dirname","dirname","__filename","fileURLToPath","ERROR_CODE","getVersion","packageJsonPath","join","packageJson","JSON","parse","readFileSync","version","printHelp","name","console","log","argv","options","alias","help","boolean","stopEarly","args","_","length"],"mappings":";AAEA,OAAOA,UAAU,cAAc;AAC/B,OAAOC,QAAQ,KAAK;AACpB,OAAOC,aAAa,iBAAiB;AACrC,OAAOC,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,WAAW,iBAAiB;AAEnC,MAAMC,YAAYH,KAAKI,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaJ,IAAIK,aAAa,CAAC,YAAYL,GAAG;AAEjH,MAAMM,aAAa;AAEnB,SAASC;IACP,MAAMC,kBAAkBT,KAAKU,IAAI,CAACP,WAAW,MAAM,MAAM;IACzD,MAAMQ,cAAcC,KAAKC,KAAK,CAACf,GAAGgB,YAAY,CAACL,iBAAiB;IAChE,OAAOE,YAAYI,OAAO;AAC5B;AAEA,SAASC,UAAUC,IAAY;IAC7B,MAAMF,UAAUP;IAChBU,QAAQC,GAAG,CAAC,GAAGF,KAAK,EAAE,EAAEF,SAAS;IACjCG,QAAQC,GAAG,CAAC;IACZD,QAAQC,GAAG,CAAC,CAAC,OAAO,EAAEF,KAAK,oBAAoB,CAAC;IAChDC,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;AAEA,eAAe,CAAA,CAACC,MAAgBH;IAC9BA,OAAOA,QAAQ;IACf,MAAMI,UAAUtB,QAAQqB,MAAM;QAC5BE,OAAO;YAAEP,SAAS;YAAKQ,MAAM;QAAI;QACjCC,SAAS;YAAC;YAAW;SAAO;QAC5BC,WAAW;IACb;IAEA,IAAIJ,QAAQN,OAAO,EAAE;QACnBG,QAAQC,GAAG,CAACX;QACZX,KAAK;QACL;IACF;IAEA,IAAIwB,QAAQE,IAAI,EAAE;QAChBP,UAAUC;QACVpB,KAAK;QACL;IACF;IAEA,MAAM6B,OAAOL,QAAQM,CAAC;IACtB,IAAI,CAACD,KAAKE,MAAM,EAAE;QAChBV,QAAQC,GAAG,CAAC,CAAC,gCAAgC,EAAEF,KAAK,UAAU,CAAC;QAC/DC,QAAQC,GAAG,CAAC,CAAC,KAAK,EAAEF,KAAK,8BAA8B,CAAC;QACxDpB,KAAKU;QACL;IACF;IAEA,IAAImB,IAAI,CAAC,EAAE,KAAK,SAAS;QACvBxB;QACAL,KAAK;QACL;IACF;IAEAqB,QAAQC,GAAG,CAAC,CAAC,sBAAsB,EAAEO,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAET,KAAK,UAAU,CAAC;IAChFC,QAAQC,GAAG,CAAC,CAAC,KAAK,EAAEF,KAAK,8BAA8B,CAAC;IACxDpB,KAAKU;AACP,CAAA,EAAE"}
@@ -0,0 +1 @@
1
+ export declare function homedir(): string;
@@ -0,0 +1,4 @@
1
+ import os from 'os';
2
+ export function homedir() {
3
+ return typeof os.homedir === 'function' ? os.homedir() : require('homedir-polyfill')();
4
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked-compat/src/compat.ts"],"sourcesContent":["import os from 'os';\n\nexport function homedir(): string {\n return typeof os.homedir === 'function' ? os.homedir() : require('homedir-polyfill')();\n}\n"],"names":["os","homedir","require"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AAEpB,OAAO,SAASC;IACd,OAAO,OAAOD,GAAGC,OAAO,KAAK,aAAaD,GAAGC,OAAO,KAAKC,QAAQ;AACnE"}
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_CACHE_PATH: string;
@@ -0,0 +1,3 @@
1
+ import path from 'path';
2
+ import { homedir } from './compat.js';
3
+ export const DEFAULT_CACHE_PATH = path.join(homedir(), '.iml');
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked-compat/src/constants.ts"],"sourcesContent":["import path from 'path';\n\nimport { homedir } from './compat.ts';\n\nexport const DEFAULT_CACHE_PATH = path.join(homedir(), '.iml') as string;\n"],"names":["path","homedir","DEFAULT_CACHE_PATH","join"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AAExB,SAASC,OAAO,QAAQ,cAAc;AAEtC,OAAO,MAAMC,qBAAqBF,KAAKG,IAAI,CAACF,WAAW,QAAkB"}
@@ -0,0 +1,9 @@
1
+ import type { InstallCallback, InstallOptions } from './types.js';
2
+ export { default as clear } from './lib/clear.js';
3
+ export { default as install } from './lib/install.js';
4
+ export { default as parseInstallString } from './lib/parseInstallString.js';
5
+ export type * from './types.js';
6
+ export default function installModule(installString: string, nodeModulesPath: string, callback: InstallCallback): void;
7
+ export default function installModule(installString: string, nodeModulesPath: string, options: InstallOptions, callback: InstallCallback): void;
8
+ export default function installModule(installString: string, nodeModulesPath: string, options?: InstallOptions): Promise<string>;
9
+ export declare function sync(installString: string, nodeModulesPath: string, options?: InstallOptions): string | undefined;
@@ -0,0 +1,14 @@
1
+ import worker from './workers/async.js';
2
+ import workerSync from './workers/sync.js';
3
+ export { default as clear } from './lib/clear.js';
4
+ export { default as install } from './lib/install.js';
5
+ export { default as parseInstallString } from './lib/parseInstallString.js';
6
+ export default function installModule(installString, nodeModulesPath, options, callback) {
7
+ callback = typeof options === 'function' ? options : callback;
8
+ options = typeof options === 'function' ? {} : options || {};
9
+ if (typeof callback === 'function') return worker(installString, nodeModulesPath, options, callback);
10
+ return new Promise((resolve, reject)=>worker(installString, nodeModulesPath, options, (err, dest)=>err ? reject(err) : resolve(dest)));
11
+ }
12
+ export function sync(installString, nodeModulesPath, options) {
13
+ return workerSync(installString, nodeModulesPath, options || {});
14
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node/install-module-linked-compat/src/index.ts"],"sourcesContent":["import type { InstallCallback, InstallOptions } from './types.ts';\nimport worker from './workers/async.ts';\nimport workerSync from './workers/sync.ts';\n\nexport { default as clear } from './lib/clear.ts';\nexport { default as install } from './lib/install.ts';\nexport { default as parseInstallString } from './lib/parseInstallString.ts';\nexport type * from './types.ts';\n\nexport default function installModule(installString: string, nodeModulesPath: string, callback: InstallCallback): void;\nexport default function installModule(installString: string, nodeModulesPath: string, options: InstallOptions, callback: InstallCallback): void;\nexport default function installModule(installString: string, nodeModulesPath: string, options?: InstallOptions): Promise<string>;\nexport default function installModule(installString: string, nodeModulesPath: string, options?: InstallOptions | InstallCallback, callback?: InstallCallback): void | Promise<string> {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as InstallOptions);\n\n if (typeof callback === 'function') return worker(installString, nodeModulesPath, options, callback);\n return new Promise((resolve, reject) => worker(installString, nodeModulesPath, options, (err, dest) => (err ? reject(err) : resolve(dest as string))));\n}\n\nexport function sync(installString: string, nodeModulesPath: string, options?: InstallOptions): string | undefined {\n return workerSync(installString, nodeModulesPath, options || {});\n}\n"],"names":["worker","workerSync","default","clear","install","parseInstallString","installModule","installString","nodeModulesPath","options","callback","Promise","resolve","reject","err","dest","sync"],"mappings":"AACA,OAAOA,YAAY,qBAAqB;AACxC,OAAOC,gBAAgB,oBAAoB;AAE3C,SAASC,WAAWC,KAAK,QAAQ,iBAAiB;AAClD,SAASD,WAAWE,OAAO,QAAQ,mBAAmB;AACtD,SAASF,WAAWG,kBAAkB,QAAQ,8BAA8B;AAM5E,eAAe,SAASC,cAAcC,aAAqB,EAAEC,eAAuB,EAAEC,OAA0C,EAAEC,QAA0B;IAC1JA,WAAW,OAAOD,YAAY,aAAaA,UAAUC;IACrDD,UAAU,OAAOA,YAAY,aAAa,CAAC,IAAMA,WAAW,CAAC;IAE7D,IAAI,OAAOC,aAAa,YAAY,OAAOV,OAAOO,eAAeC,iBAAiBC,SAASC;IAC3F,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAAWb,OAAOO,eAAeC,iBAAiBC,SAAS,CAACK,KAAKC,OAAUD,MAAMD,OAAOC,OAAOF,QAAQG;AACtI;AAEA,OAAO,SAASC,KAAKT,aAAqB,EAAEC,eAAuB,EAAEC,OAAwB;IAC3F,OAAOR,WAAWM,eAAeC,iBAAiBC,WAAW,CAAC;AAChE"}
@@ -0,0 +1,2 @@
1
+ import type { EnsureCachedCallback } from '../types.js';
2
+ export default function ensureCached(installString: string, cachePath: string, callback: EnsureCachedCallback): void;