@jsprismarine/prismarine 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/Console.cjs.js +2 -2
  3. package/dist/Console.d.ts +1 -1
  4. package/dist/Console.d.ts.map +1 -1
  5. package/dist/Console.es.js +2 -2
  6. package/dist/Player.cjs.js +1 -1
  7. package/dist/Player.es.js +1 -1
  8. package/dist/{Protocol-C1DcF_Iw.cjs → Protocol-BVaFul30.cjs} +2 -2
  9. package/dist/{Protocol-9T3wX43U.js → Protocol-D9dzQTbF.js} +2 -2
  10. package/dist/Server-DAXmO2Rm.js +1864 -0
  11. package/dist/Server-nY-WO-m_.cjs +1886 -0
  12. package/dist/Server.cjs.js +1 -1
  13. package/dist/Server.d.ts.map +1 -1
  14. package/dist/Server.es.js +1 -1
  15. package/dist/block/Block.cjs.js +2 -2
  16. package/dist/block/Block.es.js +2 -2
  17. package/dist/block/blocks/Bookshelf.d.ts +1 -1
  18. package/dist/block/blocks/CoalOre.d.ts +1 -1
  19. package/dist/block/blocks/Gravel.d.ts +1 -1
  20. package/dist/block/blocks/WhiteBed.d.ts +1 -1
  21. package/dist/chat/ChatManager.cjs.js +1 -1
  22. package/dist/chat/ChatManager.d.ts.map +1 -1
  23. package/dist/chat/ChatManager.es.js +1 -1
  24. package/dist/command/Command.cjs.js +2 -2
  25. package/dist/command/Command.es.js +2 -2
  26. package/dist/command/CommandArguments.cjs.js +1 -1
  27. package/dist/command/CommandArguments.es.js +1 -1
  28. package/dist/command/CommandManager.cjs.js +2 -2
  29. package/dist/command/CommandManager.es.js +2 -2
  30. package/dist/command/Commands.cjs.js +1 -1
  31. package/dist/command/Commands.es.js +1 -1
  32. package/dist/command/index.cjs.js +1 -1
  33. package/dist/command/index.es.js +1 -1
  34. package/dist/command/vanilla/BanCommand.cjs.js +1 -1
  35. package/dist/command/vanilla/BanCommand.es.js +1 -1
  36. package/dist/command/vanilla/DeopCommand.cjs.js +1 -1
  37. package/dist/command/vanilla/DeopCommand.es.js +1 -1
  38. package/dist/command/vanilla/ExecuteCommand.cjs.js +1 -1
  39. package/dist/command/vanilla/ExecuteCommand.es.js +1 -1
  40. package/dist/command/vanilla/GamemodeCommand.cjs.js +1 -1
  41. package/dist/command/vanilla/GamemodeCommand.es.js +1 -1
  42. package/dist/command/vanilla/KickCommand.cjs.js +1 -1
  43. package/dist/command/vanilla/KickCommand.es.js +1 -1
  44. package/dist/command/vanilla/OpCommand.cjs.js +1 -1
  45. package/dist/command/vanilla/OpCommand.es.js +1 -1
  46. package/dist/command/vanilla/PardonCommand.cjs.js +1 -1
  47. package/dist/command/vanilla/PardonCommand.es.js +1 -1
  48. package/dist/command/vanilla/SummonCommand.cjs.js +1 -1
  49. package/dist/command/vanilla/SummonCommand.es.js +1 -1
  50. package/dist/command/vanilla/TpCommand.cjs.js +1 -1
  51. package/dist/command/vanilla/TpCommand.es.js +1 -1
  52. package/dist/config/ConfigBuilder.cjs.js +12 -4
  53. package/dist/config/ConfigBuilder.d.ts.map +1 -1
  54. package/dist/config/ConfigBuilder.es.js +12 -4
  55. package/dist/entity/Attribute.cjs.js +1 -1
  56. package/dist/entity/Attribute.d.ts.map +1 -1
  57. package/dist/entity/Attribute.es.js +1 -1
  58. package/dist/entity/Entity.cjs.js +4 -3
  59. package/dist/entity/Entity.d.ts.map +1 -1
  60. package/dist/entity/Entity.es.js +4 -3
  61. package/dist/entity/Metadata.cjs.js +1 -1
  62. package/dist/entity/Metadata.d.ts.map +1 -1
  63. package/dist/entity/Metadata.es.js +1 -1
  64. package/dist/events/EventManager.cjs.js +1 -1
  65. package/dist/events/EventManager.d.ts.map +1 -1
  66. package/dist/events/EventManager.es.js +1 -1
  67. package/dist/form/Form.cjs.js +2 -2
  68. package/dist/form/Form.d.ts +1 -1
  69. package/dist/form/Form.d.ts.map +1 -1
  70. package/dist/form/Form.es.js +2 -2
  71. package/dist/form/FormManager.cjs.js +1 -1
  72. package/dist/form/FormManager.d.ts.map +1 -1
  73. package/dist/form/FormManager.es.js +1 -1
  74. package/dist/form/IForm.d.ts.map +1 -1
  75. package/dist/form/ModalForm.cjs.js +1 -1
  76. package/dist/form/ModalForm.d.ts.map +1 -1
  77. package/dist/form/ModalForm.es.js +1 -1
  78. package/dist/{index-D7ZMTxc2.cjs → index-CVGv9HUF.cjs} +2 -2
  79. package/dist/{index-B3UWpR-P.js → index-O6jPg9jt.js} +2 -2
  80. package/dist/index.cjs.js +3 -3
  81. package/dist/index.es.js +3 -3
  82. package/dist/inventory/HumanInventory.cjs.js +1 -1
  83. package/dist/inventory/HumanInventory.d.ts.map +1 -1
  84. package/dist/inventory/HumanInventory.es.js +1 -1
  85. package/dist/inventory/Inventory.cjs.js +1 -1
  86. package/dist/inventory/Inventory.d.ts.map +1 -1
  87. package/dist/inventory/Inventory.es.js +1 -1
  88. package/dist/inventory/WindowManager.cjs.js +1 -1
  89. package/dist/inventory/WindowManager.d.ts.map +1 -1
  90. package/dist/inventory/WindowManager.es.js +1 -1
  91. package/dist/item/Armor.cjs.js +1 -1
  92. package/dist/item/Armor.d.ts +1 -1
  93. package/dist/item/Armor.d.ts.map +1 -1
  94. package/dist/item/Armor.es.js +1 -1
  95. package/dist/item/Item.cjs.js +2 -2
  96. package/dist/item/Item.es.js +2 -2
  97. package/dist/item/ItemManager.cjs.js +2 -2
  98. package/dist/item/ItemManager.d.ts +2 -2
  99. package/dist/item/ItemManager.d.ts.map +1 -1
  100. package/dist/item/ItemManager.es.js +2 -2
  101. package/dist/item/TieredTool.cjs.js +1 -1
  102. package/dist/item/TieredTool.d.ts.map +1 -1
  103. package/dist/item/TieredTool.es.js +1 -1
  104. package/dist/item/Tool.cjs.js +1 -1
  105. package/dist/item/Tool.d.ts +1 -1
  106. package/dist/item/Tool.d.ts.map +1 -1
  107. package/dist/item/Tool.es.js +1 -1
  108. package/dist/network/ClientConnection.cjs.js +1 -1
  109. package/dist/network/ClientConnection.d.ts +1 -1
  110. package/dist/network/ClientConnection.d.ts.map +1 -1
  111. package/dist/network/ClientConnection.es.js +1 -1
  112. package/dist/network/Handlers.cjs.js +1 -1
  113. package/dist/network/Handlers.es.js +1 -1
  114. package/dist/network/MinecraftSession.cjs.js +1 -1
  115. package/dist/network/MinecraftSession.d.ts +1 -1
  116. package/dist/network/MinecraftSession.d.ts.map +1 -1
  117. package/dist/network/MinecraftSession.es.js +1 -1
  118. package/dist/network/NetworkUtil.cjs.js +1 -1
  119. package/dist/network/NetworkUtil.d.ts.map +1 -1
  120. package/dist/network/NetworkUtil.es.js +1 -1
  121. package/dist/network/PacketRegistry.cjs.js +1 -1
  122. package/dist/network/PacketRegistry.d.ts +6 -6
  123. package/dist/network/PacketRegistry.d.ts.map +1 -1
  124. package/dist/network/PacketRegistry.es.js +1 -1
  125. package/dist/network/PlayerSession.cjs.js +1 -1
  126. package/dist/network/PlayerSession.d.ts.map +1 -1
  127. package/dist/network/PlayerSession.es.js +1 -1
  128. package/dist/network/Protocol.cjs.js +1 -1
  129. package/dist/network/Protocol.es.js +1 -1
  130. package/dist/network/handler/LoginHandler.cjs.js +1 -1
  131. package/dist/network/handler/LoginHandler.es.js +1 -1
  132. package/dist/permission/PermissionManager.cjs.js +4 -4
  133. package/dist/permission/PermissionManager.d.ts +1 -1
  134. package/dist/permission/PermissionManager.d.ts.map +1 -1
  135. package/dist/permission/PermissionManager.es.js +4 -4
  136. package/dist/plugin/PluginFile.cjs.js +1 -1
  137. package/dist/plugin/PluginFile.d.ts.map +1 -1
  138. package/dist/plugin/PluginFile.es.js +1 -1
  139. package/dist/plugin/PluginManager.cjs.js +5 -4
  140. package/dist/plugin/PluginManager.d.ts +2 -2
  141. package/dist/plugin/PluginManager.d.ts.map +1 -1
  142. package/dist/plugin/PluginManager.es.js +5 -4
  143. package/dist/query/QueryManager.cjs.js +1 -1
  144. package/dist/query/QueryManager.es.js +1 -1
  145. package/dist/utils/Logger.cjs.js +49 -38
  146. package/dist/utils/Logger.d.ts +4 -1
  147. package/dist/utils/Logger.d.ts.map +1 -1
  148. package/dist/utils/Logger.es.js +49 -38
  149. package/dist/utils/ParseTildeCaretNotation.cjs.js +1 -1
  150. package/dist/utils/ParseTildeCaretNotation.d.ts.map +1 -1
  151. package/dist/utils/ParseTildeCaretNotation.es.js +1 -1
  152. package/dist/utils/Timer.cjs.js +1 -1
  153. package/dist/utils/Timer.d.ts.map +1 -1
  154. package/dist/utils/Timer.es.js +1 -1
  155. package/dist/utils/UUID.cjs.js +2 -2
  156. package/dist/utils/UUID.es.js +2 -2
  157. package/dist/world/BaseGenerator.cjs.js +1 -1
  158. package/dist/world/BaseGenerator.d.ts.map +1 -1
  159. package/dist/world/BaseGenerator.es.js +1 -1
  160. package/dist/world/BlockPosition.cjs.js +1 -1
  161. package/dist/world/BlockPosition.d.ts.map +1 -1
  162. package/dist/world/BlockPosition.es.js +1 -1
  163. package/dist/world/GameruleManager.cjs.js +4 -4
  164. package/dist/world/GameruleManager.d.ts +3 -3
  165. package/dist/world/GameruleManager.d.ts.map +1 -1
  166. package/dist/world/GameruleManager.es.js +4 -4
  167. package/dist/world/Generator.d.ts.map +1 -1
  168. package/dist/world/WorldManager.cjs.js +3 -7
  169. package/dist/world/WorldManager.d.ts +1 -1
  170. package/dist/world/WorldManager.d.ts.map +1 -1
  171. package/dist/world/WorldManager.es.js +3 -7
  172. package/package.json +5 -5
  173. package/dist/Server-AfmPsq74.cjs +0 -1884
  174. package/dist/Server-Dyy9OCM8.js +0 -1862
@@ -36,6 +36,7 @@ class PluginManager {
36
36
  } catch (error) {
37
37
  this.server.getLogger()?.error(`§cFailed to load plugin ${id}: ${error}`, "PluginManager/onEnable");
38
38
  this.server.getLogger()?.error(error, "PluginManager/onEnable");
39
+ return null;
39
40
  }
40
41
  })
41
42
  )).filter((a) => a);
@@ -54,7 +55,7 @@ class PluginManager {
54
55
  /**
55
56
  * Register a new plugin and download the required dependencies.
56
57
  *
57
- * @param id The plugin's path
58
+ * @param id - The plugin's path
58
59
  */
59
60
  async registerPlugin(id) {
60
61
  if (id === ".extracted")
@@ -159,12 +160,12 @@ class PluginManager {
159
160
  /**
160
161
  * Deregister a plugin.
161
162
  *
162
- * @param id The plugin's path
163
+ * @param id - The plugin's path
163
164
  */
164
165
  async deregisterPlugin(id) {
165
166
  const plugin = this.plugins.get(id);
166
167
  try {
167
- await plugin.onDisable?.();
168
+ await plugin.onDisable();
168
169
  } catch (error) {
169
170
  this.server.getLogger()?.warn(
170
171
  `Failed to disable §b${plugin.getName()}@${plugin.getVersion()}§r: ${error}!`,
@@ -182,4 +183,4 @@ class PluginManager {
182
183
  }
183
184
 
184
185
  export { PluginManager as default };
185
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx1Z2luTWFuYWdlci5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbi9QbHVnaW5NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsdWdpbk1hbmFnZXIgYXMgTW9kdWxlTWFuYWdlciB9IGZyb20gJ2xpdmUtcGx1Z2luLW1hbmFnZXInO1xuaW1wb3J0IFBsdWdpbkFwaSBmcm9tICcuL2FwaS9QbHVnaW5BcGknO1xuaW1wb3J0IFBsdWdpbkZpbGUgZnJvbSAnLi9QbHVnaW5GaWxlJztcbmltcG9ydCBTZXJ2ZXIgZnJvbSAnLi4vU2VydmVyJztcbmltcG9ydCBUaW1lciBmcm9tICcuLi91dGlscy9UaW1lcic7XG5pbXBvcnQgY3dkIGZyb20gJy4uL3V0aWxzL2N3ZCc7XG5pbXBvcnQgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHVuemlwcGVyIGZyb20gJ3VuemlwcGVyJztcblxuLyoqXG4gKiBQbHVnaW4gbWFuYWdlci5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsdWdpbk1hbmFnZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmVyOiBTZXJ2ZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5zID0gbmV3IE1hcCgpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHNlcnZlcjogU2VydmVyKSB7XG4gICAgICAgIHRoaXMuc2VydmVyID0gc2VydmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uRW5hYmxlIGhvb2suXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIG9uRW5hYmxlKCkge1xuICAgICAgICAvLyBDcmVhdGUgcGx1Z2luIGZvbGRlclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoY3dkKCkgKyAnL3BsdWdpbnMnKSkge1xuICAgICAgICAgICAgZnMubWtkaXJTeW5jKGN3ZCgpICsgJy9wbHVnaW5zJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWdpc3RlciBQbHVnaW4ocylcbiAgICAgICAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKTtcblxuICAgICAgICBjb25zdCBwbHVnaW5zID0gZnMucmVhZGRpclN5bmMocGF0aC5qb2luKGN3ZCgpLCAncGx1Z2lucycpKTtcbiAgICAgICAgY29uc3QgcmVzID0gKFxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgcGx1Z2lucy5tYXAoYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlZ2lzdGVyUGx1Z2luKGlkKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5lcnJvcihgwqdjRmFpbGVkIHRvIGxvYWQgcGx1Z2luICR7aWR9OiAke2Vycm9yfWAsICdQbHVnaW5NYW5hZ2VyL29uRW5hYmxlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRMb2dnZXIoKT8uZXJyb3IoZXJyb3IsICdQbHVnaW5NYW5hZ2VyL29uRW5hYmxlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApLmZpbHRlcigoYSkgPT4gYSk7XG4gICAgICAgIHRoaXMuc2VydmVyXG4gICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgID8uZGVidWcoYFJlZ2lzdGVyZWQgwqdiJHtyZXMubGVuZ3RofcKnciBwbHVnaW4ocykgKHRvb2sgJHt0aW1lci5zdG9wKCl9IG1zKSFgLCAnUGx1Z2luTWFuYWdlci9vbkVuYWJsZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uRGlzYWJsZSBob29rLlxuICAgICAqL1xuICAgIHB1YmxpYyBhc3luYyBvbkRpc2FibGUoKSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLnBsdWdpbnMua2V5cygpKS5tYXAoYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZXJlZ2lzdGVyUGx1Z2luKGlkKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgYSBuZXcgcGx1Z2luIGFuZCBkb3dubG9hZCB0aGUgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIFRoZSBwbHVnaW4ncyBwYXRoXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyByZWdpc3RlclBsdWdpbihpZDogc3RyaW5nKTogUHJvbWlzZTxQbHVnaW5GaWxlIHwgbnVsbD4ge1xuICAgICAgICBpZiAoaWQgPT09ICcuZXh0cmFjdGVkJykgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKTtcblxuICAgICAgICBsZXQgZGlyID0gcGF0aC5qb2luKGN3ZCgpLCAncGx1Z2lucycsIGlkKTtcbiAgICAgICAgaWYgKCFmcy5sc3RhdFN5bmMoZGlyKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICAvLyBJbnZhbGlkIGZpbGVcbiAgICAgICAgICAgIGlmICghZGlyLmluY2x1ZGVzKCcuanNweicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4oY3dkKCksICcvcGx1Z2lucy8uZXh0cmFjdGVkLycpKSkge1xuICAgICAgICAgICAgICAgIGZzLm1rZGlyU3luYyhwYXRoLmpvaW4oY3dkKCksICcvcGx1Z2lucy8uZXh0cmFjdGVkLycpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGlyID0gcGF0aC5qb2luKGN3ZCgpLCAnL3BsdWdpbnMvLmV4dHJhY3RlZC8nLCBpZCk7XG5cbiAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldExvZ2dlcigpPy5kZWJ1ZyhgRXh0cmFjdGluZyBwbHVnaW4gd2l0aCBpZCDCp2Ike2lkfS4uLmAsICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJyk7XG4gICAgICAgICAgICBhd2FpdCBmc1xuICAgICAgICAgICAgICAgIC5jcmVhdGVSZWFkU3RyZWFtKHBhdGguam9pbihjd2QoKSwgJ3BsdWdpbnMvJywgaWQpKVxuICAgICAgICAgICAgICAgIC5waXBlKHVuemlwcGVyLkV4dHJhY3QoeyBwYXRoOiBkaXIgfSkpXG4gICAgICAgICAgICAgICAgLnByb21pc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFzc2V0IG9yIGNvbmZpZyBmb2xkZXJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHBhdGguam9pbihkaXIsICdwYWNrYWdlLmpzb24nKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkaXIuZW5kc1dpdGgoJy5qc3B6JykpXG4gICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAgID8ud2FybihcbiAgICAgICAgICAgICAgICAgICAgYCR7aWR9IGlzbid0IHBhY2thZ2VkIGFzIC5qc3B6IGFuZCBzaG91bGQgTk9UIGJlIHVzZWQgb24gcHJvZHVjdGlvbiBzZXJ2ZXJzIWAsXG4gICAgICAgICAgICAgICAgICAgIGBQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luLyR7aWR9YFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgcGFja2FnZVBsdWdpbkZpbGUgPSBhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShwYXRoLmpvaW4oZGlyLCAncGFja2FnZS5qc29uJykpO1xuICAgICAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKHBhY2thZ2VQbHVnaW5GaWxlLnRvU3RyaW5nKCkpO1xuICAgICAgICBpZiAoIXBrZykgdGhyb3cgbmV3IEVycm9yKGBwYWNrYWdlLmpzb24gaXMgbWlzc2luZyFgKTtcblxuICAgICAgICBpZiAoIXBrZy5uYW1lIHx8ICFwa2cucHJpc21hcmluZSkgdGhyb3cgbmV3IEVycm9yKGBwYWNrYWdlLmpzb24gaXMgaW52YWxpZCFgKTtcblxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aC5qb2luKGN3ZCgpLCAnL3BsdWdpbnMvJywgcGtnLm5hbWUpKSkge1xuICAgICAgICAgICAgZnMubWtkaXJTeW5jKHBhdGguam9pbihjd2QoKSwgJy9wbHVnaW5zLycsIHBrZy5uYW1lKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGtnLmRlcGVuZGVuY2llcylcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHBrZy5kZXBlbmRlbmNpZXMpLm1hcChhc3luYyAoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2R1bGVNYW5hZ2VyID0gbmV3IE1vZHVsZU1hbmFnZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY3dkOiBkaXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5zUGF0aDogcGF0aC5qb2luKGRpciwgJ25vZGVfbW9kdWxlcycpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgoW10gYXMgYW55KS5pbmNsdWRlcyhkZXBlbmRlbmN5WzBdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBwbHVnaW4gwqdiJHtwa2cubmFtZX0gJHtwa2cudmVyc2lvbn3Cp3IgaXMgdHJ5aW5nIHRvIGRlcGVuZCBvbiDCpzUke2RlcGVuZGVuY3lbMF19wqdyIHdoaWNoIHNob3VsZCBiZSBhIGRldi1kZXBlbmRlbmN5IWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbW9kdWxlTWFuYWdlci5pbnN0YWxsRnJvbU5wbShkZXBlbmRlbmN5WzBdLCBkZXBlbmRlbmN5WzFdIGFzIHN0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZGVidWcoYG1vZHVsZU1hbmFnZXIgZmFpbGVkIHdpdGg6ICR7ZXJyb3J9YCwgJ1BsdWdpbk1hbmFnZXIvcmVnaXN0ZXJQbHVnaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldExvZ2dlcigpPy5lcnJvcihlcnJvciwgJ1BsdWdpbk1hbmFnZXIvcmVnaXN0ZXJQbHVnaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGluc3RhbGwgJHtkZXBlbmRlbmN5WzBdfWAsIHsgY2F1c2U6IGVycm9yIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBQbHVnaW5GaWxlKHRoaXMuc2VydmVyLCBkaXIsIG5ldyBQbHVnaW5BcGkodGhpcy5zZXJ2ZXIsIHBrZykpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBwbHVnaW4ub25FbmFibGUoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmVyXG4gICAgICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICAgICAgPy53YXJuKFxuICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIGVuYWJsZSDCp2Ike3BsdWdpbi5nZXROYW1lKCl9QCR7cGx1Z2luLmdldFZlcnNpb24oKX3Cp3I6ICR7ZXJyb3J9IWAsXG4gICAgICAgICAgICAgICAgICAgICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRMb2dnZXIoKT8uZGVidWcoKGVycm9yIGFzIGFueSkuc3RhY2ssICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJyk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGx1Z2lucy5zZXQocGtnLm5hbWUsIHBsdWdpbik7XG5cbiAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgPy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICBgUGx1Z2luIHdpdGggaWQgwqdiJHtwbHVnaW4uZ2V0TmFtZSgpfUAke3BsdWdpbi5nZXRWZXJzaW9uKCl9wqdyIHJlZ2lzdGVyZWRgLFxuICAgICAgICAgICAgICAgICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgPy5pbmZvKFxuICAgICAgICAgICAgICAgIGBQbHVnaW4gwqdiJHtwbHVnaW4uZ2V0RGlzcGxheU5hbWUoKX0gJHtwbHVnaW4uZ2V0VmVyc2lvbigpfcKnciBsb2FkZWQgc3VjY2Vzc2Z1bGx5ICh0b29rICR7dGltZXIuc3RvcCgpfSBtcykhYCxcbiAgICAgICAgICAgICAgICAnUGx1Z2luTWFuYWdlci9yZWdpc3RlclBsdWdpbidcbiAgICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBwbHVnaW47XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyQ2xhc3NQbHVnaW4ocGtnOiBhbnksIHBsdWdpbjogUGx1Z2luRmlsZSk6IFByb21pc2U8UGx1Z2luRmlsZSB8IG51bGw+IHtcbiAgICAgICAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgcGx1Z2luLm9uRW5hYmxlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAgID8ud2FybihcbiAgICAgICAgICAgICAgICAgICAgYEZhaWxlZCB0byBlbmFibGUgwqdiJHtwbHVnaW4uZ2V0TmFtZSgpfUAke3BsdWdpbi5nZXRWZXJzaW9uKCl9wqdyOiAke2Vycm9yfSFgLFxuICAgICAgICAgICAgICAgICAgICAnUGx1Z2luTWFuYWdlci9yZWdpc3RlclBsdWdpbidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBsdWdpbnMuc2V0KHBrZy5uYW1lLCBwbHVnaW4pO1xuXG4gICAgICAgIHRoaXMuc2VydmVyXG4gICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgID8uZGVidWcoXG4gICAgICAgICAgICAgICAgYFBsdWdpbiB3aXRoIGlkIMKnYiR7cGx1Z2luLmdldE5hbWUoKX1AJHtwbHVnaW4uZ2V0VmVyc2lvbigpfcKnciByZWdpc3RlcmVkYCxcbiAgICAgICAgICAgICAgICAnUGx1Z2luTWFuYWdlci9yZWdpc3RlclBsdWdpbidcbiAgICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuc2VydmVyXG4gICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgID8uaW5mbyhcbiAgICAgICAgICAgICAgICBgUGx1Z2luIMKnYiR7cGx1Z2luLmdldERpc3BsYXlOYW1lKCl9ICR7cGx1Z2luLmdldFZlcnNpb24oKX3Cp3IgbG9hZGVkIHN1Y2Nlc3NmdWxseSAodG9vayAke3RpbWVyLnN0b3AoKX0gbXMpIWAsXG4gICAgICAgICAgICAgICAgJ1BsdWdpbk1hbmFnZXIvcmVnaXN0ZXJQbHVnaW4nXG4gICAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gcGx1Z2luO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlcmVnaXN0ZXIgYSBwbHVnaW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgVGhlIHBsdWdpbidzIHBhdGhcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIGRlcmVnaXN0ZXJQbHVnaW4oaWQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwbHVnaW46IFBsdWdpbkZpbGUgPSB0aGlzLnBsdWdpbnMuZ2V0KGlkKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHBsdWdpbi5vbkRpc2FibGU/LigpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgICAgICA/Lndhcm4oXG4gICAgICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gZGlzYWJsZSDCp2Ike3BsdWdpbi5nZXROYW1lKCl9QCR7cGx1Z2luLmdldFZlcnNpb24oKX3Cp3I6ICR7ZXJyb3J9IWAsXG4gICAgICAgICAgICAgICAgICAgICdQbHVnaW5NYW5hZ2VyL2RlcmVnaXN0ZXJQbHVnaW4nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGx1Z2lucy5kZWxldGUoaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBlbmFibGVkIHBsdWdpbnMuXG4gICAgICovXG4gICAgcHVibGljIGdldFBsdWdpbnMoKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucGx1Z2lucy52YWx1ZXMoKSk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIk1vZHVsZU1hbmFnZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlQSxNQUFxQixhQUFjLENBQUE7QUFBQSxFQUNkLE1BQUEsQ0FBQTtBQUFBLEVBQ0EsT0FBQSx1QkFBYyxHQUFJLEVBQUEsQ0FBQTtBQUFBLEVBRTVCLFlBQVksTUFBZ0IsRUFBQTtBQUMvQixJQUFBLElBQUEsQ0FBSyxNQUFTLEdBQUEsTUFBQSxDQUFBO0FBQUEsR0FDbEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQWEsUUFBVyxHQUFBO0FBRXBCLElBQUEsSUFBSSxDQUFDLEVBQUcsQ0FBQSxVQUFBLENBQVcsR0FBSSxFQUFBLEdBQUksVUFBVSxDQUFHLEVBQUE7QUFDcEMsTUFBRyxFQUFBLENBQUEsU0FBQSxDQUFVLEdBQUksRUFBQSxHQUFJLFVBQVUsQ0FBQSxDQUFBO0FBQUEsS0FDbkM7QUFHQSxJQUFNLE1BQUEsS0FBQSxHQUFRLElBQUksS0FBTSxFQUFBLENBQUE7QUFFeEIsSUFBTSxNQUFBLE9BQUEsR0FBVSxHQUFHLFdBQVksQ0FBQSxJQUFBLENBQUssS0FBSyxHQUFJLEVBQUEsRUFBRyxTQUFTLENBQUMsQ0FBQSxDQUFBO0FBQzFELElBQU0sTUFB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
186
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx1Z2luTWFuYWdlci5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbi9QbHVnaW5NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsdWdpbk1hbmFnZXIgYXMgTW9kdWxlTWFuYWdlciB9IGZyb20gJ2xpdmUtcGx1Z2luLW1hbmFnZXInO1xuaW1wb3J0IFBsdWdpbkFwaSBmcm9tICcuL2FwaS9QbHVnaW5BcGknO1xuaW1wb3J0IFBsdWdpbkZpbGUgZnJvbSAnLi9QbHVnaW5GaWxlJztcbmltcG9ydCB0eXBlIFNlcnZlciBmcm9tICcuLi9TZXJ2ZXInO1xuaW1wb3J0IFRpbWVyIGZyb20gJy4uL3V0aWxzL1RpbWVyJztcbmltcG9ydCBjd2QgZnJvbSAnLi4vdXRpbHMvY3dkJztcbmltcG9ydCBmcyBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgdW56aXBwZXIgZnJvbSAndW56aXBwZXInO1xuXG4vKipcbiAqIFBsdWdpbiBtYW5hZ2VyLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGx1Z2luTWFuYWdlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2ZXI6IFNlcnZlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbnMgPSBuZXcgTWFwKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2VydmVyOiBTZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5zZXJ2ZXIgPSBzZXJ2ZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT25FbmFibGUgaG9vay5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgb25FbmFibGUoKSB7XG4gICAgICAgIC8vIENyZWF0ZSBwbHVnaW4gZm9sZGVyXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhjd2QoKSArICcvcGx1Z2lucycpKSB7XG4gICAgICAgICAgICBmcy5ta2RpclN5bmMoY3dkKCkgKyAnL3BsdWdpbnMnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlZ2lzdGVyIFBsdWdpbihzKVxuICAgICAgICBjb25zdCB0aW1lciA9IG5ldyBUaW1lcigpO1xuXG4gICAgICAgIGNvbnN0IHBsdWdpbnMgPSBmcy5yZWFkZGlyU3luYyhwYXRoLmpvaW4oY3dkKCksICdwbHVnaW5zJykpO1xuICAgICAgICBjb25zdCByZXMgPSAoXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgICBwbHVnaW5zLm1hcChhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVnaXN0ZXJQbHVnaW4oaWQpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmVycm9yKGDCp2NGYWlsZWQgdG8gbG9hZCBwbHVnaW4gJHtpZH06ICR7ZXJyb3J9YCwgJ1BsdWdpbk1hbmFnZXIvb25FbmFibGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldExvZ2dlcigpPy5lcnJvcihlcnJvciwgJ1BsdWdpbk1hbmFnZXIvb25FbmFibGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKS5maWx0ZXIoKGEpID0+IGEpO1xuICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICA/LmRlYnVnKGBSZWdpc3RlcmVkIMKnYiR7cmVzLmxlbmd0aH3Cp3IgcGx1Z2luKHMpICh0b29rICR7dGltZXIuc3RvcCgpfSBtcykhYCwgJ1BsdWdpbk1hbmFnZXIvb25FbmFibGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbkRpc2FibGUgaG9vay5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgb25EaXNhYmxlKCkge1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIEFycmF5LmZyb20odGhpcy5wbHVnaW5zLmtleXMoKSkubWFwKGFzeW5jIChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVyZWdpc3RlclBsdWdpbihpZCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIGEgbmV3IHBsdWdpbiBhbmQgZG93bmxvYWQgdGhlIHJlcXVpcmVkIGRlcGVuZGVuY2llcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCAtIFRoZSBwbHVnaW4ncyBwYXRoXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyByZWdpc3RlclBsdWdpbihpZDogc3RyaW5nKTogUHJvbWlzZTxQbHVnaW5GaWxlIHwgbnVsbD4ge1xuICAgICAgICBpZiAoaWQgPT09ICcuZXh0cmFjdGVkJykgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKTtcblxuICAgICAgICBsZXQgZGlyID0gcGF0aC5qb2luKGN3ZCgpLCAncGx1Z2lucycsIGlkKTtcbiAgICAgICAgaWYgKCFmcy5sc3RhdFN5bmMoZGlyKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICAvLyBJbnZhbGlkIGZpbGVcbiAgICAgICAgICAgIGlmICghZGlyLmluY2x1ZGVzKCcuanNweicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4oY3dkKCksICcvcGx1Z2lucy8uZXh0cmFjdGVkLycpKSkge1xuICAgICAgICAgICAgICAgIGZzLm1rZGlyU3luYyhwYXRoLmpvaW4oY3dkKCksICcvcGx1Z2lucy8uZXh0cmFjdGVkLycpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGlyID0gcGF0aC5qb2luKGN3ZCgpLCAnL3BsdWdpbnMvLmV4dHJhY3RlZC8nLCBpZCk7XG5cbiAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldExvZ2dlcigpPy5kZWJ1ZyhgRXh0cmFjdGluZyBwbHVnaW4gd2l0aCBpZCDCp2Ike2lkfS4uLmAsICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJyk7XG4gICAgICAgICAgICBhd2FpdCBmc1xuICAgICAgICAgICAgICAgIC5jcmVhdGVSZWFkU3RyZWFtKHBhdGguam9pbihjd2QoKSwgJ3BsdWdpbnMvJywgaWQpKVxuICAgICAgICAgICAgICAgIC5waXBlKHVuemlwcGVyLkV4dHJhY3QoeyBwYXRoOiBkaXIgfSkpXG4gICAgICAgICAgICAgICAgLnByb21pc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFzc2V0IG9yIGNvbmZpZyBmb2xkZXJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHBhdGguam9pbihkaXIsICdwYWNrYWdlLmpzb24nKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkaXIuZW5kc1dpdGgoJy5qc3B6JykpXG4gICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAgID8ud2FybihcbiAgICAgICAgICAgICAgICAgICAgYCR7aWR9IGlzbid0IHBhY2thZ2VkIGFzIC5qc3B6IGFuZCBzaG91bGQgTk9UIGJlIHVzZWQgb24gcHJvZHVjdGlvbiBzZXJ2ZXJzIWAsXG4gICAgICAgICAgICAgICAgICAgIGBQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luLyR7aWR9YFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgcGFja2FnZVBsdWdpbkZpbGUgPSBhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShwYXRoLmpvaW4oZGlyLCAncGFja2FnZS5qc29uJykpO1xuICAgICAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKHBhY2thZ2VQbHVnaW5GaWxlLnRvU3RyaW5nKCkpO1xuICAgICAgICBpZiAoIXBrZykgdGhyb3cgbmV3IEVycm9yKGBwYWNrYWdlLmpzb24gaXMgbWlzc2luZyFgKTtcblxuICAgICAgICBpZiAoIXBrZy5uYW1lIHx8ICFwa2cucHJpc21hcmluZSkgdGhyb3cgbmV3IEVycm9yKGBwYWNrYWdlLmpzb24gaXMgaW52YWxpZCFgKTtcblxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aC5qb2luKGN3ZCgpLCAnL3BsdWdpbnMvJywgcGtnLm5hbWUpKSkge1xuICAgICAgICAgICAgZnMubWtkaXJTeW5jKHBhdGguam9pbihjd2QoKSwgJy9wbHVnaW5zLycsIHBrZy5uYW1lKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGtnLmRlcGVuZGVuY2llcylcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHBrZy5kZXBlbmRlbmNpZXMpLm1hcChhc3luYyAoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2R1bGVNYW5hZ2VyID0gbmV3IE1vZHVsZU1hbmFnZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY3dkOiBkaXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5zUGF0aDogcGF0aC5qb2luKGRpciwgJ25vZGVfbW9kdWxlcycpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgoW10gYXMgYW55KS5pbmNsdWRlcyhkZXBlbmRlbmN5WzBdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBwbHVnaW4gwqdiJHtwa2cubmFtZX0gJHtwa2cudmVyc2lvbn3Cp3IgaXMgdHJ5aW5nIHRvIGRlcGVuZCBvbiDCpzUke2RlcGVuZGVuY3lbMF19wqdyIHdoaWNoIHNob3VsZCBiZSBhIGRldi1kZXBlbmRlbmN5IWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbW9kdWxlTWFuYWdlci5pbnN0YWxsRnJvbU5wbShkZXBlbmRlbmN5WzBdLCBkZXBlbmRlbmN5WzFdIGFzIHN0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZGVidWcoYG1vZHVsZU1hbmFnZXIgZmFpbGVkIHdpdGg6ICR7ZXJyb3J9YCwgJ1BsdWdpbk1hbmFnZXIvcmVnaXN0ZXJQbHVnaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldExvZ2dlcigpPy5lcnJvcihlcnJvciwgJ1BsdWdpbk1hbmFnZXIvcmVnaXN0ZXJQbHVnaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGluc3RhbGwgJHtkZXBlbmRlbmN5WzBdfWAsIHsgY2F1c2U6IGVycm9yIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBQbHVnaW5GaWxlKHRoaXMuc2VydmVyLCBkaXIsIG5ldyBQbHVnaW5BcGkodGhpcy5zZXJ2ZXIsIHBrZykpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBwbHVnaW4ub25FbmFibGUoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmVyXG4gICAgICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICAgICAgPy53YXJuKFxuICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIGVuYWJsZSDCp2Ike3BsdWdpbi5nZXROYW1lKCl9QCR7cGx1Z2luLmdldFZlcnNpb24oKX3Cp3I6ICR7ZXJyb3J9IWAsXG4gICAgICAgICAgICAgICAgICAgICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRMb2dnZXIoKT8uZGVidWcoKGVycm9yIGFzIGFueSkuc3RhY2ssICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJyk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGx1Z2lucy5zZXQocGtnLm5hbWUsIHBsdWdpbik7XG5cbiAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgPy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICBgUGx1Z2luIHdpdGggaWQgwqdiJHtwbHVnaW4uZ2V0TmFtZSgpfUAke3BsdWdpbi5nZXRWZXJzaW9uKCl9wqdyIHJlZ2lzdGVyZWRgLFxuICAgICAgICAgICAgICAgICdQbHVnaW5NYW5hZ2VyL3JlZ2lzdGVyUGx1Z2luJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgPy5pbmZvKFxuICAgICAgICAgICAgICAgIGBQbHVnaW4gwqdiJHtwbHVnaW4uZ2V0RGlzcGxheU5hbWUoKX0gJHtwbHVnaW4uZ2V0VmVyc2lvbigpfcKnciBsb2FkZWQgc3VjY2Vzc2Z1bGx5ICh0b29rICR7dGltZXIuc3RvcCgpfSBtcykhYCxcbiAgICAgICAgICAgICAgICAnUGx1Z2luTWFuYWdlci9yZWdpc3RlclBsdWdpbidcbiAgICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBwbHVnaW47XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyQ2xhc3NQbHVnaW4ocGtnOiBhbnksIHBsdWdpbjogUGx1Z2luRmlsZSk6IFByb21pc2U8UGx1Z2luRmlsZSB8IG51bGw+IHtcbiAgICAgICAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgcGx1Z2luLm9uRW5hYmxlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAgID8ud2FybihcbiAgICAgICAgICAgICAgICAgICAgYEZhaWxlZCB0byBlbmFibGUgwqdiJHtwbHVnaW4uZ2V0TmFtZSgpfUAke3BsdWdpbi5nZXRWZXJzaW9uKCl9wqdyOiAke2Vycm9yfSFgLFxuICAgICAgICAgICAgICAgICAgICAnUGx1Z2luTWFuYWdlci9yZWdpc3RlclBsdWdpbidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBsdWdpbnMuc2V0KHBrZy5uYW1lLCBwbHVnaW4pO1xuXG4gICAgICAgIHRoaXMuc2VydmVyXG4gICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgID8uZGVidWcoXG4gICAgICAgICAgICAgICAgYFBsdWdpbiB3aXRoIGlkIMKnYiR7cGx1Z2luLmdldE5hbWUoKX1AJHtwbHVnaW4uZ2V0VmVyc2lvbigpfcKnciByZWdpc3RlcmVkYCxcbiAgICAgICAgICAgICAgICAnUGx1Z2luTWFuYWdlci9yZWdpc3RlclBsdWdpbidcbiAgICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuc2VydmVyXG4gICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgID8uaW5mbyhcbiAgICAgICAgICAgICAgICBgUGx1Z2luIMKnYiR7cGx1Z2luLmdldERpc3BsYXlOYW1lKCl9ICR7cGx1Z2luLmdldFZlcnNpb24oKX3Cp3IgbG9hZGVkIHN1Y2Nlc3NmdWxseSAodG9vayAke3RpbWVyLnN0b3AoKX0gbXMpIWAsXG4gICAgICAgICAgICAgICAgJ1BsdWdpbk1hbmFnZXIvcmVnaXN0ZXJQbHVnaW4nXG4gICAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gcGx1Z2luO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlcmVnaXN0ZXIgYSBwbHVnaW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgLSBUaGUgcGx1Z2luJ3MgcGF0aFxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgZGVyZWdpc3RlclBsdWdpbihpZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHBsdWdpbjogUGx1Z2luRmlsZSA9IHRoaXMucGx1Z2lucy5nZXQoaWQpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgcGx1Z2luLm9uRGlzYWJsZSgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgICAgICA/Lndhcm4oXG4gICAgICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gZGlzYWJsZSDCp2Ike3BsdWdpbi5nZXROYW1lKCl9QCR7cGx1Z2luLmdldFZlcnNpb24oKX3Cp3I6ICR7ZXJyb3J9IWAsXG4gICAgICAgICAgICAgICAgICAgICdQbHVnaW5NYW5hZ2VyL2RlcmVnaXN0ZXJQbHVnaW4nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGx1Z2lucy5kZWxldGUoaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBlbmFibGVkIHBsdWdpbnMuXG4gICAgICovXG4gICAgcHVibGljIGdldFBsdWdpbnMoKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucGx1Z2lucy52YWx1ZXMoKSk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIk1vZHVsZU1hbmFnZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlQSxNQUFxQixhQUFjLENBQUE7QUFBQSxFQUNkLE1BQUEsQ0FBQTtBQUFBLEVBQ0EsT0FBQSx1QkFBYyxHQUFJLEVBQUEsQ0FBQTtBQUFBLEVBRTVCLFlBQVksTUFBZ0IsRUFBQTtBQUMvQixJQUFBLElBQUEsQ0FBSyxNQUFTLEdBQUEsTUFBQSxDQUFBO0FBQUEsR0FDbEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQWEsUUFBVyxHQUFBO0FBRXBCLElBQUEsSUFBSSxDQUFDLEVBQUcsQ0FBQSxVQUFBLENBQVcsR0FBSSxFQUFBLEdBQUksVUFBVSxDQUFHLEVBQUE7QUFDcEMsTUFBRyxFQUFBLENBQUEsU0FBQSxDQUFVLEdBQUksRUFBQSxHQUFJLFVBQVUsQ0FBQSxDQUFBO0FBQUEsS0FDbkM7QUFHQSxJQUFNLE1BQUEsS0FBQSxHQUFRLElBQUksS0FBTSxFQUFBLENBQUE7QUFFeEIsSUFBTSxNQUFBLE9BQUEsR0FBVSxHQUFHLFdBQVksQ0FBQSxJQUFBLENBQUssS0FBSyxHQUFJ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
@@ -120,4 +120,4 @@ class QueryManager {
120
120
 
121
121
  exports.QueryType = QueryType;
122
122
  exports.default = QueryManager;
123
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlNYW5hZ2VyLmNqcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5L1F1ZXJ5TWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmluYXJ5U3RyZWFtIGZyb20gJ0Bqc3ByaXNtYXJpbmUvanNiaW5hcnl1dGlscyc7XG5pbXBvcnQgdHlwZSB7IEluZXRBZGRyZXNzIH0gZnJvbSAnQGpzcHJpc21hcmluZS9yYWtuZXQnO1xuaW1wb3J0IHR5cGUgUGx1Z2luRmlsZSBmcm9tICcuLi9wbHVnaW4vUGx1Z2luRmlsZSc7XG5pbXBvcnQgdHlwZSBTZXJ2ZXIgZnJvbSAnLi4vU2VydmVyJztcblxuZXhwb3J0IGVudW0gUXVlcnlUeXBlIHtcbiAgICBIYW5kc2hha2UgPSAwLFxuICAgIFN0YXRzID0gOVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBRdWVyeU1hbmFnZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmVyOiBTZXJ2ZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2VydmVyOiBTZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5zZXJ2ZXIgPSBzZXJ2ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG9uUmF3KGJ1ZmZlcjogQnVmZmVyLCByaW5mbzogSW5ldEFkZHJlc3MpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IEJpbmFyeVN0cmVhbShidWZmZXIpO1xuICAgICAgICAgICAgY29uc3QgbWFnaWMgPSBzdHJlYW0ucmVhZFVuc2lnbmVkU2hvcnQoKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGU6IFF1ZXJ5VHlwZSA9IHN0cmVhbS5yZWFkQnl0ZSgpO1xuICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gc3RyZWFtLnJlYWRJbnQoKSAmIDB4MGYwZjBmMGY7XG5cbiAgICAgICAgICAgIGlmIChtYWdpYyAhPT0gNjUyNzcpIHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdJbnZhbGlkIG1hZ2ljJykpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBRdWVyeVR5cGUuSGFuZHNoYWtlOiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhhbmRzaGFrZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBuZXcgQmluYXJ5U3RyZWFtKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoOSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUludChzZXNzaW9uSWQpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGUoQnVmZmVyLmZyb20oYDk1MTMzMDdcXDBgLCAnYmluYXJ5JykpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRSYWtuZXQoKS5zZW5kQnVmZmVyKHJlcy5nZXRCdWZmZXIoKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzczogcmluZm8uZ2V0QWRkcmVzcygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9ydDogcmluZm8uZ2V0UG9ydCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5OiAnSVB2NCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAwXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlcy5nZXRCdWZmZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjYXNlIFF1ZXJ5VHlwZS5TdGF0czoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBuZXcgQmluYXJ5U3RyZWFtKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhZGRpbmdcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMTUpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExMik7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTA4KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMDUpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExNik7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTEwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMTcpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDEwOSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTI4KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gRW5kIHBhZGRpbmdcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwbHVnaW5zID0gdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQbHVnaW5NYW5hZ2VyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQbHVnaW5zKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHBsdWdpbjogUGx1Z2luRmlsZSkgPT4gYCR7cGx1Z2luLmdldERpc3BsYXlOYW1lKCl9ICR7cGx1Z2luLmdldFZlcnNpb24oKX1gKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFxcMCR7W1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaG9zdG5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnNlcnZlci5nZXRSYWtuZXQoKS5nZXROYW1lKCkuZ2V0TW90ZCgpLCBUT0RPXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnYW1ldHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTTVAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2FtZV9pZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNSU5FQ1JBRlRQRScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJzaW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5zZXJ2ZXIuZ2V0UmFrbmV0KCkuZ2V0TmFtZSgpLmdldFZlcnNpb24oKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsdWdpbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSlNQcmlzbWFyaW5lIG9uIFByaXNtYXJpbmUgJHt0aGlzLnNlcnZlci5nZXRDb25maWcoKS5nZXRWZXJzaW9uKCl9JHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbHVnaW5zLmxlbmd0aCAmJiAnOiAnKSB8fCAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9JHtwbHVnaW5zLmpvaW4oJzsgJyl9YCwgLy8gVE9ET1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXIuZ2V0V29ybGRNYW5hZ2VyKCkuZ2V0RGVmYXVsdFdvcmxkKCkuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVtcGxheWVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VydmVyLmdldFJha25ldCgpLmdldE5hbWUoKS5nZXRPbmxpbmVQbGF5ZXJDb3VudCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4cGxheWVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VydmVyLmdldFJha25ldCgpLmdldE5hbWUoKS5nZXRNYXhQbGF5ZXJDb3VudCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaG9zdHBvcnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRDb25maWcoKS5nZXRTZXJ2ZXJQb3J0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdob3N0aXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRDb25maWcoKS5nZXRTZXJ2ZXJJcCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5qb2luKCdcXDAnKX1cXDBcXDBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiaW5hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gUGFkZGluZ1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDEpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExMik7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTA4KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSg5Nyk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTIxKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMDEpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExNCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoOTUpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDApO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDApO1xuICAgICAgICAgICAgICAgICAgICAvLyBFbmQgcGFkZGluZ1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuc2VydmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRTZXNzaW9uTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRBbGxQbGF5ZXJzKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgocGxheWVyKSA9PiBgJHtwbGF5ZXIuZ2V0TmFtZSgpfVxcMGApfVxcMGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbmFyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXIuZ2V0UmFrbmV0KCkuc2VuZEJ1ZmZlcihyZXMuZ2V0QnVmZmVyKCksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHJpbmZvLmdldEFkZHJlc3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ6IHJpbmZvLmdldFBvcnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbWlseTogJ0lQdjQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlcy5nZXRCdWZmZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFF1ZXJ5VHlwZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiUXVlcnlUeXBlIiwiQmluYXJ5U3RyZWFtIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBS1ksSUFBQSxTQUFBLHFCQUFBQSxVQUFMLEtBQUE7QUFDSCxFQUFBQSxVQUFBQSxDQUFBQSxVQUFBQSxDQUFBLGVBQVksQ0FBWixDQUFBLEdBQUEsV0FBQSxDQUFBO0FBQ0EsRUFBQUEsVUFBQUEsQ0FBQUEsVUFBQUEsQ0FBQSxXQUFRLENBQVIsQ0FBQSxHQUFBLE9BQUEsQ0FBQTtBQUZRLEVBQUFBLE9BQUFBLFVBQUFBLENBQUFBO0FBQUEsQ0FBQSxFQUFBLFNBQUEsSUFBQSxFQUFBLEVBQUE7QUFLWixNQUFxQixZQUFhLENBQUE7QUFBQSxFQUNiLE1BQUEsQ0FBQTtBQUFBLEVBRVYsWUFBWSxNQUFnQixFQUFBO0FBQy9CLElBQUEsSUFBQSxDQUFLLE1BQVMsR0FBQSxNQUFBLENBQUE7QUFBQSxHQUNsQjtBQUFBLEVBRUEsTUFBYSxLQUFNLENBQUEsTUFBQSxFQUFnQixLQUFxQyxFQUFBO0FBQ3BFLElBQUEsT0FBTyxJQUFJLE9BQUEsQ0FBUSxPQUFPLE9BQUEsRUFBUyxNQUFXLEtBQUE7QUFDMUMsTUFBTSxNQUFBLE1BQUEsR0FBUyxJQUFJQyw2QkFBQSxDQUFhLE1BQU0sQ0FBQSxDQUFBO0FBQ3RDLE1BQU0sTUFBQSxLQUFBLEdBQVEsT0FBTyxpQkFBa0IsRUFBQSxDQUFBO0FBQ3ZDLE1BQU0sTUFBQSxJQUFBLEdBQWtCLE9BQU8sUUFBUyxFQUFBLENBQUE7QUFDeEMsTUFBTSxNQUFBLFNBQUEsR0FBWSxNQUFPLENBQUEsT0FBQSxFQUFZLEdBQUEsU0FBQSxD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
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlNYW5hZ2VyLmNqcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5L1F1ZXJ5TWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmluYXJ5U3RyZWFtIGZyb20gJ0Bqc3ByaXNtYXJpbmUvanNiaW5hcnl1dGlscyc7XG5pbXBvcnQgdHlwZSB7IEluZXRBZGRyZXNzIH0gZnJvbSAnQGpzcHJpc21hcmluZS9yYWtuZXQnO1xuaW1wb3J0IHR5cGUgUGx1Z2luRmlsZSBmcm9tICcuLi9wbHVnaW4vUGx1Z2luRmlsZSc7XG5pbXBvcnQgdHlwZSBTZXJ2ZXIgZnJvbSAnLi4vU2VydmVyJztcblxuZXhwb3J0IGVudW0gUXVlcnlUeXBlIHtcbiAgICBIYW5kc2hha2UgPSAwLFxuICAgIFN0YXRzID0gOVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBRdWVyeU1hbmFnZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmVyOiBTZXJ2ZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2VydmVyOiBTZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5zZXJ2ZXIgPSBzZXJ2ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG9uUmF3KGJ1ZmZlcjogQnVmZmVyLCByaW5mbzogSW5ldEFkZHJlc3MpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IEJpbmFyeVN0cmVhbShidWZmZXIpO1xuICAgICAgICAgICAgY29uc3QgbWFnaWMgPSBzdHJlYW0ucmVhZFVuc2lnbmVkU2hvcnQoKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGU6IFF1ZXJ5VHlwZSA9IHN0cmVhbS5yZWFkQnl0ZSgpO1xuICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gc3RyZWFtLnJlYWRJbnQoKSAmIDB4MGYwZjBmMGY7XG5cbiAgICAgICAgICAgIGlmIChtYWdpYyAhPT0gNjUyNzcpIHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdJbnZhbGlkIG1hZ2ljJykpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBRdWVyeVR5cGUuSGFuZHNoYWtlOiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhhbmRzaGFrZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBuZXcgQmluYXJ5U3RyZWFtKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoOSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUludChzZXNzaW9uSWQpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGUoQnVmZmVyLmZyb20oYDk1MTMzMDdcXDBgLCAnYmluYXJ5JykpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRSYWtuZXQoKS5zZW5kQnVmZmVyKHJlcy5nZXRCdWZmZXIoKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzczogcmluZm8uZ2V0QWRkcmVzcygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9ydDogcmluZm8uZ2V0UG9ydCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5OiAnSVB2NCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAwXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlcy5nZXRCdWZmZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjYXNlIFF1ZXJ5VHlwZS5TdGF0czoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBuZXcgQmluYXJ5U3RyZWFtKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhZGRpbmdcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMTUpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExMik7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTA4KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMDUpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExNik7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTEwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMTcpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDEwOSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTI4KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gRW5kIHBhZGRpbmdcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwbHVnaW5zID0gdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQbHVnaW5NYW5hZ2VyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQbHVnaW5zKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHBsdWdpbjogUGx1Z2luRmlsZSkgPT4gYCR7cGx1Z2luLmdldERpc3BsYXlOYW1lKCl9ICR7cGx1Z2luLmdldFZlcnNpb24oKX1gKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFxcMCR7W1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaG9zdG5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnNlcnZlci5nZXRSYWtuZXQoKS5nZXROYW1lKCkuZ2V0TW90ZCgpLCBUT0RPXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnYW1ldHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTTVAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2FtZV9pZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNSU5FQ1JBRlRQRScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJzaW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5zZXJ2ZXIuZ2V0UmFrbmV0KCkuZ2V0TmFtZSgpLmdldFZlcnNpb24oKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsdWdpbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgSlNQcmlzbWFyaW5lIG9uIFByaXNtYXJpbmUgJHt0aGlzLnNlcnZlci5nZXRDb25maWcoKS5nZXRWZXJzaW9uKCl9JHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbHVnaW5zLmxlbmd0aCAmJiAnOiAnKSB8fCAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9JHtwbHVnaW5zLmpvaW4oJzsgJyl9YCwgLy8gVE9ET1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXIuZ2V0V29ybGRNYW5hZ2VyKCkuZ2V0RGVmYXVsdFdvcmxkKCkhLmdldE5hbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bXBsYXllcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnNlcnZlci5nZXRSYWtuZXQoKS5nZXROYW1lKCkuZ2V0T25saW5lUGxheWVyQ291bnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heHBsYXllcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnNlcnZlci5nZXRSYWtuZXQoKS5nZXROYW1lKCkuZ2V0TWF4UGxheWVyQ291bnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hvc3Rwb3J0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXIuZ2V0Q29uZmlnKCkuZ2V0U2VydmVyUG9ydCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaG9zdGlwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXIuZ2V0Q29uZmlnKCkuZ2V0U2VydmVySXAoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0uam9pbignXFwwJyl9XFwwXFwwYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmluYXJ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFBhZGRpbmdcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMTIpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDEwOCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoOTcpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDEyMSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTAxKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMTQpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDk1KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gRW5kIHBhZGRpbmdcblxuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2Vzc2lvbk1hbmFnZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0QWxsUGxheWVycygpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHBsYXllcikgPT4gYCR7cGxheWVyLmdldE5hbWUoKX1cXDBgKX1cXDBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiaW5hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldFJha25ldCgpLnNlbmRCdWZmZXIocmVzLmdldEJ1ZmZlcigpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiByaW5mby5nZXRBZGRyZXNzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3J0OiByaW5mby5nZXRQb3J0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBmYW1pbHk6ICdJUHY0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXMuZ2V0QnVmZmVyKCkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBRdWVyeVR5cGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIlF1ZXJ5VHlwZSIsIkJpbmFyeVN0cmVhbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUtZLElBQUEsU0FBQSxxQkFBQUEsVUFBTCxLQUFBO0FBQ0gsRUFBQUEsVUFBQUEsQ0FBQUEsVUFBQUEsQ0FBQSxlQUFZLENBQVosQ0FBQSxHQUFBLFdBQUEsQ0FBQTtBQUNBLEVBQUFBLFVBQUFBLENBQUFBLFVBQUFBLENBQUEsV0FBUSxDQUFSLENBQUEsR0FBQSxPQUFBLENBQUE7QUFGUSxFQUFBQSxPQUFBQSxVQUFBQSxDQUFBQTtBQUFBLENBQUEsRUFBQSxTQUFBLElBQUEsRUFBQSxFQUFBO0FBS1osTUFBcUIsWUFBYSxDQUFBO0FBQUEsRUFDYixNQUFBLENBQUE7QUFBQSxFQUVWLFlBQVksTUFBZ0IsRUFBQTtBQUMvQixJQUFBLElBQUEsQ0FBSyxNQUFTLEdBQUEsTUFBQSxDQUFBO0FBQUEsR0FDbEI7QUFBQSxFQUVBLE1BQWEsS0FBTSxDQUFBLE1BQUEsRUFBZ0IsS0FBcUMsRUFBQTtBQUNwRSxJQUFBLE9BQU8sSUFBSSxPQUFBLENBQVEsT0FBTyxPQUFBLEVBQVMsTUFBVyxLQUFBO0FBQzFDLE1BQU0sTUFBQSxNQUFBLEdBQVMsSUFBSUMsNkJBQUEsQ0FBYSxNQUFNLENBQUEsQ0FBQTtBQUN0QyxNQUFNLE1BQUEsS0FBQSxHQUFRLE9BQU8saUJBQWtCLEVBQUEsQ0FBQTtBQUN2QyxNQUFNLE1BQUEsSUFBQSxHQUFrQixPQUFPLFFBQVMsRUFBQSxDQUFBO0FBQ3hDLE1BQU0sTUFBQSxTQUFBLEdBQVksTUFBTyxDQUFBLE9BQUEsRUFBWSxHQUFBLFNBQUEs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
@@ -111,4 +111,4 @@ class QueryManager {
111
111
  }
112
112
 
113
113
  export { QueryType, QueryManager as default };
114
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlNYW5hZ2VyLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcnkvUXVlcnlNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaW5hcnlTdHJlYW0gZnJvbSAnQGpzcHJpc21hcmluZS9qc2JpbmFyeXV0aWxzJztcbmltcG9ydCB0eXBlIHsgSW5ldEFkZHJlc3MgfSBmcm9tICdAanNwcmlzbWFyaW5lL3Jha25ldCc7XG5pbXBvcnQgdHlwZSBQbHVnaW5GaWxlIGZyb20gJy4uL3BsdWdpbi9QbHVnaW5GaWxlJztcbmltcG9ydCB0eXBlIFNlcnZlciBmcm9tICcuLi9TZXJ2ZXInO1xuXG5leHBvcnQgZW51bSBRdWVyeVR5cGUge1xuICAgIEhhbmRzaGFrZSA9IDAsXG4gICAgU3RhdHMgPSA5XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFF1ZXJ5TWFuYWdlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2ZXI6IFNlcnZlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihzZXJ2ZXI6IFNlcnZlcikge1xuICAgICAgICB0aGlzLnNlcnZlciA9IHNlcnZlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25SYXcoYnVmZmVyOiBCdWZmZXIsIHJpbmZvOiBJbmV0QWRkcmVzcyk6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdHJlYW0gPSBuZXcgQmluYXJ5U3RyZWFtKGJ1ZmZlcik7XG4gICAgICAgICAgICBjb25zdCBtYWdpYyA9IHN0cmVhbS5yZWFkVW5zaWduZWRTaG9ydCgpO1xuICAgICAgICAgICAgY29uc3QgdHlwZTogUXVlcnlUeXBlID0gc3RyZWFtLnJlYWRCeXRlKCk7XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uSWQgPSBzdHJlYW0ucmVhZEludCgpICYgMHgwZjBmMGYwZjtcblxuICAgICAgICAgICAgaWYgKG1hZ2ljICE9PSA2NTI3Nykge1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0ludmFsaWQgbWFnaWMnKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFF1ZXJ5VHlwZS5IYW5kc2hha2U6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSGFuZHNoYWtlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IG5ldyBCaW5hcnlTdHJlYW0oKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSg5KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlSW50KHNlc3Npb25JZCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZShCdWZmZXIuZnJvbShgOTUxMzMwN1xcMGAsICdiaW5hcnknKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldFJha25ldCgpLnNlbmRCdWZmZXIocmVzLmdldEJ1ZmZlcigpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiByaW5mby5nZXRBZGRyZXNzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3J0OiByaW5mby5nZXRQb3J0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBmYW1pbHk6ICdJUHY0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzLmdldEJ1ZmZlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNhc2UgUXVlcnlUeXBlLlN0YXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IG5ldyBCaW5hcnlTdHJlYW0oKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gUGFkZGluZ1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExNSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTEyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMDgpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDEwNSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTE2KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMTApO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExNyk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTA5KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMjgpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDApO1xuICAgICAgICAgICAgICAgICAgICAvLyBFbmQgcGFkZGluZ1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBsdWdpbnMgPSB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFBsdWdpbk1hbmFnZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFBsdWdpbnMoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgocGx1Z2luOiBQbHVnaW5GaWxlKSA9PiBgJHtwbHVnaW4uZ2V0RGlzcGxheU5hbWUoKX0gJHtwbHVnaW4uZ2V0VmVyc2lvbigpfWApO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgXFwwJHtbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdob3N0bmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VydmVyLmdldFJha25ldCgpLmdldE5hbWUoKS5nZXRNb3RkKCksIFRPRE9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dhbWV0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NNUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnYW1lX2lkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01JTkVDUkFGVFBFJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcnNpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnNlcnZlci5nZXRSYWtuZXQoKS5nZXROYW1lKCkuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGx1Z2lucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBKU1ByaXNtYXJpbmUgb24gUHJpc21hcmluZSAke3RoaXMuc2VydmVyLmdldENvbmZpZygpLmdldFZlcnNpb24oKX0ke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBsdWdpbnMubGVuZ3RoICYmICc6ICcpIHx8ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0ke3BsdWdpbnMuam9pbignOyAnKX1gLCAvLyBUT0RPXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRXb3JsZE1hbmFnZXIoKS5nZXREZWZhdWx0V29ybGQoKS5nZXROYW1lKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudW1wbGF5ZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5zZXJ2ZXIuZ2V0UmFrbmV0KCkuZ2V0TmFtZSgpLmdldE9ubGluZVBsYXllckNvdW50KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhwbGF5ZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5zZXJ2ZXIuZ2V0UmFrbmV0KCkuZ2V0TmFtZSgpLmdldE1heFBsYXllckNvdW50KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdob3N0cG9ydCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldENvbmZpZygpLmdldFNlcnZlclBvcnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hvc3RpcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldENvbmZpZygpLmdldFNlcnZlcklwKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcMCcpfVxcMFxcMGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbmFyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBQYWRkaW5nXG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTEyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMDgpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDk3KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMjEpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDEwMSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTE0KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSg5NSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIEVuZCBwYWRkaW5nXG5cbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldFNlc3Npb25NYW5hZ2VyKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEFsbFBsYXllcnMoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChwbGF5ZXIpID0+IGAke3BsYXllci5nZXROYW1lKCl9XFwwYCl9XFwwYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmluYXJ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRSYWtuZXQoKS5zZW5kQnVmZmVyKHJlcy5nZXRCdWZmZXIoKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzczogcmluZm8uZ2V0QWRkcmVzcygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9ydDogcmluZm8uZ2V0UG9ydCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5OiAnSVB2NCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAwXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzLmdldEJ1ZmZlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUXVlcnlUeXBlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJRdWVyeVR5cGUiXSwibWFwcGluZ3MiOiI7O0FBS1ksSUFBQSxTQUFBLHFCQUFBQSxVQUFMLEtBQUE7QUFDSCxFQUFBQSxVQUFBQSxDQUFBQSxVQUFBQSxDQUFBLGVBQVksQ0FBWixDQUFBLEdBQUEsV0FBQSxDQUFBO0FBQ0EsRUFBQUEsVUFBQUEsQ0FBQUEsVUFBQUEsQ0FBQSxXQUFRLENBQVIsQ0FBQSxHQUFBLE9BQUEsQ0FBQTtBQUZRLEVBQUFBLE9BQUFBLFVBQUFBLENBQUFBO0FBQUEsQ0FBQSxFQUFBLFNBQUEsSUFBQSxFQUFBLEVBQUE7QUFLWixNQUFxQixZQUFhLENBQUE7QUFBQSxFQUNiLE1BQUEsQ0FBQTtBQUFBLEVBRVYsWUFBWSxNQUFnQixFQUFBO0FBQy9CLElBQUEsSUFBQSxDQUFLLE1BQVMsR0FBQSxNQUFBLENBQUE7QUFBQSxHQUNsQjtBQUFBLEVBRUEsTUFBYSxLQUFNLENBQUEsTUFBQSxFQUFnQixLQUFxQyxFQUFBO0FBQ3BFLElBQUEsT0FBTyxJQUFJLE9BQUEsQ0FBUSxPQUFPLE9BQUEsRUFBUyxNQUFXLEtBQUE7QUFDMUMsTUFBTSxNQUFBLE1BQUEsR0FBUyxJQUFJLFlBQUEsQ0FBYSxNQUFNLENBQUEsQ0FBQTtBQUN0QyxNQUFNLE1BQUEsS0FBQSxHQUFRLE9BQU8saUJBQWtCLEVBQUEsQ0FBQTtBQUN2QyxNQUFNLE1BQUEsSUFBQSxHQUFrQixPQUFPLFFBQVMsRUFBQSxDQUFBO0FBQ3hDLE1BQU0sTUFBQSxTQUFBLEdBQVksTUFBTyxDQUFBLE9BQUEsRUFBWSxHQUFBLFNBQUEsQ0FBQTtBQUVyQyxNQUFBLElBQUksVUFBVSxL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
114
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlNYW5hZ2VyLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcnkvUXVlcnlNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaW5hcnlTdHJlYW0gZnJvbSAnQGpzcHJpc21hcmluZS9qc2JpbmFyeXV0aWxzJztcbmltcG9ydCB0eXBlIHsgSW5ldEFkZHJlc3MgfSBmcm9tICdAanNwcmlzbWFyaW5lL3Jha25ldCc7XG5pbXBvcnQgdHlwZSBQbHVnaW5GaWxlIGZyb20gJy4uL3BsdWdpbi9QbHVnaW5GaWxlJztcbmltcG9ydCB0eXBlIFNlcnZlciBmcm9tICcuLi9TZXJ2ZXInO1xuXG5leHBvcnQgZW51bSBRdWVyeVR5cGUge1xuICAgIEhhbmRzaGFrZSA9IDAsXG4gICAgU3RhdHMgPSA5XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFF1ZXJ5TWFuYWdlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2ZXI6IFNlcnZlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihzZXJ2ZXI6IFNlcnZlcikge1xuICAgICAgICB0aGlzLnNlcnZlciA9IHNlcnZlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25SYXcoYnVmZmVyOiBCdWZmZXIsIHJpbmZvOiBJbmV0QWRkcmVzcyk6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdHJlYW0gPSBuZXcgQmluYXJ5U3RyZWFtKGJ1ZmZlcik7XG4gICAgICAgICAgICBjb25zdCBtYWdpYyA9IHN0cmVhbS5yZWFkVW5zaWduZWRTaG9ydCgpO1xuICAgICAgICAgICAgY29uc3QgdHlwZTogUXVlcnlUeXBlID0gc3RyZWFtLnJlYWRCeXRlKCk7XG4gICAgICAgICAgICBjb25zdCBzZXNzaW9uSWQgPSBzdHJlYW0ucmVhZEludCgpICYgMHgwZjBmMGYwZjtcblxuICAgICAgICAgICAgaWYgKG1hZ2ljICE9PSA2NTI3Nykge1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0ludmFsaWQgbWFnaWMnKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFF1ZXJ5VHlwZS5IYW5kc2hha2U6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSGFuZHNoYWtlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IG5ldyBCaW5hcnlTdHJlYW0oKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSg5KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlSW50KHNlc3Npb25JZCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZShCdWZmZXIuZnJvbShgOTUxMzMwN1xcMGAsICdiaW5hcnknKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldFJha25ldCgpLnNlbmRCdWZmZXIocmVzLmdldEJ1ZmZlcigpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzOiByaW5mby5nZXRBZGRyZXNzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3J0OiByaW5mby5nZXRQb3J0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBmYW1pbHk6ICdJUHY0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzLmdldEJ1ZmZlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNhc2UgUXVlcnlUeXBlLlN0YXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IG5ldyBCaW5hcnlTdHJlYW0oKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gUGFkZGluZ1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExNSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTEyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMDgpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDEwNSk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTE2KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMTApO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExNyk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTA5KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMjgpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDApO1xuICAgICAgICAgICAgICAgICAgICAvLyBFbmQgcGFkZGluZ1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBsdWdpbnMgPSB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFBsdWdpbk1hbmFnZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFBsdWdpbnMoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgocGx1Z2luOiBQbHVnaW5GaWxlKSA9PiBgJHtwbHVnaW4uZ2V0RGlzcGxheU5hbWUoKX0gJHtwbHVnaW4uZ2V0VmVyc2lvbigpfWApO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuZnJvbShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgXFwwJHtbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdob3N0bmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VydmVyLmdldFJha25ldCgpLmdldE5hbWUoKS5nZXRNb3RkKCksIFRPRE9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dhbWV0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NNUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnYW1lX2lkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01JTkVDUkFGVFBFJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcnNpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnNlcnZlci5nZXRSYWtuZXQoKS5nZXROYW1lKCkuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGx1Z2lucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBKU1ByaXNtYXJpbmUgb24gUHJpc21hcmluZSAke3RoaXMuc2VydmVyLmdldENvbmZpZygpLmdldFZlcnNpb24oKX0ke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBsdWdpbnMubGVuZ3RoICYmICc6ICcpIHx8ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0ke3BsdWdpbnMuam9pbignOyAnKX1gLCAvLyBUT0RPXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRXb3JsZE1hbmFnZXIoKS5nZXREZWZhdWx0V29ybGQoKSEuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVtcGxheWVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VydmVyLmdldFJha25ldCgpLmdldE5hbWUoKS5nZXRPbmxpbmVQbGF5ZXJDb3VudCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4cGxheWVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuc2VydmVyLmdldFJha25ldCgpLmdldE5hbWUoKS5nZXRNYXhQbGF5ZXJDb3VudCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaG9zdHBvcnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRDb25maWcoKS5nZXRTZXJ2ZXJQb3J0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdob3N0aXAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRDb25maWcoKS5nZXRTZXJ2ZXJJcCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5qb2luKCdcXDAnKX1cXDBcXDBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiaW5hcnknXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gUGFkZGluZ1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDEpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExMik7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTA4KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSg5Nyk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoMTIxKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzLndyaXRlQnl0ZSgxMDEpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDExNCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZUJ5dGUoOTUpO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDApO1xuICAgICAgICAgICAgICAgICAgICByZXMud3JpdGVCeXRlKDApO1xuICAgICAgICAgICAgICAgICAgICAvLyBFbmQgcGFkZGluZ1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcy53cml0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuc2VydmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRTZXNzaW9uTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRBbGxQbGF5ZXJzKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgocGxheWVyKSA9PiBgJHtwbGF5ZXIuZ2V0TmFtZSgpfVxcMGApfVxcMGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JpbmFyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXIuZ2V0UmFrbmV0KCkuc2VuZEJ1ZmZlcihyZXMuZ2V0QnVmZmVyKCksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHJpbmZvLmdldEFkZHJlc3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ6IHJpbmZvLmdldFBvcnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbWlseTogJ0lQdjQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlcy5nZXRCdWZmZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFF1ZXJ5VHlwZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiUXVlcnlUeXBlIl0sIm1hcHBpbmdzIjoiOztBQUtZLElBQUEsU0FBQSxxQkFBQUEsVUFBTCxLQUFBO0FBQ0gsRUFBQUEsVUFBQUEsQ0FBQUEsVUFBQUEsQ0FBQSxlQUFZLENBQVosQ0FBQSxHQUFBLFdBQUEsQ0FBQTtBQUNBLEVBQUFBLFVBQUFBLENBQUFBLFVBQUFBLENBQUEsV0FBUSxDQUFSLENBQUEsR0FBQSxPQUFBLENBQUE7QUFGUSxFQUFBQSxPQUFBQSxVQUFBQSxDQUFBQTtBQUFBLENBQUEsRUFBQSxTQUFBLElBQUEsRUFBQSxFQUFBO0FBS1osTUFBcUIsWUFBYSxDQUFBO0FBQUEsRUFDYixNQUFBLENBQUE7QUFBQSxFQUVWLFlBQVksTUFBZ0IsRUFBQTtBQUMvQixJQUFBLElBQUEsQ0FBSyxNQUFTLEdBQUEsTUFBQSxDQUFBO0FBQUEsR0FDbEI7QUFBQSxFQUVBLE1BQWEsS0FBTSxDQUFBLE1BQUEsRUFBZ0IsS0FBcUMsRUFBQTtBQUNwRSxJQUFBLE9BQU8sSUFBSSxPQUFBLENBQVEsT0FBTyxPQUFBLEVBQVMsTUFBVyxLQUFBO0FBQzFDLE1BQU0sTUFBQSxNQUFBLEdBQVMsSUFBSSxZQUFBLENBQWEsTUFBTSxDQUFBLENBQUE7QUFDdEMsTUFBTSxNQUFBLEtBQUEsR0FBUSxPQUFPLGlCQUFrQixFQUFBLENBQUE7QUFDdkMsTUFBTSxNQUFBLElBQUEsR0FBa0IsT0FBTyxRQUFTLEVBQUEsQ0FBQTtBQUN4QyxNQUFNLE1BQUEsU0FBQSxHQUFZLE1BQU8sQ0FBQSxPQUFBLEVBQVksR0FBQSxTQUFBLENBQUE7QUFFckMsTUFBQSxJQUFJLFVBQVUs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
@@ -24,43 +24,54 @@ class LoggerBuilder {
24
24
  LoggerBuilder.logFile = "jsprismarine-development.log";
25
25
  else if (!LoggerBuilder.logFile)
26
26
  LoggerBuilder.logFile = `jsprismarine.${(date.getMonth() + 1).toString().padStart(2, "0")}${date.getDate().toString().padStart(2, "0")}${date.getFullYear().toString().padStart(2, "0")}-${date.getHours().toString().padStart(2, "0")}${date.getMinutes().toString().padStart(2, "0")}${date.getSeconds().toString().padStart(2, "0")}.log`;
27
- this.logger = winston.createLogger({
28
- transports: [
29
- new winston.transports.Console({
30
- level: global.log_level || "info",
31
- format: combine(
32
- timestamp({ format: "HH:mm:ss" }),
33
- winston.format((info) => {
34
- info.level = info.level.toUpperCase();
35
- return info;
36
- })(),
37
- winston.format.colorize(),
38
- winston.format.simple(),
39
- printf(({ level, message, timestamp: timestamp2, namespace }) => {
40
- return `[${timestamp2} ${level}${colorParser__default.default(
41
- `${namespace && (global.log_level === "silly" || global.log_level === "debug" || global.log_level === "verbose") ? ` ${namespace}]` : "]"}: ${message}`
42
- )}`;
43
- })
44
- )
45
- }),
46
- new winston.transports.File({
47
- level: "debug",
48
- filename: path__default.default.join(utils_cwd.default(), "logs", `${LoggerBuilder.logFile}`),
49
- format: combine(
50
- timestamp({ format: "HH:mm:ss.SS" }),
51
- winston.format.simple(),
52
- printf(({ level, message, timestamp: timestamp2, namespace }) => {
53
- return `[${timestamp2}] [${level}]${colorParser__default.default(
54
- `${namespace ? ` [${namespace}]` : ""}: ${message}`
55
- )}`.replaceAll(
56
- /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,
57
- ""
58
- );
59
- })
60
- )
61
- })
62
- ]
63
- });
27
+ this.createLogger();
28
+ }
29
+ createLogger() {
30
+ if (!this.logger || this.logger.closed) {
31
+ this.logger = winston.createLogger({
32
+ transports: [
33
+ new winston.transports.Console({
34
+ level: global.log_level || "info",
35
+ format: combine(
36
+ timestamp({ format: "HH:mm:ss" }),
37
+ winston.format((info) => {
38
+ info.level = info.level.toUpperCase();
39
+ return info;
40
+ })(),
41
+ winston.format.colorize(),
42
+ winston.format.simple(),
43
+ printf(({ level, message, timestamp: timestamp2, namespace }) => {
44
+ return `[${timestamp2} ${level}${colorParser__default.default(
45
+ `${namespace && (global.log_level === "silly" || global.log_level === "debug" || global.log_level === "verbose") ? ` ${namespace}]` : "]"}: ${message}`
46
+ )}`;
47
+ })
48
+ )
49
+ }),
50
+ new winston.transports.File({
51
+ level: "debug",
52
+ filename: path__default.default.join(utils_cwd.default(), "logs", `${LoggerBuilder.logFile}`),
53
+ format: combine(
54
+ timestamp({ format: "HH:mm:ss.SS" }),
55
+ winston.format.simple(),
56
+ printf(({ level, message, timestamp: timestamp2, namespace }) => {
57
+ return `[${timestamp2}] [${level}]${colorParser__default.default(
58
+ `${namespace ? ` [${namespace}]` : ""}: ${message}`
59
+ )}`.replaceAll(
60
+ /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,
61
+ ""
62
+ );
63
+ })
64
+ )
65
+ })
66
+ ]
67
+ });
68
+ }
69
+ }
70
+ async onEnable() {
71
+ this.createLogger();
72
+ this.logger.level = global.log_level || "info";
73
+ }
74
+ async onDisable() {
64
75
  }
65
76
  getLog() {
66
77
  try {
@@ -136,4 +147,4 @@ class LoggerBuilder {
136
147
  }
137
148
 
138
149
  exports.default = LoggerBuilder;
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmNqcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL0xvZ2dlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnZXIsIGNyZWF0ZUxvZ2dlciwgZm9ybWF0LCB0cmFuc3BvcnRzIH0gZnJvbSAnd2luc3Rvbic7XG5cbmltcG9ydCBjb2xvclBhcnNlciBmcm9tICdAanNwcmlzbWFyaW5lL2NvbG9yLXBhcnNlcic7XG5pbXBvcnQgY3dkIGZyb20gJy4vY3dkJztcbmltcG9ydCBmcyBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5cbmNvbnN0IHsgY29tYmluZSwgdGltZXN0YW1wLCBwcmludGYgfSA9IGZvcm1hdDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9nZ2VyQnVpbGRlciB7XG4gICAgcHVibGljIHN0YXRpYyBsb2dGaWxlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGlmICghTG9nZ2VyQnVpbGRlci5sb2dGaWxlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKVxuICAgICAgICAgICAgTG9nZ2VyQnVpbGRlci5sb2dGaWxlID0gJ2pzcHJpc21hcmluZS1kZXZlbG9wbWVudC5sb2cnO1xuICAgICAgICBlbHNlIGlmICghTG9nZ2VyQnVpbGRlci5sb2dGaWxlKVxuICAgICAgICAgICAgLy8gbW1kZHl5eXktaGgtbW0tc3MuIHllcyBBbWVyaWNhbi1zdHlsZSwgc3VlIG1lLlxuICAgICAgICAgICAgTG9nZ2VyQnVpbGRlci5sb2dGaWxlID0gYGpzcHJpc21hcmluZS4keyhkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9JHtkYXRlXG4gICAgICAgICAgICAgICAgLmdldERhdGUoKVxuICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgLnBhZFN0YXJ0KDIsICcwJyl9JHtkYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS0ke2RhdGVcbiAgICAgICAgICAgICAgICAuZ2V0SG91cnMoKVxuICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgLnBhZFN0YXJ0KDIsICcwJyl9JHtkYXRlLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9JHtkYXRlXG4gICAgICAgICAgICAgICAgLmdldFNlY29uZHMoKVxuICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgLnBhZFN0YXJ0KDIsICcwJyl9LmxvZ2A7XG5cbiAgICAgICAgdGhpcy5sb2dnZXIgPSBjcmVhdGVMb2dnZXIoe1xuICAgICAgICAgICAgdHJhbnNwb3J0czogW1xuICAgICAgICAgICAgICAgIG5ldyB0cmFuc3BvcnRzLkNvbnNvbGUoe1xuICAgICAgICAgICAgICAgICAgICBsZXZlbDogKGdsb2JhbCBhcyBhbnkpLmxvZ19sZXZlbCB8fCAnaW5mbycsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdDogY29tYmluZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCh7IGZvcm1hdDogJ0hIOm1tOnNzJyB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCgoaW5mbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ubGV2ZWwgPSBpbmZvLmxldmVsLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluZm87XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LmNvbG9yaXplKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQuc2ltcGxlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoKHsgbGV2ZWwsIG1lc3NhZ2UsIHRpbWVzdGFtcCwgbmFtZXNwYWNlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFske3RpbWVzdGFtcH0gJHtsZXZlbH0ke2NvbG9yUGFyc2VyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChnbG9iYWwgYXMgYW55KS5sb2dfbGV2ZWwgPT09ICdzaWxseScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2xvYmFsIGFzIGFueSkubG9nX2xldmVsID09PSAnZGVidWcnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdsb2JhbCBhcyBhbnkpLmxvZ19sZXZlbCA9PT0gJ3ZlcmJvc2UnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCAke25hbWVzcGFjZX1dYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ10nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06ICR7bWVzc2FnZX1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG5ldyB0cmFuc3BvcnRzLkZpbGUoe1xuICAgICAgICAgICAgICAgICAgICBsZXZlbDogJ2RlYnVnJyxcbiAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU6IHBhdGguam9pbihjd2QoKSwgJ2xvZ3MnLCBgJHtMb2dnZXJCdWlsZGVyLmxvZ0ZpbGV9YCksXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdDogY29tYmluZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCh7IGZvcm1hdDogJ0hIOm1tOnNzLlNTJyB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5zaW1wbGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigoeyBsZXZlbCwgbWVzc2FnZSwgdGltZXN0YW1wLCBuYW1lc3BhY2UgfTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBbJHt0aW1lc3RhbXB9XSBbJHtsZXZlbH1dJHtjb2xvclBhcnNlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7bmFtZXNwYWNlID8gYCBbJHtuYW1lc3BhY2V9XWAgOiAnJ306ICR7bWVzc2FnZX1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1gLnJlcGxhY2VBbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9bXFx1MDAxYlxcdTAwOWJdW1soKSM7P10qKD86WzAtOV17MSw0fSg/OjtbMC05XXswLDR9KSopP1swLTlBLU9SWmNmLW5xcnk9PjxdL2csXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TG9nKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihjd2QoKSwgJ2xvZ3MnLCBMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUpLCAndXRmLTgnKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9nIGluZm9ybWF0aW9uIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaW5mbyA9IChtZXNzYWdlOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ2luZm8nLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyB3YXJuaW5nIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgd2FybiA9IChtZXNzYWdlOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ3dhcm4nLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyBlcnJvciBtZXNzYWdlc1xuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgcHVibGljIGVycm9yID0gKG1lc3NhZ2U6IHN0cmluZyB8IEVycm9yIHwgYW55LCBuYW1lc3BhY2U/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdlcnJvcicsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yID0gbWVzc2FnZSBhcyBFcnJvcjtcbiAgICAgICAgY29uc29sZS5sb2coe1xuICAgICAgICAgICAgbmFtZTogZXJyb3IubmFtZSxcbiAgICAgICAgICAgIHN0YWNrOiBlcnJvci5zdGFjayxcbiAgICAgICAgICAgIGNhdXNlOiBlcnJvci5jYXVzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyB2ZXJib3NlIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgdmVyYm9zZSA9IChtZXNzYWdlOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ3ZlcmJvc2UnLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyBkZWJ1ZyBtZXNzYWdlc1xuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgcHVibGljIGRlYnVnID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnZGVidWcnLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyBzaWxseSBtZXNzYWdlc1xuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgcHVibGljIHNpbGx5ID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnc2lsbHknLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXQiLCJjcmVhdGVMb2dnZXIiLCJ0cmFuc3BvcnRzIiwidGltZXN0YW1wIiwiY29sb3JQYXJzZXIiLCJwYXRoIiwiY3dkIiwiZnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxNQUFNLEVBQUUsT0FBQSxFQUFTLFNBQVcsRUFBQSxNQUFBLEVBQVcsR0FBQUEsY0FBQSxDQUFBO0FBRXZDLE1BQXFCLGFBQWMsQ0FBQTtBQUFBLEVBQy9CLE9BQWMsT0FBQSxDQUFBO0FBQUEsRUFDRyxNQUFBLENBQUE7QUFBQSxFQUVWLFdBQWMsR0FBQTtBQUNqQixJQUFNLE1BQUEsSUFBQSx1QkFBVyxJQUFLLEVBQUEsQ0FBQTtBQUN0QixJQUFBLElBQUksQ0FBQyxhQUFBLENBQWMsT0FBVyxJQUFBLE9BQUEsQ0FBUSxJQUFJLFFBQWEsS0FBQSxhQUFBO0FBQ25ELE1BQUEsYUFBQSxDQUFjLE9BQVUsR0FBQSw4QkFBQSxDQUFBO0FBQUEsU0FBQSxJQUNuQixDQUFDLGFBQWMsQ0FBQSxPQUFBO0FBRXBCLE1BQUEsYUFBQSxDQUFjLE9BQVUsR0FBQSxDQUFBLGFBQUEsRUFBQSxDQUFpQixJQUFLLENBQUEsUUFBQSxFQUFhLEdBQUEsQ0FBQSxFQUFHLFFBQVMsRUFBQSxDQUFFLFFBQVMsQ0FBQSxDQUFBLEVBQUcsR0FBRyxDQUFDLENBQUcsRUFBQSxJQUFBLENBQ3ZGLE9BQVEsRUFBQSxDQUNSLFFBQVMsRUFBQSxDQUNULFFBQVMsQ0FBQSxDQUFBLEVBQUcsR0FBRyxDQUFDLENBQUcsRUFBQSxJQUFBLENBQUssV0FBWSxFQUFBLENBQUUsUUFBUyxFQUFBLENBQUUsUUFBUyxDQUFBLENBQUEsRUFBRyxHQUFHLENBQUMsQ0FBSSxDQUFBLEVBQUEsSUFBQSxDQUNyRSxRQUFTLEVBQUEsQ0FDVCxRQUFTLEVBQUEsQ0FDVCxRQUFTLENBQUEsQ0FBQSxFQUFHLEdBQUcsQ0FBQyxDQUFHLEVBQUEsSUFBQSxDQUFLLFVBQVcsRUFBQSxDQUFFLFFBQVMsRUFBQSxDQUFFLFFBQVMsQ0FBQSxDQUFBLEVBQUcsR0FBRyxDQUFDLENBQUcsRUFBQSxJQUFBLENBQ25FLFVBQVcsRUFBQSxDQUNYLFFBQVMsRUFBQSxDQUNULFFBQVMsQ0FBQSxDQUFBLEVBQUcsR0FBRyxDQUFDLENBQUEsSUFBQSxDQUFBLENBQUE7QUFFekIsSUFBQSxJQUFBLENBQUssU0FBU0Msb0JBQWEsQ0FBQTtBQUFBLE1BQ3ZCLFVBQVksRUFBQTtBQUFBLFFBQ1IsSUFBSUMsbUJBQVcsT0FBUSxDQUFBO0FBQUEsVUFDbkIsS0FBQSxFQUFRLE9BQWUsU0FBYSxJQUFBLE1BQUE7QUFBQSxVQUNwQyxNQUFRLEVBQUEsT0FBQTtBQUFBLFlBQ0osU0FBVSxDQUFBLEVBQUUsTUFBUSxFQUFBLFVBQUEsRUFBWSxDQUFBO0FBQUEsWUFDaENGLGNBQUEsQ0FBTyxDQUFDLElBQVMsS0FBQTtBQUNiLGNBQUssSUFBQSxDQUFBLEtBQUEsR0FBUSxJQUFLLENBQUEsS0FBQSxDQUFNLFdBQVksRUFBQSxDQUFBO0FBQ3BDLGNBQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxhQUNWLENBQUUsRUFBQTtBQUFBLFlBQ0hBLGVBQU8sUUFBUyxFQUFBO0FBQUEsWUFDaEJBLGVBQU8sTUFBTyxFQUFBO0FBQUEsWUFDZCxNQUFBLENBQU8sQ0FBQyxFQUFFLEtBQUEsRUFBTyxTQUFTLFNBQUFHLEVBQUFBLFVBQUFBLEVBQVcsV0FBZ0IsS0FBQTtBQUNqRCxjQUFBLE9BQU8sQ0FBSUEsQ0FBQUEsRUFBQUEsVUFBUyxDQUFJLENBQUEsRUFBQSxLQUFLLENBQUcsRUFBQUMsNEJBQUE7QUFBQSxnQkFDNUIsR0FDSSxTQUNFLEtBQUEsTUFBQSxDQUFlLFNBQWMsS0FBQSxPQUFBLElBQzFCLE9BQWUsU0FBYyxLQUFBLE9BQUEsSUFDN0IsTUFBZSxDQUFBLFNBQUEsS0FBYyxhQUM1QixDQUFJLENBQUEsRUFBQSxTQUFTLENBQ2IsQ0FBQSxDQUFBLEdBQUEsR0FDVixLQUFLLE9BQU8sQ0FBQSxDQUFBO0FBQUEsZUFDZixDQUFBLENBQUEsQ0FBQTtBQUFBLGFBQ0osQ0FBQTtBQUFBLFdBQ0w7QUFBQSxTQUNILENBQUE7QUFBQSxRQUNELElBQUlGLG1CQUFXLElBQUssQ0FBQTtBQUFBLFVBQ2hCLEtBQU8sRUFBQSxPQUFBO0FBQUEsVUFDUCxRQUFBLEVBQVVHLHNCQUFLLElBQUssQ0FBQUMsaUJBQUEsSUFBTyxNQUFRLEVBQUEsQ0FBQSxFQUFHLGFBQWMsQ0FBQSxPQUFPLENBQUUsQ0FBQSxDQUFBO0FBQUEsVUFDN0QsTUFBUSxFQUFBLE9BQUE7QUFBQSxZQUNKLFNBQVUsQ0FBQSxFQUFFLE1BQVEsRUFBQSxhQUFBLEVBQWUsQ0FBQTtBQUFBLFlBQ25DTixlQUFPLE1BQU8sRUFBQTtBQUFBLFlBQ2QsTUFBQSxDQUFPLENBQUMsRUFBRSxLQUFBLEVBQU8sU0FBUyxTQUFBRyxFQUFBQSxVQUFBQSxFQUFXLFdBQXFCLEtBQUE7QUFDdEQsY0FBQSxPQUFPLENBQUlBLENBQUFBLEVBQUFBLFVBQVMsQ0FBTSxHQUFBLEVBQUEsS0FBSyxDQUFJLENBQUEsRUFBQUMsNEJBQUE7QUFBQSxnQkFDL0IsR0FBRyxTQUFZLEdBQUEsQ0FBQSxFQUFBLEVBQUssU0FBUyxDQUFNLENBQUEsQ0FBQSxHQUFBLEVBQUUsS0FBSyxPQUFPLENBQUEsQ0FBQTtBQUFBLGVBQ3BELENBQUcsQ0FBQSxDQUFBLFVBQUE7QUFBQSxnQkFDQSw2RUFBQTtBQUFBLGdCQUNBLEVBQUE7QUFBQSxlQUNKLENBQUE7QUFBQSxhQUNILENBQUE7QUFBQSxXQUNMO0FBQUEsU0FDSCxDQUFBO0FBQUEsT0FDTDtBQUFBLEtBQ0gsQ0FBQSxDQUFBO0FBQUEsR0FDTDtBQUFBLEVBRU8sTUFBNkIsR0FBQTtBQUNoQyxJQUFJLElBQUE7QUFDQSxNQUFPLE9BQUFHLG1CQUFBLENBQUcsWUFBYSxDQUFBRixxQkFBQSxDQUFLLElBQUssQ0FBQUMsaUJBQUEsSUFBTyxNQUFRLEVBQUEsYUFBQSxDQUFjLE9BQU8sQ0FBQSxFQUFHLE9BQU8sQ0FBQSxDQUFBO0FBQUEsS0FDM0UsQ0FBQSxNQUFBO0FBQ0osTUFBTyxPQUFBLEtBQUEsQ0FBQSxDQUFBO0FBQUEsS0FDWDtBQUFBLEdBQ0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTU8sSUFBQSxHQUFPLENBQUMsT0FBQSxFQUFpQixTQUF1QixLQUFBO0FBQ25ELElBQUssSUFBQSxDQUFBLE1BQUEsQ0FBTyxHQUFJLENBQUEsTUFBQSxFQUFRLE9BQVMsRUFBQTtBQUFBLE1BQzdCLFNBQUE7QUFBQSxLQUNILENBQUEsQ0FBQTtBQUFBLEdBQ0wsQ0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNTyxJQUFBLEdBQU8sQ0FBQyxPQUFBLEVBQWlCLFNBQXVCLEtBQUE7QUFDbkQsSUFBSyxJQUFBLENBQUEsTUFBQSxDQUFPLEdBQUksQ0FBQSxNQUFBLEVBQVEsT0FBUyxFQUFBO0FBQUEsTUFDN0IsU0FBQTtBQUFBLEtBQ0gsQ0FBQSxDQUFBO0FBQUEsR0FDTCxDQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1PLEtBQUEsR0FBUSxDQUFDLE9BQUEsRUFBK0IsU0FBdUIsS0FBQTtBQUNsRSxJQUFJLElBQUEsT0FBTyxZQUFZLFFBQVUsRUFBQTtBQUM3QixNQUFLLElBQUEsQ0FBQSxNQUFBLENBQU8sR0FBSSxDQUFBLE9BQUEsRUFBUyxPQUFTLEVBQUE7QUFBQSxRQUM5QixTQUFBO0FBQUEsT0FDSCxDQUFBLENBQUE7QUFDRCxNQUFBLE9BQUE7QUFBQSxLQUNKO0FBQ0EsSUFBQSxNQUFNLEtBQVEsR0FBQSxPQUFBLENBQUE7QUFDZCxJQUFBLE9BQUEsQ0FBUSxHQUFJLENBQUE7QUFBQSxNQUNSLE1BQU0sS0FBTSxDQUFBLElBQUE7QUFBQSxNQUNaLE9BQU8sS0FBTSxDQUFBLEtBQUE7QUFBQSxNQUNiLE9BQU8sS0FBTSxDQUFBLEtBQUE7QUFBQSxNQUNiLFNBQVMsS0FBTSxDQUFBLE9BQUE7QUFBQSxLQUNsQixDQUFBLENBQUE7QUFBQSxHQUNMLENBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTU8sT0FBQSxHQUFVLENBQUMsT0FBQSxFQUFpQixTQUF1QixLQUFBO0FBQ3RELElBQUssSUFBQSxDQUFBLE1BQUEsQ0FBTyxHQUFJLENBQUEsU0FBQSxFQUFXLE9BQVMsRUFBQTtBQUFBLE1BQ2hDLFNBQUE7QUFBQSxLQUNILENBQUEsQ0FBQTtBQUFBLEdBQ0wsQ0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNTyxLQUFBLEdBQVEsQ0FBQyxPQUFBLEVBQWlCLFNBQXVCLEtBQUE7QUFDcEQsSUFBSyxJQUFBLENBQUEsTUFBQSxDQUFPLEdBQUksQ0FBQSxPQUFBLEVBQVMsT0FBUyxFQUFBO0FBQUEsTUFDOUIsU0FBQTtBQUFBLEtBQ0gsQ0FBQSxDQUFBO0FBQUEsR0FDTCxDQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1PLEtBQUEsR0FBUSxDQUFDLE9BQUEsRUFBaUIsU0FBdUIsS0FBQTtBQUNwRCxJQUFLLElBQUEsQ0FBQSxNQUFBLENBQU8sR0FBSSxDQUFBLE9BQUEsRUFBUyxPQUFTLEVBQUE7QUFBQSxNQUM5QixTQUFBO0FBQUEsS0FDSCxDQUFBLENBQUE7QUFBQSxHQUNMLENBQUE7QUFDSjs7OzsifQ==
150
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmNqcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL0xvZ2dlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyLCBmb3JtYXQsIHRyYW5zcG9ydHMgfSBmcm9tICd3aW5zdG9uJztcblxuaW1wb3J0IGNvbG9yUGFyc2VyIGZyb20gJ0Bqc3ByaXNtYXJpbmUvY29sb3ItcGFyc2VyJztcbmltcG9ydCBjd2QgZnJvbSAnLi9jd2QnO1xuaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcblxuY29uc3QgeyBjb21iaW5lLCB0aW1lc3RhbXAsIHByaW50ZiB9ID0gZm9ybWF0O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dnZXJCdWlsZGVyIHtcbiAgICBwdWJsaWMgc3RhdGljIGxvZ0ZpbGU6IHN0cmluZztcbiAgICBwcml2YXRlIGxvZ2dlciE6IExvZ2dlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGlmICghTG9nZ2VyQnVpbGRlci5sb2dGaWxlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKVxuICAgICAgICAgICAgTG9nZ2VyQnVpbGRlci5sb2dGaWxlID0gJ2pzcHJpc21hcmluZS1kZXZlbG9wbWVudC5sb2cnO1xuICAgICAgICBlbHNlIGlmICghTG9nZ2VyQnVpbGRlci5sb2dGaWxlKVxuICAgICAgICAgICAgLy8gbW1kZHl5eXktaGgtbW0tc3MuIHllcyBBbWVyaWNhbi1zdHlsZSwgc3VlIG1lLlxuICAgICAgICAgICAgTG9nZ2VyQnVpbGRlci5sb2dGaWxlID0gYGpzcHJpc21hcmluZS4keyhkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9JHtkYXRlXG4gICAgICAgICAgICAgICAgLmdldERhdGUoKVxuICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgLnBhZFN0YXJ0KDIsICcwJyl9JHtkYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS0ke2RhdGVcbiAgICAgICAgICAgICAgICAuZ2V0SG91cnMoKVxuICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgLnBhZFN0YXJ0KDIsICcwJyl9JHtkYXRlLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9JHtkYXRlXG4gICAgICAgICAgICAgICAgLmdldFNlY29uZHMoKVxuICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgLnBhZFN0YXJ0KDIsICcwJyl9LmxvZ2A7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVMb2dnZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlTG9nZ2VyKCkge1xuICAgICAgICBpZiAoISh0aGlzLmxvZ2dlciBhcyBhbnkpIHx8IHRoaXMubG9nZ2VyLmNsb3NlZCkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIgPSBjcmVhdGVMb2dnZXIoe1xuICAgICAgICAgICAgICAgIHRyYW5zcG9ydHM6IFtcbiAgICAgICAgICAgICAgICAgICAgbmV3IHRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXZlbDogKGdsb2JhbCBhcyBhbnkpLmxvZ19sZXZlbCB8fCAnaW5mbycsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IGNvbWJpbmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wKHsgZm9ybWF0OiAnSEg6bW06c3MnIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCgoaW5mbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLmxldmVsID0gaW5mby5sZXZlbC50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5mbztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5jb2xvcml6ZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5zaW1wbGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoKHsgbGV2ZWwsIG1lc3NhZ2UsIHRpbWVzdGFtcCwgbmFtZXNwYWNlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBbJHt0aW1lc3RhbXB9ICR7bGV2ZWx9JHtjb2xvclBhcnNlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZ2xvYmFsIGFzIGFueSkubG9nX2xldmVsID09PSAnc2lsbHknIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnbG9iYWwgYXMgYW55KS5sb2dfbGV2ZWwgPT09ICdkZWJ1ZycgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdsb2JhbCBhcyBhbnkpLmxvZ19sZXZlbCA9PT0gJ3ZlcmJvc2UnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAgJHtuYW1lc3BhY2V9XWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnXSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06ICR7bWVzc2FnZX1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgbmV3IHRyYW5zcG9ydHMuRmlsZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXZlbDogJ2RlYnVnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lOiBwYXRoLmpvaW4oY3dkKCksICdsb2dzJywgYCR7TG9nZ2VyQnVpbGRlci5sb2dGaWxlfWApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiBjb21iaW5lKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCh7IGZvcm1hdDogJ0hIOm1tOnNzLlNTJyB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQuc2ltcGxlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCh7IGxldmVsLCBtZXNzYWdlLCB0aW1lc3RhbXAsIG5hbWVzcGFjZSB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBbJHt0aW1lc3RhbXB9XSBbJHtsZXZlbH1dJHtjb2xvclBhcnNlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke25hbWVzcGFjZSA/IGAgWyR7bmFtZXNwYWNlfV1gIDogJyd9OiAke21lc3NhZ2V9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfWAucmVwbGFjZUFsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9bXFx1MDAxYlxcdTAwOWJdW1soKSM7P10qKD86WzAtOV17MSw0fSg/OjtbMC05XXswLDR9KSopP1swLTlBLU9SWmNmLW5xcnk9PjxdL2csXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25FbmFibGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuY3JlYXRlTG9nZ2VyKCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxldmVsID0gKGdsb2JhbCBhcyBhbnkpLmxvZ19sZXZlbCB8fCAnaW5mbyc7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG9uRGlzYWJsZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8gVE9ETzogRml4IHRoaXNcbiAgICAgICAgLy90aGlzLmxvZ2dlci5jbG9zZSgpO1xuICAgICAgICAvL3RoaXMubG9nZ2VyLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TG9nKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihjd2QoKSwgJ2xvZ3MnLCBMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUpLCAndXRmLTgnKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9nIGluZm9ybWF0aW9uIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaW5mbyA9IChtZXNzYWdlOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ2luZm8nLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyB3YXJuaW5nIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgd2FybiA9IChtZXNzYWdlOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ3dhcm4nLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyBlcnJvciBtZXNzYWdlc1xuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgcHVibGljIGVycm9yID0gKG1lc3NhZ2U6IHN0cmluZyB8IEVycm9yIHwgYW55LCBuYW1lc3BhY2U/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdlcnJvcicsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yID0gbWVzc2FnZSBhcyBFcnJvcjtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5sb2coe1xuICAgICAgICAgICAgbmFtZTogZXJyb3IubmFtZSxcbiAgICAgICAgICAgIHN0YWNrOiBlcnJvci5zdGFjayxcbiAgICAgICAgICAgIGNhdXNlOiBlcnJvci5jYXVzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyB2ZXJib3NlIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgdmVyYm9zZSA9IChtZXNzYWdlOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ3ZlcmJvc2UnLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyBkZWJ1ZyBtZXNzYWdlc1xuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgcHVibGljIGRlYnVnID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnZGVidWcnLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvZyBzaWxseSBtZXNzYWdlc1xuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgcHVibGljIHNpbGx5ID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnc2lsbHknLCBtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lc3BhY2VcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXQiLCJjcmVhdGVMb2dnZXIiLCJ0cmFuc3BvcnRzIiwidGltZXN0YW1wIiwiY29sb3JQYXJzZXIiLCJwYXRoIiwiY3dkIiwiZnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSxNQUFNLEVBQUUsT0FBQSxFQUFTLFNBQVcsRUFBQSxNQUFBLEVBQVcsR0FBQUEsY0FBQSxDQUFBO0FBRXZDLE1BQXFCLGFBQWMsQ0FBQTtBQUFBLEVBQy9CLE9BQWMsT0FBQSxDQUFBO0FBQUEsRUFDTixNQUFBLENBQUE7QUFBQSxFQUVELFdBQWMs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
@@ -1,7 +1,10 @@
1
1
  export default class LoggerBuilder {
2
2
  static logFile: string;
3
- private readonly logger;
3
+ private logger;
4
4
  constructor();
5
+ createLogger(): void;
6
+ onEnable(): Promise<void>;
7
+ onDisable(): Promise<void>;
5
8
  getLog(): string | undefined;
6
9
  /**
7
10
  * Log information messages
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,OAAc,OAAO,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAiEzB,MAAM,IAAI,MAAM,GAAG,SAAS;IAQnC;;;OAGG;IACI,IAAI,YAAa,MAAM,cAAc,MAAM,UAIhD;IAEF;;;OAGG;IACI,IAAI,YAAa,MAAM,cAAc,MAAM,UAIhD;IAEF;;;OAGG;IACI,KAAK,YAAa,MAAM,GAAG,KAAK,GAAG,GAAG,cAAc,MAAM,UAc/D;IAEF;;;OAGG;IACI,OAAO,YAAa,MAAM,cAAc,MAAM,UAInD;IAEF;;;OAGG;IACI,KAAK,YAAa,MAAM,cAAc,MAAM,UAIjD;IAEF;;;OAGG;IACI,KAAK,YAAa,MAAM,cAAc,MAAM,UAIjD;CACL"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,OAAc,OAAO,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAU;;IAsBjB,YAAY;IAiDN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC,MAAM,IAAI,MAAM,GAAG,SAAS;IAQnC;;;OAGG;IACI,IAAI,YAAa,MAAM,cAAc,MAAM,UAIhD;IAEF;;;OAGG;IACI,IAAI,YAAa,MAAM,cAAc,MAAM,UAIhD;IAEF;;;OAGG;IACI,KAAK,YAAa,MAAM,GAAG,KAAK,GAAG,GAAG,cAAc,MAAM,UAe/D;IAEF;;;OAGG;IACI,OAAO,YAAa,MAAM,cAAc,MAAM,UAInD;IAEF;;;OAGG;IACI,KAAK,YAAa,MAAM,cAAc,MAAM,UAIjD;IAEF;;;OAGG;IACI,KAAK,YAAa,MAAM,cAAc,MAAM,UAIjD;CACL"}
@@ -14,43 +14,54 @@ class LoggerBuilder {
14
14
  LoggerBuilder.logFile = "jsprismarine-development.log";
15
15
  else if (!LoggerBuilder.logFile)
16
16
  LoggerBuilder.logFile = `jsprismarine.${(date.getMonth() + 1).toString().padStart(2, "0")}${date.getDate().toString().padStart(2, "0")}${date.getFullYear().toString().padStart(2, "0")}-${date.getHours().toString().padStart(2, "0")}${date.getMinutes().toString().padStart(2, "0")}${date.getSeconds().toString().padStart(2, "0")}.log`;
17
- this.logger = createLogger({
18
- transports: [
19
- new transports.Console({
20
- level: global.log_level || "info",
21
- format: combine(
22
- timestamp({ format: "HH:mm:ss" }),
23
- format((info) => {
24
- info.level = info.level.toUpperCase();
25
- return info;
26
- })(),
27
- format.colorize(),
28
- format.simple(),
29
- printf(({ level, message, timestamp: timestamp2, namespace }) => {
30
- return `[${timestamp2} ${level}${colorParser(
31
- `${namespace && (global.log_level === "silly" || global.log_level === "debug" || global.log_level === "verbose") ? ` ${namespace}]` : "]"}: ${message}`
32
- )}`;
33
- })
34
- )
35
- }),
36
- new transports.File({
37
- level: "debug",
38
- filename: path.join(cwd(), "logs", `${LoggerBuilder.logFile}`),
39
- format: combine(
40
- timestamp({ format: "HH:mm:ss.SS" }),
41
- format.simple(),
42
- printf(({ level, message, timestamp: timestamp2, namespace }) => {
43
- return `[${timestamp2}] [${level}]${colorParser(
44
- `${namespace ? ` [${namespace}]` : ""}: ${message}`
45
- )}`.replaceAll(
46
- /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,
47
- ""
48
- );
49
- })
50
- )
51
- })
52
- ]
53
- });
17
+ this.createLogger();
18
+ }
19
+ createLogger() {
20
+ if (!this.logger || this.logger.closed) {
21
+ this.logger = createLogger({
22
+ transports: [
23
+ new transports.Console({
24
+ level: global.log_level || "info",
25
+ format: combine(
26
+ timestamp({ format: "HH:mm:ss" }),
27
+ format((info) => {
28
+ info.level = info.level.toUpperCase();
29
+ return info;
30
+ })(),
31
+ format.colorize(),
32
+ format.simple(),
33
+ printf(({ level, message, timestamp: timestamp2, namespace }) => {
34
+ return `[${timestamp2} ${level}${colorParser(
35
+ `${namespace && (global.log_level === "silly" || global.log_level === "debug" || global.log_level === "verbose") ? ` ${namespace}]` : "]"}: ${message}`
36
+ )}`;
37
+ })
38
+ )
39
+ }),
40
+ new transports.File({
41
+ level: "debug",
42
+ filename: path.join(cwd(), "logs", `${LoggerBuilder.logFile}`),
43
+ format: combine(
44
+ timestamp({ format: "HH:mm:ss.SS" }),
45
+ format.simple(),
46
+ printf(({ level, message, timestamp: timestamp2, namespace }) => {
47
+ return `[${timestamp2}] [${level}]${colorParser(
48
+ `${namespace ? ` [${namespace}]` : ""}: ${message}`
49
+ )}`.replaceAll(
50
+ /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,
51
+ ""
52
+ );
53
+ })
54
+ )
55
+ })
56
+ ]
57
+ });
58
+ }
59
+ }
60
+ async onEnable() {
61
+ this.createLogger();
62
+ this.logger.level = global.log_level || "info";
63
+ }
64
+ async onDisable() {
54
65
  }
55
66
  getLog() {
56
67
  try {
@@ -126,4 +137,4 @@ class LoggerBuilder {
126
137
  }
127
138
 
128
139
  export { LoggerBuilder as default };
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTG9nZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dlciwgY3JlYXRlTG9nZ2VyLCBmb3JtYXQsIHRyYW5zcG9ydHMgfSBmcm9tICd3aW5zdG9uJztcblxuaW1wb3J0IGNvbG9yUGFyc2VyIGZyb20gJ0Bqc3ByaXNtYXJpbmUvY29sb3ItcGFyc2VyJztcbmltcG9ydCBjd2QgZnJvbSAnLi9jd2QnO1xuaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcblxuY29uc3QgeyBjb21iaW5lLCB0aW1lc3RhbXAsIHByaW50ZiB9ID0gZm9ybWF0O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dnZXJCdWlsZGVyIHtcbiAgICBwdWJsaWMgc3RhdGljIGxvZ0ZpbGU6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKCFMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpXG4gICAgICAgICAgICBMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUgPSAnanNwcmlzbWFyaW5lLWRldmVsb3BtZW50LmxvZyc7XG4gICAgICAgIGVsc2UgaWYgKCFMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUpXG4gICAgICAgICAgICAvLyBtbWRkeXl5eS1oaC1tbS1zcy4geWVzIEFtZXJpY2FuLXN0eWxlLCBzdWUgbWUuXG4gICAgICAgICAgICBMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUgPSBganNwcmlzbWFyaW5lLiR7KGRhdGUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGVcbiAgICAgICAgICAgICAgICAuZ2V0RGF0ZSgpXG4gICAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7ZGF0ZVxuICAgICAgICAgICAgICAgIC5nZXRIb3VycygpXG4gICAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGVcbiAgICAgICAgICAgICAgICAuZ2V0U2Vjb25kcygpXG4gICAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAucGFkU3RhcnQoMiwgJzAnKX0ubG9nYDtcblxuICAgICAgICB0aGlzLmxvZ2dlciA9IGNyZWF0ZUxvZ2dlcih7XG4gICAgICAgICAgICB0cmFuc3BvcnRzOiBbXG4gICAgICAgICAgICAgICAgbmV3IHRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgICAgICAgICAgICAgIGxldmVsOiAoZ2xvYmFsIGFzIGFueSkubG9nX2xldmVsIHx8ICdpbmZvJyxcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiBjb21iaW5lKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wKHsgZm9ybWF0OiAnSEg6bW06c3MnIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KChpbmZvKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5sZXZlbCA9IGluZm8ubGV2ZWwudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5mbztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQuY29sb3JpemUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5zaW1wbGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigoeyBsZXZlbCwgbWVzc2FnZSwgdGltZXN0YW1wLCBuYW1lc3BhY2UgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgWyR7dGltZXN0YW1wfSAke2xldmVsfSR7Y29sb3JQYXJzZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGdsb2JhbCBhcyBhbnkpLmxvZ19sZXZlbCA9PT0gJ3NpbGx5JyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnbG9iYWwgYXMgYW55KS5sb2dfbGV2ZWwgPT09ICdkZWJ1ZycgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2xvYmFsIGFzIGFueSkubG9nX2xldmVsID09PSAndmVyYm9zZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBgICR7bmFtZXNwYWNlfV1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnXSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTogJHttZXNzYWdlfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbmV3IHRyYW5zcG9ydHMuRmlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGxldmVsOiAnZGVidWcnLFxuICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZTogcGF0aC5qb2luKGN3ZCgpLCAnbG9ncycsIGAke0xvZ2dlckJ1aWxkZXIubG9nRmlsZX1gKSxcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiBjb21iaW5lKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wKHsgZm9ybWF0OiAnSEg6bW06c3MuU1MnIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LnNpbXBsZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCh7IGxldmVsLCBtZXNzYWdlLCB0aW1lc3RhbXAsIG5hbWVzcGFjZSB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFske3RpbWVzdGFtcH1dIFske2xldmVsfV0ke2NvbG9yUGFyc2VyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtuYW1lc3BhY2UgPyBgIFske25hbWVzcGFjZX1dYCA6ICcnfTogJHttZXNzYWdlfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfWAucmVwbGFjZUFsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb2coKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKGN3ZCgpLCAnbG9ncycsIExvZ2dlckJ1aWxkZXIubG9nRmlsZSksICd1dGYtOCcpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2cgaW5mb3JtYXRpb24gbWVzc2FnZXNcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqL1xuICAgIHB1YmxpYyBpbmZvID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnaW5mbycsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIHdhcm5pbmcgbWVzc2FnZXNcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqL1xuICAgIHB1YmxpYyB3YXJuID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnd2FybicsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIGVycm9yIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZXJyb3IgPSAobWVzc2FnZTogc3RyaW5nIHwgRXJyb3IgfCBhbnksIG5hbWVzcGFjZT86IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ2Vycm9yJywgbWVzc2FnZSwge1xuICAgICAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3IgPSBtZXNzYWdlIGFzIEVycm9yO1xuICAgICAgICBjb25zb2xlLmxvZyh7XG4gICAgICAgICAgICBuYW1lOiBlcnJvci5uYW1lLFxuICAgICAgICAgICAgc3RhY2s6IGVycm9yLnN0YWNrLFxuICAgICAgICAgICAgY2F1c2U6IGVycm9yLmNhdXNlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIHZlcmJvc2UgbWVzc2FnZXNcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqL1xuICAgIHB1YmxpYyB2ZXJib3NlID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygndmVyYm9zZScsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIGRlYnVnIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVidWcgPSAobWVzc2FnZTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdkZWJ1ZycsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIHNpbGx5IG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2lsbHkgPSAobWVzc2FnZTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdzaWxseScsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbInRpbWVzdGFtcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBT0EsTUFBTSxF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
140
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTG9nZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSAnd2luc3Rvbic7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIsIGZvcm1hdCwgdHJhbnNwb3J0cyB9IGZyb20gJ3dpbnN0b24nO1xuXG5pbXBvcnQgY29sb3JQYXJzZXIgZnJvbSAnQGpzcHJpc21hcmluZS9jb2xvci1wYXJzZXInO1xuaW1wb3J0IGN3ZCBmcm9tICcuL2N3ZCc7XG5pbXBvcnQgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5jb25zdCB7IGNvbWJpbmUsIHRpbWVzdGFtcCwgcHJpbnRmIH0gPSBmb3JtYXQ7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvZ2dlckJ1aWxkZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgbG9nRmlsZTogc3RyaW5nO1xuICAgIHByaXZhdGUgbG9nZ2VyITogTG9nZ2VyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKCFMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpXG4gICAgICAgICAgICBMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUgPSAnanNwcmlzbWFyaW5lLWRldmVsb3BtZW50LmxvZyc7XG4gICAgICAgIGVsc2UgaWYgKCFMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUpXG4gICAgICAgICAgICAvLyBtbWRkeXl5eS1oaC1tbS1zcy4geWVzIEFtZXJpY2FuLXN0eWxlLCBzdWUgbWUuXG4gICAgICAgICAgICBMb2dnZXJCdWlsZGVyLmxvZ0ZpbGUgPSBganNwcmlzbWFyaW5lLiR7KGRhdGUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGVcbiAgICAgICAgICAgICAgICAuZ2V0RGF0ZSgpXG4gICAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7ZGF0ZVxuICAgICAgICAgICAgICAgIC5nZXRIb3VycygpXG4gICAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGVcbiAgICAgICAgICAgICAgICAuZ2V0U2Vjb25kcygpXG4gICAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAucGFkU3RhcnQoMiwgJzAnKX0ubG9nYDtcblxuICAgICAgICB0aGlzLmNyZWF0ZUxvZ2dlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVMb2dnZXIoKSB7XG4gICAgICAgIGlmICghKHRoaXMubG9nZ2VyIGFzIGFueSkgfHwgdGhpcy5sb2dnZXIuY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlciA9IGNyZWF0ZUxvZ2dlcih7XG4gICAgICAgICAgICAgICAgdHJhbnNwb3J0czogW1xuICAgICAgICAgICAgICAgICAgICBuZXcgdHJhbnNwb3J0cy5Db25zb2xlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsOiAoZ2xvYmFsIGFzIGFueSkubG9nX2xldmVsIHx8ICdpbmZvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdDogY29tYmluZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAoeyBmb3JtYXQ6ICdISDptbTpzcycgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KChpbmZvKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ubGV2ZWwgPSBpbmZvLmxldmVsLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmZvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LmNvbG9yaXplKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LnNpbXBsZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigoeyBsZXZlbCwgbWVzc2FnZSwgdGltZXN0YW1wLCBuYW1lc3BhY2UgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFske3RpbWVzdGFtcH0gJHtsZXZlbH0ke2NvbG9yUGFyc2VyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChnbG9iYWwgYXMgYW55KS5sb2dfbGV2ZWwgPT09ICdzaWxseScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdsb2JhbCBhcyBhbnkpLmxvZ19sZXZlbCA9PT0gJ2RlYnVnJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2xvYmFsIGFzIGFueSkubG9nX2xldmVsID09PSAndmVyYm9zZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCAke25hbWVzcGFjZX1dYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICddJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTogJHttZXNzYWdlfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBuZXcgdHJhbnNwb3J0cy5GaWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsOiAnZGVidWcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU6IHBhdGguam9pbihjd2QoKSwgJ2xvZ3MnLCBgJHtMb2dnZXJCdWlsZGVyLmxvZ0ZpbGV9YCksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IGNvbWJpbmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wKHsgZm9ybWF0OiAnSEg6bW06c3MuU1MnIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5zaW1wbGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoKHsgbGV2ZWwsIG1lc3NhZ2UsIHRpbWVzdGFtcCwgbmFtZXNwYWNlIH06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFske3RpbWVzdGFtcH1dIFske2xldmVsfV0ke2NvbG9yUGFyc2VyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7bmFtZXNwYWNlID8gYCBbJHtuYW1lc3BhY2V9XWAgOiAnJ306ICR7bWVzc2FnZX1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9YC5yZXBsYWNlQWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvbkVuYWJsZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5jcmVhdGVMb2dnZXIoKTtcbiAgICAgICAgdGhpcy5sb2dnZXIubGV2ZWwgPSAoZ2xvYmFsIGFzIGFueSkubG9nX2xldmVsIHx8ICdpbmZvJztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25EaXNhYmxlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBUT0RPOiBGaXggdGhpc1xuICAgICAgICAvL3RoaXMubG9nZ2VyLmNsb3NlKCk7XG4gICAgICAgIC8vdGhpcy5sb2dnZXIuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb2coKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKGN3ZCgpLCAnbG9ncycsIExvZ2dlckJ1aWxkZXIubG9nRmlsZSksICd1dGYtOCcpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2cgaW5mb3JtYXRpb24gbWVzc2FnZXNcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqL1xuICAgIHB1YmxpYyBpbmZvID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnaW5mbycsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIHdhcm5pbmcgbWVzc2FnZXNcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqL1xuICAgIHB1YmxpYyB3YXJuID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnd2FybicsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIGVycm9yIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZXJyb3IgPSAobWVzc2FnZTogc3RyaW5nIHwgRXJyb3IgfCBhbnksIG5hbWVzcGFjZT86IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ2Vycm9yJywgbWVzc2FnZSwge1xuICAgICAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3IgPSBtZXNzYWdlIGFzIEVycm9yO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmxvZyh7XG4gICAgICAgICAgICBuYW1lOiBlcnJvci5uYW1lLFxuICAgICAgICAgICAgc3RhY2s6IGVycm9yLnN0YWNrLFxuICAgICAgICAgICAgY2F1c2U6IGVycm9yLmNhdXNlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIHZlcmJvc2UgbWVzc2FnZXNcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqL1xuICAgIHB1YmxpYyB2ZXJib3NlID0gKG1lc3NhZ2U6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygndmVyYm9zZScsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIGRlYnVnIG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVidWcgPSAobWVzc2FnZTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdkZWJ1ZycsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9nIHNpbGx5IG1lc3NhZ2VzXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2lsbHkgPSAobWVzc2FnZTogc3RyaW5nLCBuYW1lc3BhY2U/OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdzaWxseScsIG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbInRpbWVzdGFtcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsTUFBTSxFQUFFLE9BQUEsRUFBUyxTQUFXLEVBQUEsTUFBQSxFQUFXLEdBQUEsTUFBQSxDQUFBO0FBRXZDLE1BQXFCLGFBQWMsQ0FBQTtBQUFBLEVBQy9CLE9BQWMsT0FBQSxDQUFBO0FBQUEsRUFDTixNQUFBLENBQUE7QUFBQSxFQUVELFdBQWMsR0FBQTtBQUNqQixJQUFNLE1BQUEsSUFBQSx1QkFBVyxJQUFLLEVBQUEsQ0FBQTtBQUN0QixJQUFBLElBQUksQ0FBQyxhQUFBLENBQWMsT0FB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
@@ -20,4 +20,4 @@ const ParseTildeCaretNotation = ({
20
20
  };
21
21
 
22
22
  exports.default = ParseTildeCaretNotation;
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VUaWxkZUNhcmV0Tm90YXRpb24uY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvUGFyc2VUaWxkZUNhcmV0Tm90YXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVudGl0eSBmcm9tICcuLi9lbnRpdHkvRW50aXR5JztcblxuY29uc3QgUGFyc2VUaWxkZUNhcmV0Tm90YXRpb24gPSAoe1xuICAgIGlucHV0LFxuICAgIHR5cGUsXG4gICAgc291cmNlXG59OiB7XG4gICAgaW5wdXQ6IHN0cmluZztcbiAgICB0eXBlOiAneCcgfCAneScgfCAneic7XG4gICAgc291cmNlOiBFbnRpdHk7XG59KTogbnVtYmVyID0+IHtcbiAgICBpZiAoIWlucHV0LnN0YXJ0c1dpdGgoJ34nKSAmJiAhaW5wdXQuc3RhcnRzV2l0aCgnXicpKSByZXR1cm4gTnVtYmVyLnBhcnNlRmxvYXQoaW5wdXQpO1xuXG4gICAgc3dpdGNoIChpbnB1dFswXSkge1xuICAgICAgICBjYXNlICd+JzpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHNvdXJjZSBhcyBhbnkpW2BnZXQke3R5cGUudG9VcHBlckNhc2UoKX1gXSgpICsgTnVtYmVyLnBhcnNlRmxvYXQoaW5wdXQuc2xpY2UoMSwgaW5wdXQubGVuZ3RoKSB8fCAnMCcpXG4gICAgICAgICAgICApO1xuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICAgIC8vIEZJWE1FOlxuICAgICAgICAgICAgcmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KGlucHV0LnNsaWNlKDEsIGlucHV0Lmxlbmd0aCkgfHwgJzAnKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBpbnB1dGApO1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBhcnNlVGlsZGVDYXJldE5vdGF0aW9uO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLDBCQUEwQixDQUFDO0FBQUEsRUFDN0IsS0FBQTtBQUFBLEVBQ0EsSUFBQTtBQUFBLEVBQ0EsTUFBQTtBQUNKLENBSWMsS0FBQTtBQUNWLEVBQUksSUFBQSxDQUFDLE1BQU0sVUFBVyxDQUFBLEdBQUcsS0FBSyxDQUFDLEtBQUEsQ0FBTSxXQUFXLEdBQUcsQ0FBQTtBQUFHLElBQU8sT0FBQSxNQUFBLENBQU8sV0FBVyxLQUFLLENBQUEsQ0FBQTtBQUVwRixFQUFRLFFBQUEsS0FBQSxDQUFNLENBQUMsQ0FBRztBQUFBLElBQ2QsS0FBSyxHQUFBO0FBQ0QsTUFBQSxPQUNLLE9BQWUsQ0FBTSxHQUFBLEVBQUEsSUFBQSxDQUFLLFdBQVksRUFBQyxFQUFFLENBQUUsRUFBQSxHQUFJLE1BQU8sQ0FBQSxVQUFBLENBQVcsTUFBTSxLQUFNLENBQUEsQ0FBQSxFQUFHLEtBQU0sQ0FBQSxNQUFNLEtBQUssR0FBRyxDQUFBLENBQUE7QUFBQSxJQUU3RyxLQUFLLEdBQUE7QUFFRCxNQUFPLE9BQUEsTUFBQSxDQUFPLFdBQVcsS0FBTSxDQUFBLEtBQUEsQ0FBTSxHQUFHLEtBQU0sQ0FBQSxNQUFNLEtBQUssR0FBRyxDQUFBLENBQUE7QUFBQSxJQUNoRTtBQUNJLE1BQU0sTUFBQSxJQUFJLE1BQU0sQ0FBZSxhQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsR0FDdkM7QUFDSjs7OzsifQ==
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VUaWxkZUNhcmV0Tm90YXRpb24uY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvUGFyc2VUaWxkZUNhcmV0Tm90YXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgRW50aXR5IGZyb20gJy4uL2VudGl0eS9FbnRpdHknO1xuXG5jb25zdCBQYXJzZVRpbGRlQ2FyZXROb3RhdGlvbiA9ICh7XG4gICAgaW5wdXQsXG4gICAgdHlwZSxcbiAgICBzb3VyY2Vcbn06IHtcbiAgICBpbnB1dDogc3RyaW5nO1xuICAgIHR5cGU6ICd4JyB8ICd5JyB8ICd6JztcbiAgICBzb3VyY2U6IEVudGl0eTtcbn0pOiBudW1iZXIgPT4ge1xuICAgIGlmICghaW5wdXQuc3RhcnRzV2l0aCgnficpICYmICFpbnB1dC5zdGFydHNXaXRoKCdeJykpIHJldHVybiBOdW1iZXIucGFyc2VGbG9hdChpbnB1dCk7XG5cbiAgICBzd2l0Y2ggKGlucHV0WzBdKSB7XG4gICAgICAgIGNhc2UgJ34nOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAoc291cmNlIGFzIGFueSlbYGdldCR7dHlwZS50b1VwcGVyQ2FzZSgpfWBdKCkgKyBOdW1iZXIucGFyc2VGbG9hdChpbnB1dC5zbGljZSgxLCBpbnB1dC5sZW5ndGgpIHx8ICcwJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgJ14nOlxuICAgICAgICAgICAgLy8gRklYTUU6XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyLnBhcnNlRmxvYXQoaW5wdXQuc2xpY2UoMSwgaW5wdXQubGVuZ3RoKSB8fCAnMCcpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGlucHV0YCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgUGFyc2VUaWxkZUNhcmV0Tm90YXRpb247XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE1BQU0sMEJBQTBCLENBQUM7QUFBQSxFQUM3QixLQUFBO0FBQUEsRUFDQSxJQUFBO0FBQUEsRUFDQSxNQUFBO0FBQ0osQ0FJYyxLQUFBO0FBQ1YsRUFBSSxJQUFBLENBQUMsTUFBTSxVQUFXLENBQUEsR0FBRyxLQUFLLENBQUMsS0FBQSxDQUFNLFdBQVcsR0FBRyxDQUFBO0FBQUcsSUFBTyxPQUFBLE1BQUEsQ0FBTyxXQUFXLEtBQUssQ0FBQSxDQUFBO0FBRXBGLEVBQVEsUUFBQSxLQUFBLENBQU0sQ0FBQyxDQUFHO0FBQUEsSUFDZCxLQUFLLEdBQUE7QUFDRCxNQUFBLE9BQ0ssT0FBZSxDQUFNLEdBQUEsRUFBQSxJQUFBLENBQUssV0FBWSxFQUFDLEVBQUUsQ0FBRSxFQUFBLEdBQUksTUFBTyxDQUFBLFVBQUEsQ0FBVyxNQUFNLEtBQU0sQ0FBQSxDQUFBLEVBQUcsS0FBTSxDQUFBLE1BQU0sS0FBSyxHQUFHLENBQUEsQ0FBQTtBQUFBLElBRTdHLEtBQUssR0FBQTtBQUVELE1BQU8sT0FBQSxNQUFBLENBQU8sV0FBVyxLQUFNLENBQUEsS0FBQSxDQUFNLEdBQUcsS0FBTSxDQUFBLE1BQU0sS0FBSyxHQUFHLENBQUEsQ0FBQTtBQUFBLElBQ2hFO0FBQ0ksTUFBTSxNQUFBLElBQUksTUFBTSxDQUFlLGFBQUEsQ0FBQSxDQUFBLENBQUE7QUFBQSxHQUN2QztBQUNKOzs7OyJ9