angular-toolbox 0.0.8 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +14 -10
- package/{esm2020 → esm2022}/angular-toolbox.mjs +4 -4
- package/esm2022/lib/angular-toolbox.module.mjs +21 -0
- package/esm2022/lib/core/bridge/app-bridge.mjs +76 -0
- package/esm2022/lib/core/error/app-bridge-error.mjs +24 -0
- package/esm2022/lib/core/error/http-mock-service-error.mjs +26 -0
- package/esm2022/lib/core/error/index.mjs +5 -0
- package/esm2022/lib/core/error/integrity-error.mjs +26 -0
- package/esm2022/lib/core/error/subscription-error.mjs +26 -0
- package/esm2022/lib/core/impl/index.mjs +2 -0
- package/esm2022/lib/core/impl/lang/identifiable-component.mjs +31 -0
- package/esm2022/lib/core/impl/lang/index.mjs +2 -0
- package/esm2022/lib/core/impl/version/version.impl.mjs +34 -0
- package/esm2022/lib/core/index.mjs +3 -0
- package/esm2022/lib/directive/anchor-link.directive.mjs +62 -0
- package/esm2022/lib/directive/button-role.directive.mjs +102 -0
- package/esm2022/lib/directive/content-renderer.directive.mjs +61 -0
- package/esm2022/lib/directive/index.mjs +5 -0
- package/esm2022/lib/directive/navigate-to-url.directive.mjs +51 -0
- package/esm2022/lib/directive/navigation-directive-base.mjs +23 -0
- package/esm2022/lib/framework/index.mjs +2 -0
- package/esm2022/lib/framework/mock/http/config/http-mock-parameters.mjs +9 -0
- package/esm2022/lib/framework/mock/http/config/http-mock.decorator.mjs +48 -0
- package/esm2022/lib/framework/mock/http/config/index.mjs +3 -0
- package/esm2022/lib/framework/mock/http/config/route-mock-config.mjs +9 -0
- package/esm2022/lib/framework/mock/http/core/data-storage.mjs +9 -0
- package/esm2022/lib/framework/mock/http/event/event-target.impl.mjs +122 -0
- package/esm2022/lib/framework/mock/http/event/progress-event-mock.mjs +48 -0
- package/esm2022/lib/framework/mock/http/index.mjs +4 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/constants.mjs +111 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.mjs +34 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/get-flags.mjs +28 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/iter.mjs +76 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/lexer.mjs +96 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/loose-replacer.mjs +28 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/decode-key-to-string.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/encode.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/key.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/lex-token.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/lexer-type.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/loose-replacer-provider.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/non-delimiter-encoder-provider.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/parse-options.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/path-to-regexp-options.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/route-string-tokenizer.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/simple-tokens.mjs +30 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-data-regexp-factory.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-type.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/token.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/string-to-token-data.mjs +87 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/to-key-regexp.mjs +41 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/to-stringify.mjs +29 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/token-data-to-regexp.mjs +49 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/token-data.mjs +33 -0
- package/esm2022/lib/framework/mock/http/util/data-storage.builder.mjs +35 -0
- package/esm2022/lib/framework/mock/http/util/http-headers-mock.builder.mjs +138 -0
- package/esm2022/lib/framework/mock/http/util/http-headers.util.mjs +56 -0
- package/esm2022/lib/framework/mock/http/util/http-method-ref.enum.mjs +60 -0
- package/esm2022/lib/framework/mock/http/util/http-mock-response.builder.mjs +117 -0
- package/esm2022/lib/framework/mock/http/util/index.mjs +3 -0
- package/esm2022/lib/framework/mock/http/xhr/delegate-xhr.mjs +316 -0
- package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.impl.mjs +29 -0
- package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.mjs +19 -0
- package/esm2022/lib/framework/mock/http/xhr/index.mjs +2 -0
- package/esm2022/lib/framework/mock/http/xhr/xhr-base.mjs +123 -0
- package/esm2022/lib/framework/mock/http/xhr/xhr-proxy-impl.mjs +177 -0
- package/esm2022/lib/model/business/index.mjs +5 -0
- package/esm2022/lib/model/business/lang/app-bridge-command.mjs +9 -0
- package/esm2022/lib/model/business/lang/destroyable.mjs +9 -0
- package/esm2022/lib/model/business/lang/identifiable.mjs +9 -0
- package/esm2022/lib/model/business/lang/index.mjs +5 -0
- package/esm2022/lib/model/business/lang/instantiable.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-config.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-endpoint.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-error.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-interceptor.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-response-mock.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/index.mjs +8 -0
- package/esm2022/lib/model/business/mock/http/xhr-proxy.mjs +9 -0
- package/esm2022/lib/model/business/ui/dark-mode-config.mjs +9 -0
- package/esm2022/lib/model/business/ui/dark-mode-config.provider.mjs +43 -0
- package/esm2022/lib/model/business/ui/dark-mode.constant.mjs +16 -0
- package/esm2022/lib/model/business/ui/index.mjs +5 -0
- package/esm2022/lib/model/business/ui/scroll-behavior.type.mjs +9 -0
- package/esm2022/lib/model/business/version/index.mjs +4 -0
- package/esm2022/lib/model/business/version/version-config.mjs +9 -0
- package/esm2022/lib/model/business/version/version-config.provider.mjs +40 -0
- package/esm2022/lib/model/business/version/version.mjs +10 -0
- package/esm2022/lib/model/index.mjs +3 -0
- package/esm2022/lib/model/service/index.mjs +5 -0
- package/esm2022/lib/model/service/mock/http/http-mock.service.mjs +239 -0
- package/esm2022/lib/model/service/subscription/subscription.service.mjs +122 -0
- package/esm2022/lib/model/service/ui/app-bridge.service.mjs +142 -0
- package/esm2022/lib/model/service/ui/dark-mode.service.mjs +183 -0
- package/esm2022/lib/model/service/ui/index.mjs +4 -0
- package/esm2022/lib/model/service/ui/scroll.service.mjs +93 -0
- package/esm2022/lib/model/service/version/version.service.mjs +51 -0
- package/{esm2020 → esm2022}/lib/pipe/index.mjs +1 -1
- package/esm2022/lib/pipe/safe/safe-html.pipe.mjs +34 -0
- package/esm2022/lib/util/aria-role.constant.mjs +16 -0
- package/esm2022/lib/util/default-scroll-behavior.mjs +13 -0
- package/esm2022/lib/util/empty-string.const.mjs +12 -0
- package/esm2022/lib/util/index.mjs +5 -0
- package/esm2022/lib/util/js-type.mjs +40 -0
- package/esm2022/lib/util/uuid.mjs +126 -0
- package/esm2022/public-api.mjs +18 -0
- package/fesm2022/angular-toolbox.mjs +3710 -0
- package/fesm2022/angular-toolbox.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/angular-toolbox.module.d.ts +9 -7
- package/lib/core/bridge/app-bridge.d.ts +59 -0
- package/lib/core/error/app-bridge-error.d.ts +16 -0
- package/lib/core/error/http-mock-service-error.d.ts +18 -0
- package/lib/core/error/index.d.ts +4 -0
- package/lib/core/error/integrity-error.d.ts +18 -0
- package/lib/core/error/subscription-error.d.ts +18 -0
- package/lib/core/impl/index.d.ts +1 -0
- package/lib/core/impl/lang/identifiable-component.d.ts +26 -0
- package/lib/core/impl/lang/index.d.ts +1 -0
- package/lib/core/impl/version/version.impl.d.ts +42 -0
- package/lib/core/index.d.ts +2 -0
- package/lib/directive/anchor-link.directive.d.ts +29 -0
- package/lib/directive/button-role.directive.d.ts +52 -0
- package/lib/directive/content-renderer.directive.d.ts +39 -0
- package/lib/directive/index.d.ts +4 -0
- package/lib/directive/navigate-to-url.directive.d.ts +23 -0
- package/lib/directive/navigation-directive-base.d.ts +19 -0
- package/lib/framework/index.d.ts +1 -0
- package/lib/framework/mock/http/config/http-mock-parameters.d.ts +13 -0
- package/lib/framework/mock/http/config/http-mock.decorator.d.ts +13 -0
- package/lib/framework/mock/http/config/index.d.ts +2 -0
- package/lib/framework/mock/http/config/route-mock-config.d.ts +30 -0
- package/lib/framework/mock/http/core/data-storage.d.ts +38 -0
- package/lib/framework/mock/http/event/event-target.impl.d.ts +70 -0
- package/lib/framework/mock/http/event/progress-event-mock.d.ts +36 -0
- package/lib/framework/mock/http/index.d.ts +3 -0
- package/lib/framework/mock/http/path-to-regexp/constants.d.ts +111 -0
- package/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.d.ts +24 -0
- package/lib/framework/mock/http/path-to-regexp/get-flags.d.ts +25 -0
- package/lib/framework/mock/http/path-to-regexp/iter.d.ts +50 -0
- package/lib/framework/mock/http/path-to-regexp/lexer.d.ts +24 -0
- package/lib/framework/mock/http/path-to-regexp/loose-replacer.d.ts +25 -0
- package/lib/framework/mock/http/path-to-regexp/model/decode-key-to-string.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/model/encode.d.ts +20 -0
- package/lib/framework/mock/http/path-to-regexp/model/key.d.ts +45 -0
- package/lib/framework/mock/http/path-to-regexp/model/lex-token.d.ts +34 -0
- package/lib/framework/mock/http/path-to-regexp/model/lexer-type.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/model/loose-replacer-provider.d.ts +20 -0
- package/lib/framework/mock/http/path-to-regexp/model/non-delimiter-encoder-provider.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/model/parse-options.d.ts +33 -0
- package/lib/framework/mock/http/path-to-regexp/model/path-to-regexp-options.d.ts +52 -0
- package/lib/framework/mock/http/path-to-regexp/model/route-string-tokenizer.d.ts +22 -0
- package/lib/framework/mock/http/path-to-regexp/model/simple-tokens.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/model/token-data-regexp-factory.d.ts +23 -0
- package/lib/framework/mock/http/path-to-regexp/model/token-type.d.ts +20 -0
- package/lib/framework/mock/http/path-to-regexp/model/token.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/string-to-token-data.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/to-key-regexp.d.ts +22 -0
- package/lib/framework/mock/http/path-to-regexp/to-stringify.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/token-data-to-regexp.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/token-data.d.ts +32 -0
- package/lib/framework/mock/http/util/data-storage.builder.d.ts +25 -0
- package/lib/framework/mock/http/util/http-headers-mock.builder.d.ts +106 -0
- package/lib/framework/mock/http/util/http-headers.util.d.ts +31 -0
- package/lib/framework/mock/http/util/http-method-ref.enum.d.ts +58 -0
- package/lib/framework/mock/http/util/http-mock-response.builder.d.ts +83 -0
- package/lib/framework/mock/http/util/index.d.ts +2 -0
- package/lib/framework/mock/http/xhr/delegate-xhr.d.ts +199 -0
- package/lib/framework/mock/http/xhr/http-mock-factory.d.ts +14 -0
- package/lib/framework/mock/http/xhr/http-mock-factory.impl.d.ts +24 -0
- package/lib/framework/mock/http/xhr/index.d.ts +1 -0
- package/lib/framework/mock/http/xhr/xhr-base.d.ts +123 -0
- package/lib/framework/mock/http/xhr/xhr-proxy-impl.d.ts +125 -0
- package/lib/model/business/index.d.ts +4 -0
- package/lib/model/business/lang/app-bridge-command.d.ts +11 -0
- package/lib/model/business/lang/destroyable.d.ts +16 -0
- package/lib/model/business/lang/identifiable.d.ts +19 -0
- package/lib/model/business/lang/index.d.ts +4 -0
- package/lib/model/business/lang/instantiable.d.ts +15 -0
- package/lib/model/business/mock/http/http-method-mock.d.ts +35 -0
- package/lib/model/business/mock/http/http-mock-config.d.ts +28 -0
- package/lib/model/business/mock/http/http-mock-endpoint.d.ts +41 -0
- package/lib/model/business/mock/http/http-mock-error.d.ts +21 -0
- package/lib/model/business/mock/http/http-mock-interceptor.d.ts +27 -0
- package/lib/model/business/mock/http/http-response-mock.d.ts +44 -0
- package/lib/model/business/mock/http/index.d.ts +7 -0
- package/lib/model/business/mock/http/xhr-proxy.d.ts +15 -0
- package/lib/model/business/ui/dark-mode-config.d.ts +29 -0
- package/lib/model/business/ui/dark-mode-config.provider.d.ts +21 -0
- package/lib/model/business/ui/dark-mode.constant.d.ts +15 -0
- package/lib/model/business/ui/index.d.ts +4 -0
- package/lib/model/business/ui/scroll-behavior.type.d.ts +11 -0
- package/lib/model/business/version/index.d.ts +3 -0
- package/lib/model/business/version/version-config.d.ts +28 -0
- package/lib/model/business/version/version-config.provider.d.ts +22 -0
- package/lib/model/business/version/version.d.ts +34 -0
- package/lib/model/index.d.ts +2 -0
- package/lib/model/service/index.d.ts +4 -0
- package/lib/model/service/mock/http/http-mock.service.d.ts +101 -0
- package/lib/model/service/subscription/subscription.service.d.ts +66 -0
- package/lib/model/service/ui/app-bridge.service.d.ts +80 -0
- package/lib/model/service/ui/dark-mode.service.d.ts +99 -0
- package/lib/model/service/ui/index.d.ts +3 -0
- package/lib/{service → model/service}/ui/scroll.service.d.ts +55 -52
- package/lib/model/service/version/version.service.d.ts +30 -0
- package/lib/pipe/index.d.ts +1 -1
- package/lib/pipe/safe/safe-html.pipe.d.ts +30 -10
- package/lib/util/aria-role.constant.d.ts +15 -0
- package/lib/util/default-scroll-behavior.d.ts +12 -0
- package/lib/util/empty-string.const.d.ts +11 -0
- package/lib/util/index.d.ts +4 -0
- package/lib/util/js-type.d.ts +39 -0
- package/lib/util/uuid.d.ts +89 -0
- package/package.json +10 -13
- package/public-api.d.ts +14 -3
- package/esm2020/lib/angular-toolbox.module.mjs +0 -26
- package/esm2020/lib/pipe/safe/safe-html.pipe.mjs +0 -18
- package/esm2020/lib/service/index.mjs +0 -4
- package/esm2020/lib/service/subscription/subscription.service.mjs +0 -60
- package/esm2020/lib/service/ui/dark-mode.service.mjs +0 -167
- package/esm2020/lib/service/ui/scroll.service.mjs +0 -79
- package/esm2020/public-api.mjs +0 -7
- package/fesm2015/angular-toolbox.mjs +0 -356
- package/fesm2015/angular-toolbox.mjs.map +0 -1
- package/fesm2020/angular-toolbox.mjs +0 -350
- package/fesm2020/angular-toolbox.mjs.map +0 -1
- package/lib/service/index.d.ts +0 -3
- package/lib/service/subscription/subscription.service.d.ts +0 -33
- package/lib/service/ui/dark-mode.service.d.ts +0 -92
|
@@ -0,0 +1,117 @@
|
|
|
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 { HttpStatusCode } from "@angular/common/http";
|
|
9
|
+
/**
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
12
|
+
const OK = "OK";
|
|
13
|
+
/**
|
|
14
|
+
* A statefull builder for creating new `HttpResponseMock` instances.
|
|
15
|
+
*/
|
|
16
|
+
export class HttpResponseMockBuilder {
|
|
17
|
+
constructor() {
|
|
18
|
+
/**
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
21
|
+
this._response = {
|
|
22
|
+
url: null,
|
|
23
|
+
body: null,
|
|
24
|
+
status: HttpStatusCode.Ok,
|
|
25
|
+
statusText: OK,
|
|
26
|
+
error: null,
|
|
27
|
+
delay: 0
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sets the body property of the new `HttpResponseMock` instance with the specified `body` value.
|
|
32
|
+
*
|
|
33
|
+
* @param body The value used to set the body property of the new `HttpResponseMock` instance.
|
|
34
|
+
*
|
|
35
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
36
|
+
*/
|
|
37
|
+
body(body) {
|
|
38
|
+
this._response.body = body;
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Sets the headers property of the new `HttpResponseMock` instance with the specified `headers` value.
|
|
43
|
+
*
|
|
44
|
+
* @param headers The value used to set the `headers` property of the new `HttpResponseMock` instance.
|
|
45
|
+
*
|
|
46
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
47
|
+
*/
|
|
48
|
+
headers(headers) {
|
|
49
|
+
this._response.headers = headers;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Sets the `status` property of the new `HttpResponseMock` instance with the specified `status` value.
|
|
54
|
+
*
|
|
55
|
+
* @param status The value used to set the `status` property of the new `HttpResponseMock` instance.
|
|
56
|
+
*
|
|
57
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
58
|
+
*/
|
|
59
|
+
status(status) {
|
|
60
|
+
this._response.status = status;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Sets the `statusText` property of the new `HttpResponseMock` instance with the specified `statusText` value.
|
|
65
|
+
*
|
|
66
|
+
* @param statusText The value used to set the `statusText` property of the new `HttpResponseMock` instance.
|
|
67
|
+
*
|
|
68
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
69
|
+
*/
|
|
70
|
+
statusText(statusText) {
|
|
71
|
+
this._response.statusText = statusText;
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Sets the `url` property of the new `HttpResponseMock` instance with the specified `url` value.
|
|
76
|
+
*
|
|
77
|
+
* @param url The value used to set the `url` property of the new `HttpResponseMock` instance.
|
|
78
|
+
*
|
|
79
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
80
|
+
*/
|
|
81
|
+
url(url) {
|
|
82
|
+
this._response.url = url;
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Sets the `delay` property of the new `HttpResponseMock` instance with the specified `timer` duration.
|
|
87
|
+
* Maximum value is `10000` miliseconds (10 seconds).
|
|
88
|
+
*
|
|
89
|
+
* @param timer The value used to set the `delay` property of the new `HttpResponseMock` instance.
|
|
90
|
+
*
|
|
91
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
92
|
+
*/
|
|
93
|
+
delay(timer = 0) {
|
|
94
|
+
this._response.delay = timer;
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Returns a new `HttpResponseMock` instance, built from the properties specified with the
|
|
99
|
+
* `HttpResponseMockBuilder` methods.
|
|
100
|
+
*
|
|
101
|
+
* @param error An optional value used to set the `error` property of the new `HttpResponseMock` instance.
|
|
102
|
+
* The `error` parameter values take precedence over all other properties of the `HttpResponseMock`
|
|
103
|
+
* instance.
|
|
104
|
+
* @returns A new `HttpResponseMock` instance.
|
|
105
|
+
*/
|
|
106
|
+
response(error = null) {
|
|
107
|
+
this._response.error = error;
|
|
108
|
+
return this._response;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* A utility function used to create new "chainable" `HttpResponseMockBuilder` instances.
|
|
113
|
+
*
|
|
114
|
+
* @returns A new `HttpResponseMockBuilder` instance.
|
|
115
|
+
*/
|
|
116
|
+
export const httpResponseMock = () => new HttpResponseMockBuilder();
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLXJlc3BvbnNlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvaHR0cC1tb2NrLXJlc3BvbnNlLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFlLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR25FOztHQUVHO0FBQ0gsTUFBTSxFQUFFLEdBQVcsSUFBSSxDQUFDO0FBRXhCOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQUFwQztRQUVJOztXQUVHO1FBQ0ssY0FBUyxHQUFxQjtZQUNsQyxHQUFHLEVBQUUsSUFBSTtZQUNULElBQUksRUFBRSxJQUFJO1lBQ1YsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFO1lBQ3pCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsQ0FBQztTQUNYLENBQUM7SUF3Rk4sQ0FBQztJQXRGRzs7Ozs7O09BTUc7SUFDSSxJQUFJLENBQUMsSUFBUztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE9BQU8sQ0FBQyxPQUFvQjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxNQUFjO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSxDQUFDLFVBQWtCO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksR0FBRyxDQUFDLEdBQWtCO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLEtBQUssQ0FBQyxRQUFnQixDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxRQUFRLENBQUMsUUFBOEIsSUFBSTtRQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7Q0FDSjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBZ0MsR0FBRSxFQUFFLENBQUMsSUFBSSx1QkFBdUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBTdGF0dXNDb2RlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEh0dHBNb2NrRXJyb3IsIEh0dHBSZXNwb25zZU1vY2sgfSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWxcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgT0s6IHN0cmluZyA9IFwiT0tcIjtcclxuXHJcbi8qKlxyXG4gKiBBIHN0YXRlZnVsbCBidWlsZGVyIGZvciBjcmVhdGluZyBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9yZXNwb25zZTogSHR0cFJlc3BvbnNlTW9jayA9IHtcclxuICAgICAgICB1cmw6IG51bGwsXHJcbiAgICAgICAgYm9keTogbnVsbCxcclxuICAgICAgICBzdGF0dXM6IEh0dHBTdGF0dXNDb2RlLk9rLFxyXG4gICAgICAgIHN0YXR1c1RleHQ6IE9LLFxyXG4gICAgICAgIGVycm9yOiBudWxsLFxyXG4gICAgICAgIGRlbGF5OiAwXHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYm9keSBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgYGJvZHlgIHZhbHVlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gYm9keSBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGJvZHkgcHJvcGVydHkgb2YgdGhlIG5ldyBgSHR0cFJlc3BvbnNlTW9ja2AgaW5zdGFuY2UuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGJvZHkoYm9keTogYW55KTogSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLmJvZHkgPSBib2R5O1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaGVhZGVycyBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgYGhlYWRlcnNgIHZhbHVlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGBoZWFkZXJzYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhpcyBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGVhZGVycyhoZWFkZXJzOiBIdHRwSGVhZGVycyk6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS5oZWFkZXJzID0gaGVhZGVycztcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGBzdGF0dXNgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgc3RhdHVzYCB2YWx1ZS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHN0YXR1cyBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGBzdGF0dXNgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0dXMoc3RhdHVzOiBudW1iZXIpOiBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlciB7XHJcbiAgICAgICAgdGhpcy5fcmVzcG9uc2Uuc3RhdHVzID0gc3RhdHVzO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYHN0YXR1c1RleHRgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgc3RhdHVzVGV4dGAgdmFsdWUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBzdGF0dXNUZXh0IFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYHN0YXR1c1RleHRgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0dXNUZXh0KHN0YXR1c1RleHQ6IHN0cmluZyk6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS5zdGF0dXNUZXh0ID0gc3RhdHVzVGV4dDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGB1cmxgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBgdXJsYCB2YWx1ZS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHVybCBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGB1cmxgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB1cmwodXJsOiBzdHJpbmcgfCBudWxsKTogSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlLnVybCA9IHVybDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGBkZWxheWAgcHJvcGVydHkgb2YgdGhlIG5ldyBgSHR0cFJlc3BvbnNlTW9ja2AgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGB0aW1lcmAgZHVyYXRpb24uXHJcbiAgICAgKiBNYXhpbXVtIHZhbHVlIGlzIGAxMDAwMGAgbWlsaXNlY29uZHMgKDEwIHNlY29uZHMpLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdGltZXIgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBgZGVsYXlgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBSZXNwb25zZU1vY2tgIGluc3RhbmNlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxheSh0aW1lcjogbnVtYmVyID0gMCk6IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS5kZWxheSA9IHRpbWVyO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIG5ldyBgSHR0cFJlc3BvbnNlTW9ja2AgaW5zdGFuY2UsIGJ1aWx0IGZyb20gdGhlIHByb3BlcnRpZXMgc3BlY2lmaWVkIHdpdGggdGhlXHJcbiAgICAgKiBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIG1ldGhvZHMuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBlcnJvciBBbiBvcHRpb25hbCB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYGVycm9yYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqICAgICAgICAgICAgICBUaGUgYGVycm9yYCBwYXJhbWV0ZXIgdmFsdWVzIHRha2UgcHJlY2VkZW5jZSBvdmVyIGFsbCBvdGhlciBwcm9wZXJ0aWVzIG9mIHRoZSBgSHR0cFJlc3BvbnNlTW9ja2BcclxuICAgICAqICAgICAgICAgICAgICBpbnN0YW5jZS5cclxuICAgICAqIEByZXR1cm5zIEEgbmV3IGBIdHRwUmVzcG9uc2VNb2NrYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlc3BvbnNlKGVycm9yOiBIdHRwTW9ja0Vycm9yIHwgbnVsbCA9IG51bGwpOiBIdHRwUmVzcG9uc2VNb2NrIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZS5lcnJvciA9IGVycm9yO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNwb25zZTtcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEEgdXRpbGl0eSBmdW5jdGlvbiB1c2VkIHRvIGNyZWF0ZSBuZXcgXCJjaGFpbmFibGVcIiBgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXJgIGluc3RhbmNlcy5cclxuICogXHJcbiAqIEByZXR1cm5zIEEgbmV3IGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaHR0cFJlc3BvbnNlTW9jazooKT0+IEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyID0gKCk9PiBuZXcgSHR0cFJlc3BvbnNlTW9ja0J1aWxkZXIoKTsiXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './http-mock-response.builder';
|
|
2
|
+
export * from './http-headers-mock.builder';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9odHRwLW1vY2stcmVzcG9uc2UuYnVpbGRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1oZWFkZXJzLW1vY2suYnVpbGRlcic7Il19
|
|
@@ -0,0 +1,316 @@
|
|
|
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 { HttpHeaders, HttpRequest, HttpStatusCode } from "@angular/common/http";
|
|
9
|
+
import { ProgressEventMock } from "../event/progress-event-mock";
|
|
10
|
+
import { EMPTY_STRING } from "../../../../util";
|
|
11
|
+
import { XhrBase } from "./xhr-base";
|
|
12
|
+
import { HttpHeadersUtil } from "../util/http-headers.util";
|
|
13
|
+
import { Observable, of } from "rxjs";
|
|
14
|
+
import { DataStorageBuilder } from "../util/data-storage.builder";
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
* The maximum value for a delayed HTTP response.
|
|
18
|
+
*/
|
|
19
|
+
const MAX_TIMER = 10000;
|
|
20
|
+
/**
|
|
21
|
+
* @private
|
|
22
|
+
* Intenal "onreadystatechange" event.
|
|
23
|
+
*/
|
|
24
|
+
const READY_STATE_CHANGE_EVENT = new Event("onreadystatechange");
|
|
25
|
+
/**
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
const EVT_PROPS_CONFIG = { writable: false, value: this };
|
|
29
|
+
/**
|
|
30
|
+
* @private
|
|
31
|
+
* A utility class used as delegate of `XMLHttpRequest` functionalities when
|
|
32
|
+
* a HTTP request is intercepted by the Mocking Framework .
|
|
33
|
+
*/
|
|
34
|
+
export class DelegateXhr extends XhrBase {
|
|
35
|
+
/**
|
|
36
|
+
* Returns the response body content.
|
|
37
|
+
*
|
|
38
|
+
* @see https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/response
|
|
39
|
+
*/
|
|
40
|
+
get response() {
|
|
41
|
+
return this._dataStorage?.data || null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns the numerical HTTP status code of the `XMLHttpRequest` response.
|
|
45
|
+
*
|
|
46
|
+
* @see https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/status
|
|
47
|
+
*/
|
|
48
|
+
get status() {
|
|
49
|
+
return this._status;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Returns a string containing the response status message as returned by the HTTP server.
|
|
53
|
+
*
|
|
54
|
+
* @see https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/statusText
|
|
55
|
+
*/
|
|
56
|
+
get statusText() {
|
|
57
|
+
return this._statusText;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns the state the `XMLHttpRequest` client is in.
|
|
61
|
+
*
|
|
62
|
+
* @see https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readyState
|
|
63
|
+
*/
|
|
64
|
+
get readyState() {
|
|
65
|
+
return this._readyState;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Returns the serialized URL of the response or the empty string if the URL is `null`.
|
|
69
|
+
*
|
|
70
|
+
* @see https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseURL
|
|
71
|
+
*/
|
|
72
|
+
get responseURL() {
|
|
73
|
+
return this._url;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Returns the text received from a server following a request being sent.
|
|
77
|
+
*
|
|
78
|
+
* Throws an `InvalidStateError` DOMException if responseType is not the empty string or "text".
|
|
79
|
+
*
|
|
80
|
+
* @see https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseText
|
|
81
|
+
*/
|
|
82
|
+
get responseText() {
|
|
83
|
+
return this._dataStorage?.stringifiedData || EMPTY_STRING;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Returns an `XMLHttpRequestUpload` object that can be observed to monitor an upload progress.
|
|
87
|
+
*
|
|
88
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/upload
|
|
89
|
+
*/
|
|
90
|
+
get upload() {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
open(method, url, async, username, password) {
|
|
97
|
+
this._method = method;
|
|
98
|
+
this._url = url;
|
|
99
|
+
this.setReadyState(this.OPENED);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Aborts the request if it has already been sent. When a request is aborted, its `readyState`
|
|
103
|
+
* is changed to `XMLHttpRequest.UNSENT` and the request status code is set to `0`.
|
|
104
|
+
*/
|
|
105
|
+
abort() {
|
|
106
|
+
this._readyState = this.UNSENT;
|
|
107
|
+
this._status = 0;
|
|
108
|
+
this.eventDispatch("abort");
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Returns all the response headers, separated by CRLF, as a string, or returns `null`
|
|
112
|
+
* if no response has been received.
|
|
113
|
+
*
|
|
114
|
+
* @returns All the response headers, separated by CRLF, as a string, or returns `null`
|
|
115
|
+
* if no response has been received.
|
|
116
|
+
*/
|
|
117
|
+
getAllResponseHeaders() {
|
|
118
|
+
return this._dataStorage ? HttpHeadersUtil.stringify(this._headers) : EMPTY_STRING;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Sends the request to the server.
|
|
122
|
+
*
|
|
123
|
+
* @param body A body of data to be sent in the XHR request.
|
|
124
|
+
*/
|
|
125
|
+
send(body) {
|
|
126
|
+
const request = new HttpRequest(this._method, this._url, body);
|
|
127
|
+
const rc = this._routeConfig;
|
|
128
|
+
const httpResponseMock = rc.methodConfig.data(request, rc.parameters);
|
|
129
|
+
let timer = httpResponseMock.delay || 0;
|
|
130
|
+
if (timer > MAX_TIMER)
|
|
131
|
+
timer = MAX_TIMER;
|
|
132
|
+
this._loadSubscription = this.loadData(httpResponseMock).subscribe((data) => {
|
|
133
|
+
this._dataStorage = DataStorageBuilder.buildDataStorage(httpResponseMock, data);
|
|
134
|
+
const error = this._dataStorage.httpResponse.error;
|
|
135
|
+
setTimeout(() => {
|
|
136
|
+
this.setReadyState(this.HEADERS_RECEIVED);
|
|
137
|
+
if (error)
|
|
138
|
+
return this.onError(error);
|
|
139
|
+
this.setReadyState(this.LOADING);
|
|
140
|
+
const response = this._dataStorage.httpResponse;
|
|
141
|
+
let headers = response.headers;
|
|
142
|
+
if (headers) {
|
|
143
|
+
this._headers.keys().forEach((key) => {
|
|
144
|
+
headers = headers.set(key, this._headers.get(key));
|
|
145
|
+
});
|
|
146
|
+
this._headers = headers;
|
|
147
|
+
}
|
|
148
|
+
if (!this._progressiveDownload) {
|
|
149
|
+
this._statusText = response.statusText || EMPTY_STRING;
|
|
150
|
+
this._status = response.status || 0;
|
|
151
|
+
return this.onLoadComplete();
|
|
152
|
+
}
|
|
153
|
+
this.doProgressiveDownload();
|
|
154
|
+
}, timer);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Sets the value of an HTTP request header.
|
|
159
|
+
*
|
|
160
|
+
* @param name The name of the header whose value is to be set.
|
|
161
|
+
* @param value The value to set as the body of the header.
|
|
162
|
+
*/
|
|
163
|
+
setRequestHeader(name, value) {
|
|
164
|
+
this._headers = this._headers.set(name, value);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* @private
|
|
168
|
+
*/
|
|
169
|
+
constructor(routeConfig) {
|
|
170
|
+
super();
|
|
171
|
+
/**
|
|
172
|
+
* @private
|
|
173
|
+
* Indicates whether the progressive download is activated, or not.
|
|
174
|
+
*/
|
|
175
|
+
this._progressiveDownload = false;
|
|
176
|
+
/**
|
|
177
|
+
* @private
|
|
178
|
+
*
|
|
179
|
+
* Internal storage for HTTP response `data`.
|
|
180
|
+
*/
|
|
181
|
+
this._dataStorage = null;
|
|
182
|
+
/**
|
|
183
|
+
* @private
|
|
184
|
+
*
|
|
185
|
+
* Internal storage for the HTTP request `readyState`.
|
|
186
|
+
*/
|
|
187
|
+
this._readyState = this.UNSENT;
|
|
188
|
+
/**
|
|
189
|
+
* @private
|
|
190
|
+
*
|
|
191
|
+
* Internal storage for the HTTP request `headers`.
|
|
192
|
+
*/
|
|
193
|
+
this._headers = null;
|
|
194
|
+
/**
|
|
195
|
+
* @private
|
|
196
|
+
*
|
|
197
|
+
* Internal storage for the HTTP request `status`.
|
|
198
|
+
*/
|
|
199
|
+
this._status = 0;
|
|
200
|
+
/**
|
|
201
|
+
* @private
|
|
202
|
+
*
|
|
203
|
+
* Internal storage for the HTTP request `statusText`.
|
|
204
|
+
*/
|
|
205
|
+
this._statusText = EMPTY_STRING;
|
|
206
|
+
/**
|
|
207
|
+
* @private
|
|
208
|
+
*/
|
|
209
|
+
this._loadSubscription = null;
|
|
210
|
+
/**
|
|
211
|
+
* Returns an an enumerated string value specifying the type of data contained in the response.
|
|
212
|
+
*
|
|
213
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType
|
|
214
|
+
*/
|
|
215
|
+
this.responseType = "";
|
|
216
|
+
const methodConfig = routeConfig.methodConfig;
|
|
217
|
+
this._routeConfig = routeConfig;
|
|
218
|
+
this._progressiveDownload = methodConfig.progressive || false;
|
|
219
|
+
this.responseType = methodConfig.responseType || "";
|
|
220
|
+
this._headers = new HttpHeaders();
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* @private
|
|
224
|
+
* Internally used by the framework to delete a `DelegateXhr` instance.
|
|
225
|
+
*/
|
|
226
|
+
destroy() {
|
|
227
|
+
this._routeConfig = null;
|
|
228
|
+
this._headers = null;
|
|
229
|
+
this._dataStorage = null;
|
|
230
|
+
if (this._loadSubscription) {
|
|
231
|
+
this._loadSubscription.unsubscribe();
|
|
232
|
+
this._loadSubscription = null;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* @private
|
|
237
|
+
*/
|
|
238
|
+
doProgressiveDownload() {
|
|
239
|
+
const total = this._dataStorage.total;
|
|
240
|
+
if (total <= 200) {
|
|
241
|
+
console.warn("[Angular Toolbox]: Body content is too small for emulating progressive download! Minimum size is 200 octets.");
|
|
242
|
+
return this.onLoadComplete();
|
|
243
|
+
}
|
|
244
|
+
// TODO: ameliorate the following process:
|
|
245
|
+
const self = this;
|
|
246
|
+
const chunckSize = Math.floor(total / 10);
|
|
247
|
+
let cursor = 0;
|
|
248
|
+
this._statusText = "Partial Content";
|
|
249
|
+
this._status = HttpStatusCode.PartialContent;
|
|
250
|
+
const idx = setInterval(() => {
|
|
251
|
+
cursor += chunckSize;
|
|
252
|
+
if (cursor > total) {
|
|
253
|
+
cursor = total;
|
|
254
|
+
clearInterval(idx);
|
|
255
|
+
self.onLoadComplete();
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
this._dataStorage.loaded = cursor;
|
|
259
|
+
self.dispatchProgressEvent();
|
|
260
|
+
}
|
|
261
|
+
}, 100);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* @private
|
|
265
|
+
*/
|
|
266
|
+
onLoadComplete() {
|
|
267
|
+
this._dataStorage.loaded = this._dataStorage.total;
|
|
268
|
+
this.setReadyState(this.DONE);
|
|
269
|
+
this.dispatchProgressEvent("load");
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* @private
|
|
273
|
+
*/
|
|
274
|
+
onError(error) {
|
|
275
|
+
this._status = error.status;
|
|
276
|
+
this._statusText = error.statusText;
|
|
277
|
+
this.setReadyState(this.DONE);
|
|
278
|
+
this.dispatchProgressEvent("error");
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* @private
|
|
282
|
+
*/
|
|
283
|
+
eventDispatch(type) {
|
|
284
|
+
const event = new Event(type);
|
|
285
|
+
Object.defineProperty(event, 'target', EVT_PROPS_CONFIG);
|
|
286
|
+
Object.defineProperty(event, 'currentTarget', EVT_PROPS_CONFIG);
|
|
287
|
+
this.dispatchEvent(event);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* @private
|
|
291
|
+
*/
|
|
292
|
+
dispatchProgressEvent(type = "progress") {
|
|
293
|
+
const d = this._dataStorage;
|
|
294
|
+
const event = new ProgressEventMock(type);
|
|
295
|
+
event.loaded = d.loaded;
|
|
296
|
+
event.total = d.total;
|
|
297
|
+
this.dispatchEvent(event);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* @private
|
|
301
|
+
*/
|
|
302
|
+
setReadyState(state) {
|
|
303
|
+
this._readyState = state;
|
|
304
|
+
const event = this.onreadystatechange;
|
|
305
|
+
if (event)
|
|
306
|
+
event.call(this, READY_STATE_CHANGE_EVENT);
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* @private
|
|
310
|
+
*/
|
|
311
|
+
loadData(httpResponseMock) {
|
|
312
|
+
const responseBody = httpResponseMock.body;
|
|
313
|
+
return (responseBody instanceof Observable) ? responseBody : of(responseBody);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGUteGhyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC94aHIvZGVsZWdhdGUteGhyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsVUFBVSxFQUFnQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEU7OztHQUdHO0FBQ0gsTUFBTSxTQUFTLEdBQVcsS0FBSyxDQUFDO0FBRWhDOzs7R0FHRztBQUNILE1BQU0sd0JBQXdCLEdBQVUsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUV4RTs7R0FFRztBQUNILE1BQU0sZ0JBQWdCLEdBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFdBQVksU0FBUSxPQUFPO0lBb0VwQzs7OztPQUlHO0lBQ0gsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE1BQU07UUFDTixPQUFP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WUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwU3RhdHVzQ29kZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBYaHJQcm94eSwgSHR0cFJlc3BvbnNlTW9jaywgSHR0cE1ldGhvZE1vY2ssIEh0dHBNb2NrRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWxcIjtcclxuaW1wb3J0IHsgUHJvZ3Jlc3NFdmVudE1vY2sgfSBmcm9tIFwiLi4vZXZlbnQvcHJvZ3Jlc3MtZXZlbnQtbW9ja1wiO1xyXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBYaHJCYXNlIH0gZnJvbSBcIi4veGhyLWJhc2VcIjtcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnNVdGlsIH0gZnJvbSBcIi4uL3V0aWwvaHR0cC1oZWFkZXJzLnV0aWxcIjtcclxuaW1wb3J0IHsgUm91dGVNb2NrQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9yb3V0ZS1tb2NrLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRGF0YVN0b3JhZ2UgfSBmcm9tIFwiLi4vY29yZS9kYXRhLXN0b3JhZ2VcIjtcclxuaW1wb3J0IHsgRGF0YVN0b3JhZ2VCdWlsZGVyIH0gZnJvbSBcIi4uL3V0aWwvZGF0YS1zdG9yYWdlLmJ1aWxkZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgbWF4aW11bSB2YWx1ZSBmb3IgYSBkZWxheWVkIEhUVFAgcmVzcG9uc2UuXHJcbiAqL1xyXG5jb25zdCBNQVhfVElNRVI6IG51bWJlciA9IDEwMDAwO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEludGVuYWwgXCJvbnJlYWR5c3RhdGVjaGFuZ2VcIiBldmVudC5cclxuICovXHJcbmNvbnN0IFJFQURZX1NUQVRFX0NIQU5HRV9FVkVOVDogRXZlbnQgPSBuZXcgRXZlbnQoXCJvbnJlYWR5c3RhdGVjaGFuZ2VcIik7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEVWVF9QUk9QU19DT05GSUc6IGFueSA9ICB7IHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IHRoaXMgfTtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBBIHV0aWxpdHkgY2xhc3MgdXNlZCBhcyBkZWxlZ2F0ZSBvZiBgWE1MSHR0cFJlcXVlc3RgIGZ1bmN0aW9uYWxpdGllcyB3aGVuXHJcbiAqIGEgSFRUUCByZXF1ZXN0IGlzIGludGVyY2VwdGVkIGJ5IHRoZSBNb2NraW5nIEZyYW1ld29yayAuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGVsZWdhdGVYaHIgZXh0ZW5kcyBYaHJCYXNlIGltcGxlbWVudHMgWGhyUHJveHkge1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJvZ3Jlc3NpdmUgZG93bmxvYWQgaXMgYWN0aXZhdGVkLCBvciBub3QuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3Byb2dyZXNzaXZlRG93bmxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBUaGUgY29uZmlnIGZvciB0aGUgaW50ZXJjZXB0ZWQgcm91dGUuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3JvdXRlQ29uZmlnOiBSb3V0ZU1vY2tDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBJbnRlcm5hbCBzdG9yYWdlIGZvciBIVFRQIHJlc3BvbnNlIGBkYXRhYC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZGF0YVN0b3JhZ2U6IERhdGFTdG9yYWdlID0gbnVsbCBhcyBhbnk7IFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBgbWV0aG9kYC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbWV0aG9kOiB1bmtub3duOyBcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBcclxuICAgICAqIEludGVybmFsIHN0b3JhZ2UgZm9yIHRoZSBIVFRQIHJlcXVlc3QgVVJMLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF91cmw6IHVua25vd247IFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBgcmVhZHlTdGF0ZWAuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3JlYWR5U3RhdGU6IG51bWJlciA9IHRoaXMuVU5TRU5UO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBgaGVhZGVyc2AuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2hlYWRlcnM6IEh0dHBIZWFkZXJzID0gbnVsbCBhcyBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBJbnRlcm5hbCBzdG9yYWdlIGZvciB0aGUgSFRUUCByZXF1ZXN0IGBzdGF0dXNgLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9zdGF0dXM6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBJbnRlcm5hbCBzdG9yYWdlIGZvciB0aGUgSFRUUCByZXF1ZXN0IGBzdGF0dXNUZXh0YC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfc3RhdHVzVGV4dDogc3RyaW5nID0gRU1QVFlfU1RSSU5HO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbG9hZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSByZXNwb25zZSBib2R5IGNvbnRlbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvWE1MSHR0cFJlcXVlc3QvcmVzcG9uc2VcclxuICAgICAqL1xyXG4gICAgZ2V0IHJlc3BvbnNlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTdG9yYWdlPy5kYXRhIHx8IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljYWwgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgYFhNTEh0dHBSZXF1ZXN0YCByZXNwb25zZS5cclxuICAgICAqXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9YTUxIdHRwUmVxdWVzdC9zdGF0dXNcclxuICAgICAqL1xyXG4gICAgZ2V0IHN0YXR1cygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIHN0YXR1cyBtZXNzYWdlIGFzIHJldHVybmVkIGJ5IHRoZSBIVFRQIHNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9YTUxIdHRwUmVxdWVzdC9zdGF0dXNUZXh0XHJcbiAgICAgKi9cclxuICAgIGdldCBzdGF0dXNUZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1c1RleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBzdGF0ZSB0aGUgYFhNTEh0dHBSZXF1ZXN0YCBjbGllbnQgaXMgaW4uXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvWE1MSHR0cFJlcXVlc3QvcmVhZHlTdGF0ZVxyXG4gICAgICovXHJcbiAgICBnZXQgcmVhZHlTdGF0ZSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkeVN0YXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgc2VyaWFsaXplZCBVUkwgb2YgdGhlIHJlc3BvbnNlIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYgdGhlIFVSTCBpcyBgbnVsbGAuIFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3Jlc3BvbnNlVVJMXHJcbiAgICAgKi9cclxuICAgIGdldCByZXNwb25zZVVSTCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmwgYXMgc3RyaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgdGV4dCByZWNlaXZlZCBmcm9tIGEgc2VydmVyIGZvbGxvd2luZyBhIHJlcXVlc3QgYmVpbmcgc2VudC5cclxuICAgICAqXHJcbiAgICAgKiBUaHJvd3MgYW4gYEludmFsaWRTdGF0ZUVycm9yYCBET01FeGNlcHRpb24gaWYgcmVzcG9uc2VUeXBlIGlzIG5vdCB0aGUgZW1wdHkgc3RyaW5nIG9yIFwidGV4dFwiLlxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3Jlc3BvbnNlVGV4dFxyXG4gICAgICovXHJcbiAgICBnZXQgcmVzcG9uc2VUZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTdG9yYWdlPy5zdHJpbmdpZmllZERhdGEgfHwgRU1QVFlfU1RSSU5HO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogIFJldHVybnMgYW4gYFhNTEh0dHBSZXF1ZXN0VXBsb2FkYCBvYmplY3QgdGhhdCBjYW4gYmUgb2JzZXJ2ZWQgdG8gbW9uaXRvciBhbiB1cGxvYWQgcHJvZ3Jlc3MuIFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3VwbG9hZFxyXG4gICAgICovXHJcbiAgICBnZXQgdXBsb2FkKCk6IFhNTEh0dHBSZXF1ZXN0VXBsb2FkIHtcclxuICAgICAgICByZXR1cm4gbnVsbCBhcyBhbnk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogIFJldHVybnMgYW4gYW4gZW51bWVyYXRlZCBzdHJpbmcgdmFsdWUgc3BlY2lmeWluZyB0aGUgdHlwZSBvZiBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgcmVzcG9uc2UuIFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3Jlc3BvbnNlVHlwZVxyXG4gICAgICovXHJcbiAgICByZXNwb25zZVR5cGU6IFhNTEh0dHBSZXF1ZXN0UmVzcG9uc2VUeXBlID0gXCJcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3bHktY3JlYXRlZCByZXF1ZXN0LCBvciByZS1pbml0aWFsaXplcyBhbiBleGlzdGluZyBvbmUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBtZXRob2QgVGhlIEhUVFAgcmVxdWVzdCBtZXRob2QgdG8gdXNlLCBzdWNoIGFzIGBcIkdFVFwiYCwgYFwiUE9TVFwiYCwgYFwiUFVUXCJgLCBgXCJERUxFVEVcImAsXHJcbiAgICAgKiAgICAgICAgICAgICAgIGV0Yy4gSWdub3JlZCBmb3Igbm9uLUhUVFAoUykgVVJMcy5cclxuICAgICAqIEBwYXJhbSB1cmwgQSBzdHJpbmcgb3IgYW55IG90aGVyIG9iamVjdCB3aXRoIGEgc3RyaW5naWZpZXIg4oCUIGluY2x1ZGluZyBhIFVSTCBvYmplY3Qg4oCUXHJcbiAgICAgKiAgICAgICAgICAgIHRoYXQgcHJvdmlkZXMgdGhlIFVSTCBvZiB0aGUgcmVzb3VyY2UgdG8gc2VuZCB0aGUgcmVxdWVzdCB0by5cclxuICAgICAqL1xyXG4gICAgb3BlbihtZXRob2Q6IHN0cmluZywgdXJsOiBzdHJpbmcgfCBVUkwpOiB2b2lkO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBvcGVuKG1ldGhvZDogc3RyaW5nLCB1cmw6IHN0cmluZyB8IFVSTCwgYXN5bmM6IGJvb2xlYW4sIHVzZXJuYW1lPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFzc3dvcmQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZDtcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgb3BlbihtZXRob2Q6IHVua25vd24sIHVybDogdW5rbm93biwgYXN5bmM/OiB1bmtub3duLCB1c2VybmFtZT86IHVua25vd24sIHBhc3N3b3JkPzogdW5rbm93bik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX21ldGhvZCA9IG1ldGhvZDtcclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcbiAgICAgICAgdGhpcy5zZXRSZWFkeVN0YXRlKHRoaXMuT1BFTkVEKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFib3J0cyB0aGUgcmVxdWVzdCBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIHNlbnQuIFdoZW4gYSByZXF1ZXN0IGlzIGFib3J0ZWQsIGl0cyBgcmVhZHlTdGF0ZWBcclxuICAgICAqIGlzIGNoYW5nZWQgdG8gYFhNTEh0dHBSZXF1ZXN0LlVOU0VOVGAgYW5kIHRoZSByZXF1ZXN0IHN0YXR1cyBjb2RlIGlzIHNldCB0byBgMGAuXHJcbiAgICAgKi9cclxuICAgIGFib3J0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlYWR5U3RhdGUgPSB0aGlzLlVOU0VOVDtcclxuICAgICAgICB0aGlzLl9zdGF0dXMgPSAwO1xyXG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaChcImFib3J0XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhbGwgdGhlIHJlc3BvbnNlIGhlYWRlcnMsIHNlcGFyYXRlZCBieSBDUkxGLCBhcyBhIHN0cmluZywgb3IgcmV0dXJucyBgbnVsbGBcclxuICAgICAqIGlmIG5vIHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBbGwgdGhlIHJlc3BvbnNlIGhlYWRlcnMsIHNlcGFyYXRlZCBieSBDUkxGLCBhcyBhIHN0cmluZywgb3IgcmV0dXJucyBgbnVsbGBcclxuICAgICAqICAgICAgICAgIGlmIG5vIHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkLlxyXG4gICAgICovXHJcbiAgICBnZXRBbGxSZXNwb25zZUhlYWRlcnMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVN0b3JhZ2UgPyBIdHRwSGVhZGVyc1V0aWwuc3RyaW5naWZ5KHRoaXMuX2hlYWRlcnMpIDogRU1QVFlfU1RSSU5HO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VuZHMgdGhlIHJlcXVlc3QgdG8gdGhlIHNlcnZlci5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGJvZHkgQSBib2R5IG9mIGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgWEhSIHJlcXVlc3QuXHJcbiAgICAgKi9cclxuICAgIHNlbmQoYm9keT86IERvY3VtZW50IHwgWE1MSHR0cFJlcXVlc3RCb2R5SW5pdCB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+ID0gbmV3IEh0dHBSZXF1ZXN0PGFueT4odGhpcy5fbWV0aG9kIGFzIHN0cmluZywgdGhpcy5fdXJsIGFzIGFueSwgYm9keSk7XHJcbiAgICAgICAgY29uc3QgcmM6IFJvdXRlTW9ja0NvbmZpZyA9IHRoaXMuX3JvdXRlQ29uZmlnO1xyXG4gICAgICAgIGNvbnN0IGh0dHBSZXNwb25zZU1vY2s6IEh0dHBSZXNwb25zZU1vY2sgPSAocmMubWV0aG9kQ29uZmlnIGFzIGFueSkuZGF0YShyZXF1ZXN0LCByYy5wYXJhbWV0ZXJzKTtcclxuICAgICAgICBsZXQgdGltZXI6IG51bWJlciA9IGh0dHBSZXNwb25zZU1vY2suZGVsYXkgfHwgMDtcclxuICAgICAgICBpZiAodGltZXIgPiBNQVhfVElNRVIpIHRpbWVyID0gTUFYX1RJTUVSO1xyXG4gICAgICAgIHRoaXMuX2xvYWRTdWJzY3JpcHRpb24gPSB0aGlzLmxvYWREYXRhKGh0dHBSZXNwb25zZU1vY2spLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RhdGFTdG9yYWdlID0gRGF0YVN0b3JhZ2VCdWlsZGVyLmJ1aWxkRGF0YVN0b3JhZ2UoaHR0cFJlc3BvbnNlTW9jaywgZGF0YSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yOiBIdHRwTW9ja0Vycm9yIHwgbnVsbCA9IHRoaXMuX2RhdGFTdG9yYWdlLmh0dHBSZXNwb25zZS5lcnJvcjtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVhZHlTdGF0ZSh0aGlzLkhFQURFUlNfUkVDRUlWRUQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSByZXR1cm4gdGhpcy5vbkVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVhZHlTdGF0ZSh0aGlzLkxPQURJTkcpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2U6IEh0dHBSZXNwb25zZU1vY2sgPSB0aGlzLl9kYXRhU3RvcmFnZS5odHRwUmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgaGVhZGVyczogYW55ID0gcmVzcG9uc2UuaGVhZGVycztcclxuICAgICAgICAgICAgICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGVhZGVycy5rZXlzKCkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB0aGlzLl9oZWFkZXJzLmdldChrZXkpIGFzIGFueSlcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oZWFkZXJzID0gaGVhZGVycztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fcHJvZ3Jlc3NpdmVEb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXR1c1RleHQgPSByZXNwb25zZS5zdGF0dXNUZXh0IHx8IEVNUFRZX1NUUklORztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0dXMgPSByZXNwb25zZS5zdGF0dXMgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vbkxvYWRDb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5kb1Byb2dyZXNzaXZlRG93bmxvYWQoKTtcclxuICAgICAgICAgICAgfSwgdGltZXIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmFsdWUgb2YgYW4gSFRUUCByZXF1ZXN0IGhlYWRlci5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhlYWRlciB3aG9zZSB2YWx1ZSBpcyB0byBiZSBzZXQuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldCBhcyB0aGUgYm9keSBvZiB0aGUgaGVhZGVyLlxyXG4gICAgICovXHJcbiAgICBzZXRSZXF1ZXN0SGVhZGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2hlYWRlcnMgPSB0aGlzLl9oZWFkZXJzLnNldChuYW1lLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZSBcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Iocm91dGVDb25maWc6IFJvdXRlTW9ja0NvbmZpZykge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgY29uc3QgbWV0aG9kQ29uZmlnOiBIdHRwTWV0aG9kTW9jayA9IHJvdXRlQ29uZmlnLm1ldGhvZENvbmZpZztcclxuICAgICAgICB0aGlzLl9yb3V0ZUNvbmZpZyA9IHJvdXRlQ29uZmlnO1xyXG4gICAgICAgIHRoaXMuX3Byb2dyZXNzaXZlRG93bmxvYWQgPSBtZXRob2RDb25maWcucHJvZ3Jlc3NpdmUgfHwgZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zZVR5cGUgPSBtZXRob2RDb25maWcucmVzcG9uc2VUeXBlIHx8IFwiXCI7XHJcbiAgICAgICAgdGhpcy5faGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlIFxyXG4gICAgICogSW50ZXJuYWxseSB1c2VkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gZGVsZXRlIGEgYERlbGVnYXRlWGhyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcm91dGVDb25maWcgPSBudWxsIGFzIGFueTtcclxuICAgICAgICB0aGlzLl9oZWFkZXJzID0gbnVsbCBhcyBhbnk7XHJcbiAgICAgICAgdGhpcy5fZGF0YVN0b3JhZ2UgPSBudWxsIGFzIGFueTtcclxuICAgICAgICBpZiAodGhpcy5fbG9hZFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGRvUHJvZ3Jlc3NpdmVEb3dubG9hZCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB0b3RhbDogbnVtYmVyID0gdGhpcy5fZGF0YVN0b3JhZ2UudG90YWw7XHJcbiAgICAgICAgaWYgKHRvdGFsIDw9IDIwMCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJbQW5ndWxhciBUb29sYm94XTogQm9keSBjb250ZW50IGlzIHRvbyBzbWFsbCBmb3IgZW11bGF0aW5nIHByb2dyZXNzaXZlIGRvd25sb2FkISBNaW5pbXVtIHNpemUgaXMgMjAwIG9jdGV0cy5cIik7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9uTG9hZENvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFRPRE86IGFtZWxpb3JhdGUgdGhlIGZvbGxvd2luZyBwcm9jZXNzOlxyXG4gICAgICAgIGNvbnN0IHNlbGY6IERlbGVnYXRlWGhyID0gdGhpcztcclxuICAgICAgICBjb25zdCBjaHVuY2tTaXplOiBudW1iZXIgPSBNYXRoLmZsb29yKHRvdGFsIC8gMTApO1xyXG4gICAgICAgIGxldCBjdXJzb3I6IG51bWJlciA9IDA7XHJcbiAgICAgICAgdGhpcy5fc3RhdHVzVGV4dCA9IFwiUGFydGlhbCBDb250ZW50XCI7XHJcbiAgICAgICAgdGhpcy5fc3RhdHVzID0gSHR0cFN0YXR1c0NvZGUuUGFydGlhbENvbnRlbnQ7XHJcbiAgICAgICAgY29uc3QgaWR4ID0gc2V0SW50ZXJ2YWwoKCk9PiB7XHJcbiAgICAgICAgICAgIGN1cnNvciArPSBjaHVuY2tTaXplO1xyXG4gICAgICAgICAgICBpZiAoY3Vyc29yID4gdG90YWwpIHtcclxuICAgICAgICAgICAgICAgIGN1cnNvciA9IHRvdGFsO1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpZHgpO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5vbkxvYWRDb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YVN0b3JhZ2UubG9hZGVkID0gY3Vyc29yO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5kaXNwYXRjaFByb2dyZXNzRXZlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG9uTG9hZENvbXBsZXRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RhdGFTdG9yYWdlLmxvYWRlZCA9IHRoaXMuX2RhdGFTdG9yYWdlLnRvdGFsO1xyXG4gICAgICAgIHRoaXMuc2V0UmVhZHlTdGF0ZSh0aGlzLkRPTkUpO1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KFwibG9hZFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb25FcnJvcihlcnJvcjogSHR0cE1vY2tFcnJvcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N0YXR1cyA9IGVycm9yLnN0YXR1cztcclxuICAgICAgICB0aGlzLl9zdGF0dXNUZXh0ID0gZXJyb3Iuc3RhdHVzVGV4dDtcclxuICAgICAgICB0aGlzLnNldFJlYWR5U3RhdGUodGhpcy5ET05FKTtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChcImVycm9yXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBldmVudERpc3BhdGNoKHR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50OiBFdmVudCA9IG5ldyBFdmVudCh0eXBlKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICd0YXJnZXQnLCBFVlRfUFJPUFNfQ09ORklHKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICdjdXJyZW50VGFyZ2V0JywgRVZUX1BST1BTX0NPTkZJRyk7XHJcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGRpc3BhdGNoUHJvZ3Jlc3NFdmVudCh0eXBlOiBzdHJpbmcgPSBcInByb2dyZXNzXCIpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkOiBhbnkgPSB0aGlzLl9kYXRhU3RvcmFnZTtcclxuICAgICAgICBjb25zdCBldmVudDogUHJvZ3Jlc3NFdmVudE1vY2sgPSBuZXcgUHJvZ3Jlc3NFdmVudE1vY2sodHlwZSk7XHJcbiAgICAgICAgZXZlbnQubG9hZGVkID0gZC5sb2FkZWQ7XHJcbiAgICAgICAgZXZlbnQudG90YWwgPSBkLnRvdGFsO1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZSBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRSZWFkeVN0YXRlKHN0YXRlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yZWFkeVN0YXRlID0gc3RhdGU7XHJcbiAgICAgICAgY29uc3QgZXZlbnQ6IGFueSA9IHRoaXMub25yZWFkeXN0YXRlY2hhbmdlO1xyXG4gICAgICAgIGlmIChldmVudCkgZXZlbnQuY2FsbCh0aGlzLCBSRUFEWV9TVEFURV9DSEFOR0VfRVZFTlQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGUgXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9hZERhdGEoaHR0cFJlc3BvbnNlTW9jazogSHR0cFJlc3BvbnNlTW9jayk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2VCb2R5OiBhbnkgfCBPYnNlcnZhYmxlPGFueT4gPSBodHRwUmVzcG9uc2VNb2NrLmJvZHk7XHJcbiAgICAgICAgcmV0dXJuIChyZXNwb25zZUJvZHkgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSA/IHJlc3BvbnNlQm9keSA6IG9mKHJlc3BvbnNlQm9keSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
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 { XhrFactory } from "@angular/common";
|
|
9
|
+
import { XhrProxyImpl } from "./xhr-proxy-impl";
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
* The concrete implementation of the `XhrFactory` interface.
|
|
13
|
+
*/
|
|
14
|
+
export class XhrProxyFactoryImpl extends XhrFactory {
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
constructor(_httpMockService) {
|
|
19
|
+
super();
|
|
20
|
+
this._httpMockService = _httpMockService;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
build() {
|
|
26
|
+
return new XhrProxyImpl(this._httpMockService);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLWZhY3RvcnkuaW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAveGhyL2h0dHAtbW9jay1mYWN0b3J5LmltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsVUFBVTtJQUUvQzs7T0FFRztJQUNILFlBQW9CLGdCQUFpQztRQUNqRCxLQUFLLEVBQUUsQ0FBQztRQURRLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7SUFFckQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNSLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgWGhyRmFjdG9yeSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgSHR0cE1vY2tTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsL3NlcnZpY2UvbW9jay9odHRwL2h0dHAtbW9jay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFhoclByb3h5SW1wbCB9IGZyb20gXCIuL3hoci1wcm94eS1pbXBsXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBgWGhyRmFjdG9yeWAgaW50ZXJmYWNlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFhoclByb3h5RmFjdG9yeUltcGwgZXh0ZW5kcyBYaHJGYWN0b3J5IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHBNb2NrU2VydmljZTogSHR0cE1vY2tTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBidWlsZCgpOiBYTUxIdHRwUmVxdWVzdCB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBYaHJQcm94eUltcGwodGhpcy5faHR0cE1vY2tTZXJ2aWNlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
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 { inject } from "@angular/core";
|
|
9
|
+
import { HttpMockService } from "../../../../model/service/mock/http/http-mock.service";
|
|
10
|
+
import { XhrProxyFactoryImpl } from "./http-mock-factory.impl";
|
|
11
|
+
/**
|
|
12
|
+
* A factory function that creates and returns a new `XhrFactory` object.
|
|
13
|
+
*
|
|
14
|
+
* @returns A new `XhrFactory` object.
|
|
15
|
+
*/
|
|
16
|
+
export const httpMockFactory = () => {
|
|
17
|
+
return new XhrProxyFactoryImpl(inject(HttpMockService));
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3hoci9odHRwLW1vY2stZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUUsRUFBRTtJQUMvQixPQUFPLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cE1vY2tTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsL3NlcnZpY2UvbW9jay9odHRwL2h0dHAtbW9jay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFhoclByb3h5RmFjdG9yeUltcGwgfSBmcm9tIFwiLi9odHRwLW1vY2stZmFjdG9yeS5pbXBsXCI7XHJcblxyXG4vKipcclxuICogQSBmYWN0b3J5IGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhbmQgcmV0dXJucyBhIG5ldyBgWGhyRmFjdG9yeWAgb2JqZWN0LlxyXG4gKiBcclxuICogQHJldHVybnMgQSBuZXcgYFhockZhY3RvcnlgIG9iamVjdC5cclxuICovXHJcbmV4cG9ydCBjb25zdCBodHRwTW9ja0ZhY3RvcnkgPSAoKT0+IHtcclxuICAgIHJldHVybiBuZXcgWGhyUHJveHlGYWN0b3J5SW1wbChpbmplY3QoSHR0cE1vY2tTZXJ2aWNlKSk7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './http-mock-factory';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3hoci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9odHRwLW1vY2stZmFjdG9yeSc7Il19
|