@appium/types 0.5.0 → 0.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.
Files changed (49) hide show
  1. package/build/{action.d.ts → lib/action.d.ts} +0 -0
  2. package/build/lib/action.d.ts.map +1 -0
  3. package/build/{action.js → lib/action.js} +1 -0
  4. package/build/lib/action.js.map +1 -0
  5. package/build/{appium-config.d.ts → lib/appium-config.d.ts} +39 -1
  6. package/build/lib/appium-config.d.ts.map +1 -0
  7. package/build/{appium-config.js → lib/appium-config.js} +1 -0
  8. package/build/lib/appium-config.js.map +1 -0
  9. package/build/{capabilities.d.ts → lib/capabilities.d.ts} +0 -0
  10. package/build/lib/capabilities.d.ts.map +1 -0
  11. package/build/{capabilities.js → lib/capabilities.js} +1 -0
  12. package/build/lib/capabilities.js.map +1 -0
  13. package/build/{config.d.ts → lib/config.d.ts} +0 -0
  14. package/build/lib/config.d.ts.map +1 -0
  15. package/build/{config.js → lib/config.js} +1 -0
  16. package/build/lib/config.js.map +1 -0
  17. package/build/lib/constraints.d.ts +65 -0
  18. package/build/lib/constraints.d.ts.map +1 -0
  19. package/build/{constraints.js → lib/constraints.js} +6 -2
  20. package/build/lib/constraints.js.map +1 -0
  21. package/build/{driver.d.ts → lib/driver.d.ts} +67 -38
  22. package/build/lib/driver.d.ts.map +1 -0
  23. package/build/{driver.js → lib/driver.js} +1 -0
  24. package/build/lib/driver.js.map +1 -0
  25. package/build/{index.d.ts → lib/index.d.ts} +27 -22
  26. package/build/lib/index.d.ts.map +1 -0
  27. package/build/{index.js → lib/index.js} +7 -4
  28. package/build/lib/index.js.map +1 -0
  29. package/build/{plugin.d.ts → lib/plugin.d.ts} +6 -3
  30. package/build/lib/plugin.d.ts.map +1 -0
  31. package/build/{plugin.js → lib/plugin.js} +1 -0
  32. package/build/lib/plugin.js.map +1 -0
  33. package/build/tsconfig.tsbuildinfo +1 -0
  34. package/index.js +1 -0
  35. package/lib/appium-config.ts +39 -1
  36. package/lib/{constraints.ts → constraints.js} +5 -3
  37. package/lib/driver.ts +89 -51
  38. package/lib/index.ts +31 -24
  39. package/lib/plugin.ts +7 -3
  40. package/package.json +22 -17
  41. package/build/action.d.ts.map +0 -1
  42. package/build/appium-config.d.ts.map +0 -1
  43. package/build/capabilities.d.ts.map +0 -1
  44. package/build/config.d.ts.map +0 -1
  45. package/build/constraints.d.ts +0 -53
  46. package/build/constraints.d.ts.map +0 -1
  47. package/build/driver.d.ts.map +0 -1
  48. package/build/index.d.ts.map +0 -1
  49. package/build/plugin.d.ts.map +0 -1
@@ -3,7 +3,7 @@ import { Driver, ExternalDriver } from './driver';
3
3
  /**
4
4
  * The interface describing the constructor and static properties of a Plugin.
5
5
  */
6
- export interface PluginStatic<T extends Plugin = Plugin> {
6
+ export interface PluginStatic<P extends Plugin> {
7
7
  /**
8
8
  * Allows a plugin to modify the Appium server instance.
9
9
  */
@@ -19,7 +19,7 @@ export interface PluginStatic<T extends Plugin = Plugin> {
19
19
  * }
20
20
  * }
21
21
  */
22
- newMethodMap?: MethodMap<T>;
22
+ newMethodMap?: MethodMap<P>;
23
23
  }
24
24
  /**
25
25
  * An instance of a "plugin" extension.
@@ -75,5 +75,8 @@ export declare type PluginCommand<TArgs = any> = (next: NextPluginCallback, driv
75
75
  *
76
76
  * The third parameter is the possible constructor signatures for the plugin class.
77
77
  */
78
- export declare type PluginClass = Class<Plugin, PluginStatic, [string, Record<string, unknown>]>;
78
+ export declare type PluginClass<P extends Plugin = Plugin> = Class<P, PluginStatic<P>, [
79
+ string,
80
+ Record<string, unknown>
81
+ ]>;
79
82
  //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,EAAa,MAAM,GAAG,CAAC;AACnF,OAAO,EAAC,MAAM,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM;IAC5C;;OAEG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B;;OAEG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF;;;OAGG;IACH,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,oBAAY,kBAAkB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAErD;;GAEG;AACH,oBAAY,aAAa,CAAC,KAAK,GAAG,GAAG,IAAI,CACvC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,cAAc,EACtB,GAAG,IAAI,EAAE,KAAK,EAAE,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;GAIG;AACH,oBAAY,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,KAAK,CACxD,CAAC,EACD,YAAY,CAAC,CAAC,CAAC,EACf;IAAC,MAAM;IAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAC,CAClC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../lib/action.ts","../lib/appium-config.ts","../../../node_modules/@types/node/ts4.8/assert.d.ts","../../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../node_modules/@types/node/ts4.8/globals.d.ts","../../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../node_modules/@types/node/ts4.8/buffer.d.ts","../../../node_modules/@types/node/ts4.8/child_process.d.ts","../../../node_modules/@types/node/ts4.8/cluster.d.ts","../../../node_modules/@types/node/ts4.8/console.d.ts","../../../node_modules/@types/node/ts4.8/constants.d.ts","../../../node_modules/@types/node/ts4.8/crypto.d.ts","../../../node_modules/@types/node/ts4.8/dgram.d.ts","../../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../node_modules/@types/node/ts4.8/dns.d.ts","../../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../node_modules/@types/node/ts4.8/domain.d.ts","../../../node_modules/@types/node/ts4.8/dom-events.d.ts","../../../node_modules/@types/node/ts4.8/events.d.ts","../../../node_modules/@types/node/ts4.8/fs.d.ts","../../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../node_modules/@types/node/ts4.8/http.d.ts","../../../node_modules/@types/node/ts4.8/http2.d.ts","../../../node_modules/@types/node/ts4.8/https.d.ts","../../../node_modules/@types/node/ts4.8/inspector.d.ts","../../../node_modules/@types/node/ts4.8/module.d.ts","../../../node_modules/@types/node/ts4.8/net.d.ts","../../../node_modules/@types/node/ts4.8/os.d.ts","../../../node_modules/@types/node/ts4.8/path.d.ts","../../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../node_modules/@types/node/ts4.8/process.d.ts","../../../node_modules/@types/node/ts4.8/punycode.d.ts","../../../node_modules/@types/node/ts4.8/querystring.d.ts","../../../node_modules/@types/node/ts4.8/readline.d.ts","../../../node_modules/@types/node/ts4.8/readline/promises.d.ts","../../../node_modules/@types/node/ts4.8/repl.d.ts","../../../node_modules/@types/node/ts4.8/stream.d.ts","../../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../node_modules/@types/node/ts4.8/test.d.ts","../../../node_modules/@types/node/ts4.8/timers.d.ts","../../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../node_modules/@types/node/ts4.8/tls.d.ts","../../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../../node_modules/@types/node/ts4.8/tty.d.ts","../../../node_modules/@types/node/ts4.8/url.d.ts","../../../node_modules/@types/node/ts4.8/util.d.ts","../../../node_modules/@types/node/ts4.8/v8.d.ts","../../../node_modules/@types/node/ts4.8/vm.d.ts","../../../node_modules/@types/node/ts4.8/wasi.d.ts","../../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../node_modules/@types/node/ts4.8/zlib.d.ts","../../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../../node_modules/@types/node/ts4.8/index.d.ts","../../../node_modules/typescript/lib/typescript.d.ts","../../../node_modules/@wdio/types/build/compiler.d.ts","../../../node_modules/@wdio/types/build/frameworks.d.ts","../../../node_modules/@wdio/types/build/services.d.ts","../../../node_modules/@wdio/types/build/reporters.d.ts","../../../node_modules/@wdio/types/build/options.d.ts","../../../node_modules/@wdio/types/build/capabilities.d.ts","../../../node_modules/@wdio/types/build/clients.d.ts","../../../node_modules/@wdio/types/build/workers.d.ts","../../../node_modules/@wdio/types/build/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/mime.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/npmlog/index.d.ts","../../../node_modules/type-fest/source/primitive.d.ts","../../../node_modules/type-fest/source/typed-array.d.ts","../../../node_modules/type-fest/source/basic.d.ts","../../../node_modules/type-fest/source/observable-like.d.ts","../../../node_modules/type-fest/source/empty-object.d.ts","../../../node_modules/type-fest/source/simplify.d.ts","../../../node_modules/type-fest/source/internal.d.ts","../../../node_modules/type-fest/source/except.d.ts","../../../node_modules/type-fest/source/writable.d.ts","../../../node_modules/type-fest/source/omit-index-signature.d.ts","../../../node_modules/type-fest/source/pick-index-signature.d.ts","../../../node_modules/type-fest/source/enforce-optional.d.ts","../../../node_modules/type-fest/source/merge.d.ts","../../../node_modules/type-fest/source/conditional-simplify.d.ts","../../../node_modules/type-fest/source/merge-deep.d.ts","../../../node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/type-fest/source/require-exactly-one.d.ts","../../../node_modules/type-fest/source/require-all-or-none.d.ts","../../../node_modules/type-fest/source/partial-deep.d.ts","../../../node_modules/type-fest/source/partial-on-undefined-deep.d.ts","../../../node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/type-fest/source/promisable.d.ts","../../../node_modules/type-fest/source/opaque.d.ts","../../../node_modules/type-fest/source/invariant-of.d.ts","../../../node_modules/type-fest/source/set-optional.d.ts","../../../node_modules/type-fest/source/set-required.d.ts","../../../node_modules/type-fest/source/set-non-nullable.d.ts","../../../node_modules/type-fest/source/value-of.d.ts","../../../node_modules/type-fest/source/async-return-type.d.ts","../../../node_modules/type-fest/source/conditional-keys.d.ts","../../../node_modules/type-fest/source/conditional-except.d.ts","../../../node_modules/type-fest/source/conditional-pick.d.ts","../../../node_modules/type-fest/source/conditional-pick-deep.d.ts","../../../node_modules/type-fest/source/union-to-intersection.d.ts","../../../node_modules/type-fest/source/stringified.d.ts","../../../node_modules/type-fest/source/fixed-length-array.d.ts","../../../node_modules/type-fest/source/multidimensional-array.d.ts","../../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../node_modules/type-fest/source/iterable-element.d.ts","../../../node_modules/type-fest/source/entry.d.ts","../../../node_modules/type-fest/source/entries.d.ts","../../../node_modules/type-fest/source/set-return-type.d.ts","../../../node_modules/type-fest/source/asyncify.d.ts","../../../node_modules/type-fest/source/numeric.d.ts","../../../node_modules/type-fest/source/jsonify.d.ts","../../../node_modules/type-fest/source/jsonifiable.d.ts","../../../node_modules/type-fest/source/schema.d.ts","../../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../../node_modules/type-fest/source/string-key-of.d.ts","../../../node_modules/type-fest/source/exact.d.ts","../../../node_modules/type-fest/source/readonly-tuple.d.ts","../../../node_modules/type-fest/source/optional-keys-of.d.ts","../../../node_modules/type-fest/source/has-optional-keys.d.ts","../../../node_modules/type-fest/source/required-keys-of.d.ts","../../../node_modules/type-fest/source/has-required-keys.d.ts","../../../node_modules/type-fest/source/spread.d.ts","../../../node_modules/type-fest/source/tuple-to-union.d.ts","../../../node_modules/type-fest/source/split-words.d.ts","../../../node_modules/type-fest/source/camel-case.d.ts","../../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/delimiter-case.d.ts","../../../node_modules/type-fest/source/kebab-case.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/pascal-case.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/snake-case.d.ts","../../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/includes.d.ts","../../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../../node_modules/type-fest/source/join.d.ts","../../../node_modules/type-fest/source/split.d.ts","../../../node_modules/type-fest/source/trim.d.ts","../../../node_modules/type-fest/source/replace.d.ts","../../../node_modules/type-fest/source/get.d.ts","../../../node_modules/type-fest/source/last-array-element.d.ts","../../../node_modules/type-fest/source/package-json.d.ts","../../../node_modules/type-fest/source/tsconfig-json.d.ts","../../../node_modules/type-fest/index.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../schema/build/appium-config-schema.d.ts","../../schema/build/index.d.ts","../lib/config.ts","../lib/constraints.js","../lib/driver.ts","../lib/plugin.ts","../lib/index.ts","../lib/capabilities.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts"],"fileInfos":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},{"version":"44570e5c7370e6d964c1148a0d8cc6bbc8f0f2b187d2d000cc22e4422628183d","signature":"e6523b06ba1c5656f413608986725594c813d3585aec3207675b49527edee8bc"},{"version":"55212d5667550dd57e3c3c5d779e84e8642351c865ff6abcdeb00094a34700a8","signature":"0c6d5743d4fed85c7cc17b1ff028f8fa46d478c78c666652b2ad9d0ae07137d3"},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"02873d070f9cb79f50833fbf4a9a27ac578a2edf8ddb8421eba1b37faba83bfb","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"c0db280fa6b09d7b8d6720a19a47f485956a41ee0e6914f1b704033eb69c6058","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","1d57780aea4d57da79550dc5da0b12158d212391d61514ef4ad2cbd31f6ba7c2","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d4ac44f01d42f541631c5fc88d0ed8efac29a3a3ad9a745d9fd58f8b61ed132e","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","3163f47436da41706c6e2b3c1511f3b7cce9f9f3905b2f3e01246c48b4ba7d14","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","213fc4f2b172d8beb74b77d7c1b41488d67348066d185e4263470cbb010cd6e8",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"f7db71191aa7aac5d6bc927ed6e7075c2763d22c7238227ec0c63c8cf5cb6a8b","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"652ee9c5103e89102d87bc20d167a02a0e3e5e53665674466c8cfea8a9e418c7","3fa86a2c33804b6a4221dda3714a6a2f8a2f26983ea6c63d2bf6f2839fbb778a","a47b38aac630271c68667d717c865e4c98200bd90b4a8859d3f07460da09adec","46ab84953b0abb33ae9a42af24c97883e68f1080f084ffb9436181b3f147776c","d97f055b516d74e0c0bace388e6bbe3bc386a9599a1d1862ba8a669e892a1d2a","9175464b6d81e04a6c2b0db519671b8bf7e27e16d8e013e4865abd7136886fff","5f9e9eee4568d2fbef66f0118381003c07c43193dd18bc86f3141726a23a386e","f7966ad6831404160d87c57d0628ae90130b24f8936ee3760e11d4e87465b1a9","db412fc192357cd4bff3e93e79030ea404b7d2cf8c089d2fe9d53ba010f1a916","7bc97e823dd70d66e9640998837ca0aad3480b415035dbd2074e3a450166e221",{"version":"1153175167a3c48f04cea09400723d11107af1c13e2f0fc858347ef085417519","affectsGlobalScope":true},"16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","df38da6685578ac3d0e4ce2d20f3d59462ee53959b8263d2532ec9cec48ae098","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","f1f0ab91eacf5fe45d4b9c0fc67b7510f490bd292505bc4baeba3bb43d17ec68",{"version":"4f24c2781b21b6cd65eede543669327d68a8cf0c6d9cf106a1146b164a7c8ef9","affectsGlobalScope":true},"86b484bcf6344a27a9ee19dd5cef1a5afbbd96aeb07708cc6d8b43d7dfa8466c","cb26f195564ee703a68161f88e57e33e6e76e630b999e582d0a4328435d7f84e","9663486a33679af23401cddfd608a7f86bab76a373f557557a5064275ced6ca5","326da4aebf555d54b995854ff8f3432f63ba067be354fa16c6e1f50daa0667de","d274da8ba27079a593a7de4fbe82f3aab664724bf4f1b080e977f6e745e690e1","4502caaa3fff6c9766bfc145b1b586ef26d53e5f104271db046122b8eef57fd1","382f061a24f63ef8bfb1f7a748e1a2568ea62fb91ed1328901a6cf5ad129d61c","952c4a8d2338e19ef26c1c0758815b1de6c082a485f88368f5bece1e555f39d4","ce01848c6682d9e7653bfa653b28ca9294beeabb85cf99bcc6168f10c6e3f436","ef4c9ef3ec432ccbf6508f8aa12fbb8b7f4d535c8b484258a3888476de2c6c36","dee75c873b20a13839a8ce9ea9d32696682c6db4b1e9f4fb6bc431ed31b0fb8a","f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","865f3db83300a1303349cc49ed80943775a858e0596e7e5a052cc65ac03b10bb","a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","a24c4fe21d5b13a9ecbbb39b5e22f5d4c6fe5feebb074865ba2de273381a73ae","48a9a38d31f33ba5a969cc7028907691e01c26d5341c558b051d27ef302602e9","2169cdcb2e85ec18274590018fc1a12b8fe02708813692d9a1531695c17d3198","9392e1e62ee32e9b9334fa9bf93c27be2d7227ded895a984532cb155dc776f95","da2aa652d2bf03cc042e2ff31e4194f4f18f042b8344dcb2568f761daaf7869f","03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","de2b56099545de410af72a7e430ead88894e43e4f959de29663d4d0ba464944d","eec9e706eef30b4f1c6ff674738d3fca572829b7fa1715f37742863dabb3d2f2","b0cefbc19466a38f5883079f0845babcb856637f7d4f3f594b746d39b74390f7","1e86d750ab0d4fbde7213aa28174f8838e38fe755bc75d8ab05795c58164082c","1f0ee5ddb64540632c6f9a5b63e242b06e49dd6472f3f5bd7dfeb96d12543e15","18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","1e2c2a147cc887a3903d243aecb9be8d00f8701dd44a9668cc6f74a3559c8c1d","4d397c276bd0d41f8a5a0d67a674d5cf3f79b79b0f4df13a0fbefdf0e88f0519","aa79b64f5b3690c66892f292e63dfe3e84eb678a886df86521f67c109d57a0c5","a692e092c3b9860c9554698d84baf308ba51fc8f32ddd6646e01a287810b16c6","bfe7df6fcf991120bbaceee4349879cb61cc1818ca7861fbeb325d9fbc72010d","0b9bcc98884f81d8adda2c5d2ebb0361c7a53af6713e72138c4457e6016ff708","1848ebe5252ccb5ca1ca4ff52114516bdbbc7512589d6d0839beeea768bfb400","31073e7d0e51f33b1456ff2ab7f06546c95e24e11c29d5b39a634bc51f86d914","fcc438e50c00c9e865d9c1777627d3fdc1e13a4078c996fb4b04e67e462648c8","d0f07efa072420758194c452edb3f04f8eabc01cd4b3884a23e7274d4e2a7b69","a90339d50728b60f761127fe75192e632aa07055712a377acd8d20bb5d61e80c","37569cc8f21262ca62ec9d3aa8eb5740f96e1f325fad3d6aa00a19403bd27b96","fa18c6fe108031717db1ada404c14dc75b8b38c54daa3bb3af4c4999861ca653","5d0c07b23422ed8c10e75b0f7bd71e7ca948f54754b0e1efa1800c2a801d8fe8","9e4891d8c1d8de97893a062b68c543b3a77cfab40e1a4cf70db0be3c79a03b32","4f0781ec008bb24dc1923285d25d648ea48fb5a3c36d0786e2ee82eb00eff426","2a63c04bf3afa1a4e10899490b21bc3537ea306c34f6479883d37af3615a199a","cd8aa48c26b3de057cfd76706c0cff88ace0f23f548b8dee974088497780e5ae","abf140fdc3db44c2cac9415426544d8c2a89e73f13f7838376b2b6d36d74a582","e79e530a8216ee171b4aca8fc7b99bd37f5e84555cba57dc3de4cd57580ff21a","f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","21fa5e89751e3004538ade8a86e892fdf107f183aa8ae07b205d10bd80d33156","4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","0a0bf0cb43af5e0ac1703b48325ebc18ad86f6bf796bdbe96a429c0e95ca4486","75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","eb31477c87de3309cbe4e9984fa74a052f31581edb89103f8590f01874b4e271","587ce54f0e8ad1eea0c9174d6f274fb859648cebb2b8535c7adb3975aee74c21","1502a23e43fd7e9976a83195dc4eaf54acaff044687e0988a3bd4f19fc26b02b","dfdd3da3c5aab7f4ef3078d833bd3cef0ae65f7e358a008476e59aef6cc1d708","329ba46b4412a5e240cd8276e0b9e4c7d7676df651d790413e3541f1007704c6","7b7f39411329342a28ea19a4ca3aa4c7f7d888c9f01a411b05e4126280026ea6","7f89aebd8a6aa9ff7dfc72d12352478f1db227e2d79d5b5f9d8a59cf1b5c6b48","7d936e6db7d5d73c02471a8e872739f1ddbacf213c159e97d1d94cca315ea3f2","a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","789110b95e963c99ace4e9ad8b60901201ddc4cab59f32bde5458c1359a4d887","92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","074343ca788a38f572d8bdb0985956c0ad1a4d8ca8b6ef8c1a19a0e11cf09db0","d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","fc3ee92b81a6188a545cba5c15dc7c5d38ee0aaca3d8adc29af419d9bdb1fdb9","7d05ac926705ce932b6e41e5e273333b380d08b6a036ad0c8b01139586b34548","0bc13111c65ef1373c84c86c039416127579469828f0e01e03ffe00fb8fd6785","c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","f3dedc92d06e0fdc43e76c2e1acca21759dd63d2572c9ec78a5188249965d944","25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","e0f80f311554c24650ae72fce0cbc585faca8d517f5398299be938abedd0b214","5a4d0b09de173c391d5d50064fc20166becc194248b1ce738e8a56af5196d28c","7ad042f7d744ccfbcf6398216203c7712f01359d6fd4348c8bd8df8164e98096","0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","008ed9b6d1fdb68f9d98e6fd238d99be77e738892c3a1c6cf8b7616de4f8b114","08f95bee0619072d2c49854434af3e53d94e7e762fc082b49cea59e77db06905","5b5d16c5838f462cadefa8378e3ab4bbf0fe6b179b4930268db9871d270ceae5","f734063a854b2402e89de037fd7289e31685248c0d8ca0f80ff4fe657364dd61","9c6028359282f2e26108501a4a03736d309c7c43acae2ad1c41c13e845744ff3","b4358a89fcd9c579f84a6c68e2ce44ca91b07e4db3f8f403c2b7a72c1a1e04b6","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","2483bc7046beeeb4cc644cdc84dc605ff97f755b859315e976966dcb1cb4321a","6101949945c252c5706da566e06b7be2a4cc48e73f25165add3c081d0dd37578",{"version":"aa1eb8399003f3dd38fde225ec9c4e49bf671c971598bb5f99c7b6e7b0d6f405","signature":"ea981e5e4adac0e3e490d5a3d87cfd46230efd3f2efb24e634d8446647d25bd8"},{"version":"287ded23835a1b00dd81a99945315bac287b9485a7dc434c3fb719581d32087e","signature":"adc73b9576c980b97ff79cc0cca603bfaeff30ee124c3a5dc5ee8a8a0b0bfdc1"},{"version":"8221023fdb998e3d89251ee2c25b323b13cdf0765d6dec3796952ce70b5e218d","signature":"e6cc4a7ee65561fbb52d888acf23e2fc1377c76e4ba51c0866eee410ff0894ba"},{"version":"8d7261e08b5df7455f968e52b27744b96f7a2ea399f7deaa1a78665a27135535","signature":"b38920b1529ffa9f2da938cafed955af42a16d75ab76ee5156b063ee8bb83b8b"},{"version":"27855eb21392e83672500b08f21affcb1024b443dff794aca91bb65bc14a2131","signature":"0c2ba7f856ac58db45459c89b3d11c150a497505935bc699d495d8364ddca3ae"},{"version":"c2ca9c57f2d85113ac5acf2dc065b5b617b0ca2203484fae2d0c6e7f1b9bc50e","signature":"91e4f800625a670e65eaa0227a6d29a157c3b357ec49bdb13aaeac9c7084c65f"},{"version":"677646e2620795c98a539fb12fb531f10331c217cef1492132b2518f894fa92d","affectsGlobalScope":true},{"version":"b9734142a4b241cfb505be4a2eb0261d211647df7c73043f817f4fdd8d96c846","affectsGlobalScope":true},"f83b320cceccfc48457a818d18fc9a006ab18d0bdd727aa2c2e73dc1b4a45e98","354abbae08f72ea982b1a767a8908f1b3efe8bbe53955c64f9c0c249c8832d5d",{"version":"4f0ad52a7fbd6bfba88ec22ec719b6956a0fc647030462f9db490e74236d116f","affectsGlobalScope":true},{"version":"63e2182615c513e89bb8a3e749d08f7c379e86490fcdbf6d35f2c14b3507a6e8","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":1,"outDir":"./","removeComments":false,"skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"target":7},"fileIdsList":[[62,89,96,113],[89,214],[89],[62,89,96],[59,62,89,96,107,108],[89,108,109,112,114],[89,110],[89,111],[43,89],[46,89],[47,52,80,89],[48,59,60,67,77,88,89],[48,49,59,67,89],[50,89],[51,52,60,68,89],[52,77,85,89],[53,55,59,67,89],[54,89],[55,56,89],[59,89],[57,59,89],[59,60,61,77,88,89],[59,60,61,74,77,80,89],[89,93],[55,62,67,77,88,89],[59,60,62,63,67,77,85,88,89],[62,64,77,85,88,89],[43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],[59,65,89],[66,88,89],[55,59,67,77,89],[68,89],[69,89],[46,70,89],[71,87,89,93],[72,89],[73,89],[59,74,75,89],[74,76,89,91],[47,59,77,78,79,80,89],[47,77,79,89],[77,78,89],[80,89],[81,89],[59,83,84,89],[83,84,89],[52,67,77,85,89],[86,89],[67,87,89],[47,62,73,88,89],[52,89],[77,89,90],[89,91],[89,92],[47,52,59,61,70,77,88,89,91,93],[77,89,94],[62,89,96,111],[89,214,216],[89,215],[59,62,64,77,85,88,89,94,96],[89,102],[89,103],[89,97],[89,99,100,101,102,103,104,105],[62,64,88,89,96,98,100,101,103],[59,60,89,96,103],[89,96,99,102,103],[59,89,96,102,103],[89,117,118,119,120,121,122,124,125,126,127,129,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201],[89,160],[89,176],[89,177],[89,124,148],[89,123,130,141,149],[89,148],[89,123],[89,180],[89,122],[89,158],[89,123,167,195],[89,170],[89,172],[89,117,122],[89,141],[89,119],[89,118,119,121,123,162],[89,184],[89,182],[89,117],[89,123,126,127,128,129,130],[89,126,127,128],[89,119,139],[89,123,129],[89,186],[89,124],[89,180,189,192],[89,122,124],[89,122,124,172],[89,204],[89,205],[89,106,208,211],[42,89,206],[41,59,89,202,207,211],[41,42,62,67,89,115,116,202,203,207,208,209,210,212],[89,209,211],[106,208,211],[42,206],[41,59,202,207,211],[41,42,62,67,115,116,202,203,207,208,209,210,212],[209,211]],"referencedMap":[[114,1],[218,2],[214,3],[113,4],[109,5],[115,6],[204,3],[111,7],[110,8],[213,3],[43,9],[44,9],[46,10],[47,11],[48,12],[49,13],[50,14],[51,15],[52,16],[53,17],[54,18],[55,19],[56,19],[58,20],[57,21],[59,20],[60,22],[61,23],[45,24],[95,3],[62,25],[63,26],[64,27],[96,28],[65,29],[66,30],[67,31],[68,32],[69,33],[70,34],[71,35],[72,36],[73,37],[74,38],[75,38],[76,39],[77,40],[79,41],[78,42],[80,43],[81,44],[82,3],[83,45],[84,46],[85,47],[86,48],[87,49],[88,50],[89,51],[90,52],[91,53],[92,54],[93,55],[94,56],[116,20],[108,3],[107,3],[112,57],[217,58],[216,59],[215,3],[203,60],[103,61],[104,62],[98,63],[99,3],[106,64],[102,65],[101,66],[100,67],[105,68],[202,69],[147,3],[161,70],[119,3],[177,71],[179,72],[178,72],[149,73],[148,3],[151,74],[150,75],[130,3],[180,76],[184,77],[182,77],[121,3],[128,78],[159,79],[158,3],[168,76],[124,76],[154,3],[198,80],[171,81],[173,82],[192,76],[123,83],[142,84],[157,3],[194,3],[164,85],[163,86],[181,77],[185,87],[183,88],[199,3],[166,3],[139,89],[131,90],[132,3],[129,91],[155,76],[156,76],[162,3],[120,3],[126,3],[141,3],[170,3],[200,92],[136,76],[137,93],[186,72],[188,94],[187,94],[127,3],[117,3],[140,3],[138,76],[169,3],[197,3],[135,3],[133,95],[134,3],[172,3],[165,3],[193,96],[145,3],[143,97],[144,97],[160,76],[122,3],[189,77],[191,87],[190,88],[176,76],[195,3],[174,98],[167,3],[153,3],[196,3],[201,3],[175,3],[118,3],[152,3],[146,3],[125,97],[9,3],[8,3],[2,3],[10,3],[11,3],[12,3],[13,3],[14,3],[15,3],[16,3],[17,3],[3,3],[4,3],[21,3],[18,3],[19,3],[20,3],[22,3],[23,3],[24,3],[5,3],[25,3],[26,3],[27,3],[28,3],[6,3],[29,3],[30,3],[31,3],[32,3],[7,3],[33,3],[38,3],[39,3],[34,3],[35,3],[36,3],[37,3],[1,3],[40,3],[97,3],[205,99],[206,100],[41,3],[42,3],[212,101],[207,102],[208,3],[209,103],[211,104],[210,105]],"exportedModulesMap":[[114,1],[218,2],[214,3],[113,4],[109,5],[115,6],[204,3],[111,7],[110,8],[213,3],[43,9],[44,9],[46,10],[47,11],[48,12],[49,13],[50,14],[51,15],[52,16],[53,17],[54,18],[55,19],[56,19],[58,20],[57,21],[59,20],[60,22],[61,23],[45,24],[95,3],[62,25],[63,26],[64,27],[96,28],[65,29],[66,30],[67,31],[68,32],[69,33],[70,34],[71,35],[72,36],[73,37],[74,38],[75,38],[76,39],[77,40],[79,41],[78,42],[80,43],[81,44],[82,3],[83,45],[84,46],[85,47],[86,48],[87,49],[88,50],[89,51],[90,52],[91,53],[92,54],[93,55],[94,56],[116,20],[108,3],[107,3],[112,57],[217,58],[216,59],[215,3],[203,60],[103,61],[104,62],[98,63],[99,3],[106,64],[102,65],[101,66],[100,67],[105,68],[202,69],[147,3],[161,70],[119,3],[177,71],[179,72],[178,72],[149,73],[148,3],[151,74],[150,75],[130,3],[180,76],[184,77],[182,77],[121,3],[128,78],[159,79],[158,3],[168,76],[124,76],[154,3],[198,80],[171,81],[173,82],[192,76],[123,83],[142,84],[157,3],[194,3],[164,85],[163,86],[181,77],[185,87],[183,88],[199,3],[166,3],[139,89],[131,90],[132,3],[129,91],[155,76],[156,76],[162,3],[120,3],[126,3],[141,3],[170,3],[200,92],[136,76],[137,93],[186,72],[188,94],[187,94],[127,3],[117,3],[140,3],[138,76],[169,3],[197,3],[135,3],[133,95],[134,3],[172,3],[165,3],[193,96],[145,3],[143,97],[144,97],[160,76],[122,3],[189,77],[191,87],[190,88],[176,76],[195,3],[174,98],[167,3],[153,3],[196,3],[201,3],[175,3],[118,3],[152,3],[146,3],[125,97],[9,3],[8,3],[2,3],[10,3],[11,3],[12,3],[13,3],[14,3],[15,3],[16,3],[17,3],[3,3],[4,3],[21,3],[18,3],[19,3],[20,3],[22,3],[23,3],[24,3],[5,3],[25,3],[26,3],[27,3],[28,3],[6,3],[29,3],[30,3],[31,3],[32,3],[7,3],[33,3],[38,3],[39,3],[34,3],[35,3],[36,3],[37,3],[1,3],[40,3],[97,3],[205,99],[206,100],[212,106],[207,107],[209,108],[211,109],[210,110]],"semanticDiagnosticsPerFile":[114,218,214,113,109,115,204,111,110,213,43,44,46,47,48,49,50,51,52,53,54,55,56,58,57,59,60,61,45,95,62,63,64,96,65,66,67,68,69,70,71,72,73,74,75,76,77,79,78,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,116,108,107,112,217,216,215,203,103,104,98,99,106,102,101,100,105,202,147,161,119,177,179,178,149,148,151,150,130,180,184,182,121,128,159,158,168,124,154,198,171,173,192,123,142,157,194,164,163,181,185,183,199,166,139,131,132,129,155,156,162,120,126,141,170,200,136,137,186,188,187,127,117,140,138,169,197,135,133,134,172,165,193,145,143,144,160,122,189,191,190,176,195,174,167,153,196,201,175,118,152,146,125,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,29,30,31,32,7,33,38,39,34,35,36,37,1,40,97,205,206,41,42,212,207,208,209,211,210]},"version":"4.7.4"}
package/index.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./build/lib/constraints');
@@ -49,10 +49,24 @@ export type LocalTimezoneConfig = boolean;
49
49
  * Also send log output to this file
50
50
  */
51
51
  export type LogConfig = string;
52
+ /**
53
+ * Log filtering rule
54
+ */
55
+ export type LogFilter = {
56
+ /**
57
+ * Replacement string for matched text
58
+ */
59
+ replacer?: string;
60
+ /**
61
+ * Matching flags; see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#advanced_searching_with_flags
62
+ */
63
+ flags?: string;
64
+ [k: string]: unknown;
65
+ } & (LogFilterText | LogFilterRegex);
52
66
  /**
53
67
  * One or more log filtering rules
54
68
  */
55
- export type LogFiltersConfig = string[];
69
+ export type LogFiltersConfig = LogFilter[];
56
70
  /**
57
71
  * Log level (console[:file])
58
72
  */
@@ -134,6 +148,10 @@ export type WebhookConfig = string;
134
148
  * A schema for Appium configuration files
135
149
  */
136
150
  export interface AppiumConfiguration {
151
+ /**
152
+ * The JSON schema for this file
153
+ */
154
+ $schema?: string;
137
155
  server?: ServerConfig;
138
156
  }
139
157
  /**
@@ -183,6 +201,26 @@ export interface DefaultCapabilitiesConfig {
183
201
  export interface DriverConfig {
184
202
  [k: string]: unknown;
185
203
  }
204
+ /**
205
+ * Log filter with plain text
206
+ */
207
+ export interface LogFilterText {
208
+ /**
209
+ * Text to match
210
+ */
211
+ text: string;
212
+ [k: string]: unknown;
213
+ }
214
+ /**
215
+ * Log filter with regular expression
216
+ */
217
+ export interface LogFilterRegex {
218
+ /**
219
+ * Regex pattern to match
220
+ */
221
+ pattern: string;
222
+ [k: string]: unknown;
223
+ }
186
224
  /**
187
225
  * Path to configuration JSON file to register Appium as a node with Selenium Grid 3; otherwise the configuration itself
188
226
  */
@@ -1,4 +1,4 @@
1
- export const BASE_DESIRED_CAP_CONSTRAINTS = {
1
+ export const BASE_DESIRED_CAP_CONSTRAINTS = /** @type {const} */ ({
2
2
  platformName: {
3
3
  presence: true,
4
4
  isString: true,
@@ -48,6 +48,8 @@ export const BASE_DESIRED_CAP_CONSTRAINTS = {
48
48
  printPageSourceOnFindFailure: {
49
49
  isBoolean: true,
50
50
  },
51
- } as const;
51
+ });
52
52
 
53
- export type BaseDriverCapConstraints = typeof BASE_DESIRED_CAP_CONSTRAINTS;
53
+ /**
54
+ * @typedef {typeof BASE_DESIRED_CAP_CONSTRAINTS} BaseDriverCapConstraints
55
+ */
package/lib/driver.ts CHANGED
@@ -14,8 +14,9 @@ import {
14
14
  Capabilities,
15
15
  } from '.';
16
16
  import {ServerArgs} from './config';
17
+ import {AsyncReturnType, ConditionalPick} from 'type-fest';
17
18
 
18
- export interface TimeoutCommands {
19
+ export interface ITimeoutCommands {
19
20
  timeouts(
20
21
  type: string,
21
22
  ms: number | string,
@@ -38,29 +39,28 @@ export interface TimeoutCommands {
38
39
  parseTimeoutArgument(ms: number | string): number;
39
40
  }
40
41
 
41
- export interface EventCommands {
42
+ export interface IEventCommands {
42
43
  logCustomEvent(vendor: string, event: string): Promise<void>;
43
44
  getLogEvents(type?: string | string[]): Promise<EventHistory | Record<string, number>>;
44
45
  }
45
46
 
46
- export interface SessionCommands {
47
+ export interface ISessionCommands {
47
48
  getSessions(): Promise<MultiSessionData[]>;
48
49
  getSession(): Promise<SingularSessionData>;
49
50
  }
50
51
 
51
- export interface ExecuteCommands {
52
+ export interface IExecuteCommands {
52
53
  executeMethod(script: string, args: [StringRecord] | []): Promise<any>;
53
54
  }
54
55
 
55
- export interface ExecuteMethodDef {
56
- command: string;
56
+ export interface ExecuteMethodDef<D> {
57
+ command: keyof ConditionalPick<Required<D>, DriverCommand>;
57
58
  params?: {
58
- required?: string[];
59
- optional?: string[];
59
+ required?: ReadonlyArray<string>;
60
+ optional?: ReadonlyArray<string>;
60
61
  };
61
62
  }
62
- export type ExecuteMethodMap = Record<string, ExecuteMethodDef>;
63
-
63
+ export type ExecuteMethodMap<D> = Readonly<Record<string, Readonly<ExecuteMethodDef<D>>>>;
64
64
  export interface MultiSessionData<
65
65
  C extends Constraints = BaseDriverCapConstraints,
66
66
  Extra extends StringRecord | void = void
@@ -74,7 +74,7 @@ export type SingularSessionData<
74
74
  Extra extends StringRecord | void = void
75
75
  > = Capabilities<C, Extra> & {events?: EventHistory; error?: string};
76
76
 
77
- export interface FindCommands {
77
+ export interface IFindCommands<Ctx = any> {
78
78
  findElement(strategy: string, selector: string): Promise<Element>;
79
79
  findElements(strategy: string, selector: string): Promise<Element[]>;
80
80
  findElementFromElement(strategy: string, selector: string, elementId: string): Promise<Element>;
@@ -88,33 +88,70 @@ export interface FindCommands {
88
88
  strategy: string,
89
89
  selector: string,
90
90
  mult: Mult,
91
- context?: string
91
+ context?: Ctx
92
92
  ): Promise<Mult extends true ? Element[] : Element>;
93
93
 
94
94
  findElOrElsWithProcessing<Mult extends boolean>(
95
95
  strategy: string,
96
96
  selector: string,
97
97
  mult: Mult,
98
- context?: string
98
+ context?: Ctx
99
99
  ): Promise<Mult extends true ? Element[] : Element>;
100
100
 
101
101
  getPageSource(): Promise<string>;
102
102
  }
103
103
 
104
- export interface LogCommands {
105
- supportedLogTypes: Record<string, LogType<Driver>>;
106
- getLogTypes(): Promise<string[]>;
104
+ export interface ILogCommands<C extends Constraints> {
105
+ /**
106
+ * Definition of the available log types
107
+ */
108
+ supportedLogTypes: Readonly<LogDefRecord<C>>;
109
+
110
+ /**
111
+ * Get available log types as a list of strings
112
+ */
113
+ getLogTypes(): Promise<(keyof ILogCommands<C>['supportedLogTypes'])[]>;
114
+
107
115
  /**
108
- * Gets logs
116
+ * Get the log for a given log type.
109
117
  *
110
- * TODO: `logType` should be a key in `supportedLogTypes`, and the return value of this function
111
- * should be the associated `LogType` object's `LogEntry` parameterized type.
112
- * @param logType - Name/key of log type as defined in {@linkcode LogCommands.supportedLogTypes}.
118
+ * @param logType - Name/key of log type as defined in {@linkcode ILogCommands.supportedLogTypes}.
113
119
  */
114
- getLog(logType: string): Promise<any[]>;
120
+ getLog(
121
+ logType: keyof ILogCommands<C>['supportedLogTypes']
122
+ ): Promise<
123
+ AsyncReturnType<
124
+ ILogCommands<C>['supportedLogTypes'][keyof ILogCommands<C>['supportedLogTypes']]['getter']
125
+ >
126
+ >;
115
127
  }
116
128
 
117
- export interface SettingsCommands {
129
+ /**
130
+ * A record of {@linkcode LogDef} objects, keyed by the log type name.
131
+ * Used in {@linkcode ILogCommands.supportedLogTypes}
132
+ */
133
+ export type LogDefRecord<C extends Constraints> = Record<string, LogDef<C>>;
134
+
135
+ /**
136
+ * A definition of a log type
137
+ */
138
+ export interface LogDef<C extends Constraints, T = unknown> {
139
+ /**
140
+ * Description of the log type.
141
+ *
142
+ * The only place this is used is in error messages if the client provides an invalid log type
143
+ * via {@linkcode ILogCommands.getLog}.
144
+ */
145
+ description: string;
146
+ /**
147
+ * Returns all the log data for the given type
148
+ *
149
+ * This implementation *should* drain, truncate or otherwise reset the log buffer.
150
+ */
151
+ getter: (driver: Driver<C>) => Promise<T[]>;
152
+ }
153
+
154
+ export interface ISettingsCommands {
118
155
  updateSettings: (settings: StringRecord) => Promise<void>;
119
156
  getSettings(): Promise<StringRecord>;
120
157
  }
@@ -185,11 +222,6 @@ export interface DeviceSettings<T = any> {
185
222
  getSettings(): Record<string, T>;
186
223
  }
187
224
 
188
- export interface LogType<TDriver, LogEntry = string> {
189
- description: string;
190
- getter: (driver: TDriver) => Promise<LogEntry[]>;
191
- }
192
-
193
225
  // WebDriver
194
226
 
195
227
  export interface Rect {
@@ -244,7 +276,7 @@ export type Position = Pick<Rect, 'x' | 'y'>;
244
276
  export interface Location {
245
277
  latitude: number;
246
278
  longitude: number;
247
- altitude: number;
279
+ altitude?: number;
248
280
  }
249
281
 
250
282
  export interface Rotation {
@@ -324,20 +356,25 @@ export interface Core<C extends Constraints = BaseDriverCapConstraints> {
324
356
  /**
325
357
  * `BaseDriver` implements this. It contains default behavior;
326
358
  * external drivers are expected to implement {@linkcode ExternalDriver} instead.
359
+ *
360
+ * `C` should be the constraints of the driver.
361
+ * `CArgs` would be the shape of `cliArgs`.
362
+ * `Ctx` would be the type of the element context (e.g., string, dictionary of some sort, etc.)
327
363
  */
328
364
  export interface Driver<
329
365
  C extends Constraints = BaseDriverCapConstraints,
330
- A extends StringRecord = StringRecord
331
- > extends SessionCommands,
332
- LogCommands,
333
- FindCommands,
334
- SettingsCommands,
335
- TimeoutCommands,
336
- EventCommands,
366
+ CArgs extends StringRecord = StringRecord,
367
+ Ctx = any
368
+ > extends ISessionCommands,
369
+ ILogCommands<C>,
370
+ IFindCommands<Ctx>,
371
+ ISettingsCommands,
372
+ ITimeoutCommands,
373
+ IEventCommands,
374
+ IExecuteCommands,
337
375
  SessionHandler<[string, any], void, C>,
338
- ExecuteCommands,
339
376
  Core {
340
- cliArgs?: A;
377
+ cliArgs: CArgs;
341
378
  // The following methods are implemented by `BaseDriver`.
342
379
  executeCommand(cmd: string, ...args: any[]): Promise<any>;
343
380
  startUnexpectedShutdown(err?: Error): Promise<void>;
@@ -355,12 +392,13 @@ export interface Driver<
355
392
  * External drivers must subclass `BaseDriver`, and can implement any of these methods.
356
393
  * None of these are implemented within Appium itself.
357
394
  */
358
- export interface ExternalDriver extends Driver {
395
+ export interface ExternalDriver<C extends Constraints = BaseDriverCapConstraints>
396
+ extends Driver<C> {
359
397
  // The following properties are assigned by appium */
360
- server: AppiumServer;
361
- serverHost: string;
362
- serverPort: number;
363
- serverPath: string;
398
+ server?: AppiumServer;
399
+ serverHost?: string;
400
+ serverPort?: number;
401
+ serverPath?: string;
364
402
 
365
403
  // WebDriver
366
404
  setUrl?(url: string): Promise<void>;
@@ -571,8 +609,7 @@ export interface ExternalDriver extends Driver {
571
609
  removeAllAuthCredentials?(): Promise<void>;
572
610
  removeAuthCredential?(): Promise<void>;
573
611
  setUserAuthVerified?(isUserVerified: boolean): Promise<void>;
574
-
575
- proxyCommand?(url: string, method: HTTPMethod, body?: string): Promise<unknown>;
612
+ proxyCommand?<T = any>(url: string, method: HTTPMethod, body?: string): Promise<T>;
576
613
  }
577
614
 
578
615
  /**
@@ -580,11 +617,11 @@ export interface ExternalDriver extends Driver {
580
617
  *
581
618
  * This is likely unusable by external consumers, but YMMV!
582
619
  */
583
- export interface DriverStatic {
620
+ export interface DriverStatic<D extends Driver> {
584
621
  baseVersion: string;
585
622
  updateServer?: UpdateServerCallback;
586
- newMethodMap?: MethodMap<ExternalDriver>;
587
- executeMethodMap: ExecuteMethodMap;
623
+ newMethodMap?: MethodMap<D>;
624
+ executeMethodMap?: ExecuteMethodMap<D>;
588
625
  }
589
626
 
590
627
  /**
@@ -592,10 +629,11 @@ export interface DriverStatic {
592
629
  *
593
630
  * This is likely unusable by external consumers, but YMMV!
594
631
  */
595
- export type DriverClass<
596
- D extends Driver = ExternalDriver,
597
- S extends DriverStatic = DriverStatic
598
- > = Class<D, S, [] | [Partial<ServerArgs>] | [Partial<ServerArgs>, boolean]>;
632
+ export type DriverClass<D extends Driver = ExternalDriver> = Class<
633
+ D,
634
+ DriverStatic<D>,
635
+ [] | [Partial<ServerArgs>] | [Partial<ServerArgs>, boolean]
636
+ >;
599
637
 
600
638
  export interface ExtraDriverOpts {
601
639
  fastReset?: boolean;
package/lib/index.ts CHANGED
@@ -1,20 +1,23 @@
1
- import type {Server as WSServer} from 'ws';
2
- import type {Socket} from 'net';
1
+ import type {Express} from 'express';
3
2
  import type {Server} from 'http';
3
+ import type {Socket} from 'net';
4
+ import type {Logger} from 'npmlog';
4
5
  import type {Class as _Class, ConditionalPick, MultidimensionalReadonlyArray} from 'type-fest';
6
+ import type {Server as WSServer} from 'ws';
5
7
  import {ServerArgs} from './config';
6
- import type {Express} from 'express';
7
- import {ExternalDriver} from './driver';
8
- import type {Logger} from 'npmlog';
9
8
 
10
- export * from './driver';
11
9
  export * from './action';
12
- export * from './plugin';
10
+ export * from './appium-config';
13
11
  export * from './capabilities';
14
- export * from './constraints';
15
12
  export * from './config';
16
- export * from './appium-config';
13
+ export {BASE_DESIRED_CAP_CONSTRAINTS} from './constraints';
14
+ export type {BaseDriverCapConstraints} from './constraints';
15
+ export * from './driver';
16
+ export * from './plugin';
17
17
 
18
+ /**
19
+ * Utility type for a object with string-only props
20
+ */
18
21
  export type StringRecord = Record<string, any>;
19
22
 
20
23
  /**
@@ -79,47 +82,51 @@ export interface AppiumServerSocket extends Socket {
79
82
  * The definition of an extension method, which will be provided via Appium's API.
80
83
  *
81
84
  */
82
- export interface Method<T> {
85
+ export interface MethodDef<Ext> {
83
86
  /**
84
87
  * Name of the command.
85
88
  */
86
- command?: keyof ConditionalPick<Required<T>, DriverCommand>;
89
+ readonly command?: keyof ConditionalPick<Required<Ext>, DriverCommand>;
87
90
  /**
88
91
  * If true, this `Method` will never proxy.
89
92
  */
90
- neverProxy?: boolean;
93
+ readonly neverProxy?: boolean;
91
94
  /**
92
95
  * Specifies shape of payload
93
96
  */
94
- payloadParams?: PayloadParams;
97
+ readonly payloadParams?: PayloadParams;
95
98
  }
96
99
 
97
100
  /**
98
- * An instance method of a driver class, whose name may be referenced by {@linkcode Method.command}, and serves as an Appium command.
101
+ * An instance method of a driver class, whose name may be referenced by {@linkcode MethodDef.command}, and serves as an Appium command.
99
102
  *
100
103
  * Note that this signature differs from a `PluginCommand`.
101
104
  */
102
105
  export type DriverCommand<TArgs = any, TRetval = unknown> = (...args: TArgs[]) => Promise<TRetval>;
103
106
 
104
107
  /**
105
- * Defines the shape of a payload for a {@linkcode Method}.
108
+ * Defines the shape of a payload for a {@linkcode MethodDef}.
106
109
  */
107
110
  export interface PayloadParams {
108
111
  wrap?: string;
109
112
  unwrap?: string;
110
- required?: Readonly<string[]> | MultidimensionalReadonlyArray<string, 2>;
111
- optional?: Readonly<string[]> | MultidimensionalReadonlyArray<string, 2>;
113
+ required?: ReadonlyArray<string> | MultidimensionalReadonlyArray<string, 2>;
114
+ optional?: ReadonlyArray<string> | MultidimensionalReadonlyArray<string, 2>;
112
115
  validate?: (obj: any, protocol: string) => boolean | string | undefined;
113
116
  makeArgs?: (obj: any) => any;
114
117
  }
115
118
  /**
116
- * A mapping of URL paths to HTTP methods to {@linkcode Method}s.
117
- *
118
- * @todo Should use {@linkcode HTTPMethod} here
119
+ * A mapping of URL paths to HTTP methods to {@linkcode MethodDef}s.
119
120
  */
120
- export type MethodMap<Extension = ExternalDriver> = Record<
121
- string,
122
- Record<string, Method<Extension & ExternalDriver>>
121
+ export type MethodMap<Ext = any> = Readonly<
122
+ Record<
123
+ string,
124
+ {
125
+ GET?: MethodDef<Ext>;
126
+ POST?: MethodDef<Ext>;
127
+ DELETE?: MethodDef<Ext>;
128
+ }
129
+ >
123
130
  >;
124
131
 
125
132
  /**
@@ -163,7 +170,7 @@ export type ExtensionType = DriverType | PluginType;
163
170
  export type UpdateServerCallback = (
164
171
  expressApp: Express,
165
172
  httpServer: AppiumServer,
166
- cliArgs: ServerArgs
173
+ cliArgs: Partial<ServerArgs>
167
174
  ) => Promise<void>;
168
175
 
169
176
  /**
package/lib/plugin.ts CHANGED
@@ -4,7 +4,7 @@ import {Driver, ExternalDriver} from './driver';
4
4
  /**
5
5
  * The interface describing the constructor and static properties of a Plugin.
6
6
  */
7
- export interface PluginStatic<T extends Plugin = Plugin> {
7
+ export interface PluginStatic<P extends Plugin> {
8
8
  /**
9
9
  * Allows a plugin to modify the Appium server instance.
10
10
  */
@@ -20,7 +20,7 @@ export interface PluginStatic<T extends Plugin = Plugin> {
20
20
  * }
21
21
  * }
22
22
  */
23
- newMethodMap?: MethodMap<T>;
23
+ newMethodMap?: MethodMap<P>;
24
24
  }
25
25
 
26
26
  /**
@@ -89,4 +89,8 @@ export type PluginCommand<TArgs = any> = (
89
89
  *
90
90
  * The third parameter is the possible constructor signatures for the plugin class.
91
91
  */
92
- export type PluginClass = Class<Plugin, PluginStatic, [string, Record<string, unknown>]>;
92
+ export type PluginClass<P extends Plugin = Plugin> = Class<
93
+ P,
94
+ PluginStatic<P>,
95
+ [string, Record<string, unknown>]
96
+ >;