angular-toolbox 0.11.2 → 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 (223) 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/config/http-mock-production-policy.enum.mjs +27 -0
  91. package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.mjs +9 -0
  92. package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.provider.mjs +33 -0
  93. package/esm2022/lib/model/business/mock/http/config/index.mjs +4 -0
  94. package/esm2022/lib/model/business/mock/http/fetch-client.mjs +7 -2
  95. package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +1 -1
  96. package/esm2022/lib/model/business/mock/http/http-mock-request-metadata.mjs +9 -0
  97. package/esm2022/lib/model/business/mock/http/index.mjs +4 -1
  98. package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-metadata.mjs +9 -0
  99. package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-prefetch-metadata.mjs +9 -0
  100. package/esm2022/lib/model/business/mock/http/logging/index.mjs +3 -0
  101. package/esm2022/lib/model/service/index.mjs +3 -2
  102. package/esm2022/lib/model/service/logging/index.mjs +2 -0
  103. package/esm2022/lib/model/service/logging/logger-service.mjs +24 -0
  104. package/esm2022/lib/model/service/mock/http/http-mock.service.mjs +45 -6
  105. package/esm2022/lib/model/service/mock/http/index.mjs +3 -0
  106. package/esm2022/lib/model/service/mock/http/logging/http-mock-logging-service.mjs +110 -0
  107. package/esm2022/lib/model/service/mock/http/logging/index.mjs +2 -0
  108. package/esm2022/lib/model/service/ui/app-bridge.service.mjs +3 -3
  109. package/esm2022/lib/model/service/ui/dark-mode.service.mjs +3 -3
  110. package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +3 -3
  111. package/esm2022/lib/util/default-scroll-behavior.mjs +3 -3
  112. package/esm2022/lib/util/http-mocking-framework-config.manager.mjs +129 -0
  113. package/fesm2022/angular-toolbox.mjs +3338 -997
  114. package/fesm2022/angular-toolbox.mjs.map +1 -1
  115. package/lib/core/bridge/app-bridge.d.ts +2 -2
  116. package/lib/core/error/app-bridge-error.d.ts +2 -2
  117. package/lib/core/error/http-mock-service-error.d.ts +2 -2
  118. package/lib/core/error/integrity-error.d.ts +2 -2
  119. package/lib/core/error/subscription-error.d.ts +2 -2
  120. package/lib/core/impl/lang/identifiable-component.d.ts +2 -2
  121. package/lib/core/impl/version/version.impl.d.ts +2 -2
  122. package/lib/framework/index.d.ts +2 -0
  123. package/lib/framework/logging/connector/console-log-connector.d.ts +34 -0
  124. package/lib/framework/logging/connector/default-log-connector.d.ts +34 -0
  125. package/lib/framework/logging/connector/html-log-connector.d.ts +72 -0
  126. package/lib/framework/logging/connector/index.d.ts +3 -0
  127. package/lib/framework/logging/impl/abstract-logger.d.ts +69 -0
  128. package/lib/framework/logging/impl/index.d.ts +2 -0
  129. package/lib/framework/logging/impl/log-impl.d.ts +42 -0
  130. package/lib/framework/logging/index.d.ts +3 -0
  131. package/lib/framework/logging/util/index.d.ts +3 -0
  132. package/lib/framework/logging/util/log.builder.d.ts +24 -0
  133. package/lib/framework/logging/util/log.constant.d.ts +23 -0
  134. package/lib/framework/logging/util/log.util.d.ts +48 -0
  135. package/lib/framework/mock/http/core/data-storage.d.ts +6 -1
  136. package/lib/framework/mock/http/core/response-delay.d.ts +23 -0
  137. package/lib/framework/mock/http/event/event-target.impl.d.ts +8 -0
  138. package/lib/framework/mock/http/logging/http-mock-logger.d.ts +14 -0
  139. package/lib/framework/mock/http/logging/http-mock-logging-metadata.builder.d.ts +20 -0
  140. package/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.d.ts +2 -2
  141. package/lib/framework/mock/http/path-to-regexp/model/lex-token.d.ts +2 -2
  142. package/lib/framework/mock/http/util/data-storage.builder.d.ts +3 -2
  143. package/lib/framework/mock/http/util/http-headers.util.d.ts +10 -0
  144. package/lib/framework/mock/http/util/http-mock-max-delay.d.ts +11 -0
  145. package/lib/framework/mock/http/util/http-mock-response-delay.util.d.ts +22 -0
  146. package/lib/framework/mock/http/util/http-mock-response.builder.d.ts +16 -0
  147. package/lib/framework/mock/http/util/index.d.ts +1 -0
  148. package/lib/framework/mock/http/xhr/delegate-xhr.d.ts +11 -4
  149. package/lib/framework/mock/http/xhr/http-mock-factory.impl.d.ts +3 -1
  150. package/lib/framework/mock/http/xhr/xhr-proxy-impl.d.ts +6 -5
  151. package/lib/framework/mock/http-monitoring-console/component/console-footer/console-footer.component.d.ts +8 -0
  152. package/lib/framework/mock/http-monitoring-console/component/console-menu/console-menu.component.d.ts +21 -0
  153. package/lib/framework/mock/http-monitoring-console/component/http-monitoring-console/http-monitoring-console.component.d.ts +42 -0
  154. package/lib/framework/mock/http-monitoring-console/component/renderer/icon-renderer/icon-renderer.component.d.ts +12 -0
  155. package/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer/json-viewer.component.d.ts +8 -0
  156. package/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer-panel/json-viewer-panel.component.d.ts +7 -0
  157. package/lib/framework/mock/http-monitoring-console/component/renderer/payload-renderer/payload-renderer.component.d.ts +20 -0
  158. package/lib/framework/mock/http-monitoring-console/component/renderer/response-body-renderer/response-body-renderer.component.d.ts +20 -0
  159. package/lib/framework/mock/http-monitoring-console/component/renderer/response-preview-renderer/response-preview-renderer.component.d.ts +27 -0
  160. package/lib/framework/mock/http-monitoring-console/component/renderer/timing-renderer/timing-renderer.component.d.ts +13 -0
  161. package/lib/framework/mock/http-monitoring-console/component/request-details/request-details.component.d.ts +27 -0
  162. package/lib/framework/mock/http-monitoring-console/connector/http-monitoring-console-log-connector.d.ts +40 -0
  163. package/lib/framework/mock/http-monitoring-console/index.d.ts +1 -0
  164. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-action-type.d.ts +12 -0
  165. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-action.d.ts +12 -0
  166. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-json.d.ts +14 -0
  167. package/lib/framework/mock/http-monitoring-console/model/business/atx-is-imported-log.d.ts +9 -0
  168. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-body-dto.d.ts +11 -0
  169. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-header-dto.d.ts +11 -0
  170. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log-metadata.dto.d.ts +18 -0
  171. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log.dto.d.ts +23 -0
  172. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request-metadata.dto.ts.d.ts +32 -0
  173. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request.dto.d.ts +18 -0
  174. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-response.dto.d.ts +16 -0
  175. package/lib/framework/mock/http-monitoring-console/model/business/io/hmfl.d.ts +12 -0
  176. package/lib/framework/mock/http-monitoring-console/model/service/atx-log-io.service.d.ts +11 -0
  177. package/lib/framework/mock/http-monitoring-console/model/service/io/body-converter.d.ts +12 -0
  178. package/lib/framework/mock/http-monitoring-console/model/service/io/body-serializer.d.ts +13 -0
  179. package/lib/framework/mock/http-monitoring-console/model/service/io/http-request-converter.d.ts +13 -0
  180. package/lib/framework/mock/http-monitoring-console/model/service/io/http-response-converter.d.ts +13 -0
  181. package/lib/framework/mock/http-monitoring-console/model/service/io/log-converter.d.ts +13 -0
  182. package/lib/framework/mock/http-monitoring-console/model/service/io/log-headers-converter.d.ts +13 -0
  183. package/lib/framework/mock/http-monitoring-console/model/service/io/log-message.util.d.ts +12 -0
  184. package/lib/framework/mock/http-monitoring-console/model/service/io/log-metadata-converter.d.ts +13 -0
  185. package/lib/framework/mock/http-monitoring-console/model/service/io/request-metadata-converter.d.ts +13 -0
  186. package/lib/framework/mock/http-monitoring-console/util/console-body-type.d.ts +16 -0
  187. package/lib/framework/mock/http-monitoring-console/util/console-type-class.d.ts +15 -0
  188. package/lib/framework/mock/http-monitoring-console/util/data.util.d.ts +13 -0
  189. package/lib/framework/mock/http-monitoring-console/util/size.util.d.ts +11 -0
  190. package/lib/framework/mock/http-monitoring-console/util/url.util.d.ts +13 -0
  191. package/lib/model/business/index.d.ts +1 -0
  192. package/lib/model/business/lang/app-bridge-command.d.ts +2 -2
  193. package/lib/model/business/lang/destroyable.d.ts +2 -2
  194. package/lib/model/business/lang/identifiable.d.ts +2 -2
  195. package/lib/model/business/logging/http-mock-logging-constant.enum.d.ts +32 -0
  196. package/lib/model/business/logging/index.d.ts +5 -0
  197. package/lib/model/business/logging/log-connector.d.ts +36 -0
  198. package/lib/model/business/logging/log-level.enum.d.ts +33 -0
  199. package/lib/model/business/logging/log.d.ts +34 -0
  200. package/lib/model/business/logging/logger.d.ts +58 -0
  201. package/lib/model/business/logging/transactional-logger.d.ts +28 -0
  202. package/lib/model/business/mock/http/config/http-mock-production-policy.enum.d.ts +24 -0
  203. package/lib/model/business/mock/http/config/http-mocking-framework-config.d.ts +21 -0
  204. package/lib/model/business/mock/http/config/http-mocking-framework-config.provider.d.ts +21 -0
  205. package/lib/model/business/mock/http/config/index.d.ts +3 -0
  206. package/lib/model/business/mock/http/fetch-client.d.ts +1 -1
  207. package/lib/model/business/mock/http/http-method-mock.d.ts +1 -6
  208. package/lib/model/business/mock/http/http-mock-request-metadata.d.ts +33 -0
  209. package/lib/model/business/mock/http/index.d.ts +3 -0
  210. package/lib/model/business/mock/http/logging/http-mock-logging-metadata.d.ts +15 -0
  211. package/lib/model/business/mock/http/logging/http-mock-logging-prefetch-metadata.d.ts +16 -0
  212. package/lib/model/business/mock/http/logging/index.d.ts +2 -0
  213. package/lib/model/service/index.d.ts +2 -1
  214. package/lib/model/service/logging/index.d.ts +1 -0
  215. package/lib/model/service/logging/logger-service.d.ts +9 -0
  216. package/lib/model/service/mock/http/http-mock.service.d.ts +35 -2
  217. package/lib/model/service/mock/http/index.d.ts +2 -0
  218. package/lib/model/service/mock/http/logging/http-mock-logging-service.d.ts +78 -0
  219. package/lib/model/service/mock/http/logging/index.d.ts +1 -0
  220. package/lib/model/service/ui/dark-mode.service.d.ts +2 -2
  221. package/lib/util/default-scroll-behavior.d.ts +2 -2
  222. package/lib/util/http-mocking-framework-config.manager.d.ts +66 -0
  223. package/package.json +1 -1
@@ -0,0 +1,129 @@
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 { HttpMockProductionPolicy } from "../model";
9
+ import { HttpMockServiceError } from "../core";
10
+ /**
11
+ * @private
12
+ */
13
+ const POLICY_WARNING = "HTTP Mocking Framework is running in production mode";
14
+ /**
15
+ * @private
16
+ */
17
+ const POLICY_ERROR = new HttpMockServiceError(POLICY_WARNING + ": remove all framework references or change the 'productionPolicy' property value of the HTTP_MOCKING_FRAMEWORK_CONFIG provider.");
18
+ /**
19
+ * @private
20
+ */
21
+ const FLAG_ID = "http-mocking-framework-flag";
22
+ /**
23
+ * The object that manages the HTTP Mocking Framework options.
24
+ */
25
+ export class HttpMockingFrameworkConfigManager {
26
+ /**
27
+ * Returns the value specified by the `disableVisualFlag` of the `HttpMockingFrameworkConfig` provider,
28
+ * or `false` when no provider is defined.
29
+ */
30
+ get disableVisualFlag() {
31
+ const cfg = this._config;
32
+ return cfg && cfg.disableVisualFlag ? cfg.disableVisualFlag : false;
33
+ }
34
+ /**
35
+ * Returns the value specified by the `productionPolicy` of the `HttpMockingFrameworkConfig` provider,
36
+ * or `HttpMockProductionPolicy.ERROR` when no provider is defined.
37
+ */
38
+ get productionPolicy() {
39
+ return this._prodPolicy;
40
+ }
41
+ /**
42
+ * @private
43
+ * Creates and Initializes the manager with the specified config.
44
+ *
45
+ * @param document The reference to the `Document` object, injected by Angular.
46
+ * @param isDevMode Indicates wheter Angular runs in development mode (`true`), or in production mode (`false`).
47
+ * @param config The `HttpMockingFrameworkConfi` provider.
48
+ */
49
+ constructor(document, isDevMode, config) {
50
+ this._isProdMode = !isDevMode;
51
+ this._document = document;
52
+ this._config = config;
53
+ this._prodPolicy = config && config.productionPolicy !== undefined ? config.productionPolicy : HttpMockProductionPolicy.ERROR;
54
+ this.checkPolicy();
55
+ this.createVisualFlag(document, config);
56
+ }
57
+ /**
58
+ * Apply a strategy depending on the current production policy and environment.
59
+ * @param route An optional parameter used when the methhod is associated to a HTTP request.
60
+ * Must be the representation of the intercepted route path.
61
+ * @param method An optional parameter used when the methhod is associated to a HTTP request.
62
+ * Must be the representation of the intercepted HTTP method.
63
+ */
64
+ checkPolicy(route, method = undefined) {
65
+ if (!this._isProdMode)
66
+ return;
67
+ if (this._prodPolicy === HttpMockProductionPolicy.ERROR)
68
+ throw POLICY_ERROR;
69
+ if (this._prodPolicy === HttpMockProductionPolicy.SILENT)
70
+ return;
71
+ const routeMsg = route ? `: intercepted request=[path=${route}, method=${method?.toUpperCase()}]` : ".";
72
+ console.warn(POLICY_WARNING + routeMsg);
73
+ }
74
+ /**
75
+ * @private
76
+ */
77
+ destroy() {
78
+ const cfg = this._config;
79
+ const noFlag = (cfg && cfg.disableVisualFlag) === true;
80
+ this._config = null;
81
+ if (noFlag)
82
+ return;
83
+ const doc = this._document;
84
+ const flag = doc.getElementById(FLAG_ID);
85
+ if (flag) {
86
+ flag.onmouseover = flag.onmouseout = null;
87
+ doc.body.removeChild(flag);
88
+ }
89
+ }
90
+ /**
91
+ * @private
92
+ */
93
+ createVisualFlag(document, config) {
94
+ if (config && config.disableVisualFlag)
95
+ return;
96
+ const flag = document.createElement("div");
97
+ const text = document.createTextNode("HTTP Mocking Framwork");
98
+ const style = flag.style;
99
+ const body = document.body;
100
+ flag.setAttribute("id", FLAG_ID);
101
+ style.backgroundColor = "red";
102
+ style.color = "white";
103
+ style.textAlign = "center";
104
+ style.position = "fixed";
105
+ style.width = "100%";
106
+ style.overflow = "hidden";
107
+ style.height = "26px";
108
+ style.transition = "all 0.25s ease-in-out";
109
+ style.zIndex = "10000";
110
+ style.opacity = "1";
111
+ style.userSelect = "none";
112
+ flag.onmouseover = () => {
113
+ style.height = "26px";
114
+ style.opacity = "1";
115
+ };
116
+ flag.onmouseout = () => {
117
+ style.height = "6px";
118
+ style.opacity = "0.35";
119
+ };
120
+ flag.appendChild(text);
121
+ body.insertBefore(flag, body.firstChild);
122
+ setTimeout(() => {
123
+ style.height = "4px";
124
+ style.opacity = "0.35";
125
+ }, 4000);
126
+ }
127
+ }
128
+ ;
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NraW5nLWZyYW1ld29yay1jb25maWcubWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL3V0aWwvaHR0cC1tb2NraW5nLWZyYW1ld29yay1jb25maWcubWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQWUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRy9DOztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQVcsc0RBQXNELENBQUM7QUFFdEY7O0dBRUc7QUFDSCxNQUFNLFlBQVksR0FBeUIsSUFBSSxvQkFBb0IsQ0FBQyxjQUFjLEdBQUcsa0lBQWtJLENBQUMsQ0FBQztBQUV6Tjs7R0FFRztBQUNILE1BQU0sT0FBTyxHQUFXLDZCQUE2QixDQUFDO0FBRXREOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlDQUFpQztJQXNCMUM7OztPQUdHO0lBQ0gsSUFBVyxpQkFBaUI7UUFDeEIsTUFBTSxHQUFHLEdBQTJDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDakUsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN4RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxRQUFrQixFQUFFLFNBQWtCLEVBQUUsTUFBbUM7UUFDbkYsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJ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QUFLLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUUsRUFBRTtZQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUN0QixLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUN4QixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUUsRUFBRTtZQUNsQixLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNyQixLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUMzQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsR0FBRSxFQUFFO1lBQ1gsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDckIsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDM0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNKO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IERlc3Ryb3lhYmxlLCBIdHRwTW9ja1Byb2R1Y3Rpb25Qb2xpY3kgfSBmcm9tIFwiLi4vbW9kZWxcIjtcclxuaW1wb3J0IHsgSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWcgfSBmcm9tIFwiLi4vbW9kZWwvYnVzaW5lc3MvbW9jay9odHRwL2NvbmZpZy9odHRwLW1vY2tpbmctZnJhbWV3b3JrLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBIdHRwTW9ja1NlcnZpY2VFcnJvciB9IGZyb20gXCIuLi9jb3JlXCI7XHJcbmltcG9ydCB7IEhUVFBNZXRob2RSZWYgfSBmcm9tIFwiLi4vZnJhbWV3b3JrL21vY2svaHR0cC91dGlsL2h0dHAtbWV0aG9kLXJlZi5lbnVtXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IFBPTElDWV9XQVJOSU5HOiBzdHJpbmcgPSBcIkhUVFAgTW9ja2luZyBGcmFtZXdvcmsgaXMgcnVubmluZyBpbiBwcm9kdWN0aW9uIG1vZGVcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgUE9MSUNZX0VSUk9SOiBIdHRwTW9ja1NlcnZpY2VFcnJvciA9IG5ldyBIdHRwTW9ja1NlcnZpY2VFcnJvcihQT0xJQ1lfV0FSTklORyArIFwiOiByZW1vdmUgYWxsIGZyYW1ld29yayByZWZlcmVuY2VzIG9yIGNoYW5nZSB0aGUgJ3Byb2R1Y3Rpb25Qb2xpY3knIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBIVFRQX01PQ0tJTkdfRlJBTUVXT1JLX0NPTkZJRyBwcm92aWRlci5cIik7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEZMQUdfSUQ6IHN0cmluZyA9IFwiaHR0cC1tb2NraW5nLWZyYW1ld29yay1mbGFnXCI7XHJcblxyXG4vKipcclxuICogVGhlIG9iamVjdCB0aGF0IG1hbmFnZXMgdGhlIEhUVFAgTW9ja2luZyBGcmFtZXdvcmsgb3B0aW9ucy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBIdHRwTW9ja2luZ0ZyYW1ld29ya0NvbmZpZ01hbmFnZXIgaW1wbGVtZW50cyBEZXN0cm95YWJsZSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9kb2N1bWVudCE6IERvY3VtZW50O1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2NvbmZpZz86IEh0dHBNb2NraW5nRnJhbWV3b3JrQ29uZmlnO1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2lzUHJvZE1vZGU6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wcm9kUG9saWN5OiBIdHRwTW9ja1Byb2R1Y3Rpb25Qb2xpY3k7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBzcGVjaWZpZWQgYnkgdGhlIGBkaXNhYmxlVmlzdWFsRmxhZ2Agb2YgdGhlIGBIdHRwTW9ja2luZ0ZyYW1ld29ya0NvbmZpZ2AgcHJvdmlkZXIsXHJcbiAgICAgKiBvciBgZmFsc2VgIHdoZW4gbm8gcHJvdmlkZXIgaXMgZGVmaW5lZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBkaXNhYmxlVmlzdWFsRmxhZygpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBjZmc6IEh0dHBNb2NraW5nRnJhbWV3b3JrQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5fY29uZmlnO1xyXG4gICAgICAgIHJldHVybiBjZmcgJiYgY2ZnLmRpc2FibGVWaXN1YWxGbGFnID8gY2ZnLmRpc2FibGVWaXN1YWxGbGFnIDogZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBzcGVjaWZpZWQgYnkgdGhlIGBwcm9kdWN0aW9uUG9saWN5YCBvZiB0aGUgYEh0dHBNb2NraW5nRnJhbWV3b3JrQ29uZmlnYCBwcm92aWRlcixcclxuICAgICAqIG9yIGBIdHRwTW9ja1Byb2R1Y3Rpb25Qb2xpY3kuRVJST1JgIHdoZW4gbm8gcHJvdmlkZXIgaXMgZGVmaW5lZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBwcm9kdWN0aW9uUG9saWN5KCk6IEh0dHBNb2NrUHJvZHVjdGlvblBvbGljeSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2RQb2xpY3k7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQ3JlYXRlcyBhbmQgSW5pdGlhbGl6ZXMgdGhlIG1hbmFnZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmZpZy5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGRvY3VtZW50IFRoZSByZWZlcmVuY2UgdG8gdGhlIGBEb2N1bWVudGAgb2JqZWN0LCBpbmplY3RlZCBieSBBbmd1bGFyLlxyXG4gICAgICogQHBhcmFtIGlzRGV2TW9kZSBJbmRpY2F0ZXMgd2hldGVyIEFuZ3VsYXIgcnVucyBpbiBkZXZlbG9wbWVudCBtb2RlIChgdHJ1ZWApLCBvciBpbiBwcm9kdWN0aW9uIG1vZGUgKGBmYWxzZWApLlxyXG4gICAgICogQHBhcmFtIGNvbmZpZyBUaGUgYEh0dHBNb2NraW5nRnJhbWV3b3JrQ29uZmlgIHByb3ZpZGVyLlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudDogRG9jdW1lbnQsIGlzRGV2TW9kZTogYm9vbGVhbiwgY29uZmlnPzogSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWcpIHtcclxuICAgICAgICB0aGlzLl9pc1Byb2RNb2RlID0gIWlzRGV2TW9kZTtcclxuICAgICAgICB0aGlzLl9kb2N1bWVudCA9IGRvY3VtZW50O1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuICAgICAgICB0aGlzLl9wcm9kUG9saWN5ID0gY29uZmlnICYmIGNvbmZpZy5wcm9kdWN0aW9uUG9saWN5ICE9PSB1bmRlZmluZWQgPyBjb25maWcucHJvZHVjdGlvblBvbGljeSA6IEh0dHBNb2NrUHJvZHVjdGlvblBvbGljeS5FUlJPUjtcclxuICAgICAgICB0aGlzLmNoZWNrUG9saWN5KCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVWaXN1YWxGbGFnKGRvY3VtZW50LCBjb25maWcpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEFwcGx5IGEgc3RyYXRlZ3kgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50IHByb2R1Y3Rpb24gcG9saWN5IGFuZCBlbnZpcm9ubWVudC5cclxuICAgICAqIEBwYXJhbSByb3V0ZSBBbiBvcHRpb25hbCBwYXJhbWV0ZXIgdXNlZCB3aGVuIHRoZSBtZXRoaG9kIGlzIGFzc29jaWF0ZWQgdG8gYSBIVFRQIHJlcXVlc3QuXHJcbiAgICAgKiAgICAgICAgICAgICAgTXVzdCBiZSB0aGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVyY2VwdGVkIHJvdXRlIHBhdGguXHJcbiAgICAgKiBAcGFyYW0gbWV0aG9kIEFuIG9wdGlvbmFsIHBhcmFtZXRlciB1c2VkIHdoZW4gdGhlIG1ldGhob2QgaXMgYXNzb2NpYXRlZCB0byBhIEhUVFAgcmVxdWVzdC5cclxuICAgICAqICAgICAgICAgICAgICAgTXVzdCBiZSB0aGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVyY2VwdGVkIEhUVFAgbWV0aG9kLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hlY2tQb2xpY3kocm91dGU/OiBzdHJpbmcsIG1ldGhvZDogSFRUUE1ldGhvZFJlZiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5faXNQcm9kTW9kZSkgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLl9wcm9kUG9saWN5ID09PSBIdHRwTW9ja1Byb2R1Y3Rpb25Qb2xpY3kuRVJST1IpIHRocm93IFBPTElDWV9FUlJPUjtcclxuICAgICAgICBpZiAodGhpcy5fcHJvZFBvbGljeSA9PT0gSHR0cE1vY2tQcm9kdWN0aW9uUG9saWN5LlNJTEVOVCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHJvdXRlTXNnOiBzdHJpbmcgPSByb3V0ZSA/IGA6IGludGVyY2VwdGVkIHJlcXVlc3Q9W3BhdGg9JHtyb3V0ZX0sIG1ldGhvZD0ke21ldGhvZD8udG9VcHBlckNhc2UoKX1dYCA6IFwiLlwiO1xyXG4gICAgICAgIGNvbnNvbGUud2FybihQT0xJQ1lfV0FSTklORyArIHJvdXRlTXNnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNmZzogSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWcgfCB1bmRlZmluZWQgPSB0aGlzLl9jb25maWc7XHJcbiAgICAgICAgY29uc3Qgbm9GbGFnOiBib29sZWFuID0gKGNmZyAmJiBjZmcuZGlzYWJsZVZpc3VhbEZsYWcpID09PSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IG51bGwgYXMgYW55O1xyXG4gICAgICAgIGlmIChub0ZsYWcpICByZXR1cm47XHJcbiAgICAgICAgY29uc3QgZG9jOiBEb2N1bWVudCA9IHRoaXMuX2RvY3VtZW50O1xyXG4gICAgICAgIGNvbnN0IGZsYWc6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGRvYy5nZXRFbGVtZW50QnlJZChGTEFHX0lEKTtcclxuICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICBmbGFnLm9ubW91c2VvdmVyID0gZmxhZy5vbm1vdXNlb3V0ID1udWxsO1xyXG4gICAgICAgICAgICBkb2MuYm9keS5yZW1vdmVDaGlsZChmbGFnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZVZpc3VhbEZsYWcoZG9jdW1lbnQ6IERvY3VtZW50LCBjb25maWc/OiBIdHRwTW9ja2luZ0ZyYW1ld29ya0NvbmZpZyk6IHZvaWQge1xyXG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmRpc2FibGVWaXN1YWxGbGFnKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgZmxhZzogSFRNTERpdkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgIGNvbnN0IHRleHQ6IFRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIkhUVFAgTW9ja2luZyBGcmFtd29ya1wiKTtcclxuICAgICAgICBjb25zdCBzdHlsZTogQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IGZsYWcuc3R5bGU7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7XHJcbiAgICAgICAgZmxhZy5zZXRBdHRyaWJ1dGUoXCJpZFwiLCBGTEFHX0lEKTtcclxuICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBcInJlZFwiO1xyXG4gICAgICAgIHN0eWxlLmNvbG9yID0gXCJ3aGl0ZVwiO1xyXG4gICAgICAgIHN0eWxlLnRleHRBbGlnbiA9IFwiY2VudGVyXCI7XHJcbiAgICAgICAgc3R5bGUucG9zaXRpb24gPSBcImZpeGVkXCI7XHJcbiAgICAgICAgc3R5bGUud2lkdGggPSBcIjEwMCVcIjtcclxuICAgICAgICBzdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XHJcbiAgICAgICAgc3R5bGUuaGVpZ2h0ID0gXCIyNnB4XCI7XHJcbiAgICAgICAgc3R5bGUudHJhbnNpdGlvbiA9IFwiYWxsIDAuMjVzIGVhc2UtaW4tb3V0XCI7XHJcbiAgICAgICAgc3R5bGUuekluZGV4ID0gXCIxMDAwMFwiO1xyXG4gICAgICAgIHN0eWxlLm9wYWNpdHkgPSBcIjFcIjtcclxuICAgICAgICBzdHlsZS51c2VyU2VsZWN0ID0gXCJub25lXCI7XHJcbiAgICAgICAgZmxhZy5vbm1vdXNlb3ZlciA9ICgpPT4ge1xyXG4gICAgICAgICAgICBzdHlsZS5oZWlnaHQgPSBcIjI2cHhcIjtcclxuICAgICAgICAgICAgc3R5bGUub3BhY2l0eSA9IFwiMVwiO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgZmxhZy5vbm1vdXNlb3V0ID0gKCk9PiB7XHJcbiAgICAgICAgICAgIHN0eWxlLmhlaWdodCA9IFwiNnB4XCI7XHJcbiAgICAgICAgICAgIHN0eWxlLm9wYWNpdHkgPSBcIjAuMzVcIjtcclxuICAgICAgICB9O1xyXG4gICAgICAgIGZsYWcuYXBwZW5kQ2hpbGQodGV4dCk7XHJcbiAgICAgICAgYm9keS5pbnNlcnRCZWZvcmUoZmxhZywgYm9keS5maXJzdENoaWxkKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICAgICAgICBzdHlsZS5oZWlnaHQgPSBcIjRweFwiO1xyXG4gICAgICAgICAgICBzdHlsZS5vcGFjaXR5ID0gXCIwLjM1XCI7XHJcbiAgICAgICAgfSwgNDAwMCk7XHJcbiAgICB9XHJcbn07Il19