@appium/base-driver 8.3.0 → 8.4.1

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 (202) hide show
  1. package/build/lib/basedriver/capabilities.d.ts +80 -0
  2. package/build/lib/basedriver/capabilities.d.ts.map +1 -0
  3. package/build/lib/basedriver/capabilities.js +12 -13
  4. package/build/lib/basedriver/commands/event.d.ts +9 -0
  5. package/build/lib/basedriver/commands/event.d.ts.map +1 -0
  6. package/build/lib/basedriver/commands/event.js +21 -23
  7. package/build/lib/basedriver/commands/find.d.ts +11 -0
  8. package/build/lib/basedriver/commands/find.d.ts.map +1 -0
  9. package/build/lib/basedriver/commands/find.js +42 -37
  10. package/build/lib/basedriver/commands/index.d.ts +8 -0
  11. package/build/lib/basedriver/commands/index.d.ts.map +1 -0
  12. package/build/lib/basedriver/commands/index.js +17 -16
  13. package/build/lib/basedriver/commands/log.d.ts +12 -0
  14. package/build/lib/basedriver/commands/log.d.ts.map +1 -0
  15. package/build/lib/basedriver/commands/log.js +23 -27
  16. package/build/lib/basedriver/commands/session.d.ts +11 -0
  17. package/build/lib/basedriver/commands/session.d.ts.map +1 -0
  18. package/build/lib/basedriver/commands/session.js +21 -149
  19. package/build/lib/basedriver/commands/settings.d.ts +10 -0
  20. package/build/lib/basedriver/commands/settings.d.ts.map +1 -0
  21. package/build/lib/basedriver/commands/settings.js +19 -19
  22. package/build/lib/basedriver/commands/timeout.d.ts +8 -0
  23. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -0
  24. package/build/lib/basedriver/commands/timeout.js +118 -139
  25. package/build/lib/basedriver/core.d.ts +235 -0
  26. package/build/lib/basedriver/core.d.ts.map +1 -0
  27. package/build/lib/basedriver/core.js +283 -0
  28. package/build/lib/basedriver/desired-caps.d.ts +5 -0
  29. package/build/lib/basedriver/desired-caps.d.ts.map +1 -0
  30. package/build/lib/basedriver/desired-caps.js +2 -4
  31. package/build/lib/basedriver/device-settings.d.ts +32 -0
  32. package/build/lib/basedriver/device-settings.d.ts.map +1 -0
  33. package/build/lib/basedriver/device-settings.js +20 -14
  34. package/build/lib/basedriver/driver.d.ts +83 -0
  35. package/build/lib/basedriver/driver.d.ts.map +1 -0
  36. package/build/lib/basedriver/driver.js +101 -256
  37. package/build/lib/basedriver/helpers.d.ts +132 -0
  38. package/build/lib/basedriver/helpers.d.ts.map +1 -0
  39. package/build/lib/basedriver/helpers.js +16 -2
  40. package/build/lib/basedriver/logger.d.ts +3 -0
  41. package/build/lib/basedriver/logger.d.ts.map +1 -0
  42. package/build/lib/basedriver/logger.js +2 -4
  43. package/build/lib/constants.d.ts +9 -0
  44. package/build/lib/constants.d.ts.map +1 -0
  45. package/build/lib/constants.js +2 -4
  46. package/build/lib/express/crash.d.ts +3 -0
  47. package/build/lib/express/crash.d.ts.map +1 -0
  48. package/build/lib/express/crash.js +2 -4
  49. package/build/lib/express/express-logging.d.ts +3 -0
  50. package/build/lib/express/express-logging.d.ts.map +1 -0
  51. package/build/lib/express/express-logging.js +2 -4
  52. package/build/lib/express/idempotency.d.ts +2 -0
  53. package/build/lib/express/idempotency.d.ts.map +1 -0
  54. package/build/lib/express/idempotency.js +2 -4
  55. package/build/lib/express/logger.d.ts +3 -0
  56. package/build/lib/express/logger.d.ts.map +1 -0
  57. package/build/lib/express/logger.js +2 -4
  58. package/build/lib/express/middleware.d.ts +9 -0
  59. package/build/lib/express/middleware.d.ts.map +1 -0
  60. package/build/lib/express/middleware.js +2 -4
  61. package/build/lib/express/server.d.ts +10 -0
  62. package/build/lib/express/server.d.ts.map +1 -0
  63. package/build/lib/express/server.js +2 -4
  64. package/build/lib/express/static.d.ts +6 -0
  65. package/build/lib/express/static.d.ts.map +1 -0
  66. package/build/lib/express/static.js +2 -4
  67. package/build/lib/express/websocket.d.ts +64 -0
  68. package/build/lib/express/websocket.d.ts.map +1 -0
  69. package/build/lib/express/websocket.js +40 -41
  70. package/build/lib/helpers/capabilities.d.ts +13 -0
  71. package/build/lib/helpers/capabilities.d.ts.map +1 -0
  72. package/build/lib/helpers/capabilities.js +40 -2
  73. package/build/lib/index.d.ts +183 -0
  74. package/build/lib/index.d.ts.map +1 -0
  75. package/build/lib/index.js +41 -23
  76. package/build/lib/jsonwp-proxy/protocol-converter.d.ts +48 -0
  77. package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -0
  78. package/build/lib/jsonwp-proxy/protocol-converter.js +2 -4
  79. package/build/lib/jsonwp-proxy/proxy.d.ts +41 -0
  80. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -0
  81. package/build/lib/jsonwp-proxy/proxy.js +25 -9
  82. package/build/lib/jsonwp-status/status.d.ts +159 -0
  83. package/build/lib/jsonwp-status/status.d.ts.map +1 -0
  84. package/build/lib/jsonwp-status/status.js +2 -4
  85. package/build/lib/protocol/errors.d.ts +310 -0
  86. package/build/lib/protocol/errors.d.ts.map +1 -0
  87. package/build/lib/protocol/errors.js +82 -5
  88. package/build/lib/protocol/helpers.d.ts +22 -0
  89. package/build/lib/protocol/helpers.d.ts.map +1 -0
  90. package/build/lib/protocol/helpers.js +2 -4
  91. package/build/lib/protocol/index.d.ts +16 -0
  92. package/build/lib/protocol/index.d.ts.map +1 -0
  93. package/build/lib/protocol/index.js +8 -10
  94. package/build/lib/protocol/protocol.d.ts +11 -0
  95. package/build/lib/protocol/protocol.d.ts.map +1 -0
  96. package/build/lib/protocol/protocol.js +3 -9
  97. package/build/lib/protocol/routes.d.ts +6 -0
  98. package/build/lib/protocol/routes.d.ts.map +1 -0
  99. package/build/lib/protocol/routes.js +18 -4
  100. package/build/lib/protocol/validators.d.ts +8 -0
  101. package/build/lib/protocol/validators.d.ts.map +1 -0
  102. package/build/lib/protocol/validators.js +2 -4
  103. package/build/test/basedriver/README.md +5 -0
  104. package/build/test/basedriver/driver-e2e-tests.js +2 -4
  105. package/build/test/basedriver/driver-tests.js +31 -6
  106. package/build/test/basedriver/index.js +2 -4
  107. package/build/test/e2e/basedriver/driver.e2e.spec.js +15 -0
  108. package/build/test/e2e/basedriver/helpers.e2e.spec.js +192 -0
  109. package/build/test/e2e/basedriver/websockets.e2e.spec.js +87 -0
  110. package/build/test/e2e/express/server.e2e.spec.js +159 -0
  111. package/build/test/e2e/jsonwp-proxy/proxy.e2e.spec.js +59 -0
  112. package/build/test/e2e/protocol/fake-driver.js +163 -0
  113. package/build/test/e2e/protocol/helpers.js +25 -0
  114. package/build/test/e2e/protocol/protocol.e2e.spec.js +1186 -0
  115. package/build/test/helpers.js +2 -4
  116. package/build/test/unit/basedriver/capabilities.spec.js +672 -0
  117. package/build/test/unit/basedriver/capability.spec.js +353 -0
  118. package/build/test/unit/basedriver/commands/event.spec.js +110 -0
  119. package/build/test/unit/basedriver/commands/log.spec.js +92 -0
  120. package/build/test/unit/basedriver/driver.spec.js +15 -0
  121. package/build/test/unit/basedriver/helpers.spec.js +151 -0
  122. package/build/test/unit/basedriver/timeout.spec.js +135 -0
  123. package/build/test/unit/express/server.spec.js +155 -0
  124. package/build/test/unit/express/static.spec.js +26 -0
  125. package/build/test/unit/jsonwp-proxy/mock-request.js +91 -0
  126. package/build/test/unit/jsonwp-proxy/protocol-converter.spec.js +171 -0
  127. package/build/test/unit/jsonwp-proxy/proxy.spec.js +292 -0
  128. package/build/test/unit/jsonwp-proxy/url.spec.js +165 -0
  129. package/build/test/unit/jsonwp-status/status.spec.js +34 -0
  130. package/build/test/unit/protocol/errors.spec.js +390 -0
  131. package/build/test/unit/protocol/routes.spec.js +80 -0
  132. package/build/test/unit/protocol/validator.spec.js +149 -0
  133. package/build/tsconfig.tsbuildinfo +1 -0
  134. package/lib/basedriver/capabilities.js +49 -10
  135. package/lib/basedriver/commands/event.js +49 -31
  136. package/lib/basedriver/commands/find.js +108 -43
  137. package/lib/basedriver/commands/index.js +25 -19
  138. package/lib/basedriver/commands/log.js +60 -33
  139. package/lib/basedriver/commands/session.js +39 -141
  140. package/lib/basedriver/commands/settings.js +33 -13
  141. package/lib/basedriver/commands/timeout.js +153 -153
  142. package/lib/basedriver/core.js +497 -0
  143. package/lib/basedriver/desired-caps.js +1 -1
  144. package/lib/basedriver/device-settings.js +47 -12
  145. package/lib/basedriver/driver.js +272 -383
  146. package/lib/basedriver/helpers.js +18 -2
  147. package/lib/express/websocket.js +35 -32
  148. package/lib/helpers/capabilities.js +60 -1
  149. package/lib/index.js +16 -12
  150. package/lib/jsonwp-proxy/proxy.js +26 -6
  151. package/lib/protocol/errors.js +42 -42
  152. package/lib/protocol/index.js +4 -4
  153. package/lib/protocol/protocol.js +1 -3
  154. package/lib/protocol/routes.js +9 -0
  155. package/package.json +22 -14
  156. package/test/basedriver/README.md +5 -0
  157. package/test/basedriver/driver-e2e-tests.js +1 -1
  158. package/test/basedriver/driver-tests.js +31 -2
  159. package/build/test/basedriver/capabilities-specs.js +0 -674
  160. package/build/test/basedriver/capability-specs.js +0 -355
  161. package/build/test/basedriver/commands/event-specs.js +0 -112
  162. package/build/test/basedriver/commands/log-specs.js +0 -87
  163. package/build/test/basedriver/driver-e2e-specs.js +0 -17
  164. package/build/test/basedriver/driver-specs.js +0 -17
  165. package/build/test/basedriver/helpers-e2e-specs.js +0 -194
  166. package/build/test/basedriver/helpers-specs.js +0 -153
  167. package/build/test/basedriver/timeout-specs.js +0 -137
  168. package/build/test/basedriver/websockets-e2e-specs.js +0 -84
  169. package/build/test/express/server-e2e-specs.js +0 -161
  170. package/build/test/express/server-specs.js +0 -157
  171. package/build/test/express/static-specs.js +0 -28
  172. package/build/test/jsonwp-proxy/mock-request.js +0 -93
  173. package/build/test/jsonwp-proxy/protocol-converter-specs.js +0 -173
  174. package/build/test/jsonwp-proxy/proxy-e2e-specs.js +0 -61
  175. package/build/test/jsonwp-proxy/proxy-specs.js +0 -294
  176. package/build/test/jsonwp-proxy/url-specs.js +0 -167
  177. package/build/test/jsonwp-status/status-specs.js +0 -36
  178. package/build/test/protocol/errors-specs.js +0 -388
  179. package/build/test/protocol/fake-driver.js +0 -165
  180. package/build/test/protocol/helpers.js +0 -27
  181. package/build/test/protocol/protocol-e2e-specs.js +0 -1188
  182. package/build/test/protocol/routes-specs.js +0 -82
  183. package/build/test/protocol/validator-specs.js +0 -151
  184. package/index.d.ts +0 -386
  185. package/test/basedriver/capabilities-specs.js +0 -537
  186. package/test/basedriver/capability-specs.js +0 -383
  187. package/test/basedriver/commands/event-specs.js +0 -74
  188. package/test/basedriver/commands/log-specs.js +0 -79
  189. package/test/basedriver/driver-e2e-specs.js +0 -8
  190. package/test/basedriver/driver-specs.js +0 -8
  191. package/test/basedriver/fixtures/BadZippedApp.zip +0 -1
  192. package/test/basedriver/fixtures/FakeAndroidApp.apk +0 -1
  193. package/test/basedriver/fixtures/FakeAndroidApp.asd +0 -0
  194. package/test/basedriver/fixtures/FakeIOSApp.app +0 -1
  195. package/test/basedriver/fixtures/FakeIOSApp.app.zip +0 -0
  196. package/test/basedriver/fixtures/FakeIOSApp.ipa +0 -0
  197. package/test/basedriver/fixtures/custom-element-finder-bad.js +0 -5
  198. package/test/basedriver/fixtures/custom-element-finder.js +0 -29
  199. package/test/basedriver/helpers-e2e-specs.js +0 -187
  200. package/test/basedriver/helpers-specs.js +0 -137
  201. package/test/basedriver/timeout-specs.js +0 -128
  202. package/test/basedriver/websockets-e2e-specs.js +0 -75
@@ -0,0 +1,3 @@
1
+ export default log;
2
+ declare const log: import("@appium/types").AppiumLogger;
3
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../lib/express/logger.js"],"names":[],"mappings":";AAEA,wDAAqC"}
@@ -12,7 +12,5 @@ var _support = require("@appium/support");
12
12
  const log = _support.logger.getLogger('HTTP');
13
13
 
14
14
  var _default = log;
15
- exports.default = _default;require('source-map-support').install();
16
-
17
-
18
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHByZXNzL2xvZ2dlci5qcyJdLCJuYW1lcyI6WyJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLEdBQUcsR0FBR0MsZ0JBQU9DLFNBQVAsQ0FBaUIsTUFBakIsQ0FBWjs7ZUFDZUYsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZ2dlciB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cbmNvbnN0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ0hUVFAnKTtcbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdLCJmaWxlIjoibGliL2V4cHJlc3MvbG9nZ2VyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
15
+ exports.default = _default;
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHByZXNzL2xvZ2dlci5qcyJdLCJuYW1lcyI6WyJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLEdBQUcsR0FBR0MsZ0JBQU9DLFNBQVAsQ0FBaUIsTUFBakIsQ0FBWjs7ZUFDZUYsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZ2dlciB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cbmNvbnN0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ0hUVFAnKTtcbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdfQ==
@@ -0,0 +1,9 @@
1
+ export function allowCrossDomain(req: any, res: any, next: any): any;
2
+ export function fixPythonContentType(basePath: any): (req: any, res: any, next: any) => void;
3
+ export function defaultToJSONContentType(req: any, res: any, next: any): void;
4
+ export function catchAllHandler(err: any, req: any, res: any, next: any): any;
5
+ export function allowCrossDomainAsyncExecute(basePath: any): (req: any, res: any, next: any) => any;
6
+ import { handleIdempotency } from "./idempotency";
7
+ export function catch404Handler(req: any, res: any): void;
8
+ export { handleIdempotency };
9
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../lib/express/middleware.js"],"names":[],"mappings":"AAKA,qEAcC;AAcD,6FAUC;AAED,8EAKC;AAED,8EAiBC;AAhDD,oGAUC;;AAwCD,0DAaC"}
@@ -122,7 +122,5 @@ function patchWithSessionId(req, body) {
122
122
  }
123
123
 
124
124
  return body;
125
- }require('source-map-support').install();
126
-
127
-
128
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHByZXNzL21pZGRsZXdhcmUuanMiXSwibmFtZXMiOlsiYWxsb3dDcm9zc0RvbWFpbiIsInJlcSIsInJlcyIsIm5leHQiLCJoZWFkZXIiLCJtZXRob2QiLCJzZW5kU3RhdHVzIiwiZXJyIiwibG9nIiwiZXJyb3IiLCJzdGFjayIsImFsbG93Q3Jvc3NEb21haW5Bc3luY0V4ZWN1dGUiLCJiYXNlUGF0aCIsInJlY2VpdmVBc3luY1Jlc3BvbnNlUmVnRXhwIiwiUmVnRXhwIiwiXyIsImVzY2FwZVJlZ0V4cCIsInRlc3QiLCJ1cmwiLCJmaXhQeXRob25Db250ZW50VHlwZSIsInBhdGgiLCJoZWFkZXJzIiwiZGVmYXVsdFRvSlNPTkNvbnRlbnRUeXBlIiwiY2F0Y2hBbGxIYW5kbGVyIiwiaGVhZGVyc1NlbnQiLCJtZXNzYWdlIiwiZXJyb3JzIiwiVW5rbm93bkVycm9yIiwic3RhdHVzIiwidzNjU3RhdHVzIiwianNvbiIsInBhdGNoV2l0aFNlc3Npb25JZCIsImNvZGUiLCJ2YWx1ZSIsInN0YWNrdHJhY2UiLCJjYXRjaDQwNEhhbmRsZXIiLCJkZWJ1ZyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJTRVNTSU9OX0lEX1BBVFRFUk4iLCJib2R5IiwibWF0Y2giLCJleGVjIiwic2Vzc2lvbklkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsU0FBU0EsZ0JBQVQsQ0FBMkJDLEdBQTNCLEVBQWdDQyxHQUFoQyxFQUFxQ0MsSUFBckMsRUFBMkM7QUFDekMsTUFBSTtBQUNGRCxJQUFBQSxHQUFHLENBQUNFLE1BQUosQ0FBVyw2QkFBWCxFQUEwQyxHQUExQztBQUNBRixJQUFBQSxHQUFHLENBQUNFLE1BQUosQ0FBVyw4QkFBWCxFQUEyQyxpQ0FBM0M7QUFDQUYsSUFBQUEsR0FBRyxDQUFDRSxNQUFKLENBQVcsOEJBQVgsRUFBMkMsbUZBQTNDOztBQUdBLFFBQUksY0FBY0gsR0FBRyxDQUFDSSxN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VCxDQUEwQmxDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQztBQUNsQ00sa0JBQUk0QixLQUFKLENBQVcsc0JBQXFCbkMsR0FBRyxDQUFDaUIsR0FBSSxFQUF4Qzs7QUFDQSxRQUFNVCxLQUFLLEdBQUdpQixpQkFBT1csbUJBQXJCO0FBQ0FuQyxFQUFBQSxHQUFHLENBQUMwQixNQUFKLENBQVduQixLQUFLLENBQUNvQixTQUFOLEVBQVgsRUFBOEJDLElBQTlCLENBQW1DQyxrQkFBa0IsQ0FBQzlCLEdBQUQsRUFBTTtBQUN6RDJCLElBQUFBLE1BQU0sRUFBRW5CLEtBQUssQ0FBQ3VCLElBQU4sRUFEaUQ7QUFFekRDLElBQUFBLEtBQUssRUFBRTtBQUNMeEIsTUFBQUEsS0FBSyxFQUFFQSxLQUFLLENBQUNBLEtBQU4sRUFERjtBQUVMZ0IsTUFBQUEsT0FBTyxFQUFFLGlFQUNQLG9FQURPLEdBRVAsVUFKRztBQUtMUyxNQUFBQSxVQUFVLEVBQUU7QUFMUDtBQUZrRCxHQUFOLENBQXJEO0FBVUQ7O0FBR0QsTUFBTUksa0JBQWtCLEdBQUcsb0JBQTNCOztBQUVBLFNBQVNQLGtCQUFULENBQTZCOUIsR0FBN0IsRUFBa0NzQyxJQUFsQyxFQUF3QztBQUN0QyxRQUFNQyxLQUFLLEdBQUdGLGtCQUFrQixDQUFDRyxJQUFuQixDQUF3QnhDLEdBQUcsQ0FBQ2lCLEdBQTVCLENBQWQ7O0FBQ0EsTUFBSXNCLEtBQUosRUFBVztBQUNURCxJQUFBQSxJQUFJLENBQUNHLFNBQUwsR0FBaUJGLEtBQUssQ0FBQyxDQUFELENBQXRCO0FBQ0Q7O0FBQ0QsU0FBT0QsSUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnLi4vcHJvdG9jb2wnO1xuaW1wb3J0IHsgaGFuZGxlSWRlbXBvdGVuY3kgfSBmcm9tICcuL2lkZW1wb3RlbmN5JztcblxuZnVuY3Rpb24gYWxsb3dDcm9zc0RvbWFpbiAocmVxLCByZXMsIG5leHQpIHtcbiAgdHJ5IHtcbiAgICByZXMuaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnLCAnR0VULCBQT1NULCBQVVQsIE9QVElPTlMsIERFTEVURScpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLCAnQ2FjaGUtQ29udHJvbCwgUHJhZ21hLCBPcmlnaW4sIFgtUmVxdWVzdGVkLVdpdGgsIENvbnRlbnQtVHlwZSwgQWNjZXB0LCBVc2VyLUFnZW50Jyk7XG5cbiAgICAvLyBuZWVkIHRvIHJlc3BvbmQgMjAwIHRvIE9QVElPTlNcbiAgICBpZiAoJ09QVElPTlMnID09PSByZXEubWV0aG9kKSB7XG4gICAgICByZXR1cm4gcmVzLnNlbmRTdGF0dXMoMjAwKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvcihgVW5leHBlY3RlZCBlcnJvcjogJHtlcnIuc3RhY2t9YCk7XG4gIH1cbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiBhbGxvd0Nyb3NzRG9tYWluQXN5bmNFeGVjdXRlIChiYXNlUGF0aCkge1xuICByZXR1cm4gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgLy8gdGhlcmUgYXJlIHR3byBwYXRocyBmb3IgYXN5bmMgcmVzcG9uc2VzLCBzbyBjb3ZlciBib3RoXG4gICAgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci90eFlpRXovMVxuICAgIGNvbnN0IHJlY2VpdmVBc3luY1Jlc3BvbnNlUmVnRXhwID0gbmV3IFJlZ0V4cChgJHtfLmVzY2FwZVJlZ0V4cChiYXNlUGF0aCl9L3Nlc3Npb24vW2EtZjAtOS1dKy8oYXBwaXVtLyk/cmVjZWl2ZV9hc3luY19yZXNwb25zZWApO1xuICAgIGlmICghcmVjZWl2ZUFzeW5jUmVzcG9uc2VSZWdFeHAudGVzdChyZXEudXJsKSkge1xuICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICB9XG4gICAgYWxsb3dDcm9zc0RvbWFpbihyZXEsIHJlcywgbmV4dCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGZpeFB5dGhvbkNvbnRlbnRUeXBlIChiYXNlUGF0aCkge1xuICByZXR1cm4gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgLy8gaGFjayBiZWNhdXNlIHB5dGhvbiBjbGllbnQgbGlicmFyeSBnaXZlcyB1cyB3cm9uZyBjb250ZW50LXR5cGVcbiAgICBpZiAobmV3IFJlZ0V4cChgXiR7Xy5lc2NhcGVSZWdFeHAoYmFzZVBhdGgpfWApLnRlc3QocmVxLnBhdGgpICYmIC9eUHl0aG9uLy50ZXN0KHJlcS5oZWFkZXJzWyd1c2VyLWFnZW50J10pKSB7XG4gICAgICBpZiAocmVxLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID09PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykge1xuICAgICAgICByZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10gPSAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCc7XG4gICAgICB9XG4gICAgfVxuICAgIG5leHQoKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFRvSlNPTkNvbnRlbnRUeXBlIChyZXEsIHJlcywgbmV4dCkge1xuICBpZiAoIXJlcS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSkge1xuICAgIHJlcS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JztcbiAgfVxuICBuZXh0KCk7XG59XG5cbmZ1bmN0aW9uIGNhdGNoQWxsSGFuZGxlciAoZXJyLCByZXEsIHJlcywgbmV4dCkge1xuICBpZiAocmVzLmhlYWRlcnNTZW50KSB7XG4gICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgfVxuXG4gIGxvZy5lcnJvcihgVW5jYXVnaHQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIGxvZy5lcnJvcignU2VuZGluZyBnZW5lcmljIGVycm9yIHJlc3BvbnNlJyk7XG4gIGNvbnN0IGVycm9yID0gZXJyb3JzLlVua25vd25FcnJvcjtcbiAgcmVzLnN0YXR1cyhlcnJvci53M2NTdGF0dXMoKSkuanNvbihwYXRjaFdpdGhTZXNzaW9uSWQocmVxLCB7XG4gICAgc3RhdHVzOiBlcnJvci5jb2RlKCksXG4gICAgdmFsdWU6IHtcbiAgICAgIGVycm9yOiBlcnJvci5lcnJvcigpLFxuICAgICAgbWVzc2FnZTogYEFuIHVua25vd24gc2VydmVyLXNpZGUgZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZyB0aGUgY29tbWFuZDogJHtlcnIubWVzc2FnZX1gLFxuICAgICAgc3RhY2t0cmFjZTogZXJyLnN0YWNrLFxuICAgIH1cbiAgfSkpO1xuICBsb2cuZXJyb3IoZXJyKTtcbn1cblxuZnVuY3Rpb24gY2F0Y2g0MDRIYW5kbGVyIChyZXEsIHJlcykge1xuICBsb2cuZGVidWcoYE5vIHJvdXRlIGZvdW5kIGZvciAke3JlcS51cmx9YCk7XG4gIGNvbnN0IGVycm9yID0gZXJyb3JzLlVua25vd25Db21tYW5kRXJyb3I7XG4gIHJlcy5zdGF0dXMoZXJyb3IudzNjU3RhdHVzKCkpLmpzb24ocGF0Y2hXaXRoU2Vzc2lvbklkKHJlcSwge1xuICAgIHN0YXR1czogZXJyb3IuY29kZSgpLFxuICAgIHZhbHVlOiB7XG4gICAgICBlcnJvcjogZXJyb3IuZXJyb3IoKSxcbiAgICAgIG1lc3NhZ2U6ICdUaGUgcmVxdWVzdGVkIHJlc291cmNlIGNvdWxkIG5vdCBiZSBmb3VuZCwgb3IgYSByZXF1ZXN0IHdhcyAnICtcbiAgICAgICAgJ3JlY2VpdmVkIHVzaW5nIGFuIEhUVFAgbWV0aG9kIHRoYXQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbWFwcGVkICcgK1xuICAgICAgICAncmVzb3VyY2UnLFxuICAgICAgc3RhY2t0cmFjZTogJycsXG4gICAgfVxuICB9KSk7XG59XG5cblxuY29uc3QgU0VTU0lPTl9JRF9QQVRURVJOID0gL1xcL3Nlc3Npb25cXC8oW14vXSspLztcblxuZnVuY3Rpb24gcGF0Y2hXaXRoU2Vzc2lvbklkIChyZXEsIGJvZHkpIHtcbiAgY29uc3QgbWF0Y2ggPSBTRVNTSU9OX0lEX1BBVFRFUk4uZXhlYyhyZXEudXJsKTtcbiAgaWYgKG1hdGNoKSB7XG4gICAgYm9keS5zZXNzaW9uSWQgPSBtYXRjaFsxXTtcbiAgfVxuICByZXR1cm4gYm9keTtcbn1cblxuZXhwb3J0IHtcbiAgYWxsb3dDcm9zc0RvbWFpbiwgZml4UHl0aG9uQ29udGVudFR5cGUsIGRlZmF1bHRUb0pTT05Db250ZW50VHlwZSxcbiAgY2F0Y2hBbGxIYW5kbGVyLCBhbGxvd0Nyb3NzRG9tYWluQXN5bmNFeGVjdXRlLCBoYW5kbGVJZGVtcG90ZW5jeSxcbiAgY2F0Y2g0MDRIYW5kbGVyLFxufTtcbiJdLCJmaWxlIjoibGliL2V4cHJlc3MvbWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
125
+ }
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHByZXNzL21pZGRsZXdhcmUuanMiXSwibmFtZXMiOlsiYWxsb3dDcm9zc0RvbWFpbiIsInJlcSIsInJlcyIsIm5leHQiLCJoZWFkZXIiLCJtZXRob2QiLCJzZW5kU3RhdHVzIiwiZXJyIiwibG9nIiwiZXJyb3IiLCJzdGFjayIsImFsbG93Q3Jvc3NEb21haW5Bc3luY0V4ZWN1dGUiLCJiYXNlUGF0aCIsInJlY2VpdmVBc3luY1Jlc3BvbnNlUmVnRXhwIiwiUmVnRXhwIiwiXyIsImVzY2FwZVJlZ0V4cCIsInRlc3QiLCJ1cmwiLCJmaXhQeXRob25Db250ZW50VHlwZSIsInBhdGgiLCJoZWFkZXJzIiwiZGVmYXVsdFRvSlNPTkNvbnRlbnRUeXBlIiwiY2F0Y2hBbGxIYW5kbGVyIiwiaGVhZGVyc1NlbnQiLCJtZXNzYWdlIiwiZXJyb3JzIiwiVW5rbm93bkVycm9yIiwic3RhdHVzIiwidzNjU3RhdHVzIiwianNvbiIsInBhdGNoV2l0aFNlc3Npb25JZCIsImNvZGUiLCJ2YWx1ZSIsInN0YWNrdHJhY2UiLCJjYXRjaDQwNEhhbmRsZXIiLCJkZWJ1ZyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJTRVNTSU9OX0lEX1BBVFRFUk4iLCJib2R5IiwibWF0Y2giLCJleGVjIiwic2Vzc2lvbklkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsU0FBU0EsZ0JBQVQsQ0FBMkJDLEdBQTNCLEVBQWdDQyxHQUFoQyxFQUFxQ0MsSUFBckMsRUFBMkM7QUFDekMsTUFBSTtBQUNGRCxJQUFBQSxHQUFHLENBQUNFLE1BQUosQ0FBVyw2QkFBWCxFQUEwQyxHQUExQztBQUNBRixJQUFBQSxHQUFHLENBQUNFLE1BQUosQ0FBVyw4QkFBWCxFQUEyQyxpQ0FBM0M7QUFDQUYsSUFBQUEsR0FBRyxDQUFDRSxNQUFKLENBQVcsOEJBQVgsRUFBMkMsbUZBQTNDOztBQUdBLFFBQUksY0FBY0gsR0FB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QUFTNEIsZUFBVCxDQUEwQmxDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQztBQUNsQ00sa0JBQUk0QixLQUFKLENBQVcsc0JBQXFCbkMsR0FBRyxDQUFDaUIsR0FBSSxFQUF4Qzs7QUFDQSxRQUFNVCxLQUFLLEdBQUdpQixpQkFBT1csbUJBQXJCO0FBQ0FuQyxFQUFBQSxHQUFHLENBQUMwQixNQUFKLENBQVduQixLQUFLLENBQUNvQixTQUFOLEVBQVgsRUFBOEJDLElBQTlCLENBQW1DQyxrQkFBa0IsQ0FBQzlCLEdBQUQsRUFBTTtBQUN6RDJCLElBQUFBLE1BQU0sRUFBRW5CLEtBQUssQ0FBQ3VCLElBQU4sRUFEaUQ7QUFFekRDLElBQUFBLEtBQUssRUFBRTtBQUNMeEIsTUFBQUEsS0FBSyxFQUFFQSxLQUFLLENBQUNBLEtBQU4sRUFERjtBQUVMZ0IsTUFBQUEsT0FBTyxFQUFFLGlFQUNQLG9FQURPLEdBRVAsVUFKRztBQUtMUyxNQUFBQSxVQUFVLEVBQUU7QUFMUDtBQUZrRCxHQUFOLENBQXJEO0FBVUQ7O0FBR0QsTUFBTUksa0JBQWtCLEdBQUcsb0JBQTNCOztBQUVBLFNBQVNQLGtCQUFULENBQTZCOUIsR0FBN0IsRUFBa0NzQyxJQUFsQyxFQUF3QztBQUN0QyxRQUFNQyxLQUFLLEdBQUdGLGtCQUFrQixDQUFDRyxJQUFuQixDQUF3QnhDLEdBQUcsQ0FBQ2lCLEdBQTVCLENBQWQ7O0FBQ0EsTUFBSXNCLEtBQUosRUFBVztBQUNURCxJQUFBQSxJQUFJLENBQUNHLFNBQUwsR0FBaUJGLEtBQUssQ0FBQyxDQUFELENBQXRCO0FBQ0Q7O0FBQ0QsU0FBT0QsSUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnLi4vcHJvdG9jb2wnO1xuaW1wb3J0IHsgaGFuZGxlSWRlbXBvdGVuY3kgfSBmcm9tICcuL2lkZW1wb3RlbmN5JztcblxuZnVuY3Rpb24gYWxsb3dDcm9zc0RvbWFpbiAocmVxLCByZXMsIG5leHQpIHtcbiAgdHJ5IHtcbiAgICByZXMuaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnLCAnR0VULCBQT1NULCBQVVQsIE9QVElPTlMsIERFTEVURScpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLCAnQ2FjaGUtQ29udHJvbCwgUHJhZ21hLCBPcmlnaW4sIFgtUmVxdWVzdGVkLVdpdGgsIENvbnRlbnQtVHlwZSwgQWNjZXB0LCBVc2VyLUFnZW50Jyk7XG5cbiAgICAvLyBuZWVkIHRvIHJlc3BvbmQgMjAwIHRvIE9QVElPTlNcbiAgICBpZiAoJ09QVElPTlMnID09PSByZXEubWV0aG9kKSB7XG4gICAgICByZXR1cm4gcmVzLnNlbmRTdGF0dXMoMjAwKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvcihgVW5leHBlY3RlZCBlcnJvcjogJHtlcnIuc3RhY2t9YCk7XG4gIH1cbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiBhbGxvd0Nyb3NzRG9tYWluQXN5bmNFeGVjdXRlIChiYXNlUGF0aCkge1xuICByZXR1cm4gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgLy8gdGhlcmUgYXJlIHR3byBwYXRocyBmb3IgYXN5bmMgcmVzcG9uc2VzLCBzbyBjb3ZlciBib3RoXG4gICAgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci90eFlpRXovMVxuICAgIGNvbnN0IHJlY2VpdmVBc3luY1Jlc3BvbnNlUmVnRXhwID0gbmV3IFJlZ0V4cChgJHtfLmVzY2FwZVJlZ0V4cChiYXNlUGF0aCl9L3Nlc3Npb24vW2EtZjAtOS1dKy8oYXBwaXVtLyk/cmVjZWl2ZV9hc3luY19yZXNwb25zZWApO1xuICAgIGlmICghcmVjZWl2ZUFzeW5jUmVzcG9uc2VSZWdFeHAudGVzdChyZXEudXJsKSkge1xuICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICB9XG4gICAgYWxsb3dDcm9zc0RvbWFpbihyZXEsIHJlcywgbmV4dCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGZpeFB5dGhvbkNvbnRlbnRUeXBlIChiYXNlUGF0aCkge1xuICByZXR1cm4gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgLy8gaGFjayBiZWNhdXNlIHB5dGhvbiBjbGllbnQgbGlicmFyeSBnaXZlcyB1cyB3cm9uZyBjb250ZW50LXR5cGVcbiAgICBpZiAobmV3IFJlZ0V4cChgXiR7Xy5lc2NhcGVSZWdFeHAoYmFzZVBhdGgpfWApLnRlc3QocmVxLnBhdGgpICYmIC9eUHl0aG9uLy50ZXN0KHJlcS5oZWFkZXJzWyd1c2VyLWFnZW50J10pKSB7XG4gICAgICBpZiAocmVxLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID09PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykge1xuICAgICAgICByZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10gPSAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCc7XG4gICAgICB9XG4gICAgfVxuICAgIG5leHQoKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFRvSlNPTkNvbnRlbnRUeXBlIChyZXEsIHJlcywgbmV4dCkge1xuICBpZiAoIXJlcS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSkge1xuICAgIHJlcS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JztcbiAgfVxuICBuZXh0KCk7XG59XG5cbmZ1bmN0aW9uIGNhdGNoQWxsSGFuZGxlciAoZXJyLCByZXEsIHJlcywgbmV4dCkge1xuICBpZiAocmVzLmhlYWRlcnNTZW50KSB7XG4gICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgfVxuXG4gIGxvZy5lcnJvcihgVW5jYXVnaHQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIGxvZy5lcnJvcignU2VuZGluZyBnZW5lcmljIGVycm9yIHJlc3BvbnNlJyk7XG4gIGNvbnN0IGVycm9yID0gZXJyb3JzLlVua25vd25FcnJvcjtcbiAgcmVzLnN0YXR1cyhlcnJvci53M2NTdGF0dXMoKSkuanNvbihwYXRjaFdpdGhTZXNzaW9uSWQocmVxLCB7XG4gICAgc3RhdHVzOiBlcnJvci5jb2RlKCksXG4gICAgdmFsdWU6IHtcbiAgICAgIGVycm9yOiBlcnJvci5lcnJvcigpLFxuICAgICAgbWVzc2FnZTogYEFuIHVua25vd24gc2VydmVyLXNpZGUgZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZyB0aGUgY29tbWFuZDogJHtlcnIubWVzc2FnZX1gLFxuICAgICAgc3RhY2t0cmFjZTogZXJyLnN0YWNrLFxuICAgIH1cbiAgfSkpO1xuICBsb2cuZXJyb3IoZXJyKTtcbn1cblxuZnVuY3Rpb24gY2F0Y2g0MDRIYW5kbGVyIChyZXEsIHJlcykge1xuICBsb2cuZGVidWcoYE5vIHJvdXRlIGZvdW5kIGZvciAke3JlcS51cmx9YCk7XG4gIGNvbnN0IGVycm9yID0gZXJyb3JzLlVua25vd25Db21tYW5kRXJyb3I7XG4gIHJlcy5zdGF0dXMoZXJyb3IudzNjU3RhdHVzKCkpLmpzb24ocGF0Y2hXaXRoU2Vzc2lvbklkKHJlcSwge1xuICAgIHN0YXR1czogZXJyb3IuY29kZSgpLFxuICAgIHZhbHVlOiB7XG4gICAgICBlcnJvcjogZXJyb3IuZXJyb3IoKSxcbiAgICAgIG1lc3NhZ2U6ICdUaGUgcmVxdWVzdGVkIHJlc291cmNlIGNvdWxkIG5vdCBiZSBmb3VuZCwgb3IgYSByZXF1ZXN0IHdhcyAnICtcbiAgICAgICAgJ3JlY2VpdmVkIHVzaW5nIGFuIEhUVFAgbWV0aG9kIHRoYXQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbWFwcGVkICcgK1xuICAgICAgICAncmVzb3VyY2UnLFxuICAgICAgc3RhY2t0cmFjZTogJycsXG4gICAgfVxuICB9KSk7XG59XG5cblxuY29uc3QgU0VTU0lPTl9JRF9QQVRURVJOID0gL1xcL3Nlc3Npb25cXC8oW14vXSspLztcblxuZnVuY3Rpb24gcGF0Y2hXaXRoU2Vzc2lvbklkIChyZXEsIGJvZHkpIHtcbiAgY29uc3QgbWF0Y2ggPSBTRVNTSU9OX0lEX1BBVFRFUk4uZXhlYyhyZXEudXJsKTtcbiAgaWYgKG1hdGNoKSB7XG4gICAgYm9keS5zZXNzaW9uSWQgPSBtYXRjaFsxXTtcbiAgfVxuICByZXR1cm4gYm9keTtcbn1cblxuZXhwb3J0IHtcbiAgYWxsb3dDcm9zc0RvbWFpbiwgZml4UHl0aG9uQ29udGVudFR5cGUsIGRlZmF1bHRUb0pTT05Db250ZW50VHlwZSxcbiAgY2F0Y2hBbGxIYW5kbGVyLCBhbGxvd0Nyb3NzRG9tYWluQXN5bmNFeGVjdXRlLCBoYW5kbGVJZGVtcG90ZW5jeSxcbiAgY2F0Y2g0MDRIYW5kbGVyLFxufTtcbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export function server(opts?: {}): Promise<any>;
2
+ export function configureServer({ app, addRoutes, allowCors, basePath, extraMethodMap, }: {
3
+ app: any;
4
+ addRoutes: any;
5
+ allowCors?: boolean | undefined;
6
+ basePath?: string | undefined;
7
+ extraMethodMap?: {} | undefined;
8
+ }): void;
9
+ export function normalizeBasePath(basePath: any): any;
10
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":"AA4BA,gDAyCC;AAED;;;;;;SA6CC;AA+ED,sDAgBC"}
@@ -233,7 +233,5 @@ function normalizeBasePath(basePath) {
233
233
  }
234
234
 
235
235
  return basePath;
236
- }require('source-map-support').install();
237
-
238
-
239
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHByZXNzL3NlcnZlci5qcyJdLCJuYW1lcyI6WyJLRUVQX0FMSVZFX1RJTUVPVVRfTVMiLCJzZXJ2ZXIiLCJvcHRzIiwicm91dGVDb25maWd1cmluZ0Z1bmN0aW9uIiwicG9ydCIsImhvc3RuYW1lIiwiYWxsb3dDb3JzIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImV4dHJhTWV0aG9kTWFwIiwic2VydmVyVXBkYXRlcnMiLCJrZWVwQWxpdmVUaW1lb3V0IiwiYXBwIiwiaHR0cFNlcnZlciIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJCIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbmZpZ3VyZUh0dHAiLCJjb25maWd1cmVTZXJ2ZXIiLCJhZGRSb3V0ZXMiLCJ1cGRhdGVyIiwiYWxsIiwiY2F0Y2g0MDRIYW5kbGVyIiwic3RhcnRTZXJ2ZXIiLCJlcnIiLCJub3JtYWxpemVCYXNlUGF0aCIsInVzZSIsImVuZExvZ0Zvcm1hdHRlciIsInBhdGgiLCJTVEFUSUNfRElSIiwiZXhwcmVzcyIsInN0YXRpYyIsInByb2R1Y2VFcnJvciIsInByb2R1Y2VDcmFzaCIsImFsbG93Q3Jvc3NEb21haW4iLCJoYW5kbGVJZGVtcG90ZW5jeSIsImRlZmF1bHRUb0pTT05Db250ZW50VHlwZSIsImJvZHlQYXJzZXIiLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJjYXRjaEFsbEhhbmRsZXIiLCJqc29uIiwibGltaXQiLCJzdGFydExvZ0Zvcm1hdHRlciIsIndlbGNvbWUiLCJndWluZWFQaWciLCJndWluZWFQaWdTY3JvbGxhYmxlIiwiZ3VpbmVhUGlnQXBwQmFubmVyIiwic2VydmVyU3RhdGUiLCJub3RpZmllciIsIkV2ZW50RW1pdHRlciIsImNsb3NlZCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJyZW1vdmVXZWJTb2NrZXRIYW5kbGVyIiwicmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnMiLCJnZXRXZWJTb2NrZXRIYW5kbGVycyIsImNsb3NlIiwiYmluZCIsImVtaXQiLCJsb2ciLCJpbmZvIiwib24iLCJjb2RlIiwiZXJyb3IiLCJzb2NrZXQiLCJzZXRUaW1lb3V0IiwiZGVzdHJveSIsIl9vcGVuUmVxQ291bnQiLCJvbmNlIiwicmVtb3ZlTGlzdGVuZXIiLCJyZXEiLCJyZXMiLCJjb25uZWN0aW9uIiwic2VydmVyQXJncyIsInB1c2giLCJzdGFydFByb21pc2UiLCJwcm9taXNpZnkiLCJsaXN0ZW4iLCJjb250ZXh0IiwiaGVhZGVyc1RpbWVvdXQiLCJfIiwiaXNTdHJpbmciLCJFcnJvciIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxxQkFBcUIsR0FBRyxLQUFLLEVBQUwsR0FBVSxJQUF4Qzs7QUFHQSxlQUFlQyxNQUFmLENBQXVCQyxJQUFJLEdBQUcsRUFBOUIsRUFBa0M7QUFDaEMsUUFBTTtBQUNKQyxJQUFBQSx3QkFESTtBQUVKQyxJQUFBQSxJQUZJO0FBR0pDLElBQUFBLFFBQVEsR0FBRyxJQUhQO0FBSUpDLElBQUFBLFNBQVMsR0FBRyxJQUpSO0FBS0pDLElBQUFBLFFBQVEsR0FBR0MsNEJBTFA7QUFNSkMsSUFBQUEsY0FBYyxHQUFHLEVBTmI7QUFPSkMsSUFBQUEsY0FBYyxHQUFHLEVBUGI7QUFRSkMsSUFBQUEsZ0JBQWdCLEdBQUdYO0FBUmYsTUFTRkUsSUFUSjtBQVlBLFFBQU1VLEdBQUcsR0FBRyx1QkFBWjs7QUFDQSxRQUFNQyxVQUFVLEdBQUdDLGNBQUtDLFlBQUwsQ0FBa0JILEdBQWxCLENBQW5COztBQUNBLFNBQU8sTUFBTSxJQUFJSSxpQkFBSixDQUFNLE9BQU9DLE9BQVAsRUFBZ0JDLE1BQWhCLEtBQTJCO0FBTTVDLFFBQUk7QUFDRkMsTUFBQUEsYUFBYSxDQUFDO0FBQUNOLFFBQUFBLFVBQUQ7QUFBYUssUUFBQUEsTUFBYjtB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N0UsUUFBUyxFQUExQyxDQUFOO0FBQ0Q7O0FBSURBLEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDOEUsT0FBVCxDQUFpQixLQUFqQixFQUF3QixFQUF4QixDQUFYOztBQUlBLE1BQUk5RSxRQUFRLEtBQUssRUFBYixJQUFtQkEsUUFBUSxDQUFDLENBQUQsQ0FBUixLQUFnQixHQUF2QyxFQUE0QztBQUMxQ0EsSUFBQUEsUUFBUSxHQUFJLElBQUdBLFFBQVMsRUFBeEI7QUFDRDs7QUFFRCxTQUFPQSxRQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGZhdmljb24gZnJvbSAnc2VydmUtZmF2aWNvbic7XG5pbXBvcnQgYm9keVBhcnNlciBmcm9tICdib2R5LXBhcnNlcic7XG5pbXBvcnQgbWV0aG9kT3ZlcnJpZGUgZnJvbSAnbWV0aG9kLW92ZXJyaWRlJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgc3RhcnRMb2dGb3JtYXR0ZXIsIGVuZExvZ0Zvcm1hdHRlciB9IGZyb20gJy4vZXhwcmVzcy1sb2dnaW5nJztcbmltcG9ydCB7XG4gIGFsbG93Q3Jvc3NEb21haW4sIGZpeFB5dGhvbkNvbnRlbnRUeXBlLCBkZWZhdWx0VG9KU09OQ29udGVudFR5cGUsXG4gIGNhdGNoQWxsSGFuZGxlciwgYWxsb3dDcm9zc0RvbWFpbkFzeW5jRXhlY3V0ZSwgaGFuZGxlSWRlbXBvdGVuY3ksXG4gIGNhdGNoNDA0SGFuZGxlcixcbn0gZnJvbSAnLi9taWRkbGV3YXJlJztcbmltcG9ydCB7IGd1aW5lYVBpZywgZ3VpbmVhUGlnU2Nyb2xsYWJsZSwgZ3VpbmVhUGlnQXBwQmFubmVyLCB3ZWxjb21lLCBTVEFUSUNfRElSIH0gZnJvbSAnLi9zdGF0aWMnO1xuaW1wb3J0IHsgcHJvZHVjZUVycm9yLCBwcm9kdWNlQ3Jhc2ggfSBmcm9tICcuL2NyYXNoJztcbmltcG9ydCB7XG4gIGFkZFdlYlNvY2tldEhhbmRsZXIsIHJlbW92ZVdlYlNvY2tldEhhbmRsZXIsIHJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzLFxuICBnZXRXZWJTb2NrZXRIYW5kbGVyc1xufSBmcm9tICcuL3dlYnNvY2tldCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgeyBERUZBVUxUX0JBU0VfUEFUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuXG5cbmNvbnN0IEtFRVBfQUxJVkVfVElNRU9VVF9NUyA9IDEwICogNjAgKiAxMDAwOyAvLyAxMCBtaW51dGVzXG5cblxuYXN5bmMgZnVuY3Rpb24gc2VydmVyIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbixcbiAgICBwb3J0LFxuICAgIGhvc3RuYW1lID0gbnVsbCxcbiAgICBhbGxvd0NvcnMgPSB0cnVlLFxuICAgIGJhc2VQYXRoID0gREVGQVVMVF9CQVNFX1BBVEgsXG4gICAgZXh0cmFNZXRob2RNYXAgPSB7fSxcbiAgICBzZXJ2ZXJVcGRhdGVycyA9IFtdLFxuICAgIGtlZXBBbGl2ZVRpbWVvdXQgPSBLRUVQX0FMSVZFX1RJTUVPVVRfTVMsXG4gIH0gPSBvcHRzO1xuXG4gIC8vIGNyZWF0ZSB0aGUgYWN0dWFsIGh0dHAgc2VydmVyXG4gIGNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcbiAgY29uc3QgaHR0cFNlcnZlciA9IGh0dHAuY3JlYXRlU2VydmVyKGFwcCk7XG4gIHJldHVybiBhd2FpdCBuZXcgQihhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgLy8gd2UgcHV0IGFuIGFzeW5jIGZ1bmN0aW9uIGFzIHRoZSBwcm9taXNlIGNvbnN0cnVjdG9yIGJlY2F1c2Ugd2Ugd2FudCBzb21lIHRoaW5ncyB0byBoYXBwZW4gaW5cbiAgICAvLyBzZXJpYWwgKGFwcGxpY2F0aW9uIG9mIHBsdWdpbiB1cGRhdGVzLCBmb3IgZXhhbXBsZSkuIEJ1dCB3ZSBzdGlsbCBuZWVkIHRvIHVzZSBhIHByb21pc2UgaGVyZVxuICAgIC8vIGJlY2F1c2Ugc29tZSBlbGVtZW50cyBvZiBzZXJ2ZXIgc3RhcnQgZmFpbHVyZSBvbmx5IGhhcHBlbiBpbiBodHRwU2VydmVyIGxpc3RlbmVycy4gU28gdGhlXG4gICAgLy8gd2F5IHdlIHJlc29sdmUgaXQgaXMgdG8gdXNlIGFuIGFzeW5jIGZ1bmN0aW9uIGhlcmUgYnV0IHRvIHdyYXAgYWxsIHRoZSBpbm5lciBsb2dpYyBpblxuICAgIC8vIHRyeS9jYXRjaCBzbyBhbnkgZXJyb3JzIGNhbiBiZSBwYXNzZWQgdG8gcmVqZWN0LlxuICAgIHRyeSB7XG4gICAgICBjb25maWd1cmVIdHRwKHtodHRwU2VydmVyLCByZWplY3QsIGtlZXBBbGl2ZVRpbWVvdXR9KTtcbiAgICAgIGNvbmZpZ3VyZVNlcnZlcih7YXBwLCBhZGRSb3V0ZXM6IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiwgYWxsb3dDb3JzLCBiYXNlUGF0aCwgZXh0cmFNZXRob2RNYXB9KTtcbiAgICAgIC8vIGFsbG93IGV4dGVuc2lvbnMgdG8gdXBkYXRlIHRoZSBhcHAgYW5kIGh0dHAgc2VydmVyIG9iamVjdHNcbiAgICAgIGZvciAoY29uc3QgdXBkYXRlciBvZiBzZXJ2ZXJVcGRhdGVycykge1xuICAgICAgICBhd2FpdCB1cGRhdGVyKGFwcCwgaHR0cFNlcnZlcik7XG4gICAgICB9XG5cbiAgICAgIC8vIG9uY2UgYWxsIGNvbmZpZ3VyYXRpb25zIGFuZCB1cGRhdGVycyBoYXZlIGJlZW4gYXBwbGllZCwgbWFrZSBzdXJlIHRvIHNldCB1cCBhIGNhdGNoYWxsXG4gICAgICAvLyBoYW5kbGVyIHNvIHRoYXQgYW55dGhpbmcgdW5rbm93biA0MDRzLiBCdXQgZG8gdGhpcyBhZnRlciBldmVyeXRoaW5nIGVsc2Ugc2luY2Ugd2UgZG9uJ3RcbiAgICAgIC8vIHdhbnQgdG8gYmxvY2sgZXh0ZW5zaW9ucycgYWJpbGl0eSB0byBhZGQgcm91dGVzIGlmIHRoZXkgd2FudC5cbiAgICAgIGFwcC5hbGwoJyonLCBjYXRjaDQwNEhhbmRsZXIpO1xuXG4gICAgICBhd2FpdCBzdGFydFNlcnZlcih7aHR0cFNlcnZlciwgaG9zdG5hbWUsIHBvcnQsIGtlZXBBbGl2ZVRpbWVvdXR9KTtcbiAgICAgIHJlc29sdmUoaHR0cFNlcnZlcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9XG4gIH0pO1xuXG59XG5cbmZ1bmN0aW9uIGNvbmZpZ3VyZVNlcnZlciAoe1xuICBhcHAsXG4gIGFkZFJvdXRlcyxcbiAgYWxsb3dDb3JzID0gdHJ1ZSxcbiAgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSCxcbiAgZXh0cmFNZXRob2RNYXAgPSB7fSxcbn0pIHtcbiAgYmFzZVBhdGggPSBub3JtYWxpemVCYXNlUGF0aChiYXNlUGF0aCk7XG5cbiAgYXBwLnVzZShlbmRMb2dGb3JtYXR0ZXIpO1xuXG4gIC8vIHNldCB1cCBzdGF0aWMgYXNzZXRzXG4gIGFwcC51c2UoZmF2aWNvbihwYXRoLnJlc29sdmUoU1RBVElDX0RJUiwgJ2Zhdmljb24uaWNvJykpKTtcbiAgYXBwLnVzZShleHByZXNzLnN0YXRpYyhTVEFUSUNfRElSKSk7XG5cbiAgLy8gY3Jhc2ggcm91dGVzLCBmb3IgdGVzdGluZ1xuICBhcHAudXNlKGAke2Jhc2VQYXRofS9wcm9kdWNlX2Vycm9yYCwgcHJvZHVjZUVycm9yKTtcbiAgYXBwLnVzZShgJHtiYXNlUGF0aH0vY3Jhc2hgLCBwcm9kdWNlQ3Jhc2gpO1xuXG4gIC8vIGFkZCBtaWRkbGV3YXJlc1xuICBpZiAoYWxsb3dDb3JzKSB7XG4gICAgYXBwLnVzZShhbGxvd0Nyb3NzRG9tYWluKTtcbiAgfSBlbHNlIHtcbiAgICBhcHAudXNlKGFsbG93Q3Jvc3NEb21haW5Bc3luY0V4ZWN1dGUoYmFzZVBhdGgpKTtcbiAgfVxuICBhcHAudXNlKGhhbmRsZUlkZW1wb3RlbmN5KTtcbiAgYXBwLnVzZShmaXhQeXRob25Db250ZW50VHlwZShiYXNlUGF0aCkpO1xuICBhcHAudXNlKGRlZmF1bHRUb0pTT05Db250ZW50VHlwZSk7XG4gIGFwcC51c2UoYm9keVBhcnNlci51cmxlbmNvZGVkKHtleHRlbmRlZDogdHJ1ZX0pKTtcbiAgYXBwLnVzZShtZXRob2RPdmVycmlkZSgpKTtcbiAgYXBwLnVzZShjYXRjaEFsbEhhbmRsZXIpO1xuXG4gIC8vIG1ha2Ugc3VyZSBhcHBpdW0gbmV2ZXIgZmFpbHMgYmVjYXVzZSBvZiBhIGZpbGUgc2l6ZSB1cGxvYWQgbGltaXRcbiAgYXBwLnVzZShib2R5UGFyc2VyLmpzb24oe2xpbWl0OiAnMWdiJ30pKTtcblxuICAvLyBzZXQgdXAgc3RhcnQgbG9nZ2luZyAod2hpY2ggZGVwZW5kcyBvbiBib2R5UGFyc2VyIGRvaW5nIGl0cyB0aGluZylcbiAgYXBwLnVzZShzdGFydExvZ0Zvcm1hdHRlcik7XG5cbiAgYWRkUm91dGVzKGFwcCwge2Jhc2VQYXRoLCBleHRyYU1ldGhvZE1hcH0pO1xuXG4gIC8vIGR5bmFtaWMgcm91dGVzIGZvciB0ZXN0aW5nLCBldGMuXG4gIGFwcC5hbGwoJy93ZWxjb21lJywgd2VsY29tZSk7XG4gIGFwcC5hbGwoJy90ZXN0L2d1aW5lYS1waWcnLCBndWluZWFQaWcpO1xuICBhcHAuYWxsKCcvdGVzdC9ndWluZWEtcGlnLXNjcm9sbGFibGUnLCBndWluZWFQaWdTY3JvbGxhYmxlKTtcbiAgYXBwLmFsbCgnL3Rlc3QvZ3VpbmVhLXBpZy1hcHAtYmFubmVyJywgZ3VpbmVhUGlnQXBwQmFubmVyKTtcbn1cblxuZnVuY3Rpb24gY29uZmlndXJlSHR0cCAoe2h0dHBTZXJ2ZXIsIHJlamVjdCwga2VlcEFsaXZlVGltZW91dH0pIHtcbiAgY29uc3Qgc2VydmVyU3RhdGUgPSB7XG4gICAgbm90aWZpZXI6IG5ldyBFdmVudEVtaXR0ZXIoKSxcbiAgICBjbG9zZWQ6IGZhbHNlLFxuICB9O1xuICBodHRwU2VydmVyLmFkZFdlYlNvY2tldEhhbmRsZXIgPSBhZGRXZWJTb2NrZXRIYW5kbGVyO1xuICBodHRwU2VydmVyLnJlbW92ZVdlYlNvY2tldEhhbmRsZXIgPSByZW1vdmVXZWJTb2NrZXRIYW5kbGVyO1xuICBodHRwU2VydmVyLnJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzID0gcmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnM7XG4gIGh0dHBTZXJ2ZXIuZ2V0V2ViU29ja2V0SGFuZGxlcnMgPSBnZXRXZWJTb2NrZXRIYW5kbGVycztcblxuICAvLyBodHRwLlNlcnZlci5jbG9zZSgpIG9ubHkgc3RvcHMgbmV3IGNvbm5lY3Rpb25zLCBidXQgd2UgbmVlZCB0byB3YWl0IHVudGlsXG4gIC8vIGFsbCBjb25uZWN0aW9ucyBhcmUgY2xvc2VkIGFuZCB0aGUgYGNsb3NlYCBldmVudCBpcyBlbWl0dGVkXG4gIGNvbnN0IGNsb3NlID0gaHR0cFNlcnZlci5jbG9zZS5iaW5kKGh0dHBTZXJ2ZXIpO1xuICBodHRwU2VydmVyLmNsb3NlID0gYXN5bmMgKCkgPT4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS12MC54LWFyY2hpdmUvaXNzdWVzLzkwNjYjaXNzdWVjb21tZW50LTEyNDIxMDU3NlxuICAgIHNlcnZlclN0YXRlLmNsb3NlZCA9IHRydWU7XG4gICAgc2VydmVyU3RhdGUubm90aWZpZXIuZW1pdCgnc2h1dGRvd24nKTtcbiAgICBsb2cuaW5mbygnV2FpdGluZyB1bnRpbCB0aGUgc2VydmVyIGlzIGNsb3NlZCcpO1xuICAgIGh0dHBTZXJ2ZXIub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgbG9nLmluZm8oJ1JlY2VpdmVkIHNlcnZlciBjbG9zZSBldmVudCcpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIGNsb3NlKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIpIHJlamVjdChlcnIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG4gICAgfSk7XG4gIH0pO1xuXG4gIGh0dHBTZXJ2ZXIub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgIGlmIChlcnIuY29kZSA9PT0gJ0VBRERSTk9UQVZBSUwnKSB7XG4gICAgICBsb2cuZXJyb3IoJ0NvdWxkIG5vdCBzdGFydCBSRVNUIGh0dHAgaW50ZXJmYWNlIGxpc3RlbmVyLiAnICtcbiAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIGFkZHJlc3MgaXMgbm90IGF2YWlsYWJsZS4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmVycm9yKCdDb3VsZCBub3Qgc3RhcnQgUkVTVCBodHRwIGludGVyZmFjZSBsaXN0ZW5lci4gVGhlIHJlcXVlc3RlZCAnICtcbiAgICAgICAgICAgICAgICAncG9ydCBtYXkgYWxyZWFkeSBiZSBpbiB1c2UuIFBsZWFzZSBtYWtlIHN1cmUgdGhlcmUgaXMgbm8gJyArXG4gICAgICAgICAgICAgICAgJ290aGVyIGluc3RhbmNlIG9mIHRoaXMgc2VydmVyIHJ1bm5pbmcgYWxyZWFkeS4nKTtcbiAgICB9XG4gICAgcmVqZWN0KGVycik7XG4gIH0pO1xuXG4gIGh0dHBTZXJ2ZXIub24oJ2Nvbm5lY3Rpb24nLCAoc29ja2V0KSA9PiB7XG4gICAgc29ja2V0LnNldFRpbWVvdXQoa2VlcEFsaXZlVGltZW91dCk7XG4gICAgc29ja2V0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG5cbiAgICBmdW5jdGlvbiBkZXN0cm95ICgpIHtcbiAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgfVxuICAgIHNvY2tldC5fb3BlblJlcUNvdW50ID0gMDtcbiAgICBzb2NrZXQub25jZSgnY2xvc2UnLCAoKSA9PiBzZXJ2ZXJTdGF0ZS5ub3RpZmllci5yZW1vdmVMaXN0ZW5lcignc2h1dGRvd24nLCBkZXN0cm95KSk7XG4gICAgc2VydmVyU3RhdGUubm90aWZpZXIub25jZSgnc2h1dGRvd24nLCBkZXN0cm95KTtcbiAgfSk7XG5cbiAgaHR0cFNlcnZlci5vbigncmVxdWVzdCcsIGZ1bmN0aW9uIChyZXEsIHJlcykge1xuICAgIGNvbnN0IHNvY2tldCA9IHJlcS5jb25uZWN0aW9uIHx8IHJlcS5zb2NrZXQ7XG4gICAgc29ja2V0Ll9vcGVuUmVxQ291bnQrKztcbiAgICByZXMub24oJ2ZpbmlzaCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHNvY2tldC5fb3BlblJlcUNvdW50LS07XG4gICAgICBpZiAoc2VydmVyU3RhdGUuY2xvc2VkICYmIHNvY2tldC5fb3BlblJlcUNvdW50ID09PSAwKSB7XG4gICAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFNlcnZlciAoe2h0dHBTZXJ2ZXIsIHBvcnQsIGhvc3RuYW1lLCBrZWVwQWxpdmVUaW1lb3V0fSkge1xuICBjb25zdCBzZXJ2ZXJBcmdzID0gW3BvcnRdO1xuICBpZiAoaG9zdG5hbWUpIHtcbiAgICAvLyBJZiB0aGUgaG9zdG5hbWUgaXMgb21pdHRlZCwgdGhlIHNlcnZlciB3aWxsIGFjY2VwdFxuICAgIC8vIGNvbm5lY3Rpb25zIG9uIGFueSBJUCBhZGRyZXNzXG4gICAgc2VydmVyQXJncy5wdXNoKGhvc3RuYW1lKTtcbiAgfVxuICBjb25zdCBzdGFydFByb21pc2UgPSBCLnByb21pc2lmeShodHRwU2VydmVyLmxpc3Rlbiwge2NvbnRleHQ6IGh0dHBTZXJ2ZXJ9KSguLi5zZXJ2ZXJBcmdzKTtcbiAgaHR0cFNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ID0ga2VlcEFsaXZlVGltZW91dDtcbiAgLy8gaGVhZGVycyB0aW1lb3V0IG11c3QgYmUgZ3JlYXRlciB0aGFuIGtlZXBBbGl2ZVRpbWVvdXRcbiAgaHR0cFNlcnZlci5oZWFkZXJzVGltZW91dCA9IGtlZXBBbGl2ZVRpbWVvdXQgKyA1ICogMTAwMDtcbiAgYXdhaXQgc3RhcnRQcm9taXNlO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVCYXNlUGF0aCAoYmFzZVBhdGgpIHtcbiAgaWYgKCFfLmlzU3RyaW5nKGJhc2VQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYXRoIHByZWZpeCAke2Jhc2VQYXRofWApO1xuICB9XG5cbiAgLy8gZW5zdXJlIHRoZSBwYXRoIHByZWZpeCBkb2VzIG5vdCBlbmQgaW4gJy8nLCBzaW5jZSBvdXIgbWV0aG9kIG1hcFxuICAvLyBzdGFydHMgYWxsIHBhdGhzIHdpdGggJy8nXG4gIGJhc2VQYXRoID0gYmFzZVBhdGgucmVwbGFjZSgvXFwvJC8sICcnKTtcblxuICAvLyBsaWtld2lzZSwgZW5zdXJlIHRoZSBwYXRoIHByZWZpeCBkb2VzIGFsd2F5cyBTVEFSVCB3aXRoIC8sIHVubGVzcyB0aGUgcGF0aFxuICAvLyBpcyBlbXB0eSBtZWFuaW5nIG5vIGJhc2UgcGF0aCBhdCBhbGxcbiAgaWYgKGJhc2VQYXRoICE9PSAnJyAmJiBiYXNlUGF0aFswXSAhPT0gJy8nKSB7XG4gICAgYmFzZVBhdGggPSBgLyR7YmFzZVBhdGh9YDtcbiAgfVxuXG4gIHJldHVybiBiYXNlUGF0aDtcbn1cblxuZXhwb3J0IHsgc2VydmVyLCBjb25maWd1cmVTZXJ2ZXIsIG5vcm1hbGl6ZUJhc2VQYXRoIH07XG4iXSwiZmlsZSI6ImxpYi9leHByZXNzL3NlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
236
+ }
237
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHByZXNzL3NlcnZlci5qcyJdLCJuYW1lcyI6WyJLRUVQX0FMSVZFX1RJTUVPVVRfTVMiLCJzZXJ2ZXIiLCJvcHRzIiwicm91dGVDb25maWd1cmluZ0Z1bmN0aW9uIiwicG9ydCIsImhvc3RuYW1lIiwiYWxsb3dDb3JzIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImV4dHJhTWV0aG9kTWFwIiwic2VydmVyVXBkYXRlcnMiLCJrZWVwQWxpdmVUaW1lb3V0IiwiYXBwIiwiaHR0cFNlcnZlciIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJCIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbmZpZ3VyZUh0dHAiLCJjb25maWd1cmVTZXJ2ZXIiLCJhZGRSb3V0ZXMiLCJ1cGRhdGVyIiwiYWxsIiwiY2F0Y2g0MDRIYW5kbGVyIiwic3RhcnRTZXJ2ZXIiLCJlcnIiLCJub3JtYWxpemVCYXNlUGF0aCIsInVzZSIsImVuZExvZ0Zvcm1hdHRlciIsInBhdGgiLCJTVEFUSUNfRElSIiwiZXhwcmVzcyIsInN0YXRpYyIsInByb2R1Y2VFcnJvciIsInByb2R1Y2VDcmFzaCIsImFsbG93Q3Jvc3NEb21haW4iLCJoYW5kbGVJZGVtcG90ZW5jeSIsImRlZmF1bHRUb0pTT05Db250ZW50VHlwZSIsImJvZHlQYXJzZXIiLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJjYXRjaEFsbEhhbmRsZXIiLCJqc29uIiwibGltaXQiLCJzdGFydExvZ0Zvcm1hdHRlciIsIndlbGNvbWUiLCJndWluZWFQaWciLCJndWluZWFQaWdTY3JvbGxhYmxlIiwiZ3VpbmVhUGlnQXBwQmFubmVyIiwic2VydmVyU3RhdGUiLCJub3RpZmllciIsIkV2ZW50RW1pdHRlciIsImNsb3NlZCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJyZW1vdmVXZWJTb2NrZXRIYW5kbGVyIiwicmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnMiLCJnZXRXZWJTb2NrZXRIYW5kbGVycyIsImNsb3NlIiwiYmluZCIsImVtaXQiLCJsb2ciLCJpbmZvIiwib24iLCJjb2RlIiwiZXJyb3IiLCJzb2NrZXQiLCJzZXRUaW1lb3V0IiwiZGVzdHJveSIsIl9vcGVuUmVxQ291bnQiLCJvbmNlIiwicmVtb3ZlTGlzdGVuZXIiLCJyZXEiLCJyZXMiLCJjb25uZWN0aW9uIiwic2VydmVyQXJncyIsInB1c2giLCJzdGFydFByb21pc2UiLCJwcm9taXNpZnkiLCJsaXN0ZW4iLCJjb250ZXh0IiwiaGVhZGVyc1RpbWVvdXQiLCJfIiwiaXNTdHJpbmciLCJFcnJvciIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxxQkFBcUIsR0FBRyxLQUFLLEVBQUwsR0FBVSxJQUF4Qzs7QUFHQSxlQUFlQyxNQUFmLENBQXVCQyxJQUFJLEdBQUcsRUFBOUIsRUFBa0M7QUFDaEMsUUFBTTtBQUNKQyxJQUFBQSx3QkFESTtBQUVKQyxJQUFBQSxJQUZJO0FBR0pDLElBQUFBLFFBQVEsR0FBRyxJQUhQO0FBSUpDLElBQUFBLFNBQVMsR0FBRyxJQUpSO0FBS0pDLElBQUFBLFFBQVEsR0FBR0MsNEJBTFA7QUFNSkMsSUFBQUEsY0FBYyxHQUFHLEVBTmI7QUFPSkMsSUFBQUEsY0FBYyxHQUFHLEVBUGI7QUFRSkMsSUFBQUEsZ0JBQWdCLEdBQUdYO0FBUmYsTUFTRkUsSUFUSjtBQVlBLFFBQU1VLEdBQUcsR0FBRyx1QkFBWjs7QUFDQSxRQUFNQyxVQUFVLEdBQUdDLGNBQUtDLFlBQUwsQ0FBa0JILEdBQWxCLENBQW5COztBQUNBLFNBQU8sTUFBTSxJQUFJSSxpQkFBSixDQUFNLE9BQU9DLE9BQVAsRUFBZ0JDLE1BQWhCLEtBQTJCO0FBTTVDLFFBQUk7QUFDRkMsTUFBQUEsYUFBYSxDQUFDO0FBQUNOLFFBQUFBLFVBQUQ7QUFBYUssUUFB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QVcsdUJBQXNCN0UsUUFBUyxFQUExQyxDQUFOO0FBQ0Q7O0FBSURBLEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDOEUsT0FBVCxDQUFpQixLQUFqQixFQUF3QixFQUF4QixDQUFYOztBQUlBLE1BQUk5RSxRQUFRLEtBQUssRUFBYixJQUFtQkEsUUFBUSxDQUFDLENBQUQsQ0FBUixLQUFnQixHQUF2QyxFQUE0QztBQUMxQ0EsSUFBQUEsUUFBUSxHQUFJLElBQUdBLFFBQVMsRUFBeEI7QUFDRDs7QUFFRCxTQUFPQSxRQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGZhdmljb24gZnJvbSAnc2VydmUtZmF2aWNvbic7XG5pbXBvcnQgYm9keVBhcnNlciBmcm9tICdib2R5LXBhcnNlcic7XG5pbXBvcnQgbWV0aG9kT3ZlcnJpZGUgZnJvbSAnbWV0aG9kLW92ZXJyaWRlJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgc3RhcnRMb2dGb3JtYXR0ZXIsIGVuZExvZ0Zvcm1hdHRlciB9IGZyb20gJy4vZXhwcmVzcy1sb2dnaW5nJztcbmltcG9ydCB7XG4gIGFsbG93Q3Jvc3NEb21haW4sIGZpeFB5dGhvbkNvbnRlbnRUeXBlLCBkZWZhdWx0VG9KU09OQ29udGVudFR5cGUsXG4gIGNhdGNoQWxsSGFuZGxlciwgYWxsb3dDcm9zc0RvbWFpbkFzeW5jRXhlY3V0ZSwgaGFuZGxlSWRlbXBvdGVuY3ksXG4gIGNhdGNoNDA0SGFuZGxlcixcbn0gZnJvbSAnLi9taWRkbGV3YXJlJztcbmltcG9ydCB7IGd1aW5lYVBpZywgZ3VpbmVhUGlnU2Nyb2xsYWJsZSwgZ3VpbmVhUGlnQXBwQmFubmVyLCB3ZWxjb21lLCBTVEFUSUNfRElSIH0gZnJvbSAnLi9zdGF0aWMnO1xuaW1wb3J0IHsgcHJvZHVjZUVycm9yLCBwcm9kdWNlQ3Jhc2ggfSBmcm9tICcuL2NyYXNoJztcbmltcG9ydCB7XG4gIGFkZFdlYlNvY2tldEhhbmRsZXIsIHJlbW92ZVdlYlNvY2tldEhhbmRsZXIsIHJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzLFxuICBnZXRXZWJTb2NrZXRIYW5kbGVyc1xufSBmcm9tICcuL3dlYnNvY2tldCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgeyBERUZBVUxUX0JBU0VfUEFUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuXG5cbmNvbnN0IEtFRVBfQUxJVkVfVElNRU9VVF9NUyA9IDEwICogNjAgKiAxMDAwOyAvLyAxMCBtaW51dGVzXG5cblxuYXN5bmMgZnVuY3Rpb24gc2VydmVyIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbixcbiAgICBwb3J0LFxuICAgIGhvc3RuYW1lID0gbnVsbCxcbiAgICBhbGxvd0NvcnMgPSB0cnVlLFxuICAgIGJhc2VQYXRoID0gREVGQVVMVF9CQVNFX1BBVEgsXG4gICAgZXh0cmFNZXRob2RNYXAgPSB7fSxcbiAgICBzZXJ2ZXJVcGRhdGVycyA9IFtdLFxuICAgIGtlZXBBbGl2ZVRpbWVvdXQgPSBLRUVQX0FMSVZFX1RJTUVPVVRfTVMsXG4gIH0gPSBvcHRzO1xuXG4gIC8vIGNyZWF0ZSB0aGUgYWN0dWFsIGh0dHAgc2VydmVyXG4gIGNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcbiAgY29uc3QgaHR0cFNlcnZlciA9IGh0dHAuY3JlYXRlU2VydmVyKGFwcCk7XG4gIHJldHVybiBhd2FpdCBuZXcgQihhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgLy8gd2UgcHV0IGFuIGFzeW5jIGZ1bmN0aW9uIGFzIHRoZSBwcm9taXNlIGNvbnN0cnVjdG9yIGJlY2F1c2Ugd2Ugd2FudCBzb21lIHRoaW5ncyB0byBoYXBwZW4gaW5cbiAgICAvLyBzZXJpYWwgKGFwcGxpY2F0aW9uIG9mIHBsdWdpbiB1cGRhdGVzLCBmb3IgZXhhbXBsZSkuIEJ1dCB3ZSBzdGlsbCBuZWVkIHRvIHVzZSBhIHByb21pc2UgaGVyZVxuICAgIC8vIGJlY2F1c2Ugc29tZSBlbGVtZW50cyBvZiBzZXJ2ZXIgc3RhcnQgZmFpbHVyZSBvbmx5IGhhcHBlbiBpbiBodHRwU2VydmVyIGxpc3RlbmVycy4gU28gdGhlXG4gICAgLy8gd2F5IHdlIHJlc29sdmUgaXQgaXMgdG8gdXNlIGFuIGFzeW5jIGZ1bmN0aW9uIGhlcmUgYnV0IHRvIHdyYXAgYWxsIHRoZSBpbm5lciBsb2dpYyBpblxuICAgIC8vIHRyeS9jYXRjaCBzbyBhbnkgZXJyb3JzIGNhbiBiZSBwYXNzZWQgdG8gcmVqZWN0LlxuICAgIHRyeSB7XG4gICAgICBjb25maWd1cmVIdHRwKHtodHRwU2VydmVyLCByZWplY3QsIGtlZXBBbGl2ZVRpbWVvdXR9KTtcbiAgICAgIGNvbmZpZ3VyZVNlcnZlcih7YXBwLCBhZGRSb3V0ZXM6IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiwgYWxsb3dDb3JzLCBiYXNlUGF0aCwgZXh0cmFNZXRob2RNYXB9KTtcbiAgICAgIC8vIGFsbG93IGV4dGVuc2lvbnMgdG8gdXBkYXRlIHRoZSBhcHAgYW5kIGh0dHAgc2VydmVyIG9iamVjdHNcbiAgICAgIGZvciAoY29uc3QgdXBkYXRlciBvZiBzZXJ2ZXJVcGRhdGVycykge1xuICAgICAgICBhd2FpdCB1cGRhdGVyKGFwcCwgaHR0cFNlcnZlcik7XG4gICAgICB9XG5cbiAgICAgIC8vIG9uY2UgYWxsIGNvbmZpZ3VyYXRpb25zIGFuZCB1cGRhdGVycyBoYXZlIGJlZW4gYXBwbGllZCwgbWFrZSBzdXJlIHRvIHNldCB1cCBhIGNhdGNoYWxsXG4gICAgICAvLyBoYW5kbGVyIHNvIHRoYXQgYW55dGhpbmcgdW5rbm93biA0MDRzLiBCdXQgZG8gdGhpcyBhZnRlciBldmVyeXRoaW5nIGVsc2Ugc2luY2Ugd2UgZG9uJ3RcbiAgICAgIC8vIHdhbnQgdG8gYmxvY2sgZXh0ZW5zaW9ucycgYWJpbGl0eSB0byBhZGQgcm91dGVzIGlmIHRoZXkgd2FudC5cbiAgICAgIGFwcC5hbGwoJyonLCBjYXRjaDQwNEhhbmRsZXIpO1xuXG4gICAgICBhd2FpdCBzdGFydFNlcnZlcih7aHR0cFNlcnZlciwgaG9zdG5hbWUsIHBvcnQsIGtlZXBBbGl2ZVRpbWVvdXR9KTtcbiAgICAgIHJlc29sdmUoaHR0cFNlcnZlcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9XG4gIH0pO1xuXG59XG5cbmZ1bmN0aW9uIGNvbmZpZ3VyZVNlcnZlciAoe1xuICBhcHAsXG4gIGFkZFJvdXRlcyxcbiAgYWxsb3dDb3JzID0gdHJ1ZSxcbiAgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSCxcbiAgZXh0cmFNZXRob2RNYXAgPSB7fSxcbn0pIHtcbiAgYmFzZVBhdGggPSBub3JtYWxpemVCYXNlUGF0aChiYXNlUGF0aCk7XG5cbiAgYXBwLnVzZShlbmRMb2dGb3JtYXR0ZXIpO1xuXG4gIC8vIHNldCB1cCBzdGF0aWMgYXNzZXRzXG4gIGFwcC51c2UoZmF2aWNvbihwYXRoLnJlc29sdmUoU1RBVElDX0RJUiwgJ2Zhdmljb24uaWNvJykpKTtcbiAgYXBwLnVzZShleHByZXNzLnN0YXRpYyhTVEFUSUNfRElSKSk7XG5cbiAgLy8gY3Jhc2ggcm91dGVzLCBmb3IgdGVzdGluZ1xuICBhcHAudXNlKGAke2Jhc2VQYXRofS9wcm9kdWNlX2Vycm9yYCwgcHJvZHVjZUVycm9yKTtcbiAgYXBwLnVzZShgJHtiYXNlUGF0aH0vY3Jhc2hgLCBwcm9kdWNlQ3Jhc2gpO1xuXG4gIC8vIGFkZCBtaWRkbGV3YXJlc1xuICBpZiAoYWxsb3dDb3JzKSB7XG4gICAgYXBwLnVzZShhbGxvd0Nyb3NzRG9tYWluKTtcbiAgfSBlbHNlIHtcbiAgICBhcHAudXNlKGFsbG93Q3Jvc3NEb21haW5Bc3luY0V4ZWN1dGUoYmFzZVBhdGgpKTtcbiAgfVxuICBhcHAudXNlKGhhbmRsZUlkZW1wb3RlbmN5KTtcbiAgYXBwLnVzZShmaXhQeXRob25Db250ZW50VHlwZShiYXNlUGF0aCkpO1xuICBhcHAudXNlKGRlZmF1bHRUb0pTT05Db250ZW50VHlwZSk7XG4gIGFwcC51c2UoYm9keVBhcnNlci51cmxlbmNvZGVkKHtleHRlbmRlZDogdHJ1ZX0pKTtcbiAgYXBwLnVzZShtZXRob2RPdmVycmlkZSgpKTtcbiAgYXBwLnVzZShjYXRjaEFsbEhhbmRsZXIpO1xuXG4gIC8vIG1ha2Ugc3VyZSBhcHBpdW0gbmV2ZXIgZmFpbHMgYmVjYXVzZSBvZiBhIGZpbGUgc2l6ZSB1cGxvYWQgbGltaXRcbiAgYXBwLnVzZShib2R5UGFyc2VyLmpzb24oe2xpbWl0OiAnMWdiJ30pKTtcblxuICAvLyBzZXQgdXAgc3RhcnQgbG9nZ2luZyAod2hpY2ggZGVwZW5kcyBvbiBib2R5UGFyc2VyIGRvaW5nIGl0cyB0aGluZylcbiAgYXBwLnVzZShzdGFydExvZ0Zvcm1hdHRlcik7XG5cbiAgYWRkUm91dGVzKGFwcCwge2Jhc2VQYXRoLCBleHRyYU1ldGhvZE1hcH0pO1xuXG4gIC8vIGR5bmFtaWMgcm91dGVzIGZvciB0ZXN0aW5nLCBldGMuXG4gIGFwcC5hbGwoJy93ZWxjb21lJywgd2VsY29tZSk7XG4gIGFwcC5hbGwoJy90ZXN0L2d1aW5lYS1waWcnLCBndWluZWFQaWcpO1xuICBhcHAuYWxsKCcvdGVzdC9ndWluZWEtcGlnLXNjcm9sbGFibGUnLCBndWluZWFQaWdTY3JvbGxhYmxlKTtcbiAgYXBwLmFsbCgnL3Rlc3QvZ3VpbmVhLXBpZy1hcHAtYmFubmVyJywgZ3VpbmVhUGlnQXBwQmFubmVyKTtcbn1cblxuZnVuY3Rpb24gY29uZmlndXJlSHR0cCAoe2h0dHBTZXJ2ZXIsIHJlamVjdCwga2VlcEFsaXZlVGltZW91dH0pIHtcbiAgY29uc3Qgc2VydmVyU3RhdGUgPSB7XG4gICAgbm90aWZpZXI6IG5ldyBFdmVudEVtaXR0ZXIoKSxcbiAgICBjbG9zZWQ6IGZhbHNlLFxuICB9O1xuICBodHRwU2VydmVyLmFkZFdlYlNvY2tldEhhbmRsZXIgPSBhZGRXZWJTb2NrZXRIYW5kbGVyO1xuICBodHRwU2VydmVyLnJlbW92ZVdlYlNvY2tldEhhbmRsZXIgPSByZW1vdmVXZWJTb2NrZXRIYW5kbGVyO1xuICBodHRwU2VydmVyLnJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzID0gcmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnM7XG4gIGh0dHBTZXJ2ZXIuZ2V0V2ViU29ja2V0SGFuZGxlcnMgPSBnZXRXZWJTb2NrZXRIYW5kbGVycztcblxuICAvLyBodHRwLlNlcnZlci5jbG9zZSgpIG9ubHkgc3RvcHMgbmV3IGNvbm5lY3Rpb25zLCBidXQgd2UgbmVlZCB0byB3YWl0IHVudGlsXG4gIC8vIGFsbCBjb25uZWN0aW9ucyBhcmUgY2xvc2VkIGFuZCB0aGUgYGNsb3NlYCBldmVudCBpcyBlbWl0dGVkXG4gIGNvbnN0IGNsb3NlID0gaHR0cFNlcnZlci5jbG9zZS5iaW5kKGh0dHBTZXJ2ZXIpO1xuICBodHRwU2VydmVyLmNsb3NlID0gYXN5bmMgKCkgPT4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS12MC54LWFyY2hpdmUvaXNzdWVzLzkwNjYjaXNzdWVjb21tZW50LTEyNDIxMDU3NlxuICAgIHNlcnZlclN0YXRlLmNsb3NlZCA9IHRydWU7XG4gICAgc2VydmVyU3RhdGUubm90aWZpZXIuZW1pdCgnc2h1dGRvd24nKTtcbiAgICBsb2cuaW5mbygnV2FpdGluZyB1bnRpbCB0aGUgc2VydmVyIGlzIGNsb3NlZCcpO1xuICAgIGh0dHBTZXJ2ZXIub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgbG9nLmluZm8oJ1JlY2VpdmVkIHNlcnZlciBjbG9zZSBldmVudCcpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIGNsb3NlKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIpIHJlamVjdChlcnIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG4gICAgfSk7XG4gIH0pO1xuXG4gIGh0dHBTZXJ2ZXIub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgIGlmIChlcnIuY29kZSA9PT0gJ0VBRERSTk9UQVZBSUwnKSB7XG4gICAgICBsb2cuZXJyb3IoJ0NvdWxkIG5vdCBzdGFydCBSRVNUIGh0dHAgaW50ZXJmYWNlIGxpc3RlbmVyLiAnICtcbiAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIGFkZHJlc3MgaXMgbm90IGF2YWlsYWJsZS4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmVycm9yKCdDb3VsZCBub3Qgc3RhcnQgUkVTVCBodHRwIGludGVyZmFjZSBsaXN0ZW5lci4gVGhlIHJlcXVlc3RlZCAnICtcbiAgICAgICAgICAgICAgICAncG9ydCBtYXkgYWxyZWFkeSBiZSBpbiB1c2UuIFBsZWFzZSBtYWtlIHN1cmUgdGhlcmUgaXMgbm8gJyArXG4gICAgICAgICAgICAgICAgJ290aGVyIGluc3RhbmNlIG9mIHRoaXMgc2VydmVyIHJ1bm5pbmcgYWxyZWFkeS4nKTtcbiAgICB9XG4gICAgcmVqZWN0KGVycik7XG4gIH0pO1xuXG4gIGh0dHBTZXJ2ZXIub24oJ2Nvbm5lY3Rpb24nLCAoc29ja2V0KSA9PiB7XG4gICAgc29ja2V0LnNldFRpbWVvdXQoa2VlcEFsaXZlVGltZW91dCk7XG4gICAgc29ja2V0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG5cbiAgICBmdW5jdGlvbiBkZXN0cm95ICgpIHtcbiAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgfVxuICAgIHNvY2tldC5fb3BlblJlcUNvdW50ID0gMDtcbiAgICBzb2NrZXQub25jZSgnY2xvc2UnLCAoKSA9PiBzZXJ2ZXJTdGF0ZS5ub3RpZmllci5yZW1vdmVMaXN0ZW5lcignc2h1dGRvd24nLCBkZXN0cm95KSk7XG4gICAgc2VydmVyU3RhdGUubm90aWZpZXIub25jZSgnc2h1dGRvd24nLCBkZXN0cm95KTtcbiAgfSk7XG5cbiAgaHR0cFNlcnZlci5vbigncmVxdWVzdCcsIGZ1bmN0aW9uIChyZXEsIHJlcykge1xuICAgIGNvbnN0IHNvY2tldCA9IHJlcS5jb25uZWN0aW9uIHx8IHJlcS5zb2NrZXQ7XG4gICAgc29ja2V0Ll9vcGVuUmVxQ291bnQrKztcbiAgICByZXMub24oJ2ZpbmlzaCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHNvY2tldC5fb3BlblJlcUNvdW50LS07XG4gICAgICBpZiAoc2VydmVyU3RhdGUuY2xvc2VkICYmIHNvY2tldC5fb3BlblJlcUNvdW50ID09PSAwKSB7XG4gICAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFNlcnZlciAoe2h0dHBTZXJ2ZXIsIHBvcnQsIGhvc3RuYW1lLCBrZWVwQWxpdmVUaW1lb3V0fSkge1xuICBjb25zdCBzZXJ2ZXJBcmdzID0gW3BvcnRdO1xuICBpZiAoaG9zdG5hbWUpIHtcbiAgICAvLyBJZiB0aGUgaG9zdG5hbWUgaXMgb21pdHRlZCwgdGhlIHNlcnZlciB3aWxsIGFjY2VwdFxuICAgIC8vIGNvbm5lY3Rpb25zIG9uIGFueSBJUCBhZGRyZXNzXG4gICAgc2VydmVyQXJncy5wdXNoKGhvc3RuYW1lKTtcbiAgfVxuICBjb25zdCBzdGFydFByb21pc2UgPSBCLnByb21pc2lmeShodHRwU2VydmVyLmxpc3Rlbiwge2NvbnRleHQ6IGh0dHBTZXJ2ZXJ9KSguLi5zZXJ2ZXJBcmdzKTtcbiAgaHR0cFNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ID0ga2VlcEFsaXZlVGltZW91dDtcbiAgLy8gaGVhZGVycyB0aW1lb3V0IG11c3QgYmUgZ3JlYXRlciB0aGFuIGtlZXBBbGl2ZVRpbWVvdXRcbiAgaHR0cFNlcnZlci5oZWFkZXJzVGltZW91dCA9IGtlZXBBbGl2ZVRpbWVvdXQgKyA1ICogMTAwMDtcbiAgYXdhaXQgc3RhcnRQcm9taXNlO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVCYXNlUGF0aCAoYmFzZVBhdGgpIHtcbiAgaWYgKCFfLmlzU3RyaW5nKGJhc2VQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYXRoIHByZWZpeCAke2Jhc2VQYXRofWApO1xuICB9XG5cbiAgLy8gZW5zdXJlIHRoZSBwYXRoIHByZWZpeCBkb2VzIG5vdCBlbmQgaW4gJy8nLCBzaW5jZSBvdXIgbWV0aG9kIG1hcFxuICAvLyBzdGFydHMgYWxsIHBhdGhzIHdpdGggJy8nXG4gIGJhc2VQYXRoID0gYmFzZVBhdGgucmVwbGFjZSgvXFwvJC8sICcnKTtcblxuICAvLyBsaWtld2lzZSwgZW5zdXJlIHRoZSBwYXRoIHByZWZpeCBkb2VzIGFsd2F5cyBTVEFSVCB3aXRoIC8sIHVubGVzcyB0aGUgcGF0aFxuICAvLyBpcyBlbXB0eSBtZWFuaW5nIG5vIGJhc2UgcGF0aCBhdCBhbGxcbiAgaWYgKGJhc2VQYXRoICE9PSAnJyAmJiBiYXNlUGF0aFswXSAhPT0gJy8nKSB7XG4gICAgYmFzZVBhdGggPSBgLyR7YmFzZVBhdGh9YDtcbiAgfVxuXG4gIHJldHVybiBiYXNlUGF0aDtcbn1cblxuZXhwb3J0IHsgc2VydmVyLCBjb25maWd1cmVTZXJ2ZXIsIG5vcm1hbGl6ZUJhc2VQYXRoIH07XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export function guineaPig(req: any, res: any): Promise<void>;
2
+ export function guineaPigScrollable(req: any, res: any): Promise<void>;
3
+ export function guineaPigAppBanner(req: any, res: any): Promise<void>;
4
+ export function welcome(req: any, res: any): Promise<void>;
5
+ export let STATIC_DIR: string;
6
+ //# sourceMappingURL=static.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../lib/express/static.js"],"names":[],"mappings":"AA4CA,6DAEC;AAKD,uEAEC;AAKD,sEAEC;AAKD,2DAIC;AA9DD,8BAAqE"}
@@ -92,7 +92,5 @@ async function welcome(req, res) {
92
92
  async function getTemplate(templateName) {
93
93
  let content = await _support.fs.readFile(_path.default.resolve(STATIC_DIR, 'test', templateName));
94
94
  return _lodash.default.template(content.toString());
95
- }require('source-map-support').install();
96
-
97
-
98
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHByZXNzL3N0YXRpYy5qcyJdLCJuYW1lcyI6WyJTVEFUSUNfRElSIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJfIiwiaXNOdWxsIiwibWF0Y2giLCJndWluZWFQaWdUZW1wbGF0ZSIsInJlcSIsInJlcyIsInBhZ2UiLCJkZWxheSIsInBhcnNlSW50IiwicGFyYW1zIiwicXVlcnkiLCJ0aHJvd0Vycm9yIiwic2VydmVyVGltZSIsIkRhdGUiLCJ1c2VyQWdlbnQiLCJoZWFkZXJzIiwiY29tbWVudCIsIm1ldGhvZCIsImJvZHkiLCJjb21tZW50cyIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsIkIiLCJzZXQiLCJjb29raWUiLCJkb21haW4iLCJzZW5kIiwiZ2V0VGVtcGxhdGUiLCJndWluZWFQaWciLCJndWluZWFQaWdTY3JvbGxhYmxlIiwiZ3VpbmVhUGlnQXBwQmFubmVyIiwid2VsY29tZSIsIm1lc3NhZ2UiLCJ0ZW1wbGF0ZU5hbWUiLCJjb250ZW50IiwiZnMiLCJyZWFkRmlsZSIsInRlbXBsYXRlIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLElBQUlBLFVBQVUsR0FBR0MsY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLElBQXBDLEVBQTBDLFFBQTFDLENBQWpCOzs7O0FBQ0EsSUFBSUMsZ0JBQUVDLE1BQUYsQ0FBU0osY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCRyxLQUF4QixDQUE4Qiw0QkFBOUIsQ0FBVCxDQUFKLEVBQTJFO0FBR3pFLHVCQUFBTixVQUFVLEdBQUdDLGNBQUtDLE9BQUwsQ0FBYUMsU0FBYixFQUF3QixJQUF4QixFQUE4QixJQUE5QixFQUFvQyxRQUFwQyxDQUFiO0FBQ0Q7O0FBRUQsZUFBZUksaUJBQWYsQ0FBa0NDLEdBQWxDLEVBQXVDQyxHQUF2QyxFQUE0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LGVBQWVvQixXQUFmLENBQTRCTSxZQUE1QixFQUEwQztBQUN4QyxNQUFJQyxPQUFPLEdBQUcsTUFBTUMsWUFBR0MsUUFBSCxDQUFZekMsY0FBS0MsT0FBTCxDQUFhRixVQUFiLEVBQXlCLE1BQXpCLEVBQWlDdUMsWUFBakMsQ0FBWixDQUFwQjtBQUNBLFNBQU9uQyxnQkFBRXVDLFFBQUYsQ0FBV0gsT0FBTyxDQUFDSSxRQUFSLEVBQVgsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmcyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5cblxubGV0IFNUQVRJQ19ESVIgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnLi4nLCAnc3RhdGljJyk7XG5pZiAoXy5pc051bGwocGF0aC5yZXNvbHZlKF9fZGlybmFtZSkubWF0Y2goL2J1aWxkWy9cXFxcXWxpYlsvXFxcXF1leHByZXNzJC8pKSkge1xuICAvLyBpbiBzb21lIGNvbnRleHRzIHdlIGFyZSBub3QgaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeSxcbiAgLy8gc28gd2UgZG9uJ3Qgd2FudCB0byBnbyBiYWNrIHRoZSBleHRyYSBsZXZlbFxuICBTVEFUSUNfRElSID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3N0YXRpYycpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBndWluZWFQaWdUZW1wbGF0ZSAocmVxLCByZXMsIHBhZ2UpIHtcbiAgY29uc3QgZGVsYXkgPSBwYXJzZUludChyZXEucGFyYW1zLmRlbGF5IHx8IHJlcS5xdWVyeS5kZWxheSB8fCAwLCAxMCk7XG4gIGNvbnN0IHRocm93RXJyb3IgPSByZXEucGFyYW1zLnRocm93RXJyb3IgfHwgcmVxLnF1ZXJ5LnRocm93RXJyb3IgfHwgJyc7XG4gIGxldCBwYXJhbXMgPSB7XG4gICAgdGhyb3dFcnJvcixcbiAgICBzZXJ2ZXJUaW1lOiBuZXcgRGF0ZSgpLFxuICAgIHVzZXJBZ2VudDogcmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSxcbiAgICBjb21tZW50OiAnTm9uZSdcbiAgfTtcbiAgaWYgKHJlcS5tZXRob2QgPT09ICdQT1NUJykge1xuICAgIHBhcmFtcy5jb21tZW50ID0gcmVxLmJvZHkuY29tbWVudHMgfHwgcGFyYW1zLmNvbW1lbnQ7XG4gIH1cbiAgbG9nLmRlYnVnKGBTZW5kaW5nIGd1aW5lYSBwaWcgcmVzcG9uc2Ugd2l0aCBwYXJhbXM6ICR7SlNPTi5zdHJpbmdpZnkocGFyYW1zKX1gKTtcbiAgaWYgKGRlbGF5KSB7XG4gICAgbG9nLmRlYnVnKGBXYWl0aW5nICR7ZGVsYXl9bXMgYmVmb3JlIHJlc3BvbmRpbmdgKTtcbiAgICBhd2FpdCBCLmRlbGF5KGRlbGF5KTtcbiAgfVxuICByZXMuc2V0KCdjb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gIHJlcy5jb29raWUoJ2d1aW5lYWNvb2tpZTEnLCAnaSBhbSBhIGNvb2tpZSB2YWx1ZScsIHtwYXRoOiAnLyd9KTtcbiAgcmVzLmNvb2tpZSgnZ3VpbmVhY29va2llMicsICdjb29racOpMicsIHtwYXRoOiAnLyd9KTtcbiAgcmVzLmNvb2tpZSgnZ3VpbmVhY29va2llMycsICdjYW50IGFjY2VzcyB0aGlzJywge1xuICAgIGRvbWFpbjogJy5ibGFyZ2ltYXJnLmNvbScsXG4gICAgcGF0aDogJy8nXG4gIH0pO1xuICByZXMuc2VuZCgoYXdhaXQgZ2V0VGVtcGxhdGUocGFnZSkpKHBhcmFtcykpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvdGVzdC9ndWluZWEtcGlnXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGd1aW5lYVBpZyAocmVxLCByZXMpIHtcbiAgcmV0dXJuIGF3YWl0IGd1aW5lYVBpZ1RlbXBsYXRlKHJlcSwgcmVzLCAnZ3VpbmVhLXBpZy5odG1sJyk7XG59XG5cbi8qXG4gKiBEeW5hbWljIHBhZ2UgbWFwcGVkIHRvIC90ZXN0L2d1aW5lYS1waWctc2Nyb2xsYWJsZVxuICovXG5hc3luYyBmdW5jdGlvbiBndWluZWFQaWdTY3JvbGxhYmxlIChyZXEsIHJlcykge1xuICByZXR1cm4gYXdhaXQgZ3VpbmVhUGlnVGVtcGxhdGUocmVxLCByZXMsICdndWluZWEtcGlnLXNjcm9sbGFibGUuaHRtbCcpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvdGVzdC9ndWluZWEtcGlnLWFwcC1iYW5uZXJcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ3VpbmVhUGlnQXBwQmFubmVyIChyZXEsIHJlcykge1xuICByZXR1cm4gYXdhaXQgZ3VpbmVhUGlnVGVtcGxhdGUocmVxLCByZXMsICdndWluZWEtcGlnLWFwcC1iYW5uZXIuaHRtbCcpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvd2VsY29tZVxuICovXG5hc3luYyBmdW5jdGlvbiB3ZWxjb21lIChyZXEsIHJlcykge1xuICBsZXQgcGFyYW1zID0ge21lc3NhZ2U6ICdMZXRcXCdzIGJyb3dzZSEnfTtcbiAgbG9nLmRlYnVnKGBTZW5kaW5nIHdlbGNvbWUgcmVzcG9uc2Ugd2l0aCBwYXJhbXM6ICR7SlNPTi5zdHJpbmdpZnkocGFyYW1zKX1gKTtcbiAgcmVzLnNlbmQoKGF3YWl0IGdldFRlbXBsYXRlKCd3ZWxjb21lLmh0bWwnKSkocGFyYW1zKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFRlbXBsYXRlICh0ZW1wbGF0ZU5hbWUpIHtcbiAgbGV0IGNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLnJlc29sdmUoU1RBVElDX0RJUiwgJ3Rlc3QnLCB0ZW1wbGF0ZU5hbWUpKTtcbiAgcmV0dXJuIF8udGVtcGxhdGUoY29udGVudC50b1N0cmluZygpKTtcbn1cblxuZXhwb3J0IHsgZ3VpbmVhUGlnLCBndWluZWFQaWdTY3JvbGxhYmxlLCBndWluZWFQaWdBcHBCYW5uZXIsIHdlbGNvbWUsIFNUQVRJQ19ESVIgfTtcbiJdLCJmaWxlIjoibGliL2V4cHJlc3Mvc3RhdGljLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
95
+ }
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHByZXNzL3N0YXRpYy5qcyJdLCJuYW1lcyI6WyJTVEFUSUNfRElSIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJfIiwiaXNOdWxsIiwibWF0Y2giLCJndWluZWFQaWdUZW1wbGF0ZSIsInJlcSIsInJlcyIsInBhZ2UiLCJkZWxheSIsInBhcnNlSW50IiwicGFyYW1zIiwicXVlcnkiLCJ0aHJvd0Vycm9yIiwic2VydmVyVGltZSIsIkRhdGUiLCJ1c2VyQWdlbnQiLCJoZWFkZXJzIiwiY29tbWVudCIsIm1ldGhvZCIsImJvZHkiLCJjb21tZW50cyIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsIkIiLCJzZXQiLCJjb29raWUiLCJkb21haW4iLCJzZW5kIiwiZ2V0VGVtcGxhdGUiLCJndWluZWFQaWciLCJndWluZWFQaWdTY3JvbGxhYmxlIiwiZ3VpbmVhUGlnQXBwQmFubmVyIiwid2VsY29tZSIsIm1lc3NhZ2UiLCJ0ZW1wbGF0ZU5hbWUiLCJjb250ZW50IiwiZnMiLCJyZWFkRmlsZSIsInRlbXBsYXRlIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLElBQUlBLFVBQVUsR0FBR0MsY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLElBQXBDLEVBQTBDLFFBQTFDLENBQWpCOzs7O0FBQ0EsSUFBSUMsZ0JBQUVDLE1BQUYsQ0FBU0osY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCRyxLQUF4QixDQUE4Qiw0QkFBOUIsQ0FBVCxDQUFKLEVBQTJFO0FBR3pFLHVCQUFBTixVQUFVLEdBQUdDLGNBQUtDLE9BQUwsQ0FBYUMsU0FBYixFQUF3QixJQUF4QixFQUE4QixJQUE5QixFQUFvQyxRQUFwQyxDQUFiO0FBQ0Q7O0FBRUQsZUFBZUksaUJBQWYsQ0FBa0NDLEdBQWxDLEVBQXVDQyxH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QUNEOztBQUVELGVBQWVvQixXQUFmLENBQTRCTSxZQUE1QixFQUEwQztBQUN4QyxNQUFJQyxPQUFPLEdBQUcsTUFBTUMsWUFBR0MsUUFBSCxDQUFZekMsY0FBS0MsT0FBTCxDQUFhRixVQUFiLEVBQXlCLE1BQXpCLEVBQWlDdUMsWUFBakMsQ0FBWixDQUFwQjtBQUNBLFNBQU9uQyxnQkFBRXVDLFFBQUYsQ0FBV0gsT0FBTyxDQUFDSSxRQUFSLEVBQVgsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmcyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5cblxubGV0IFNUQVRJQ19ESVIgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnLi4nLCAnc3RhdGljJyk7XG5pZiAoXy5pc051bGwocGF0aC5yZXNvbHZlKF9fZGlybmFtZSkubWF0Y2goL2J1aWxkWy9cXFxcXWxpYlsvXFxcXF1leHByZXNzJC8pKSkge1xuICAvLyBpbiBzb21lIGNvbnRleHRzIHdlIGFyZSBub3QgaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeSxcbiAgLy8gc28gd2UgZG9uJ3Qgd2FudCB0byBnbyBiYWNrIHRoZSBleHRyYSBsZXZlbFxuICBTVEFUSUNfRElSID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3N0YXRpYycpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBndWluZWFQaWdUZW1wbGF0ZSAocmVxLCByZXMsIHBhZ2UpIHtcbiAgY29uc3QgZGVsYXkgPSBwYXJzZUludChyZXEucGFyYW1zLmRlbGF5IHx8IHJlcS5xdWVyeS5kZWxheSB8fCAwLCAxMCk7XG4gIGNvbnN0IHRocm93RXJyb3IgPSByZXEucGFyYW1zLnRocm93RXJyb3IgfHwgcmVxLnF1ZXJ5LnRocm93RXJyb3IgfHwgJyc7XG4gIGxldCBwYXJhbXMgPSB7XG4gICAgdGhyb3dFcnJvcixcbiAgICBzZXJ2ZXJUaW1lOiBuZXcgRGF0ZSgpLFxuICAgIHVzZXJBZ2VudDogcmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSxcbiAgICBjb21tZW50OiAnTm9uZSdcbiAgfTtcbiAgaWYgKHJlcS5tZXRob2QgPT09ICdQT1NUJykge1xuICAgIHBhcmFtcy5jb21tZW50ID0gcmVxLmJvZHkuY29tbWVudHMgfHwgcGFyYW1zLmNvbW1lbnQ7XG4gIH1cbiAgbG9nLmRlYnVnKGBTZW5kaW5nIGd1aW5lYSBwaWcgcmVzcG9uc2Ugd2l0aCBwYXJhbXM6ICR7SlNPTi5zdHJpbmdpZnkocGFyYW1zKX1gKTtcbiAgaWYgKGRlbGF5KSB7XG4gICAgbG9nLmRlYnVnKGBXYWl0aW5nICR7ZGVsYXl9bXMgYmVmb3JlIHJlc3BvbmRpbmdgKTtcbiAgICBhd2FpdCBCLmRlbGF5KGRlbGF5KTtcbiAgfVxuICByZXMuc2V0KCdjb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gIHJlcy5jb29raWUoJ2d1aW5lYWNvb2tpZTEnLCAnaSBhbSBhIGNvb2tpZSB2YWx1ZScsIHtwYXRoOiAnLyd9KTtcbiAgcmVzLmNvb2tpZSgnZ3VpbmVhY29va2llMicsICdjb29racOpMicsIHtwYXRoOiAnLyd9KTtcbiAgcmVzLmNvb2tpZSgnZ3VpbmVhY29va2llMycsICdjYW50IGFjY2VzcyB0aGlzJywge1xuICAgIGRvbWFpbjogJy5ibGFyZ2ltYXJnLmNvbScsXG4gICAgcGF0aDogJy8nXG4gIH0pO1xuICByZXMuc2VuZCgoYXdhaXQgZ2V0VGVtcGxhdGUocGFnZSkpKHBhcmFtcykpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvdGVzdC9ndWluZWEtcGlnXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGd1aW5lYVBpZyAocmVxLCByZXMpIHtcbiAgcmV0dXJuIGF3YWl0IGd1aW5lYVBpZ1RlbXBsYXRlKHJlcSwgcmVzLCAnZ3VpbmVhLXBpZy5odG1sJyk7XG59XG5cbi8qXG4gKiBEeW5hbWljIHBhZ2UgbWFwcGVkIHRvIC90ZXN0L2d1aW5lYS1waWctc2Nyb2xsYWJsZVxuICovXG5hc3luYyBmdW5jdGlvbiBndWluZWFQaWdTY3JvbGxhYmxlIChyZXEsIHJlcykge1xuICByZXR1cm4gYXdhaXQgZ3VpbmVhUGlnVGVtcGxhdGUocmVxLCByZXMsICdndWluZWEtcGlnLXNjcm9sbGFibGUuaHRtbCcpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvdGVzdC9ndWluZWEtcGlnLWFwcC1iYW5uZXJcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ3VpbmVhUGlnQXBwQmFubmVyIChyZXEsIHJlcykge1xuICByZXR1cm4gYXdhaXQgZ3VpbmVhUGlnVGVtcGxhdGUocmVxLCByZXMsICdndWluZWEtcGlnLWFwcC1iYW5uZXIuaHRtbCcpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvd2VsY29tZVxuICovXG5hc3luYyBmdW5jdGlvbiB3ZWxjb21lIChyZXEsIHJlcykge1xuICBsZXQgcGFyYW1zID0ge21lc3NhZ2U6ICdMZXRcXCdzIGJyb3dzZSEnfTtcbiAgbG9nLmRlYnVnKGBTZW5kaW5nIHdlbGNvbWUgcmVzcG9uc2Ugd2l0aCBwYXJhbXM6ICR7SlNPTi5zdHJpbmdpZnkocGFyYW1zKX1gKTtcbiAgcmVzLnNlbmQoKGF3YWl0IGdldFRlbXBsYXRlKCd3ZWxjb21lLmh0bWwnKSkocGFyYW1zKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFRlbXBsYXRlICh0ZW1wbGF0ZU5hbWUpIHtcbiAgbGV0IGNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLnJlc29sdmUoU1RBVElDX0RJUiwgJ3Rlc3QnLCB0ZW1wbGF0ZU5hbWUpKTtcbiAgcmV0dXJuIF8udGVtcGxhdGUoY29udGVudC50b1N0cmluZygpKTtcbn1cblxuZXhwb3J0IHsgZ3VpbmVhUGlnLCBndWluZWFQaWdTY3JvbGxhYmxlLCBndWluZWFQaWdBcHBCYW5uZXIsIHdlbGNvbWUsIFNUQVRJQ19ESVIgfTtcbiJdfQ==
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Adds websocket handler to express server instance.
3
+ * It is expected this function is called in Express
4
+ * server instance context.
5
+ *
6
+ * @param {Object} server - An instance of express HTTP server.
7
+ * @param {string} handlerPathname - Web socket endpoint path starting with
8
+ * a single slash character. It is recommended to always add
9
+ * DEFAULT_WS_PATHNAME_PREFIX to all web socket pathnames.
10
+ * @param {Object} handlerServer - WebSocket server instance. See
11
+ * https://github.com/websockets/ws/pull/885 for more details
12
+ * on how to configure the handler properly.
13
+ */
14
+ export function addWebSocketHandler(handlerPathname: string, handlerServer: any): Promise<void>;
15
+ export class addWebSocketHandler {
16
+ /**
17
+ * Adds websocket handler to express server instance.
18
+ * It is expected this function is called in Express
19
+ * server instance context.
20
+ *
21
+ * @param {Object} server - An instance of express HTTP server.
22
+ * @param {string} handlerPathname - Web socket endpoint path starting with
23
+ * a single slash character. It is recommended to always add
24
+ * DEFAULT_WS_PATHNAME_PREFIX to all web socket pathnames.
25
+ * @param {Object} handlerServer - WebSocket server instance. See
26
+ * https://github.com/websockets/ws/pull/885 for more details
27
+ * on how to configure the handler properly.
28
+ */
29
+ constructor(handlerPathname: string, handlerServer: any);
30
+ webSocketsMapping: {};
31
+ }
32
+ /**
33
+ * Removes existing websocket handler from express server instance.
34
+ * The call is ignored if the given `handlerPathname` handler
35
+ * is not present in the handlers list.
36
+ * It is expected this function is called in Express
37
+ * server instance context.
38
+ *
39
+ * @param {string} handlerPathname - Websocket endpoint path.
40
+ * @returns {boolean} true if the handlerPathname was found and deleted
41
+ */
42
+ export function removeWebSocketHandler(handlerPathname: string): boolean;
43
+ /**
44
+ * Removes all existing websocket handler from express server instance.
45
+ * It is expected this function is called in Express
46
+ * server instance context.
47
+ *
48
+ * @returns {boolean} true if at least one handler has been deleted
49
+ */
50
+ export function removeAllWebSocketHandlers(): boolean;
51
+ /**
52
+ * Returns web socket handlers registered for the given server
53
+ * instance.
54
+ * It is expected this function is called in Express
55
+ * server instance context.
56
+ *
57
+ * @param {?string} keysFilter [null]- Only include pathnames with given
58
+ * `keysFilter` value if set. All pairs will be included by default.
59
+ * @returns {Object} pathnames to websocket server isntances mapping
60
+ * matching the search criteria or an empty object otherwise.
61
+ */
62
+ export function getWebSocketHandlers(keysFilter?: string | null): any;
63
+ export const DEFAULT_WS_PATHNAME_PREFIX: "/ws";
64
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../lib/express/websocket.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;GAYG;AACH,qDAPW,MAAM,qCA8BhB;;IApCD;;;;;;;;;;;;OAYG;IACH,6BAPW,MAAM,sBA8BhB;IArBG,sBAA2B;;AA+C/B;;;;;;;;;GASG;AACH,wDAHW,MAAM,GACJ,OAAO,CAoBnB;AAED;;;;;;GAMG;AACH,8CAFa,OAAO,CAYnB;AAvED;;;;;;;;;;GAUG;AACH,kDALY,MAAM,cAgBjB;AA/DD,+CAAyC"}
@@ -15,39 +15,39 @@ require("source-map-support/register");
15
15
 
16
16
  var _lodash = _interopRequireDefault(require("lodash"));
17
17
 
18
- var _url = _interopRequireDefault(require("url"));
18
+ var _url = require("url");
19
+
20
+ var _bluebird = _interopRequireDefault(require("bluebird"));
19
21
 
20
22
  const DEFAULT_WS_PATHNAME_PREFIX = '/ws';
21
23
  exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
22
24
 
23
25
  async function addWebSocketHandler(handlerPathname, handlerServer) {
24
- let isUpgradeListenerAssigned = true;
25
-
26
26
  if (_lodash.default.isUndefined(this.webSocketsMapping)) {
27
27
  this.webSocketsMapping = {};
28
- isUpgradeListenerAssigned = false;
29
- }
30
-
31
- this.webSocketsMapping[handlerPathname] = handlerServer;
32
-
33
- if (isUpgradeListenerAssigned) {
34
- return;
35
- }
28
+ this.on('upgrade', (request, socket, head) => {
29
+ let currentPathname;
36
30
 
37
- this.on('upgrade', (request, socket, head) => {
38
- const currentPathname = _url.default.parse(request.url).pathname;
31
+ try {
32
+ currentPathname = new _url.URL(request.url).pathname;
33
+ } catch (ign) {
34
+ currentPathname = request.url;
35
+ }
39
36
 
40
- for (const [pathname, wsServer] of _lodash.default.toPairs(this.webSocketsMapping)) {
41
- if (currentPathname === pathname) {
42
- wsServer.handleUpgrade(request, socket, head, ws => {
43
- wsServer.emit('connection', ws, request);
44
- });
45
- return;
37
+ for (const [pathname, wsServer] of _lodash.default.toPairs(this.webSocketsMapping)) {
38
+ if (currentPathname === pathname) {
39
+ wsServer.handleUpgrade(request, socket, head, ws => {
40
+ wsServer.emit('connection', ws, request);
41
+ });
42
+ return;
43
+ }
46
44
  }
47
- }
48
45
 
49
- socket.destroy();
50
- });
46
+ socket.destroy();
47
+ });
48
+ }
49
+
50
+ this.webSocketsMapping[handlerPathname] = handlerServer;
51
51
  }
52
52
 
53
53
  async function getWebSocketHandlers(keysFilter = null) {
@@ -55,24 +55,31 @@ async function getWebSocketHandlers(keysFilter = null) {
55
55
  return {};
56
56
  }
57
57
 
58
- let result = {};
59
-
60
- for (const [pathname, wsServer] of _lodash.default.toPairs(this.webSocketsMapping)) {
58
+ return _lodash.default.toPairs(this.webSocketsMapping).reduce((acc, [pathname, wsServer]) => {
61
59
  if (!_lodash.default.isString(keysFilter) || pathname.includes(keysFilter)) {
62
- result[pathname] = wsServer;
60
+ acc[pathname] = wsServer;
63
61
  }
64
- }
65
62
 
66
- return result;
63
+ return acc;
64
+ }, {});
67
65
  }
68
66
 
69
67
  async function removeWebSocketHandler(handlerPathname) {
70
- if (!this.webSocketsMapping || !this.webSocketsMapping[handlerPathname]) {
68
+ var _this$webSocketsMappi;
69
+
70
+ const wsServer = (_this$webSocketsMappi = this.webSocketsMapping) === null || _this$webSocketsMappi === void 0 ? void 0 : _this$webSocketsMappi[handlerPathname];
71
+
72
+ if (!wsServer) {
71
73
  return false;
72
74
  }
73
75
 
74
76
  try {
75
- this.webSocketsMapping[handlerPathname].close();
77
+ wsServer.close();
78
+
79
+ for (const client of wsServer.clients || []) {
80
+ client.terminate();
81
+ }
82
+
76
83
  return true;
77
84
  } catch (ign) {} finally {
78
85
  delete this.webSocketsMapping[handlerPathname];
@@ -86,14 +93,6 @@ async function removeAllWebSocketHandlers() {
86
93
  return false;
87
94
  }
88
95
 
89
- let result = false;
90
-
91
- for (const pathname of _lodash.default.keys(this.webSocketsMapping)) {
92
- result = result || (await this.removeWebSocketHandler(pathname));
93
- }
94
-
95
- return result;
96
- }require('source-map-support').install();
97
-
98
-
99
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHByZXNzL3dlYnNvY2tldC5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJoYW5kbGVyUGF0aG5hbWUiLCJoYW5kbGVyU2VydmVyIiwiaXNVcGdyYWRlTGlzdGVuZXJBc3NpZ25lZCIsIl8iLCJpc1VuZGVmaW5lZCIsIndlYlNvY2tldHNNYXBwaW5nIiwib24iLCJyZXF1ZXN0Iiwic29ja2V0IiwiaGVhZCIsImN1cnJlbnRQYXRobmFtZSIsInVybCIsInBhcnNlIiwicGF0aG5hbWUiLCJ3c1NlcnZlciIsInRvUGFpcnMiLCJoYW5kbGVVcGdyYWRlIiwid3MiLCJlbWl0IiwiZGVzdHJveSIsImdldFdlYlNvY2tldEhhbmRsZXJzIiwia2V5c0ZpbHRlciIsImlzRW1wdHkiLCJyZXN1bHQiLCJpc1N0cmluZyIsImluY2x1ZGVzIiwicmVtb3ZlV2ViU29ja2V0SGFuZGxlciIsImNsb3NlIiwiaWduIiwicmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnMiLCJrZXlzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSwwQkFBMEIsR0FBRyxLQUFuQzs7O0FBZ0JBLGVBQWVDLG1CQUFmLENBQW9DQyxlQUFwQyxFQUFxREMsYUFBckQsRUFBb0U7QUFDbEUsTUFBSUMseUJBQXlCLEdBQUcsSUFBaEM7O0FBQ0EsTUFBSUMsZ0JBQUVDLFdBQUYsQ0FBYyxLQUFLQyxpQkFBbkIsQ0FBSixFQUEyQztBQUN6QyxTQUFLQSxpQkFBTCxHQUF5QixFQUF6QjtBQUNBSCxJQUFBQSx5QkFBeUIsR0FBRyxLQUE1QjtBQUNEOztBQUNELE9BQUtHLGlCQUFMLENBQXVCTCxlQUF2QixJQUEwQ0MsYUFBMUM7O0FBQ0EsTUFBSUMseUJBQUosRUFBK0I7QUFDN0I7QUFDRDs7QUFHRCxPQUFLSSxFQUFMLENBQVEsU0FBUixFQUFtQixDQUFDQyxPQUFELEVBQVVDLE1BQVYsRUFBa0JDLElBQWxCLEtBQTJCO0FBQzVDLFVBQU1DLGVBQWUsR0FBR0MsYUFBSUMsS0FBSixDQUFVTCxPQUFPLENBQUNJLEdBQWxCLEVBQXVCRSxRQUEvQzs7QUFDQSxTQUFLLE1BQU0sQ0FBQ0EsUUFBRCxFQUFXQyxRQUFYLENBQVgsSUFBbUNYLGdCQUFFWSxPQUFGLENBQVUsS0FBS1YsaUJBQWYsQ0FBbkMsRUFBc0U7QUFDcEUsVUFBSUssZUFBZSxLQUFLRyxRQUF4QixFQUFrQztBQUNoQ0MsUUFBQUEsUUFBUSxDQUFDRSxhQUFULENBQXVCVCxPQUF2QixFQUFnQ0MsTUFBaEMsRUFBd0NDLElBQXhDLEVBQStDUSxFQUFELElBQVE7QUFDcERILFVBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxDQUFjLFlBQWQsRUFBNEJELEVBQTVCLEVBQWdDVixPQUFoQztBQUNELFNBRkQ7QUFHQTtBQUNEO0FBQ0Y7O0FBQ0RDLElBQUFBLE1BQU0sQ0FBQ1csT0FBUDtBQUNELEdBWEQ7QUFZRDs7QUFhRCxlQUFlQyxvQkFBZixDQUFxQ0MsVUFBVSxHQUFHLElBQWxELEVBQXdEO0FBQ3RELE1BQUlsQixnQkFBRW1CLE9BQUYsQ0FBVSxLQUFLakIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEVBQVA7QUFDRDs7QUFFRCxNQUFJa0IsTUFBTSxHQUFHLEVBQWI7O0FBQ0EsT0FBSyxNQUFNLENBQUNWLFFBQUQsRUFBV0MsUUFBWCxDQUFYLElBQW1DWCxnQkFBRVksT0FBRixDQUFVLEtBQUtWLGlCQUFmLENBQW5DLEVBQXNFO0FBQ3BFLFFBQUksQ0FBQ0YsZ0JBQUVxQixRQUFGLENBQVdILFVBQVgsQ0FBRCxJQUEyQlIsUUFBUSxDQUFDWSxRQUFULENBQWtCSixVQUFsQixDQUEvQixFQUE4RDtBQUM1REUsTUFBQUEsTUFBTSxDQUFDVixRQUFELENBQU4sR0FBbUJDLFFBQW5CO0FBQ0Q7QUFDRjs7QUFDRCxTQUFPUyxNQUFQO0FBQ0Q7O0FBWUQsZUFBZUcsc0JBQWYsQ0FBdUMxQixlQUF2QyxFQUF3RDtBQUN0RCxNQUFJLENBQUMsS0FBS0ssaUJBQU4sSUFBMkIsQ0FBQyxLQUFLQSxpQkFBTCxDQUF1QkwsZUFBdkIsQ0FBaEMsRUFBeUU7QUFDdkUsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSTtBQUNGLFNBQUtLLGlCQUFMLENBQXVCTCxlQUF2QixFQUF3QzJCLEtBQXhDO0FBQ0EsV0FBTyxJQUFQO0FBQ0QsR0FIRCxDQUdFLE9BQU9DLEdBQVAsRUFBWSxDQUViLENBTEQsU0FLVTtBQUNSLFdBQU8sS0FBS3ZCLGlCQUFMLENBQXVCTCxlQUF2QixDQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxLQUFQO0FBQ0Q7O0FBU0QsZUFBZTZCLDBCQUFmLEdBQTZDO0FBQzNDLE1BQUkxQixnQkFBRW1CLE9BQUYsQ0FBVSxLQUFLakIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEtBQVA7QUFDRDs7QUFFRCxNQUFJa0IsTUFBTSxHQUFHLEtBQWI7O0FBQ0EsT0FBSyxNQUFNVixRQUFYLElBQXVCVixnQkFBRTJCLElBQUYsQ0FBTyxLQUFLekIsaUJBQVosQ0FBdkIsRUFBdUQ7QUFDckRrQixJQUFBQSxNQUFNLEdBQUdBLE1BQU0sS0FBSSxNQUFNLEtBQUtHLHNCQUFMLENBQTRCYixRQUE1QixDQUFWLENBQWY7QUFDRDs7QUFDRCxTQUFPVSxNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuXG5jb25zdCBERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCA9ICcvd3MnO1xuXG5cbi8qKlxuICogQWRkcyB3ZWJzb2NrZXQgaGFuZGxlciB0byBleHByZXNzIHNlcnZlciBpbnN0YW5jZS5cbiAqIEl0IGlzIGV4cGVjdGVkIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIEV4cHJlc3NcbiAqIHNlcnZlciBpbnN0YW5jZSBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBzZXJ2ZXIgLSBBbiBpbnN0YW5jZSBvZiBleHByZXNzIEhUVFAgc2VydmVyLlxuICogQHBhcmFtIHtzdHJpbmd9IGhhbmRsZXJQYXRobmFtZSAtIFdlYiBzb2NrZXQgZW5kcG9pbnQgcGF0aCBzdGFydGluZyB3aXRoXG4gKiBhIHNpbmdsZSBzbGFzaCBjaGFyYWN0ZXIuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGFsd2F5cyBhZGRcbiAqIERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYIHRvIGFsbCB3ZWIgc29ja2V0IHBhdGhuYW1lcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBoYW5kbGVyU2VydmVyIC0gV2ViU29ja2V0IHNlcnZlciBpbnN0YW5jZS4gU2VlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vd2Vic29ja2V0cy93cy9wdWxsLzg4NSBmb3IgbW9yZSBkZXRhaWxzXG4gKiBvbiBob3cgdG8gY29uZmlndXJlIHRoZSBoYW5kbGVyIHByb3Blcmx5LlxuICovXG5hc3luYyBmdW5jdGlvbiBhZGRXZWJTb2NrZXRIYW5kbGVyIChoYW5kbGVyUGF0aG5hbWUsIGhhbmRsZXJTZXJ2ZXIpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIGxldCBpc1VwZ3JhZGVMaXN0ZW5lckFzc2lnbmVkID0gdHJ1ZTtcbiAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICB0aGlzLndlYlNvY2tldHNNYXBwaW5nID0ge307XG4gICAgaXNVcGdyYWRlTGlzdGVuZXJBc3NpZ25lZCA9IGZhbHNlO1xuICB9XG4gIHRoaXMud2ViU29ja2V0c01hcHBpbmdbaGFuZGxlclBhdGhuYW1lXSA9IGhhbmRsZXJTZXJ2ZXI7XG4gIGlmIChpc1VwZ3JhZGVMaXN0ZW5lckFzc2lnbmVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnNvY2tldHMvd3MvcHVsbC84ODVcbiAgdGhpcy5vbigndXBncmFkZScsIChyZXF1ZXN0LCBzb2NrZXQsIGhlYWQpID0+IHtcbiAgICBjb25zdCBjdXJyZW50UGF0aG5hbWUgPSB1cmwucGFyc2UocmVxdWVzdC51cmwpLnBhdGhuYW1lO1xuICAgIGZvciAoY29uc3QgW3BhdGhuYW1lLCB3c1NlcnZlcl0gb2YgXy50b1BhaXJzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpKSB7XG4gICAgICBpZiAoY3VycmVudFBhdGhuYW1lID09PSBwYXRobmFtZSkge1xuICAgICAgICB3c1NlcnZlci5oYW5kbGVVcGdyYWRlKHJlcXVlc3QsIHNvY2tldCwgaGVhZCwgKHdzKSA9PiB7XG4gICAgICAgICAgd3NTZXJ2ZXIuZW1pdCgnY29ubmVjdGlvbicsIHdzLCByZXF1ZXN0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgc29ja2V0LmRlc3Ryb3koKTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3ZWIgc29ja2V0IGhhbmRsZXJzIHJlZ2lzdGVyZWQgZm9yIHRoZSBnaXZlbiBzZXJ2ZXJcbiAqIGluc3RhbmNlLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIHs/c3RyaW5nfSBrZXlzRmlsdGVyIFtudWxsXS0gT25seSBpbmNsdWRlIHBhdGhuYW1lcyB3aXRoIGdpdmVuXG4gKiBga2V5c0ZpbHRlcmAgdmFsdWUgaWYgc2V0LiBBbGwgcGFpcnMgd2lsbCBiZSBpbmNsdWRlZCBieSBkZWZhdWx0LlxuICogQHJldHVybnMge09iamVjdH0gcGF0aG5hbWVzIHRvIHdlYnNvY2tldCBzZXJ2ZXIgaXNudGFuY2VzIG1hcHBpbmdcbiAqIG1hdGNoaW5nIHRoZSBzZWFyY2ggY3JpdGVyaWEgb3IgYW4gZW1wdHkgb2JqZWN0IG90aGVyd2lzZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0V2ViU29ja2V0SGFuZGxlcnMgKGtleXNGaWx0ZXIgPSBudWxsKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICBpZiAoXy5pc0VtcHR5KHRoaXMud2ViU29ja2V0c01hcHBpbmcpKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgbGV0IHJlc3VsdCA9IHt9O1xuICBmb3IgKGNvbnN0IFtwYXRobmFtZSwgd3NTZXJ2ZXJdIG9mIF8udG9QYWlycyh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIGlmICghXy5pc1N0cmluZyhrZXlzRmlsdGVyKSB8fCBwYXRobmFtZS5pbmNsdWRlcyhrZXlzRmlsdGVyKSkge1xuICAgICAgcmVzdWx0W3BhdGhuYW1lXSA9IHdzU2VydmVyO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZXMgZXhpc3Rpbmcgd2Vic29ja2V0IGhhbmRsZXIgZnJvbSBleHByZXNzIHNlcnZlciBpbnN0YW5jZS5cbiAqIFRoZSBjYWxsIGlzIGlnbm9yZWQgaWYgdGhlIGdpdmVuIGBoYW5kbGVyUGF0aG5hbWVgIGhhbmRsZXJcbiAqIGlzIG5vdCBwcmVzZW50IGluIHRoZSBoYW5kbGVycyBsaXN0LlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGhhbmRsZXJQYXRobmFtZSAtIFdlYnNvY2tldCBlbmRwb2ludCBwYXRoLlxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGhhbmRsZXJQYXRobmFtZSB3YXMgZm91bmQgYW5kIGRlbGV0ZWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlV2ViU29ja2V0SGFuZGxlciAoaGFuZGxlclBhdGhuYW1lKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICBpZiAoIXRoaXMud2ViU29ja2V0c01hcHBpbmcgfHwgIXRoaXMud2ViU29ja2V0c01hcHBpbmdbaGFuZGxlclBhdGhuYW1lXSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdLmNsb3NlKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGlnbikge1xuICAgIC8vIGlnbm9yZVxuICB9IGZpbmFsbHkge1xuICAgIGRlbGV0ZSB0aGlzLndlYlNvY2tldHNNYXBwaW5nW2hhbmRsZXJQYXRobmFtZV07XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGV4aXN0aW5nIHdlYnNvY2tldCBoYW5kbGVyIGZyb20gZXhwcmVzcyBzZXJ2ZXIgaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgaGFuZGxlciBoYXMgYmVlbiBkZWxldGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzICgpIHtcbiAgaWYgKF8uaXNFbXB0eSh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCByZXN1bHQgPSBmYWxzZTtcbiAgZm9yIChjb25zdCBwYXRobmFtZSBvZiBfLmtleXModGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICByZXN1bHQgPSByZXN1bHQgfHwgYXdhaXQgdGhpcy5yZW1vdmVXZWJTb2NrZXRIYW5kbGVyKHBhdGhuYW1lKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQge1xuICBhZGRXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycyxcbiAgZ2V0V2ViU29ja2V0SGFuZGxlcnMsIERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYLFxufTtcbiJdLCJmaWxlIjoibGliL2V4cHJlc3Mvd2Vic29ja2V0LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
96
+ return _lodash.default.some(await _bluebird.default.all(_lodash.default.keys(this.webSocketsMapping).map(pathname => this.removeWebSocketHandler(pathname))));
97
+ }
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHByZXNzL3dlYnNvY2tldC5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJoYW5kbGVyUGF0aG5hbWUiLCJoYW5kbGVyU2VydmVyIiwiXyIsImlzVW5kZWZpbmVkIiwid2ViU29ja2V0c01hcHBpbmciLCJvbiIsInJlcXVlc3QiLCJzb2NrZXQiLCJoZWFkIiwiY3VycmVudFBhdGhuYW1lIiwiVVJMIiwidXJsIiwicGF0aG5hbWUiLCJpZ24iLCJ3c1NlcnZlciIsInRvUGFpcnMiLCJoYW5kbGVVcGdyYWRlIiwid3MiLCJlbWl0IiwiZGVzdHJveSIsImdldFdlYlNvY2tldEhhbmRsZXJzIiwia2V5c0ZpbHRlciIsImlzRW1wdHkiLCJyZWR1Y2UiLCJhY2MiLCJpc1N0cmluZyIsImluY2x1ZGVzIiwicmVtb3ZlV2ViU29ja2V0SGFuZGxlciIsImNsb3NlIiwiY2xpZW50IiwiY2xpZW50cyIsInRlcm1pbmF0ZSIsInJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzIiwic29tZSIsIkIiLCJhbGwiLCJrZXlzIiwibWFwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSwwQkFBMEIsR0FBRyxLQUFuQzs7O0FBZ0JBLGVBQWVDLG1CQUFmLENBQW9DQyxlQUFwQyxFQUFxREMsYUFBckQsRUFBb0U7QUFDbEUsTUFBSUMsZ0JBQUVDLFdBQUYsQ0FBYyxLQUFLQyxpQkFBbkIsQ0FBSixFQUEyQztBQUN6QyxTQUFLQSxpQkFBTCxHQUF5QixFQUF6QjtBQUVBLFNBQUtDLEVBQUwsQ0FBUSxTQUFSLEVBQW1CLENBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFrQkMsSUFBbEIsS0FBMkI7QUFDNUMsVUFBSUMsZUFBSjs7QUFDQSxVQUFJO0FBQ0ZBLFFBQUFBLGVBQWUsR0FBSSxJQUFJQyxRQUFKLENBQVFKLE9BQU8sQ0FBQ0ssR0FBaEIsQ0FBRCxDQUF1QkMsUUFBekM7QUFDRCxPQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZO0FBQ1pKLFFBQUFBLGVBQWUsR0FBR0gsT0FBTyxDQUFDSyxHQUExQjtBQUNEOztBQUNELFdBQUssTUFBTSxDQUFDQyxRQUFELEVBQVdFLFFBQVgsQ0FBWCxJQUFtQ1osZ0JBQUVhLE9BQUYsQ0FBVSxLQUFLWCxpQkFBZixDQUFuQyxFQUFzRTtBQUNwRSxZQUFJSyxlQUFlLEtBQUtHLFFBQXhCLEVBQWtDO0FBQ2hDRSxVQUFBQSxRQUFRLENBQUNFLGFBQVQsQ0FBdUJWLE9BQXZCLEVBQWdDQyxNQUFoQyxFQUF3Q0MsSUFBeEMsRUFBK0NTLEVBQUQsSUFBUTtBQUNwREgsWUFBQUEsUUFBUSxDQUFDSSxJQUFULENBQWMsWUFBZCxFQUE0QkQsRUFBNUIsRUFBZ0NYLE9BQWhDO0FBQ0QsV0FGRDtBQUdBO0FBQ0Q7QUFDRjs7QUFDREMsTUFBQUEsTUFBTSxDQUFDWSxPQUFQO0FBQ0QsS0FoQkQ7QUFpQkQ7O0FBQ0QsT0FBS2YsaUJBQUwsQ0FBdUJKLGVBQXZCLElBQTBDQyxhQUExQztBQUNEOztBQWFELGVBQWVtQixvQkFBZixDQUFxQ0MsVUFBVSxHQUFHLElBQWxELEVBQXdEO0FBQ3RELE1BQUluQixnQkFBRW9CLE9BQUYsQ0FBVSxLQUFLbEIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEVBQVA7QUFDRDs7QUFFRCxTQUFPRixnQkFBRWEsT0FBRixDQUFVLEtBQUtYLGlCQUFmLEVBQWtDbUIsTUFBbEMsQ0FBeUMsQ0FBQ0MsR0FBRCxFQUFNLENBQUNaLFFBQUQsRUFBV0UsUUFBWCxDQUFOLEtBQStCO0FBQzdFLFFBQUksQ0FBQ1osZ0JBQUV1QixRQUFGLENBQVdKLFVBQVgsQ0FBRCxJQUEyQlQsUUFBUSxDQUFDYyxRQUFULENBQWtCTCxVQUFsQixDQUEvQixFQUE4RDtBQUM1REcsTUFBQUEsR0FBRyxDQUFDWixRQUFELENBQUgsR0FBZ0JFLFFBQWhCO0FBQ0Q7O0FBQ0QsV0FBT1UsR0FBUDtBQUNELEdBTE0sRUFLSixFQUxJLENBQVA7QUFNRDs7QUFZRCxlQUFlRyxzQkFBZixDQUF1QzNCLGVBQXZDLEVBQXdEO0FBQUE7O0FBQ3RELFFBQU1jLFFBQVEsNEJBQUcsS0FBS1YsaUJBQVIsMERBQUcsc0JBQXlCSixlQUF6QixDQUFqQjs7QUFDQSxNQUFJLENBQUNjLFFBQUwsRUFBZTtBQUNiLFdBQU8sS0FBUDtBQUNEOztBQUVELE1BQUk7QUFDRkEsSUFBQUEsUUFBUSxDQUFDYyxLQUFUOztBQUNBLFNBQUssTUFBTUMsTUFBWCxJQUFzQmYsUUFBUSxDQUFDZ0IsT0FBVCxJQUFvQixFQUExQyxFQUErQztBQUM3Q0QsTUFBQUEsTUFBTSxDQUFDRSxTQUFQO0FBQ0Q7O0FBQ0QsV0FBTyxJQUFQO0FBQ0QsR0FORCxDQU1FLE9BQU9sQixHQUFQLEVBQVksQ0FFYixDQVJELFNBUVU7QUFDUixXQUFPLEtBQUtULGlCQUFMLENBQXVCSixlQUF2QixDQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxLQUFQO0FBQ0Q7O0FBU0QsZUFBZWdDLDBCQUFmLEdBQTZDO0FBQzNDLE1BQUk5QixnQkFBRW9CLE9BQUYsQ0FBVSxLQUFLbEIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEtBQVA7QUFDRDs7QUFFRCxTQUFPRixnQkFBRStCLElBQUYsQ0FDTCxNQUFNQyxrQkFBRUMsR0FBRixDQUNKakMsZ0JBQUVrQyxJQUFGLENBQU8sS0FBS2hDLGlCQUFaLEVBQStCaUMsR0FBL0IsQ0FBb0N6QixRQUFELElBQWMsS0FBS2Usc0JBQUwsQ0FBNEJmLFFBQTVCLENBQWpELENBREksQ0FERCxDQUFQO0FBS0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgVVJMIH0gZnJvbSAndXJsJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuY29uc3QgREVGQVVMVF9XU19QQVRITkFNRV9QUkVGSVggPSAnL3dzJztcblxuXG4vKipcbiAqIEFkZHMgd2Vic29ja2V0IGhhbmRsZXIgdG8gZXhwcmVzcyBzZXJ2ZXIgaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gc2VydmVyIC0gQW4gaW5zdGFuY2Ugb2YgZXhwcmVzcyBIVFRQIHNlcnZlci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBoYW5kbGVyUGF0aG5hbWUgLSBXZWIgc29ja2V0IGVuZHBvaW50IHBhdGggc3RhcnRpbmcgd2l0aFxuICogYSBzaW5nbGUgc2xhc2ggY2hhcmFjdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBhbHdheXMgYWRkXG4gKiBERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCB0byBhbGwgd2ViIHNvY2tldCBwYXRobmFtZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gaGFuZGxlclNlcnZlciAtIFdlYlNvY2tldCBzZXJ2ZXIgaW5zdGFuY2UuIFNlZVxuICogaHR0cHM6Ly9naXRodWIuY29tL3dlYnNvY2tldHMvd3MvcHVsbC84ODUgZm9yIG1vcmUgZGV0YWlsc1xuICogb24gaG93IHRvIGNvbmZpZ3VyZSB0aGUgaGFuZGxlciBwcm9wZXJseS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYWRkV2ViU29ja2V0SGFuZGxlciAoaGFuZGxlclBhdGhuYW1lLCBoYW5kbGVyU2VydmVyKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIHRoaXMud2ViU29ja2V0c01hcHBpbmcgPSB7fTtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2Vic29ja2V0cy93cy9wdWxsLzg4NVxuICAgIHRoaXMub24oJ3VwZ3JhZGUnLCAocmVxdWVzdCwgc29ja2V0LCBoZWFkKSA9PiB7XG4gICAgICBsZXQgY3VycmVudFBhdGhuYW1lO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY3VycmVudFBhdGhuYW1lID0gKG5ldyBVUkwocmVxdWVzdC51cmwpKS5wYXRobmFtZTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge1xuICAgICAgICBjdXJyZW50UGF0aG5hbWUgPSByZXF1ZXN0LnVybDtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgW3BhdGhuYW1lLCB3c1NlcnZlcl0gb2YgXy50b1BhaXJzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpKSB7XG4gICAgICAgIGlmIChjdXJyZW50UGF0aG5hbWUgPT09IHBhdGhuYW1lKSB7XG4gICAgICAgICAgd3NTZXJ2ZXIuaGFuZGxlVXBncmFkZShyZXF1ZXN0LCBzb2NrZXQsIGhlYWQsICh3cykgPT4ge1xuICAgICAgICAgICAgd3NTZXJ2ZXIuZW1pdCgnY29ubmVjdGlvbicsIHdzLCByZXF1ZXN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cbiAgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdID0gaGFuZGxlclNlcnZlcjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdlYiBzb2NrZXQgaGFuZGxlcnMgcmVnaXN0ZXJlZCBmb3IgdGhlIGdpdmVuIHNlcnZlclxuICogaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0gez9zdHJpbmd9IGtleXNGaWx0ZXIgW251bGxdLSBPbmx5IGluY2x1ZGUgcGF0aG5hbWVzIHdpdGggZ2l2ZW5cbiAqIGBrZXlzRmlsdGVyYCB2YWx1ZSBpZiBzZXQuIEFsbCBwYWlycyB3aWxsIGJlIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBwYXRobmFtZXMgdG8gd2Vic29ja2V0IHNlcnZlciBpc250YW5jZXMgbWFwcGluZ1xuICogbWF0Y2hpbmcgdGhlIHNlYXJjaCBjcml0ZXJpYSBvciBhbiBlbXB0eSBvYmplY3Qgb3RoZXJ3aXNlLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRXZWJTb2NrZXRIYW5kbGVycyAoa2V5c0ZpbHRlciA9IG51bGwpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIGlmIChfLmlzRW1wdHkodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gXy50b1BhaXJzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpLnJlZHVjZSgoYWNjLCBbcGF0aG5hbWUsIHdzU2VydmVyXSkgPT4ge1xuICAgIGlmICghXy5pc1N0cmluZyhrZXlzRmlsdGVyKSB8fCBwYXRobmFtZS5pbmNsdWRlcyhrZXlzRmlsdGVyKSkge1xuICAgICAgYWNjW3BhdGhuYW1lXSA9IHdzU2VydmVyO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBleGlzdGluZyB3ZWJzb2NrZXQgaGFuZGxlciBmcm9tIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogVGhlIGNhbGwgaXMgaWdub3JlZCBpZiB0aGUgZ2l2ZW4gYGhhbmRsZXJQYXRobmFtZWAgaGFuZGxlclxuICogaXMgbm90IHByZXNlbnQgaW4gdGhlIGhhbmRsZXJzIGxpc3QuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaGFuZGxlclBhdGhuYW1lIC0gV2Vic29ja2V0IGVuZHBvaW50IHBhdGguXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgaGFuZGxlclBhdGhuYW1lIHdhcyBmb3VuZCBhbmQgZGVsZXRlZFxuICovXG5hc3luYyBmdW5jdGlvbiByZW1vdmVXZWJTb2NrZXRIYW5kbGVyIChoYW5kbGVyUGF0aG5hbWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIGNvbnN0IHdzU2VydmVyID0gdGhpcy53ZWJTb2NrZXRzTWFwcGluZz8uW2hhbmRsZXJQYXRobmFtZV07XG4gIGlmICghd3NTZXJ2ZXIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0cnkge1xuICAgIHdzU2VydmVyLmNsb3NlKCk7XG4gICAgZm9yIChjb25zdCBjbGllbnQgb2YgKHdzU2VydmVyLmNsaWVudHMgfHwgW10pKSB7XG4gICAgICBjbGllbnQudGVybWluYXRlKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChpZ24pIHtcbiAgICAvLyBpZ25vcmVcbiAgfSBmaW5hbGx5IHtcbiAgICBkZWxldGUgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBleGlzdGluZyB3ZWJzb2NrZXQgaGFuZGxlciBmcm9tIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgYXQgbGVhc3Qgb25lIGhhbmRsZXIgaGFzIGJlZW4gZGVsZXRlZFxuICovXG5hc3luYyBmdW5jdGlvbiByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycyAoKSB7XG4gIGlmIChfLmlzRW1wdHkodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gXy5zb21lKFxuICAgIGF3YWl0IEIuYWxsKFxuICAgICAgXy5rZXlzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpLm1hcCgocGF0aG5hbWUpID0+IHRoaXMucmVtb3ZlV2ViU29ja2V0SGFuZGxlcihwYXRobmFtZSkpXG4gICAgKVxuICApO1xufVxuXG5leHBvcnQge1xuICBhZGRXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycyxcbiAgZ2V0V2ViU29ja2V0SGFuZGxlcnMsIERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYLFxufTtcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ export type Capabilities = import('@appium/types').Capabilities;
2
+ export type Constraints = import('@appium/types').Constraints;
3
+ export type AppiumLogger = import('@appium/types').AppiumLogger;
4
+ export function isW3cCaps(caps: any): boolean;
5
+ /**
6
+ *
7
+ * @param {Capabilities} originalCaps
8
+ * @param {Constraints} desiredCapConstraints
9
+ * @param {AppiumLogger} log
10
+ * @returns {Capabilities}
11
+ */
12
+ export function fixCaps(originalCaps: Capabilities, desiredCapConstraints: Constraints, log: AppiumLogger): Capabilities;
13
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../lib/helpers/capabilities.js"],"names":[],"mappings":"2BAgFa,OAAO,eAAe,EAAE,YAAY;0BACpC,OAAO,eAAe,EAAE,WAAW;2BACnC,OAAO,eAAe,EAAE,YAAY;AA9EjD,8CAkBC;AAED;;;;;;GAMG;AACH,sCALW,YAAY,yBACZ,WAAW,OACX,YAAY,GACV,YAAY,CA2CxB"}
@@ -5,6 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.fixCaps = fixCaps;
8
9
  exports.isW3cCaps = isW3cCaps;
9
10
 
10
11
  require("source-map-support/register");
@@ -33,7 +34,44 @@ function isW3cCaps(caps) {
33
34
  }
34
35
 
35
36
  return false;
36
- }require('source-map-support').install();
37
+ }
37
38
 
39
+ function fixCaps(originalCaps, desiredCapConstraints, log) {
40
+ let caps = _lodash.default.clone(originalCaps);
38
41
 
39
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9oZWxwZXJzL2NhcGFiaWxpdGllcy5qcyJdLCJuYW1lcyI6WyJpc1czY0NhcHMiLCJjYXBzIiwiXyIsImlzUGxhaW5PYmplY3QiLCJpc0ZpcnN0TWF0Y2hWYWxpZCIsImlzQXJyYXkiLCJmaXJzdE1hdGNoIiwiaXNFbXB0eSIsImV2ZXJ5IiwiaXNBbHdheXNNYXRjaFZhbGlkIiwiYWx3YXlzTWF0Y2giLCJoYXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsU0FBU0EsU0FBVCxDQUFvQkMsSUFBcEIsRUFBMEI7QUFDeEIsTUFBSSxDQUFDQyxnQkFBRUMsYUFBRixDQUFnQkYsSUFBaEIsQ0FBTCxFQUE0QjtBQUMxQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxRQUFNRyxpQkFBaUIsR0FBRyxNQUFNRixnQkFBRUcsT0FBRixDQUFVSixJQUFJLENBQUNLLFVBQWYsS0FDM0IsQ0FBQ0osZ0JBQUVLLE9BQUYsQ0FBVU4sSUFBSSxDQUFDSyxVQUFmLENBRDBCLElBQ0lKLGdCQUFFTSxLQUFGLENBQVFQLElBQUksQ0FBQ0ssVUFBYixFQUF5QkosZ0JBQUVDLGFBQTNCLENBRHBDOztBQUVBLFFBQU1NLGtCQUFrQixHQUFHLE1BQU1QLGdCQUFFQyxhQUFGLENBQWdCRixJQUFJLENBQUNTLFdBQXJCLENBQWpDOztBQUNBLE1BQUlSLGdCQUFFUyxHQUFGLENBQU1WLElBQU4sRUFBWSxZQUFaLEtBQTZCQyxnQkFBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksYUFBWixDQUFqQyxFQUE2RDtBQUMzRCxXQUFPRyxpQkFBaUIsTUFBTUssa0JBQWtCLEVBQWhEO0FBQ0Q7O0FBQ0QsTUFBSVAsZ0JBQUVTLEdBQUYsQ0FBTVYsSUFBTixFQUFZLFlBQVosQ0FBSixFQUErQjtBQUM3QixXQUFPRyxpQkFBaUIsRUFBeEI7QUFDRDs7QUFDRCxNQUFJRixnQkFBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksYUFBWixDQUFKLEVBQWdDO0FBQzlCLFdBQU9RLGtCQUFrQixFQUF6QjtBQUNEOztBQUNELFNBQU8sS0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuZnVuY3Rpb24gaXNXM2NDYXBzIChjYXBzKSB7XG4gIGlmICghXy5pc1BsYWluT2JqZWN0KGNhcHMpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgaXNGaXJzdE1hdGNoVmFsaWQgPSAoKSA9PiBfLmlzQXJyYXkoY2Fwcy5maXJzdE1hdGNoKVxuICAgICYmICFfLmlzRW1wdHkoY2Fwcy5maXJzdE1hdGNoKSAmJiBfLmV2ZXJ5KGNhcHMuZmlyc3RNYXRjaCwgXy5pc1BsYWluT2JqZWN0KTtcbiAgY29uc3QgaXNBbHdheXNNYXRjaFZhbGlkID0gKCkgPT4gXy5pc1BsYWluT2JqZWN0KGNhcHMuYWx3YXlzTWF0Y2gpO1xuICBpZiAoXy5oYXMoY2FwcywgJ2ZpcnN0TWF0Y2gnKSAmJiBfLmhhcyhjYXBzLCAnYWx3YXlzTWF0Y2gnKSkge1xuICAgIHJldHVybiBpc0ZpcnN0TWF0Y2hWYWxpZCgpICYmIGlzQWx3YXlzTWF0Y2hWYWxpZCgpO1xuICB9XG4gIGlmIChfLmhhcyhjYXBzLCAnZmlyc3RNYXRjaCcpKSB7XG4gICAgcmV0dXJuIGlzRmlyc3RNYXRjaFZhbGlkKCk7XG4gIH1cbiAgaWYgKF8uaGFzKGNhcHMsICdhbHdheXNNYXRjaCcpKSB7XG4gICAgcmV0dXJuIGlzQWx3YXlzTWF0Y2hWYWxpZCgpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IHtcbiAgaXNXM2NDYXBzLFxufTsiXSwiZmlsZSI6ImxpYi9oZWxwZXJzL2NhcGFiaWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
42
+ let booleanCaps = _lodash.default.keys(_lodash.default.pickBy(desiredCapConstraints, k => k.isBoolean === true));
43
+
44
+ for (let cap of booleanCaps) {
45
+ let value = originalCaps[cap];
46
+
47
+ if (_lodash.default.isString(value)) {
48
+ value = value.toLowerCase();
49
+
50
+ if (value === 'true' || value === 'false') {
51
+ log.warn(`Capability '${cap}' changed from string to boolean. This may cause unexpected behavior`);
52
+ caps[cap] = value === 'true';
53
+ }
54
+ }
55
+ }
56
+
57
+ let intCaps = _lodash.default.keys(_lodash.default.pickBy(desiredCapConstraints, k => k.isNumber === true));
58
+
59
+ for (let cap of intCaps) {
60
+ let value = originalCaps[cap];
61
+
62
+ if (_lodash.default.isString(value)) {
63
+ value = value.trim();
64
+ let newValue = parseInt(value, 10);
65
+
66
+ if (value !== `${newValue}`) {
67
+ newValue = parseFloat(value);
68
+ }
69
+
70
+ log.warn(`Capability '${cap}' changed from string ('${value}') to integer (${newValue}). This may cause unexpected behavior`);
71
+ caps[cap] = newValue;
72
+ }
73
+ }
74
+
75
+ return caps;
76
+ }
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oZWxwZXJzL2NhcGFiaWxpdGllcy5qcyJdLCJuYW1lcyI6WyJpc1czY0NhcHMiLCJjYXBzIiwiXyIsImlzUGxhaW5PYmplY3QiLCJpc0ZpcnN0TWF0Y2hWYWxpZCIsImlzQXJyYXkiLCJmaXJzdE1hdGNoIiwiaXNFbXB0eSIsImV2ZXJ5IiwiaXNBbHdheXNNYXRjaFZhbGlkIiwiYWx3YXlzTWF0Y2giLCJoYXMiLCJmaXhDYXBzIiwib3JpZ2luYWxDYXBzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwibG9nIiwiY2xvbmUiLCJib29sZWFuQ2FwcyIsImtleXMiLCJwaWNrQnkiLCJrIiwiaXNCb29sZWFuIiwiY2FwIiwidmFsdWUiLCJpc1N0cmluZyIsInRvTG93ZXJDYXNlIiwid2FybiIsImludENhcHMiLCJpc051bWJlciIsInRyaW0iLCJuZXdWYWx1ZSIsInBhcnNlSW50IiwicGFyc2VGbG9hdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUE7O0FBRUEsU0FBU0EsU0FBVCxDQUFvQkMsSUFBcEIsRUFBMEI7QUFDeEIsTUFBSSxDQUFDQyxnQkFBRUMsYUFBRixDQUFnQkYsSUFBaEIsQ0FBTCxFQUE0QjtBQUMxQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxRQUFNRyxpQkFBaUIsR0FBRyxNQUFNRixnQkFBRUcsT0FBRixDQUFVSixJQUFJLENBQUNLLFVBQWYsS0FDM0IsQ0FBQ0osZ0JBQUVLLE9BQUYsQ0FBVU4sSUFBSSxDQUFDSyxVQUFmLENBRDBCLElBQ0lKLGdCQUFFTSxLQUFGLENBQVFQLElBQUksQ0FBQ0ssVUFBYixFQUF5QkosZ0JBQUVDLGFBQTNCLENBRHBDOztBQUVBLFFBQU1NLGtCQUFrQixHQUFHLE1BQU1QLGdCQUFFQyxhQUFGLENBQWdCRixJQUFJLENBQUNTLFdBQXJCLENBQWpDOztBQUNBLE1BQUlSLGdCQUFFUyxHQUFGLENBQU1WLElBQU4sRUFBWSxZQUFaLEtBQTZCQyxnQkFBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksYUFBWixDQUFqQyxFQUE2RDtBQUMzRCxXQUFPRyxpQkFBaUIsTUFBTUssa0JBQWtCLEVBQWhEO0FBQ0Q7O0FBQ0QsTUFBSVAsZ0JBQUVTLEdBQUYsQ0FBTVYsSUFBTixFQUFZLFlBQVosQ0FBSixFQUErQjtBQUM3QixXQUFPRyxpQkFBaUIsRUFBeEI7QUFDRDs7QUFDRCxNQUFJRixnQkFBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksYUFBWixDQUFKLEVBQWdDO0FBQzlCLFdBQU9RLGtCQUFrQixFQUF6QjtBQUNEOztBQUNELFNBQU8sS0FBUDtBQUNEOztBQVNELFNBQVNHLE9BQVQsQ0FBa0JDLFlBQWxCLEVBQWdDQyxxQkFBaEMsRUFBdURDLEdBQXZELEVBQTREO0FBQzFELE1BQUlkLElBQUksR0FBR0MsZ0JBQUVjLEtBQUYsQ0FBUUgsWUFBUixDQUFYOztBQUlBLE1BQUlJLFdBQVcsR0FBR2YsZ0JBQUVnQixJQUFGLENBQ2hCaEIsZ0JBQUVpQixNQUFGLENBQVNMLHFCQUFULEVBQWlDTSxDQUFELElBQU9BLENBQUMsQ0FBQ0MsU0FBRixLQUFnQixJQUF2RCxDQURnQixDQUFsQjs7QUFHQSxPQUFLLElBQUlDLEdBQVQsSUFBZ0JMLFdBQWhCLEVBQTZCO0FBQzNCLFFBQUlNLEtBQUssR0FBR1YsWUFBWSxDQUFDUyxHQUFELENBQXhCOztBQUNBLFFBQUlwQixnQkFBRXNCLFFBQUYsQ0FBV0QsS0FBWCxDQUFKLEVBQXVCO0FBQ3JCQSxNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ0UsV0FBTixFQUFSOztBQUNBLFVBQUlGLEtBQUssS0FBSyxNQUFWLElBQW9CQSxLQUFLLEtBQUssT0FBbEMsRUFBMkM7QUFDekNSLFFBQUFBLEdBQUcsQ0FBQ1csSUFBSixDQUNHLGVBQWNKLEdBQUksc0VBRHJCO0FBR0FyQixRQUFBQSxJQUFJLENBQUNxQixHQUFELENBQUosR0FBWUMsS0FBSyxLQUFLLE1BQXRCO0FBQ0Q7QUFDRjtBQUNGOztBQUdELE1BQUlJLE9BQU8sR0FBR3pCLGdCQUFFZ0IsSUFBRixDQUNaaEIsZ0JBQUVpQixNQUFGLENBQVNMLHFCQUFULEVBQWlDTSxDQUFELElBQU9BLENBQUMsQ0FBQ1EsUUFBRixLQUFlLElBQXRELENBRFksQ0FBZDs7QUFHQSxPQUFLLElBQUlOLEdBQVQsSUFBZ0JLLE9BQWhCLEVBQXlCO0FBQ3ZCLFFBQUlKLEtBQUssR0FBR1YsWUFBWSxDQUFDUyxHQUFELENBQXhCOztBQUNBLFFBQUlwQixnQkFBRXNCLFFBQUYsQ0FBV0QsS0FBWCxDQUFKLEVBQXVCO0FBQ3JCQSxNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ00sSUFBTixFQUFSO0FBQ0EsVUFBSUMsUUFBUSxHQUFHQyxRQUFRLENBQUNSLEtBQUQsRUFBUSxFQUFSLENBQXZCOztBQUNBLFVBQUlBLEtBQUssS0FBTSxHQUFFTyxRQUFTLEVBQTFCLEVBQTZCO0FBQzNCQSxRQUFBQSxRQUFRLEdBQUdFLFVBQVUsQ0FBQ1QsS0FBRCxDQUFyQjtBQUNEOztBQUNEUixNQUFBQSxHQUFHLENBQUNXLElBQUosQ0FDRyxlQUFjSixHQUFJLDJCQUEwQkMsS0FBTSxrQkFBaUJPLFFBQVMsdUNBRC9FO0FBR0E3QixNQUFBQSxJQUFJLENBQUNxQixHQUFELENBQUosR0FBWVEsUUFBWjtBQUNEO0FBQ0Y7O0FBRUQsU0FBTzdCLElBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5mdW5jdGlvbiBpc1czY0NhcHMgKGNhcHMpIHtcbiAgaWYgKCFfLmlzUGxhaW5PYmplY3QoY2FwcykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBpc0ZpcnN0TWF0Y2hWYWxpZCA9ICgpID0+IF8uaXNBcnJheShjYXBzLmZpcnN0TWF0Y2gpXG4gICAgJiYgIV8uaXNFbXB0eShjYXBzLmZpcnN0TWF0Y2gpICYmIF8uZXZlcnkoY2Fwcy5maXJzdE1hdGNoLCBfLmlzUGxhaW5PYmplY3QpO1xuICBjb25zdCBpc0Fsd2F5c01hdGNoVmFsaWQgPSAoKSA9PiBfLmlzUGxhaW5PYmplY3QoY2Fwcy5hbHdheXNNYXRjaCk7XG4gIGlmIChfLmhhcyhjYXBzLCAnZmlyc3RNYXRjaCcpICYmIF8uaGFzKGNhcHMsICdhbHdheXNNYXRjaCcpKSB7XG4gICAgcmV0dXJuIGlzRmlyc3RNYXRjaFZhbGlkKCkgJiYgaXNBbHdheXNNYXRjaFZhbGlkKCk7XG4gIH1cbiAgaWYgKF8uaGFzKGNhcHMsICdmaXJzdE1hdGNoJykpIHtcbiAgICByZXR1cm4gaXNGaXJzdE1hdGNoVmFsaWQoKTtcbiAgfVxuICBpZiAoXy5oYXMoY2FwcywgJ2Fsd2F5c01hdGNoJykpIHtcbiAgICByZXR1cm4gaXNBbHdheXNNYXRjaFZhbGlkKCk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge0NhcGFiaWxpdGllc30gb3JpZ2luYWxDYXBzXG4gKiBAcGFyYW0ge0NvbnN0cmFpbnRzfSBkZXNpcmVkQ2FwQ29uc3RyYWludHNcbiAqIEBwYXJhbSB7QXBwaXVtTG9nZ2VyfSBsb2dcbiAqIEByZXR1cm5zIHtDYXBhYmlsaXRpZXN9XG4gKi9cbmZ1bmN0aW9uIGZpeENhcHMgKG9yaWdpbmFsQ2FwcywgZGVzaXJlZENhcENvbnN0cmFpbnRzLCBsb2cpIHtcbiAgbGV0IGNhcHMgPSBfLmNsb25lKG9yaWdpbmFsQ2Fwcyk7XG5cbiAgLy8gYm9vbGVhbiBjYXBhYmlsaXRpZXMgY2FuIGJlIHBhc3NlZCBpbiBhcyBzdHJpbmdzICdmYWxzZScgYW5kICd0cnVlJ1xuICAvLyB3aGljaCB3ZSB3YW50IHRvIHRyYW5zbGF0ZSBpbnRvIGJvb2xlYW4gdmFsdWVzXG4gIGxldCBib29sZWFuQ2FwcyA9IF8ua2V5cyhcbiAgICBfLnBpY2tCeShkZXNpcmVkQ2FwQ29uc3RyYWludHMsIChrKSA9PiBrLmlzQm9vbGVhbiA9PT0gdHJ1ZSksXG4gICk7XG4gIGZvciAobGV0IGNhcCBvZiBib29sZWFuQ2Fwcykge1xuICAgIGxldCB2YWx1ZSA9IG9yaWdpbmFsQ2Fwc1tjYXBdO1xuICAgIGlmIChfLmlzU3RyaW5nKHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHZhbHVlID09PSAndHJ1ZScgfHwgdmFsdWUgPT09ICdmYWxzZScpIHtcbiAgICAgICAgbG9nLndhcm4oXG4gICAgICAgICAgYENhcGFiaWxpdHkgJyR7Y2FwfScgY2hhbmdlZCBmcm9tIHN0cmluZyB0byBib29sZWFuLiBUaGlzIG1heSBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yYCxcbiAgICAgICAgKTtcbiAgICAgICAgY2Fwc1tjYXBdID0gdmFsdWUgPT09ICd0cnVlJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpbnQgY2FwYWJpbGl0aWVzIGFyZSBvZnRlbiBzZW50IGluIGFzIHN0cmluZ3MgYnkgZnJhbWV3b3Jrc1xuICBsZXQgaW50Q2FwcyA9IF8ua2V5cyhcbiAgICBfLnBpY2tCeShkZXNpcmVkQ2FwQ29uc3RyYWludHMsIChrKSA9PiBrLmlzTnVtYmVyID09PSB0cnVlKSxcbiAgKTtcbiAgZm9yIChsZXQgY2FwIG9mIGludENhcHMpIHtcbiAgICBsZXQgdmFsdWUgPSBvcmlnaW5hbENhcHNbY2FwXTtcbiAgICBpZiAoXy5pc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xuICAgICAgbGV0IG5ld1ZhbHVlID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gYCR7bmV3VmFsdWV9YCkge1xuICAgICAgICBuZXdWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgfVxuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBDYXBhYmlsaXR5ICcke2NhcH0nIGNoYW5nZWQgZnJvbSBzdHJpbmcgKCcke3ZhbHVlfScpIHRvIGludGVnZXIgKCR7bmV3VmFsdWV9KS4gVGhpcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvcmAsXG4gICAgICApO1xuICAgICAgY2Fwc1tjYXBdID0gbmV3VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhcHM7XG59XG5cbmV4cG9ydCB7XG4gIGlzVzNjQ2FwcyxcbiAgZml4Q2Fwc1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQ2FwYWJpbGl0aWVzfSBDYXBhYmlsaXRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Db25zdHJhaW50c30gQ29uc3RyYWludHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9IEFwcGl1bUxvZ2dlclxuICovXG4iXX0=