appium 2.0.0-beta.46 → 2.0.0-beta.47

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 (138) hide show
  1. package/README.md +145 -44
  2. package/build/lib/appium.d.ts +3 -103
  3. package/build/lib/appium.d.ts.map +1 -1
  4. package/build/lib/appium.js +679 -549
  5. package/build/lib/appium.js.map +1 -1
  6. package/build/lib/cli/args.js +247 -127
  7. package/build/lib/cli/args.js.map +1 -1
  8. package/build/lib/cli/driver-command.js +63 -88
  9. package/build/lib/cli/driver-command.js.map +1 -1
  10. package/build/lib/cli/extension-command.d.ts +32 -23
  11. package/build/lib/cli/extension-command.d.ts.map +1 -1
  12. package/build/lib/cli/extension-command.js +730 -512
  13. package/build/lib/cli/extension-command.js.map +1 -1
  14. package/build/lib/cli/extension.d.ts +7 -6
  15. package/build/lib/cli/extension.d.ts.map +1 -1
  16. package/build/lib/cli/extension.js +68 -65
  17. package/build/lib/cli/extension.js.map +1 -1
  18. package/build/lib/cli/parser.d.ts +3 -3
  19. package/build/lib/cli/parser.d.ts.map +1 -1
  20. package/build/lib/cli/parser.js +234 -192
  21. package/build/lib/cli/parser.js.map +1 -1
  22. package/build/lib/cli/plugin-command.js +58 -87
  23. package/build/lib/cli/plugin-command.js.map +1 -1
  24. package/build/lib/cli/utils.js +66 -69
  25. package/build/lib/cli/utils.js.map +1 -1
  26. package/build/lib/config-file.d.ts.map +1 -1
  27. package/build/lib/config-file.js +189 -120
  28. package/build/lib/config-file.js.map +1 -1
  29. package/build/lib/config.d.ts.map +1 -1
  30. package/build/lib/config.js +254 -213
  31. package/build/lib/config.js.map +1 -1
  32. package/build/lib/constants.d.ts +5 -5
  33. package/build/lib/constants.d.ts.map +1 -1
  34. package/build/lib/constants.js +64 -59
  35. package/build/lib/constants.js.map +1 -1
  36. package/build/lib/extension/driver-config.js +199 -164
  37. package/build/lib/extension/driver-config.js.map +1 -1
  38. package/build/lib/extension/extension-config.d.ts +18 -16
  39. package/build/lib/extension/extension-config.d.ts.map +1 -1
  40. package/build/lib/extension/extension-config.js +523 -396
  41. package/build/lib/extension/extension-config.js.map +1 -1
  42. package/build/lib/extension/index.js +98 -68
  43. package/build/lib/extension/index.js.map +1 -1
  44. package/build/lib/extension/manifest-migrations.d.ts +27 -0
  45. package/build/lib/extension/manifest-migrations.d.ts.map +1 -0
  46. package/build/lib/extension/manifest-migrations.js +99 -0
  47. package/build/lib/extension/manifest-migrations.js.map +1 -0
  48. package/build/lib/extension/manifest.d.ts +7 -56
  49. package/build/lib/extension/manifest.d.ts.map +1 -1
  50. package/build/lib/extension/manifest.js +432 -240
  51. package/build/lib/extension/manifest.js.map +1 -1
  52. package/build/lib/extension/package-changed.js +57 -61
  53. package/build/lib/extension/package-changed.js.map +1 -1
  54. package/build/lib/extension/plugin-config.d.ts +2 -3
  55. package/build/lib/extension/plugin-config.d.ts.map +1 -1
  56. package/build/lib/extension/plugin-config.js +94 -70
  57. package/build/lib/extension/plugin-config.js.map +1 -1
  58. package/build/lib/grid-register.js +119 -137
  59. package/build/lib/grid-register.js.map +1 -1
  60. package/build/lib/logger.d.ts +1 -1
  61. package/build/lib/logger.d.ts.map +1 -1
  62. package/build/lib/logger.js +5 -15
  63. package/build/lib/logger.js.map +1 -1
  64. package/build/lib/logsink.d.ts.map +1 -1
  65. package/build/lib/logsink.js +189 -183
  66. package/build/lib/logsink.js.map +1 -1
  67. package/build/lib/main.d.ts +19 -12
  68. package/build/lib/main.d.ts.map +1 -1
  69. package/build/lib/main.js +330 -304
  70. package/build/lib/main.js.map +1 -1
  71. package/build/lib/schema/arg-spec.js +153 -108
  72. package/build/lib/schema/arg-spec.js.map +1 -1
  73. package/build/lib/schema/cli-args.js +203 -164
  74. package/build/lib/schema/cli-args.js.map +1 -1
  75. package/build/lib/schema/cli-transformers.js +117 -72
  76. package/build/lib/schema/cli-transformers.js.map +1 -1
  77. package/build/lib/schema/index.js +17 -32
  78. package/build/lib/schema/index.js.map +1 -1
  79. package/build/lib/schema/keywords.js +125 -67
  80. package/build/lib/schema/keywords.js.map +1 -1
  81. package/build/lib/schema/schema.d.ts.map +1 -1
  82. package/build/lib/schema/schema.js +582 -417
  83. package/build/lib/schema/schema.js.map +1 -1
  84. package/build/lib/utils.d.ts +41 -255
  85. package/build/lib/utils.d.ts.map +1 -1
  86. package/build/lib/utils.js +342 -193
  87. package/build/lib/utils.js.map +1 -1
  88. package/build/tsconfig.tsbuildinfo +1 -1
  89. package/build/types/cli.d.ts +45 -34
  90. package/build/types/cli.d.ts.map +1 -1
  91. package/build/types/cli.js +3 -0
  92. package/build/types/cli.js.map +1 -0
  93. package/build/types/index.d.ts +1 -2
  94. package/build/types/index.d.ts.map +1 -1
  95. package/build/types/index.js +19 -0
  96. package/build/types/index.js.map +1 -0
  97. package/build/types/manifest/base.d.ts +135 -0
  98. package/build/types/manifest/base.d.ts.map +1 -0
  99. package/build/types/manifest/base.js +3 -0
  100. package/build/types/manifest/base.js.map +1 -0
  101. package/build/types/manifest/index.d.ts +19 -0
  102. package/build/types/manifest/index.d.ts.map +1 -0
  103. package/build/types/manifest/index.js +40 -0
  104. package/build/types/manifest/index.js.map +1 -0
  105. package/build/types/manifest/v3.d.ts +139 -0
  106. package/build/types/manifest/v3.d.ts.map +1 -0
  107. package/build/types/manifest/v3.js +3 -0
  108. package/build/types/manifest/v3.js.map +1 -0
  109. package/lib/appium.js +1 -1
  110. package/lib/cli/args.js +1 -1
  111. package/lib/cli/extension-command.js +116 -61
  112. package/lib/cli/extension.js +9 -8
  113. package/lib/cli/parser.js +2 -2
  114. package/lib/config-file.js +2 -3
  115. package/lib/config.js +3 -2
  116. package/lib/constants.js +6 -5
  117. package/lib/extension/extension-config.js +24 -25
  118. package/lib/extension/manifest-migrations.js +99 -0
  119. package/lib/extension/manifest.js +79 -72
  120. package/lib/extension/plugin-config.js +1 -2
  121. package/lib/logsink.js +26 -5
  122. package/lib/main.js +58 -50
  123. package/lib/schema/schema.js +6 -1
  124. package/lib/utils.js +62 -0
  125. package/package.json +23 -24
  126. package/scripts/autoinstall-extensions.js +78 -26
  127. package/types/cli.ts +81 -42
  128. package/types/index.ts +1 -2
  129. package/types/manifest/README.md +30 -0
  130. package/types/manifest/base.ts +158 -0
  131. package/types/manifest/index.ts +27 -0
  132. package/types/manifest/v3.ts +161 -0
  133. package/build/types/appium-manifest.d.ts +0 -59
  134. package/build/types/appium-manifest.d.ts.map +0 -1
  135. package/build/types/extension-manifest.d.ts +0 -55
  136. package/build/types/extension-manifest.d.ts.map +0 -1
  137. package/types/appium-manifest.ts +0 -73
  138. package/types/extension-manifest.ts +0 -64
@@ -1,92 +1,63 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _lodash = _interopRequireDefault(require("lodash"));
11
-
12
- var _extensionCommand = _interopRequireDefault(require("./extension-command"));
13
-
14
- var _constants = require("../constants");
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
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
+ const lodash_1 = __importDefault(require("lodash"));
7
+ const extension_command_1 = __importDefault(require("./extension-command"));
8
+ const constants_1 = require("../constants");
18
9
  const REQ_PLUGIN_FIELDS = ['pluginName', 'mainClass'];
19
-
20
- class PluginCommand extends _extensionCommand.default {
21
- constructor({
22
- config,
23
- json
24
- }) {
25
- super({
26
- config,
27
- json
28
- });
29
- this.knownExtensions = _constants.KNOWN_PLUGINS;
30
- }
31
-
32
- async install({
33
- plugin,
34
- installType,
35
- packageName
36
- }) {
37
- return await super._install({
38
- installSpec: plugin,
39
- installType,
40
- packageName
41
- });
42
- }
43
-
44
- async uninstall({
45
- plugin
46
- }) {
47
- return await super._uninstall({
48
- installSpec: plugin
49
- });
50
- }
51
-
52
- async update({
53
- plugin,
54
- unsafe
55
- }) {
56
- return await super._update({
57
- installSpec: plugin,
58
- unsafe
59
- });
60
- }
61
-
62
- async run({
63
- plugin,
64
- scriptName,
65
- extraArgs
66
- }) {
67
- return await super._run({
68
- installSpec: plugin,
69
- scriptName,
70
- extraArgs
71
- });
72
- }
73
-
74
- getPostInstallText({
75
- extName,
76
- extData
77
- }) {
78
- return `Plugin ${extName}@${extData.version} successfully installed`.green;
79
- }
80
-
81
- validateExtensionFields(pluginMetadata, installSpec) {
82
- const missingFields = REQ_PLUGIN_FIELDS.reduce((acc, field) => pluginMetadata[field] ? acc : [...acc, field], []);
83
-
84
- if (!_lodash.default.isEmpty(missingFields)) {
85
- throw new Error(`Installed plugin "${installSpec}" did not expose correct fields for compability ` + `with Appium. Missing fields: ${JSON.stringify(missingFields)}`);
10
+ /**
11
+ * @extends {ExtensionCommand<PluginType>}
12
+ */
13
+ class PluginCommand extends extension_command_1.default {
14
+ /**
15
+ *
16
+ * @param {import('./extension-command').ExtensionCommandOptions<PluginType>} opts
17
+ */
18
+ constructor({ config, json }) {
19
+ super({ config, json });
20
+ this.knownExtensions = constants_1.KNOWN_PLUGINS;
21
+ }
22
+ async install({ plugin, installType, packageName }) {
23
+ return await super._install({
24
+ installSpec: plugin,
25
+ installType,
26
+ packageName,
27
+ });
28
+ }
29
+ async uninstall({ plugin }) {
30
+ return await super._uninstall({ installSpec: plugin });
31
+ }
32
+ async update({ plugin, unsafe }) {
33
+ return await super._update({ installSpec: plugin, unsafe });
34
+ }
35
+ async run({ plugin, scriptName, extraArgs }) {
36
+ return await super._run({ installSpec: plugin, scriptName, extraArgs });
37
+ }
38
+ getPostInstallText({ extName, extData }) {
39
+ return `Plugin ${extName}@${extData.version} successfully installed`.green;
40
+ }
41
+ /**
42
+ * Validates fields in `appium` field of `driverMetadata`
43
+ *
44
+ * For any `package.json` fields which a driver requires, validate the type of
45
+ * those fields on the `package.json` data, throwing an error if anything is
46
+ * amiss.
47
+ * @param {import('appium/types').ExtMetadata<PluginType>} pluginMetadata
48
+ * @param {string} installSpec
49
+ * @returns {void}
50
+ */
51
+ validateExtensionFields(pluginMetadata, installSpec) {
52
+ const missingFields = REQ_PLUGIN_FIELDS.reduce((acc, field) => (pluginMetadata[field] ? acc : [...acc, field]), []);
53
+ if (!lodash_1.default.isEmpty(missingFields)) {
54
+ throw new Error(`Installed plugin "${installSpec}" did not expose correct fields for compability ` +
55
+ `with Appium. Missing fields: ${JSON.stringify(missingFields)}`);
56
+ }
86
57
  }
87
- }
88
-
89
58
  }
90
-
91
59
  exports.default = PluginCommand;
92
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSRVFfUExVR0lOX0ZJRUxEUyIsIlBsdWdpbkNvbW1hbmQiLCJFeHRlbnNpb25Db21tYW5kIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJqc29uIiwia25vd25FeHRlbnNpb25zIiwiS05PV05fUExVR0lOUyIsImluc3RhbGwiLCJwbHVnaW4iLCJpbnN0YWxsVHlwZSIsInBhY2thZ2VOYW1lIiwiX2luc3RhbGwiLCJpbnN0YWxsU3BlYyIsInVuaW5zdGFsbCIsIl91bmluc3RhbGwiLCJ1cGRhdGUiLCJ1bnNhZmUiLCJfdXBkYXRlIiwicnVuIiwic2NyaXB0TmFtZSIsImV4dHJhQXJncyIsIl9ydW4iLCJnZXRQb3N0SW5zdGFsbFRleHQiLCJleHROYW1lIiwiZXh0RGF0YSIsInZlcnNpb24iLCJncmVlbiIsInZhbGlkYXRlRXh0ZW5zaW9uRmllbGRzIiwicGx1Z2luTWV0YWRhdGEiLCJtaXNzaW5nRmllbGRzIiwicmVkdWNlIiwiYWNjIiwiZmllbGQiLCJfIiwiaXNFbXB0eSIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jbGkvcGx1Z2luLWNvbW1hbmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBFeHRlbnNpb25Db21tYW5kIGZyb20gJy4vZXh0ZW5zaW9uLWNvbW1hbmQnO1xuaW1wb3J0IHtLTk9XTl9QTFVHSU5TfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5jb25zdCBSRVFfUExVR0lOX0ZJRUxEUyA9IFsncGx1Z2luTmFtZScsICdtYWluQ2xhc3MnXTtcblxuLyoqXG4gKiBAZXh0ZW5kcyB7RXh0ZW5zaW9uQ29tbWFuZDxQbHVnaW5UeXBlPn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGx1Z2luQ29tbWFuZCBleHRlbmRzIEV4dGVuc2lvbkNvbW1hbmQge1xuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtpbXBvcnQoJy4vZXh0ZW5zaW9uLWNvbW1hbmQnKS5FeHRlbnNpb25Db21tYW5kT3B0aW9uczxQbHVnaW5UeXBlPn0gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZywganNvbn0pIHtcbiAgICBzdXBlcih7Y29uZmlnLCBqc29ufSk7XG4gICAgdGhpcy5rbm93bkV4dGVuc2lvbnMgPSBLTk9XTl9QTFVHSU5TO1xuICB9XG5cbiAgYXN5bmMgaW5zdGFsbCh7cGx1Z2luLCBpbnN0YWxsVHlwZSwgcGFja2FnZU5hbWV9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLl9pbnN0YWxsKHtcbiAgICAgIGluc3RhbGxTcGVjOiBwbHVnaW4sXG4gICAgICBpbnN0YWxsVHlwZSxcbiAgICAgIHBhY2thZ2VOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdW5pbnN0YWxsKHtwbHVnaW59KSB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLl91bmluc3RhbGwoe2luc3RhbGxTcGVjOiBwbHVnaW59KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZSh7cGx1Z2luLCB1bnNhZmV9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLl91cGRhdGUoe2luc3RhbGxTcGVjOiBwbHVnaW4sIHVuc2FmZX0pO1xuICB9XG5cbiAgYXN5bmMgcnVuKHtwbHVnaW4sIHNjcmlwdE5hbWUsIGV4dHJhQXJnc30pIHtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuX3J1bih7aW5zdGFsbFNwZWM6IHBsdWdpbiwgc2NyaXB0TmFtZSwgZXh0cmFBcmdzfSk7XG4gIH1cblxuICBnZXRQb3N0SW5zdGFsbFRleHQoe2V4dE5hbWUsIGV4dERhdGF9KSB7XG4gICAgcmV0dXJuIGBQbHVnaW4gJHtleHROYW1lfUAke2V4dERhdGEudmVyc2lvbn0gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZGAuZ3JlZW47XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGZpZWxkcyBpbiBgYXBwaXVtYCBmaWVsZCBvZiBgZHJpdmVyTWV0YWRhdGFgXG4gICAqXG4gICAqIEZvciBhbnkgYHBhY2thZ2UuanNvbmAgZmllbGRzIHdoaWNoIGEgZHJpdmVyIHJlcXVpcmVzLCB2YWxpZGF0ZSB0aGUgdHlwZSBvZlxuICAgKiB0aG9zZSBmaWVsZHMgb24gdGhlIGBwYWNrYWdlLmpzb25gIGRhdGEsIHRocm93aW5nIGFuIGVycm9yIGlmIGFueXRoaW5nIGlzXG4gICAqIGFtaXNzLlxuICAgKiBAcGFyYW0ge2ltcG9ydCgnYXBwaXVtL3R5cGVzJykuRXh0TWV0YWRhdGE8UGx1Z2luVHlwZT59IHBsdWdpbk1ldGFkYXRhXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpbnN0YWxsU3BlY1xuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHZhbGlkYXRlRXh0ZW5zaW9uRmllbGRzKHBsdWdpbk1ldGFkYXRhLCBpbnN0YWxsU3BlYykge1xuICAgIGNvbnN0IG1pc3NpbmdGaWVsZHMgPSBSRVFfUExVR0lOX0ZJRUxEUy5yZWR1Y2UoXG4gICAgICAoYWNjLCBmaWVsZCkgPT4gKHBsdWdpbk1ldGFkYXRhW2ZpZWxkXSA/IGFjYyA6IFsuLi5hY2MsIGZpZWxkXSksXG4gICAgICBbXVxuICAgICk7XG5cbiAgICBpZiAoIV8uaXNFbXB0eShtaXNzaW5nRmllbGRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW5zdGFsbGVkIHBsdWdpbiBcIiR7aW5zdGFsbFNwZWN9XCIgZGlkIG5vdCBleHBvc2UgY29ycmVjdCBmaWVsZHMgZm9yIGNvbXBhYmlsaXR5IGAgK1xuICAgICAgICAgIGB3aXRoIEFwcGl1bS4gTWlzc2luZyBmaWVsZHM6ICR7SlNPTi5zdHJpbmdpZnkobWlzc2luZ0ZpZWxkcyl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuUGx1Z2luVHlwZX0gUGx1Z2luVHlwZVxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsaUJBQWlCLEdBQUcsQ0FBQyxZQUFELEVBQWUsV0FBZixDQUExQjs7QUFLZSxNQUFNQyxhQUFOLFNBQTRCQyx5QkFBNUIsQ0FBNkM7RUFLMURDLFdBQVcsQ0FBQztJQUFDQyxNQUFEO0lBQVNDO0VBQVQsQ0FBRCxFQUFpQjtJQUMxQixNQUFNO01BQUNELE1BQUQ7TUFBU0M7SUFBVCxDQUFOO0lBQ0EsS0FBS0MsZUFBTCxHQUF1QkMsd0JBQXZCO0VBQ0Q7O0VBRVksTUFBUEMsT0FBTyxDQUFDO0lBQUNDLE1BQUQ7SUFBU0MsV0FBVDtJQUFzQkM7RUFBdEIsQ0FBRCxFQUFxQztJQUNoRCxPQUFPLE1BQU0sTUFBTUMsUUFBTixDQUFlO01BQzFCQyxXQUFXLEVBQUVKLE1BRGE7TUFFMUJDLFdBRjBCO01BRzFCQztJQUgwQixDQUFmLENBQWI7RUFLRDs7RUFFYyxNQUFURyxTQUFTLENBQUM7SUFBQ0w7RUFBRCxDQUFELEVBQVc7SUFDeEIsT0FBTyxNQUFNLE1BQU1NLFVBQU4sQ0FBaUI7TUFBQ0YsV0FBVyxFQUFFSjtJQUFkLENBQWpCLENBQWI7RUFDRDs7RUFFVyxNQUFOTyxNQUFNLENBQUM7SUFBQ1AsTUFBRDtJQUFTUTtFQUFULENBQUQsRUFBbUI7SUFDN0IsT0FBTyxNQUFNLE1BQU1DLE9BQU4sQ0FBYztNQUFDTCxXQUFXLEVBQUVKLE1BQWQ7TUFBc0JRO0lBQXRCLENBQWQsQ0FBYjtFQUNEOztFQUVRLE1BQUhFLEdBQUcsQ0FBQztJQUFDVixNQUFEO0lBQVNXLFVBQVQ7SUFBcUJDO0VBQXJCLENBQUQsRUFBa0M7SUFDekMsT0FBTyxNQUFNLE1BQU1DLElBQU4sQ0FBVztNQUFDVCxXQUFXLEVBQUVKLE1BQWQ7TUFBc0JXLFVBQXRCO01BQWtDQztJQUFsQyxDQUFYLENBQWI7RUFDRDs7RUFFREUsa0JBQWtCLENBQUM7SUFBQ0MsT0FBRDtJQUFVQztFQUFWLENBQUQsRUFBcUI7SUFDckMsT0FBUSxVQUFTRCxPQUFRLElBQUdDLE9BQU8sQ0FBQ0MsT0FBUSx5QkFBckMsQ0FBOERDLEtBQXJFO0VBQ0Q7O0VBWURDLHVCQUF1QixDQUFDQyxjQUFELEVBQWlCaEIsV0FBakIsRUFBOEI7SUFDbkQsTUFBTWlCLGFBQWEsR0FBRzlCLGlCQUFpQixDQUFDK0IsTUFBbEIsQ0FDcEIsQ0FBQ0MsR0FBRCxFQUFNQyxLQUFOLEtBQWlCSixjQUFjLENBQUNJLEtBQUQsQ0FBZCxHQUF3QkQsR0FBeEIsR0FBOEIsQ0FBQyxHQUFHQSxHQUFKLEVBQVNDLEtBQVQsQ0FEM0IsRUFFcEIsRUFGb0IsQ0FBdEI7O0lBS0EsSUFBSSxDQUFDQyxlQUFBLENBQUVDLE9BQUYsQ0FBVUwsYUFBVixDQUFMLEVBQStCO01BQzdCLE1BQU0sSUFBSU0sS0FBSixDQUNILHFCQUFvQnZCLFdBQVksa0RBQWpDLEdBQ0csZ0NBQStCd0IsSUFBSSxDQUFDQyxTQUFMLENBQWVSLGFBQWYsQ0FBOEIsRUFGNUQsQ0FBTjtJQUlEO0VBQ0Y7O0FBeER5RCJ9
60
+ /**
61
+ * @typedef {import('@appium/types').PluginType} PluginType
62
+ */
63
+ //# sourceMappingURL=plugin-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-command.js","names":["REQ_PLUGIN_FIELDS","PluginCommand","ExtensionCommand","constructor","config","json","knownExtensions","KNOWN_PLUGINS","install","plugin","installType","packageName","_install","installSpec","uninstall","_uninstall","update","unsafe","_update","run","scriptName","extraArgs","_run","getPostInstallText","extName","extData","version","green","validateExtensionFields","pluginMetadata","missingFields","reduce","acc","field","_","isEmpty","Error","JSON","stringify"],"sources":["../../../lib/cli/plugin-command.js"],"sourcesContent":["import _ from 'lodash';\nimport ExtensionCommand from './extension-command';\nimport {KNOWN_PLUGINS} from '../constants';\n\nconst REQ_PLUGIN_FIELDS = ['pluginName', 'mainClass'];\n\n/**\n * @extends {ExtensionCommand<PluginType>}\n */\nexport default class PluginCommand extends ExtensionCommand {\n /**\n *\n * @param {import('./extension-command').ExtensionCommandOptions<PluginType>} opts\n */\n constructor({config, json}) {\n super({config, json});\n this.knownExtensions = KNOWN_PLUGINS;\n }\n\n async install({plugin, installType, packageName}) {\n return await super._install({\n installSpec: plugin,\n installType,\n packageName,\n });\n }\n\n async uninstall({plugin}) {\n return await super._uninstall({installSpec: plugin});\n }\n\n async update({plugin, unsafe}) {\n return await super._update({installSpec: plugin, unsafe});\n }\n\n async run({plugin, scriptName, extraArgs}) {\n return await super._run({installSpec: plugin, scriptName, extraArgs});\n }\n\n getPostInstallText({extName, extData}) {\n return `Plugin ${extName}@${extData.version} successfully installed`.green;\n }\n\n /**\n * Validates fields in `appium` field of `driverMetadata`\n *\n * For any `package.json` fields which a driver requires, validate the type of\n * those fields on the `package.json` data, throwing an error if anything is\n * amiss.\n * @param {import('appium/types').ExtMetadata<PluginType>} pluginMetadata\n * @param {string} installSpec\n * @returns {void}\n */\n validateExtensionFields(pluginMetadata, installSpec) {\n const missingFields = REQ_PLUGIN_FIELDS.reduce(\n (acc, field) => (pluginMetadata[field] ? acc : [...acc, field]),\n []\n );\n\n if (!_.isEmpty(missingFields)) {\n throw new Error(\n `Installed plugin \"${installSpec}\" did not expose correct fields for compability ` +\n `with Appium. Missing fields: ${JSON.stringify(missingFields)}`\n );\n }\n }\n}\n\n/**\n * @typedef {import('@appium/types').PluginType} PluginType\n */\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;;;AAEA,MAAMA,iBAAiB,GAAG,CAAC,YAAD,EAAe,WAAf,CAA1B;;AAKe,MAAMC,aAAN,SAA4BC,yBAA5B,CAA6C;EAK1DC,WAAW,CAAC;IAACC,MAAD;IAASC;EAAT,CAAD,EAAiB;IAC1B,MAAM;MAACD,MAAD;MAASC;IAAT,CAAN;IACA,KAAKC,eAAL,GAAuBC,wBAAvB;EACD;;EAEY,MAAPC,OAAO,CAAC;IAACC,MAAD;IAASC,WAAT;IAAsBC;EAAtB,CAAD,EAAqC;IAChD,OAAO,MAAM,MAAMC,QAAN,CAAe;MAC1BC,WAAW,EAAEJ,MADa;MAE1BC,WAF0B;MAG1BC;IAH0B,CAAf,CAAb;EAKD;;EAEc,MAATG,SAAS,CAAC;IAACL;EAAD,CAAD,EAAW;IACxB,OAAO,MAAM,MAAMM,UAAN,CAAiB;MAACF,WAAW,EAAEJ;IAAd,CAAjB,CAAb;EACD;;EAEW,MAANO,MAAM,CAAC;IAACP,MAAD;IAASQ;EAAT,CAAD,EAAmB;IAC7B,OAAO,MAAM,MAAMC,OAAN,CAAc;MAACL,WAAW,EAAEJ,MAAd;MAAsBQ;IAAtB,CAAd,CAAb;EACD;;EAEQ,MAAHE,GAAG,CAAC;IAACV,MAAD;IAASW,UAAT;IAAqBC;EAArB,CAAD,EAAkC;IACzC,OAAO,MAAM,MAAMC,IAAN,CAAW;MAACT,WAAW,EAAEJ,MAAd;MAAsBW,UAAtB;MAAkCC;IAAlC,CAAX,CAAb;EACD;;EAEDE,kBAAkB,CAAC;IAACC,OAAD;IAAUC;EAAV,CAAD,EAAqB;IACrC,OAAQ,UAASD,OAAQ,IAAGC,OAAO,CAACC,OAAQ,yBAArC,CAA8DC,KAArE;EACD;;EAYDC,uBAAuB,CAACC,cAAD,EAAiBhB,WAAjB,EAA8B;IACnD,MAAMiB,aAAa,GAAG9B,iBAAiB,CAAC+B,MAAlB,CACpB,CAACC,GAAD,EAAMC,KAAN,KAAiBJ,cAAc,CAACI,KAAD,CAAd,GAAwBD,GAAxB,GAA8B,CAAC,GAAGA,GAAJ,EAASC,KAAT,CAD3B,EAEpB,EAFoB,CAAtB;;IAKA,IAAI,CAACC,eAAA,CAAEC,OAAF,CAAUL,aAAV,CAAL,EAA+B;MAC7B,MAAM,IAAIM,KAAJ,CACH,qBAAoBvB,WAAY,kDAAjC,GACG,gCAA+BwB,IAAI,CAACC,SAAL,CAAeR,aAAf,CAA8B,EAF5D,CAAN;IAID;EACF;;AAxDyD"}
1
+ {"version":3,"file":"plugin-command.js","sourceRoot":"","sources":["../../../lib/cli/plugin-command.js"],"names":[],"mappings":";;;;;AAAA,oDAAuB;AACvB,4EAAmD;AACnD,4CAA2C;AAE3C,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAqB,aAAc,SAAQ,2BAAgB;IACzD;;;OAGG;IACH,YAAY,EAAC,MAAM,EAAE,IAAI,EAAC;QACxB,KAAK,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,yBAAa,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAC;QAC9C,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC;YAC1B,WAAW,EAAE,MAAM;YACnB,WAAW;YACX,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAC,MAAM,EAAC;QACtB,OAAO,MAAM,KAAK,CAAC,UAAU,CAAC,EAAC,WAAW,EAAE,MAAM,EAAC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,MAAM,EAAC;QAC3B,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,EAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAC;QACvC,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAC,CAAC,CAAC;IACxE,CAAC;IAED,kBAAkB,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC;QACnC,OAAO,UAAU,OAAO,IAAI,OAAO,CAAC,OAAO,yBAAyB,CAAC,KAAK,CAAC;IAC7E,CAAC;IAED;;;;;;;;;OASG;IACH,uBAAuB,CAAC,cAAc,EAAE,WAAW;QACjD,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAC5C,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,EAC/D,EAAE,CACH,CAAC;QAEF,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CACb,qBAAqB,WAAW,kDAAkD;gBAChF,gCAAgC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAClE,CAAC;SACH;IACH,CAAC;CACF;AAzDD,gCAyDC;AAED;;GAEG"}
@@ -1,83 +1,80 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RingBuffer = exports.JSON_SPACES = void 0;
7
- exports.errAndQuit = errAndQuit;
8
- exports.log = log;
9
- exports.spinWith = spinWith;
10
-
11
- require("source-map-support/register");
12
-
13
- var _ora = _interopRequireDefault(require("ora"));
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
-
2
+ /* eslint-disable no-console */
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.RingBuffer = exports.JSON_SPACES = exports.spinWith = exports.log = exports.errAndQuit = void 0;
8
+ const ora_1 = __importDefault(require("ora"));
17
9
  const JSON_SPACES = 4;
18
10
  exports.JSON_SPACES = JSON_SPACES;
19
-
11
+ /***
12
+ * Log an error to the console and exit the process.
13
+ * @param {boolean} json - whether we should log json or text
14
+ * @param {any} msg - error message, object, Error instance, etc.
15
+ */
20
16
  function errAndQuit(json, msg) {
21
- if (json) {
22
- console.log(JSON.stringify({
23
- error: `${msg}`
24
- }, null, JSON_SPACES));
25
- } else {
26
- console.error(`${msg}`.red);
27
-
28
- if (msg.stderr) {
29
- console.error(`${msg.stderr}`.red);
17
+ if (json) {
18
+ console.log(JSON.stringify({ error: `${msg}` }, null, JSON_SPACES));
19
+ }
20
+ else {
21
+ console.error(`${msg}`.red);
22
+ if (msg.stderr) {
23
+ console.error(`${msg.stderr}`.red);
24
+ }
30
25
  }
31
- }
32
-
33
- process.exit(1);
26
+ process.exit(1);
34
27
  }
35
-
28
+ exports.errAndQuit = errAndQuit;
29
+ /**
30
+ * Conditionally log something to the console
31
+ * @param {boolean} json - whether we are in json mode (and should therefore not log)
32
+ * @param {string} msg - string to log
33
+ */
36
34
  function log(json, msg) {
37
- !json && console.log(msg);
35
+ !json && console.log(msg);
38
36
  }
39
-
37
+ exports.log = log;
38
+ /**
39
+ * Start a spinner, execute an async function, and then stop the spinner
40
+ * @param {boolean} json - whether we are in json mode (and should therefore not log)
41
+ * @param {string} msg - string to log
42
+ * @param {function} fn - function to wrap with spinning
43
+ */
40
44
  async function spinWith(json, msg, fn) {
41
- if (json) {
42
- return await fn();
43
- }
44
-
45
- const spinner = (0, _ora.default)(msg).start();
46
- let res;
47
-
48
- try {
49
- res = await fn();
50
- spinner.succeed();
51
- return res;
52
- } catch (err) {
53
- spinner.fail();
54
- throw err;
55
- }
45
+ if (json) {
46
+ return await fn();
47
+ }
48
+ const spinner = (0, ora_1.default)(msg).start();
49
+ let res;
50
+ try {
51
+ res = await fn();
52
+ spinner.succeed();
53
+ return res;
54
+ }
55
+ catch (err) {
56
+ spinner.fail();
57
+ throw err;
58
+ }
56
59
  }
57
-
60
+ exports.spinWith = spinWith;
58
61
  class RingBuffer {
59
- constructor(size = 50) {
60
- this.size = size;
61
- this.buffer = [];
62
- }
63
-
64
- getBuff() {
65
- return this.buffer;
66
- }
67
-
68
- dequeue() {
69
- this.buffer.shift();
70
- }
71
-
72
- enqueue(item) {
73
- if (this.buffer.length >= this.size) {
74
- this.dequeue();
62
+ constructor(size = 50) {
63
+ this.size = size;
64
+ this.buffer = [];
65
+ }
66
+ getBuff() {
67
+ return this.buffer;
68
+ }
69
+ dequeue() {
70
+ this.buffer.shift();
71
+ }
72
+ enqueue(item) {
73
+ if (this.buffer.length >= this.size) {
74
+ this.dequeue();
75
+ }
76
+ this.buffer.push(item);
75
77
  }
76
-
77
- this.buffer.push(item);
78
- }
79
-
80
78
  }
81
-
82
79
  exports.RingBuffer = RingBuffer;
83
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJKU09OX1NQQUNFUyIsImVyckFuZFF1aXQiLCJqc29uIiwibXNnIiwiY29uc29sZSIsImxvZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJlcnJvciIsInJlZCIsInN0ZGVyciIsInByb2Nlc3MiLCJleGl0Iiwic3BpbldpdGgiLCJmbiIsInNwaW5uZXIiLCJvcmEiLCJzdGFydCIsInJlcyIsInN1Y2NlZWQiLCJlcnIiLCJmYWlsIiwiUmluZ0J1ZmZlciIsImNvbnN0cnVjdG9yIiwic2l6ZSIsImJ1ZmZlciIsImdldEJ1ZmYiLCJkZXF1ZXVlIiwic2hpZnQiLCJlbnF1ZXVlIiwiaXRlbSIsImxlbmd0aCIsInB1c2giXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY2xpL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cblxuaW1wb3J0IG9yYSBmcm9tICdvcmEnO1xuXG5jb25zdCBKU09OX1NQQUNFUyA9IDQ7XG5cbi8qKipcbiAqIExvZyBhbiBlcnJvciB0byB0aGUgY29uc29sZSBhbmQgZXhpdCB0aGUgcHJvY2Vzcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0ganNvbiAtIHdoZXRoZXIgd2Ugc2hvdWxkIGxvZyBqc29uIG9yIHRleHRcbiAqIEBwYXJhbSB7YW55fSBtc2cgLSBlcnJvciBtZXNzYWdlLCBvYmplY3QsIEVycm9yIGluc3RhbmNlLCBldGMuXG4gKi9cbmZ1bmN0aW9uIGVyckFuZFF1aXQoanNvbiwgbXNnKSB7XG4gIGlmIChqc29uKSB7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoe2Vycm9yOiBgJHttc2d9YH0sIG51bGwsIEpTT05fU1BBQ0VTKSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5lcnJvcihgJHttc2d9YC5yZWQpO1xuICAgIGlmIChtc2cuc3RkZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke21zZy5zdGRlcnJ9YC5yZWQpO1xuICAgIH1cbiAgfVxuICBwcm9jZXNzLmV4aXQoMSk7XG59XG5cbi8qKlxuICogQ29uZGl0aW9uYWxseSBsb2cgc29tZXRoaW5nIHRvIHRoZSBjb25zb2xlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGpzb24gLSB3aGV0aGVyIHdlIGFyZSBpbiBqc29uIG1vZGUgKGFuZCBzaG91bGQgdGhlcmVmb3JlIG5vdCBsb2cpXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIC0gc3RyaW5nIHRvIGxvZ1xuICovXG5mdW5jdGlvbiBsb2coanNvbiwgbXNnKSB7XG4gICFqc29uICYmIGNvbnNvbGUubG9nKG1zZyk7XG59XG5cbi8qKlxuICogU3RhcnQgYSBzcGlubmVyLCBleGVjdXRlIGFuIGFzeW5jIGZ1bmN0aW9uLCBhbmQgdGhlbiBzdG9wIHRoZSBzcGlubmVyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGpzb24gLSB3aGV0aGVyIHdlIGFyZSBpbiBqc29uIG1vZGUgKGFuZCBzaG91bGQgdGhlcmVmb3JlIG5vdCBsb2cpXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIC0gc3RyaW5nIHRvIGxvZ1xuICogQHBhcmFtIHtmdW5jdGlvbn0gZm4gLSBmdW5jdGlvbiB0byB3cmFwIHdpdGggc3Bpbm5pbmdcbiAqL1xuYXN5bmMgZnVuY3Rpb24gc3BpbldpdGgoanNvbiwgbXNnLCBmbikge1xuICBpZiAoanNvbikge1xuICAgIHJldHVybiBhd2FpdCBmbigpO1xuICB9XG4gIGNvbnN0IHNwaW5uZXIgPSBvcmEobXNnKS5zdGFydCgpO1xuICBsZXQgcmVzO1xuICB0cnkge1xuICAgIHJlcyA9IGF3YWl0IGZuKCk7XG4gICAgc3Bpbm5lci5zdWNjZWVkKCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgc3Bpbm5lci5mYWlsKCk7XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG5cbmNsYXNzIFJpbmdCdWZmZXIge1xuICBjb25zdHJ1Y3RvcihzaXplID0gNTApIHtcbiAgICB0aGlzLnNpemUgPSBzaXplO1xuICAgIHRoaXMuYnVmZmVyID0gW107XG4gIH1cbiAgZ2V0QnVmZigpIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gIH1cbiAgZGVxdWV1ZSgpIHtcbiAgICB0aGlzLmJ1ZmZlci5zaGlmdCgpO1xuICB9XG4gIGVucXVldWUoaXRlbSkge1xuICAgIGlmICh0aGlzLmJ1ZmZlci5sZW5ndGggPj0gdGhpcy5zaXplKSB7XG4gICAgICB0aGlzLmRlcXVldWUoKTtcbiAgICB9XG4gICAgdGhpcy5idWZmZXIucHVzaChpdGVtKTtcbiAgfVxufVxuXG5leHBvcnQge2VyckFuZFF1aXQsIGxvZywgc3BpbldpdGgsIEpTT05fU1BBQ0VTLCBSaW5nQnVmZmVyfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFFQSxNQUFNQSxXQUFXLEdBQUcsQ0FBcEI7OztBQU9BLFNBQVNDLFVBQVQsQ0FBb0JDLElBQXBCLEVBQTBCQyxHQUExQixFQUErQjtFQUM3QixJQUFJRCxJQUFKLEVBQVU7SUFDUkUsT0FBTyxDQUFDQyxHQUFSLENBQVlDLElBQUksQ0FBQ0MsU0FBTCxDQUFlO01BQUNDLEtBQUssRUFBRyxHQUFFTCxHQUFJO0lBQWYsQ0FBZixFQUFrQyxJQUFsQyxFQUF3Q0gsV0FBeEMsQ0FBWjtFQUNELENBRkQsTUFFTztJQUNMSSxPQUFPLENBQUNJLEtBQVIsQ0FBZSxHQUFFTCxHQUFJLEVBQVAsQ0FBU00sR0FBdkI7O0lBQ0EsSUFBSU4sR0FBRyxDQUFDTyxNQUFSLEVBQWdCO01BQ2ROLE9BQU8sQ0FBQ0ksS0FBUixDQUFlLEdBQUVMLEdBQUcsQ0FBQ08sTUFBTyxFQUFkLENBQWdCRCxHQUE5QjtJQUNEO0VBQ0Y7O0VBQ0RFLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLENBQWI7QUFDRDs7QUFPRCxTQUFTUCxHQUFULENBQWFILElBQWIsRUFBbUJDLEdBQW5CLEVBQXdCO0VBQ3RCLENBQUNELElBQUQsSUFBU0UsT0FBTyxDQUFDQyxHQUFSLENBQVlGLEdBQVosQ0FBVDtBQUNEOztBQVFELGVBQWVVLFFBQWYsQ0FBd0JYLElBQXhCLEVBQThCQyxHQUE5QixFQUFtQ1csRUFBbkMsRUFBdUM7RUFDckMsSUFBSVosSUFBSixFQUFVO0lBQ1IsT0FBTyxNQUFNWSxFQUFFLEVBQWY7RUFDRDs7RUFDRCxNQUFNQyxPQUFPLEdBQUcsSUFBQUMsWUFBQSxFQUFJYixHQUFKLEVBQVNjLEtBQVQsRUFBaEI7RUFDQSxJQUFJQyxHQUFKOztFQUNBLElBQUk7SUFDRkEsR0FBRyxHQUFHLE1BQU1KLEVBQUUsRUFBZDtJQUNBQyxPQUFPLENBQUNJLE9BQVI7SUFDQSxPQUFPRCxHQUFQO0VBQ0QsQ0FKRCxDQUlFLE9BQU9FLEdBQVAsRUFBWTtJQUNaTCxPQUFPLENBQUNNLElBQVI7SUFDQSxNQUFNRCxHQUFOO0VBQ0Q7QUFDRjs7QUFFRCxNQUFNRSxVQUFOLENBQWlCO0VBQ2ZDLFdBQVcsQ0FBQ0MsSUFBSSxHQUFHLEVBQVIsRUFBWTtJQUNyQixLQUFLQSxJQUFMLEdBQVlBLElBQVo7SUFDQSxLQUFLQyxNQUFMLEdBQWMsRUFBZDtFQUNEOztFQUNEQyxPQUFPLEdBQUc7SUFDUixPQUFPLEtBQUtELE1BQVo7RUFDRDs7RUFDREUsT0FBTyxHQUFHO0lBQ1IsS0FBS0YsTUFBTCxDQUFZRyxLQUFaO0VBQ0Q7O0VBQ0RDLE9BQU8sQ0FBQ0MsSUFBRCxFQUFPO0lBQ1osSUFBSSxLQUFLTCxNQUFMLENBQVlNLE1BQVosSUFBc0IsS0FBS1AsSUFBL0IsRUFBcUM7TUFDbkMsS0FBS0csT0FBTDtJQUNEOztJQUNELEtBQUtGLE1BQUwsQ0FBWU8sSUFBWixDQUFpQkYsSUFBakI7RUFDRDs7QUFoQmMifQ==
80
+ //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["JSON_SPACES","errAndQuit","json","msg","console","log","JSON","stringify","error","red","stderr","process","exit","spinWith","fn","spinner","ora","start","res","succeed","err","fail","RingBuffer","constructor","size","buffer","getBuff","dequeue","shift","enqueue","item","length","push"],"sources":["../../../lib/cli/utils.js"],"sourcesContent":["/* eslint-disable no-console */\n\nimport ora from 'ora';\n\nconst JSON_SPACES = 4;\n\n/***\n * Log an error to the console and exit the process.\n * @param {boolean} json - whether we should log json or text\n * @param {any} msg - error message, object, Error instance, etc.\n */\nfunction errAndQuit(json, msg) {\n if (json) {\n console.log(JSON.stringify({error: `${msg}`}, null, JSON_SPACES));\n } else {\n console.error(`${msg}`.red);\n if (msg.stderr) {\n console.error(`${msg.stderr}`.red);\n }\n }\n process.exit(1);\n}\n\n/**\n * Conditionally log something to the console\n * @param {boolean} json - whether we are in json mode (and should therefore not log)\n * @param {string} msg - string to log\n */\nfunction log(json, msg) {\n !json && console.log(msg);\n}\n\n/**\n * Start a spinner, execute an async function, and then stop the spinner\n * @param {boolean} json - whether we are in json mode (and should therefore not log)\n * @param {string} msg - string to log\n * @param {function} fn - function to wrap with spinning\n */\nasync function spinWith(json, msg, fn) {\n if (json) {\n return await fn();\n }\n const spinner = ora(msg).start();\n let res;\n try {\n res = await fn();\n spinner.succeed();\n return res;\n } catch (err) {\n spinner.fail();\n throw err;\n }\n}\n\nclass RingBuffer {\n constructor(size = 50) {\n this.size = size;\n this.buffer = [];\n }\n getBuff() {\n return this.buffer;\n }\n dequeue() {\n this.buffer.shift();\n }\n enqueue(item) {\n if (this.buffer.length >= this.size) {\n this.dequeue();\n }\n this.buffer.push(item);\n }\n}\n\nexport {errAndQuit, log, spinWith, JSON_SPACES, RingBuffer};\n"],"mappings":";;;;;;;;;;;;AAEA;;;;AAEA,MAAMA,WAAW,GAAG,CAApB;;;AAOA,SAASC,UAAT,CAAoBC,IAApB,EAA0BC,GAA1B,EAA+B;EAC7B,IAAID,IAAJ,EAAU;IACRE,OAAO,CAACC,GAAR,CAAYC,IAAI,CAACC,SAAL,CAAe;MAACC,KAAK,EAAG,GAAEL,GAAI;IAAf,CAAf,EAAkC,IAAlC,EAAwCH,WAAxC,CAAZ;EACD,CAFD,MAEO;IACLI,OAAO,CAACI,KAAR,CAAe,GAAEL,GAAI,EAAP,CAASM,GAAvB;;IACA,IAAIN,GAAG,CAACO,MAAR,EAAgB;MACdN,OAAO,CAACI,KAAR,CAAe,GAAEL,GAAG,CAACO,MAAO,EAAd,CAAgBD,GAA9B;IACD;EACF;;EACDE,OAAO,CAACC,IAAR,CAAa,CAAb;AACD;;AAOD,SAASP,GAAT,CAAaH,IAAb,EAAmBC,GAAnB,EAAwB;EACtB,CAACD,IAAD,IAASE,OAAO,CAACC,GAAR,CAAYF,GAAZ,CAAT;AACD;;AAQD,eAAeU,QAAf,CAAwBX,IAAxB,EAA8BC,GAA9B,EAAmCW,EAAnC,EAAuC;EACrC,IAAIZ,IAAJ,EAAU;IACR,OAAO,MAAMY,EAAE,EAAf;EACD;;EACD,MAAMC,OAAO,GAAG,IAAAC,YAAA,EAAIb,GAAJ,EAASc,KAAT,EAAhB;EACA,IAAIC,GAAJ;;EACA,IAAI;IACFA,GAAG,GAAG,MAAMJ,EAAE,EAAd;IACAC,OAAO,CAACI,OAAR;IACA,OAAOD,GAAP;EACD,CAJD,CAIE,OAAOE,GAAP,EAAY;IACZL,OAAO,CAACM,IAAR;IACA,MAAMD,GAAN;EACD;AACF;;AAED,MAAME,UAAN,CAAiB;EACfC,WAAW,CAACC,IAAI,GAAG,EAAR,EAAY;IACrB,KAAKA,IAAL,GAAYA,IAAZ;IACA,KAAKC,MAAL,GAAc,EAAd;EACD;;EACDC,OAAO,GAAG;IACR,OAAO,KAAKD,MAAZ;EACD;;EACDE,OAAO,GAAG;IACR,KAAKF,MAAL,CAAYG,KAAZ;EACD;;EACDC,OAAO,CAACC,IAAD,EAAO;IACZ,IAAI,KAAKL,MAAL,CAAYM,MAAZ,IAAsB,KAAKP,IAA/B,EAAqC;MACnC,KAAKG,OAAL;IACD;;IACD,KAAKF,MAAL,CAAYO,IAAZ,CAAiBF,IAAjB;EACD;;AAhBc"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/cli/utils.js"],"names":[],"mappings":";AAAA,+BAA+B;;;;;;AAE/B,8CAAsB;AAEtB,MAAM,WAAW,GAAG,CAAC,CAAC;AAqEa,kCAAW;AAnE9C;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAI,EAAE,GAAG;IAC3B,IAAI,IAAI,EAAE;QACR,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,GAAG,GAAG,EAAE,EAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;KACnE;SAAM;QACL,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;SACpC;KACF;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAoDO,gCAAU;AAlDlB;;;;GAIG;AACH,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG;IACpB,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AA2CmB,kBAAG;AAzCvB;;;;;GAKG;AACH,KAAK,UAAU,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACnC,IAAI,IAAI,EAAE;QACR,OAAO,MAAM,EAAE,EAAE,CAAC;KACnB;IACD,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IACjC,IAAI,GAAG,CAAC;IACR,IAAI;QACF,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC;KACZ;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,GAAG,CAAC;KACX;AACH,CAAC;AAqBwB,4BAAQ;AAnBjC,MAAM,UAAU;IACd,YAAY,IAAI,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,IAAI;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAE+C,gCAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../lib/config-file.js"],"names":[],"mappings":"AAkEA;;;;;;;;;;;;;;GAcG;AACH,sCAPW,OAAO,KAAK,EAAE,WAAW,EAAE,WAC3B,oBAAoB,CAAC,QAAQ,CAAC,GAAC,GAAG,iDAIhC,MAAM,CAUlB;AAED;;;;;;;;GAQG;AACH,yGAFa,QAAQ,oBAAoB,CAAC,CAwCzC;AAED;;;;GAIG;AACH,wCAHW,YAAY,GACV,sBAAsB,CAiClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAoBY,WAAW,2BAAoB,WAAW,CAAC,CAAC;;;;2BAK5C,OAAO,eAAe,EAAE,YAAY;;;;qCAKpC,OAAO,eAAe,EAAE,sBAAsB;;;;sBAK9C,MAAM"}
1
+ {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../lib/config-file.js"],"names":[],"mappings":"AAkEA;;;;;;;;;;;;;;GAcG;AACH,sCAPW,OAAO,KAAK,EAAE,WAAW,EAAE,WAC3B,oBAAoB,CAAC,QAAQ,CAAC,GAAC,GAAG,iDAIhC,MAAM,CAUlB;AAED;;;;;;;;GAQG;AACH,yGAFa,QAAQ,oBAAoB,CAAC,CAwCzC;AAED;;;;GAIG;AACH,wCAHW,YAAY,GACV,sBAAsB,CAgClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAoBY,WAAW,2BAAoB,WAAW,CAAC,CAAC;;;;2BAK5C,OAAO,eAAe,EAAE,YAAY;;;;qCAKpC,OAAO,eAAe,EAAE,sBAAsB;;;;sBAK9C,MAAM"}