angular-toolbox 0.11.3 → 0.11.4

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 (211) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/core/bridge/app-bridge.mjs +3 -3
  3. package/esm2022/lib/core/error/app-bridge-error.mjs +3 -3
  4. package/esm2022/lib/core/error/http-mock-service-error.mjs +3 -3
  5. package/esm2022/lib/core/error/integrity-error.mjs +3 -3
  6. package/esm2022/lib/core/error/subscription-error.mjs +3 -3
  7. package/esm2022/lib/core/impl/lang/identifiable-component.mjs +3 -3
  8. package/esm2022/lib/core/impl/version/version.impl.mjs +3 -3
  9. package/esm2022/lib/framework/index.mjs +3 -1
  10. package/esm2022/lib/framework/logging/connector/console-log-connector.mjs +48 -0
  11. package/esm2022/lib/framework/logging/connector/default-log-connector.mjs +34 -0
  12. package/esm2022/lib/framework/logging/connector/html-log-connector.mjs +177 -0
  13. package/esm2022/lib/framework/logging/connector/index.mjs +4 -0
  14. package/esm2022/lib/framework/logging/impl/abstract-logger.mjs +100 -0
  15. package/esm2022/lib/framework/logging/impl/index.mjs +3 -0
  16. package/esm2022/lib/framework/logging/impl/log-impl.mjs +28 -0
  17. package/esm2022/lib/framework/logging/index.mjs +4 -0
  18. package/esm2022/lib/framework/logging/util/index.mjs +4 -0
  19. package/esm2022/lib/framework/logging/util/log.builder.mjs +28 -0
  20. package/esm2022/lib/framework/logging/util/log.constant.mjs +24 -0
  21. package/esm2022/lib/framework/logging/util/log.util.mjs +142 -0
  22. package/esm2022/lib/framework/mock/http/core/data-storage.mjs +1 -1
  23. package/esm2022/lib/framework/mock/http/core/response-delay.mjs +9 -0
  24. package/esm2022/lib/framework/mock/http/event/event-target.impl.mjs +15 -1
  25. package/esm2022/lib/framework/mock/http/logging/http-mock-logger.mjs +15 -0
  26. package/esm2022/lib/framework/mock/http/logging/http-mock-logging-metadata.builder.mjs +35 -0
  27. package/esm2022/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.mjs +3 -3
  28. package/esm2022/lib/framework/mock/http/path-to-regexp/model/lex-token.mjs +3 -3
  29. package/esm2022/lib/framework/mock/http/util/data-storage.builder.mjs +5 -3
  30. package/esm2022/lib/framework/mock/http/util/http-headers.util.mjs +18 -3
  31. package/esm2022/lib/framework/mock/http/util/http-mock-max-delay.mjs +12 -0
  32. package/esm2022/lib/framework/mock/http/util/http-mock-response-delay.util.mjs +33 -0
  33. package/esm2022/lib/framework/mock/http/util/http-mock-response.builder.mjs +45 -9
  34. package/esm2022/lib/framework/mock/http/util/index.mjs +2 -1
  35. package/esm2022/lib/framework/mock/http/xhr/delegate-xhr.mjs +75 -41
  36. package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.impl.mjs +4 -3
  37. package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.mjs +3 -2
  38. package/esm2022/lib/framework/mock/http/xhr/xhr-proxy-impl.mjs +7 -6
  39. package/esm2022/lib/framework/mock/http-monitoring-console/component/console-footer/console-footer.component.mjs +30 -0
  40. package/esm2022/lib/framework/mock/http-monitoring-console/component/console-menu/console-menu.component.mjs +30 -0
  41. package/esm2022/lib/framework/mock/http-monitoring-console/component/http-monitoring-console/http-monitoring-console.component.mjs +140 -0
  42. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/icon-renderer/icon-renderer.component.mjs +37 -0
  43. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer/json-viewer.component.mjs +34 -0
  44. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer-panel/json-viewer-panel.component.mjs +27 -0
  45. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/payload-renderer/payload-renderer.component.mjs +50 -0
  46. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-body-renderer/response-body-renderer.component.mjs +50 -0
  47. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-preview-renderer/response-preview-renderer.component.mjs +71 -0
  48. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/timing-renderer/timing-renderer.component.mjs +55 -0
  49. package/esm2022/lib/framework/mock/http-monitoring-console/component/request-details/request-details.component.mjs +67 -0
  50. package/esm2022/lib/framework/mock/http-monitoring-console/connector/http-monitoring-console-log-connector.mjs +52 -0
  51. package/esm2022/lib/framework/mock/http-monitoring-console/index.mjs +2 -0
  52. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action-type.mjs +14 -0
  53. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action.mjs +9 -0
  54. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-json.mjs +9 -0
  55. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-is-imported-log.mjs +10 -0
  56. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-body-dto.mjs +9 -0
  57. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-header-dto.mjs +9 -0
  58. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log-metadata.dto.mjs +9 -0
  59. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log.dto.mjs +9 -0
  60. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request-metadata.dto.ts.mjs +9 -0
  61. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request.dto.mjs +9 -0
  62. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-response.dto.mjs +9 -0
  63. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/hmfl.mjs +9 -0
  64. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-log-io.service.mjs +77 -0
  65. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/body-converter.mjs +22 -0
  66. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/body-serializer.mjs +47 -0
  67. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/http-request-converter.mjs +44 -0
  68. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/http-response-converter.mjs +32 -0
  69. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-converter.mjs +31 -0
  70. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-headers-converter.mjs +35 -0
  71. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-message.util.mjs +19 -0
  72. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-metadata-converter.mjs +27 -0
  73. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/request-metadata-converter.mjs +29 -0
  74. package/esm2022/lib/framework/mock/http-monitoring-console/util/console-body-type.mjs +18 -0
  75. package/esm2022/lib/framework/mock/http-monitoring-console/util/console-type-class.mjs +17 -0
  76. package/esm2022/lib/framework/mock/http-monitoring-console/util/data.util.mjs +75 -0
  77. package/esm2022/lib/framework/mock/http-monitoring-console/util/size.util.mjs +35 -0
  78. package/esm2022/lib/framework/mock/http-monitoring-console/util/url.util.mjs +26 -0
  79. package/esm2022/lib/model/business/index.mjs +2 -1
  80. package/esm2022/lib/model/business/lang/app-bridge-command.mjs +3 -3
  81. package/esm2022/lib/model/business/lang/destroyable.mjs +3 -3
  82. package/esm2022/lib/model/business/lang/identifiable.mjs +3 -3
  83. package/esm2022/lib/model/business/logging/http-mock-logging-constant.enum.mjs +34 -0
  84. package/esm2022/lib/model/business/logging/index.mjs +6 -0
  85. package/esm2022/lib/model/business/logging/log-connector.mjs +9 -0
  86. package/esm2022/lib/model/business/logging/log-level.enum.mjs +35 -0
  87. package/esm2022/lib/model/business/logging/log.mjs +9 -0
  88. package/esm2022/lib/model/business/logging/logger.mjs +2 -0
  89. package/esm2022/lib/model/business/logging/transactional-logger.mjs +9 -0
  90. package/esm2022/lib/model/business/mock/http/fetch-client.mjs +7 -2
  91. package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +1 -1
  92. package/esm2022/lib/model/business/mock/http/http-mock-request-metadata.mjs +9 -0
  93. package/esm2022/lib/model/business/mock/http/index.mjs +3 -1
  94. package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-metadata.mjs +9 -0
  95. package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-prefetch-metadata.mjs +9 -0
  96. package/esm2022/lib/model/business/mock/http/logging/index.mjs +3 -0
  97. package/esm2022/lib/model/service/index.mjs +3 -2
  98. package/esm2022/lib/model/service/logging/index.mjs +2 -0
  99. package/esm2022/lib/model/service/logging/logger-service.mjs +24 -0
  100. package/esm2022/lib/model/service/mock/http/index.mjs +3 -0
  101. package/esm2022/lib/model/service/mock/http/logging/http-mock-logging-service.mjs +110 -0
  102. package/esm2022/lib/model/service/mock/http/logging/index.mjs +2 -0
  103. package/esm2022/lib/model/service/ui/app-bridge.service.mjs +3 -3
  104. package/esm2022/lib/model/service/ui/dark-mode.service.mjs +3 -3
  105. package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +3 -3
  106. package/esm2022/lib/util/default-scroll-behavior.mjs +3 -3
  107. package/fesm2022/angular-toolbox.mjs +3112 -1000
  108. package/fesm2022/angular-toolbox.mjs.map +1 -1
  109. package/lib/core/bridge/app-bridge.d.ts +2 -2
  110. package/lib/core/error/app-bridge-error.d.ts +2 -2
  111. package/lib/core/error/http-mock-service-error.d.ts +2 -2
  112. package/lib/core/error/integrity-error.d.ts +2 -2
  113. package/lib/core/error/subscription-error.d.ts +2 -2
  114. package/lib/core/impl/lang/identifiable-component.d.ts +2 -2
  115. package/lib/core/impl/version/version.impl.d.ts +2 -2
  116. package/lib/framework/index.d.ts +2 -0
  117. package/lib/framework/logging/connector/console-log-connector.d.ts +34 -0
  118. package/lib/framework/logging/connector/default-log-connector.d.ts +34 -0
  119. package/lib/framework/logging/connector/html-log-connector.d.ts +72 -0
  120. package/lib/framework/logging/connector/index.d.ts +3 -0
  121. package/lib/framework/logging/impl/abstract-logger.d.ts +69 -0
  122. package/lib/framework/logging/impl/index.d.ts +2 -0
  123. package/lib/framework/logging/impl/log-impl.d.ts +42 -0
  124. package/lib/framework/logging/index.d.ts +3 -0
  125. package/lib/framework/logging/util/index.d.ts +3 -0
  126. package/lib/framework/logging/util/log.builder.d.ts +24 -0
  127. package/lib/framework/logging/util/log.constant.d.ts +23 -0
  128. package/lib/framework/logging/util/log.util.d.ts +48 -0
  129. package/lib/framework/mock/http/core/data-storage.d.ts +6 -1
  130. package/lib/framework/mock/http/core/response-delay.d.ts +23 -0
  131. package/lib/framework/mock/http/event/event-target.impl.d.ts +8 -0
  132. package/lib/framework/mock/http/logging/http-mock-logger.d.ts +14 -0
  133. package/lib/framework/mock/http/logging/http-mock-logging-metadata.builder.d.ts +20 -0
  134. package/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.d.ts +2 -2
  135. package/lib/framework/mock/http/path-to-regexp/model/lex-token.d.ts +2 -2
  136. package/lib/framework/mock/http/util/data-storage.builder.d.ts +3 -2
  137. package/lib/framework/mock/http/util/http-headers.util.d.ts +10 -0
  138. package/lib/framework/mock/http/util/http-mock-max-delay.d.ts +11 -0
  139. package/lib/framework/mock/http/util/http-mock-response-delay.util.d.ts +22 -0
  140. package/lib/framework/mock/http/util/http-mock-response.builder.d.ts +16 -0
  141. package/lib/framework/mock/http/util/index.d.ts +1 -0
  142. package/lib/framework/mock/http/xhr/delegate-xhr.d.ts +11 -4
  143. package/lib/framework/mock/http/xhr/http-mock-factory.impl.d.ts +3 -1
  144. package/lib/framework/mock/http/xhr/xhr-proxy-impl.d.ts +6 -5
  145. package/lib/framework/mock/http-monitoring-console/component/console-footer/console-footer.component.d.ts +8 -0
  146. package/lib/framework/mock/http-monitoring-console/component/console-menu/console-menu.component.d.ts +21 -0
  147. package/lib/framework/mock/http-monitoring-console/component/http-monitoring-console/http-monitoring-console.component.d.ts +42 -0
  148. package/lib/framework/mock/http-monitoring-console/component/renderer/icon-renderer/icon-renderer.component.d.ts +12 -0
  149. package/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer/json-viewer.component.d.ts +8 -0
  150. package/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer-panel/json-viewer-panel.component.d.ts +7 -0
  151. package/lib/framework/mock/http-monitoring-console/component/renderer/payload-renderer/payload-renderer.component.d.ts +20 -0
  152. package/lib/framework/mock/http-monitoring-console/component/renderer/response-body-renderer/response-body-renderer.component.d.ts +20 -0
  153. package/lib/framework/mock/http-monitoring-console/component/renderer/response-preview-renderer/response-preview-renderer.component.d.ts +27 -0
  154. package/lib/framework/mock/http-monitoring-console/component/renderer/timing-renderer/timing-renderer.component.d.ts +13 -0
  155. package/lib/framework/mock/http-monitoring-console/component/request-details/request-details.component.d.ts +27 -0
  156. package/lib/framework/mock/http-monitoring-console/connector/http-monitoring-console-log-connector.d.ts +40 -0
  157. package/lib/framework/mock/http-monitoring-console/index.d.ts +1 -0
  158. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-action-type.d.ts +12 -0
  159. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-action.d.ts +12 -0
  160. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-json.d.ts +14 -0
  161. package/lib/framework/mock/http-monitoring-console/model/business/atx-is-imported-log.d.ts +9 -0
  162. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-body-dto.d.ts +11 -0
  163. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-header-dto.d.ts +11 -0
  164. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log-metadata.dto.d.ts +18 -0
  165. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log.dto.d.ts +23 -0
  166. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request-metadata.dto.ts.d.ts +32 -0
  167. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request.dto.d.ts +18 -0
  168. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-response.dto.d.ts +16 -0
  169. package/lib/framework/mock/http-monitoring-console/model/business/io/hmfl.d.ts +12 -0
  170. package/lib/framework/mock/http-monitoring-console/model/service/atx-log-io.service.d.ts +11 -0
  171. package/lib/framework/mock/http-monitoring-console/model/service/io/body-converter.d.ts +12 -0
  172. package/lib/framework/mock/http-monitoring-console/model/service/io/body-serializer.d.ts +13 -0
  173. package/lib/framework/mock/http-monitoring-console/model/service/io/http-request-converter.d.ts +13 -0
  174. package/lib/framework/mock/http-monitoring-console/model/service/io/http-response-converter.d.ts +13 -0
  175. package/lib/framework/mock/http-monitoring-console/model/service/io/log-converter.d.ts +13 -0
  176. package/lib/framework/mock/http-monitoring-console/model/service/io/log-headers-converter.d.ts +13 -0
  177. package/lib/framework/mock/http-monitoring-console/model/service/io/log-message.util.d.ts +12 -0
  178. package/lib/framework/mock/http-monitoring-console/model/service/io/log-metadata-converter.d.ts +13 -0
  179. package/lib/framework/mock/http-monitoring-console/model/service/io/request-metadata-converter.d.ts +13 -0
  180. package/lib/framework/mock/http-monitoring-console/util/console-body-type.d.ts +16 -0
  181. package/lib/framework/mock/http-monitoring-console/util/console-type-class.d.ts +15 -0
  182. package/lib/framework/mock/http-monitoring-console/util/data.util.d.ts +13 -0
  183. package/lib/framework/mock/http-monitoring-console/util/size.util.d.ts +11 -0
  184. package/lib/framework/mock/http-monitoring-console/util/url.util.d.ts +13 -0
  185. package/lib/model/business/index.d.ts +1 -0
  186. package/lib/model/business/lang/app-bridge-command.d.ts +2 -2
  187. package/lib/model/business/lang/destroyable.d.ts +2 -2
  188. package/lib/model/business/lang/identifiable.d.ts +2 -2
  189. package/lib/model/business/logging/http-mock-logging-constant.enum.d.ts +32 -0
  190. package/lib/model/business/logging/index.d.ts +5 -0
  191. package/lib/model/business/logging/log-connector.d.ts +36 -0
  192. package/lib/model/business/logging/log-level.enum.d.ts +33 -0
  193. package/lib/model/business/logging/log.d.ts +34 -0
  194. package/lib/model/business/logging/logger.d.ts +58 -0
  195. package/lib/model/business/logging/transactional-logger.d.ts +28 -0
  196. package/lib/model/business/mock/http/fetch-client.d.ts +1 -1
  197. package/lib/model/business/mock/http/http-method-mock.d.ts +1 -6
  198. package/lib/model/business/mock/http/http-mock-request-metadata.d.ts +33 -0
  199. package/lib/model/business/mock/http/index.d.ts +2 -0
  200. package/lib/model/business/mock/http/logging/http-mock-logging-metadata.d.ts +15 -0
  201. package/lib/model/business/mock/http/logging/http-mock-logging-prefetch-metadata.d.ts +16 -0
  202. package/lib/model/business/mock/http/logging/index.d.ts +2 -0
  203. package/lib/model/service/index.d.ts +2 -1
  204. package/lib/model/service/logging/index.d.ts +1 -0
  205. package/lib/model/service/logging/logger-service.d.ts +9 -0
  206. package/lib/model/service/mock/http/index.d.ts +2 -0
  207. package/lib/model/service/mock/http/logging/http-mock-logging-service.d.ts +78 -0
  208. package/lib/model/service/mock/http/logging/index.d.ts +1 -0
  209. package/lib/model/service/ui/dark-mode.service.d.ts +2 -2
  210. package/lib/util/default-scroll-behavior.d.ts +2 -2
  211. package/package.json +1 -1
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ /**
9
+ * The default implementation of the `Log` interface.
10
+ */
11
+ export class LogImpl {
12
+ /**
13
+ * Creates a new `LogImpl` instance.
14
+ *
15
+ * @param caller Ahuman readable reference for the invoker associated with this log.
16
+ * @param message The message associated with this log.
17
+ * @param level The criticality level of this log.
18
+ * @param metadata Optional metada associated with this log.
19
+ */
20
+ constructor(caller, message, level, metadata) {
21
+ this.caller = caller;
22
+ this.message = message;
23
+ this.level = level;
24
+ this.metadata = metadata;
25
+ this.timestamp = Date.now();
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbG9nZ2luZy9pbXBsL2xvZy1pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUlIOztHQUVHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUEyQmhCOzs7Ozs7O09BT0c7SUFDSCxZQUFZLE1BQWMsRUFBRSxPQUFlLEVBQUUsS0FBZSxFQUFFLFFBQWM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXHJcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgTG9nLCBMb2dMZXZlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBgTG9nYCBpbnRlcmZhY2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTG9nSW1wbCBpbXBsZW1lbnRzIExvZyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaW5oZXJpdGRvY1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2FsbGVyOiBzdHJpbmc7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQGluaGVyaXRkb2NcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbmhlcml0ZG9jXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBsZXZlbDogTG9nTGV2ZWw7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQGluaGVyaXRkb2NcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHRpbWVzdGFtcDogbnVtYmVyO1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBpbmhlcml0ZG9jXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBtZXRhZGF0YTogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgTG9nSW1wbGAgaW5zdGFuY2UuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBjYWxsZXIgQWh1bWFuIHJlYWRhYmxlIHJlZmVyZW5jZSBmb3IgdGhlIGludm9rZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbG9nLlxyXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbG9nLlxyXG4gICAgICogQHBhcmFtIGxldmVsIFRoZSBjcml0aWNhbGl0eSBsZXZlbCBvZiB0aGlzIGxvZy5cclxuICAgICAqIEBwYXJhbSBtZXRhZGF0YSBPcHRpb25hbCBtZXRhZGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbG9nLlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihjYWxsZXI6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBsZXZlbDogTG9nTGV2ZWwsIG1ldGFkYXRhPzogYW55KSB7XHJcbiAgICAgICAgdGhpcy5jYWxsZXIgPSBjYWxsZXI7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcclxuICAgICAgICB0aGlzLmxldmVsID0gbGV2ZWw7XHJcbiAgICAgICAgdGhpcy5tZXRhZGF0YSA9IG1ldGFkYXRhO1xyXG4gICAgICAgIHRoaXMudGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './util';
2
+ export * from './impl';
3
+ export * from './connector';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbG9nZ2luZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW1wbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdG9yJzsiXX0=
@@ -0,0 +1,4 @@
1
+ export * from './log.builder';
2
+ export * from './log.util';
3
+ export * from './log.constant';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbG9nZ2luZy91dGlsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvZy5idWlsZGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2cudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9nLmNvbnN0YW50JzsiXX0=
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { LogLevel } from "../../../model";
9
+ import { LogImpl } from "../impl";
10
+ /**
11
+ * A static builder that creates new `Log` objects.
12
+ */
13
+ export class LogBuilder {
14
+ /**
15
+ * Builds and returns a new `Log` object initialized with the specified parameters.
16
+ *
17
+ * @param caller The reference to the object that sends the new log.
18
+ * @param message The message of the new log.
19
+ * @param level The level of the new log.
20
+ * @param metadata The optional metadata associated with the new log.
21
+ *
22
+ * @returns A new `Log` object
23
+ */
24
+ static build(caller, message, level = LogLevel.INFO, metadata) {
25
+ return new LogImpl(caller, message, level, metadata);
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbG9nZ2luZy91dGlsL2xvZy5idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBTyxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFFbkI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLFFBQWtCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBYztRQUNoRyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IExvZywgTG9nTGV2ZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxcIjtcclxuaW1wb3J0IHsgTG9nSW1wbCB9IGZyb20gXCIuLi9pbXBsXCI7XHJcblxyXG4vKipcclxuICogQSBzdGF0aWMgYnVpbGRlciB0aGF0IGNyZWF0ZXMgbmV3IGBMb2dgIG9iamVjdHMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTG9nQnVpbGRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCdWlsZHMgYW5kIHJldHVybnMgYSBuZXcgYExvZ2Agb2JqZWN0IGluaXRpYWxpemVkIHdpdGggdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gY2FsbGVyIFRoZSByZWZlcmVuY2UgdG8gdGhlIG9iamVjdCB0aGF0IHNlbmRzIHRoZSBuZXcgbG9nLlxyXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2Ugb2YgdGhlIG5ldyBsb2cuXHJcbiAgICAgKiBAcGFyYW0gbGV2ZWwgVGhlIGxldmVsIG9mIHRoZSBuZXcgbG9nLlxyXG4gICAgICogQHBhcmFtIG1ldGFkYXRhIFRoZSBvcHRpb25hbCBtZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIG5ldyBsb2cuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgbmV3IGBMb2dgIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkKGNhbGxlcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGxldmVsOiBMb2dMZXZlbCA9IExvZ0xldmVsLklORk8sIG1ldGFkYXRhPzogYW55KTogTG9nIHtcclxuICAgICAgICByZXR1cm4gbmV3IExvZ0ltcGwoY2FsbGVyLCBtZXNzYWdlLCBsZXZlbCwgbWV0YWRhdGEpO1xyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ /**
9
+ * A convenient string used to identify logs of LogLevel.INFO.
10
+ */
11
+ export const LOG_INFO_STRING = "INFO";
12
+ /**
13
+ * A convenient string used to identify logs of LogLevel.CONFIG.
14
+ */
15
+ export const LOG_CONFIG_STRING = "CONFIG";
16
+ /**
17
+ * A convenient string used to identify logs of LogLevel.WARNING.
18
+ */
19
+ export const LOG_WARNING_STRING = "WARNING";
20
+ /**
21
+ * A convenient string used to identify logs of LogLevel.ERROR.
22
+ */
23
+ export const LOG_ERROR_STRING = "ERROR";
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmNvbnN0YW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL2xvZ2dpbmcvdXRpbC9sb2cuY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQVcsTUFBTSxDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQVcsUUFBUSxDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQVcsU0FBUyxDQUFDO0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQVcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEEgY29udmVuaWVudCBzdHJpbmcgdXNlZCB0byBpZGVudGlmeSBsb2dzIG9mIExvZ0xldmVsLklORk8uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTE9HX0lORk9fU1RSSU5HOiBzdHJpbmcgPSBcIklORk9cIjtcclxuXHJcbi8qKlxyXG4gKiBBIGNvbnZlbmllbnQgc3RyaW5nIHVzZWQgdG8gaWRlbnRpZnkgbG9ncyBvZiBMb2dMZXZlbC5DT05GSUcuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTE9HX0NPTkZJR19TVFJJTkc6IHN0cmluZyA9IFwiQ09ORklHXCI7XHJcblxyXG4vKipcclxuICogQSBjb252ZW5pZW50IHN0cmluZyB1c2VkIHRvIGlkZW50aWZ5IGxvZ3Mgb2YgTG9nTGV2ZWwuV0FSTklORy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBMT0dfV0FSTklOR19TVFJJTkc6IHN0cmluZyA9IFwiV0FSTklOR1wiO1xyXG5cclxuLyoqXHJcbiAqIEEgY29udmVuaWVudCBzdHJpbmcgdXNlZCB0byBpZGVudGlmeSBsb2dzIG9mIExvZ0xldmVsLkVSUk9SLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IExPR19FUlJPUl9TVFJJTkc6IHN0cmluZyA9IFwiRVJST1JcIjsiXX0=
@@ -0,0 +1,142 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { formatDate } from "@angular/common";
9
+ import { LogLevel } from "../../../model";
10
+ import { EMPTY_STRING, OBJECT, STRING } from "../../../util";
11
+ import { LOG_CONFIG_STRING, LOG_ERROR_STRING, LOG_INFO_STRING, LOG_WARNING_STRING } from "./log.constant";
12
+ /**
13
+ * @private
14
+ */
15
+ const TS_FMT = "HH:MM:SS";
16
+ /**
17
+ * @private
18
+ */
19
+ const SEPARATOR = ", ";
20
+ /**
21
+ * @private
22
+ */
23
+ const R_BRACKET = "[";
24
+ /**
25
+ * @private
26
+ */
27
+ const L_BRACKET = "]";
28
+ /**
29
+ * @private
30
+ */
31
+ const LOCALE = "en-us";
32
+ /**
33
+ * @private
34
+ */
35
+ const getStringEnd = (cusror, size) => {
36
+ return cusror !== size ? SEPARATOR : EMPTY_STRING;
37
+ };
38
+ /**
39
+ * A convenient utility class for formatting logs.
40
+ */
41
+ export class LogUtil {
42
+ /**
43
+ * Turns the specified log list into a human redeable string.
44
+ *
45
+ * @param logList The list of logs to format.
46
+ * @returns The formatted log list.
47
+ */
48
+ static logListToString(logList) {
49
+ const len = logList.length - 1, getLevelString = LogUtil.getLevelString;
50
+ let logs = EMPTY_STRING, i = 0, levelTxt = EMPTY_STRING;
51
+ for (; i <= len; ++i) {
52
+ const log = logList[i];
53
+ logs += `[${LogUtil.dateToHHMMSS(log.timestamp)}][${getLevelString(log.level)}][${log.caller}][${log.message}]${LogUtil.metadataToString(log.metadata)}\n`;
54
+ }
55
+ return logs;
56
+ }
57
+ /**
58
+ * Turns the specified log level into a human redeable string.
59
+ *
60
+ * @param level The log level to format.
61
+ * @returns The formatted log level.
62
+ */
63
+ static getLevelString(level) {
64
+ if (level === LogLevel.INFO)
65
+ return LOG_INFO_STRING;
66
+ if (level === LogLevel.CONFIG)
67
+ return LOG_CONFIG_STRING;
68
+ if (level === LogLevel.WARNING)
69
+ return LOG_WARNING_STRING;
70
+ if (level === LogLevel.ERROR)
71
+ return LOG_ERROR_STRING;
72
+ return EMPTY_STRING;
73
+ }
74
+ /**
75
+ * Return a string that represents the specified metadata object.
76
+ *
77
+ * @param obj The metadata object to format.
78
+ * @returns A string that represents the specified metadata object.
79
+ */
80
+ static metadataToString(obj) {
81
+ let result = EMPTY_STRING;
82
+ if (!obj)
83
+ return result;
84
+ if (Array.isArray(obj))
85
+ return LogUtil.formatArray(obj);
86
+ const keys = Object.keys(obj), len = keys.length - 1;
87
+ let i = 0;
88
+ for (; i <= len; ++i) {
89
+ const key = keys[i];
90
+ const value = obj[key];
91
+ if (value === null)
92
+ result += `${key}=null${getStringEnd(i, len)}`;
93
+ else if (value === undefined)
94
+ result += `${key}=undefined${getStringEnd(i, len)}`;
95
+ else if (typeof value === STRING)
96
+ result += `${key}="${value}"${getStringEnd(i, len)}`;
97
+ else if (Array.isArray(value))
98
+ result += `${key}=${LogUtil.formatArray(value)}${getStringEnd(i, len)}`;
99
+ else if (typeof value === OBJECT)
100
+ result += `${key}=${LogUtil.metadataToString(value)}${getStringEnd(i, len)}`;
101
+ else
102
+ result += `${key}=${value}${getStringEnd(i, len)}`;
103
+ }
104
+ ;
105
+ if (result.endsWith(SEPARATOR)) {
106
+ result = result.slice(0, -2);
107
+ }
108
+ return result !== EMPTY_STRING ? R_BRACKET + result + L_BRACKET : result;
109
+ }
110
+ /**
111
+ * Returns a string that represents the specified timestamp in form `"HH:MM:SS"`.
112
+ *
113
+ * @param timestamp The timestamp to format.
114
+ * @returns A string that represents the specified timestamp in form `"HH:MM:SS"`.
115
+ */
116
+ static dateToHHMMSS(timestamp) {
117
+ return formatDate(timestamp, TS_FMT, LOCALE);
118
+ }
119
+ /**
120
+ * Returns a string that represents the specified array.
121
+ *
122
+ * @param array The array to format.
123
+ * @returns A tring that represents the specified array.
124
+ */
125
+ static formatArray(array) {
126
+ const len = array.length - 1;
127
+ let i = 0, result = EMPTY_STRING;
128
+ for (; i <= len; ++i) {
129
+ const value = array[i];
130
+ if (typeof value === STRING)
131
+ result += `"${value}"${getStringEnd(i, len)}`;
132
+ else if (Array.isArray(value))
133
+ result += `${LogUtil.formatArray(value)}${getStringEnd(i, len)}`;
134
+ else if (typeof value === OBJECT)
135
+ result += `${LogUtil.metadataToString(value)}${getStringEnd(i, len)}`;
136
+ else
137
+ result += `${value}${getStringEnd(i, len)}`;
138
+ }
139
+ return `[${result}]`;
140
+ }
141
+ }
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbG9nZ2luZy91dGlsL2xvZy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQU8sUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRzs7R0FFRztBQUNILE1BQU0sTUFBTSxHQUFXLFVBQVUsQ0FBQztBQUVsQzs7R0FFRztBQUNILE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQztBQUUvQjs7R0FFRztBQUNILE1BQU0sU0FBUyxHQUFXLEdBQUcsQ0FBQztBQUU5Qjs7R0FFRztBQUNILE1BQU0sU0FBUyxHQUFXLEdBQUcsQ0FBQztBQUU5Qjs7R0FFRztBQUNILE1BQU0sTUFBTSxHQUFXLE9BQU8sQ0FBQztBQUUvQjs7R0FFRztBQUNILE1BQU0sWUFBWSxHQUFhLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxFQUFFO0lBQzVELE9BQU8sTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7QUFDdEQsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sT0FBTztJQUVoQjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBYztRQUN4QyxNQUFNLEdBQUcsR0FBVyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDaEMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDOUMsSUFBSSxJQUFJLEdBQVcsWUFBWSxFQUMzQixDQUFDLEdBQVcsQ0FBQyxFQUNiLFFBQVEsR0FBVyxZQUFZLENBQUM7UUFDcEMsT0FBTSxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbEIsTUFBTSxHQUFHLEdBQVEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMvSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFlO1FBQ3hDLElBQUksS0FBSyxLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQUUsT0FBTyxlQUFlLENBQUM7UUFDcEQsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLE1BQU07WUFBRSxPQUFPLGlCQUFpQixDQUFDO1FBQ3hELElBQUksS0FBSyxLQUFLLFFBQVEsQ0FBQyxPQUFPO1lBQUUsT0FBTyxrQkFBa0IsQ0FBQztRQUMxRCxJQUFJLEtBQUssS0FBSyxRQUFRLENBQUMsS0FBSztZQUFFLE9BQU8sZ0JBQWdCLENBQUM7UUFDdEQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQVE7UUFDbkMsSUFBSSxNQUFNLEdBQVcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDeEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxNQUFNLElBQUksR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNqQyxHQUFHLEdBQVcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLE9BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLEtBQUssR0FBUSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsSUFBSSxLQUFLLEtBQUssSUFBSTtnQkFBRSxNQUFNLElBQUksR0FBRyxHQUFHLFFBQVEsWUFBWSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2lCQUM5RCxJQUFJLEtBQUssS0FBSyxTQUFTO2dCQUFFLE1BQU0sSUFBSSxHQUFHLEdBQUcsYUFBYSxZQUFZLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7aUJBQzdFLElBQUksT0FBTyxLQUFLLEtBQUssTUFBTTtnQkFBRSxNQUFNLElBQUksR0FBRyxHQUFHLEtBQUssS0FBSyxJQUFJLFlBQVksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztpQkFDbEYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFBRSxNQUFNLElBQUksR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7aUJBQ2xHLElBQUksT0FBTyxLQUFLLEtBQUssTUFBTTtnQkFBRSxNQUFNLElBQUksR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQzs7Z0JBQzFHLE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzVELENBQUM7UUFBQSxDQUFDO1FBQ0YsSUFBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sTUFBTSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQWlCO1FBQ3hDLE9BQU8sVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFZO1FBQ25DLE1BQU0sR0FBRyxHQUFXLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFXLENBQUMsRUFDYixNQUFNLEdBQVcsWUFBWSxDQUFDO1FBQ2xDLE9BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sS0FBSyxHQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLE9BQU8sS0FBSyxLQUFLLE1BQU07Z0JBQUUsTUFBTSxJQUFJLElBQUksS0FBSyxJQUFJLFlBQVksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztpQkFDdEUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFBRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztpQkFDM0YsSUFBSSxPQUFPLEtBQUssS0FBSyxNQUFNO2dCQUFFLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7O2dCQUNuRyxNQUFNLElBQUksR0FBRyxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFDRCxPQUFPLElBQUksTUFBTSxHQUFHLENBQUM7SUFDekIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTG9nLCBMb2dMZXZlbH0gZnJvbSBcIi4uLy4uLy4uL21vZGVsXCI7XHJcbmltcG9ydCB7IEVNUFRZX1NUUklORywgT0JKRUNULCBTVFJJTkcgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBMT0dfQ09ORklHX1NUUklORywgTE9HX0VSUk9SX1NUUklORywgTE9HX0lORk9fU1RSSU5HLCBMT0dfV0FSTklOR19TVFJJTkcgfSBmcm9tIFwiLi9sb2cuY29uc3RhbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgVFNfRk1UOiBzdHJpbmcgPSBcIkhIOk1NOlNTXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IFNFUEFSQVRPUjogc3RyaW5nID0gXCIsIFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBSX0JSQUNLRVQ6IHN0cmluZyA9IFwiW1wiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBMX0JSQUNLRVQ6IHN0cmluZyA9IFwiXVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBMT0NBTEU6IHN0cmluZyA9IFwiZW4tdXNcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgZ2V0U3RyaW5nRW5kOiBGdW5jdGlvbiA9IChjdXNyb3I6IG51bWJlciwgc2l6ZTogbnVtYmVyKSA9PiB7XHJcbiAgICByZXR1cm4gY3Vzcm9yICE9PSBzaXplID8gU0VQQVJBVE9SIDogRU1QVFlfU1RSSU5HO1xyXG59XHJcblxyXG4vKipcclxuICogQSBjb252ZW5pZW50IHV0aWxpdHkgY2xhc3MgZm9yIGZvcm1hdHRpbmcgbG9ncy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBMb2dVdGlsIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFR1cm5zIHRoZSBzcGVjaWZpZWQgbG9nIGxpc3QgaW50byBhIGh1bWFuIHJlZGVhYmxlIHN0cmluZy5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGxvZ0xpc3QgVGhlIGxpc3Qgb2YgbG9ncyB0byBmb3JtYXQuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGxvZyBsaXN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGxvZ0xpc3RUb1N0cmluZyhsb2dMaXN0OiBMb2dbXSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgbGVuOiBudW1iZXIgPSBsb2dMaXN0Lmxlbmd0aCAtIDEsXHJcbiAgICAgICAgICAgICAgZ2V0TGV2ZWxTdHJpbmcgPSBMb2dVdGlsLmdldExldmVsU3RyaW5nO1xyXG4gICAgICAgIGxldCBsb2dzOiBzdHJpbmcgPSBFTVBUWV9TVFJJTkcsXHJcbiAgICAgICAgICAgIGk6IG51bWJlciA9IDAsXHJcbiAgICAgICAgICAgIGxldmVsVHh0OiBzdHJpbmcgPSBFTVBUWV9TVFJJTkc7XHJcbiAgICAgICAgZm9yKDsgaSA8PSBsZW47ICsraSkge1xyXG4gICAgICAgICAgICBjb25zdCBsb2c6IExvZyA9IGxvZ0xpc3RbaV07XHJcbiAgICAgICAgICAgIGxvZ3MgKz0gYFske0xvZ1V0aWwuZGF0ZVRvSEhNTVNTKGxvZy50aW1lc3RhbXApfV1bJHtnZXRMZXZlbFN0cmluZyhsb2cubGV2ZWwpfV1bJHtsb2cuY2FsbGVyfV1bJHtsb2cubWVzc2FnZX1dJHtMb2dVdGlsLm1ldGFkYXRhVG9TdHJpbmcobG9nLm1ldGFkYXRhKX1cXG5gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbG9ncztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFR1cm5zIHRoZSBzcGVjaWZpZWQgbG9nIGxldmVsIGludG8gYSBodW1hbiByZWRlYWJsZSBzdHJpbmcuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBsZXZlbCBUaGUgbG9nIGxldmVsIHRvIGZvcm1hdC5cclxuICAgICAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgbG9nIGxldmVsLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldExldmVsU3RyaW5nKGxldmVsOiBMb2dMZXZlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKGxldmVsID09PSBMb2dMZXZlbC5JTkZPKSByZXR1cm4gTE9HX0lORk9fU1RSSU5HO1xyXG4gICAgICAgIGlmIChsZXZlbCA9PT0gTG9nTGV2ZWwuQ09ORklHKSByZXR1cm4gTE9HX0NPTkZJR19TVFJJTkc7XHJcbiAgICAgICAgaWYgKGxldmVsID09PSBMb2dMZXZlbC5XQVJOSU5HKSByZXR1cm4gTE9HX1dBUk5JTkdfU1RSSU5HO1xyXG4gICAgICAgIGlmIChsZXZlbCA9PT0gTG9nTGV2ZWwuRVJST1IpIHJldHVybiBMT0dfRVJST1JfU1RSSU5HO1xyXG4gICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm4gYSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBzcGVjaWZpZWQgbWV0YWRhdGEgb2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gb2JqIFRoZSBtZXRhZGF0YSBvYmplY3QgdG8gZm9ybWF0LlxyXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBzcGVjaWZpZWQgbWV0YWRhdGEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG1ldGFkYXRhVG9TdHJpbmcob2JqOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZyA9IEVNUFRZX1NUUklORztcclxuICAgICAgICBpZiAoIW9iaikgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSByZXR1cm4gTG9nVXRpbC5mb3JtYXRBcnJheShvYmopO1xyXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMob2JqKSxcclxuICAgICAgICAgICAgICBsZW46IG51bWJlciA9IGtleXMubGVuZ3RoIC0gMTtcclxuICAgICAgICBsZXQgaTogbnVtYmVyID0gMDtcclxuICAgICAgICBmb3IoOyBpIDw9IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleTogc3RyaW5nID0ga2V5c1tpXTtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWU6IGFueSA9IG9ialtrZXldO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHJlc3VsdCArPSBgJHtrZXl9PW51bGwke2dldFN0cmluZ0VuZChpLCBsZW4pfWA7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJlc3VsdCArPSBgJHtrZXl9PXVuZGVmaW5lZCR7Z2V0U3RyaW5nRW5kKGksIGxlbil9YDtcclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBTVFJJTkcpIHJlc3VsdCArPSBgJHtrZXl9PVwiJHt2YWx1ZX1cIiR7Z2V0U3RyaW5nRW5kKGksIGxlbil9YDtcclxuICAgICAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJlc3VsdCArPSBgJHtrZXl9PSR7TG9nVXRpbC5mb3JtYXRBcnJheSh2YWx1ZSl9JHtnZXRTdHJpbmdFbmQoaSwgbGVuKX1gO1xyXG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IE9CSkVDVCkgcmVzdWx0ICs9IGAke2tleX09JHtMb2dVdGlsLm1ldGFkYXRhVG9TdHJpbmcodmFsdWUpfSR7Z2V0U3RyaW5nRW5kKGksIGxlbil9YDtcclxuICAgICAgICAgICAgZWxzZSByZXN1bHQgKz0gYCR7a2V5fT0ke3ZhbHVlfSR7Z2V0U3RyaW5nRW5kKGksIGxlbil9YDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmKHJlc3VsdC5lbmRzV2l0aChTRVBBUkFUT1IpKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZSgwLCAtIDIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0ICE9PSBFTVBUWV9TVFJJTkcgPyBSX0JSQUNLRVQgKyByZXN1bHQgKyBMX0JSQUNLRVQgOiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIHNwZWNpZmllZCB0aW1lc3RhbXAgaW4gZm9ybSBgXCJISDpNTTpTU1wiYC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHRpbWVzdGFtcCBUaGUgdGltZXN0YW1wIHRvIGZvcm1hdC5cclxuICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcCBpbiBmb3JtIGBcIkhIOk1NOlNTXCJgLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGRhdGVUb0hITU1TUyh0aW1lc3RhbXA6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdERhdGUodGltZXN0YW1wLCBUU19GTVQsIExPQ0FMRSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIHNwZWNpZmllZCBhcnJheS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGFycmF5IFRoZSBhcnJheSB0byBmb3JtYXQuXHJcbiAgICAgKiBAcmV0dXJucyBBIHRyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgc3BlY2lmaWVkIGFycmF5LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBmb3JtYXRBcnJheShhcnJheTogYW55W10pOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGxlbjogbnVtYmVyID0gYXJyYXkubGVuZ3RoIC0gMTtcclxuICAgICAgICBsZXQgaTogbnVtYmVyID0gMCxcclxuICAgICAgICAgICAgcmVzdWx0OiBzdHJpbmcgPSBFTVBUWV9TVFJJTkc7XHJcbiAgICAgICAgZm9yKDsgaSA8PSBsZW47ICsraSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZTogYW55ID0gYXJyYXlbaV07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFNUUklORykgcmVzdWx0ICs9IGBcIiR7dmFsdWV9XCIke2dldFN0cmluZ0VuZChpLCBsZW4pfWA7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXN1bHQgKz0gYCR7TG9nVXRpbC5mb3JtYXRBcnJheSh2YWx1ZSl9JHtnZXRTdHJpbmdFbmQoaSwgbGVuKX1gO1xyXG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IE9CSkVDVCkgcmVzdWx0ICs9IGAke0xvZ1V0aWwubWV0YWRhdGFUb1N0cmluZyh2YWx1ZSl9JHtnZXRTdHJpbmdFbmQoaSwgbGVuKX1gO1xyXG4gICAgICAgICAgICBlbHNlIHJlc3VsdCArPSBgJHt2YWx1ZX0ke2dldFN0cmluZ0VuZChpLCBsZW4pfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBgWyR7cmVzdWx0fV1gO1xyXG4gICAgfVxyXG59Il19
@@ -6,4 +6,4 @@
6
6
  * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC9jb3JlL2RhdGEtc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5cclxuaW1wb3J0IHsgSHR0cFJlc3BvbnNlTW9jayB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFV0aWxpdHkgaW50ZXJmYWNlIHVzZWQgYnkgdGhlIGBEZWxlZ2F0ZVhocmAgY2xhc3MgdG8gc3RvcmUgSFRUUCByZXF1ZXN0IGluZm9ybWF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmFnZSB7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2VNb2NrO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFRoZSBhbW91bnQgb2YgZGF0YSBjdXJyZW50bHkgbG9hZGVkLlxyXG4gICAgICovXHJcbiAgICBsb2FkZWQ6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBUaGUgdG90YWwgc2l6ZSBvZiBkYXRhIHRvIGxvYWQuXHJcbiAgICAgKi9cclxuICAgIHRvdGFsOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIGxvYWRlZCBkYXRhLlxyXG4gICAgICovXHJcbiAgICBkYXRhOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIEpTT04gc3RyaW5nIHByZXByZXNlbnRhdGlvbiBvZiB0aGUgbG9hZGVkIGRhdGEuXHJcbiAgICAgKi9cclxuICAgIHN0cmluZ2lmaWVkRGF0YTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC9jb3JlL2RhdGEtc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2VNb2NrLCBIdHRwTW9ja1JlcXVlc3RNZXRhZGF0YSB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFV0aWxpdHkgaW50ZXJmYWNlIHVzZWQgYnkgdGhlIGBEZWxlZ2F0ZVhocmAgY2xhc3MgdG8gc3RvcmUgSFRUUCByZXF1ZXN0IGluZm9ybWF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmFnZSB7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2VNb2NrO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFRoZSBhbW91bnQgb2YgZGF0YSBjdXJyZW50bHkgbG9hZGVkLlxyXG4gICAgICovXHJcbiAgICBsb2FkZWQ6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBUaGUgdG90YWwgc2l6ZSBvZiBkYXRhIHRvIGxvYWQuXHJcbiAgICAgKi9cclxuICAgIHRvdGFsOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIGxvYWRlZCBkYXRhLlxyXG4gICAgICovXHJcbiAgICBkYXRhOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIEpTT04gc3RyaW5nIHByZXByZXNlbnRhdGlvbiBvZiB0aGUgbG9hZGVkIGRhdGEuXHJcbiAgICAgKi9cclxuICAgIHN0cmluZ2lmaWVkRGF0YTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFRoZSBtZXRhZGF0YSBhc3NvY2lhdGVkIHRvIHRoZSBIVFRQIHJlcXVlc3QuXHJcbiAgICAgKi9cclxuICAgIHJlcXVlc3RNZXRhZGF0YTogSHR0cE1vY2tSZXF1ZXN0TWV0YWRhdGE7XHJcbn1cclxuIl19
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtZGVsYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL2NvcmUvcmVzcG9uc2UtZGVsYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFV0aWxpdHkgaW50ZXJmYWNlIHVzZWQgYnkgdGhlIGBEZWxlZ2F0ZVhocmAgY2xhc3MgdG8gbWFuYWdlIHRoZSBkZWxheSBvZiBhbiBIVFRQIHJlc3BvbnNlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZURlbGF5IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBUaGUgYW1vdW50IG9mIHRpbWUgdGhlIEhUVFAgcmVzcXVlc3QgaXMgc3RhbGxlZCBiZWZvcmUgc2VuZGluZyB0aGUgcmVzcG9uc2UsIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAqL1xyXG4gICAgc3RhbGxlZDogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFRoZSBjb21wbGV0ZSBkdXJhdGlvbiBvZiBhbiBIVFRQIHJlcXVlc3QsIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAqL1xyXG4gICAgZHVyYXRpb246IG51bWJlcjtcclxufVxyXG4iXX0=
@@ -75,6 +75,8 @@ export class EventTargetImpl {
75
75
  const listenersForType = ll.get(type);
76
76
  if (listenersForType.has(listener))
77
77
  listenersForType.delete(listener);
78
+ if (listenersForType.size === 0)
79
+ ll.delete(type);
78
80
  }
79
81
  }
80
82
  /**
@@ -107,9 +109,21 @@ export class EventTargetImpl {
107
109
  listener.handleEvent(event);
108
110
  if (options && options.once)
109
111
  listenersForType.delete(listener);
112
+ if (listenersForType.size === 0)
113
+ ll.delete(type);
110
114
  }
111
115
  return true;
112
116
  }
117
+ /**
118
+ * Checks whether the `EventTarget` object has any listeners registered for a specific type of event.
119
+ *
120
+ * @param type The type of event.
121
+ *
122
+ * @return A value of `true` if a listener of the specified type is registered; `false` otherwise.
123
+ */
124
+ hasEventListener(type) {
125
+ return this._listenerList.has(type);
126
+ }
113
127
  /**
114
128
  * @private
115
129
  */
@@ -119,4 +133,4 @@ export class EventTargetImpl {
119
133
  }
120
134
  }
121
135
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdGFyZ2V0LmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL2V2ZW50L2V2ZW50LXRhcmdldC5pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDOztHQUVHO0FBQ0gsTUFBTSxHQUFHLEdBQVcsa0JBQWtCLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBVyxxQkFBcUIsQ0FBQztBQUU3Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQU94Qjs7T0FFRztJQUNIO1FBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksZ0JBQWdCLENBQUMsSUFBWSxFQUFFLFFBQW1ELEVBQUUsT0FBdUQ7UUFDOUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBRSxHQUFxQixJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQyxNQUFNLGdCQUFnQixHQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyw2Q0FBNkM7WUFDN0MsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLG1CQUFtQixDQUFDLElBQVksRUFBRSxRQUFtRCxFQUFFLE9BQW9EO1FBQzlJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLEVBQUUsR0FBcUIsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNmLE1BQU0sZ0JBQWdCLEdBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckQsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGFBQWEsQ0FBQyxLQUFZO1FBQzdCLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxTQUFTLENBQ2YseUZBQXlGLENBQzVGLENBQUM7UUFDTixDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQVcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNoQyxNQUFNLEVBQUUsR0FBcUIsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ25DLEtBQUssTUFBTSxZQUFZLElBQUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBUSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxPQUFPLEdBQVEsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLGtGQUFrRjtZQUNsRixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVE7Z0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0QsMEVBQTBFO2lCQUNyRSxJQUFJLFFBQVEsSUFBSSxPQUFPLFFBQVEsQ0FBQyxXQUFXLEtBQUssUUFBUTtnQkFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNGLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJO2dCQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ2pELElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLFNBQVMsQ0FDZixpQ0FBaUMsTUFBTSxpREFBaUQsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FDbkksQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZyBvcmlnaW5hbCBzb3VyY2UgY29kZTpcclxuICogLSBodHRwczovL2dpdGh1Yi5jb20vYmVubGVzaC9ldmVudC10YXJnZXQtcG9seWZpbGxcclxuICogLSBDb3B5cmlnaHQgKGMpIDIwMjAgQmVuIExlc2hcclxuICogXHJcbiAqIFVzZSBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgXHJcbiAqIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXRcclxuICogaHR0cHM6Ly9naXRodWIuY29tL2Jlbmxlc2gvZXZlbnQtdGFyZ2V0LXBvbHlmaWxsL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcclxuICovXHJcblxyXG5pbXBvcnQgeyBGVU5DVElPTiB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlsXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEFERDogc3RyaW5nID0gXCJhZGRFdmVudExpc3RlbmVyXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IFJFTU9WRTogc3RyaW5nID0gXCJyZW1vdmVFdmVudExpc3RlbmVyXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogQSB1dGlsaXR5IGNsYXNzIHRoZSBwcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGBFdmVudFRhcmdldGAgaW50ZXJmYWNlLlxyXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgZnJhbWV3b3JrOyBwbGVhc2UgZG8gbm90IGV4cG9zZSBpdC5cclxuICogXHJcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0V2ZW50VGFyZ2V0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXZlbnRUYXJnZXRJbXBsIGltcGxlbWVudHMgRXZlbnRUYXJnZXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbGlzdGVuZXJMaXN0OiBNYXA8c3RyaW5nLCBhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5fbGlzdGVuZXJMaXN0ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBTZXRzIHVwIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgc3BlY2lmaWVkIGV2ZW50IGlzIGRlbGl2ZXJlZCB0byB0aGUgdGFyZ2V0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdHlwZSBhIGNhc2Utc2Vuc2l0aXZlIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGV2ZW50IHR5cGUgdG8gbGlzdGVuIGZvci5cclxuICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgb2JqZWN0IHRoYXQgcmVjZWl2ZXMgYSBub3RpZmljYXRpb24gKGFuIG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhlXHJcbiAgICAgKiAgICAgICAgICAgICAgICAgYEV2ZW50YCBpbnRlcmZhY2UpIHdoZW4gYW4gZXZlbnQgb2YgdGhlIHNwZWNpZmllZCB0eXBlIG9jY3Vycy4gXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBhbiBvYmplY3QgdGhhdCBzcGVjaWZpZXMgY2hhcmFjdGVyaXN0aWNzIGFib3V0IHRoZSBldmVudCBsaXN0ZW5lci5cclxuICAgICAqIFxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvYWRkRXZlbnRMaXN0ZW5lclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkRXZlbnRMaXN0ZW5lcih0eXBlOiBzdHJpbmcsIGxpc3RlbmVyOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0IHwgbnVsbCwgb3B0aW9ucz86IGJvb2xlYW4gfCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hlY2tBcmdMZW5ndGgoYXJndW1lbnRzLmxlbmd0aCwgQUREKTtcclxuICAgICAgICBjb25zdCBsbDogTWFwPHN0cmluZywgYW55PiA9IHRoaXMuX2xpc3RlbmVyTGlzdDtcclxuICAgICAgICBpZiAoIWxsLmhhcyh0eXBlKSkgbGwuc2V0KHR5cGUsIG5ldyBNYXAoKSk7XHJcbiAgICAgICAgY29uc3QgbGlzdGVuZXJzRm9yVHlwZTogTWFwPGFueSwgYW55PiA9IGxsLmdldCh0eXBlKTtcclxuICAgICAgICBpZiAoIWxpc3RlbmVyc0ZvclR5cGUuaGFzKGxpc3RlbmVyKSkge1xyXG4gICAgICAgICAgICAvLyBBbnkgZ2l2ZW4gbGlzdGVuZXIgaXMgb25seSByZWdpc3RlcmVkIG9uY2VcclxuICAgICAgICAgICAgbGlzdGVuZXJzRm9yVHlwZS5zZXQobGlzdGVuZXIsIG9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBSZW1vdmVzIGFuIGV2ZW50IGxpc3RlbmVyIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCB3aXRoIGBFdmVudFRhcmdldC5hZGRFdmVudExpc3RlbmVyKClgIGZyb20gdGhlIHRhcmdldC4gXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB0eXBlIGEgY2FzZS1zZW5zaXRpdmUgd2hpY2ggc3BlY2lmaWVzIHRoZSB0eXBlIG9mIGV2ZW50IGZvciB3aGljaCB0byByZW1vdmUgYW4gZXZlbnQgbGlzdGVuZXIuXHJcbiAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGV2ZW50IGxpc3RlbmVyIGZ1bmN0aW9uIG9mIHRoZSBldmVudCBoYW5kbGVyIHRvIHJlbW92ZSBmcm9tIHRoZSBldmVudCB0YXJnZXQuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBbiBvcHRpb25zIG9iamVjdCB0aGF0IHNwZWNpZmllcyBjaGFyYWN0ZXJpc3RpY3MgYWJvdXQgdGhlIGV2ZW50IGxpc3RlbmVyLlxyXG4gICAgICogXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FdmVudFRhcmdldC9yZW1vdmVFdmVudExpc3RlbmVyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZW1vdmVFdmVudExpc3RlbmVyKHR5cGU6IHN0cmluZywgbGlzdGVuZXI6IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QgfCBudWxsLCBvcHRpb25zPzogYm9vbGVhbiB8IEV2ZW50TGlzdGVuZXJPcHRpb25zIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jaGVja0FyZ0xlbmd0aChhcmd1bWVudHMubGVuZ3RoLCBSRU1PVkUpO1xyXG4gICAgICAgIGNvbnN0IGxsOiBNYXA8c3RyaW5nLCBhbnk+ID0gdGhpcy5fbGlzdGVuZXJMaXN0O1xyXG4gICAgICAgIGlmIChsbC5oYXModHlwZSkpIHtcclxuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJzRm9yVHlwZTogTWFwPGFueSwgYW55PiA9IGxsLmdldCh0eXBlKTtcclxuICAgICAgICAgICAgaWYgKGxpc3RlbmVyc0ZvclR5cGUuaGFzKGxpc3RlbmVyKSkgbGlzdGVuZXJzRm9yVHlwZS5kZWxldGUobGlzdGVuZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBTZW5kcyBhbiBgRXZlbnRgIHRvIHRoaXMgdG8gdGhlIGBFdmVudGAgb2JqZWN0LCAoc3luY2hyb25vdXNseSkgaW52b2tpbmcgdGhlIGFmZmVjdGVkIGV2ZW50IGxpc3RlbmVyc1xyXG4gICAgICogaW4gdGhlIGFwcHJvcHJpYXRlIG9yZGVyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgYEV2ZW50IG9iamVjdCB0byBkaXNwYXRjaC4gSXRzIEV2ZW50LnRhcmdldCBwcm9wZXJ0eSB3aWxsIGJlIHNldCB0byB0aGUgY3VycmVudCBFdmVudFRhcmdldC5cclxuICAgICAqIEByZXR1cm5zIHRydWUgc2luY2UgdGhlcmUgYXJlIG5vIGNhbmNlbGxhYmxlIGV2ZW50cyBvbiBhIGJhc2UgYEV2ZW50VGFyZ2V0YC5cclxuICAgICAqIFxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvZGlzcGF0Y2hFdmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGlzcGF0Y2hFdmVudChldmVudDogRXZlbnQpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIShldmVudCBpbnN0YW5jZW9mIEV2ZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG4gICAgICAgICAgICAgICAgXCJGYWlsZWQgdG8gZXhlY3V0ZSAnZGlzcGF0Y2hFdmVudCcgb24gJ0V2ZW50VGFyZ2V0JzogcGFyYW1ldGVyIDEgaXMgbm90IG9mIHR5cGUgJ0V2ZW50Jy5cIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSBldmVudC50eXBlO1xyXG4gICAgICAgIGNvbnN0IGxsOiBNYXA8c3RyaW5nLCBhbnk+ID0gdGhpcy5fbGlzdGVuZXJMaXN0O1xyXG4gICAgICAgIGNvbnN0IGxpc3RlbmVyc0ZvclR5cGUgPSBsbC5nZXQodHlwZSk7XHJcbiAgICAgICAgaWYgKCFsaXN0ZW5lcnNGb3JUeXBlKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpc3RuZXJFbnRyeSBvZiBsaXN0ZW5lcnNGb3JUeXBlLmVudHJpZXMoKSkge1xyXG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lcjogYW55ID0gbGlzdG5lckVudHJ5WzBdO1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zOiBhbnkgPSBsaXN0bmVyRW50cnlbMV07XHJcbiAgICAgICAgICAgIC8vIExpc3RlbmVyIGZ1bmN0aW9ucyBtdXN0IGJlIGV4ZWN1dGVkIHdpdGggdGhlIEV2ZW50VGFyZ2V0IGFzIHRoZSBgdGhpc2AgY29udGV4dC5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lciA9PT0gRlVOQ1RJT04pIGxpc3RlbmVyLmNhbGwodGhpcywgZXZlbnQpO1xyXG4gICAgICAgICAgICAvLyBMaXN0ZW5lciBvYmplY3RzIGhhdmUgdGhlaXIgaGFuZGxlRXZlbnQgbWV0aG9kIGNhbGxlZCwgaWYgdGhleSBoYXZlIG9uZVxyXG4gICAgICAgICAgICBlbHNlIGlmIChsaXN0ZW5lciAmJiB0eXBlb2YgbGlzdGVuZXIuaGFuZGxlRXZlbnQgPT09IEZVTkNUSU9OKSBsaXN0ZW5lci5oYW5kbGVFdmVudChldmVudCk7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMub25jZSkgbGlzdGVuZXJzRm9yVHlwZS5kZWxldGUobGlzdGVuZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2hlY2tBcmdMZW5ndGgoYXJnTGVuOiBudW1iZXIsIG1ldGhvZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGFyZ0xlbiA8IDIpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcclxuICAgICAgICAgICAgICAgIGBUeXBlRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICcke21ldGhvZH0nIG9uICdFdmVudFRhcmdldCc6IDIgYXJndW1lbnRzIHJlcXVpcmVkLCBidXQgJHthcmdMZW4gPT09IDEgPyAnb25seSAxJyA6ICcwJ30gcHJlc2VudC5gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdGFyZ2V0LmltcGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL2V2ZW50L2V2ZW50LXRhcmdldC5pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDOztHQUVHO0FBQ0gsTUFBTSxHQUFHLEdBQVcsa0JBQWtCLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFNLE1BQU0sR0FBVyxxQkFBcUIsQ0FBQztBQUU3Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQU94Qjs7T0FFRztJQUNIO1FBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksZ0JBQWdCLENBQUMsSUFBWSxFQUFFLFFBQW1ELEVBQUUsT0FBdUQ7UUFDOUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBRSxHQUFxQixJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ2hELElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQyxNQUFNLGdCQUFnQixHQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyw2Q0FBNkM7WUFDN0MsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLG1CQUFtQixDQUFDLElBQVksRUFBRSxRQUFtRCxFQUFFLE9BQW9EO1FBQzlJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLEVBQUUsR0FBcUIsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNmLE1BQU0sZ0JBQWdCLEdBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckQsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0RSxJQUFJLGdCQUFnQixDQUFDLElBQUksS0FBSyxDQUFDO2dCQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxhQUFhLENBQUMsS0FBWTtRQUM3QixJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksU0FBUyxDQUNmLHlGQUF5RixDQUM1RixDQUFDO1FBQ04sQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFXLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDaEMsTUFBTSxFQUFFLEdBQXFCLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNuQyxLQUFLLE1BQU0sWUFBWSxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQVEsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sT0FBTyxHQUFRLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxrRkFBa0Y7WUFDbEYsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdELDBFQUEwRTtpQkFDckUsSUFBSSxRQUFRLElBQUksT0FBTyxRQUFRLENBQUMsV0FBVyxLQUFLLFFBQVE7Z0JBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSTtnQkFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0QsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEtBQUssQ0FBQztnQkFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZ0JBQWdCLENBQUMsSUFBWTtRQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWMsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUNqRCxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxTQUFTLENBQ2YsaUNBQWlDLE1BQU0saURBQWlELE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQ25JLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmcgb3JpZ2luYWwgc291cmNlIGNvZGU6XHJcbiAqIC0gaHR0cHM6Ly9naXRodWIuY29tL2Jlbmxlc2gvZXZlbnQtdGFyZ2V0LXBvbHlmaWxsXHJcbiAqIC0gQ29weXJpZ2h0IChjKSAyMDIwIEJlbiBMZXNoXHJcbiAqIFxyXG4gKiBVc2Ugb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIFxyXG4gKiB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iZW5sZXNoL2V2ZW50LXRhcmdldC1wb2x5ZmlsbC9ibG9iL21hc3Rlci9MSUNFTlNFXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgRlVOQ1RJT04gfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBBREQ6IHN0cmluZyA9IFwiYWRkRXZlbnRMaXN0ZW5lclwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBSRU1PVkU6IHN0cmluZyA9IFwicmVtb3ZlRXZlbnRMaXN0ZW5lclwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEEgdXRpbGl0eSBjbGFzcyB0aGUgcHJvdmlkZXMgYW4gaW1wbGVtZW50YXRpb24gZm9yIHRoZSBgRXZlbnRUYXJnZXRgIGludGVyZmFjZS5cclxuICogVGhpcyBjbGFzcyBpcyB1c2VkIGludGVybmFsbHkgYnkgdGhlIGZyYW1ld29yazsgcGxlYXNlIGRvIG5vdCBleHBvc2UgaXQuXHJcbiAqIFxyXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FdmVudFRhcmdldFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV2ZW50VGFyZ2V0SW1wbCBpbXBsZW1lbnRzIEV2ZW50VGFyZ2V0IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2xpc3RlbmVyTGlzdDogTWFwPHN0cmluZywgYW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuX2xpc3RlbmVyTGlzdCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogU2V0cyB1cCBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIHNwZWNpZmllZCBldmVudCBpcyBkZWxpdmVyZWQgdG8gdGhlIHRhcmdldC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHR5cGUgYSBjYXNlLXNlbnNpdGl2ZSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBldmVudCB0eXBlIHRvIGxpc3RlbiBmb3IuXHJcbiAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIG9iamVjdCB0aGF0IHJlY2VpdmVzIGEgbm90aWZpY2F0aW9uIChhbiBvYmplY3QgdGhhdCBpbXBsZW1lbnRzIHRoZVxyXG4gICAgICogICAgICAgICAgICAgICAgIGBFdmVudGAgaW50ZXJmYWNlKSB3aGVuIGFuIGV2ZW50IG9mIHRoZSBzcGVjaWZpZWQgdHlwZSBvY2N1cnMuIFxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgYW4gb2JqZWN0IHRoYXQgc3BlY2lmaWVzIGNoYXJhY3RlcmlzdGljcyBhYm91dCB0aGUgZXZlbnQgbGlzdGVuZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0V2ZW50VGFyZ2V0L2FkZEV2ZW50TGlzdGVuZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIodHlwZTogc3RyaW5nLCBsaXN0ZW5lcjogRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCB8IG51bGwsIG9wdGlvbnM/OiBib29sZWFuIHwgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNoZWNrQXJnTGVuZ3RoKGFyZ3VtZW50cy5sZW5ndGgsIEFERCk7XHJcbiAgICAgICAgY29uc3QgbGw6IE1hcDxzdHJpbmcsIGFueT4gPSB0aGlzLl9saXN0ZW5lckxpc3Q7XHJcbiAgICAgICAgaWYgKCFsbC5oYXModHlwZSkpIGxsLnNldCh0eXBlLCBuZXcgTWFwKCkpO1xyXG4gICAgICAgIGNvbnN0IGxpc3RlbmVyc0ZvclR5cGU6IE1hcDxhbnksIGFueT4gPSBsbC5nZXQodHlwZSk7XHJcbiAgICAgICAgaWYgKCFsaXN0ZW5lcnNGb3JUeXBlLmhhcyhsaXN0ZW5lcikpIHtcclxuICAgICAgICAgICAgLy8gQW55IGdpdmVuIGxpc3RlbmVyIGlzIG9ubHkgcmVnaXN0ZXJlZCBvbmNlXHJcbiAgICAgICAgICAgIGxpc3RlbmVyc0ZvclR5cGUuc2V0KGxpc3RlbmVyLCBvcHRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogUmVtb3ZlcyBhbiBldmVudCBsaXN0ZW5lciBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgd2l0aCBgRXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigpYCBmcm9tIHRoZSB0YXJnZXQuIFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdHlwZSBhIGNhc2Utc2Vuc2l0aXZlIHdoaWNoIHNwZWNpZmllcyB0aGUgdHlwZSBvZiBldmVudCBmb3Igd2hpY2ggdG8gcmVtb3ZlIGFuIGV2ZW50IGxpc3RlbmVyLlxyXG4gICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBldmVudCBsaXN0ZW5lciBmdW5jdGlvbiBvZiB0aGUgZXZlbnQgaGFuZGxlciB0byByZW1vdmUgZnJvbSB0aGUgZXZlbnQgdGFyZ2V0LlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQW4gb3B0aW9ucyBvYmplY3QgdGhhdCBzcGVjaWZpZXMgY2hhcmFjdGVyaXN0aWNzIGFib3V0IHRoZSBldmVudCBsaXN0ZW5lci5cclxuICAgICAqIFxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvcmVtb3ZlRXZlbnRMaXN0ZW5lclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlOiBzdHJpbmcsIGxpc3RlbmVyOiBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0IHwgbnVsbCwgb3B0aW9ucz86IGJvb2xlYW4gfCBFdmVudExpc3RlbmVyT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hlY2tBcmdMZW5ndGgoYXJndW1lbnRzLmxlbmd0aCwgUkVNT1ZFKTtcclxuICAgICAgICBjb25zdCBsbDogTWFwPHN0cmluZywgYW55PiA9IHRoaXMuX2xpc3RlbmVyTGlzdDtcclxuICAgICAgICBpZiAobGwuaGFzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyc0ZvclR5cGU6IE1hcDxhbnksIGFueT4gPSBsbC5nZXQodHlwZSk7XHJcbiAgICAgICAgICAgIGlmIChsaXN0ZW5lcnNGb3JUeXBlLmhhcyhsaXN0ZW5lcikpIGxpc3RlbmVyc0ZvclR5cGUuZGVsZXRlKGxpc3RlbmVyKTtcclxuICAgICAgICAgICAgaWYgKGxpc3RlbmVyc0ZvclR5cGUuc2l6ZSA9PT0gMCkgbGwuZGVsZXRlKHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBTZW5kcyBhbiBgRXZlbnRgIHRvIHRoaXMgdG8gdGhlIGBFdmVudGAgb2JqZWN0LCAoc3luY2hyb25vdXNseSkgaW52b2tpbmcgdGhlIGFmZmVjdGVkIGV2ZW50IGxpc3RlbmVyc1xyXG4gICAgICogaW4gdGhlIGFwcHJvcHJpYXRlIG9yZGVyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgYEV2ZW50IG9iamVjdCB0byBkaXNwYXRjaC4gSXRzIEV2ZW50LnRhcmdldCBwcm9wZXJ0eSB3aWxsIGJlIHNldCB0byB0aGUgY3VycmVudCBFdmVudFRhcmdldC5cclxuICAgICAqIEByZXR1cm5zIHRydWUgc2luY2UgdGhlcmUgYXJlIG5vIGNhbmNlbGxhYmxlIGV2ZW50cyBvbiBhIGJhc2UgYEV2ZW50VGFyZ2V0YC5cclxuICAgICAqIFxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvZGlzcGF0Y2hFdmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGlzcGF0Y2hFdmVudChldmVudDogRXZlbnQpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIShldmVudCBpbnN0YW5jZW9mIEV2ZW50KSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG4gICAgICAgICAgICAgICAgXCJGYWlsZWQgdG8gZXhlY3V0ZSAnZGlzcGF0Y2hFdmVudCcgb24gJ0V2ZW50VGFyZ2V0JzogcGFyYW1ldGVyIDEgaXMgbm90IG9mIHR5cGUgJ0V2ZW50Jy5cIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSBldmVudC50eXBlO1xyXG4gICAgICAgIGNvbnN0IGxsOiBNYXA8c3RyaW5nLCBhbnk+ID0gdGhpcy5fbGlzdGVuZXJMaXN0O1xyXG4gICAgICAgIGNvbnN0IGxpc3RlbmVyc0ZvclR5cGUgPSBsbC5nZXQodHlwZSk7XHJcbiAgICAgICAgaWYgKCFsaXN0ZW5lcnNGb3JUeXBlKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpc3RuZXJFbnRyeSBvZiBsaXN0ZW5lcnNGb3JUeXBlLmVudHJpZXMoKSkge1xyXG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lcjogYW55ID0gbGlzdG5lckVudHJ5WzBdO1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zOiBhbnkgPSBsaXN0bmVyRW50cnlbMV07XHJcbiAgICAgICAgICAgIC8vIExpc3RlbmVyIGZ1bmN0aW9ucyBtdXN0IGJlIGV4ZWN1dGVkIHdpdGggdGhlIEV2ZW50VGFyZ2V0IGFzIHRoZSBgdGhpc2AgY29udGV4dC5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lciA9PT0gRlVOQ1RJT04pIGxpc3RlbmVyLmNhbGwodGhpcywgZXZlbnQpO1xyXG4gICAgICAgICAgICAvLyBMaXN0ZW5lciBvYmplY3RzIGhhdmUgdGhlaXIgaGFuZGxlRXZlbnQgbWV0aG9kIGNhbGxlZCwgaWYgdGhleSBoYXZlIG9uZVxyXG4gICAgICAgICAgICBlbHNlIGlmIChsaXN0ZW5lciAmJiB0eXBlb2YgbGlzdGVuZXIuaGFuZGxlRXZlbnQgPT09IEZVTkNUSU9OKSBsaXN0ZW5lci5oYW5kbGVFdmVudChldmVudCk7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMub25jZSkgbGlzdGVuZXJzRm9yVHlwZS5kZWxldGUobGlzdGVuZXIpO1xyXG4gICAgICAgICAgICBpZiAobGlzdGVuZXJzRm9yVHlwZS5zaXplID09PSAwKSBsbC5kZWxldGUodHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGBFdmVudFRhcmdldGAgb2JqZWN0IGhhcyBhbnkgbGlzdGVuZXJzIHJlZ2lzdGVyZWQgZm9yIGEgc3BlY2lmaWMgdHlwZSBvZiBldmVudC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgZXZlbnQuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4gIEEgdmFsdWUgb2YgYHRydWVgIGlmIGEgbGlzdGVuZXIgb2YgdGhlIHNwZWNpZmllZCB0eXBlIGlzIHJlZ2lzdGVyZWQ7IGBmYWxzZWAgb3RoZXJ3aXNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFzRXZlbnRMaXN0ZW5lcih0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGlzdGVuZXJMaXN0Lmhhcyh0eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2hlY2tBcmdMZW5ndGgoYXJnTGVuOiBudW1iZXIsIG1ldGhvZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGFyZ0xlbiA8IDIpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcclxuICAgICAgICAgICAgICAgIGBUeXBlRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICcke21ldGhvZH0nIG9uICdFdmVudFRhcmdldCc6IDIgYXJndW1lbnRzIHJlcXVpcmVkLCBidXQgJHthcmdMZW4gPT09IDEgPyAnb25seSAxJyA6ICcwJ30gcHJlc2VudC5gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { AbstractLogger } from "../../../logging";
9
+ /**
10
+ * @private
11
+ * The `Logger` implementation used by the `HttpMockLoggingService` class to manage logs.
12
+ */
13
+ export class HttpMockLogger extends AbstractLogger {
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAvbG9nZ2luZy9odHRwLW1vY2stbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uLy4uL2xvZ2dpbmdcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgYExvZ2dlcmAgaW1wbGVtZW50YXRpb24gdXNlZCBieSB0aGUgYEh0dHBNb2NrTG9nZ2luZ1NlcnZpY2VgIGNsYXNzIHRvIG1hbmFnZSBsb2dzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEh0dHBNb2NrTG9nZ2VyIGV4dGVuZHMgQWJzdHJhY3RMb2dnZXIge30iXX0=
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { HttpResponse } from "@angular/common/http";
9
+ import { HttpHeadersUtil } from "../util/http-headers.util";
10
+ /**
11
+ * @private
12
+ * A static builder for creating `HttpMockLoggingMetadata` objects.
13
+ */
14
+ export class HttpMockLoggingMetadataBuilder {
15
+ /**
16
+ * @private
17
+ * Creates and returns a new `HttpMockLoggingMetadata` object.
18
+ */
19
+ static build(xhr, request, requestMetadata) {
20
+ const responseInit = {
21
+ body: xhr.response,
22
+ status: xhr.status,
23
+ statusText: xhr.statusText,
24
+ url: xhr.responseURL,
25
+ headers: HttpHeadersUtil.encode(xhr.getAllResponseHeaders())
26
+ };
27
+ const response = new HttpResponse(responseInit);
28
+ return {
29
+ request: request,
30
+ response: response,
31
+ requestMetadata: requestMetadata
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLWxvZ2dpbmctbWV0YWRhdGEuYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAvbG9nZ2luZy9odHRwLW1vY2stbG9nZ2luZy1tZXRhZGF0YS5idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDhCQUE4QjtJQUV2Qzs7O09BR0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQWEsRUFBRSxPQUF5QixFQUFFLGVBQXdDO1FBQ2xHLE1BQU0sWUFBWSxHQUFRO1lBQ3RCLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUTtZQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07WUFDbEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1lBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsV0FBVztZQUNwQixPQUFPLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUMvRCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQXNCLElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25FLE9BQU87WUFDSCxPQUFPLEVBQUUsT0FBTztZQUNoQixRQUFRLEVBQUUsUUFBUTtZQUNsQixlQUFlLEVBQUUsZUFBZTtTQUNuQyxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBYaHJQcm94eSwgSHR0cE1vY2tMb2dnaW5nTWV0YWRhdGEsIEh0dHBNb2NrUmVxdWVzdE1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsXCI7XHJcbmltcG9ydCB7IEh0dHBIZWFkZXJzVXRpbCB9IGZyb20gXCIuLi91dGlsL2h0dHAtaGVhZGVycy51dGlsXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogQSBzdGF0aWMgYnVpbGRlciBmb3IgY3JlYXRpbmcgYEh0dHBNb2NrTG9nZ2luZ01ldGFkYXRhYCBvYmplY3RzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEh0dHBNb2NrTG9nZ2luZ01ldGFkYXRhQnVpbGRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIG5ldyBgSHR0cE1vY2tMb2dnaW5nTWV0YWRhdGFgIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBidWlsZCh4aHI6IFhoclByb3h5LCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCByZXF1ZXN0TWV0YWRhdGE6IEh0dHBNb2NrUmVxdWVzdE1ldGFkYXRhKTogSHR0cE1vY2tMb2dnaW5nTWV0YWRhdGEge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlSW5pdDogYW55ID0ge1xyXG4gICAgICAgICAgICBib2R5OiB4aHIucmVzcG9uc2UsXHJcbiAgICAgICAgICAgIHN0YXR1czogeGhyLnN0YXR1cyxcclxuICAgICAgICAgICAgc3RhdHVzVGV4dDogeGhyLnN0YXR1c1RleHQsXHJcbiAgICAgICAgICAgIHVybDogeGhyLnJlc3BvbnNlVVJMLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiBIdHRwSGVhZGVyc1V0aWwuZW5jb2RlKHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSlcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8YW55PiA9IG5ldyBIdHRwUmVzcG9uc2UocmVzcG9uc2VJbml0KTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICByZXF1ZXN0OiByZXF1ZXN0LFxyXG4gICAgICAgICAgICByZXNwb25zZTogcmVzcG9uc2UsXHJcbiAgICAgICAgICAgIHJlcXVlc3RNZXRhZGF0YTogcmVxdWVzdE1ldGFkYXRhXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufSJdfQ==
@@ -2,8 +2,8 @@
2
2
  * @license
3
3
  * Copyright Pascal ECHEMANN. All Rights Reserved.
4
4
  *
5
- * Use of this source code is governed by an MIT-style license that can be ound in
6
- * fthe LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
7
  *
8
8
  * This source code is derived from the following original source code:
9
9
  * - https://github.com/pillarjs/path-to-regexp
@@ -31,4 +31,4 @@ const ESCAPE_VALUE = "\\$1";
31
31
  export const escapeRegexpString = (str) => {
32
32
  return str.replace(ESCAPE_REGEXP, ESCAPE_VALUE);
33
33
  };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXRvLXJlZ2V4cC1zdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3BhdGgtdG8tcmVnZXhwL2VzY2FwZS10by1yZWdleHAtc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBSUg7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBVywyQkFBMkIsQ0FBQztBQUUxRDs7R0FFRztBQUNILE1BQU0sWUFBWSxHQUFXLE1BQU0sQ0FBQztBQUVwQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxDQUFDLEdBQVcsRUFBQyxFQUFFO0lBQ3ZELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIG91bmQgaW5cclxuICogZnRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmcgb3JpZ2luYWwgc291cmNlIGNvZGU6XHJcbiAqIC0gaHR0cHM6Ly9naXRodWIuY29tL3BpbGxhcmpzL3BhdGgtdG8tcmVnZXhwXHJcbiAqIC0gQ29weXJpZ2h0IChjKSAyMDE0IEJsYWtlIEVtYnJleSAoaGVsbG9AYmxha2VlbWJyZXkuY29tKVxyXG4gKiBcclxuICogVXNlIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSBcclxuICogdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdFxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHAvYmxvYi9tYXN0ZXIvTElDRU5TRVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEVuY29kZSB9IGZyb20gXCIuL21vZGVsL2VuY29kZVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBFU0NBUEVfUkVHRVhQOiBSZWdFeHAgPSAvKFsuKyo/PV4hOiR7fSgpW1xcXXwvXFxcXF0pL2c7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEVTQ0FQRV9WQUxVRTogc3RyaW5nID0gXCJcXFxcJDFcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBFc2NhcGUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxyXG4gKiBcclxuICogQHBhcmFtIHN0ciBUaGUgcmVndWxhciBleHByZXNzaW9uIHN0cmluZyB0byBlc2NhcGUuXHJcbiAqIEByZXR1cm5zIEFuIGVzY2FwZWQgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGVzY2FwZVJlZ2V4cFN0cmluZzogRW5jb2RlID0gKHN0cjogc3RyaW5nKT0+IHtcclxuICByZXR1cm4gc3RyLnJlcGxhY2UoRVNDQVBFX1JFR0VYUCwgRVNDQVBFX1ZBTFVFKTtcclxufVxyXG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXRvLXJlZ2V4cC1zdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3BhdGgtdG8tcmVnZXhwL2VzY2FwZS10by1yZWdleHAtc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBSUg7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBVywyQkFBMkIsQ0FBQztBQUUxRDs7R0FFRztBQUNILE1BQU0sWUFBWSxHQUFXLE1BQU0sQ0FBQztBQUVwQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxDQUFDLEdBQVcsRUFBQyxFQUFFO0lBQ3ZELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmcgb3JpZ2luYWwgc291cmNlIGNvZGU6XHJcbiAqIC0gaHR0cHM6Ly9naXRodWIuY29tL3BpbGxhcmpzL3BhdGgtdG8tcmVnZXhwXHJcbiAqIC0gQ29weXJpZ2h0IChjKSAyMDE0IEJsYWtlIEVtYnJleSAoaGVsbG9AYmxha2VlbWJyZXkuY29tKVxyXG4gKiBcclxuICogVXNlIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSBcclxuICogdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdFxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHAvYmxvYi9tYXN0ZXIvTElDRU5TRVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEVuY29kZSB9IGZyb20gXCIuL21vZGVsL2VuY29kZVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBFU0NBUEVfUkVHRVhQOiBSZWdFeHAgPSAvKFsuKyo/PV4hOiR7fSgpW1xcXXwvXFxcXF0pL2c7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEVTQ0FQRV9WQUxVRTogc3RyaW5nID0gXCJcXFxcJDFcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBFc2NhcGUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxyXG4gKiBcclxuICogQHBhcmFtIHN0ciBUaGUgcmVndWxhciBleHByZXNzaW9uIHN0cmluZyB0byBlc2NhcGUuXHJcbiAqIEByZXR1cm5zIEFuIGVzY2FwZWQgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGVzY2FwZVJlZ2V4cFN0cmluZzogRW5jb2RlID0gKHN0cjogc3RyaW5nKT0+IHtcclxuICByZXR1cm4gc3RyLnJlcGxhY2UoRVNDQVBFX1JFR0VYUCwgRVNDQVBFX1ZBTFVFKTtcclxufVxyXG4iXX0=
@@ -2,8 +2,8 @@
2
2
  * @license
3
3
  * Copyright Pascal ECHEMANN. All Rights Reserved.
4
4
  *
5
- * Use of this source code is governed by an MIT-style license that can be ound in
6
- * fthe LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
7
  *
8
8
  * This source code is derived from the following original source code:
9
9
  * - https://github.com/pillarjs/path-to-regexp
@@ -14,4 +14,4 @@
14
14
  * https://github.com/pillarjs/path-to-regexp/blob/master/LICENSE
15
15
  */
16
16
  export {};
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV4LXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC9wYXRoLXRvLXJlZ2V4cC9tb2RlbC9sZXgtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgb3VuZCBpblxyXG4gKiBmdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZyBvcmlnaW5hbCBzb3VyY2UgY29kZTpcclxuICogLSBodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHBcclxuICogLSBDb3B5cmlnaHQgKGMpIDIwMTQgQmxha2UgRW1icmV5IChoZWxsb0BibGFrZWVtYnJleS5jb20pXHJcbiAqIFxyXG4gKiBVc2Ugb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIFxyXG4gKiB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9waWxsYXJqcy9wYXRoLXRvLXJlZ2V4cC9ibG9iL21hc3Rlci9MSUNFTlNFXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgVG9rZW5UeXBlIH0gZnJvbSBcIi4vdG9rZW4tdHlwZVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIERlZmluZXMgdGhlIEFQSSBmb3IgdG9rZW5pemVyIHJlc3VsdHMuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIExleFRva2VuIHtcclxuICAgIFxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgdHlwZTogVG9rZW5UeXBlO1xyXG4gICAgXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBpbmRleDogbnVtYmVyO1xyXG4gICAgXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV4LXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC9wYXRoLXRvLXJlZ2V4cC9tb2RlbC9sZXgtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZyBvcmlnaW5hbCBzb3VyY2UgY29kZTpcclxuICogLSBodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHBcclxuICogLSBDb3B5cmlnaHQgKGMpIDIwMTQgQmxha2UgRW1icmV5IChoZWxsb0BibGFrZWVtYnJleS5jb20pXHJcbiAqIFxyXG4gKiBVc2Ugb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIFxyXG4gKiB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9waWxsYXJqcy9wYXRoLXRvLXJlZ2V4cC9ibG9iL21hc3Rlci9MSUNFTlNFXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgVG9rZW5UeXBlIH0gZnJvbSBcIi4vdG9rZW4tdHlwZVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIERlZmluZXMgdGhlIEFQSSBmb3IgdG9rZW5pemVyIHJlc3VsdHMuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIExleFRva2VuIHtcclxuICAgIFxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgdHlwZTogVG9rZW5UeXBlO1xyXG4gICAgXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBpbmRleDogbnVtYmVyO1xyXG4gICAgXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -17,10 +17,11 @@ export class DataStorageBuilder {
17
17
  *
18
18
  * @param httpResponse The `HttpResponseMock` to be stored by the framework.
19
19
  * @param data The data of the HTTP response to be stored by the framework.
20
+ * @param metadata The metadata of the HTTP mock request to be stored by the framework.
20
21
  *
21
22
  * @returns A new `DataStorage` object.
22
23
  */
23
- static buildDataStorage(httpResponse, data) {
24
+ static buildDataStorage(httpResponse, data, metadata) {
24
25
  // TODO: add support for different data types (string, Blob, etc.)
25
26
  const stringifiedData = data ? JSON.stringify(data) : EMPTY_STRING;
26
27
  return {
@@ -28,8 +29,9 @@ export class DataStorageBuilder {
28
29
  loaded: 0,
29
30
  total: data ? new Blob([stringifiedData]).size : 0,
30
31
  data: data,
31
- stringifiedData: stringifiedData
32
+ stringifiedData: stringifiedData,
33
+ requestMetadata: metadata
32
34
  };
33
35
  }
34
36
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdG9yYWdlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvZGF0YS1zdG9yYWdlLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWhEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFFM0I7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsWUFBOEIsRUFBRSxJQUFTO1FBQ3BFLGtFQUFrRTtRQUNsRSxNQUFNLGVBQWUsR0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUMzRSxPQUFPO1lBQ0gsWUFBWSxFQUFFLFlBQVk7WUFDMUIsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksRUFBRSxJQUFJO1lBQ1YsZUFBZSxFQUFFLGVBQWU7U0FDbkMsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcblxyXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2VNb2NrIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsXCI7XHJcbmltcG9ydCB7IERhdGFTdG9yYWdlIH0gZnJvbSBcIi4uL2NvcmUvZGF0YS1zdG9yYWdlXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogQSBzdGF0aWMgdXRpbGl0eSBjbGFzcyBmb3IgYnVpbGRpbmcgYERhdGFTdG9yYWdlYCBvYmplY3RzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIERhdGFTdG9yYWdlQnVpbGRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQnVpbGRzIGFuZCByZXR1cm5zIGEgbmV3IGBEYXRhU3RvcmFnZWAgb2JqZWN0cy5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGh0dHBSZXNwb25zZSBUaGUgYEh0dHBSZXNwb25zZU1vY2tgIHRvIGJlIHN0b3JlZCBieSB0aGUgZnJhbWV3b3JrLlxyXG4gICAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgb2YgdGhlIEhUVFAgcmVzcG9uc2UgdG8gYmUgc3RvcmVkIGJ5IHRoZSBmcmFtZXdvcmsuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgbmV3IGBEYXRhU3RvcmFnZWAgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkRGF0YVN0b3JhZ2UoaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2VNb2NrLCBkYXRhOiBhbnkpOiBEYXRhU3RvcmFnZSB7XHJcbiAgICAgICAgLy8gVE9ETzogYWRkIHN1cHBvcnQgZm9yIGRpZmZlcmVudCBkYXRhIHR5cGVzIChzdHJpbmcsIEJsb2IsIGV0Yy4pXHJcbiAgICAgICAgY29uc3Qgc3RyaW5naWZpZWREYXRhOiBzdHJpbmcgPSBkYXRhID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiBFTVBUWV9TVFJJTkc7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaHR0cFJlc3BvbnNlOiBodHRwUmVzcG9uc2UsXHJcbiAgICAgICAgICAgIGxvYWRlZDogMCxcclxuICAgICAgICAgICAgdG90YWw6IGRhdGEgPyBuZXcgQmxvYihbc3RyaW5naWZpZWREYXRhXSkuc2l6ZSA6IDAsXHJcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgICAgIHN0cmluZ2lmaWVkRGF0YTogc3RyaW5naWZpZWREYXRhXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdG9yYWdlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvZGF0YS1zdG9yYWdlLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWhEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFFM0I7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFlBQThCLEVBQUUsSUFBUyxFQUFFLFFBQWlDO1FBQ3ZHLGtFQUFrRTtRQUNsRSxNQUFNLGVBQWUsR0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUMzRSxPQUFPO1lBQ0gsWUFBWSxFQUFFLFlBQVk7WUFDMUIsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksRUFBRSxJQUFJO1lBQ1YsZUFBZSxFQUFFLGVBQWU7WUFDaEMsZUFBZSxFQUFFLFFBQVE7U0FDNUIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcblxyXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBIdHRwTW9ja1JlcXVlc3RNZXRhZGF0YSwgSHR0cFJlc3BvbnNlTW9jayB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbFwiO1xyXG5pbXBvcnQgeyBEYXRhU3RvcmFnZSB9IGZyb20gXCIuLi9jb3JlL2RhdGEtc3RvcmFnZVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEEgc3RhdGljIHV0aWxpdHkgY2xhc3MgZm9yIGJ1aWxkaW5nIGBEYXRhU3RvcmFnZWAgb2JqZWN0cy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYXRhU3RvcmFnZUJ1aWxkZXIge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEJ1aWxkcyBhbmQgcmV0dXJucyBhIG5ldyBgRGF0YVN0b3JhZ2VgIG9iamVjdHMuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBodHRwUmVzcG9uc2UgVGhlIGBIdHRwUmVzcG9uc2VNb2NrYCB0byBiZSBzdG9yZWQgYnkgdGhlIGZyYW1ld29yay5cclxuICAgICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIG9mIHRoZSBIVFRQIHJlc3BvbnNlIHRvIGJlIHN0b3JlZCBieSB0aGUgZnJhbWV3b3JrLlxyXG4gICAgICogQHBhcmFtIG1ldGFkYXRhIFRoZSBtZXRhZGF0YSBvZiB0aGUgSFRUUCBtb2NrIHJlcXVlc3QgdG8gYmUgc3RvcmVkIGJ5IHRoZSBmcmFtZXdvcmsuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgbmV3IGBEYXRhU3RvcmFnZWAgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkRGF0YVN0b3JhZ2UoaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2VNb2NrLCBkYXRhOiBhbnksIG1ldGFkYXRhOiBIdHRwTW9ja1JlcXVlc3RNZXRhZGF0YSk6IERhdGFTdG9yYWdlIHtcclxuICAgICAgICAvLyBUT0RPOiBhZGQgc3VwcG9ydCBmb3IgZGlmZmVyZW50IGRhdGEgdHlwZXMgKHN0cmluZywgQmxvYiwgZXRjLilcclxuICAgICAgICBjb25zdCBzdHJpbmdpZmllZERhdGE6IHN0cmluZyA9IGRhdGEgPyBKU09OLnN0cmluZ2lmeShkYXRhKSA6IEVNUFRZX1NUUklORztcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBodHRwUmVzcG9uc2U6IGh0dHBSZXNwb25zZSxcclxuICAgICAgICAgICAgbG9hZGVkOiAwLFxyXG4gICAgICAgICAgICB0b3RhbDogZGF0YSA/IG5ldyBCbG9iKFtzdHJpbmdpZmllZERhdGFdKS5zaXplIDogMCxcclxuICAgICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgICAgc3RyaW5naWZpZWREYXRhOiBzdHJpbmdpZmllZERhdGEsXHJcbiAgICAgICAgICAgIHJlcXVlc3RNZXRhZGF0YTogbWV0YWRhdGFcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -5,13 +5,14 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be found in
6
6
  * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
7
  */
8
+ import { HttpHeaders } from "@angular/common/http";
8
9
  import { EMPTY_STRING } from "../../../../util";
9
10
  import { httpHeadersMock } from "./http-headers-mock.builder";
10
11
  /**
11
12
  * @private
12
13
  * Internal reference to a new line character.
13
14
  */
14
- const NL = "\n";
15
+ const CRLF = "\r\n";
15
16
  /**
16
17
  * @private
17
18
  * A set of static utilities for manipulating `HttpHeaders` objects.
@@ -33,10 +34,24 @@ export class HttpHeadersUtil {
33
34
  const keys = headers.keys();
34
35
  const last = keys.length - 1;
35
36
  keys.forEach((key, index) => {
36
- result += `${key}: ${headers.getAll(key)}${index !== last ? NL : EMPTY_STRING}`;
37
+ result += `${key}: ${headers.getAll(key)}${index !== last ? CRLF : EMPTY_STRING}`;
37
38
  });
38
39
  return result;
39
40
  }
41
+ /**
42
+ * @private
43
+ * Returns a `HttpHeaders` object built from the string returns by the `XMLHttpRequest.getAllResponseHeaders()` method,
44
+ * or `null` wheher `XMLHttpRequest.getAllResponseHeaders()` return `null`.
45
+ *
46
+ * @param value The string to turn into a `HttpHeaders `object.
47
+ *
48
+ * @returns A `HttpHeaders` object, or `null`.
49
+ */
50
+ static encode(value) {
51
+ if (value === null)
52
+ return null;
53
+ return new HttpHeaders(value);
54
+ }
40
55
  /**
41
56
  * @private
42
57
  * Creates the default `HttpHeaders` object for a mocked HTTP request.
@@ -53,4 +68,4 @@ export class HttpHeadersUtil {
53
68
  .headers();
54
69
  }
55
70
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oZWFkZXJzLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvaHR0cC1oZWFkZXJzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxNQUFNLEVBQUUsR0FBVyxJQUFJLENBQUM7QUFFeEI7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFFeEI7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQWdDO1FBQ3BELElBQUksTUFBTSxHQUFXLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxHQUFhLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBVyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBQyxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxHQUFHLEdBQUcsS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsMkJBQTJCO1FBQ3JDLDJEQUEyRDtRQUMzRCxPQUFPLGVBQWUsRUFBRSxDQUFDLFlBQVksRUFBRTthQUNkLGNBQWMsRUFBRTthQUNoQixjQUFjLEVBQUU7YUFDaEIsUUFBUSxFQUFFO2FBQ1YsU0FBUyxFQUFFO2FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxcIjtcclxuaW1wb3J0IHsgaHR0cEhlYWRlcnNNb2NrIH0gZnJvbSBcIi4vaHR0cC1oZWFkZXJzLW1vY2suYnVpbGRlclwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEludGVybmFsIHJlZmVyZW5jZSB0byBhIG5ldyBsaW5lIGNoYXJhY3Rlci5cclxuICovXHJcbmNvbnN0IE5MOiBzdHJpbmcgPSBcIlxcblwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEEgc2V0IG9mIHN0YXRpYyB1dGlsaXRpZXMgZm9yIG1hbmlwdWxhdGluZyBgSHR0cEhlYWRlcnNgIG9iamVjdHMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSHR0cEhlYWRlcnNVdGlsIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIHRoZSB0aGUgc3BlY2lmaWVkIGBIdHRwSGVhZGVycyBgb2JqZWN0LCBjb21wYXRpYmxlIHdpdGggdGhlIGZvcm1hdFxyXG4gICAgICogZXhwZWN0ZWQgYnkgdGhlIGBYTUxIdHRwUmVxdWVzdC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKWAgbWV0aG9kLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBUaGUgYEh0dHBIZWFkZXJzYCBvYmplY3QgdG8gZm9ybWF0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHN0cmluZyBjb21wYXRpYmxlIHdpdGggdGhlIGZvcm1hdCBleHBlY3RlZCBieSB0aGUgYFhNTEh0dHBSZXF1ZXN0LmdldEFsbFJlc3BvbnNlSGVhZGVycygpYCBtZXRob2QuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5naWZ5KGhlYWRlcnM6IEh0dHBIZWFkZXJzIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBFTVBUWV9TVFJJTkc7XHJcbiAgICAgICAgaWYgKCFoZWFkZXJzKSByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gaGVhZGVycy5rZXlzKCk7XHJcbiAgICAgICAgY29uc3QgbGFzdDogbnVtYmVyID0ga2V5cy5sZW5ndGggLSAxO1xyXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpPT4ge1xyXG4gICAgICAgICAgICByZXN1bHQgKz0gYCR7a2V5fTogJHtoZWFkZXJzLmdldEFsbChrZXkpfSR7aW5kZXggIT09IGxhc3QgPyBOTCA6IEVNUFRZX1NUUklOR31gO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIENyZWF0ZXMgdGhlIGRlZmF1bHQgYEh0dHBIZWFkZXJzYCBvYmplY3QgZm9yIGEgbW9ja2VkIEhUVFAgcmVxdWVzdC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgVGhlIGRlZmF1bHQgYEh0dHBIZWFkZXJzYCBvYmplY3QgZm9yIGEgbW9ja2VkIEhUVFAgcmVxdWVzdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVEZWZhdWx0UmVxdWVzdEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIC8vIFwiQWNjZXB0XCIgaGVhZGVyIGlzIHNldCBieSBBbmd1bGFyIGZyYW1ld29yayB3aGVuIG1pc3NpbmdcclxuICAgICAgICByZXR1cm4gaHR0cEhlYWRlcnNNb2NrKCkuY2FjaGVDb250cm9sKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWNjZXB0RW5jb2RpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hY2NlcHRMYW5ndWFnZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaW9yaXR5KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudXNlckFnZW50KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGVhZGVycygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oZWFkZXJzLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvaHR0cC1oZWFkZXJzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQ7OztHQUdHO0FBQ0gsTUFBTSxJQUFJLEdBQVcsTUFBTSxDQUFDO0FBRTVCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBRXhCOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFnQztRQUNwRCxJQUFJLE1BQU0sR0FBVyxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUM1QixNQUFNLElBQUksR0FBYSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUMsRUFBRTtZQUN2QyxNQUFNLElBQUksR0FBRyxHQUFHLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFvQjtRQUNyQyxJQUFJLEtBQUssS0FBSyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDaEMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsMkJBQTJCO1FBQ3JDLDJEQUEyRDtRQUMzRCxPQUFPLGVBQWUsRUFBRSxDQUFDLFlBQVksRUFBRTthQUNkLGNBQWMsRUFBRTthQUNoQixjQUFjLEVBQUU7YUFDaEIsUUFBUSxFQUFFO2FBQ1YsU0FBUyxFQUFFO2FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxcIjtcclxuaW1wb3J0IHsgaHR0cEhlYWRlcnNNb2NrIH0gZnJvbSBcIi4vaHR0cC1oZWFkZXJzLW1vY2suYnVpbGRlclwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEludGVybmFsIHJlZmVyZW5jZSB0byBhIG5ldyBsaW5lIGNoYXJhY3Rlci5cclxuICovXHJcbmNvbnN0IENSTEY6IHN0cmluZyA9IFwiXFxyXFxuXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogQSBzZXQgb2Ygc3RhdGljIHV0aWxpdGllcyBmb3IgbWFuaXB1bGF0aW5nIGBIdHRwSGVhZGVyc2Agb2JqZWN0cy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBIdHRwSGVhZGVyc1V0aWwge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gdGhlIHRoZSBzcGVjaWZpZWQgYEh0dHBIZWFkZXJzIGBvYmplY3QsIGNvbXBhdGlibGUgd2l0aCB0aGUgZm9ybWF0XHJcbiAgICAgKiBleHBlY3RlZCBieSB0aGUgYFhNTEh0dHBSZXF1ZXN0LmdldEFsbFJlc3BvbnNlSGVhZGVycygpYCBtZXRob2QuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBoZWFkZXJzIFRoZSBgSHR0cEhlYWRlcnNgIG9iamVjdCB0byBmb3JtYXQuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIGNvbXBhdGlibGUgd2l0aCB0aGUgZm9ybWF0IGV4cGVjdGVkIGJ5IHRoZSBgWE1MSHR0cFJlcXVlc3QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKClgIG1ldGhvZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBzdHJpbmdpZnkoaGVhZGVyczogSHR0cEhlYWRlcnMgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZyA9IEVNUFRZX1NUUklORztcclxuICAgICAgICBpZiAoIWhlYWRlcnMpIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBoZWFkZXJzLmtleXMoKTtcclxuICAgICAgICBjb25zdCBsYXN0OiBudW1iZXIgPSBrZXlzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZywgaW5kZXg6IG51bWJlcik9PiB7XHJcbiAgICAgICAgICAgIHJlc3VsdCArPSBgJHtrZXl9OiAke2hlYWRlcnMuZ2V0QWxsKGtleSl9JHtpbmRleCAhPT0gbGFzdCA/IENSTEYgOiBFTVBUWV9TVFJJTkd9YDtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBSZXR1cm5zIGEgYEh0dHBIZWFkZXJzYCBvYmplY3QgYnVpbHQgZnJvbSB0aGUgc3RyaW5nIHJldHVybnMgYnkgdGhlIGBYTUxIdHRwUmVxdWVzdC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKWAgbWV0aG9kLFxyXG4gICAgICogb3IgYG51bGxgIHdoZWhlciAgYFhNTEh0dHBSZXF1ZXN0LmdldEFsbFJlc3BvbnNlSGVhZGVycygpYCByZXR1cm4gYG51bGxgLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB0byB0dXJuIGludG8gYSBgSHR0cEhlYWRlcnMgYG9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSBgSHR0cEhlYWRlcnNgIG9iamVjdCwgb3IgYG51bGxgLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGVuY29kZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IEh0dHBIZWFkZXJzIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gbnVsbDtcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKHZhbHVlKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQ3JlYXRlcyB0aGUgZGVmYXVsdCBgSHR0cEhlYWRlcnNgIG9iamVjdCBmb3IgYSBtb2NrZWQgSFRUUCByZXF1ZXN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgZGVmYXVsdCBgSHR0cEhlYWRlcnNgIG9iamVjdCBmb3IgYSBtb2NrZWQgSFRUUCByZXF1ZXN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZURlZmF1bHRSZXF1ZXN0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgLy8gXCJBY2NlcHRcIiBoZWFkZXIgaXMgc2V0IGJ5IEFuZ3VsYXIgZnJhbWV3b3JrIHdoZW4gbWlzc2luZ1xyXG4gICAgICAgIHJldHVybiBodHRwSGVhZGVyc01vY2soKS5jYWNoZUNvbnRyb2woKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hY2NlcHRFbmNvZGluZygpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFjY2VwdExhbmd1YWdlKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpb3JpdHkoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC51c2VyQWdlbnQoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5oZWFkZXJzKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ /**
9
+ * A convenient constant that represents the maximum value for a delayed HTTP response.
10
+ */
11
+ export const HTTP_MOCK_MAX_DELAY = 10000;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLW1heC1kZWxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAvdXRpbC9odHRwLW1vY2stbWF4LWRlbGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQVcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEEgY29udmVuaWVudCBjb25zdGFudCB0aGF0IHJlcHJlc2VudHMgdGhlIG1heGltdW0gdmFsdWUgZm9yIGEgZGVsYXllZCBIVFRQIHJlc3BvbnNlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEhUVFBfTU9DS19NQVhfREVMQVk6IG51bWJlciA9IDEwMDAwO1xyXG4iXX0=