ts-swc-transform 1.4.1 → 1.4.2

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.
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "default", {
11
11
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
12
  var _os = /*#__PURE__*/ _interop_require_default(require("os"));
13
13
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
- var _calloncefn = /*#__PURE__*/ _interop_require_default(require("call-once-fn"));
15
14
  var _crossspawncb = /*#__PURE__*/ _interop_require_default(require("cross-spawn-cb"));
16
15
  var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
17
16
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
@@ -77,59 +76,69 @@ function _unsupported_iterable_to_array(o, minLen) {
77
76
  if (n === "Map" || n === "Set") return Array.from(n);
78
77
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
79
78
  }
80
- var swcDir = _path.default.dirname(_path.default.dirname(_resolve.default.sync('@swc/core/package.json')));
81
- var optionalDependencies = JSON.parse(_fs.default.readFileSync(_path.default.join(swcDir, 'core', 'package.json'), 'utf8')).optionalDependencies;
82
- var installDir = _path.default.dirname(swcDir);
79
+ var isWindows = _processcjs.default.platform === 'win32' || /^(msys|cygwin)$/.test(_processcjs.default.env.OSTYPE);
80
+ var symlinkType = isWindows ? 'junction' : 'dir';
81
+ var cache = _path.default.join(_os.default.tmpdir(), 'ts-swc-transform', 'cache');
82
+ function ensureCached(name, installString, cachedAt, callback) {
83
+ var _path1;
84
+ if ((0, _existsSync.default)(cachedAt)) return callback();
85
+ var tmp = "".concat(cachedAt, ".").concat((0, _tempsuffix.default)());
86
+ var installedAt = (_path1 = _path.default).join.apply(_path1, [
87
+ tmp,
88
+ 'node_modules'
89
+ ].concat(_to_consumable_array(name.split('/'))));
90
+ var _process_env = _processcjs.default.env, NODE_OPTIONS = _process_env.NODE_OPTIONS, env = _object_without_properties(_process_env, [
91
+ "NODE_OPTIONS"
92
+ ]);
93
+ var queue = new _queuecb.default(1);
94
+ queue.defer(_mkdirpclassic.default.bind(null, tmp));
95
+ queue.defer(_fs.default.writeFile.bind(null, _path.default.join(tmp, 'package.json'), '{}', 'utf8'));
96
+ queue.defer(_crossspawncb.default.bind(null, 'npm', [
97
+ 'install',
98
+ installString
99
+ ], {
100
+ cwd: tmp,
101
+ env: env
102
+ }));
103
+ queue.defer(function(cb) {
104
+ return _fs.default.rename(installedAt, cachedAt, cb.bind(null, null));
105
+ });
106
+ queue.await(function() {
107
+ // clean up whether installed or not
108
+ (0, _rimraf2.default)(tmp, {
109
+ disableGlob: true
110
+ }, callback);
111
+ });
112
+ }
83
113
  function installBindings(callback) {
114
+ var swcPackagePath = _resolve.default.sync('@swc/core/package.json');
115
+ var swcDir = _path.default.dirname(_path.default.dirname(swcPackagePath));
116
+ var optionalDependencies = JSON.parse(_fs.default.readFileSync(swcPackagePath, 'utf8')).optionalDependencies;
117
+ var installDir = _path.default.dirname(swcDir);
84
118
  var depKey = "".concat(_processcjs.default.platform, "-").concat(_processcjs.default.arch);
85
119
  var queue = new _queuecb.default();
86
- Object.keys(optionalDependencies).filter(function(key) {
87
- return key.indexOf(depKey) >= 0;
88
- }).filter(function(key) {
89
- return !(0, _existsSync.default)(_path.default.join(installDir, key));
120
+ Object.keys(optionalDependencies).filter(function(name) {
121
+ return name.indexOf(depKey) >= 0;
122
+ }).filter(function(name) {
123
+ return !(0, _existsSync.default)(_path.default.join(installDir, name));
90
124
  }).map(function(name) {
91
125
  queue.defer(function(callback) {
92
- var install = {
93
- name: name,
94
- version: optionalDependencies[name]
95
- };
96
- var _process_env = _processcjs.default.env, NODE_OPTIONS = _process_env.NODE_OPTIONS, env = _object_without_properties(_process_env, [
97
- "NODE_OPTIONS"
98
- ]);
99
- var installString = "".concat(install.name).concat(install.version ? "@".concat(install.version) : '');
100
- var installParts = install.name.split('/');
101
- callback = (0, _calloncefn.default)(callback);
102
- try {
103
- var _path1, _path2;
104
- var tmp = _path.default.join(_os.default.tmpdir(), 'ts-swc-transform', (0, _tempsuffix.default)());
105
- var source = (_path1 = _path.default).join.apply(_path1, [
106
- tmp,
107
- 'node_modules'
108
- ].concat(_to_consumable_array(installParts)));
109
- var dest = (_path2 = _path.default).join.apply(_path2, [
110
- _path.default.dirname(_path.default.dirname(_path.default.dirname(require.resolve('@swc/core/package.json'))))
111
- ].concat(_to_consumable_array(installParts)));
112
- var queue = new _queuecb.default(1);
113
- queue.defer(_mkdirpclassic.default.bind(null, tmp));
114
- queue.defer(_fs.default.writeFile.bind(null, _path.default.join(tmp, 'package.json'), '{}', 'utf8'));
115
- queue.defer(_crossspawncb.default.bind(null, 'npm', [
116
- 'install',
117
- installString
118
- ], {
119
- cwd: tmp,
120
- env: env
121
- }));
122
- queue.defer(_fs.default.rename.bind(null, source, dest));
123
- queue.await(function(err) {
124
- (0, _rimraf2.default)(tmp, {
125
- disableGlob: true
126
- }, function() {
127
- return callback(err);
128
- });
126
+ var _path1;
127
+ var version = optionalDependencies[name];
128
+ var installString = "".concat(name).concat(version ? "@".concat(version) : '');
129
+ var installedAt = (_path1 = _path.default).join.apply(_path1, [
130
+ _path.default.dirname(swcDir)
131
+ ].concat(_to_consumable_array(name.split('/'))));
132
+ var cachedAt = _path.default.join(cache, installString);
133
+ ensureCached(name, installString, cachedAt, function() {
134
+ if (!(0, _existsSync.default)(cachedAt)) {
135
+ console.log("Unsupported version: ".concat(installString));
136
+ return callback();
137
+ }
138
+ _fs.default.symlink(cachedAt, installedAt, symlinkType, function(err) {
139
+ err && !(0, _existsSync.default)(installedAt) ? callback(err) : callback();
129
140
  });
130
- } catch (err) {
131
- return callback(err);
132
- }
141
+ });
133
142
  });
134
143
  });
135
144
  queue.await(callback);
@@ -1 +1 @@
1
- {"version":3,"sources":["installBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport once from 'call-once-fn';\nimport spawn from 'cross-spawn-cb';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport rimraf2 from 'rimraf2';\nimport tempSuffix from 'temp-suffix';\nimport existsSync from './existsSync.js';\n// @ts-ignore\nimport process from './process.cjs';\n\nconst swcDir = path.dirname(path.dirname(resolve.sync('@swc/core/package.json')));\nconst { optionalDependencies } = JSON.parse(fs.readFileSync(path.join(swcDir, 'core', 'package.json'), 'utf8'));\nconst installDir = path.dirname(swcDir);\n\nexport default function installBindings(callback) {\n const depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((key) => key.indexOf(depKey) >= 0)\n .filter((key) => !existsSync(path.join(installDir, key)))\n .map((name) => {\n queue.defer((callback) => {\n const install = { name, version: optionalDependencies[name] };\n const { NODE_OPTIONS, ...env } = process.env;\n const installString = `${install.name}${install.version ? `@${install.version}` : ''}`;\n const installParts = install.name.split('/');\n callback = once(callback);\n try {\n const tmp = path.join(os.tmpdir(), 'ts-swc-transform', tempSuffix());\n const source = path.join(tmp, 'node_modules', ...installParts);\n const dest = path.join(path.dirname(path.dirname(path.dirname(require.resolve('@swc/core/package.json')))), ...installParts);\n\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, tmp));\n queue.defer(fs.writeFile.bind(null, path.join(tmp, 'package.json'), '{}', 'utf8'));\n queue.defer(spawn.bind(null, 'npm', ['install', installString], { cwd: tmp, env }));\n queue.defer(fs.rename.bind(null, source, dest));\n queue.await((err) => {\n rimraf2(tmp, { disableGlob: true }, () => callback(err));\n });\n } catch (err) {\n return callback(err);\n }\n });\n });\n queue.await(callback);\n}\n"],"names":["installBindings","swcDir","path","dirname","resolve","sync","optionalDependencies","JSON","parse","fs","readFileSync","join","installDir","callback","depKey","process","platform","arch","queue","Queue","Object","keys","filter","key","indexOf","existsSync","map","name","defer","install","version","env","NODE_OPTIONS","installString","installParts","split","once","tmp","os","tmpdir","tempSuffix","source","dest","require","mkdirp","bind","writeFile","spawn","cwd","rename","await","err","rimraf2","disableGlob"],"mappings":"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"}
1
+ {"version":3,"sources":["installBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport spawn from 'cross-spawn-cb';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport rimraf2 from 'rimraf2';\nimport tempSuffix from 'temp-suffix';\nimport existsSync from './existsSync.js';\n// @ts-ignore\nimport process from './process.cjs';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst symlinkType = isWindows ? 'junction' : 'dir';\nconst cache = path.join(os.tmpdir(), 'ts-swc-transform', 'cache');\n\nfunction ensureCached(name, installString, cachedAt, callback) {\n if (existsSync(cachedAt)) return callback();\n\n const tmp = `${cachedAt}.${tempSuffix()}`;\n const installedAt = path.join(tmp, 'node_modules', ...name.split('/'));\n const { NODE_OPTIONS, ...env } = process.env;\n\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, tmp));\n queue.defer(fs.writeFile.bind(null, path.join(tmp, 'package.json'), '{}', 'utf8'));\n queue.defer(spawn.bind(null, 'npm', ['install', installString], { cwd: tmp, env }));\n queue.defer((cb) => fs.rename(installedAt, cachedAt, cb.bind(null, null)));\n queue.await(() => {\n // clean up whether installed or not\n rimraf2(tmp, { disableGlob: true }, callback);\n });\n}\n\nexport default function installBindings(callback) {\n const swcPackagePath = resolve.sync('@swc/core/package.json');\n const swcDir = path.dirname(path.dirname(swcPackagePath));\n const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));\n const installDir = path.dirname(swcDir);\n const depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((name) => name.indexOf(depKey) >= 0)\n .filter((name) => !existsSync(path.join(installDir, name)))\n .map((name) => {\n queue.defer((callback) => {\n const version = optionalDependencies[name];\n const installString = `${name}${version ? `@${version}` : ''}`;\n const installedAt = path.join(path.dirname(swcDir), ...name.split('/'));\n const cachedAt = path.join(cache, installString);\n\n ensureCached(name, installString, cachedAt, () => {\n if (!existsSync(cachedAt)) {\n console.log(`Unsupported version: ${installString}`);\n return callback();\n }\n\n fs.symlink(cachedAt, installedAt, symlinkType, (err) => {\n err && !existsSync(installedAt) ? callback(err) : callback();\n });\n });\n });\n });\n queue.await(callback);\n}\n"],"names":["installBindings","isWindows","process","platform","test","env","OSTYPE","symlinkType","cache","path","join","os","tmpdir","ensureCached","name","installString","cachedAt","callback","existsSync","tmp","tempSuffix","installedAt","split","NODE_OPTIONS","queue","Queue","defer","mkdirp","bind","fs","writeFile","spawn","cwd","cb","rename","await","rimraf2","disableGlob","swcPackagePath","resolve","sync","swcDir","dirname","optionalDependencies","JSON","parse","readFileSync","installDir","depKey","arch","Object","keys","filter","indexOf","map","version","console","log","symlink","err"],"mappings":"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"}
@@ -8,16 +8,19 @@ Object.defineProperty(exports, "default", {
8
8
  return packageRoot;
9
9
  }
10
10
  });
11
+ var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
11
12
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
+ var _existsSync = /*#__PURE__*/ _interop_require_default(require("./existsSync.js"));
12
14
  function _interop_require_default(obj) {
13
15
  return obj && obj.__esModule ? obj : {
14
16
  default: obj
15
17
  };
16
18
  }
17
- function packageRoot(dir, packageName) {
18
- if (_path.default.basename(dir) === packageName) return dir;
19
+ function packageRoot(dir) {
20
+ var packagePath = _path.default.join(dir, 'package.json');
21
+ if ((0, _existsSync.default)(packagePath) && JSON.parse(_fs.default.readFileSync(packagePath, 'utf8')).name) return dir;
19
22
  var nextDir = _path.default.dirname(dir);
20
- if (nextDir === dir) throw new Error("".concat(packageName, " not found"));
21
- return packageRoot(nextDir, packageName);
23
+ if (nextDir === dir) throw new Error('Package root not found');
24
+ return packageRoot(nextDir);
22
25
  }
23
26
  /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +1 @@
1
- {"version":3,"sources":["packageRoot.ts"],"sourcesContent":["import path from 'path';\n\nexport default function packageRoot(dir, packageName) {\n if (path.basename(dir) === packageName) return dir;\n const nextDir = path.dirname(dir);\n if (nextDir === dir) throw new Error(`${packageName} not found`);\n return packageRoot(nextDir, packageName);\n}\n"],"names":["packageRoot","dir","packageName","path","basename","nextDir","dirname","Error"],"mappings":";;;;+BAEA;;;eAAwBA;;;2DAFP;;;;;;AAEF,SAASA,YAAYC,GAAG,EAAEC,WAAW;IAClD,IAAIC,aAAI,CAACC,QAAQ,CAACH,SAASC,aAAa,OAAOD;IAC/C,IAAMI,UAAUF,aAAI,CAACG,OAAO,CAACL;IAC7B,IAAII,YAAYJ,KAAK,MAAM,IAAIM,MAAM,AAAC,GAAc,OAAZL,aAAY;IACpD,OAAOF,YAAYK,SAASH;AAC9B"}
1
+ {"version":3,"sources":["packageRoot.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport existsSync from './existsSync.js';\n\nexport default function packageRoot(dir) {\n const packagePath = path.join(dir, 'package.json');\n if (existsSync(packagePath) && JSON.parse(fs.readFileSync(packagePath, 'utf8')).name) return dir;\n const nextDir = path.dirname(dir);\n if (nextDir === dir) throw new Error('Package root not found');\n return packageRoot(nextDir);\n}\n"],"names":["packageRoot","dir","packagePath","path","join","existsSync","JSON","parse","fs","readFileSync","name","nextDir","dirname","Error"],"mappings":";;;;+BAIA;;;eAAwBA;;;yDAJT;2DACE;iEACM;;;;;;AAER,SAASA,YAAYC,GAAG;IACrC,IAAMC,cAAcC,aAAI,CAACC,IAAI,CAACH,KAAK;IACnC,IAAII,IAAAA,mBAAU,EAACH,gBAAgBI,KAAKC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACP,aAAa,SAASQ,IAAI,EAAE,OAAOT;IAC7F,IAAMU,UAAUR,aAAI,CAACS,OAAO,CAACX;IAC7B,IAAIU,YAAYV,KAAK,MAAM,IAAIY,MAAM;IACrC,OAAOb,YAAYW;AACrB"}
@@ -25,7 +25,7 @@ function _interop_require_default(obj) {
25
25
  var __dirname = _path.default.dirname(typeof __filename !== 'undefined' ? __filename : _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()));
26
26
  var major = +_processcjs.default.versions.node.split('.')[0];
27
27
  var version = major < 14 ? '14' : 'local';
28
- var root = (0, _packageRoot.default)(__dirname, 'ts-swc-transform');
28
+ var root = (0, _packageRoot.default)(__dirname);
29
29
  var worker = _path.default.resolve(root, 'dist', 'cjs', 'workers', 'transformSync.js');
30
30
  var call = (0, _lazycjs.default)('node-version-call');
31
31
  function transformSync(contents, fileName, config) {
@@ -1 +1 @@
1
- {"version":3,"sources":["transformSync.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\n\n// @ts-ignore\nimport lazy from './lib/lazy.cjs';\nimport packageRoot from './lib/packageRoot.js';\n// @ts-ignore\nimport process from './lib/process.cjs';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? '14' : 'local';\nconst root = packageRoot(__dirname, 'ts-swc-transform');\nconst worker = path.resolve(root, 'dist', 'cjs', 'workers', 'transformSync.js');\nconst call = lazy('node-version-call');\n\n/**\n * @param {string} contents The file contents.\n * @param {string} fileName The filename.\n * @returns {{ code: string, map?: string }} Returns object with the transformed code and source map if option sourceMaps was provided.\n */\nexport default function transformSync(contents, fileName, config) {\n return call()({ version, callbacks: true }, worker, contents, fileName, config);\n}\n"],"names":["transformSync","__dirname","path","dirname","__filename","url","fileURLToPath","major","process","versions","node","split","version","root","packageRoot","worker","resolve","call","lazy","contents","fileName","config","callbacks"],"mappings":";;;;+BAgBA;;;;CAIC,GACD;;;eAAwBA;;;2DArBP;0DACD;8DAGC;kEACO;iEAEJ;;;;;;AAEpB,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAClG,IAAMC,QAAQ,CAACC,mBAAO,CAACC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,UAAUL,QAAQ,KAAK,OAAO;AACpC,IAAMM,OAAOC,IAAAA,oBAAW,EAACb,WAAW;AACpC,IAAMc,SAASb,aAAI,CAACc,OAAO,CAACH,MAAM,QAAQ,OAAO,WAAW;AAC5D,IAAMI,OAAOC,IAAAA,gBAAI,EAAC;AAOH,SAASlB,cAAcmB,QAAQ,EAAEC,QAAQ,EAAEC,MAAM;IAC9D,OAAOJ,OAAO;QAAEL,SAAAA;QAASU,WAAW;IAAK,GAAGP,QAAQI,UAAUC,UAAUC;AAC1E"}
1
+ {"version":3,"sources":["transformSync.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\n\n// @ts-ignore\nimport lazy from './lib/lazy.cjs';\nimport packageRoot from './lib/packageRoot.js';\n// @ts-ignore\nimport process from './lib/process.cjs';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? '14' : 'local';\nconst root = packageRoot(__dirname);\nconst worker = path.resolve(root, 'dist', 'cjs', 'workers', 'transformSync.js');\nconst call = lazy('node-version-call');\n\n/**\n * @param {string} contents The file contents.\n * @param {string} fileName The filename.\n * @returns {{ code: string, map?: string }} Returns object with the transformed code and source map if option sourceMaps was provided.\n */\nexport default function transformSync(contents, fileName, config) {\n return call()({ version, callbacks: true }, worker, contents, fileName, config);\n}\n"],"names":["transformSync","__dirname","path","dirname","__filename","url","fileURLToPath","major","process","versions","node","split","version","root","packageRoot","worker","resolve","call","lazy","contents","fileName","config","callbacks"],"mappings":";;;;+BAgBA;;;;CAIC,GACD;;;eAAwBA;;;2DArBP;0DACD;8DAGC;kEACO;iEAEJ;;;;;;AAEpB,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAClG,IAAMC,QAAQ,CAACC,mBAAO,CAACC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,UAAUL,QAAQ,KAAK,OAAO;AACpC,IAAMM,OAAOC,IAAAA,oBAAW,EAACb;AACzB,IAAMc,SAASb,aAAI,CAACc,OAAO,CAACH,MAAM,QAAQ,OAAO,WAAW;AAC5D,IAAMI,OAAOC,IAAAA,gBAAI,EAAC;AAOH,SAASlB,cAAcmB,QAAQ,EAAEC,QAAQ,EAAEC,MAAM;IAC9D,OAAOJ,OAAO;QAAEL,SAAAA;QAASU,WAAW;IAAK,GAAGP,QAAQI,UAAUC,UAAUC;AAC1E"}
@@ -1,7 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import os from 'os';
3
3
  import path from 'path';
4
- import once from 'call-once-fn';
5
4
  import spawn from 'cross-spawn-cb';
6
5
  import mkdirp from 'mkdirp-classic';
7
6
  import Queue from 'queue-cb';
@@ -11,45 +10,54 @@ import tempSuffix from 'temp-suffix';
11
10
  import existsSync from './existsSync.mjs';
12
11
  // @ts-ignore
13
12
  import process from './process.cjs';
14
- const swcDir = path.dirname(path.dirname(resolve.sync('@swc/core/package.json')));
15
- const { optionalDependencies } = JSON.parse(fs.readFileSync(path.join(swcDir, 'core', 'package.json'), 'utf8'));
16
- const installDir = path.dirname(swcDir);
13
+ const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);
14
+ const symlinkType = isWindows ? 'junction' : 'dir';
15
+ const cache = path.join(os.tmpdir(), 'ts-swc-transform', 'cache');
16
+ function ensureCached(name, installString, cachedAt, callback) {
17
+ if (existsSync(cachedAt)) return callback();
18
+ const tmp = `${cachedAt}.${tempSuffix()}`;
19
+ const installedAt = path.join(tmp, 'node_modules', ...name.split('/'));
20
+ const { NODE_OPTIONS, ...env } = process.env;
21
+ const queue = new Queue(1);
22
+ queue.defer(mkdirp.bind(null, tmp));
23
+ queue.defer(fs.writeFile.bind(null, path.join(tmp, 'package.json'), '{}', 'utf8'));
24
+ queue.defer(spawn.bind(null, 'npm', [
25
+ 'install',
26
+ installString
27
+ ], {
28
+ cwd: tmp,
29
+ env
30
+ }));
31
+ queue.defer((cb)=>fs.rename(installedAt, cachedAt, cb.bind(null, null)));
32
+ queue.await(()=>{
33
+ // clean up whether installed or not
34
+ rimraf2(tmp, {
35
+ disableGlob: true
36
+ }, callback);
37
+ });
38
+ }
17
39
  export default function installBindings(callback) {
40
+ const swcPackagePath = resolve.sync('@swc/core/package.json');
41
+ const swcDir = path.dirname(path.dirname(swcPackagePath));
42
+ const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));
43
+ const installDir = path.dirname(swcDir);
18
44
  const depKey = `${process.platform}-${process.arch}`;
19
45
  const queue = new Queue();
20
- Object.keys(optionalDependencies).filter((key)=>key.indexOf(depKey) >= 0).filter((key)=>!existsSync(path.join(installDir, key))).map((name)=>{
46
+ Object.keys(optionalDependencies).filter((name)=>name.indexOf(depKey) >= 0).filter((name)=>!existsSync(path.join(installDir, name))).map((name)=>{
21
47
  queue.defer((callback)=>{
22
- const install = {
23
- name,
24
- version: optionalDependencies[name]
25
- };
26
- const { NODE_OPTIONS, ...env } = process.env;
27
- const installString = `${install.name}${install.version ? `@${install.version}` : ''}`;
28
- const installParts = install.name.split('/');
29
- callback = once(callback);
30
- try {
31
- const tmp = path.join(os.tmpdir(), 'ts-swc-transform', tempSuffix());
32
- const source = path.join(tmp, 'node_modules', ...installParts);
33
- const dest = path.join(path.dirname(path.dirname(path.dirname(require.resolve('@swc/core/package.json')))), ...installParts);
34
- const queue = new Queue(1);
35
- queue.defer(mkdirp.bind(null, tmp));
36
- queue.defer(fs.writeFile.bind(null, path.join(tmp, 'package.json'), '{}', 'utf8'));
37
- queue.defer(spawn.bind(null, 'npm', [
38
- 'install',
39
- installString
40
- ], {
41
- cwd: tmp,
42
- env
43
- }));
44
- queue.defer(fs.rename.bind(null, source, dest));
45
- queue.await((err)=>{
46
- rimraf2(tmp, {
47
- disableGlob: true
48
- }, ()=>callback(err));
48
+ const version = optionalDependencies[name];
49
+ const installString = `${name}${version ? `@${version}` : ''}`;
50
+ const installedAt = path.join(path.dirname(swcDir), ...name.split('/'));
51
+ const cachedAt = path.join(cache, installString);
52
+ ensureCached(name, installString, cachedAt, ()=>{
53
+ if (!existsSync(cachedAt)) {
54
+ console.log(`Unsupported version: ${installString}`);
55
+ return callback();
56
+ }
57
+ fs.symlink(cachedAt, installedAt, symlinkType, (err)=>{
58
+ err && !existsSync(installedAt) ? callback(err) : callback();
49
59
  });
50
- } catch (err) {
51
- return callback(err);
52
- }
60
+ });
53
61
  });
54
62
  });
55
63
  queue.await(callback);
@@ -1 +1 @@
1
- {"version":3,"sources":["installBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport once from 'call-once-fn';\nimport spawn from 'cross-spawn-cb';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport rimraf2 from 'rimraf2';\nimport tempSuffix from 'temp-suffix';\nimport existsSync from './existsSync.js';\n// @ts-ignore\nimport process from './process.cjs';\n\nconst swcDir = path.dirname(path.dirname(resolve.sync('@swc/core/package.json')));\nconst { optionalDependencies } = JSON.parse(fs.readFileSync(path.join(swcDir, 'core', 'package.json'), 'utf8'));\nconst installDir = path.dirname(swcDir);\n\nexport default function installBindings(callback) {\n const depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((key) => key.indexOf(depKey) >= 0)\n .filter((key) => !existsSync(path.join(installDir, key)))\n .map((name) => {\n queue.defer((callback) => {\n const install = { name, version: optionalDependencies[name] };\n const { NODE_OPTIONS, ...env } = process.env;\n const installString = `${install.name}${install.version ? `@${install.version}` : ''}`;\n const installParts = install.name.split('/');\n callback = once(callback);\n try {\n const tmp = path.join(os.tmpdir(), 'ts-swc-transform', tempSuffix());\n const source = path.join(tmp, 'node_modules', ...installParts);\n const dest = path.join(path.dirname(path.dirname(path.dirname(require.resolve('@swc/core/package.json')))), ...installParts);\n\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, tmp));\n queue.defer(fs.writeFile.bind(null, path.join(tmp, 'package.json'), '{}', 'utf8'));\n queue.defer(spawn.bind(null, 'npm', ['install', installString], { cwd: tmp, env }));\n queue.defer(fs.rename.bind(null, source, dest));\n queue.await((err) => {\n rimraf2(tmp, { disableGlob: true }, () => callback(err));\n });\n } catch (err) {\n return callback(err);\n }\n });\n });\n queue.await(callback);\n}\n"],"names":["fs","os","path","once","spawn","mkdirp","Queue","resolve","rimraf2","tempSuffix","existsSync","process","swcDir","dirname","sync","optionalDependencies","JSON","parse","readFileSync","join","installDir","installBindings","callback","depKey","platform","arch","queue","Object","keys","filter","key","indexOf","map","name","defer","install","version","NODE_OPTIONS","env","installString","installParts","split","tmp","tmpdir","source","dest","require","bind","writeFile","cwd","rename","await","err","disableGlob"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,UAAU,eAAe;AAChC,OAAOC,WAAW,iBAAiB;AACnC,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,gBAAgB,cAAc;AACrC,OAAOC,gBAAgB,kBAAkB;AACzC,aAAa;AACb,OAAOC,aAAa,gBAAgB;AAEpC,MAAMC,SAASV,KAAKW,OAAO,CAACX,KAAKW,OAAO,CAACN,QAAQO,IAAI,CAAC;AACtD,MAAM,EAAEC,oBAAoB,EAAE,GAAGC,KAAKC,KAAK,CAACjB,GAAGkB,YAAY,CAAChB,KAAKiB,IAAI,CAACP,QAAQ,QAAQ,iBAAiB;AACvG,MAAMQ,aAAalB,KAAKW,OAAO,CAACD;AAEhC,eAAe,SAASS,gBAAgBC,QAAQ;IAC9C,MAAMC,SAAS,GAAGZ,QAAQa,QAAQ,CAAC,CAAC,EAAEb,QAAQc,IAAI,EAAE;IAEpD,MAAMC,QAAQ,IAAIpB;IAClBqB,OAAOC,IAAI,CAACb,sBACTc,MAAM,CAAC,CAACC,MAAQA,IAAIC,OAAO,CAACR,WAAW,GACvCM,MAAM,CAAC,CAACC,MAAQ,CAACpB,WAAWR,KAAKiB,IAAI,CAACC,YAAYU,OAClDE,GAAG,CAAC,CAACC;QACJP,MAAMQ,KAAK,CAAC,CAACZ;YACX,MAAMa,UAAU;gBAAEF;gBAAMG,SAASrB,oBAAoB,CAACkB,KAAK;YAAC;YAC5D,MAAM,EAAEI,YAAY,EAAE,GAAGC,KAAK,GAAG3B,QAAQ2B,GAAG;YAC5C,MAAMC,gBAAgB,GAAGJ,QAAQF,IAAI,GAAGE,QAAQC,OAAO,GAAG,CAAC,CAAC,EAAED,QAAQC,OAAO,EAAE,GAAG,IAAI;YACtF,MAAMI,eAAeL,QAAQF,IAAI,CAACQ,KAAK,CAAC;YACxCnB,WAAWnB,KAAKmB;YAChB,IAAI;gBACF,MAAMoB,MAAMxC,KAAKiB,IAAI,CAAClB,GAAG0C,MAAM,IAAI,oBAAoBlC;gBACvD,MAAMmC,SAAS1C,KAAKiB,IAAI,CAACuB,KAAK,mBAAmBF;gBACjD,MAAMK,OAAO3C,KAAKiB,IAAI,CAACjB,KAAKW,OAAO,CAACX,KAAKW,OAAO,CAACX,KAAKW,OAAO,CAACiC,QAAQvC,OAAO,CAAC,iCAAiCiC;gBAE/G,MAAMd,QAAQ,IAAIpB,MAAM;gBACxBoB,MAAMQ,KAAK,CAAC7B,OAAO0C,IAAI,CAAC,MAAML;gBAC9BhB,MAAMQ,KAAK,CAAClC,GAAGgD,SAAS,CAACD,IAAI,CAAC,MAAM7C,KAAKiB,IAAI,CAACuB,KAAK,iBAAiB,MAAM;gBAC1EhB,MAAMQ,KAAK,CAAC9B,MAAM2C,IAAI,CAAC,MAAM,OAAO;oBAAC;oBAAWR;iBAAc,EAAE;oBAAEU,KAAKP;oBAAKJ;gBAAI;gBAChFZ,MAAMQ,KAAK,CAAClC,GAAGkD,MAAM,CAACH,IAAI,CAAC,MAAMH,QAAQC;gBACzCnB,MAAMyB,KAAK,CAAC,CAACC;oBACX5C,QAAQkC,KAAK;wBAAEW,aAAa;oBAAK,GAAG,IAAM/B,SAAS8B;gBACrD;YACF,EAAE,OAAOA,KAAK;gBACZ,OAAO9B,SAAS8B;YAClB;QACF;IACF;IACF1B,MAAMyB,KAAK,CAAC7B;AACd"}
1
+ {"version":3,"sources":["installBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport spawn from 'cross-spawn-cb';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport rimraf2 from 'rimraf2';\nimport tempSuffix from 'temp-suffix';\nimport existsSync from './existsSync.js';\n// @ts-ignore\nimport process from './process.cjs';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst symlinkType = isWindows ? 'junction' : 'dir';\nconst cache = path.join(os.tmpdir(), 'ts-swc-transform', 'cache');\n\nfunction ensureCached(name, installString, cachedAt, callback) {\n if (existsSync(cachedAt)) return callback();\n\n const tmp = `${cachedAt}.${tempSuffix()}`;\n const installedAt = path.join(tmp, 'node_modules', ...name.split('/'));\n const { NODE_OPTIONS, ...env } = process.env;\n\n const queue = new Queue(1);\n queue.defer(mkdirp.bind(null, tmp));\n queue.defer(fs.writeFile.bind(null, path.join(tmp, 'package.json'), '{}', 'utf8'));\n queue.defer(spawn.bind(null, 'npm', ['install', installString], { cwd: tmp, env }));\n queue.defer((cb) => fs.rename(installedAt, cachedAt, cb.bind(null, null)));\n queue.await(() => {\n // clean up whether installed or not\n rimraf2(tmp, { disableGlob: true }, callback);\n });\n}\n\nexport default function installBindings(callback) {\n const swcPackagePath = resolve.sync('@swc/core/package.json');\n const swcDir = path.dirname(path.dirname(swcPackagePath));\n const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));\n const installDir = path.dirname(swcDir);\n const depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((name) => name.indexOf(depKey) >= 0)\n .filter((name) => !existsSync(path.join(installDir, name)))\n .map((name) => {\n queue.defer((callback) => {\n const version = optionalDependencies[name];\n const installString = `${name}${version ? `@${version}` : ''}`;\n const installedAt = path.join(path.dirname(swcDir), ...name.split('/'));\n const cachedAt = path.join(cache, installString);\n\n ensureCached(name, installString, cachedAt, () => {\n if (!existsSync(cachedAt)) {\n console.log(`Unsupported version: ${installString}`);\n return callback();\n }\n\n fs.symlink(cachedAt, installedAt, symlinkType, (err) => {\n err && !existsSync(installedAt) ? callback(err) : callback();\n });\n });\n });\n });\n queue.await(callback);\n}\n"],"names":["fs","os","path","spawn","mkdirp","Queue","resolve","rimraf2","tempSuffix","existsSync","process","isWindows","platform","test","env","OSTYPE","symlinkType","cache","join","tmpdir","ensureCached","name","installString","cachedAt","callback","tmp","installedAt","split","NODE_OPTIONS","queue","defer","bind","writeFile","cwd","cb","rename","await","disableGlob","installBindings","swcPackagePath","sync","swcDir","dirname","optionalDependencies","JSON","parse","readFileSync","installDir","depKey","arch","Object","keys","filter","indexOf","map","version","console","log","symlink","err"],"mappings":"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"}
@@ -1,7 +1,10 @@
1
+ import fs from 'fs';
1
2
  import path from 'path';
2
- export default function packageRoot(dir, packageName) {
3
- if (path.basename(dir) === packageName) return dir;
3
+ import existsSync from './existsSync.mjs';
4
+ export default function packageRoot(dir) {
5
+ const packagePath = path.join(dir, 'package.json');
6
+ if (existsSync(packagePath) && JSON.parse(fs.readFileSync(packagePath, 'utf8')).name) return dir;
4
7
  const nextDir = path.dirname(dir);
5
- if (nextDir === dir) throw new Error(`${packageName} not found`);
6
- return packageRoot(nextDir, packageName);
8
+ if (nextDir === dir) throw new Error('Package root not found');
9
+ return packageRoot(nextDir);
7
10
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["packageRoot.ts"],"sourcesContent":["import path from 'path';\n\nexport default function packageRoot(dir, packageName) {\n if (path.basename(dir) === packageName) return dir;\n const nextDir = path.dirname(dir);\n if (nextDir === dir) throw new Error(`${packageName} not found`);\n return packageRoot(nextDir, packageName);\n}\n"],"names":["path","packageRoot","dir","packageName","basename","nextDir","dirname","Error"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AAExB,eAAe,SAASC,YAAYC,GAAG,EAAEC,WAAW;IAClD,IAAIH,KAAKI,QAAQ,CAACF,SAASC,aAAa,OAAOD;IAC/C,MAAMG,UAAUL,KAAKM,OAAO,CAACJ;IAC7B,IAAIG,YAAYH,KAAK,MAAM,IAAIK,MAAM,GAAGJ,YAAY,UAAU,CAAC;IAC/D,OAAOF,YAAYI,SAASF;AAC9B"}
1
+ {"version":3,"sources":["packageRoot.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport existsSync from './existsSync.js';\n\nexport default function packageRoot(dir) {\n const packagePath = path.join(dir, 'package.json');\n if (existsSync(packagePath) && JSON.parse(fs.readFileSync(packagePath, 'utf8')).name) return dir;\n const nextDir = path.dirname(dir);\n if (nextDir === dir) throw new Error('Package root not found');\n return packageRoot(nextDir);\n}\n"],"names":["fs","path","existsSync","packageRoot","dir","packagePath","join","JSON","parse","readFileSync","name","nextDir","dirname","Error"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,gBAAgB,kBAAkB;AAEzC,eAAe,SAASC,YAAYC,GAAG;IACrC,MAAMC,cAAcJ,KAAKK,IAAI,CAACF,KAAK;IACnC,IAAIF,WAAWG,gBAAgBE,KAAKC,KAAK,CAACR,GAAGS,YAAY,CAACJ,aAAa,SAASK,IAAI,EAAE,OAAON;IAC7F,MAAMO,UAAUV,KAAKW,OAAO,CAACR;IAC7B,IAAIO,YAAYP,KAAK,MAAM,IAAIS,MAAM;IACrC,OAAOV,YAAYQ;AACrB"}
@@ -8,7 +8,7 @@ import process from './lib/process.cjs';
8
8
  const __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));
9
9
  const major = +process.versions.node.split('.')[0];
10
10
  const version = major < 14 ? '14' : 'local';
11
- const root = packageRoot(__dirname, 'ts-swc-transform');
11
+ const root = packageRoot(__dirname);
12
12
  const worker = path.resolve(root, 'dist', 'cjs', 'workers', 'transformSync.js');
13
13
  const call = lazy('node-version-call');
14
14
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["transformSync.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\n\n// @ts-ignore\nimport lazy from './lib/lazy.cjs';\nimport packageRoot from './lib/packageRoot.js';\n// @ts-ignore\nimport process from './lib/process.cjs';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? '14' : 'local';\nconst root = packageRoot(__dirname, 'ts-swc-transform');\nconst worker = path.resolve(root, 'dist', 'cjs', 'workers', 'transformSync.js');\nconst call = lazy('node-version-call');\n\n/**\n * @param {string} contents The file contents.\n * @param {string} fileName The filename.\n * @returns {{ code: string, map?: string }} Returns object with the transformed code and source map if option sourceMaps was provided.\n */\nexport default function transformSync(contents, fileName, config) {\n return call()({ version, callbacks: true }, worker, contents, fileName, config);\n}\n"],"names":["path","url","lazy","packageRoot","process","__dirname","dirname","__filename","fileURLToPath","major","versions","node","split","version","root","worker","resolve","call","transformSync","contents","fileName","config","callbacks"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AAEtB,aAAa;AACb,OAAOC,UAAU,iBAAiB;AAClC,OAAOC,iBAAiB,uBAAuB;AAC/C,aAAa;AACb,OAAOC,aAAa,oBAAoB;AAExC,MAAMC,YAAYL,KAAKM,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaN,IAAIO,aAAa,CAAC,YAAYP,GAAG;AACjH,MAAMQ,QAAQ,CAACL,QAAQM,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,MAAMC,UAAUJ,QAAQ,KAAK,OAAO;AACpC,MAAMK,OAAOX,YAAYE,WAAW;AACpC,MAAMU,SAASf,KAAKgB,OAAO,CAACF,MAAM,QAAQ,OAAO,WAAW;AAC5D,MAAMG,OAAOf,KAAK;AAElB;;;;CAIC,GACD,eAAe,SAASgB,cAAcC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM;IAC9D,OAAOJ,OAAO;QAAEJ;QAASS,WAAW;IAAK,GAAGP,QAAQI,UAAUC,UAAUC;AAC1E"}
1
+ {"version":3,"sources":["transformSync.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\n\n// @ts-ignore\nimport lazy from './lib/lazy.cjs';\nimport packageRoot from './lib/packageRoot.js';\n// @ts-ignore\nimport process from './lib/process.cjs';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? '14' : 'local';\nconst root = packageRoot(__dirname);\nconst worker = path.resolve(root, 'dist', 'cjs', 'workers', 'transformSync.js');\nconst call = lazy('node-version-call');\n\n/**\n * @param {string} contents The file contents.\n * @param {string} fileName The filename.\n * @returns {{ code: string, map?: string }} Returns object with the transformed code and source map if option sourceMaps was provided.\n */\nexport default function transformSync(contents, fileName, config) {\n return call()({ version, callbacks: true }, worker, contents, fileName, config);\n}\n"],"names":["path","url","lazy","packageRoot","process","__dirname","dirname","__filename","fileURLToPath","major","versions","node","split","version","root","worker","resolve","call","transformSync","contents","fileName","config","callbacks"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AAEtB,aAAa;AACb,OAAOC,UAAU,iBAAiB;AAClC,OAAOC,iBAAiB,uBAAuB;AAC/C,aAAa;AACb,OAAOC,aAAa,oBAAoB;AAExC,MAAMC,YAAYL,KAAKM,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaN,IAAIO,aAAa,CAAC,YAAYP,GAAG;AACjH,MAAMQ,QAAQ,CAACL,QAAQM,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,MAAMC,UAAUJ,QAAQ,KAAK,OAAO;AACpC,MAAMK,OAAOX,YAAYE;AACzB,MAAMU,SAASf,KAAKgB,OAAO,CAACF,MAAM,QAAQ,OAAO,WAAW;AAC5D,MAAMG,OAAOf,KAAK;AAElB;;;;CAIC,GACD,eAAe,SAASgB,cAAcC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM;IAC9D,OAAOJ,OAAO;QAAEJ;QAASS,WAAW;IAAK,GAAGP,QAAQI,UAAUC,UAAUC;AAC1E"}
@@ -1 +1 @@
1
- export default function packageRoot(dir: any, packageName: any): any;
1
+ export default function packageRoot(dir: any): any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-swc-transform",
3
- "version": "1.4.1",
3
+ "version": "1.4.2",
4
4
  "description": "Typescript transformers for swc. Supports Node >= 0.8",
5
5
  "keywords": [
6
6
  "matcher",
@@ -50,7 +50,7 @@
50
50
  "dependencies": {
51
51
  "@swc/core": "*",
52
52
  "call-once-fn": "^1.0.1",
53
- "cross-spawn-cb": "^1.1.2",
53
+ "cross-spawn-cb": "^1.1.3",
54
54
  "exit": "^0.1.2",
55
55
  "fs-access-sync-compat": "^1.0.2",
56
56
  "fs-iterator": "^5.1.1",
@@ -59,7 +59,7 @@
59
59
  "lazy-cache": "^2.0.2",
60
60
  "minimatch": "^3.1.2",
61
61
  "mkdirp-classic": "^0.5.3",
62
- "node-version-call": "^1.2.0",
62
+ "node-version-call": "^1.2.2",
63
63
  "path-posix": "^1.0.0",
64
64
  "queue-cb": "^1.4.4",
65
65
  "resolve": "^1.22.10",
@@ -73,14 +73,15 @@
73
73
  "@biomejs/biome": "^1.9.4",
74
74
  "@swc/core": "^1.9.3",
75
75
  "@types/mocha": "^10.0.10",
76
- "@types/node": "^14.18.63",
76
+ "@types/node": "^22.10.2",
77
77
  "core-js": "^3.39.0",
78
78
  "cr": "^0.1.0",
79
79
  "react": "^19.0.0",
80
- "ts-dev-stack": "^1.4.0",
80
+ "ts-dev-stack": "^1.4.3",
81
81
  "ts-node": "^10.8.2",
82
82
  "typescript": "^5.7.2"
83
83
  },
84
+ "packageManager": "npm@11.0.0+sha512.11dff29565d2297c74e7c594a9762581bde969f0aa5cbe6f5b3644bf008a16c065ece61094d9ffbb81125be38df8e1ba43eb8244b3d30c61eb797e9a2440e3ec",
84
85
  "engines": {
85
86
  "node": ">=0.8"
86
87
  },