angular-toolbox 0.11.1 → 0.11.3
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/README.md +1 -1
- package/esm2022/lib/framework/mock/http/util/fetch-client-response-type.enum.mjs +5 -1
- package/esm2022/lib/framework/mock/http/util/fetch-client.builder.mjs +3 -2
- package/esm2022/lib/model/business/mock/http/config/http-mock-production-policy.enum.mjs +27 -0
- package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.provider.mjs +33 -0
- package/esm2022/lib/model/business/mock/http/config/index.mjs +4 -0
- package/esm2022/lib/model/business/mock/http/index.mjs +2 -1
- package/esm2022/lib/model/service/mock/http/http-mock.service.mjs +45 -6
- package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +3 -3
- package/esm2022/lib/util/http-mocking-framework-config.manager.mjs +129 -0
- package/fesm2022/angular-toolbox.mjs +243 -9
- package/fesm2022/angular-toolbox.mjs.map +1 -1
- package/lib/framework/mock/http/util/fetch-client-response-type.enum.d.ts +5 -1
- package/lib/model/business/mock/http/config/http-mock-production-policy.enum.d.ts +24 -0
- package/lib/model/business/mock/http/config/http-mocking-framework-config.d.ts +21 -0
- package/lib/model/business/mock/http/config/http-mocking-framework-config.provider.d.ts +21 -0
- package/lib/model/business/mock/http/config/index.d.ts +3 -0
- package/lib/model/business/mock/http/index.d.ts +1 -0
- package/lib/model/service/mock/http/http-mock.service.d.ts +35 -2
- package/lib/util/http-mocking-framework-config.manager.d.ts +66 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A library that provides useful tools for Angular apps development.
|
|
4
4
|
|
|
5
|
-
[]()
|
|
6
6
|
|
|
7
7
|
## License
|
|
8
8
|
|
|
@@ -32,5 +32,9 @@ export var FetchClientResponseType;
|
|
|
32
32
|
* The response is always decoded using UTF-8.
|
|
33
33
|
*/
|
|
34
34
|
FetchClientResponseType["TEXT"] = "text";
|
|
35
|
+
/**
|
|
36
|
+
* Allows to return the response as a promise that resolves with a `Response` object.
|
|
37
|
+
*/
|
|
38
|
+
FetchClientResponseType["RESPONSE"] = "response";
|
|
35
39
|
})(FetchClientResponseType || (FetchClientResponseType = {}));
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtY2xpZW50LXJlc3BvbnNlLXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAvdXRpbC9mZXRjaC1jbGllbnQtcmVzcG9uc2UtdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLHVCQWdDWDtBQWhDRCxXQUFZLHVCQUF1QjtJQUUvQjs7T0FFRztJQUNILHVEQUE0QixDQUFBO0lBRTVCOztPQUVHO0lBQ0gsd0NBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsaURBQXNCLENBQUE7SUFFdEI7O09BRUc7SUFDSCx3Q0FBYSxDQUFBO0lBRWI7OztPQUdHO0lBQ0gsd0NBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsZ0RBQXFCLENBQUE7QUFDekIsQ0FBQyxFQWhDVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBZ0NsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBEZWZpbmVzIHRoZSBwb3NzaWJsZSB2YWx1ZXMgZm9yIHRoZSBgcmVzcG9uc2VUeXBlYCBwcm9wZXJ0eSBvZiB0aGVcclxuICogYEZldGNoQ2xpZW50QnVpbGRlci5idWlsZEZldGNoQ2xpZW50KClgIG1ldGhvZC5cclxuICovXHJcbmV4cG9ydCBlbnVtIEZldGNoQ2xpZW50UmVzcG9uc2VUeXBlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsbG93cyB0byByZXR1cm4gdGhlIHJlc3BvbnNlIGFzIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYEFycmF5QnVmZmVyYC5cclxuICAgICAqL1xyXG4gICAgQVJSQVlfQlVGRkVSID0gXCJhcnJheUJ1ZmZlclwiLFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEFsbG93cyB0byByZXR1cm4gdGhlIHJlc3BvbnNlIGFzIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYSBgQmxvYmAuXHJcbiAgICAgKi9cclxuICAgIEJMT0IgPSBcImJsb2JcIixcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsbG93cyB0byByZXR1cm4gdGhlIHJlc3BvbnNlIGFzIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYSBgRm9ybURhdGFgIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgRk9STV9EQVRBID0gXCJmb3JtRGF0YVwiLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWxsb3dzIHRvIHJldHVybiB0aGUgcmVzcG9uc2UgYXMgYSBwcm9taXNlIHdoaWNoIHJlc29sdmVzIHdpdGggdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBib2R5IHRleHQgYXMgSlNPTi5cclxuICAgICAqL1xyXG4gICAgSlNPTiA9IFwianNvblwiLFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEFsbG93cyB0byByZXR1cm4gdGhlIHJlc3BvbnNlIGFzIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYSBgU3RyaW5nYC5cclxuICAgICAqIFRoZSByZXNwb25zZSBpcyBhbHdheXMgZGVjb2RlZCB1c2luZyBVVEYtOC5cclxuICAgICAqL1xyXG4gICAgVEVYVCA9IFwidGV4dFwiLFxyXG4gICAgICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBBbGxvd3MgdG8gcmV0dXJuIHRoZSByZXNwb25zZSBhcyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGEgYFJlc3BvbnNlYCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIFJFU1BPTlNFID0gXCJyZXNwb25zZVwiXHJcbn1cclxuIl19
|
|
@@ -23,8 +23,9 @@ export class FetchClientBuilder {
|
|
|
23
23
|
*/
|
|
24
24
|
static buildFetchClient(input, init = null, responseType = FetchClientResponseType.JSON) {
|
|
25
25
|
return from(fetch(input, init || undefined).then((response) => {
|
|
26
|
+
const rspType = responseType;
|
|
26
27
|
if (response.ok)
|
|
27
|
-
return FetchClientBuilder.buildResponseStrategy(response,
|
|
28
|
+
return rspType !== FetchClientResponseType.RESPONSE ? FetchClientBuilder.buildResponseStrategy(response, rspType) : response;
|
|
28
29
|
throw new HttpErrorResponse({
|
|
29
30
|
status: response.status,
|
|
30
31
|
statusText: response.statusText
|
|
@@ -48,4 +49,4 @@ export class FetchClientBuilder {
|
|
|
48
49
|
return response.json();
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtY2xpZW50LmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvZmV0Y2gtY2xpZW50LmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU1RTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFFM0I7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBd0IsRUFBRSxPQUEyQixJQUFJLEVBQUUsZUFBd0MsdUJBQXVCLENBQUMsSUFBSTtRQUMxSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDcEUsTUFBTSxPQUFPLEdBQTRCLFlBQVksQ0FBQztZQUN0RCxJQUFJLFFBQVEsQ0FBQyxFQUFFO2dCQUFFLE9BQU8sT0FBTyxLQUFLLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDOUksTUFBTSxJQUFJLGlCQUFpQixDQUFDO2dCQUN4QixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07Z0JBQ3ZCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTthQUNsQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQWtCLEVBQUUsWUFBcUM7UUFDMUYsSUFBSSxZQUFZLEtBQUssdUJBQXVCLENBQUMsSUFBSTtZQUFFLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFFLElBQUksWUFBWSxLQUFLLHVCQUF1QixDQUFDLElBQUk7WUFBRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxRSxJQUFJLFlBQVksS0FBSyx1QkFBdUIsQ0FBQyxTQUFTO1lBQUUsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkYsSUFBSSxZQUFZLEtBQUssdUJBQXVCLENBQUMsWUFBWTtZQUFFLE9BQU8sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pGLElBQUksWUFBWSxLQUFLLHVCQUF1QixDQUFDLElBQUk7WUFBRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBGZXRjaENsaWVudCB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbFwiO1xyXG5pbXBvcnQgeyBmcm9tIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRmV0Y2hDbGllbnRSZXNwb25zZVR5cGUgfSBmcm9tIFwiLi9mZXRjaC1jbGllbnQtcmVzcG9uc2UtdHlwZS5lbnVtXCI7XHJcblxyXG4vKipcclxuICogQSBzdGF0aWMgdXRpbGl0eSBjbGFzcyBmb3IgYnVpbGRpbmcgYEZldGNoQ2xpZW50YCBvYmplY3RzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEZldGNoQ2xpZW50QnVpbGRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCdWlsZHMgYW5kIHJldHVybnMgYSBuZXcgYEZldGNoQ2xpZW50YCBvYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBpbnB1dCBUaGUgZGVmaW5pdGlvbiBvZiB0aGUgcmVzb3VyY2UgdG8gZmV0Y2guXHJcbiAgICAgKiBAcGFyYW0gaW5pdCBUaGUgb2JqZWN0IGNvbnRhaW5pbmcgb3B0aW9ucyB0byBjb25maWd1cmUgdGhlIHJlcXVlc3QuXHJcbiAgICAgKiBAcGFyYW0gcmVzcG9uc2VUeXBlIFNwZWNpZmllcyB0aGUgdHlwZSBvZiByZXNwb25zZSBmb3IgdGhlIHJlc291cmNlIHRvIGZldGNoLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIG5ldyBgRmV0Y2hDbGllbnRgIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBidWlsZEZldGNoQ2xpZW50KGlucHV0OiBSZXF1ZXN0SW5mbyB8IFVSTCwgaW5pdDogUmVxdWVzdEluaXQgfCBudWxsID0gbnVsbCwgcmVzcG9uc2VUeXBlOiBGZXRjaENsaWVudFJlc3BvbnNlVHlwZSA9IEZldGNoQ2xpZW50UmVzcG9uc2VUeXBlLkpTT04pOiBGZXRjaENsaWVudCB7XHJcbiAgICAgICAgcmV0dXJuIGZyb20oZmV0Y2goaW5wdXQsIGluaXQgfHwgdW5kZWZpbmVkKS50aGVuKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcnNwVHlwZTogRmV0Y2hDbGllbnRSZXNwb25zZVR5cGUgPSByZXNwb25zZVR5cGU7XHJcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5vaykgcmV0dXJuIHJzcFR5cGUgIT09IEZldGNoQ2xpZW50UmVzcG9uc2VUeXBlLlJFU1BPTlNFID8gRmV0Y2hDbGllbnRCdWlsZGVyLmJ1aWxkUmVzcG9uc2VTdHJhdGVneShyZXNwb25zZSwgcnNwVHlwZSkgOiByZXNwb25zZTtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEh0dHBFcnJvclJlc3BvbnNlKHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBidWlsZFJlc3BvbnNlU3RyYXRlZ3kocmVzcG9uc2U6IFJlc3BvbnNlLCByZXNwb25zZVR5cGU6IEZldGNoQ2xpZW50UmVzcG9uc2VUeXBlKTogUHJvbWlzZTxhbnk+e1xyXG4gICAgICAgIGlmIChyZXNwb25zZVR5cGUgPT09IEZldGNoQ2xpZW50UmVzcG9uc2VUeXBlLkpTT04pIHJldHVybiByZXNwb25zZS5qc29uKCk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlVHlwZSA9PT0gRmV0Y2hDbGllbnRSZXNwb25zZVR5cGUuQkxPQikgcmV0dXJuIHJlc3BvbnNlLmJsb2IoKTtcclxuICAgICAgICBpZiAocmVzcG9uc2VUeXBlID09PSBGZXRjaENsaWVudFJlc3BvbnNlVHlwZS5GT1JNX0RBVEEpIHJldHVybiByZXNwb25zZS5mb3JtRGF0YSgpO1xyXG4gICAgICAgIGlmIChyZXNwb25zZVR5cGUgPT09IEZldGNoQ2xpZW50UmVzcG9uc2VUeXBlLkFSUkFZX0JVRkZFUikgcmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlVHlwZSA9PT0gRmV0Y2hDbGllbnRSZXNwb25zZVR5cGUuVEVYVCkgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
+
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The list of constant values that can be passed to the `productionPolicy` of the `HttpMockingFrameworkConfig` interface.
|
|
10
|
+
*/
|
|
11
|
+
export var HttpMockProductionPolicy;
|
|
12
|
+
(function (HttpMockProductionPolicy) {
|
|
13
|
+
/**
|
|
14
|
+
* Indicates that the framework intercepts requests silently in producion mode.
|
|
15
|
+
*/
|
|
16
|
+
HttpMockProductionPolicy[HttpMockProductionPolicy["SILENT"] = 0] = "SILENT";
|
|
17
|
+
/**
|
|
18
|
+
* Indicates that the framework has to send a warning message to the console when a request is intercetped in producion mode.
|
|
19
|
+
*/
|
|
20
|
+
HttpMockProductionPolicy[HttpMockProductionPolicy["WARNING"] = 1] = "WARNING";
|
|
21
|
+
/**
|
|
22
|
+
* Indicates that the framework trhows an error when a request is intercetped in producion mode.
|
|
23
|
+
*/
|
|
24
|
+
HttpMockProductionPolicy[HttpMockProductionPolicy["ERROR"] = 2] = "ERROR";
|
|
25
|
+
})(HttpMockProductionPolicy || (HttpMockProductionPolicy = {}));
|
|
26
|
+
;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLXByb2R1Y3Rpb24tcG9saWN5LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9idXNpbmVzcy9tb2NrL2h0dHAvY29uZmlnL2h0dHAtbW9jay1wcm9kdWN0aW9uLXBvbGljeS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUdIOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksd0JBZ0JYO0FBaEJELFdBQVksd0JBQXdCO0lBRWhDOztPQUVHO0lBQ0gsMkVBQVUsQ0FBQTtJQUVWOztPQUVHO0lBQ0gsNkVBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gseUVBQVMsQ0FBQTtBQUNiLENBQUMsRUFoQlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQWdCbkM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuXHJcbi8qKlxyXG4gKiBUaGUgbGlzdCBvZiBjb25zdGFudCB2YWx1ZXMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBgcHJvZHVjdGlvblBvbGljeWAgb2YgdGhlIGBIdHRwTW9ja2luZ0ZyYW1ld29ya0NvbmZpZ2AgaW50ZXJmYWNlLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gSHR0cE1vY2tQcm9kdWN0aW9uUG9saWN5IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBmcmFtZXdvcmsgaW50ZXJjZXB0cyByZXF1ZXN0cyBzaWxlbnRseSBpbiBwcm9kdWNpb24gbW9kZS5cclxuICAgICAqL1xyXG4gICAgU0lMRU5UID0gMCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBmcmFtZXdvcmsgaGFzIHRvIHNlbmQgYSB3YXJuaW5nIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgd2hlbiBhIHJlcXVlc3QgaXMgaW50ZXJjZXRwZWQgaW4gcHJvZHVjaW9uIG1vZGUuXHJcbiAgICAgKi9cclxuICAgIFdBUk5JTkcgPSAxLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGZyYW1ld29yayB0cmhvd3MgYW4gZXJyb3Igd2hlbiBhIHJlcXVlc3QgaXMgaW50ZXJjZXRwZWQgaW4gcHJvZHVjaW9uIG1vZGUuXHJcbiAgICAgKi9cclxuICAgIEVSUk9SID0gMlxyXG59OyJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
+
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NraW5nLWZyYW1ld29yay1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9idXNpbmVzcy9tb2NrL2h0dHAvY29uZmlnL2h0dHAtbW9ja2luZy1mcmFtZXdvcmstY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEh0dHBNb2NrUHJvZHVjdGlvblBvbGljeSB9IGZyb20gXCIuL2h0dHAtbW9jay1wcm9kdWN0aW9uLXBvbGljeS5lbnVtXCI7XHJcblxyXG4vKipcclxuICogRGVmaW5lcyBwcm9wZXJ0aWVzIGZvciB0aGUgSFRUUCBNb2NraW5nIGZyYW1ld29yayBjb25maWd1cmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBIdHRwTW9ja2luZ0ZyYW1ld29ya0NvbmZpZyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdmlzdWFsIGZsYWcgaXMgdmlzaWJsZSAoYGZhbHNlYCksIG9yIG5vdCAoYHRydWVgKS5cclxuICAgICAqL1xyXG4gICAgZGlzYWJsZVZpc3VhbEZsYWc/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHRoZSBiZWhhdmlvciBvZiB0aGUgZnJhbWV3b3JrIHdoZW4gaXQgaXMgdXNlZCBpbiBwcm9kdWN0aW9uIG1vZGUuXHJcbiAgICAgKi9cclxuICAgIHByb2R1Y3Rpb25Qb2xpY3k/OiBIdHRwTW9ja1Byb2R1Y3Rpb25Qb2xpY3k7XHJcbn1cclxuIl19
|
package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.provider.mjs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
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 "./http-mock-production-policy.enum";
|
|
9
|
+
/**
|
|
10
|
+
* The default provider for the HTTP Mocking Framework configuration. You typically define
|
|
11
|
+
* the custom properties in the main NgModule declaration to initialize the HTTP Mocking Framework:
|
|
12
|
+
*
|
|
13
|
+
* @NgModule({
|
|
14
|
+
* ...
|
|
15
|
+
* providers: [
|
|
16
|
+
* { provide: HTTP_MOCKING_FRAMEWORK_CONFIG, useValue: { disableVisualFlag: true, productionPolicy: HttpMockProductionPolicy.WARNING } }
|
|
17
|
+
* ],
|
|
18
|
+
* ...
|
|
19
|
+
* });
|
|
20
|
+
*/
|
|
21
|
+
export const HTTP_MOCKING_FRAMEWORK_CONFIG = {
|
|
22
|
+
/**
|
|
23
|
+
* Indicates whether the visual flag is visible (`false`), or not (`true`).
|
|
24
|
+
* Default value is `false`.
|
|
25
|
+
*/
|
|
26
|
+
disableVisualFlag: false,
|
|
27
|
+
/**
|
|
28
|
+
* Indicates the behavior of the framework when it is used in production mode.
|
|
29
|
+
* Default value is `HttpMockProductionPolicy.ERROR`.
|
|
30
|
+
*/
|
|
31
|
+
productionPolicy: HttpMockProductionPolicy.ERROR
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NraW5nLWZyYW1ld29yay1jb25maWcucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9idXNpbmVzcy9tb2NrL2h0dHAvY29uZmlnL2h0dHAtbW9ja2luZy1mcmFtZXdvcmstY29uZmlnLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRzlFOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQStCO0lBRXJFOzs7T0FHRztJQUNILGlCQUFpQixFQUFFLEtBQUs7SUFFeEI7OztPQUdHO0lBQ0gsZ0JBQWdCLEVBQUUsd0JBQXdCLENBQUMsS0FBSztDQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cE1vY2tQcm9kdWN0aW9uUG9saWN5IH0gZnJvbSBcIi4vaHR0cC1tb2NrLXByb2R1Y3Rpb24tcG9saWN5LmVudW1cIjtcclxuaW1wb3J0IHsgSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWcgfSBmcm9tIFwiLi9odHRwLW1vY2tpbmctZnJhbWV3b3JrLWNvbmZpZ1wiO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBkZWZhdWx0IHByb3ZpZGVyIGZvciB0aGUgSFRUUCBNb2NraW5nIEZyYW1ld29yayBjb25maWd1cmF0aW9uLiBZb3UgdHlwaWNhbGx5IGRlZmluZVxyXG4gKiB0aGUgY3VzdG9tIHByb3BlcnRpZXMgaW4gdGhlIG1haW4gTmdNb2R1bGUgZGVjbGFyYXRpb24gdG8gaW5pdGlhbGl6ZSB0aGUgSFRUUCBNb2NraW5nIEZyYW1ld29yazpcclxuICogXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqIC4uLlxyXG4gKiBwcm92aWRlcnM6IFtcclxuICogICB7IHByb3ZpZGU6IEhUVFBfTU9DS0lOR19GUkFNRVdPUktfQ09ORklHLCB1c2VWYWx1ZTogeyBkaXNhYmxlVmlzdWFsRmxhZzogdHJ1ZSwgcHJvZHVjdGlvblBvbGljeTogSHR0cE1vY2tQcm9kdWN0aW9uUG9saWN5LldBUk5JTkcgfSB9XHJcbiAqIF0sXHJcbiAqIC4uLlxyXG4gKiB9KTtcclxuICovXHJcbmV4cG9ydCBjb25zdCBIVFRQX01PQ0tJTkdfRlJBTUVXT1JLX0NPTkZJRzogSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWcgPSB7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHZpc3VhbCBmbGFnIGlzIHZpc2libGUgKGBmYWxzZWApLCBvciBub3QgKGB0cnVlYCkuXHJcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXHJcbiAgICAgKi9cclxuICAgIGRpc2FibGVWaXN1YWxGbGFnOiBmYWxzZSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGZyYW1ld29yayB3aGVuIGl0IGlzIHVzZWQgaW4gcHJvZHVjdGlvbiBtb2RlLlxyXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgSHR0cE1vY2tQcm9kdWN0aW9uUG9saWN5LkVSUk9SYC5cclxuICAgICAqL1xyXG4gICAgcHJvZHVjdGlvblBvbGljeTogSHR0cE1vY2tQcm9kdWN0aW9uUG9saWN5LkVSUk9SXHJcbn07Il19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './http-mocking-framework-config.provider';
|
|
2
|
+
export * from './http-mocking-framework-config';
|
|
3
|
+
export * from './http-mock-production-policy.enum';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9idXNpbmVzcy9tb2NrL2h0dHAvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9odHRwLW1vY2tpbmctZnJhbWV3b3JrLWNvbmZpZy5wcm92aWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1tb2NraW5nLWZyYW1ld29yay1jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtbW9jay1wcm9kdWN0aW9uLXBvbGljeS5lbnVtJzsiXX0=
|
|
@@ -6,4 +6,5 @@ export * from './http-mock-interceptor';
|
|
|
6
6
|
export * from './http-mock-error';
|
|
7
7
|
export * from './xhr-proxy';
|
|
8
8
|
export * from './fetch-client';
|
|
9
|
-
|
|
9
|
+
export * from './config';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9idXNpbmVzcy9tb2NrL2h0dHAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaHR0cC1yZXNwb25zZS1tb2NrJztcclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLW1ldGhvZC1tb2NrJztcclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLW1vY2stY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLW1vY2stZW5kcG9pbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtbW9jay1pbnRlcmNlcHRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1tb2NrLWVycm9yJztcclxuZXhwb3J0ICogZnJvbSAnLi94aHItcHJveHknO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZldGNoLWNsaWVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnJzsiXX0=
|
|
@@ -5,13 +5,17 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
6
|
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
7
|
*/
|
|
8
|
-
import { Injectable } from '@angular/core';
|
|
8
|
+
import { Inject, Injectable, isDevMode, Optional } from '@angular/core';
|
|
9
|
+
import { HTTP_MOCKING_FRAMEWORK_CONFIG } from '../../../business';
|
|
9
10
|
import { HTTPMethodRef } from '../../../../framework/mock/http/util/http-method-ref.enum';
|
|
10
11
|
import { tokenDataToRegexp } from '../../../../framework/mock/http/path-to-regexp/token-data-to-regexp';
|
|
11
12
|
import { stringToTokenData } from '../../../../framework/mock/http/path-to-regexp/string-to-token-data';
|
|
12
13
|
import { DEFAULT_DELIMITER } from '../../../../framework/mock/http/path-to-regexp/constants';
|
|
13
14
|
import { Uuid } from '../../../../util';
|
|
14
15
|
import { HttpMockServiceError } from '../../../../core/error';
|
|
16
|
+
import { DOCUMENT } from '@angular/common';
|
|
17
|
+
import { HttpMockingFrameworkConfigManager } from '../../../../util/http-mocking-framework-config.manager';
|
|
18
|
+
import { IdentifiableComponent } from '../../../../core';
|
|
15
19
|
import * as i0 from "@angular/core";
|
|
16
20
|
/**
|
|
17
21
|
* @private
|
|
@@ -21,8 +25,23 @@ export const HTTP_MOCK_SERVICE = "HttpMockService";
|
|
|
21
25
|
/**
|
|
22
26
|
* The `HttpMockService` class provides the API for managing HTTP mock configuration objects.
|
|
23
27
|
*/
|
|
24
|
-
export class HttpMockService {
|
|
25
|
-
|
|
28
|
+
export class HttpMockService extends IdentifiableComponent {
|
|
29
|
+
/**
|
|
30
|
+
* Returns the vreference to the `HttpMockingFrameworkConfigManager` instance,
|
|
31
|
+
* associated with this service.
|
|
32
|
+
*/
|
|
33
|
+
get configMmanager() {
|
|
34
|
+
return this._configMmanager;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @private
|
|
38
|
+
* Creates a new `HttpMockService` instance.
|
|
39
|
+
*
|
|
40
|
+
* @param _document The reference to the app document.
|
|
41
|
+
* @param config The optional config provider for the HTTP Mocking Framework.
|
|
42
|
+
*/
|
|
43
|
+
constructor(document, config) {
|
|
44
|
+
super(HTTP_MOCK_SERVICE);
|
|
26
45
|
/**
|
|
27
46
|
* @private
|
|
28
47
|
* Ensures that class type is still accessible after TypeScript compilation.
|
|
@@ -43,6 +62,14 @@ export class HttpMockService {
|
|
|
43
62
|
* The reference to the current app URL origin.
|
|
44
63
|
*/
|
|
45
64
|
this.APP_ORIGIN = window.location.origin;
|
|
65
|
+
this._configMmanager = new HttpMockingFrameworkConfigManager(document, isDevMode(), config);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @private
|
|
69
|
+
*/
|
|
70
|
+
ngOnDestroy() {
|
|
71
|
+
this._configMmanager.checkPolicy();
|
|
72
|
+
this._configMmanager.destroy();
|
|
46
73
|
}
|
|
47
74
|
/**
|
|
48
75
|
* Adds the specified `HttpMockConfig` object to this `HttpMockService` instance.
|
|
@@ -52,6 +79,7 @@ export class HttpMockService {
|
|
|
52
79
|
*/
|
|
53
80
|
addConfig(config) {
|
|
54
81
|
const origin = config.origin || this.APP_ORIGIN;
|
|
82
|
+
this._configMmanager.checkPolicy();
|
|
55
83
|
this.checkOrigin(origin);
|
|
56
84
|
let id = config.id;
|
|
57
85
|
if (!id) {
|
|
@@ -81,6 +109,7 @@ export class HttpMockService {
|
|
|
81
109
|
* @param uuid The UUID of the configuration to remove.
|
|
82
110
|
*/
|
|
83
111
|
removeConfig(uuid) {
|
|
112
|
+
this._configMmanager.checkPolicy();
|
|
84
113
|
if (!this.hasRegisteredConfig(uuid))
|
|
85
114
|
return;
|
|
86
115
|
const configId = uuid.toString();
|
|
@@ -95,6 +124,7 @@ export class HttpMockService {
|
|
|
95
124
|
* Removes all registred configurations from this `HttpMockService` instance.
|
|
96
125
|
*/
|
|
97
126
|
clearConfigs() {
|
|
127
|
+
this._configMmanager.checkPolicy();
|
|
98
128
|
this._configList.clear();
|
|
99
129
|
this._configIdList.length = 0;
|
|
100
130
|
}
|
|
@@ -119,6 +149,7 @@ export class HttpMockService {
|
|
|
119
149
|
getRouteConfig(url, method) {
|
|
120
150
|
const urlConfigList = this._configList.get(url.origin);
|
|
121
151
|
const route = url.pathname;
|
|
152
|
+
this._configMmanager.checkPolicy(route, method);
|
|
122
153
|
let result = undefined;
|
|
123
154
|
if (!urlConfigList)
|
|
124
155
|
return result;
|
|
@@ -228,7 +259,7 @@ export class HttpMockService {
|
|
|
228
259
|
cleanConfig(storage, configId) {
|
|
229
260
|
return storage.filter((value) => value.configId !== configId);
|
|
230
261
|
}
|
|
231
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HttpMockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
262
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HttpMockService, deps: [{ token: DOCUMENT }, { token: HTTP_MOCKING_FRAMEWORK_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
232
263
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HttpMockService, providedIn: 'root' }); }
|
|
233
264
|
}
|
|
234
265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: HttpMockService, decorators: [{
|
|
@@ -236,5 +267,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
236
267
|
args: [{
|
|
237
268
|
providedIn: 'root'
|
|
238
269
|
}]
|
|
239
|
-
}]
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9zZXJ2aWNlL21vY2svaHR0cC9odHRwLW1vY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUd4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTlEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFXLGlCQUFpQixDQUFDO0FBYTNEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFLRTs7O1dBR0c7UUFDYSxTQUFJLEdBQVcsaUJBQWlCLENBQUM7UUFFakQ7OztXQUdHO1FBQ0ssa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFFbkM7OztXQUdHO1FBQ0ssZ0JBQVcsR0FBd0QsSUFBSSxHQUFHLEVBQWtELENBQUM7UUFFckk7OztXQUdHO1FBQ2MsZUFBVSxHQUFXLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0tBcUw5RDtJQW5MQzs7Ozs7T0FLRztJQUNJLFNBQVMsQ0FBQyxNQUFzQjtRQUNyQyxNQUFNLE1BQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFV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U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLE1BQWM7UUFDaEMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQUUsTUFBTSxJQUFJLFdBQVcsQ0FBQyw2Q0FBNkMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FBQyxVQUFrRCxFQUFFLFFBQWdCO1FBQzNGLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFrQyxFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQ3JFLE1BQU0sYUFBYSxHQUE4QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyRixJQUFJLGFBQWEsQ0FBQyxNQUFNO2dCQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDOztnQkFDeEQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxPQUFrQyxFQUFFLFFBQWdCO1FBQ3RFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQThCLEVBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDeEYsQ0FBQzs4R0E1TVUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBNb2NrSW50ZXJjZXB0b3IsIEh0dHBNb2NrQ29uZmlnLCBIdHRwTWV0aG9kTW9jaywgSHR0cE1vY2tFbmRwb2ludCB9IGZyb20gJy4uLy4uLy4uL2J1c2luZXNzJztcclxuaW1wb3J0IHsgSFRUUE1ldGhvZFJlZiB9IGZyb20gJy4uLy4uLy4uLy4uL2ZyYW1ld29yay9tb2NrL2h0dHAvdXRpbC9odHRwLW1ldGhvZC1yZWYuZW51bSc7XHJcbmltcG9ydCB7IHRva2VuRGF0YVRvUmVnZXhwIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnJhbWV3b3JrL21vY2svaHR0cC9wYXRoLXRvLXJlZ2V4cC90b2tlbi1kYXRhLXRvLXJlZ2V4cCc7XHJcbmltcG9ydCB7IFJvdXRlTW9ja0NvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2ZyYW1ld29yay9tb2NrL2h0dHAvY29uZmlnL3JvdXRlLW1vY2stY29uZmlnJztcclxuaW1wb3J0IHsgS2V5IH0gZnJvbSAnLi4vLi4vLi4vLi4vZnJhbWV3b3JrL21vY2svaHR0cC9wYXRoLXRvLXJlZ2V4cC9tb2RlbC9rZXknO1xyXG5pbXBvcnQgeyBzdHJpbmdUb1Rva2VuRGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL2ZyYW1ld29yay9tb2NrL2h0dHAvcGF0aC10by1yZWdleHAvc3RyaW5nLXRvLXRva2VuLWRhdGEnO1xyXG5pbXBvcnQgeyBERUZBVUxUX0RFTElNSVRFUiB9IGZyb20gJy4uLy4uLy4uLy4uL2ZyYW1ld29yay9tb2NrL2h0dHAvcGF0aC10by1yZWdleHAvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgVXVpZCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWwnO1xyXG5pbXBvcnQgeyBUb2tlbkRhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi9mcmFtZXdvcmsvbW9jay9odHRwL3BhdGgtdG8tcmVnZXhwL3Rva2VuLWRhdGEnO1xyXG5pbXBvcnQgeyBIdHRwTW9ja1NlcnZpY2VFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvZXJyb3InO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFJlZmVyZW5jZSB0byB0aGUgb3JpZ2luYWwgdHlwZSBmb3IgdGhpcyBjbGFzcy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBIVFRQX01PQ0tfU0VSVklDRTogc3RyaW5nID0gXCJIdHRwTW9ja1NlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBBbiBpbnRlcm5hbCB1dGlsaXR5IGZvciBzdG9ycmluZyByZWZlcmVuY2VzIHRvIGVuZHBvaW50IG1vY2sgY29uZmlncy5cclxuICovXHJcbmludGVyZmFjZSBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZSB7XHJcbiAgbWV0aG9kTW9jazogSHR0cE1ldGhvZE1vY2s7XHJcbiAgcmVnZXhwOiBSZWdFeHA7XHJcbiAga2V5czogS2V5W107XHJcbiAgY29uZmlnSWQ6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBgSHR0cE1vY2tTZXJ2aWNlYCBjbGFzcyBwcm92aWRlcyB0aGUgQVBJIGZvciBtYW5hZ2luZyBIVFRQIG1vY2sgY29uZmlndXJhdGlvbiBvYmplY3RzLlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSHR0cE1vY2tTZXJ2aWNlIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBFbnN1cmVzIHRoYXQgY2xhc3MgdHlwZSBpcyBzdGlsbCBhY2Nlc3NpYmxlIGFmdGVyIFR5cGVTY3JpcHQgY29tcGlsYXRpb24uXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IEhUVFBfTU9DS19TRVJWSUNFO1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIFRoZSBsaXN0IG9mIElEcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBjb25maWcgb2JqZWN0LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NvbmZpZ0lkTGlzdDogVXVpZFtdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogU3RvcmVzIHRoZSBjb21wbGV0ZSBjb2xsZWN0aW9uIG9mIG1vY2tpbmcgYmVoYXZpb3JzIGZvciBlYWNoIHJlZ2lzdGVyZWQgY29uZmlnLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NvbmZpZ0xpc3Q6IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlW10+PiA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZVtdPj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFwcCBVUkwgb3JpZ2luLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgQVBQX09SSUdJTjogc3RyaW5nID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcyB0aGUgc3BlY2lmaWVkIGBIdHRwTW9ja0NvbmZpZ2Agb2JqZWN0IHRvIHRoaXMgYEh0dHBNb2NrU2VydmljZWAgaW5zdGFuY2UuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgYEh0dHBNb2NrQ29uZmlnYCBvYmplY3QgdG8gYWRkIHRvIHRoaXMgYEh0dHBNb2NrU2VydmljZWAgaW5zdGFuY2UuXHJcbiAgICogQFJldHVybnMgVGhlIGBVdWlkYCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhlIGFkZGVkIGBIdHRwTW9ja0NvbmZpZ2Agb2JqZWN0LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRDb25maWcoY29uZmlnOiBIdHRwTW9ja0NvbmZpZyk6IFV1aWQge1xyXG4gICAgY29uc3Qgb3JpZ2luOiBzdHJpbmcgPSBjb25maWcub3JpZ2luIHx8IHRoaXMuQVBQX09SSUdJTjtcclxuICAgIHRoaXMuY2hlY2tPcmlnaW4ob3JpZ2luKTtcclxuICAgIGxldCBpZDogVXVpZCB8IHVuZGVmaW5lZCA9IGNvbmZpZy5pZDtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgaWQgPSBVdWlkLmJ1aWxkKCk7XHJcbiAgICAgIGNvbmZpZy5pZCA9IGlkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuaGFzUmVnaXN0ZXJlZENvbmZpZyhpZCkpIHRocm93IG5ldyBIdHRwTW9ja1NlcnZpY2VFcnJvcihgQSBjb25maWcgb2JqZWN0IGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCB3aXRoIHRoZSBpZDogW1wiJHtpZC50b1N0cmluZygpfVwiXS5gKSA7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jb25maWdJZExpc3QucHVzaChpZCk7XHJcbiAgICBjb25zdCB1dWlkOiBzdHJpbmcgPSBpZC50b1N0cmluZygpO1xyXG4gICAgY29uZmlnLmludGVyY2VwdG9ycy5mb3JFYWNoKChpbnRlcmNlcHRvcjogSHR0cE1vY2tJbnRlcmNlcHRvcikgPT4gdGhpcy5leHRyYWN0Q29uZmlnKGludGVyY2VwdG9yLCBvcmlnaW4sIHV1aWQpICk7XHJcbiAgICByZXR1cm4gaWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGFwcCBVUkwgb3JpZ2luLlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudCBhcHAgVVJMIG9yaWdpbi5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0QXBwT3JpZ2luKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5BUFBfT1JJR0lOO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgY29uZmlndXJhdGlvbiByZWdpc3RlcmVkIHdpdGggdGhlIHNwZWNpZmllZCBgdXVpZGAgZnJvbSB0aGlzIGBIdHRwTW9ja1NlcnZpY2VgIGluc3RhbmNlLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB1dWlkIFRoZSBVVUlEIG9mIHRoZSBjb25maWd1cmF0aW9uIHRvIHJlbW92ZS5cclxuICAgKi9cclxuICBwdWJsaWMgcmVtb3ZlQ29uZmlnKHV1aWQ6IFV1aWQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oYXNSZWdpc3RlcmVkQ29uZmlnKHV1aWQpKSByZXR1cm47XHJcbiAgICBjb25zdCBjb25maWdJZDogc3RyaW5nID0gdXVpZC50b1N0cmluZygpO1xyXG4gICAgdGhpcy5fY29uZmlnTGlzdC5mb3JFYWNoKCh2YWx1ZTogTWFwPHN0cmluZywgSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXT4sIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVsZXRlQ29uZmlnQnlJZCh2YWx1ZSwgY29uZmlnSWQpO1xyXG4gICAgICBpZiAodmFsdWUuc2l6ZSA9PT0gMCkgdGhpcy5fY29uZmlnTGlzdC5kZWxldGUoa2V5KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fY29uZmlnSWRMaXN0LnNwbGljZSh0aGlzLl9jb25maWdJZExpc3QuaW5kZXhPZih1dWlkKSwgMSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGFsbCByZWdpc3RyZWQgY29uZmlndXJhdGlvbnMgZnJvbSB0aGlzIGBIdHRwTW9ja1NlcnZpY2VgIGluc3RhbmNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjbGVhckNvbmZpZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb25maWdMaXN0LmNsZWFyKCk7XHJcbiAgICB0aGlzLl9jb25maWdJZExpc3QubGVuZ3RoID0gMDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIGJvb2xlYW4gdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciBhIGNvbmZpZyB3aXRoIHRoZSBzcGVjaWZpZWQgVVVJRCBoYXMgYmVlbiByZWdpc3RlcmVkXHJcbiAgICogKGB0cnVlYCksIG9yIG5vdCAoYGZhbHNlYCkuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHV1aWQgVGhlIFVVSUQgb2YgdGhlIGNvbmZpZyB0byBjaGVjay5cclxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgd2hldGhlciBhIGNvbmZpZyB3aXRoIHRoZSBzcGVjaWZpZWQgVVVJRCBoYXMgYmVlbiByZWdpc3RlcmVkOyBgZmFsc2VgIG90aGVyd2lzZS5cclxuICAgKi9cclxuICBwdWJsaWMgaGFzUmVnaXN0ZXJlZENvbmZpZyh1dWlkOiBVdWlkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnSWRMaXN0LmluZGV4T2YodXVpZCkgIT09IC0xO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgYFJvdXRlTW9ja0NvbmZpZ2Agb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGBVUkxgIGluc3RhbmNlIGFuZCBIVFRQIG1ldGhvZC5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gdXJsIFRoZSBgVVJMYCBpbnN0YW5jZSBmb3Igd2hpY2ggdG8gZmluZCBhIHJvdXRlIGNvbmZpZy5cclxuICAgKiBAcGFyYW0gbWV0aG9kIFRoZSBIVFRQIG1ldGhvZCBmb3Igd2hpY2ggdG8gZmluZCBhIHJvdXRlIGNvbmZpZy5cclxuICAgKiBAcmV0dXJucyBUaGUgYFJvdXRlTW9ja0NvbmZpZ2Agb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGBVUkxgIGluc3RhbmNlIGFuZCBIVFRQIG1ldGhvZCB3aGV0aGVyIGl0IGV4aXN0cztcclxuICAgKiAgICAgICAgICBgdW5kZWZpbmVkYCBvdGhlcndpc2UuXHJcbiAgICovXHJcbiAgcHVibGljIGdldFJvdXRlQ29uZmlnKHVybDogVVJMLCBtZXRob2Q6IEhUVFBNZXRob2RSZWYpOiBSb3V0ZU1vY2tDb25maWcgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgdXJsQ29uZmlnTGlzdDogTWFwPHN0cmluZywgSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXT4gfCB1bmRlZmluZWQgPSB0aGlzLl9jb25maWdMaXN0LmdldCh1cmwub3JpZ2luKTtcclxuICAgIGNvbnN0IHJvdXRlOiBzdHJpbmcgPSB1cmwucGF0aG5hbWU7XHJcbiAgICBsZXQgcmVzdWx0OiBSb3V0ZU1vY2tDb25maWcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiAoIXVybENvbmZpZ0xpc3QpIHJldHVybiByZXN1bHQ7XHJcbiAgICBjb25zdCBtZXRob2RMaXN0OiBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZVtdIHwgdW5kZWZpbmVkID0gdXJsQ29uZmlnTGlzdC5nZXQobWV0aG9kKTtcclxuICAgIGlmICghbWV0aG9kTGlzdCkgcmV0dXJuIHJlc3VsdDtcclxuICAgIGxldCBsZW46IG51bWJlciA9IG1ldGhvZExpc3QubGVuZ3RoIC0gMTtcclxuICAgIHdoaWxlIChsZW4gPj0gMCApIHtcclxuICAgICAgY29uc3QgbWV0aG9kTWFwOiBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZSA9IG1ldGhvZExpc3RbbGVuXTtcclxuICAgICAgY29uc3QgcmVnZXhwOiBSZWdFeHAgPSBtZXRob2RNYXAucmVnZXhwO1xyXG4gICAgICBpZiAocmVnZXhwLnRlc3Qocm91dGUpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgbWV0aG9kQ29uZmlnOiBtZXRob2RNYXAubWV0aG9kTW9jayxcclxuICAgICAgICAgIHBhcmFtZXRlcnM6IHRoaXMuYnVpbGRQYXJhbWV0ZXJzKHJlZ2V4cCwgbWV0aG9kTWFwLmtleXMsIHJvdXRlKSxcclxuICAgICAgICAgIHNlYXJjaFBhcmFtczogdXJsLnNlYXJjaFBhcmFtc1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgbGVuLS07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHJpdmF0ZSBcclxuICAgKi9cclxuICBwcml2YXRlIGJ1aWxkUGFyYW1ldGVycyhyZWdleHA6IFJlZ0V4cCwga2V5czogS2V5W10sIHJvdXRlOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgZXhlY1Jlc3VsdDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IHJlZ2V4cC5leGVjKHJvdXRlKTtcclxuICAgIGlmICghZXhlY1Jlc3VsdCkgcmV0dXJuIG51bGw7XHJcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHt9O1xyXG4gICAgbGV0IGxlbjogbnVtYmVyID0gZXhlY1Jlc3VsdC5sZW5ndGggLSAxO1xyXG4gICAgbGV0IGk6IG51bWJlciA9IDE7XHJcbiAgICBmb3IgKDsgaSA8PSBsZW47ICsraSkge1xyXG4gICAgICBjb25zdCBrZXk6IEtleSA9IGtleXNbaSAtIDFdO1xyXG4gICAgICBwYXJhbXNba2V5Lm5hbWVdID0gZXhlY1Jlc3VsdFtpXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcml2YXRlIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZXh0cmFjdENvbmZpZyhpbnRlcmNlcHRvcjogSHR0cE1vY2tJbnRlcmNlcHRvciwgZ2xvYmFsT3JpZ2luOiBzdHJpbmcsIGNvbmZpZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVuZHBvaW50czogSHR0cE1vY2tFbmRwb2ludFtdID0gaW50ZXJjZXB0b3IuZW5kcG9pbnRzO1xyXG4gICAgbGV0IG9yaWdpbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gaW50ZXJjZXB0b3Iub3JpZ2luO1xyXG4gICAgaWYgKG9yaWdpbikgdGhpcy5jaGVja09yaWdpbihvcmlnaW4pO1xyXG4gICAgZWxzZSBvcmlnaW4gPSBnbG9iYWxPcmlnaW47XHJcbiAgICBpZiAoIXRoaXMuX2NvbmZpZ0xpc3QuaGFzKG9yaWdpbikpIHRoaXMuX2NvbmZpZ0xpc3Quc2V0KG9yaWdpbiwgbmV3IE1hcDxzdHJpbmcsIEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlW10+KCkpO1xyXG4gICAgZW5kcG9pbnRzLmZvckVhY2goKGVuZHBvaW50OiBIdHRwTW9ja0VuZHBvaW50KSA9PiB7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEVuZHBvaW50Q29uZmlnKG9yaWdpbiwgZW5kcG9pbnQsIEhUVFBNZXRob2RSZWYuR0VULCBjb25maWdJZCk7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEVuZHBvaW50Q29uZmlnKG9yaWdpbiwgZW5kcG9pbnQsIEhUVFBNZXRob2RSZWYuUE9TVCwgY29uZmlnSWQpO1xyXG4gICAgICB0aGlzLmV4dHJhY3RFbmRwb2ludENvbmZpZyhvcmlnaW4sIGVuZHBvaW50LCBIVFRQTWV0aG9kUmVmLlBVVCwgY29uZmlnSWQpO1xyXG4gICAgICB0aGlzLmV4dHJhY3RFbmRwb2ludENvbmZpZyhvcmlnaW4sIGVuZHBvaW50LCBIVFRQTWV0aG9kUmVmLkRFTEVURSwgY29uZmlnSWQpO1xyXG4gICAgICB0aGlzLmV4dHJhY3RFbmRwb2ludENvbmZpZyhvcmlnaW4sIGVuZHBvaW50LCBIVFRQTWV0aG9kUmVmLkhFQUQsIGNvbmZpZ0lkKTtcclxuICAgICAgdGhpcy5leHRyYWN0RW5kcG9pbnRDb25maWcob3JpZ2luLCBlbmRwb2ludCwgSFRUUE1ldGhvZFJlZi5PUFRJT05TLCBjb25maWdJZCk7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEVuZHBvaW50Q29uZmlnKG9yaWdpbiwgZW5kcG9pbnQsIEhUVFBNZXRob2RSZWYuUEFUQ0gsIGNvbmZpZ0lkKTtcclxuICAgICAgdGhpcy5leHRyYWN0RW5kcG9pbnRDb25maWcob3JpZ2luLCBlbmRwb2ludCwgSFRUUE1ldGhvZFJlZi5DT05ORUNULCBjb25maWdJZCk7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEVuZHBvaW50Q29uZmlnKG9yaWdpbiwgZW5kcG9pbnQsIEhUVFBNZXRob2RSZWYuVFJBQ0UsIGNvbmZpZ0lkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHJpdmF0ZSBcclxuICAgKi9cclxuICBwcml2YXRlIGV4dHJhY3RFbmRwb2ludENvbmZpZyhvcmlnaW46IHN0cmluZywgZW5kcG9pbnQ6IEh0dHBNb2NrRW5kcG9pbnQsIG1ldGhvZDogSFRUUE1ldGhvZFJlZiwgY29uZmlnSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZXA6IGFueSA9IGVuZHBvaW50O1xyXG4gICAgaWYgKCFlcFttZXRob2QgYXMgYW55XSkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb3JpZ2luQ29uZmlnOiBNYXA8c3RyaW5nLCBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZVtdPiA9IHRoaXMuX2NvbmZpZ0xpc3QuZ2V0KG9yaWdpbikgYXMgYW55O1xyXG4gICAgY29uc3Qgcm91dGU6IHN0cmluZyA9IGVuZHBvaW50LnJvdXRlO1xyXG4gICAgY29uc3QgZGF0YTogVG9rZW5EYXRhID0gc3RyaW5nVG9Ub2tlbkRhdGEocm91dGUpO1xyXG4gICAgY29uc3Qga2V5czogS2V5W10gPSBbXTtcclxuICAgIGNvbnN0IHJlZ2V4cDogUmVnRXhwID0gdG9rZW5EYXRhVG9SZWdleHAoZGF0YSwga2V5cywge30pO1xyXG4gICAgaWYgKCFvcmlnaW5Db25maWcuaGFzKG1ldGhvZCkpIG9yaWdpbkNvbmZpZy5zZXQobWV0aG9kLCBbXSk7XHJcbiAgICBjb25zdCBtZXRob2RDb25maWc6IEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlW10gPSBvcmlnaW5Db25maWcuZ2V0KG1ldGhvZCkgYXMgYW55O1xyXG4gICAgbWV0aG9kQ29uZmlnLnB1c2goe1xyXG4gICAgICByZWdleHA6IHJlZ2V4cCxcclxuICAgICAga2V5czoga2V5cyxcclxuICAgICAgbWV0aG9kTW9jazogZXBbbWV0aG9kXSxcclxuICAgICAgY29uZmlnSWQ6IGNvbmZpZ0lkXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEByaXZhdGUgXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjaGVja09yaWdpbihvcmlnaW46IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKG9yaWdpbi5lbmRzV2l0aChERUZBVUxUX0RFTElNSVRFUikpIHRocm93IG5ldyBTeW50YXhFcnJvcihgT3JpZ2luIG11c3Qgbm90IGVuZCB3aXRoIGEgLyBjaGFyYWN0ZXI6IFtcIiR7b3JpZ2lufVwiXS5gKTtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQHJpdmF0ZSBcclxuICAgKi9cclxuICBwcml2YXRlIGRlbGV0ZUNvbmZpZ0J5SWQoc3RvcmFnZU1hcDogTWFwPHN0cmluZywgSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXT4sIGNvbmZpZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHN0b3JhZ2VNYXAuZm9yRWFjaCgoc3RvcmFnZTogSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXSwga2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgY2xlYW5lZENvbmZpZzogSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXSA9IHRoaXMuY2xlYW5Db25maWcoc3RvcmFnZSwgY29uZmlnSWQpO1xyXG4gICAgICBpZiAoY2xlYW5lZENvbmZpZy5sZW5ndGgpIHN0b3JhZ2VNYXAuc2V0KGtleSwgY2xlYW5lZENvbmZpZyk7XHJcbiAgICAgIGVsc2Ugc3RvcmFnZU1hcC5kZWxldGUoa2V5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHJpdmF0ZSBcclxuICAgKi9cclxuICBwcml2YXRlIGNsZWFuQ29uZmlnKHN0b3JhZ2U6IEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlW10sIGNvbmZpZ0lkOiBzdHJpbmcpOiBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZVtdIHtcclxuICAgIHJldHVybiBzdG9yYWdlLmZpbHRlcigodmFsdWU6IEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlKT0+IHZhbHVlLmNvbmZpZ0lkICE9PSBjb25maWdJZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
270
|
+
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
271
|
+
type: Inject,
|
|
272
|
+
args: [DOCUMENT]
|
|
273
|
+
}] }, { type: undefined, decorators: [{
|
|
274
|
+
type: Optional
|
|
275
|
+
}, {
|
|
276
|
+
type: Inject,
|
|
277
|
+
args: [HTTP_MOCKING_FRAMEWORK_CONFIG]
|
|
278
|
+
}] }] });
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb2NrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9zZXJ2aWNlL21vY2svaHR0cC9odHRwLW1vY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBeUUsNkJBQTZCLEVBQTRCLE1BQU0sbUJBQW1CLENBQUM7QUFDbkssT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBR3hHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFM0csT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRXpEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFXLGlCQUFpQixDQUFDO0FBYTNEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEscUJBQXFCO0lBZ0N4RDs7O09BR0c7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENB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QUFDO0lBQzFILENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLFVBQWtELEVBQUUsUUFBZ0I7UUFDM0YsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQWtDLEVBQUUsR0FBVyxFQUFFLEVBQUU7WUFDckUsTUFBTSxhQUFhLEdBQThCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3JGLElBQUksYUFBYSxDQUFDLE1BQU07Z0JBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7O2dCQUN4RCxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLE9BQWtDLEVBQUUsUUFBZ0I7UUFDdEUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBOEIsRUFBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztJQUN4RixDQUFDOzhHQWxQVSxlQUFlLGtCQStDTixRQUFRLGFBQTBDLDZCQUE2QjtrSEEvQ3hGLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBZ0RjLE1BQU07MkJBQUMsUUFBUTs7MEJBQXVCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpc0Rldk1vZGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cE1vY2tJbnRlcmNlcHRvciwgSHR0cE1vY2tDb25maWcsIEh0dHBNZXRob2RNb2NrLCBIdHRwTW9ja0VuZHBvaW50LCBIVFRQX01PQ0tJTkdfRlJBTUVXT1JLX0NPTkZJRywgSHR0cE1vY2tQcm9kdWN0aW9uUG9saWN5IH0gZnJvbSAnLi4vLi4vLi4vYnVzaW5lc3MnO1xyXG5pbXBvcnQgeyBIVFRQTWV0aG9kUmVmIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnJhbWV3b3JrL21vY2svaHR0cC91dGlsL2h0dHAtbWV0aG9kLXJlZi5lbnVtJztcclxuaW1wb3J0IHsgdG9rZW5EYXRhVG9SZWdleHAgfSBmcm9tICcuLi8uLi8uLi8uLi9mcmFtZXdvcmsvbW9jay9odHRwL3BhdGgtdG8tcmVnZXhwL3Rva2VuLWRhdGEtdG8tcmVnZXhwJztcclxuaW1wb3J0IHsgUm91dGVNb2NrQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnJhbWV3b3JrL21vY2svaHR0cC9jb25maWcvcm91dGUtbW9jay1jb25maWcnO1xyXG5pbXBvcnQgeyBLZXkgfSBmcm9tICcuLi8uLi8uLi8uLi9mcmFtZXdvcmsvbW9jay9odHRwL3BhdGgtdG8tcmVnZXhwL21vZGVsL2tleSc7XHJcbmltcG9ydCB7IHN0cmluZ1RvVG9rZW5EYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnJhbWV3b3JrL21vY2svaHR0cC9wYXRoLXRvLXJlZ2V4cC9zdHJpbmctdG8tdG9rZW4tZGF0YSc7XHJcbmltcG9ydCB7IERFRkFVTFRfREVMSU1JVEVSIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnJhbWV3b3JrL21vY2svaHR0cC9wYXRoLXRvLXJlZ2V4cC9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBVdWlkIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbCc7XHJcbmltcG9ydCB7IFRva2VuRGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL2ZyYW1ld29yay9tb2NrL2h0dHAvcGF0aC10by1yZWdleHAvdG9rZW4tZGF0YSc7XHJcbmltcG9ydCB7IEh0dHBNb2NrU2VydmljZUVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9lcnJvcic7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWdNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9odHRwLW1vY2tpbmctZnJhbWV3b3JrLWNvbmZpZy5tYW5hZ2VyJztcclxuaW1wb3J0IHsgSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWcgfSBmcm9tICcuLi8uLi8uLi9idXNpbmVzcy9tb2NrL2h0dHAvY29uZmlnL2h0dHAtbW9ja2luZy1mcmFtZXdvcmstY29uZmlnJztcclxuaW1wb3J0IHsgSWRlbnRpZmlhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZSc7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogUmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hbCB0eXBlIGZvciB0aGlzIGNsYXNzLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEhUVFBfTU9DS19TRVJWSUNFOiBzdHJpbmcgPSBcIkh0dHBNb2NrU2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEFuIGludGVybmFsIHV0aWxpdHkgZm9yIHN0b3JyaW5nIHJlZmVyZW5jZXMgdG8gZW5kcG9pbnQgbW9jayBjb25maWdzLlxyXG4gKi9cclxuaW50ZXJmYWNlIEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlIHtcclxuICBtZXRob2RNb2NrOiBIdHRwTWV0aG9kTW9jaztcclxuICByZWdleHA6IFJlZ0V4cDtcclxuICBrZXlzOiBLZXlbXTtcclxuICBjb25maWdJZDogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIGBIdHRwTW9ja1NlcnZpY2VgIGNsYXNzIHByb3ZpZGVzIHRoZSBBUEkgZm9yIG1hbmFnaW5nIEhUVFAgbW9jayBjb25maWd1cmF0aW9uIG9iamVjdHMuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIdHRwTW9ja1NlcnZpY2UgZXh0ZW5kcyBJZGVudGlmaWFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEVuc3VyZXMgdGhhdCBjbGFzcyB0eXBlIGlzIHN0aWxsIGFjY2Vzc2libGUgYWZ0ZXIgVHlwZVNjcmlwdCBjb21waWxhdGlvbi5cclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gSFRUUF9NT0NLX1NFUlZJQ0U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogVGhlIGxpc3Qgb2YgSURzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGNvbmZpZyBvYmplY3QuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfY29uZmlnSWRMaXN0OiBVdWlkW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBTdG9yZXMgdGhlIGNvbXBsZXRlIGNvbGxlY3Rpb24gb2YgbW9ja2luZyBiZWhhdmlvcnMgZm9yIGVhY2ggcmVnaXN0ZXJlZCBjb25maWcuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfY29uZmlnTGlzdDogTWFwPHN0cmluZywgTWFwPHN0cmluZywgSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXT4+ID0gbmV3IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlW10+PigpO1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIFRoZSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYXBwIFVSTCBvcmlnaW4uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBBUFBfT1JJR0lOOiBzdHJpbmcgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIFRoZSByZWZlcmVuY2UgdG8gdGhlIMOoSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWdNYW5hZ2VyYCBpbnN0YW5jZS5cclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWdNbWFuYWdlcjogSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWdNYW5hZ2VyO1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB2cmVmZXJlbmNlIHRvIHRoZSBgSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWdNYW5hZ2VyYCBpbnN0YW5jZSxcclxuICAgKiBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZXJ2aWNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgY29uZmlnTW1hbmFnZXIoKTogSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWdNYW5hZ2VyIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25maWdNbWFuYWdlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBgSHR0cE1vY2tTZXJ2aWNlYCBpbnN0YW5jZS5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gX2RvY3VtZW50IFRoZSByZWZlcmVuY2UgdG8gdGhlIGFwcCBkb2N1bWVudC5cclxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBvcHRpb25hbCBjb25maWcgcHJvdmlkZXIgZm9yIHRoZSBIVFRQIE1vY2tpbmcgRnJhbWV3b3JrLlxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBEb2N1bWVudCwgQE9wdGlvbmFsKCkgQEluamVjdChIVFRQX01PQ0tJTkdfRlJBTUVXT1JLX0NPTkZJRykgY29uZmlnOiBIdHRwTW9ja2luZ0ZyYW1ld29ya0NvbmZpZykge1xyXG4gICAgc3VwZXIoSFRUUF9NT0NLX1NFUlZJQ0UpO1xyXG4gICAgdGhpcy5fY29uZmlnTW1hbmFnZXIgPSBuZXcgSHR0cE1vY2tpbmdGcmFtZXdvcmtDb25maWdNYW5hZ2VyKGRvY3VtZW50LCBpc0Rldk1vZGUoKSwgY29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29uZmlnTW1hbmFnZXIuY2hlY2tQb2xpY3koKTtcclxuICAgIHRoaXMuX2NvbmZpZ01tYW5hZ2VyLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgdGhlIHNwZWNpZmllZCBgSHR0cE1vY2tDb25maWdgIG9iamVjdCB0byB0aGlzIGBIdHRwTW9ja1NlcnZpY2VgIGluc3RhbmNlLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGBIdHRwTW9ja0NvbmZpZ2Agb2JqZWN0IHRvIGFkZCB0byB0aGlzIGBIdHRwTW9ja1NlcnZpY2VgIGluc3RhbmNlLlxyXG4gICAqIEBSZXR1cm5zIFRoZSBgVXVpZGAgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBhZGRlZCBgSHR0cE1vY2tDb25maWdgIG9iamVjdC5cclxuICAgKi9cclxuICBwdWJsaWMgYWRkQ29uZmlnKGNvbmZpZzogSHR0cE1vY2tDb25maWcpOiBVdWlkIHtcclxuICAgIGNvbnN0IG9yaWdpbjogc3RyaW5nID0gY29uZmlnLm9yaWdpbiB8fCB0aGlzLkFQUF9PUklHSU47XHJcbiAgICB0aGlzLl9jb25maWdNbWFuYWdlci5jaGVja1BvbGljeSgpO1xyXG4gICAgdGhpcy5jaGVja09yaWdpbihvcmlnaW4pO1xyXG4gICAgbGV0IGlkOiBVdWlkIHwgdW5kZWZpbmVkID0gY29uZmlnLmlkO1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICBpZCA9IFV1aWQuYnVpbGQoKTtcclxuICAgICAgY29uZmlnLmlkID0gaWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5oYXNSZWdpc3RlcmVkQ29uZmlnKGlkKSkgdGhyb3cgbmV3IEh0dHBNb2NrU2VydmljZUVycm9yKGBBIGNvbmZpZyBvYmplY3QgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIHdpdGggdGhlIGlkOiBbXCIke2lkLnRvU3RyaW5nKCl9XCJdLmApIDtcclxuICAgIH1cclxuICAgIHRoaXMuX2NvbmZpZ0lkTGlzdC5wdXNoKGlkKTtcclxuICAgIGNvbnN0IHV1aWQ6IHN0cmluZyA9IGlkLnRvU3RyaW5nKCk7XHJcbiAgICBjb25maWcuaW50ZXJjZXB0b3JzLmZvckVhY2goKGludGVyY2VwdG9yOiBIdHRwTW9ja0ludGVyY2VwdG9yKSA9PiB0aGlzLmV4dHJhY3RDb25maWcoaW50ZXJjZXB0b3IsIG9yaWdpbiwgdXVpZCkgKTtcclxuICAgIHJldHVybiBpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYXBwIFVSTCBvcmlnaW4uXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgQSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJyZW50IGFwcCBVUkwgb3JpZ2luLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRBcHBPcmlnaW4oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLkFQUF9PUklHSU47XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjb25maWd1cmF0aW9uIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGB1dWlkYCBmcm9tIHRoaXMgYEh0dHBNb2NrU2VydmljZWAgaW5zdGFuY2UuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHV1aWQgVGhlIFVVSUQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gdG8gcmVtb3ZlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVDb25maWcodXVpZDogVXVpZCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29uZmlnTW1hbmFnZXIuY2hlY2tQb2xpY3koKTtcclxuICAgIGlmICghdGhpcy5oYXNSZWdpc3RlcmVkQ29uZmlnKHV1aWQpKSByZXR1cm47XHJcbiAgICBjb25zdCBjb25maWdJZDogc3RyaW5nID0gdXVpZC50b1N0cmluZygpO1xyXG4gICAgdGhpcy5fY29uZmlnTGlzdC5mb3JFYWNoKCh2YWx1ZTogTWFwPHN0cmluZywgSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXT4sIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVsZXRlQ29uZmlnQnlJZCh2YWx1ZSwgY29uZmlnSWQpO1xyXG4gICAgICBpZiAodmFsdWUuc2l6ZSA9PT0gMCkgdGhpcy5fY29uZmlnTGlzdC5kZWxldGUoa2V5KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fY29uZmlnSWRMaXN0LnNwbGljZSh0aGlzLl9jb25maWdJZExpc3QuaW5kZXhPZih1dWlkKSwgMSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGFsbCByZWdpc3RyZWQgY29uZmlndXJhdGlvbnMgZnJvbSB0aGlzIGBIdHRwTW9ja1NlcnZpY2VgIGluc3RhbmNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjbGVhckNvbmZpZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb25maWdNbWFuYWdlci5jaGVja1BvbGljeSgpO1xyXG4gICAgdGhpcy5fY29uZmlnTGlzdC5jbGVhcigpO1xyXG4gICAgdGhpcy5fY29uZmlnSWRMaXN0Lmxlbmd0aCA9IDA7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBib29sZWFuIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgYSBjb25maWcgd2l0aCB0aGUgc3BlY2lmaWVkIFVVSUQgaGFzIGJlZW4gcmVnaXN0ZXJlZFxyXG4gICAqIChgdHJ1ZWApLCBvciBub3QgKGBmYWxzZWApLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB1dWlkIFRoZSBVVUlEIG9mIHRoZSBjb25maWcgdG8gY2hlY2suXHJcbiAgICogQHJldHVybnMgYHRydWVgIHdoZXRoZXIgYSBjb25maWcgd2l0aCB0aGUgc3BlY2lmaWVkIFVVSUQgaGFzIGJlZW4gcmVnaXN0ZXJlZDsgYGZhbHNlYCBvdGhlcndpc2UuXHJcbiAgICovXHJcbiAgcHVibGljIGhhc1JlZ2lzdGVyZWRDb25maWcodXVpZDogVXVpZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ0lkTGlzdC5pbmRleE9mKHV1aWQpICE9PSAtMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGBSb3V0ZU1vY2tDb25maWdgIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBgVVJMYCBpbnN0YW5jZSBhbmQgSFRUUCBtZXRob2QuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHVybCBUaGUgYFVSTGAgaW5zdGFuY2UgZm9yIHdoaWNoIHRvIGZpbmQgYSByb3V0ZSBjb25maWcuXHJcbiAgICogQHBhcmFtIG1ldGhvZCBUaGUgSFRUUCBtZXRob2QgZm9yIHdoaWNoIHRvIGZpbmQgYSByb3V0ZSBjb25maWcuXHJcbiAgICogQHJldHVybnMgVGhlIGBSb3V0ZU1vY2tDb25maWdgIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBgVVJMYCBpbnN0YW5jZSBhbmQgSFRUUCBtZXRob2Qgd2hldGhlciBpdCBleGlzdHM7XHJcbiAgICogICAgICAgICAgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRSb3V0ZUNvbmZpZyh1cmw6IFVSTCwgbWV0aG9kOiBIVFRQTWV0aG9kUmVmKTogUm91dGVNb2NrQ29uZmlnIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IHVybENvbmZpZ0xpc3Q6IE1hcDxzdHJpbmcsIEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlW10+IHwgdW5kZWZpbmVkID0gdGhpcy5fY29uZmlnTGlzdC5nZXQodXJsLm9yaWdpbik7XHJcbiAgICBjb25zdCByb3V0ZTogc3RyaW5nID0gdXJsLnBhdGhuYW1lO1xyXG4gICAgdGhpcy5fY29uZmlnTW1hbmFnZXIuY2hlY2tQb2xpY3kocm91dGUsIG1ldGhvZCk7XHJcbiAgICBsZXQgcmVzdWx0OiBSb3V0ZU1vY2tDb25maWcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiAoIXVybENvbmZpZ0xpc3QpIHJldHVybiByZXN1bHQ7XHJcbiAgICBjb25zdCBtZXRob2RMaXN0OiBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZVtdIHwgdW5kZWZpbmVkID0gdXJsQ29uZmlnTGlzdC5nZXQobWV0aG9kKTtcclxuICAgIGlmICghbWV0aG9kTGlzdCkgcmV0dXJuIHJlc3VsdDtcclxuICAgIGxldCBsZW46IG51bWJlciA9IG1ldGhvZExpc3QubGVuZ3RoIC0gMTtcclxuICAgIHdoaWxlIChsZW4gPj0gMCApIHtcclxuICAgICAgY29uc3QgbWV0aG9kTWFwOiBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZSA9IG1ldGhvZExpc3RbbGVuXTtcclxuICAgICAgY29uc3QgcmVnZXhwOiBSZWdFeHAgPSBtZXRob2RNYXAucmVnZXhwO1xyXG4gICAgICBpZiAocmVnZXhwLnRlc3Qocm91dGUpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgbWV0aG9kQ29uZmlnOiBtZXRob2RNYXAubWV0aG9kTW9jayxcclxuICAgICAgICAgIHBhcmFtZXRlcnM6IHRoaXMuYnVpbGRQYXJhbWV0ZXJzKHJlZ2V4cCwgbWV0aG9kTWFwLmtleXMsIHJvdXRlKSxcclxuICAgICAgICAgIHNlYXJjaFBhcmFtczogdXJsLnNlYXJjaFBhcmFtc1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgbGVuLS07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHJpdmF0ZSBcclxuICAgKi9cclxuICBwcml2YXRlIGJ1aWxkUGFyYW1ldGVycyhyZWdleHA6IFJlZ0V4cCwga2V5czogS2V5W10sIHJvdXRlOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgZXhlY1Jlc3VsdDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IHJlZ2V4cC5leGVjKHJvdXRlKTtcclxuICAgIGlmICghZXhlY1Jlc3VsdCkgcmV0dXJuIG51bGw7XHJcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHt9O1xyXG4gICAgbGV0IGxlbjogbnVtYmVyID0gZXhlY1Jlc3VsdC5sZW5ndGggLSAxO1xyXG4gICAgbGV0IGk6IG51bWJlciA9IDE7XHJcbiAgICBmb3IgKDsgaSA8PSBsZW47ICsraSkge1xyXG4gICAgICBjb25zdCBrZXk6IEtleSA9IGtleXNbaSAtIDFdO1xyXG4gICAgICBwYXJhbXNba2V5Lm5hbWVdID0gZXhlY1Jlc3VsdFtpXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcml2YXRlIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZXh0cmFjdENvbmZpZyhpbnRlcmNlcHRvcjogSHR0cE1vY2tJbnRlcmNlcHRvciwgZ2xvYmFsT3JpZ2luOiBzdHJpbmcsIGNvbmZpZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVuZHBvaW50czogSHR0cE1vY2tFbmRwb2ludFtdID0gaW50ZXJjZXB0b3IuZW5kcG9pbnRzO1xyXG4gICAgbGV0IG9yaWdpbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gaW50ZXJjZXB0b3Iub3JpZ2luO1xyXG4gICAgaWYgKG9yaWdpbikgdGhpcy5jaGVja09yaWdpbihvcmlnaW4pO1xyXG4gICAgZWxzZSBvcmlnaW4gPSBnbG9iYWxPcmlnaW47XHJcbiAgICBpZiAoIXRoaXMuX2NvbmZpZ0xpc3QuaGFzKG9yaWdpbikpIHRoaXMuX2NvbmZpZ0xpc3Quc2V0KG9yaWdpbiwgbmV3IE1hcDxzdHJpbmcsIEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlW10+KCkpO1xyXG4gICAgZW5kcG9pbnRzLmZvckVhY2goKGVuZHBvaW50OiBIdHRwTW9ja0VuZHBvaW50KSA9PiB7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEVuZHBvaW50Q29uZmlnKG9yaWdpbiwgZW5kcG9pbnQsIEhUVFBNZXRob2RSZWYuR0VULCBjb25maWdJZCk7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEVuZHBvaW50Q29uZmlnKG9yaWdpbiwgZW5kcG9pbnQsIEhUVFBNZXRob2RSZWYuUE9TVCwgY29uZmlnSWQpO1xyXG4gICAgICB0aGlzLmV4dHJhY3RFbmRwb2ludENvbmZpZyhvcmlnaW4sIGVuZHBvaW50LCBIVFRQTWV0aG9kUmVmLlBVVCwgY29uZmlnSWQpO1xyXG4gICAgICB0aGlzLmV4dHJhY3RFbmRwb2ludENvbmZpZyhvcmlnaW4sIGVuZHBvaW50LCBIVFRQTWV0aG9kUmVmLkRFTEVURSwgY29uZmlnSWQpO1xyXG4gICAgICB0aGlzLmV4dHJhY3RFbmRwb2ludENvbmZpZyhvcmlnaW4sIGVuZHBvaW50LCBIVFRQTWV0aG9kUmVmLkhFQUQsIGNvbmZpZ0lkKTtcclxuICAgICAgdGhpcy5leHRyYWN0RW5kcG9pbnRDb25maWcob3JpZ2luLCBlbmRwb2ludCwgSFRUUE1ldGhvZFJlZi5PUFRJT05TLCBjb25maWdJZCk7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEVuZHBvaW50Q29uZmlnKG9yaWdpbiwgZW5kcG9pbnQsIEhUVFBNZXRob2RSZWYuUEFUQ0gsIGNvbmZpZ0lkKTtcclxuICAgICAgdGhpcy5leHRyYWN0RW5kcG9pbnRDb25maWcob3JpZ2luLCBlbmRwb2ludCwgSFRUUE1ldGhvZFJlZi5DT05ORUNULCBjb25maWdJZCk7XHJcbiAgICAgIHRoaXMuZXh0cmFjdEVuZHBvaW50Q29uZmlnKG9yaWdpbiwgZW5kcG9pbnQsIEhUVFBNZXRob2RSZWYuVFJBQ0UsIGNvbmZpZ0lkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHJpdmF0ZSBcclxuICAgKi9cclxuICBwcml2YXRlIGV4dHJhY3RFbmRwb2ludENvbmZpZyhvcmlnaW46IHN0cmluZywgZW5kcG9pbnQ6IEh0dHBNb2NrRW5kcG9pbnQsIG1ldGhvZDogSFRUUE1ldGhvZFJlZiwgY29uZmlnSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZXA6IGFueSA9IGVuZHBvaW50O1xyXG4gICAgaWYgKCFlcFttZXRob2QgYXMgYW55XSkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb3JpZ2luQ29uZmlnOiBNYXA8c3RyaW5nLCBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZVtdPiA9IHRoaXMuX2NvbmZpZ0xpc3QuZ2V0KG9yaWdpbikgYXMgYW55O1xyXG4gICAgY29uc3Qgcm91dGU6IHN0cmluZyA9IGVuZHBvaW50LnJvdXRlO1xyXG4gICAgY29uc3QgZGF0YTogVG9rZW5EYXRhID0gc3RyaW5nVG9Ub2tlbkRhdGEocm91dGUpO1xyXG4gICAgY29uc3Qga2V5czogS2V5W10gPSBbXTtcclxuICAgIGNvbnN0IHJlZ2V4cDogUmVnRXhwID0gdG9rZW5EYXRhVG9SZWdleHAoZGF0YSwga2V5cywge30pO1xyXG4gICAgaWYgKCFvcmlnaW5Db25maWcuaGFzKG1ldGhvZCkpIG9yaWdpbkNvbmZpZy5zZXQobWV0aG9kLCBbXSk7XHJcbiAgICBjb25zdCBtZXRob2RDb25maWc6IEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlW10gPSBvcmlnaW5Db25maWcuZ2V0KG1ldGhvZCkgYXMgYW55O1xyXG4gICAgbWV0aG9kQ29uZmlnLnB1c2goe1xyXG4gICAgICByZWdleHA6IHJlZ2V4cCxcclxuICAgICAga2V5czoga2V5cyxcclxuICAgICAgbWV0aG9kTW9jazogZXBbbWV0aG9kXSxcclxuICAgICAgY29uZmlnSWQ6IGNvbmZpZ0lkXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEByaXZhdGUgXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjaGVja09yaWdpbihvcmlnaW46IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKG9yaWdpbi5lbmRzV2l0aChERUZBVUxUX0RFTElNSVRFUikpIHRocm93IG5ldyBTeW50YXhFcnJvcihgT3JpZ2luIG11c3Qgbm90IGVuZCB3aXRoIGEgLyBjaGFyYWN0ZXI6IFtcIiR7b3JpZ2lufVwiXS5gKTtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQHJpdmF0ZSBcclxuICAgKi9cclxuICBwcml2YXRlIGRlbGV0ZUNvbmZpZ0J5SWQoc3RvcmFnZU1hcDogTWFwPHN0cmluZywgSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXT4sIGNvbmZpZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHN0b3JhZ2VNYXAuZm9yRWFjaCgoc3RvcmFnZTogSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXSwga2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgY2xlYW5lZENvbmZpZzogSHR0cE1vY2tFbmRwb2ludFN0b3JhZ2VbXSA9IHRoaXMuY2xlYW5Db25maWcoc3RvcmFnZSwgY29uZmlnSWQpO1xyXG4gICAgICBpZiAoY2xlYW5lZENvbmZpZy5sZW5ndGgpIHN0b3JhZ2VNYXAuc2V0KGtleSwgY2xlYW5lZENvbmZpZyk7XHJcbiAgICAgIGVsc2Ugc3RvcmFnZU1hcC5kZWxldGUoa2V5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHJpdmF0ZSBcclxuICAgKi9cclxuICBwcml2YXRlIGNsZWFuQ29uZmlnKHN0b3JhZ2U6IEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlW10sIGNvbmZpZ0lkOiBzdHJpbmcpOiBIdHRwTW9ja0VuZHBvaW50U3RvcmFnZVtdIHtcclxuICAgIHJldHVybiBzdG9yYWdlLmZpbHRlcigodmFsdWU6IEh0dHBNb2NrRW5kcG9pbnRTdG9yYWdlKT0+IHZhbHVlLmNvbmZpZ0lkICE9PSBjb25maWdJZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -15,8 +15,8 @@ import * as i0 from "@angular/core";
|
|
|
15
15
|
const LAYERS_VERSION_CONFIG = {
|
|
16
16
|
major: 0,
|
|
17
17
|
minor: 11,
|
|
18
|
-
patch:
|
|
19
|
-
buildTimestamp:
|
|
18
|
+
patch: 3,
|
|
19
|
+
buildTimestamp: 1722599248501,
|
|
20
20
|
metadata: "beta"
|
|
21
21
|
};
|
|
22
22
|
/**
|
|
@@ -35,4 +35,4 @@ export class AngularToolboxVersionService extends AbstractVersionManager {
|
|
|
35
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxVersionService, decorators: [{
|
|
36
36
|
type: Injectable
|
|
37
37
|
}], ctorParameters: () => [] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10b29sYm94LXZlcnNpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL21vZGVsL3NlcnZpY2UvdmVyc2lvbi9hbmd1bGFyLXRvb2xib3gtdmVyc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd2RDs7O0dBR0c7QUFDSCxNQUFNLHFCQUFxQixHQUFrQjtJQUMzQyxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxFQUFFO0lBQ1QsS0FBSyxFQUFFLENBQUM7SUFDUixjQUFjLEVBQUUsYUFBYTtJQUM3QixRQUFRLEVBQUUsTUFBTTtDQUNqQixDQUFDO0FBRUY7O0dBRUc7QUFFSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsc0JBQXNCO0lBRXRFOztPQUVHO0lBQ0g7UUFDRSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQVBVLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFZlcnNpb25NYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBWZXJzaW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vYnVzaW5lc3MnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBUaGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBBbmd1bGFyIFRvb2xib3ggbGlicmFyeS5cbiAqL1xuY29uc3QgTEFZRVJTX1ZFUlNJT05fQ09ORklHOiBWZXJzaW9uQ29uZmlnID0ge1xuICBtYWpvcjogMCxcbiAgbWlub3I6IDExLFxuICBwYXRjaDogMyxcbiAgYnVpbGRUaW1lc3RhbXA6IDE3MjI1OTkyNDg1MDEsXG4gIG1ldGFkYXRhOiBcImJldGFcIlxufTtcblxuLyoqXG4gKiBUaGUgcHVibGljIHNlcnZpY2UgdGhhdCBleHBvc2VzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIEFuZ3VsYXIgVG9vbGJveCBsaWJyYXJ5LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW5ndWxhclRvb2xib3hWZXJzaW9uU2VydmljZSBleHRlbmRzIEFic3RyYWN0VmVyc2lvbk1hbmFnZXIge1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoTEFZRVJTX1ZFUlNJT05fQ09ORklHKTtcbiAgfVxufVxuIl19
|
|
@@ -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
|