ts-swc-transform 1.5.2 → 1.6.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.
@@ -10,57 +10,27 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
12
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
+ var _installmodulelinked = /*#__PURE__*/ _interop_require_default(require("install-module-linked"));
13
14
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
14
15
  var _resolve = /*#__PURE__*/ _interop_require_default(require("resolve"));
15
- var _index = /*#__PURE__*/ _interop_require_default(require("./install-module/index.js"));
16
- function _array_like_to_array(arr, len) {
17
- if (len == null || len > arr.length) len = arr.length;
18
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
19
- return arr2;
20
- }
21
- function _array_without_holes(arr) {
22
- if (Array.isArray(arr)) return _array_like_to_array(arr);
23
- }
24
16
  function _interop_require_default(obj) {
25
17
  return obj && obj.__esModule ? obj : {
26
18
  default: obj
27
19
  };
28
20
  }
29
- function _iterable_to_array(iter) {
30
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
31
- }
32
- function _non_iterable_spread() {
33
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
34
- }
35
- function _to_consumable_array(arr) {
36
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
37
- }
38
- function _unsupported_iterable_to_array(o, minLen) {
39
- if (!o) return;
40
- if (typeof o === "string") return _array_like_to_array(o, minLen);
41
- var n = Object.prototype.toString.call(o).slice(8, -1);
42
- if (n === "Object" && o.constructor) n = o.constructor.name;
43
- if (n === "Map" || n === "Set") return Array.from(n);
44
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
45
- }
46
21
  function installBindings(callback) {
47
22
  var swcPackagePath = _resolve.default.sync('@swc/core/package.json');
48
23
  var swcDir = _path.default.dirname(_path.default.dirname(swcPackagePath));
49
24
  var optionalDependencies = JSON.parse(_fs.default.readFileSync(swcPackagePath, 'utf8')).optionalDependencies;
50
- var _installDir = _path.default.dirname(swcDir);
51
25
  var depKey = "".concat(process.platform, "-").concat(process.arch);
52
26
  var queue = new _queuecb.default();
53
27
  Object.keys(optionalDependencies).filter(function(name) {
54
28
  return name.indexOf(depKey) >= 0;
55
29
  }).map(function(name) {
56
30
  queue.defer(function(callback) {
57
- var _path1;
58
31
  var version = optionalDependencies[name];
59
32
  var installString = "".concat(name).concat(version ? "@".concat(version) : '');
60
- var installedAt = (_path1 = _path.default).join.apply(_path1, [
61
- _path.default.dirname(swcDir)
62
- ].concat(_to_consumable_array(name.split('/'))));
63
- (0, _index.default)(installString, installedAt, callback);
33
+ (0, _installmodulelinked.default)(installString, _path.default.dirname(swcDir), callback);
64
34
  });
65
35
  });
66
36
  queue.await(callback);
@@ -1 +1 @@
1
- {"version":3,"sources":["installBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport installModule from './install-module/index.js';\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 .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 installModule(installString, installedAt, callback);\n });\n });\n queue.await(callback);\n}\n"],"names":["installBindings","callback","swcPackagePath","resolve","sync","swcDir","path","dirname","optionalDependencies","JSON","parse","fs","readFileSync","_installDir","depKey","process","platform","arch","queue","Queue","Object","keys","filter","name","indexOf","map","defer","version","installString","installedAt","join","split","installModule","await"],"mappings":";;;;+BAKA;;;eAAwBA;;;yDALT;2DACE;8DACC;8DACE;4DACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACX,SAASA,gBAAgBC,QAAQ;IAC9C,IAAMC,iBAAiBC,gBAAO,CAACC,IAAI,CAAC;IACpC,IAAMC,SAASC,aAAI,CAACC,OAAO,CAACD,aAAI,CAACC,OAAO,CAACL;IACzC,IAAM,AAAEM,uBAAyBC,KAAKC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACV,gBAAgB,SAApEM;IACR,IAAMK,cAAcP,aAAI,CAACC,OAAO,CAACF;IACjC,IAAMS,SAAS,AAAC,GAAsBC,OAApBA,QAAQC,QAAQ,EAAC,KAAgB,OAAbD,QAAQE,IAAI;IAElD,IAAMC,QAAQ,IAAIC,gBAAK;IACvBC,OAAOC,IAAI,CAACb,sBACTc,MAAM,CAAC,SAACC;eAASA,KAAKC,OAAO,CAACV,WAAW;OACzCW,GAAG,CAAC,SAACF;QACJL,MAAMQ,KAAK,CAAC,SAACzB;gBAGSK;YAFpB,IAAMqB,UAAUnB,oBAAoB,CAACe,KAAK;YAC1C,IAAMK,gBAAgB,AAAC,GAASD,OAAPJ,MAAoC,OAA7BI,UAAU,AAAC,IAAW,OAARA,WAAY;YAC1D,IAAME,cAAcvB,CAAAA,SAAAA,aAAI,EAACwB,IAAI,OAATxB,QAAAA;gBAAUA,aAAI,CAACC,OAAO,CAACF;aAA4B,CAAnDC,OAAgC,qBAAGiB,KAAKQ,KAAK,CAAC;YAClEC,IAAAA,cAAa,EAACJ,eAAeC,aAAa5B;QAC5C;IACF;IACFiB,MAAMe,KAAK,CAAChC;AACd"}
1
+ {"version":3,"sources":["installBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport installModule from 'install-module-linked';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\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 depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((name) => name.indexOf(depKey) >= 0)\n .map((name) => {\n queue.defer((callback) => {\n const version = optionalDependencies[name];\n const installString = `${name}${version ? `@${version}` : ''}`;\n installModule(installString, path.dirname(swcDir), callback);\n });\n });\n queue.await(callback);\n}\n"],"names":["installBindings","callback","swcPackagePath","resolve","sync","swcDir","path","dirname","optionalDependencies","JSON","parse","fs","readFileSync","depKey","process","platform","arch","queue","Queue","Object","keys","filter","name","indexOf","map","defer","version","installString","installModule","await"],"mappings":";;;;+BAMA;;;eAAwBA;;;yDANT;2DACE;0EACS;8DACR;8DACE;;;;;;AAEL,SAASA,gBAAgBC,QAAQ;IAC9C,IAAMC,iBAAiBC,gBAAO,CAACC,IAAI,CAAC;IACpC,IAAMC,SAASC,aAAI,CAACC,OAAO,CAACD,aAAI,CAACC,OAAO,CAACL;IACzC,IAAM,AAAEM,uBAAyBC,KAAKC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACV,gBAAgB,SAApEM;IACR,IAAMK,SAAS,AAAC,GAAsBC,OAApBA,QAAQC,QAAQ,EAAC,KAAgB,OAAbD,QAAQE,IAAI;IAElD,IAAMC,QAAQ,IAAIC,gBAAK;IACvBC,OAAOC,IAAI,CAACZ,sBACTa,MAAM,CAAC,SAACC;eAASA,KAAKC,OAAO,CAACV,WAAW;OACzCW,GAAG,CAAC,SAACF;QACJL,MAAMQ,KAAK,CAAC,SAACxB;YACX,IAAMyB,UAAUlB,oBAAoB,CAACc,KAAK;YAC1C,IAAMK,gBAAgB,AAAC,GAASD,OAAPJ,MAAoC,OAA7BI,UAAU,AAAC,IAAW,OAARA,WAAY;YAC1DE,IAAAA,4BAAa,EAACD,eAAerB,aAAI,CAACC,OAAO,CAACF,SAASJ;QACrD;IACF;IACFgB,MAAMY,KAAK,CAAC5B;AACd"}
@@ -1,21 +1,19 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
+ import installModule from 'install-module-linked';
3
4
  import Queue from 'queue-cb';
4
5
  import resolve from 'resolve';
5
- import installModule from './install-module/index.mjs';
6
6
  export default function installBindings(callback) {
7
7
  const swcPackagePath = resolve.sync('@swc/core/package.json');
8
8
  const swcDir = path.dirname(path.dirname(swcPackagePath));
9
9
  const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));
10
- const _installDir = path.dirname(swcDir);
11
10
  const depKey = `${process.platform}-${process.arch}`;
12
11
  const queue = new Queue();
13
12
  Object.keys(optionalDependencies).filter((name)=>name.indexOf(depKey) >= 0).map((name)=>{
14
13
  queue.defer((callback)=>{
15
14
  const version = optionalDependencies[name];
16
15
  const installString = `${name}${version ? `@${version}` : ''}`;
17
- const installedAt = path.join(path.dirname(swcDir), ...name.split('/'));
18
- installModule(installString, installedAt, callback);
16
+ installModule(installString, path.dirname(swcDir), callback);
19
17
  });
20
18
  });
21
19
  queue.await(callback);
@@ -1 +1 @@
1
- {"version":3,"sources":["installBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport installModule from './install-module/index.js';\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 .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 installModule(installString, installedAt, callback);\n });\n });\n queue.await(callback);\n}\n"],"names":["fs","path","Queue","resolve","installModule","installBindings","callback","swcPackagePath","sync","swcDir","dirname","optionalDependencies","JSON","parse","readFileSync","_installDir","depKey","process","platform","arch","queue","Object","keys","filter","name","indexOf","map","defer","version","installString","installedAt","join","split","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,mBAAmB,4BAA4B;AACtD,eAAe,SAASC,gBAAgBC,QAAQ;IAC9C,MAAMC,iBAAiBJ,QAAQK,IAAI,CAAC;IACpC,MAAMC,SAASR,KAAKS,OAAO,CAACT,KAAKS,OAAO,CAACH;IACzC,MAAM,EAAEI,oBAAoB,EAAE,GAAGC,KAAKC,KAAK,CAACb,GAAGc,YAAY,CAACP,gBAAgB;IAC5E,MAAMQ,cAAcd,KAAKS,OAAO,CAACD;IACjC,MAAMO,SAAS,GAAGC,QAAQC,QAAQ,CAAC,CAAC,EAAED,QAAQE,IAAI,EAAE;IAEpD,MAAMC,QAAQ,IAAIlB;IAClBmB,OAAOC,IAAI,CAACX,sBACTY,MAAM,CAAC,CAACC,OAASA,KAAKC,OAAO,CAACT,WAAW,GACzCU,GAAG,CAAC,CAACF;QACJJ,MAAMO,KAAK,CAAC,CAACrB;YACX,MAAMsB,UAAUjB,oBAAoB,CAACa,KAAK;YAC1C,MAAMK,gBAAgB,GAAGL,OAAOI,UAAU,CAAC,CAAC,EAAEA,SAAS,GAAG,IAAI;YAC9D,MAAME,cAAc7B,KAAK8B,IAAI,CAAC9B,KAAKS,OAAO,CAACD,YAAYe,KAAKQ,KAAK,CAAC;YAClE5B,cAAcyB,eAAeC,aAAaxB;QAC5C;IACF;IACFc,MAAMa,KAAK,CAAC3B;AACd"}
1
+ {"version":3,"sources":["installBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport installModule from 'install-module-linked';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\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 depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((name) => name.indexOf(depKey) >= 0)\n .map((name) => {\n queue.defer((callback) => {\n const version = optionalDependencies[name];\n const installString = `${name}${version ? `@${version}` : ''}`;\n installModule(installString, path.dirname(swcDir), callback);\n });\n });\n queue.await(callback);\n}\n"],"names":["fs","path","installModule","Queue","resolve","installBindings","callback","swcPackagePath","sync","swcDir","dirname","optionalDependencies","JSON","parse","readFileSync","depKey","process","platform","arch","queue","Object","keys","filter","name","indexOf","map","defer","version","installString","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,mBAAmB,wBAAwB;AAClD,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAE9B,eAAe,SAASC,gBAAgBC,QAAQ;IAC9C,MAAMC,iBAAiBH,QAAQI,IAAI,CAAC;IACpC,MAAMC,SAASR,KAAKS,OAAO,CAACT,KAAKS,OAAO,CAACH;IACzC,MAAM,EAAEI,oBAAoB,EAAE,GAAGC,KAAKC,KAAK,CAACb,GAAGc,YAAY,CAACP,gBAAgB;IAC5E,MAAMQ,SAAS,GAAGC,QAAQC,QAAQ,CAAC,CAAC,EAAED,QAAQE,IAAI,EAAE;IAEpD,MAAMC,QAAQ,IAAIhB;IAClBiB,OAAOC,IAAI,CAACV,sBACTW,MAAM,CAAC,CAACC,OAASA,KAAKC,OAAO,CAACT,WAAW,GACzCU,GAAG,CAAC,CAACF;QACJJ,MAAMO,KAAK,CAAC,CAACpB;YACX,MAAMqB,UAAUhB,oBAAoB,CAACY,KAAK;YAC1C,MAAMK,gBAAgB,GAAGL,OAAOI,UAAU,CAAC,CAAC,EAAEA,SAAS,GAAG,IAAI;YAC9DzB,cAAc0B,eAAe3B,KAAKS,OAAO,CAACD,SAASH;QACrD;IACF;IACFa,MAAMU,KAAK,CAACvB;AACd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-swc-transform",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "Typescript transformers for swc. Supports Node >= 0.8",
5
5
  "keywords": [
6
6
  "matcher",
@@ -52,9 +52,9 @@
52
52
  "call-once-fn": "^1.0.1",
53
53
  "cross-spawn-cb": "^1.1.3",
54
54
  "exit": "^0.1.2",
55
- "fs-access-compat": "^1.0.3",
56
55
  "fs-iterator": "^5.1.1",
57
56
  "get-tsconfig-compat": "^1.1.1",
57
+ "install-module-linked": "^0.1.0",
58
58
  "is-absolute": "^1.0.0",
59
59
  "lazy-cache": "^2.0.2",
60
60
  "minimatch": "^3.1.2",
@@ -65,7 +65,6 @@
65
65
  "resolve": "^1.22.10",
66
66
  "resolve-once-cb": "^0.1.2",
67
67
  "rimraf2": "^2.8.2",
68
- "temp-suffix": "^0.1.1",
69
68
  "ts-node": "*",
70
69
  "typescript": "*",
71
70
  "unixify": "^1.0.0"
@@ -1,40 +0,0 @@
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 _os = /*#__PURE__*/ _interop_require_default(require("os"));
13
- var _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
- var _fsaccesscompat = /*#__PURE__*/ _interop_require_default(require("fs-access-compat"));
15
- var _ensureCached = /*#__PURE__*/ _interop_require_default(require("./lib/ensureCached.js"));
16
- function _interop_require_default(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- var isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);
22
- var symlinkType = isWindows ? 'junction' : 'dir';
23
- var cache = _path.default.join(_os.default.tmpdir(), 'ts-swc-transform', 'cache');
24
- function installModule(installString, installedAt, callback) {
25
- (0, _fsaccesscompat.default)(installedAt, function(err) {
26
- if (!err) return callback(); // already installed
27
- var cachedAt = _path.default.join(cache, installString);
28
- (0, _ensureCached.default)(installString, cachedAt, function(err) {
29
- if (err) {
30
- console.log("Unsupported version: ".concat(installString));
31
- return callback();
32
- }
33
- _fs.default.symlink(cachedAt, installedAt, symlinkType, function(err) {
34
- if (err) return callback(err);
35
- (0, _fsaccesscompat.default)(installedAt, callback);
36
- });
37
- });
38
- });
39
- }
40
- /* 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 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport access from 'fs-access-compat';\nimport ensureCached from './lib/ensureCached.js';\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\nexport default function installModule(installString, installedAt, callback) {\n access(installedAt, (err) => {\n if (!err) return callback(); // already installed\n const cachedAt = path.join(cache, installString);\n\n ensureCached(installString, cachedAt, (err) => {\n if (err) {\n console.log(`Unsupported version: ${installString}`);\n return callback();\n }\n\n fs.symlink(cachedAt, installedAt, symlinkType, (err) => {\n if (err) return callback(err);\n access(installedAt, callback);\n });\n });\n });\n}\n"],"names":["installModule","isWindows","process","platform","test","env","OSTYPE","symlinkType","cache","path","join","os","tmpdir","installString","installedAt","callback","access","err","cachedAt","ensureCached","console","log","fs","symlink"],"mappings":";;;;+BAUA;;;eAAwBA;;;yDAVT;yDACA;2DACE;qEACE;mEACM;;;;;;AAEzB,IAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,IAAMC,cAAcN,YAAY,aAAa;AAC7C,IAAMO,QAAQC,aAAI,CAACC,IAAI,CAACC,WAAE,CAACC,MAAM,IAAI,oBAAoB;AAE1C,SAASZ,cAAca,aAAa,EAAEC,WAAW,EAAEC,QAAQ;IACxEC,IAAAA,uBAAM,EAACF,aAAa,SAACG;QACnB,IAAI,CAACA,KAAK,OAAOF,YAAY,oBAAoB;QACjD,IAAMG,WAAWT,aAAI,CAACC,IAAI,CAACF,OAAOK;QAElCM,IAAAA,qBAAY,EAACN,eAAeK,UAAU,SAACD;YACrC,IAAIA,KAAK;gBACPG,QAAQC,GAAG,CAAC,AAAC,wBAAqC,OAAdR;gBACpC,OAAOE;YACT;YAEAO,WAAE,CAACC,OAAO,CAACL,UAAUJ,aAAaP,aAAa,SAACU;gBAC9C,IAAIA,KAAK,OAAOF,SAASE;gBACzBD,IAAAA,uBAAM,EAACF,aAAaC;YACtB;QACF;IACF;AACF"}
@@ -1,113 +0,0 @@
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 ensureCached;
9
- }
10
- });
11
- var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
- var _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
- var _crossspawncb = /*#__PURE__*/ _interop_require_default(require("cross-spawn-cb"));
14
- var _fsaccesscompat = /*#__PURE__*/ _interop_require_default(require("fs-access-compat"));
15
- var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
16
- var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
17
- var _rimraf2 = /*#__PURE__*/ _interop_require_default(require("rimraf2"));
18
- var _tempsuffix = /*#__PURE__*/ _interop_require_default(require("temp-suffix"));
19
- var _parseInstallString = /*#__PURE__*/ _interop_require_default(require("./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) return Array.from(iter);
35
- }
36
- function _non_iterable_spread() {
37
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
38
- }
39
- function _object_without_properties(source, excluded) {
40
- if (source == null) return {};
41
- var target = _object_without_properties_loose(source, excluded);
42
- var key, i;
43
- if (Object.getOwnPropertySymbols) {
44
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
45
- for(i = 0; i < sourceSymbolKeys.length; i++){
46
- key = sourceSymbolKeys[i];
47
- if (excluded.indexOf(key) >= 0) continue;
48
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
49
- target[key] = source[key];
50
- }
51
- }
52
- return target;
53
- }
54
- function _object_without_properties_loose(source, excluded) {
55
- if (source == null) return {};
56
- var target = {};
57
- var sourceKeys = Object.keys(source);
58
- var key, i;
59
- for(i = 0; i < sourceKeys.length; i++){
60
- key = sourceKeys[i];
61
- if (excluded.indexOf(key) >= 0) continue;
62
- target[key] = source[key];
63
- }
64
- return target;
65
- }
66
- function _to_consumable_array(arr) {
67
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
68
- }
69
- function _unsupported_iterable_to_array(o, minLen) {
70
- if (!o) return;
71
- if (typeof o === "string") return _array_like_to_array(o, minLen);
72
- var n = Object.prototype.toString.call(o).slice(8, -1);
73
- if (n === "Object" && o.constructor) n = o.constructor.name;
74
- if (n === "Map" || n === "Set") return Array.from(n);
75
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
76
- }
77
- function ensureCached(installString, cachedAt, callback) {
78
- (0, _fsaccesscompat.default)(cachedAt, function(err) {
79
- var _path1;
80
- if (!err) return callback(); // already cached
81
- var name = (0, _parseInstallString.default)(installString).name;
82
- var tmp = "".concat(cachedAt, "-").concat((0, _tempsuffix.default)());
83
- var installedAt = (_path1 = _path.default).join.apply(_path1, [
84
- tmp,
85
- 'node_modules'
86
- ].concat(_to_consumable_array(name.split('/'))));
87
- var _process_env = process.env, NODE_OPTIONS = _process_env.NODE_OPTIONS, env = _object_without_properties(_process_env, [
88
- "NODE_OPTIONS"
89
- ]);
90
- var queue = new _queuecb.default(1);
91
- queue.defer(_mkdirpclassic.default.bind(null, tmp));
92
- queue.defer(_fs.default.writeFile.bind(null, _path.default.join(tmp, 'package.json'), '{}', 'utf8'));
93
- queue.defer(_crossspawncb.default.bind(null, 'npm', [
94
- 'install',
95
- installString
96
- ], {
97
- cwd: tmp,
98
- env: env
99
- }));
100
- queue.defer(function(cb) {
101
- return _fs.default.rename(installedAt, cachedAt, cb.bind(null, null));
102
- });
103
- queue.await(function(err) {
104
- // clean up whether installed or not
105
- (0, _rimraf2.default)(tmp, {
106
- disableGlob: true
107
- }, function() {
108
- return callback(err);
109
- });
110
- });
111
- });
112
- }
113
- /* 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 +0,0 @@
1
- {"version":3,"sources":["ensureCached.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport spawn from 'cross-spawn-cb';\nimport access from 'fs-access-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport tempSuffix from 'temp-suffix';\nimport parseInstallString from './parseInstallString.js';\n\nexport type EnsureCachedCallback = (err?: Error) => void;\n\nexport default function ensureCached(installString: string, cachedAt: string, callback: EnsureCachedCallback) {\n access(cachedAt, (err?: Error) => {\n if (!err) return callback(); // already cached\n\n const { name } = parseInstallString(installString);\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((err) => {\n // clean up whether installed or not\n rimraf2(tmp, { disableGlob: true }, () => callback(err));\n });\n });\n}\n"],"names":["ensureCached","installString","cachedAt","callback","access","err","path","name","parseInstallString","tmp","tempSuffix","installedAt","join","split","process","env","NODE_OPTIONS","queue","Queue","defer","mkdirp","bind","fs","writeFile","spawn","cwd","cb","rename","await","rimraf2","disableGlob"],"mappings":";;;;+BAYA;;;eAAwBA;;;yDAZT;2DACE;mEACC;qEACC;oEACA;8DACD;8DACE;iEACG;yEACQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIhB,SAASA,aAAaC,aAAqB,EAAEC,QAAgB,EAAEC,QAA8B;IAC1GC,IAAAA,uBAAM,EAACF,UAAU,SAACG;YAKIC;QAJpB,IAAI,CAACD,KAAK,OAAOF,YAAY,iBAAiB;QAE9C,IAAM,AAAEI,OAASC,IAAAA,2BAAkB,EAACP,eAA5BM;QACR,IAAME,MAAM,AAAC,GAAcC,OAAZR,UAAS,KAAgB,OAAbQ,IAAAA,mBAAU;QACrC,IAAMC,cAAcL,CAAAA,SAAAA,aAAI,EAACM,IAAI,OAATN,QAAAA;YAAUG;YAAK;SAAmC,CAAlDH,OAA+B,qBAAGC,KAAKM,KAAK,CAAC;QACjE,IAAiCC,eAAAA,QAAQC,GAAG,EAAtC,AAAEC,eAAyBF,aAAzBE,cAAiBD,iCAAQD;YAAzBE;;QAER,IAAMC,QAAQ,IAAIC,gBAAK,CAAC;QACxBD,MAAME,KAAK,CAACC,sBAAM,CAACC,IAAI,CAAC,MAAMZ;QAC9BQ,MAAME,KAAK,CAACG,WAAE,CAACC,SAAS,CAACF,IAAI,CAAC,MAAMf,aAAI,CAACM,IAAI,CAACH,KAAK,iBAAiB,MAAM;QAC1EQ,MAAME,KAAK,CAACK,qBAAK,CAACH,IAAI,CAAC,MAAM,OAAO;YAAC;YAAWpB;SAAc,EAAE;YAAEwB,KAAKhB;YAAKM,KAAAA;QAAI;QAChFE,MAAME,KAAK,CAAC,SAACO;mBAAOJ,WAAE,CAACK,MAAM,CAAChB,aAAaT,UAAUwB,GAAGL,IAAI,CAAC,MAAM;;QACnEJ,MAAMW,KAAK,CAAC,SAACvB;YACX,oCAAoC;YACpCwB,IAAAA,gBAAO,EAACpB,KAAK;gBAAEqB,aAAa;YAAK,GAAG;uBAAM3B,SAASE;;QACrD;IACF;AACF"}
@@ -1,48 +0,0 @@
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) return Array.from(iter);
21
- }
22
- function _non_iterable_spread() {
23
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
24
- }
25
- function _to_consumable_array(arr) {
26
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
27
- }
28
- function _unsupported_iterable_to_array(o, minLen) {
29
- if (!o) return;
30
- if (typeof o === "string") return _array_like_to_array(o, minLen);
31
- var n = Object.prototype.toString.call(o).slice(8, -1);
32
- if (n === "Object" && o.constructor) n = o.constructor.name;
33
- if (n === "Map" || n === "Set") return Array.from(n);
34
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
35
- }
36
- function parseInstallString(installString) {
37
- var installParts = installString.split('/');
38
- var nameVersionParts = installParts.pop().split('@');
39
- var version = nameVersionParts.length > 1 ? nameVersionParts.pop() : undefined;
40
- var name = _to_consumable_array(installParts).concat([
41
- nameVersionParts.join('@')
42
- ]).join('/');
43
- return {
44
- name: name,
45
- version: version
46
- };
47
- }
48
- /* 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 +0,0 @@
1
- {"version":3,"sources":["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;IAC9D,IAAMC,eAAeD,cAAcE,KAAK,CAAC;IACzC,IAAMC,mBAAmBF,aAAaG,GAAG,GAAGF,KAAK,CAAC;IAClD,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"}
@@ -1,24 +0,0 @@
1
- import fs from 'fs';
2
- import os from 'os';
3
- import path from 'path';
4
- import access from 'fs-access-compat';
5
- import ensureCached from './lib/ensureCached.mjs';
6
- const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);
7
- const symlinkType = isWindows ? 'junction' : 'dir';
8
- const cache = path.join(os.tmpdir(), 'ts-swc-transform', 'cache');
9
- export default function installModule(installString, installedAt, callback) {
10
- access(installedAt, (err)=>{
11
- if (!err) return callback(); // already installed
12
- const cachedAt = path.join(cache, installString);
13
- ensureCached(installString, cachedAt, (err)=>{
14
- if (err) {
15
- console.log(`Unsupported version: ${installString}`);
16
- return callback();
17
- }
18
- fs.symlink(cachedAt, installedAt, symlinkType, (err)=>{
19
- if (err) return callback(err);
20
- access(installedAt, callback);
21
- });
22
- });
23
- });
24
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport access from 'fs-access-compat';\nimport ensureCached from './lib/ensureCached.js';\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\nexport default function installModule(installString, installedAt, callback) {\n access(installedAt, (err) => {\n if (!err) return callback(); // already installed\n const cachedAt = path.join(cache, installString);\n\n ensureCached(installString, cachedAt, (err) => {\n if (err) {\n console.log(`Unsupported version: ${installString}`);\n return callback();\n }\n\n fs.symlink(cachedAt, installedAt, symlinkType, (err) => {\n if (err) return callback(err);\n access(installedAt, callback);\n });\n });\n });\n}\n"],"names":["fs","os","path","access","ensureCached","isWindows","process","platform","test","env","OSTYPE","symlinkType","cache","join","tmpdir","installModule","installString","installedAt","callback","err","cachedAt","console","log","symlink"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,YAAY,mBAAmB;AACtC,OAAOC,kBAAkB,wBAAwB;AAEjD,MAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,MAAMC,cAAcN,YAAY,aAAa;AAC7C,MAAMO,QAAQV,KAAKW,IAAI,CAACZ,GAAGa,MAAM,IAAI,oBAAoB;AAEzD,eAAe,SAASC,cAAcC,aAAa,EAAEC,WAAW,EAAEC,QAAQ;IACxEf,OAAOc,aAAa,CAACE;QACnB,IAAI,CAACA,KAAK,OAAOD,YAAY,oBAAoB;QACjD,MAAME,WAAWlB,KAAKW,IAAI,CAACD,OAAOI;QAElCZ,aAAaY,eAAeI,UAAU,CAACD;YACrC,IAAIA,KAAK;gBACPE,QAAQC,GAAG,CAAC,CAAC,qBAAqB,EAAEN,eAAe;gBACnD,OAAOE;YACT;YAEAlB,GAAGuB,OAAO,CAACH,UAAUH,aAAaN,aAAa,CAACQ;gBAC9C,IAAIA,KAAK,OAAOD,SAASC;gBACzBhB,OAAOc,aAAaC;YACtB;QACF;IACF;AACF"}
@@ -1,35 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import spawn from 'cross-spawn-cb';
4
- import access from 'fs-access-compat';
5
- import mkdirp from 'mkdirp-classic';
6
- import Queue from 'queue-cb';
7
- import rimraf2 from 'rimraf2';
8
- import tempSuffix from 'temp-suffix';
9
- import parseInstallString from './parseInstallString.mjs';
10
- export default function ensureCached(installString, cachedAt, callback) {
11
- access(cachedAt, (err)=>{
12
- if (!err) return callback(); // already cached
13
- const { name } = parseInstallString(installString);
14
- const tmp = `${cachedAt}-${tempSuffix()}`;
15
- const installedAt = path.join(tmp, 'node_modules', ...name.split('/'));
16
- const { NODE_OPTIONS, ...env } = process.env;
17
- const queue = new Queue(1);
18
- queue.defer(mkdirp.bind(null, tmp));
19
- queue.defer(fs.writeFile.bind(null, path.join(tmp, 'package.json'), '{}', 'utf8'));
20
- queue.defer(spawn.bind(null, 'npm', [
21
- 'install',
22
- installString
23
- ], {
24
- cwd: tmp,
25
- env
26
- }));
27
- queue.defer((cb)=>fs.rename(installedAt, cachedAt, cb.bind(null, null)));
28
- queue.await((err)=>{
29
- // clean up whether installed or not
30
- rimraf2(tmp, {
31
- disableGlob: true
32
- }, ()=>callback(err));
33
- });
34
- });
35
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ensureCached.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport spawn from 'cross-spawn-cb';\nimport access from 'fs-access-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport rimraf2 from 'rimraf2';\nimport tempSuffix from 'temp-suffix';\nimport parseInstallString from './parseInstallString.js';\n\nexport type EnsureCachedCallback = (err?: Error) => void;\n\nexport default function ensureCached(installString: string, cachedAt: string, callback: EnsureCachedCallback) {\n access(cachedAt, (err?: Error) => {\n if (!err) return callback(); // already cached\n\n const { name } = parseInstallString(installString);\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((err) => {\n // clean up whether installed or not\n rimraf2(tmp, { disableGlob: true }, () => callback(err));\n });\n });\n}\n"],"names":["fs","path","spawn","access","mkdirp","Queue","rimraf2","tempSuffix","parseInstallString","ensureCached","installString","cachedAt","callback","err","name","tmp","installedAt","join","split","NODE_OPTIONS","env","process","queue","defer","bind","writeFile","cwd","cb","rename","await","disableGlob"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,iBAAiB;AACnC,OAAOC,YAAY,mBAAmB;AACtC,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,gBAAgB,cAAc;AACrC,OAAOC,wBAAwB,0BAA0B;AAIzD,eAAe,SAASC,aAAaC,aAAqB,EAAEC,QAAgB,EAAEC,QAA8B;IAC1GT,OAAOQ,UAAU,CAACE;QAChB,IAAI,CAACA,KAAK,OAAOD,YAAY,iBAAiB;QAE9C,MAAM,EAAEE,IAAI,EAAE,GAAGN,mBAAmBE;QACpC,MAAMK,MAAM,GAAGJ,SAAS,CAAC,EAAEJ,cAAc;QACzC,MAAMS,cAAcf,KAAKgB,IAAI,CAACF,KAAK,mBAAmBD,KAAKI,KAAK,CAAC;QACjE,MAAM,EAAEC,YAAY,EAAE,GAAGC,KAAK,GAAGC,QAAQD,GAAG;QAE5C,MAAME,QAAQ,IAAIjB,MAAM;QACxBiB,MAAMC,KAAK,CAACnB,OAAOoB,IAAI,CAAC,MAAMT;QAC9BO,MAAMC,KAAK,CAACvB,GAAGyB,SAAS,CAACD,IAAI,CAAC,MAAMvB,KAAKgB,IAAI,CAACF,KAAK,iBAAiB,MAAM;QAC1EO,MAAMC,KAAK,CAACrB,MAAMsB,IAAI,CAAC,MAAM,OAAO;YAAC;YAAWd;SAAc,EAAE;YAAEgB,KAAKX;YAAKK;QAAI;QAChFE,MAAMC,KAAK,CAAC,CAACI,KAAO3B,GAAG4B,MAAM,CAACZ,aAAaL,UAAUgB,GAAGH,IAAI,CAAC,MAAM;QACnEF,MAAMO,KAAK,CAAC,CAAChB;YACX,oCAAoC;YACpCP,QAAQS,KAAK;gBAAEe,aAAa;YAAK,GAAG,IAAMlB,SAASC;QACrD;IACF;AACF"}
@@ -1,13 +0,0 @@
1
- export default function parseInstallString(installString) {
2
- const installParts = installString.split('/');
3
- const nameVersionParts = installParts.pop().split('@');
4
- const version = nameVersionParts.length > 1 ? nameVersionParts.pop() : undefined;
5
- const name = [
6
- ...installParts,
7
- nameVersionParts.join('@')
8
- ].join('/');
9
- return {
10
- name,
11
- version
12
- };
13
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["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":"AAAA,eAAe,SAASA,mBAAmBC,aAAqB;IAC9D,MAAMC,eAAeD,cAAcE,KAAK,CAAC;IACzC,MAAMC,mBAAmBF,aAAaG,GAAG,GAAGF,KAAK,CAAC;IAClD,MAAMG,UAAUF,iBAAiBG,MAAM,GAAG,IAAIH,iBAAiBC,GAAG,KAAKG;IACvE,MAAMC,OAAO;WAAIP;QAAcE,iBAAiBM,IAAI,CAAC;KAAK,CAACA,IAAI,CAAC;IAChE,OAAO;QACLD;QACAH;IACF;AACF"}
@@ -1 +0,0 @@
1
- export default function installModule(installString: any, installedAt: any, callback: any): void;
@@ -1,2 +0,0 @@
1
- export type EnsureCachedCallback = (err?: Error) => void;
2
- export default function ensureCached(installString: string, cachedAt: string, callback: EnsureCachedCallback): void;
@@ -1,4 +0,0 @@
1
- export default function parseInstallString(installString: string): {
2
- name: string;
3
- version: string;
4
- };