@appium/support 2.61.0 → 3.0.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 (59) hide show
  1. package/build/lib/console.d.ts +1 -1
  2. package/build/lib/console.js +169 -105
  3. package/build/lib/console.js.map +1 -1
  4. package/build/lib/env.js +142 -117
  5. package/build/lib/env.js.map +1 -1
  6. package/build/lib/fs.d.ts +9 -2
  7. package/build/lib/fs.d.ts.map +1 -1
  8. package/build/lib/fs.js +358 -246
  9. package/build/lib/fs.js.map +1 -1
  10. package/build/lib/image-util.js +139 -124
  11. package/build/lib/image-util.js.map +1 -1
  12. package/build/lib/index.js +64 -103
  13. package/build/lib/index.js.map +1 -1
  14. package/build/lib/log-internal.d.ts +4 -27
  15. package/build/lib/log-internal.d.ts.map +1 -1
  16. package/build/lib/log-internal.js +141 -123
  17. package/build/lib/log-internal.js.map +1 -1
  18. package/build/lib/logger.d.ts +1 -1
  19. package/build/lib/logger.d.ts.map +1 -1
  20. package/build/lib/logger.js +5 -14
  21. package/build/lib/logger.js.map +1 -1
  22. package/build/lib/logging.d.ts +3 -4
  23. package/build/lib/logging.d.ts.map +1 -1
  24. package/build/lib/logging.js +139 -110
  25. package/build/lib/logging.js.map +1 -1
  26. package/build/lib/mjpeg.js +169 -141
  27. package/build/lib/mjpeg.js.map +1 -1
  28. package/build/lib/mkdirp.js +7 -13
  29. package/build/lib/mkdirp.js.map +1 -1
  30. package/build/lib/net.d.ts.map +1 -1
  31. package/build/lib/net.js +278 -254
  32. package/build/lib/net.js.map +1 -1
  33. package/build/lib/node.js +203 -192
  34. package/build/lib/node.js.map +1 -1
  35. package/build/lib/npm.d.ts +19 -4
  36. package/build/lib/npm.d.ts.map +1 -1
  37. package/build/lib/npm.js +277 -228
  38. package/build/lib/npm.js.map +1 -1
  39. package/build/lib/plist.js +145 -136
  40. package/build/lib/plist.js.map +1 -1
  41. package/build/lib/process.js +41 -42
  42. package/build/lib/process.js.map +1 -1
  43. package/build/lib/system.js +39 -56
  44. package/build/lib/system.js.map +1 -1
  45. package/build/lib/tempdir.js +112 -73
  46. package/build/lib/tempdir.js.map +1 -1
  47. package/build/lib/timing.js +99 -84
  48. package/build/lib/timing.js.map +1 -1
  49. package/build/lib/util.js +454 -356
  50. package/build/lib/util.js.map +1 -1
  51. package/build/lib/zip.js +469 -423
  52. package/build/lib/zip.js.map +1 -1
  53. package/build/tsconfig.tsbuildinfo +1 -1
  54. package/lib/fs.js +15 -1
  55. package/lib/log-internal.js +12 -16
  56. package/lib/logging.js +2 -3
  57. package/lib/net.js +15 -6
  58. package/lib/npm.js +28 -18
  59. package/package.json +20 -19
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","names":["VERSION_PATTERN","isWindows","os","type","isMac","isLinux","isOSWin64","process","arch","_","has","env","stdout","exec","trim","is64","macOsxVersion","err","Error","versionMatch"],"sources":["../../lib/system.js"],"sourcesContent":["import {exec} from 'teen_process';\nimport _ from 'lodash';\nimport os from 'os';\n\nconst VERSION_PATTERN = /^(\\d+\\.\\d+)/m;\n\nfunction isWindows() {\n return os.type() === 'Windows_NT';\n}\n\nfunction isMac() {\n return os.type() === 'Darwin';\n}\n\nfunction isLinux() {\n return !isWindows() && !isMac();\n}\n\nfunction isOSWin64() {\n return process.arch === 'x64' || _.has(process.env, 'PROCESSOR_ARCHITEW6432');\n}\n\nasync function arch() {\n if (isLinux() || isMac()) {\n let {stdout} = await exec('uname', ['-m']);\n return stdout.trim() === 'i686' ? '32' : '64';\n } else if (isWindows()) {\n let is64 = this.isOSWin64();\n return is64 ? '64' : '32';\n }\n}\n\nasync function macOsxVersion() {\n let stdout;\n try {\n stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim();\n } catch (err) {\n throw new Error(`Could not detect Mac OS X Version: ${err}`);\n }\n\n const versionMatch = VERSION_PATTERN.exec(stdout);\n if (!versionMatch) {\n throw new Error(`Could not detect Mac OS X Version from sw_vers output: '${stdout}'`);\n }\n return versionMatch[1];\n}\n\nexport {isWindows, isMac, isLinux, isOSWin64, arch, macOsxVersion};\n"],"mappings":";;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;AAEA,MAAMA,eAAe,GAAG,cAAxB;;AAEA,SAASC,SAAT,GAAqB;EACnB,OAAOC,WAAA,CAAGC,IAAH,OAAc,YAArB;AACD;;AAED,SAASC,KAAT,GAAiB;EACf,OAAOF,WAAA,CAAGC,IAAH,OAAc,QAArB;AACD;;AAED,SAASE,OAAT,GAAmB;EACjB,OAAO,CAACJ,SAAS,EAAV,IAAgB,CAACG,KAAK,EAA7B;AACD;;AAED,SAASE,SAAT,GAAqB;EACnB,OAAOC,OAAO,CAACC,IAAR,KAAiB,KAAjB,IAA0BC,eAAA,CAAEC,GAAF,CAAMH,OAAO,CAACI,GAAd,EAAmB,wBAAnB,CAAjC;AACD;;AAED,eAAeH,IAAf,GAAsB;EACpB,IAAIH,OAAO,MAAMD,KAAK,EAAtB,EAA0B;IACxB,IAAI;MAACQ;IAAD,IAAW,MAAM,IAAAC,kBAAA,EAAK,OAAL,EAAc,CAAC,IAAD,CAAd,CAArB;IACA,OAAOD,MAAM,CAACE,IAAP,OAAkB,MAAlB,GAA2B,IAA3B,GAAkC,IAAzC;EACD,CAHD,MAGO,IAAIb,SAAS,EAAb,EAAiB;IACtB,IAAIc,IAAI,GAAG,KAAKT,SAAL,EAAX;IACA,OAAOS,IAAI,GAAG,IAAH,GAAU,IAArB;EACD;AACF;;AAED,eAAeC,aAAf,GAA+B;EAC7B,IAAIJ,MAAJ;;EACA,IAAI;IACFA,MAAM,GAAG,CAAC,MAAM,IAAAC,kBAAA,EAAK,SAAL,EAAgB,CAAC,iBAAD,CAAhB,CAAP,EAA6CD,MAA7C,CAAoDE,IAApD,EAAT;EACD,CAFD,CAEE,OAAOG,GAAP,EAAY;IACZ,MAAM,IAAIC,KAAJ,CAAW,sCAAqCD,GAAI,EAApD,CAAN;EACD;;EAED,MAAME,YAAY,GAAGnB,eAAe,CAACa,IAAhB,CAAqBD,MAArB,CAArB;;EACA,IAAI,CAACO,YAAL,EAAmB;IACjB,MAAM,IAAID,KAAJ,CAAW,2DAA0DN,MAAO,GAA5E,CAAN;EACD;;EACD,OAAOO,YAAY,CAAC,CAAD,CAAnB;AACD"}
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../lib/system.js"],"names":[],"mappings":";;;;;;AAAA,+CAAkC;AAClC,oDAAuB;AACvB,4CAAoB;AAEpB,MAAM,eAAe,GAAG,cAAc,CAAC;AAEvC,SAAS,SAAS;IAChB,OAAO,YAAE,CAAC,IAAI,EAAE,KAAK,YAAY,CAAC;AACpC,CAAC;AAuCO,8BAAS;AArCjB,SAAS,KAAK;IACZ,OAAO,YAAE,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC;AAChC,CAAC;AAmCkB,sBAAK;AAjCxB,SAAS,OAAO;IACd,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC;AA+ByB,0BAAO;AA7BjC,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,gBAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;AAChF,CAAC;AA2BkC,8BAAS;AAzB5C,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,EAAE,IAAI,KAAK,EAAE,EAAE;QACxB,IAAI,EAAC,MAAM,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;KAC/C;SAAM,IAAI,SAAS,EAAE,EAAE;QACtB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;KAC3B;AACH,CAAC;AAiB6C,oBAAI;AAflD,KAAK,UAAU,aAAa;IAC1B,IAAI,MAAM,CAAC;IACX,IAAI;QACF,MAAM,GAAG,CAAC,MAAM,IAAA,mBAAI,EAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACrE;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;KAC9D;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,2DAA2D,MAAM,GAAG,CAAC,CAAC;KACvF;IACD,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAEmD,sCAAa"}
@@ -1,88 +1,127 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.open = open;
7
- exports.openDir = void 0;
8
- exports.path = path;
9
- exports.staticDir = staticDir;
10
-
11
- require("source-map-support/register");
12
-
13
- var _fs = _interopRequireDefault(require("./fs"));
14
-
15
- var _os = _interopRequireDefault(require("os"));
16
-
17
- var _path = _interopRequireDefault(require("path"));
18
-
19
- var _constants = _interopRequireDefault(require("constants"));
20
-
21
- var _logger = _interopRequireDefault(require("./logger"));
22
-
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
-
25
- const RDWR_EXCL = _constants.default.O_CREAT | _constants.default.O_TRUNC | _constants.default.O_RDWR | _constants.default.O_EXCL;
26
-
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.staticDir = exports.openDir = exports.path = exports.open = void 0;
7
+ /* This library is originated from temp.js at http://github.com/bruce/node-temp */
8
+ const fs_1 = __importDefault(require("./fs"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const constants_1 = __importDefault(require("constants"));
12
+ const logger_1 = __importDefault(require("./logger"));
13
+ const RDWR_EXCL = constants_1.default.O_CREAT | constants_1.default.O_TRUNC | constants_1.default.O_RDWR | constants_1.default.O_EXCL;
14
+ /**
15
+ * Generate a temporary directory in os.tempdir() or process.env.APPIUM_TMP_DIR.
16
+ * e.g.
17
+ * - No `process.env.APPIUM_TMP_DIR`: `/var/folders/34/2222sh8n27d6rcp7jqlkw8km0000gn/T/xxxxxxxx.yyyy`
18
+ * - With `process.env.APPIUM_TMP_DIR = '/path/to/root'`: `/path/to/root/xxxxxxxx.yyyy`
19
+ *
20
+ * @returns {Promise<string>} A path to the temporary directory
21
+ */
27
22
  async function tempDir() {
28
- const now = new Date();
29
-
30
- const filePath = _path.default.join(process.env.APPIUM_TMP_DIR || _os.default.tmpdir(), [now.getFullYear(), now.getMonth(), now.getDate(), '-', process.pid, '-', (Math.random() * 0x100000000 + 1).toString(36)].join(''));
31
-
32
- await _fs.default.mkdir(filePath);
33
- return filePath;
23
+ const now = new Date();
24
+ const filePath = path_1.default.join(process.env.APPIUM_TMP_DIR || os_1.default.tmpdir(), [
25
+ now.getFullYear(),
26
+ now.getMonth(),
27
+ now.getDate(),
28
+ '-',
29
+ process.pid,
30
+ '-',
31
+ (Math.random() * 0x100000000 + 1).toString(36),
32
+ ].join(''));
33
+ // creates a temp directory using the date and a random string
34
+ await fs_1.default.mkdir(filePath);
35
+ return filePath;
34
36
  }
35
-
37
+ /**
38
+ * @typedef Affixes
39
+ * @property {string} [prefix] - prefix of the temp directory name
40
+ * @property {string} [suffix] - suffix of the temp directory name
41
+ */
42
+ /**
43
+ * Generate a temporary directory in os.tempdir() or process.env.APPIUM_TMP_DIR
44
+ * with arbitrary prefix/suffix for the directory name.
45
+ *
46
+ * @param {string|Affixes} rawAffixes
47
+ * @param {string} [defaultPrefix]
48
+ * @returns {Promise<string>} A path to the temporary directory with rawAffixes and defaultPrefix
49
+ */
36
50
  async function path(rawAffixes, defaultPrefix) {
37
- const affixes = parseAffixes(rawAffixes, defaultPrefix);
38
- const name = `${affixes.prefix || ''}${affixes.suffix || ''}`;
39
- const tempDirectory = await tempDir();
40
- return _path.default.join(tempDirectory, name);
51
+ const affixes = parseAffixes(rawAffixes, defaultPrefix);
52
+ const name = `${affixes.prefix || ''}${affixes.suffix || ''}`;
53
+ const tempDirectory = await tempDir();
54
+ return path_1.default.join(tempDirectory, name);
41
55
  }
42
-
56
+ exports.path = path;
57
+ /**
58
+ * @typedef OpenedAffixes
59
+ * @property {string} path - The path to file
60
+ * @property {number} fd - The file descriptor opened
61
+ */
62
+ /**
63
+ * Generate a temporary directory in os.tempdir() or process.env.APPIUM_TMP_DIR
64
+ * with arbitrary prefix/suffix for the directory name and return it as open.
65
+ *
66
+ * @param {Affixes} affixes
67
+ * @returns {Promise<OpenedAffixes>}
68
+ */
43
69
  async function open(affixes) {
44
- const filePath = await path(affixes, 'f-');
45
-
46
- try {
47
- let fd = await _fs.default.open(filePath, RDWR_EXCL, 0o600);
48
- return {
49
- path: filePath,
50
- fd
51
- };
52
- } catch (err) {
53
- return _logger.default.errorAndThrow(err);
54
- }
70
+ const filePath = await path(affixes, 'f-');
71
+ try {
72
+ let fd = await fs_1.default.open(filePath, RDWR_EXCL, 0o600);
73
+ // opens the file in mode 384
74
+ return { path: filePath, fd };
75
+ }
76
+ catch (err) {
77
+ return logger_1.default.errorAndThrow(err);
78
+ }
55
79
  }
56
-
80
+ exports.open = open;
81
+ /**
82
+ *
83
+ * Returns prefix/suffix object
84
+ *
85
+ * @param {string|Affixes} rawAffixes
86
+ * @param {string} [defaultPrefix]
87
+ * @returns {Affixes}
88
+ */
57
89
  function parseAffixes(rawAffixes, defaultPrefix) {
58
- let affixes = {};
59
-
60
- if (rawAffixes) {
61
- switch (typeof rawAffixes) {
62
- case 'string':
63
- affixes.prefix = rawAffixes;
64
- break;
65
-
66
- case 'object':
67
- affixes = rawAffixes;
68
- break;
69
-
70
- default:
71
- throw new Error(`Unknown affix declaration: ${affixes}`);
90
+ /** @type {Affixes} */
91
+ let affixes = {};
92
+ if (rawAffixes) {
93
+ switch (typeof rawAffixes) {
94
+ case 'string':
95
+ affixes.prefix = rawAffixes;
96
+ break;
97
+ case 'object':
98
+ affixes = rawAffixes;
99
+ break;
100
+ default:
101
+ throw new Error(`Unknown affix declaration: ${affixes}`);
102
+ }
72
103
  }
73
- } else {
74
- affixes.prefix = defaultPrefix;
75
- }
76
-
77
- return affixes;
104
+ else {
105
+ affixes.prefix = defaultPrefix;
106
+ }
107
+ return affixes;
78
108
  }
79
-
80
109
  const _static = tempDir();
81
-
110
+ /**
111
+ * Returns a new path to a temporary directory
112
+ *
113
+ * @returns {string} A new tempDir() if tempRootDirectory is not provided
114
+ */
82
115
  const openDir = tempDir;
83
116
  exports.openDir = openDir;
84
-
117
+ /**
118
+ * Returns a path to a temporary directory whcih is defined as static in the same process
119
+ *
120
+ * @returns {Promise<string>} A temp directory path whcih is defined as static in the same process
121
+ */
122
+ // eslint-disable-next-line require-await
85
123
  async function staticDir() {
86
- return _static;
124
+ return _static;
87
125
  }
88
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSRFdSX0VYQ0wiLCJjbnN0IiwiT19DUkVBVCIsIk9fVFJVTkMiLCJPX1JEV1IiLCJPX0VYQ0wiLCJ0ZW1wRGlyIiwibm93IiwiRGF0ZSIsImZpbGVQYXRoIiwibm9kZVBhdGgiLCJqb2luIiwicHJvY2VzcyIsImVudiIsIkFQUElVTV9UTVBfRElSIiwib3MiLCJ0bXBkaXIiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsInBpZCIsIk1hdGgiLCJyYW5kb20iLCJ0b1N0cmluZyIsImZzIiwibWtkaXIiLCJwYXRoIiwicmF3QWZmaXhlcyIsImRlZmF1bHRQcmVmaXgiLCJhZmZpeGVzIiwicGFyc2VBZmZpeGVzIiwibmFtZSIsInByZWZpeCIsInN1ZmZpeCIsInRlbXBEaXJlY3RvcnkiLCJvcGVuIiwiZmQiLCJlcnIiLCJsb2ciLCJlcnJvckFuZFRocm93IiwiRXJyb3IiLCJfc3RhdGljIiwib3BlbkRpciIsInN0YXRpY0RpciJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi90ZW1wZGlyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFRoaXMgbGlicmFyeSBpcyBvcmlnaW5hdGVkIGZyb20gdGVtcC5qcyBhdCBodHRwOi8vZ2l0aHViLmNvbS9icnVjZS9ub2RlLXRlbXAgKi9cbmltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgbm9kZVBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgY25zdCBmcm9tICdjb25zdGFudHMnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5cbmNvbnN0IFJEV1JfRVhDTCA9IGNuc3QuT19DUkVBVCB8IGNuc3QuT19UUlVOQyB8IGNuc3QuT19SRFdSIHwgY25zdC5PX0VYQ0w7XG5cbi8qKlxuICogR2VuZXJhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIG9zLnRlbXBkaXIoKSBvciBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUi5cbiAqIGUuZy5cbiAqIC0gTm8gYHByb2Nlc3MuZW52LkFQUElVTV9UTVBfRElSYDogYC92YXIvZm9sZGVycy8zNC8yMjIyc2g4bjI3ZDZyY3A3anFsa3c4a20wMDAwZ24vVC94eHh4eHh4eC55eXl5YFxuICogLSBXaXRoIGBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUiA9ICcvcGF0aC90by9yb290J2A6IGAvcGF0aC90by9yb290L3h4eHh4eHh4Lnl5eXlgXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwYXRoIHRvIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHRlbXBEaXIoKSB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGZpbGVQYXRoID0gbm9kZVBhdGguam9pbihcbiAgICBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUiB8fCBvcy50bXBkaXIoKSxcbiAgICBbXG4gICAgICBub3cuZ2V0RnVsbFllYXIoKSxcbiAgICAgIG5vdy5nZXRNb250aCgpLFxuICAgICAgbm93LmdldERhdGUoKSxcbiAgICAgICctJyxcbiAgICAgIHByb2Nlc3MucGlkLFxuICAgICAgJy0nLFxuICAgICAgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAwMCArIDEpLnRvU3RyaW5nKDM2KSxcbiAgICBdLmpvaW4oJycpXG4gICk7XG4gIC8vIGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yeSB1c2luZyB0aGUgZGF0ZSBhbmQgYSByYW5kb20gc3RyaW5nXG5cbiAgYXdhaXQgZnMubWtkaXIoZmlsZVBhdGgpO1xuXG4gIHJldHVybiBmaWxlUGF0aDtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiBBZmZpeGVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3ByZWZpeF0gLSBwcmVmaXggb2YgdGhlIHRlbXAgZGlyZWN0b3J5IG5hbWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc3VmZml4XSAtIHN1ZmZpeCBvZiB0aGUgdGVtcCBkaXJlY3RvcnkgbmFtZVxuICovXG5cbi8qKlxuICogR2VuZXJhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIG9zLnRlbXBkaXIoKSBvciBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUlxuICogd2l0aCBhcmJpdHJhcnkgcHJlZml4L3N1ZmZpeCBmb3IgdGhlIGRpcmVjdG9yeSBuYW1lLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfEFmZml4ZXN9IHJhd0FmZml4ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBbZGVmYXVsdFByZWZpeF1cbiAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59ICBBIHBhdGggdG8gdGhlIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2l0aCByYXdBZmZpeGVzIGFuZCBkZWZhdWx0UHJlZml4XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHBhdGgocmF3QWZmaXhlcywgZGVmYXVsdFByZWZpeCkge1xuICBjb25zdCBhZmZpeGVzID0gcGFyc2VBZmZpeGVzKHJhd0FmZml4ZXMsIGRlZmF1bHRQcmVmaXgpO1xuICBjb25zdCBuYW1lID0gYCR7YWZmaXhlcy5wcmVmaXggfHwgJyd9JHthZmZpeGVzLnN1ZmZpeCB8fCAnJ31gO1xuICBjb25zdCB0ZW1wRGlyZWN0b3J5ID0gYXdhaXQgdGVtcERpcigpO1xuICByZXR1cm4gbm9kZVBhdGguam9pbih0ZW1wRGlyZWN0b3J5LCBuYW1lKTtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiBPcGVuZWRBZmZpeGVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcGF0aCAtIFRoZSBwYXRoIHRvIGZpbGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBmZCAtIFRoZSBmaWxlIGRlc2NyaXB0b3Igb3BlbmVkXG4gKi9cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gb3MudGVtcGRpcigpIG9yIHByb2Nlc3MuZW52LkFQUElVTV9UTVBfRElSXG4gKiB3aXRoIGFyYml0cmFyeSBwcmVmaXgvc3VmZml4IGZvciB0aGUgZGlyZWN0b3J5IG5hbWUgYW5kIHJldHVybiBpdCBhcyBvcGVuLlxuICpcbiAqIEBwYXJhbSB7QWZmaXhlc30gYWZmaXhlc1xuICogQHJldHVybnMge1Byb21pc2U8T3BlbmVkQWZmaXhlcz59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG9wZW4oYWZmaXhlcykge1xuICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IHBhdGgoYWZmaXhlcywgJ2YtJyk7XG4gIHRyeSB7XG4gICAgbGV0IGZkID0gYXdhaXQgZnMub3BlbihmaWxlUGF0aCwgUkRXUl9FWENMLCAwbzYwMCk7XG4gICAgLy8gb3BlbnMgdGhlIGZpbGUgaW4gbW9kZSAzODRcbiAgICByZXR1cm4ge3BhdGg6IGZpbGVQYXRoLCBmZH07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBsb2cuZXJyb3JBbmRUaHJvdyhlcnIpO1xuICB9XG59XG5cbi8qKlxuICpcbiAqIFJldHVybnMgcHJlZml4L3N1ZmZpeCBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xBZmZpeGVzfSByYXdBZmZpeGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gW2RlZmF1bHRQcmVmaXhdXG4gKiBAcmV0dXJucyB7QWZmaXhlc31cbiAqL1xuZnVuY3Rpb24gcGFyc2VBZmZpeGVzKHJhd0FmZml4ZXMsIGRlZmF1bHRQcmVmaXgpIHtcbiAgLyoqIEB0eXBlIHtBZmZpeGVzfSAqL1xuICBsZXQgYWZmaXhlcyA9IHt9O1xuICBpZiAocmF3QWZmaXhlcykge1xuICAgIHN3aXRjaCAodHlwZW9mIHJhd0FmZml4ZXMpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIGFmZml4ZXMucHJlZml4ID0gcmF3QWZmaXhlcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBhZmZpeGVzID0gcmF3QWZmaXhlcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYWZmaXggZGVjbGFyYXRpb246ICR7YWZmaXhlc31gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYWZmaXhlcy5wcmVmaXggPSBkZWZhdWx0UHJlZml4O1xuICB9XG4gIHJldHVybiBhZmZpeGVzO1xufVxuXG5jb25zdCBfc3RhdGljID0gdGVtcERpcigpO1xuXG4vKipcbiAqIFJldHVybnMgYSBuZXcgcGF0aCB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnlcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIG5ldyB0ZW1wRGlyKCkgaWYgdGVtcFJvb3REaXJlY3RvcnkgaXMgbm90IHByb3ZpZGVkXG4gKi9cbmNvbnN0IG9wZW5EaXIgPSB0ZW1wRGlyO1xuXG4vKipcbiAqIFJldHVybnMgYSBwYXRoIHRvIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB3aGNpaCBpcyBkZWZpbmVkIGFzIHN0YXRpYyBpbiB0aGUgc2FtZSBwcm9jZXNzXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSB0ZW1wIGRpcmVjdG9yeSBwYXRoIHdoY2loIGlzIGRlZmluZWQgYXMgc3RhdGljIGluIHRoZSBzYW1lIHByb2Nlc3NcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmFzeW5jIGZ1bmN0aW9uIHN0YXRpY0RpcigpIHtcbiAgcmV0dXJuIF9zdGF0aWM7XG59XG5cbmV4cG9ydCB7b3BlbiwgcGF0aCwgb3BlbkRpciwgc3RhdGljRGlyfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxTQUFTLEdBQUdDLGtCQUFBLENBQUtDLE9BQUwsR0FBZUQsa0JBQUEsQ0FBS0UsT0FBcEIsR0FBOEJGLGtCQUFBLENBQUtHLE1BQW5DLEdBQTRDSCxrQkFBQSxDQUFLSSxNQUFuRTs7QUFVQSxlQUFlQyxPQUFmLEdBQXlCO0VBQ3ZCLE1BQU1DLEdBQUcsR0FBRyxJQUFJQyxJQUFKLEVBQVo7O0VBQ0EsTUFBTUMsUUFBUSxHQUFHQyxhQUFBLENBQVNDLElBQVQsQ0FDZkMsT0FBTyxDQUFDQyxHQUFSLENBQVlDLGNBQVosSUFBOEJDLFdBQUEsQ0FBR0MsTUFBSCxFQURmLEVBRWYsQ0FDRVQsR0FBRyxDQUFDVSxXQUFKLEVBREYsRUFFRVYsR0FBRyxDQUFDVyxRQUFKLEVBRkYsRUFHRVgsR0FBRyxDQUFDWSxPQUFKLEVBSEYsRUFJRSxHQUpGLEVBS0VQLE9BQU8sQ0FBQ1EsR0FMVixFQU1FLEdBTkYsRUFPRSxDQUFDQyxJQUFJLENBQUNDLE1BQUwsS0FBZ0IsV0FBaEIsR0FBOEIsQ0FBL0IsRUFBa0NDLFFBQWxDLENBQTJDLEVBQTNDLENBUEYsRUFRRVosSUFSRixDQVFPLEVBUlAsQ0FGZSxDQUFqQjs7RUFjQSxNQUFNYSxXQUFBLENBQUdDLEtBQUgsQ0FBU2hCLFFBQVQsQ0FBTjtFQUVBLE9BQU9BLFFBQVA7QUFDRDs7QUFnQkQsZUFBZWlCLElBQWYsQ0FBb0JDLFVBQXBCLEVBQWdDQyxhQUFoQyxFQUErQztFQUM3QyxNQUFNQyxPQUFPLEdBQUdDLFlBQVksQ0FBQ0gsVUFBRCxFQUFhQyxhQUFiLENBQTVCO0VBQ0EsTUFBTUcsSUFBSSxHQUFJLEdBQUVGLE9BQU8sQ0FBQ0csTUFBUixJQUFrQixFQUFHLEdBQUVILE9BQU8sQ0FBQ0ksTUFBUixJQUFrQixFQUFHLEVBQTVEO0VBQ0EsTUFBTUMsYUFBYSxHQUFHLE1BQU01QixPQUFPLEVBQW5DO0VBQ0EsT0FBT0ksYUFBQSxDQUFTQyxJQUFULENBQWN1QixhQUFkLEVBQTZCSCxJQUE3QixDQUFQO0FBQ0Q7O0FBZUQsZUFBZUksSUFBZixDQUFvQk4sT0FBcEIsRUFBNkI7RUFDM0IsTUFBTXBCLFFBQVEsR0FBRyxNQUFNaUIsSUFBSSxDQUFDRyxPQUFELEVBQVUsSUFBVixDQUEzQjs7RUFDQSxJQUFJO0lBQ0YsSUFBSU8sRUFBRSxHQUFHLE1BQU1aLFdBQUEsQ0FBR1csSUFBSCxDQUFRMUIsUUFBUixFQUFrQlQsU0FBbEIsRUFBNkIsS0FBN0IsQ0FBZjtJQUVBLE9BQU87TUFBQzBCLElBQUksRUFBRWpCLFFBQVA7TUFBaUIyQjtJQUFqQixDQUFQO0VBQ0QsQ0FKRCxDQUlFLE9BQU9DLEdBQVAsRUFBWTtJQUNaLE9BQU9DLGVBQUEsQ0FBSUMsYUFBSixDQUFrQkYsR0FBbEIsQ0FBUDtFQUNEO0FBQ0Y7O0FBVUQsU0FBU1AsWUFBVCxDQUFzQkgsVUFBdEIsRUFBa0NDLGFBQWxDLEVBQWlEO0VBRS9DLElBQUlDLE9BQU8sR0FBRyxFQUFkOztFQUNBLElBQUlGLFVBQUosRUFBZ0I7SUFDZCxRQUFRLE9BQU9BLFVBQWY7TUFDRSxLQUFLLFFBQUw7UUFDRUUsT0FBTyxDQUFDRyxNQUFSLEdBQWlCTCxVQUFqQjtRQUNBOztNQUNGLEtBQUssUUFBTDtRQUNFRSxPQUFPLEdBQUdGLFVBQVY7UUFDQTs7TUFDRjtRQUNFLE1BQU0sSUFBSWEsS0FBSixDQUFXLDhCQUE2QlgsT0FBUSxFQUFoRCxDQUFOO0lBUko7RUFVRCxDQVhELE1BV087SUFDTEEsT0FBTyxDQUFDRyxNQUFSLEdBQWlCSixhQUFqQjtFQUNEOztFQUNELE9BQU9DLE9BQVA7QUFDRDs7QUFFRCxNQUFNWSxPQUFPLEdBQUduQyxPQUFPLEVBQXZCOztBQU9BLE1BQU1vQyxPQUFPLEdBQUdwQyxPQUFoQjs7O0FBUUEsZUFBZXFDLFNBQWYsR0FBMkI7RUFDekIsT0FBT0YsT0FBUDtBQUNEIn0=
126
+ exports.staticDir = staticDir;
127
+ //# sourceMappingURL=tempdir.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tempdir.js","names":["RDWR_EXCL","cnst","O_CREAT","O_TRUNC","O_RDWR","O_EXCL","tempDir","now","Date","filePath","nodePath","join","process","env","APPIUM_TMP_DIR","os","tmpdir","getFullYear","getMonth","getDate","pid","Math","random","toString","fs","mkdir","path","rawAffixes","defaultPrefix","affixes","parseAffixes","name","prefix","suffix","tempDirectory","open","fd","err","log","errorAndThrow","Error","_static","openDir","staticDir"],"sources":["../../lib/tempdir.js"],"sourcesContent":["/* This library is originated from temp.js at http://github.com/bruce/node-temp */\nimport fs from './fs';\nimport os from 'os';\nimport nodePath from 'path';\nimport cnst from 'constants';\nimport log from './logger';\n\nconst RDWR_EXCL = cnst.O_CREAT | cnst.O_TRUNC | cnst.O_RDWR | cnst.O_EXCL;\n\n/**\n * Generate a temporary directory in os.tempdir() or process.env.APPIUM_TMP_DIR.\n * e.g.\n * - No `process.env.APPIUM_TMP_DIR`: `/var/folders/34/2222sh8n27d6rcp7jqlkw8km0000gn/T/xxxxxxxx.yyyy`\n * - With `process.env.APPIUM_TMP_DIR = '/path/to/root'`: `/path/to/root/xxxxxxxx.yyyy`\n *\n * @returns {Promise<string>} A path to the temporary directory\n */\nasync function tempDir() {\n const now = new Date();\n const filePath = nodePath.join(\n process.env.APPIUM_TMP_DIR || os.tmpdir(),\n [\n now.getFullYear(),\n now.getMonth(),\n now.getDate(),\n '-',\n process.pid,\n '-',\n (Math.random() * 0x100000000 + 1).toString(36),\n ].join('')\n );\n // creates a temp directory using the date and a random string\n\n await fs.mkdir(filePath);\n\n return filePath;\n}\n\n/**\n * @typedef Affixes\n * @property {string} [prefix] - prefix of the temp directory name\n * @property {string} [suffix] - suffix of the temp directory name\n */\n\n/**\n * Generate a temporary directory in os.tempdir() or process.env.APPIUM_TMP_DIR\n * with arbitrary prefix/suffix for the directory name.\n *\n * @param {string|Affixes} rawAffixes\n * @param {string} [defaultPrefix]\n * @returns {Promise<string>} A path to the temporary directory with rawAffixes and defaultPrefix\n */\nasync function path(rawAffixes, defaultPrefix) {\n const affixes = parseAffixes(rawAffixes, defaultPrefix);\n const name = `${affixes.prefix || ''}${affixes.suffix || ''}`;\n const tempDirectory = await tempDir();\n return nodePath.join(tempDirectory, name);\n}\n\n/**\n * @typedef OpenedAffixes\n * @property {string} path - The path to file\n * @property {number} fd - The file descriptor opened\n */\n\n/**\n * Generate a temporary directory in os.tempdir() or process.env.APPIUM_TMP_DIR\n * with arbitrary prefix/suffix for the directory name and return it as open.\n *\n * @param {Affixes} affixes\n * @returns {Promise<OpenedAffixes>}\n */\nasync function open(affixes) {\n const filePath = await path(affixes, 'f-');\n try {\n let fd = await fs.open(filePath, RDWR_EXCL, 0o600);\n // opens the file in mode 384\n return {path: filePath, fd};\n } catch (err) {\n return log.errorAndThrow(err);\n }\n}\n\n/**\n *\n * Returns prefix/suffix object\n *\n * @param {string|Affixes} rawAffixes\n * @param {string} [defaultPrefix]\n * @returns {Affixes}\n */\nfunction parseAffixes(rawAffixes, defaultPrefix) {\n /** @type {Affixes} */\n let affixes = {};\n if (rawAffixes) {\n switch (typeof rawAffixes) {\n case 'string':\n affixes.prefix = rawAffixes;\n break;\n case 'object':\n affixes = rawAffixes;\n break;\n default:\n throw new Error(`Unknown affix declaration: ${affixes}`);\n }\n } else {\n affixes.prefix = defaultPrefix;\n }\n return affixes;\n}\n\nconst _static = tempDir();\n\n/**\n * Returns a new path to a temporary directory\n *\n * @returns {string} A new tempDir() if tempRootDirectory is not provided\n */\nconst openDir = tempDir;\n\n/**\n * Returns a path to a temporary directory whcih is defined as static in the same process\n *\n * @returns {Promise<string>} A temp directory path whcih is defined as static in the same process\n */\n// eslint-disable-next-line require-await\nasync function staticDir() {\n return _static;\n}\n\nexport {open, path, openDir, staticDir};\n"],"mappings":";;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,SAAS,GAAGC,kBAAA,CAAKC,OAAL,GAAeD,kBAAA,CAAKE,OAApB,GAA8BF,kBAAA,CAAKG,MAAnC,GAA4CH,kBAAA,CAAKI,MAAnE;;AAUA,eAAeC,OAAf,GAAyB;EACvB,MAAMC,GAAG,GAAG,IAAIC,IAAJ,EAAZ;;EACA,MAAMC,QAAQ,GAAGC,aAAA,CAASC,IAAT,CACfC,OAAO,CAACC,GAAR,CAAYC,cAAZ,IAA8BC,WAAA,CAAGC,MAAH,EADf,EAEf,CACET,GAAG,CAACU,WAAJ,EADF,EAEEV,GAAG,CAACW,QAAJ,EAFF,EAGEX,GAAG,CAACY,OAAJ,EAHF,EAIE,GAJF,EAKEP,OAAO,CAACQ,GALV,EAME,GANF,EAOE,CAACC,IAAI,CAACC,MAAL,KAAgB,WAAhB,GAA8B,CAA/B,EAAkCC,QAAlC,CAA2C,EAA3C,CAPF,EAQEZ,IARF,CAQO,EARP,CAFe,CAAjB;;EAcA,MAAMa,WAAA,CAAGC,KAAH,CAAShB,QAAT,CAAN;EAEA,OAAOA,QAAP;AACD;;AAgBD,eAAeiB,IAAf,CAAoBC,UAApB,EAAgCC,aAAhC,EAA+C;EAC7C,MAAMC,OAAO,GAAGC,YAAY,CAACH,UAAD,EAAaC,aAAb,CAA5B;EACA,MAAMG,IAAI,GAAI,GAAEF,OAAO,CAACG,MAAR,IAAkB,EAAG,GAAEH,OAAO,CAACI,MAAR,IAAkB,EAAG,EAA5D;EACA,MAAMC,aAAa,GAAG,MAAM5B,OAAO,EAAnC;EACA,OAAOI,aAAA,CAASC,IAAT,CAAcuB,aAAd,EAA6BH,IAA7B,CAAP;AACD;;AAeD,eAAeI,IAAf,CAAoBN,OAApB,EAA6B;EAC3B,MAAMpB,QAAQ,GAAG,MAAMiB,IAAI,CAACG,OAAD,EAAU,IAAV,CAA3B;;EACA,IAAI;IACF,IAAIO,EAAE,GAAG,MAAMZ,WAAA,CAAGW,IAAH,CAAQ1B,QAAR,EAAkBT,SAAlB,EAA6B,KAA7B,CAAf;IAEA,OAAO;MAAC0B,IAAI,EAAEjB,QAAP;MAAiB2B;IAAjB,CAAP;EACD,CAJD,CAIE,OAAOC,GAAP,EAAY;IACZ,OAAOC,eAAA,CAAIC,aAAJ,CAAkBF,GAAlB,CAAP;EACD;AACF;;AAUD,SAASP,YAAT,CAAsBH,UAAtB,EAAkCC,aAAlC,EAAiD;EAE/C,IAAIC,OAAO,GAAG,EAAd;;EACA,IAAIF,UAAJ,EAAgB;IACd,QAAQ,OAAOA,UAAf;MACE,KAAK,QAAL;QACEE,OAAO,CAACG,MAAR,GAAiBL,UAAjB;QACA;;MACF,KAAK,QAAL;QACEE,OAAO,GAAGF,UAAV;QACA;;MACF;QACE,MAAM,IAAIa,KAAJ,CAAW,8BAA6BX,OAAQ,EAAhD,CAAN;IARJ;EAUD,CAXD,MAWO;IACLA,OAAO,CAACG,MAAR,GAAiBJ,aAAjB;EACD;;EACD,OAAOC,OAAP;AACD;;AAED,MAAMY,OAAO,GAAGnC,OAAO,EAAvB;;AAOA,MAAMoC,OAAO,GAAGpC,OAAhB;;;AAQA,eAAeqC,SAAf,GAA2B;EACzB,OAAOF,OAAP;AACD"}
1
+ {"version":3,"file":"tempdir.js","sourceRoot":"","sources":["../../lib/tempdir.js"],"names":[],"mappings":";;;;;;AAAA,kFAAkF;AAClF,8CAAsB;AACtB,4CAAoB;AACpB,gDAA4B;AAC5B,0DAA6B;AAC7B,sDAA2B;AAE3B,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,GAAG,mBAAI,CAAC,OAAO,GAAG,mBAAI,CAAC,MAAM,GAAG,mBAAI,CAAC,MAAM,CAAC;AAE1E;;;;;;;GAOG;AACH,KAAK,UAAU,OAAO;IACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,cAAQ,CAAC,IAAI,CAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,YAAE,CAAC,MAAM,EAAE,EACzC;QACE,GAAG,CAAC,WAAW,EAAE;QACjB,GAAG,CAAC,QAAQ,EAAE;QACd,GAAG,CAAC,OAAO,EAAE;QACb,GAAG;QACH,OAAO,CAAC,GAAG;QACX,GAAG;QACH,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;KAC/C,CAAC,IAAI,CAAC,EAAE,CAAC,CACX,CAAC;IACF,8DAA8D;IAE9D,MAAM,YAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AAEH;;;;;;;GAOG;AACH,KAAK,UAAU,IAAI,CAAC,UAAU,EAAE,aAAa;IAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IAC9D,MAAM,aAAa,GAAG,MAAM,OAAO,EAAE,CAAC;IACtC,OAAO,cAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAyEa,oBAAI;AAvElB;;;;GAIG;AAEH;;;;;;GAMG;AACH,KAAK,UAAU,IAAI,CAAC,OAAO;IACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI;QACF,IAAI,EAAE,GAAG,MAAM,YAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACnD,6BAA6B;QAC7B,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;KAC7B;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,gBAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;KAC/B;AACH,CAAC;AAiDO,oBAAI;AA/CZ;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,UAAU,EAAE,aAAa;IAC7C,sBAAsB;IACtB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,UAAU,EAAE;QACd,QAAQ,OAAO,UAAU,EAAE;YACzB,KAAK,QAAQ;gBACX,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC5B,MAAM;YACR,KAAK,QAAQ;gBACX,OAAO,GAAG,UAAU,CAAC;gBACrB,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;SAC5D;KACF;SAAM;QACL,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;KAChC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;AAE1B;;;;GAIG;AACH,MAAM,OAAO,GAAG,OAAO,CAAC;AAYJ,0BAAO;AAV3B;;;;GAIG;AACH,yCAAyC;AACzC,KAAK,UAAU,SAAS;IACtB,OAAO,OAAO,CAAC;AACjB,CAAC;AAE4B,8BAAS"}
@@ -1,97 +1,112 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.Timer = exports.Duration = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _lodash = _interopRequireDefault(require("lodash"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Duration = exports.Timer = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
14
8
  const NS_PER_S = 1e9;
15
9
  const NS_PER_MS = 1e6;
16
-
10
+ /**
11
+ * Class representing a duration, encapsulating the number and units.
12
+ */
17
13
  class Duration {
18
- constructor(nanos) {
19
- this._nanos = nanos;
20
- }
21
-
22
- get nanos() {
23
- return this._nanos;
24
- }
25
-
26
- get asNanoSeconds() {
27
- return this.nanos;
28
- }
29
-
30
- get asMilliSeconds() {
31
- return this.nanos / NS_PER_MS;
32
- }
33
-
34
- get asSeconds() {
35
- return this.nanos / NS_PER_S;
36
- }
37
-
38
- toString() {
39
- return this.asMilliSeconds.toFixed(0);
40
- }
41
-
14
+ constructor(nanos) {
15
+ this._nanos = nanos;
16
+ }
17
+ get nanos() {
18
+ return this._nanos;
19
+ }
20
+ /**
21
+ * Get the duration as nanoseconds
22
+ *
23
+ * @returns {number} The duration as nanoseconds
24
+ */
25
+ get asNanoSeconds() {
26
+ return this.nanos;
27
+ }
28
+ /**
29
+ * Get the duration converted into milliseconds
30
+ *
31
+ * @returns {number} The duration as milliseconds
32
+ */
33
+ get asMilliSeconds() {
34
+ return this.nanos / NS_PER_MS;
35
+ }
36
+ /**
37
+ * Get the duration converted into seconds
38
+ *
39
+ * @returns {number} The duration fas seconds
40
+ */
41
+ get asSeconds() {
42
+ return this.nanos / NS_PER_S;
43
+ }
44
+ toString() {
45
+ // default to milliseconds, rounded
46
+ return this.asMilliSeconds.toFixed(0);
47
+ }
42
48
  }
43
-
44
49
  exports.Duration = Duration;
45
-
46
50
  class Timer {
47
- constructor() {
48
- this._startTime = null;
49
- }
50
-
51
- get startTime() {
52
- return this._startTime;
53
- }
54
-
55
- start() {
56
- if (!_lodash.default.isNull(this.startTime)) {
57
- throw new Error('Timer has already been started.');
51
+ /**
52
+ * Creates a timer
53
+ */
54
+ constructor() {
55
+ this._startTime = null;
56
+ }
57
+ get startTime() {
58
+ return this._startTime;
58
59
  }
59
-
60
- this._startTime = _lodash.default.isFunction(process.hrtime.bigint) ? process.hrtime.bigint() : process.hrtime();
61
- return this;
62
- }
63
-
64
- getDuration() {
65
- if (_lodash.default.isNull(this.startTime)) {
66
- throw new Error(`Unable to get duration. Timer was not started`);
60
+ /**
61
+ * Start the timer
62
+ *
63
+ * @return {Timer} The current instance, for chaining
64
+ */
65
+ start() {
66
+ if (!lodash_1.default.isNull(this.startTime)) {
67
+ throw new Error('Timer has already been started.');
68
+ }
69
+ // once Node 10 is no longer supported, this check can be removed
70
+ this._startTime = lodash_1.default.isFunction(process.hrtime.bigint)
71
+ ? process.hrtime.bigint()
72
+ : process.hrtime();
73
+ return this;
67
74
  }
68
-
69
- let nanoDuration;
70
-
71
- if (_lodash.default.isArray(this.startTime)) {
72
- const [seconds, nanos] = process.hrtime(this.startTime);
73
- nanoDuration = seconds * NS_PER_S + nanos;
74
- } else if (typeof this.startTime === 'bigint' && _lodash.default.isFunction(process.hrtime.bigint)) {
75
- const endTime = process.hrtime.bigint();
76
- nanoDuration = Number(endTime - this.startTime);
77
- } else {
78
- throw new Error(`Unable to get duration. Start time '${this.startTime}' cannot be parsed`);
75
+ /**
76
+ * Get the duration since the timer was started
77
+ *
78
+ * @return {Duration} the duration
79
+ */
80
+ getDuration() {
81
+ if (lodash_1.default.isNull(this.startTime)) {
82
+ throw new Error(`Unable to get duration. Timer was not started`);
83
+ }
84
+ let nanoDuration;
85
+ if (lodash_1.default.isArray(this.startTime)) {
86
+ // startTime was created using process.hrtime()
87
+ const [seconds, nanos] = process.hrtime(this.startTime);
88
+ nanoDuration = seconds * NS_PER_S + nanos;
89
+ }
90
+ else if (typeof this.startTime === 'bigint' && lodash_1.default.isFunction(process.hrtime.bigint)) {
91
+ // startTime was created using process.hrtime.bigint()
92
+ const endTime = process.hrtime.bigint();
93
+ // get the difference, and convert to number
94
+ nanoDuration = Number(endTime - this.startTime);
95
+ }
96
+ else {
97
+ throw new Error(`Unable to get duration. Start time '${this.startTime}' cannot be parsed`);
98
+ }
99
+ return new Duration(nanoDuration);
79
100
  }
80
-
81
- return new Duration(nanoDuration);
82
- }
83
-
84
- toString() {
85
- try {
86
- return this.getDuration().toString();
87
- } catch (err) {
88
- return `<err: ${err.message}>`;
101
+ toString() {
102
+ try {
103
+ return this.getDuration().toString();
104
+ }
105
+ catch (err) {
106
+ return `<err: ${err.message}>`;
107
+ }
89
108
  }
90
- }
91
-
92
109
  }
93
-
94
110
  exports.Timer = Timer;
95
- var _default = Timer;
96
- exports.default = _default;
97
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOU19QRVJfUyIsIk5TX1BFUl9NUyIsIkR1cmF0aW9uIiwiY29uc3RydWN0b3IiLCJuYW5vcyIsIl9uYW5vcyIsImFzTmFub1NlY29uZHMiLCJhc01pbGxpU2Vjb25kcyIsImFzU2Vjb25kcyIsInRvU3RyaW5nIiwidG9GaXhlZCIsIlRpbWVyIiwiX3N0YXJ0VGltZSIsInN0YXJ0VGltZSIsInN0YXJ0IiwiXyIsImlzTnVsbCIsIkVycm9yIiwiaXNGdW5jdGlvbiIsInByb2Nlc3MiLCJocnRpbWUiLCJiaWdpbnQiLCJnZXREdXJhdGlvbiIsIm5hbm9EdXJhdGlvbiIsImlzQXJyYXkiLCJzZWNvbmRzIiwiZW5kVGltZSIsIk51bWJlciIsImVyciIsIm1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi9saWIvdGltaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IE5TX1BFUl9TID0gMWU5O1xuY29uc3QgTlNfUEVSX01TID0gMWU2O1xuXG4vKipcbiAqIENsYXNzIHJlcHJlc2VudGluZyBhIGR1cmF0aW9uLCBlbmNhcHN1bGF0aW5nIHRoZSBudW1iZXIgYW5kIHVuaXRzLlxuICovXG5jbGFzcyBEdXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbm9zKSB7XG4gICAgdGhpcy5fbmFub3MgPSBuYW5vcztcbiAgfVxuXG4gIGdldCBuYW5vcygpIHtcbiAgICByZXR1cm4gdGhpcy5fbmFub3M7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkdXJhdGlvbiBhcyBuYW5vc2Vjb25kc1xuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgZHVyYXRpb24gYXMgbmFub3NlY29uZHNcbiAgICovXG4gIGdldCBhc05hbm9TZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLm5hbm9zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZHVyYXRpb24gY29udmVydGVkIGludG8gbWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBkdXJhdGlvbiBhcyBtaWxsaXNlY29uZHNcbiAgICovXG4gIGdldCBhc01pbGxpU2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW5vcyAvIE5TX1BFUl9NUztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGR1cmF0aW9uIGNvbnZlcnRlZCBpbnRvIHNlY29uZHNcbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGR1cmF0aW9uIGZhcyBzZWNvbmRzXG4gICAqL1xuICBnZXQgYXNTZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLm5hbm9zIC8gTlNfUEVSX1M7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICAvLyBkZWZhdWx0IHRvIG1pbGxpc2Vjb25kcywgcm91bmRlZFxuICAgIHJldHVybiB0aGlzLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCk7XG4gIH1cbn1cblxuY2xhc3MgVGltZXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHRpbWVyXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9zdGFydFRpbWUgPSBudWxsO1xuICB9XG5cbiAgZ2V0IHN0YXJ0VGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSB0aW1lclxuICAgKlxuICAgKiBAcmV0dXJuIHtUaW1lcn0gVGhlIGN1cnJlbnQgaW5zdGFuY2UsIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgc3RhcnQoKSB7XG4gICAgaWYgKCFfLmlzTnVsbCh0aGlzLnN0YXJ0VGltZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGltZXIgaGFzIGFscmVhZHkgYmVlbiBzdGFydGVkLicpO1xuICAgIH1cbiAgICAvLyBvbmNlIE5vZGUgMTAgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCwgdGhpcyBjaGVjayBjYW4gYmUgcmVtb3ZlZFxuICAgIHRoaXMuX3N0YXJ0VGltZSA9IF8uaXNGdW5jdGlvbihwcm9jZXNzLmhydGltZS5iaWdpbnQpXG4gICAgICA/IHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpXG4gICAgICA6IHByb2Nlc3MuaHJ0aW1lKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkdXJhdGlvbiBzaW5jZSB0aGUgdGltZXIgd2FzIHN0YXJ0ZWRcbiAgICpcbiAgICogQHJldHVybiB7RHVyYXRpb259IHRoZSBkdXJhdGlvblxuICAgKi9cbiAgZ2V0RHVyYXRpb24oKSB7XG4gICAgaWYgKF8uaXNOdWxsKHRoaXMuc3RhcnRUaW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZ2V0IGR1cmF0aW9uLiBUaW1lciB3YXMgbm90IHN0YXJ0ZWRgKTtcbiAgICB9XG5cbiAgICBsZXQgbmFub0R1cmF0aW9uO1xuICAgIGlmIChfLmlzQXJyYXkodGhpcy5zdGFydFRpbWUpKSB7XG4gICAgICAvLyBzdGFydFRpbWUgd2FzIGNyZWF0ZWQgdXNpbmcgcHJvY2Vzcy5ocnRpbWUoKVxuICAgICAgY29uc3QgW3NlY29uZHMsIG5hbm9zXSA9IHByb2Nlc3MuaHJ0aW1lKHRoaXMuc3RhcnRUaW1lKTtcbiAgICAgIG5hbm9EdXJhdGlvbiA9IHNlY29uZHMgKiBOU19QRVJfUyArIG5hbm9zO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuc3RhcnRUaW1lID09PSAnYmlnaW50JyAmJiBfLmlzRnVuY3Rpb24ocHJvY2Vzcy5ocnRpbWUuYmlnaW50KSkge1xuICAgICAgLy8gc3RhcnRUaW1lIHdhcyBjcmVhdGVkIHVzaW5nIHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpXG4gICAgICBjb25zdCBlbmRUaW1lID0gcHJvY2Vzcy5ocnRpbWUuYmlnaW50KCk7XG4gICAgICAvLyBnZXQgdGhlIGRpZmZlcmVuY2UsIGFuZCBjb252ZXJ0IHRvIG51bWJlclxuICAgICAgbmFub0R1cmF0aW9uID0gTnVtYmVyKGVuZFRpbWUgLSB0aGlzLnN0YXJ0VGltZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGdldCBkdXJhdGlvbi4gU3RhcnQgdGltZSAnJHt0aGlzLnN0YXJ0VGltZX0nIGNhbm5vdCBiZSBwYXJzZWRgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IER1cmF0aW9uKG5hbm9EdXJhdGlvbik7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RHVyYXRpb24oKS50b1N0cmluZygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIGA8ZXJyOiAke2Vyci5tZXNzYWdlfT5gO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQge1RpbWVyLCBEdXJhdGlvbn07XG5leHBvcnQgZGVmYXVsdCBUaW1lcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFFQSxNQUFNQSxRQUFRLEdBQUcsR0FBakI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsR0FBbEI7O0FBS0EsTUFBTUMsUUFBTixDQUFlO0VBQ2JDLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRO0lBQ2pCLEtBQUtDLE1BQUwsR0FBY0QsS0FBZDtFQUNEOztFQUVRLElBQUxBLEtBQUssR0FBRztJQUNWLE9BQU8sS0FBS0MsTUFBWjtFQUNEOztFQU9nQixJQUFiQyxhQUFhLEdBQUc7SUFDbEIsT0FBTyxLQUFLRixLQUFaO0VBQ0Q7O0VBT2lCLElBQWRHLGNBQWMsR0FBRztJQUNuQixPQUFPLEtBQUtILEtBQUwsR0FBYUgsU0FBcEI7RUFDRDs7RUFPWSxJQUFUTyxTQUFTLEdBQUc7SUFDZCxPQUFPLEtBQUtKLEtBQUwsR0FBYUosUUFBcEI7RUFDRDs7RUFFRFMsUUFBUSxHQUFHO0lBRVQsT0FBTyxLQUFLRixjQUFMLENBQW9CRyxPQUFwQixDQUE0QixDQUE1QixDQUFQO0VBQ0Q7O0FBdkNZOzs7O0FBMENmLE1BQU1DLEtBQU4sQ0FBWTtFQUlWUixXQUFXLEdBQUc7SUFDWixLQUFLUyxVQUFMLEdBQWtCLElBQWxCO0VBQ0Q7O0VBRVksSUFBVEMsU0FBUyxHQUFHO0lBQ2QsT0FBTyxLQUFLRCxVQUFaO0VBQ0Q7O0VBT0RFLEtBQUssR0FBRztJQUNOLElBQUksQ0FBQ0MsZUFBQSxDQUFFQyxNQUFGLENBQVMsS0FBS0gsU0FBZCxDQUFMLEVBQStCO01BQzdCLE1BQU0sSUFBSUksS0FBSixDQUFVLGlDQUFWLENBQU47SUFDRDs7SUFFRCxLQUFLTCxVQUFMLEdBQWtCRyxlQUFBLENBQUVHLFVBQUYsQ0FBYUMsT0FBTyxDQUFDQyxNQUFSLENBQWVDLE1BQTVCLElBQ2RGLE9BQU8sQ0FBQ0MsTUFBUixDQUFlQyxNQUFmLEVBRGMsR0FFZEYsT0FBTyxDQUFDQyxNQUFSLEVBRko7SUFHQSxPQUFPLElBQVA7RUFDRDs7RUFPREUsV0FBVyxHQUFHO0lBQ1osSUFBSVAsZUFBQSxDQUFFQyxNQUFGLENBQVMsS0FBS0gsU0FBZCxDQUFKLEVBQThCO01BQzVCLE1BQU0sSUFBSUksS0FBSixDQUFXLCtDQUFYLENBQU47SUFDRDs7SUFFRCxJQUFJTSxZQUFKOztJQUNBLElBQUlSLGVBQUEsQ0FBRVMsT0FBRixDQUFVLEtBQUtYLFNBQWYsQ0FBSixFQUErQjtNQUU3QixNQUFNLENBQUNZLE9BQUQsRUFBVXJCLEtBQVYsSUFBbUJlLE9BQU8sQ0FBQ0MsTUFBUixDQUFlLEtBQUtQLFNBQXBCLENBQXpCO01BQ0FVLFlBQVksR0FBR0UsT0FBTyxHQUFHekIsUUFBVixHQUFxQkksS0FBcEM7SUFDRCxDQUpELE1BSU8sSUFBSSxPQUFPLEtBQUtTLFNBQVosS0FBMEIsUUFBMUIsSUFBc0NFLGVBQUEsQ0FBRUcsVUFBRixDQUFhQyxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsTUFBNUIsQ0FBMUMsRUFBK0U7TUFFcEYsTUFBTUssT0FBTyxHQUFHUCxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsTUFBZixFQUFoQjtNQUVBRSxZQUFZLEdBQUdJLE1BQU0sQ0FBQ0QsT0FBTyxHQUFHLEtBQUtiLFNBQWhCLENBQXJCO0lBQ0QsQ0FMTSxNQUtBO01BQ0wsTUFBTSxJQUFJSSxLQUFKLENBQVcsdUNBQXNDLEtBQUtKLFNBQVUsb0JBQWhFLENBQU47SUFDRDs7SUFFRCxPQUFPLElBQUlYLFFBQUosQ0FBYXFCLFlBQWIsQ0FBUDtFQUNEOztFQUVEZCxRQUFRLEdBQUc7SUFDVCxJQUFJO01BQ0YsT0FBTyxLQUFLYSxXQUFMLEdBQW1CYixRQUFuQixFQUFQO0lBQ0QsQ0FGRCxDQUVFLE9BQU9tQixHQUFQLEVBQVk7TUFDWixPQUFRLFNBQVFBLEdBQUcsQ0FBQ0MsT0FBUSxHQUE1QjtJQUNEO0VBQ0Y7O0FBN0RTOzs7ZUFpRUdsQixLIn0=
111
+ exports.default = Timer;
112
+ //# sourceMappingURL=timing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timing.js","names":["NS_PER_S","NS_PER_MS","Duration","constructor","nanos","_nanos","asNanoSeconds","asMilliSeconds","asSeconds","toString","toFixed","Timer","_startTime","startTime","start","_","isNull","Error","isFunction","process","hrtime","bigint","getDuration","nanoDuration","isArray","seconds","endTime","Number","err","message"],"sources":["../../lib/timing.js"],"sourcesContent":["import _ from 'lodash';\n\nconst NS_PER_S = 1e9;\nconst NS_PER_MS = 1e6;\n\n/**\n * Class representing a duration, encapsulating the number and units.\n */\nclass Duration {\n constructor(nanos) {\n this._nanos = nanos;\n }\n\n get nanos() {\n return this._nanos;\n }\n\n /**\n * Get the duration as nanoseconds\n *\n * @returns {number} The duration as nanoseconds\n */\n get asNanoSeconds() {\n return this.nanos;\n }\n\n /**\n * Get the duration converted into milliseconds\n *\n * @returns {number} The duration as milliseconds\n */\n get asMilliSeconds() {\n return this.nanos / NS_PER_MS;\n }\n\n /**\n * Get the duration converted into seconds\n *\n * @returns {number} The duration fas seconds\n */\n get asSeconds() {\n return this.nanos / NS_PER_S;\n }\n\n toString() {\n // default to milliseconds, rounded\n return this.asMilliSeconds.toFixed(0);\n }\n}\n\nclass Timer {\n /**\n * Creates a timer\n */\n constructor() {\n this._startTime = null;\n }\n\n get startTime() {\n return this._startTime;\n }\n\n /**\n * Start the timer\n *\n * @return {Timer} The current instance, for chaining\n */\n start() {\n if (!_.isNull(this.startTime)) {\n throw new Error('Timer has already been started.');\n }\n // once Node 10 is no longer supported, this check can be removed\n this._startTime = _.isFunction(process.hrtime.bigint)\n ? process.hrtime.bigint()\n : process.hrtime();\n return this;\n }\n\n /**\n * Get the duration since the timer was started\n *\n * @return {Duration} the duration\n */\n getDuration() {\n if (_.isNull(this.startTime)) {\n throw new Error(`Unable to get duration. Timer was not started`);\n }\n\n let nanoDuration;\n if (_.isArray(this.startTime)) {\n // startTime was created using process.hrtime()\n const [seconds, nanos] = process.hrtime(this.startTime);\n nanoDuration = seconds * NS_PER_S + nanos;\n } else if (typeof this.startTime === 'bigint' && _.isFunction(process.hrtime.bigint)) {\n // startTime was created using process.hrtime.bigint()\n const endTime = process.hrtime.bigint();\n // get the difference, and convert to number\n nanoDuration = Number(endTime - this.startTime);\n } else {\n throw new Error(`Unable to get duration. Start time '${this.startTime}' cannot be parsed`);\n }\n\n return new Duration(nanoDuration);\n }\n\n toString() {\n try {\n return this.getDuration().toString();\n } catch (err) {\n return `<err: ${err.message}>`;\n }\n }\n}\n\nexport {Timer, Duration};\nexport default Timer;\n"],"mappings":";;;;;;;;;AAAA;;;;AAEA,MAAMA,QAAQ,GAAG,GAAjB;AACA,MAAMC,SAAS,GAAG,GAAlB;;AAKA,MAAMC,QAAN,CAAe;EACbC,WAAW,CAACC,KAAD,EAAQ;IACjB,KAAKC,MAAL,GAAcD,KAAd;EACD;;EAEQ,IAALA,KAAK,GAAG;IACV,OAAO,KAAKC,MAAZ;EACD;;EAOgB,IAAbC,aAAa,GAAG;IAClB,OAAO,KAAKF,KAAZ;EACD;;EAOiB,IAAdG,cAAc,GAAG;IACnB,OAAO,KAAKH,KAAL,GAAaH,SAApB;EACD;;EAOY,IAATO,SAAS,GAAG;IACd,OAAO,KAAKJ,KAAL,GAAaJ,QAApB;EACD;;EAEDS,QAAQ,GAAG;IAET,OAAO,KAAKF,cAAL,CAAoBG,OAApB,CAA4B,CAA5B,CAAP;EACD;;AAvCY;;;;AA0Cf,MAAMC,KAAN,CAAY;EAIVR,WAAW,GAAG;IACZ,KAAKS,UAAL,GAAkB,IAAlB;EACD;;EAEY,IAATC,SAAS,GAAG;IACd,OAAO,KAAKD,UAAZ;EACD;;EAODE,KAAK,GAAG;IACN,IAAI,CAACC,eAAA,CAAEC,MAAF,CAAS,KAAKH,SAAd,CAAL,EAA+B;MAC7B,MAAM,IAAII,KAAJ,CAAU,iCAAV,CAAN;IACD;;IAED,KAAKL,UAAL,GAAkBG,eAAA,CAAEG,UAAF,CAAaC,OAAO,CAACC,MAAR,CAAeC,MAA5B,IACdF,OAAO,CAACC,MAAR,CAAeC,MAAf,EADc,GAEdF,OAAO,CAACC,MAAR,EAFJ;IAGA,OAAO,IAAP;EACD;;EAODE,WAAW,GAAG;IACZ,IAAIP,eAAA,CAAEC,MAAF,CAAS,KAAKH,SAAd,CAAJ,EAA8B;MAC5B,MAAM,IAAII,KAAJ,CAAW,+CAAX,CAAN;IACD;;IAED,IAAIM,YAAJ;;IACA,IAAIR,eAAA,CAAES,OAAF,CAAU,KAAKX,SAAf,CAAJ,EAA+B;MAE7B,MAAM,CAACY,OAAD,EAAUrB,KAAV,IAAmBe,OAAO,CAACC,MAAR,CAAe,KAAKP,SAApB,CAAzB;MACAU,YAAY,GAAGE,OAAO,GAAGzB,QAAV,GAAqBI,KAApC;IACD,CAJD,MAIO,IAAI,OAAO,KAAKS,SAAZ,KAA0B,QAA1B,IAAsCE,eAAA,CAAEG,UAAF,CAAaC,OAAO,CAACC,MAAR,CAAeC,MAA5B,CAA1C,EAA+E;MAEpF,MAAMK,OAAO,GAAGP,OAAO,CAACC,MAAR,CAAeC,MAAf,EAAhB;MAEAE,YAAY,GAAGI,MAAM,CAACD,OAAO,GAAG,KAAKb,SAAhB,CAArB;IACD,CALM,MAKA;MACL,MAAM,IAAII,KAAJ,CAAW,uCAAsC,KAAKJ,SAAU,oBAAhE,CAAN;IACD;;IAED,OAAO,IAAIX,QAAJ,CAAaqB,YAAb,CAAP;EACD;;EAEDd,QAAQ,GAAG;IACT,IAAI;MACF,OAAO,KAAKa,WAAL,GAAmBb,QAAnB,EAAP;IACD,CAFD,CAEE,OAAOmB,GAAP,EAAY;MACZ,OAAQ,SAAQA,GAAG,CAACC,OAAQ,GAA5B;IACD;EACF;;AA7DS;;;eAiEGlB,K"}
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../lib/timing.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AAEvB,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB;;GAEG;AACH,MAAM,QAAQ;IACZ,YAAY,KAAK;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,mCAAmC;QACnC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;CACF;AAkEc,4BAAQ;AAhEvB,MAAM,KAAK;IACT;;OAEG;IACH;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QACD,iEAAiE;QACjE,IAAI,CAAC,UAAU,GAAG,gBAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;YACnD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YACzB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QAED,IAAI,YAAY,CAAC;QACjB,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC7B,+CAA+C;YAC/C,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxD,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;SAC3C;aAAM,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,gBAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACpF,sDAAsD;YACtD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,4CAA4C;YAC5C,YAAY,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;SACjD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,oBAAoB,CAAC,CAAC;SAC5F;QAED,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ;QACN,IAAI;YACF,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,SAAS,GAAG,CAAC,OAAO,GAAG,CAAC;SAChC;IACH,CAAC;CACF;AAEO,sBAAK;AACb,kBAAe,KAAK,CAAC"}