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,87 @@
|
|
|
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
|
+
* This source code is derived from the following original source code:
|
|
9
|
+
* - https://github.com/pillarjs/path-to-regexp
|
|
10
|
+
* - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
|
|
11
|
+
*
|
|
12
|
+
* Use of the original source code is governed by an MIT-style license
|
|
13
|
+
* that can be found in the LICENSE file at
|
|
14
|
+
* https://github.com/pillarjs/path-to-regexp/blob/master/LICENSE
|
|
15
|
+
*/
|
|
16
|
+
import { EMPTY_STRING } from "../../../../util";
|
|
17
|
+
import { ASTERISK, RIGHT_CURLY_BRACE, DEFAULT_DELIMITER, END, NAME, LEFT_CURLY_BRACE, PATTERN, SEMI_COLON } from "./constants";
|
|
18
|
+
import { TokenData } from "./token-data";
|
|
19
|
+
import { lexer } from "./lexer";
|
|
20
|
+
/**
|
|
21
|
+
* @private
|
|
22
|
+
* A NOOP `Endoder` function.
|
|
23
|
+
* @param value The input string value.
|
|
24
|
+
* @returns The input string value.
|
|
25
|
+
*/
|
|
26
|
+
const NOOP_VALUE = (value) => value;
|
|
27
|
+
/**
|
|
28
|
+
* @private
|
|
29
|
+
* Parse a string for the raw tokens.
|
|
30
|
+
*/
|
|
31
|
+
export const stringToTokenData = (str, options = {}) => {
|
|
32
|
+
const { delimiter = DEFAULT_DELIMITER, encodePath = NOOP_VALUE, } = options;
|
|
33
|
+
const tokens = [];
|
|
34
|
+
const it = lexer(str);
|
|
35
|
+
let keyIndex = 0;
|
|
36
|
+
do {
|
|
37
|
+
const path = it.text();
|
|
38
|
+
if (path)
|
|
39
|
+
tokens.push(encodePath(path));
|
|
40
|
+
const name = it.tryConsume(NAME);
|
|
41
|
+
const pattern = it.tryConsume(PATTERN);
|
|
42
|
+
if (name || pattern) {
|
|
43
|
+
tokens.push({
|
|
44
|
+
name: name || String(keyIndex++),
|
|
45
|
+
pattern,
|
|
46
|
+
});
|
|
47
|
+
const next = it.peek();
|
|
48
|
+
if (next.type === ASTERISK) {
|
|
49
|
+
throw new TypeError(`Unexpected * at ${next.index}, you probably want \`/*\` or \`{/:foo}*\`: https://git.new/pathToRegexpError`);
|
|
50
|
+
}
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const asterisk = it.tryConsume(ASTERISK);
|
|
54
|
+
if (asterisk) {
|
|
55
|
+
tokens.push({
|
|
56
|
+
name: String(keyIndex++),
|
|
57
|
+
pattern: `[^${escape(delimiter)}]*`,
|
|
58
|
+
modifier: ASTERISK,
|
|
59
|
+
separator: delimiter,
|
|
60
|
+
});
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const open = it.tryConsume(LEFT_CURLY_BRACE);
|
|
64
|
+
if (open) {
|
|
65
|
+
const prefix = it.text();
|
|
66
|
+
const name = it.tryConsume(NAME);
|
|
67
|
+
const pattern = it.tryConsume(PATTERN);
|
|
68
|
+
const suffix = it.text();
|
|
69
|
+
const separator = it.tryConsume(SEMI_COLON) ? it.text() : prefix + suffix;
|
|
70
|
+
it.consume(RIGHT_CURLY_BRACE);
|
|
71
|
+
const modifier = it.modifier();
|
|
72
|
+
tokens.push({
|
|
73
|
+
name: name || (pattern ? String(keyIndex++) : EMPTY_STRING),
|
|
74
|
+
prefix: encodePath(prefix),
|
|
75
|
+
suffix: encodePath(suffix),
|
|
76
|
+
pattern,
|
|
77
|
+
modifier,
|
|
78
|
+
separator,
|
|
79
|
+
});
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
it.consume(END);
|
|
83
|
+
break;
|
|
84
|
+
} while (true);
|
|
85
|
+
return new TokenData(tokens, delimiter);
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXRvLXRva2VuLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3BhdGgtdG8tcmVnZXhwL3N0cmluZy10by10b2tlbi1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSS9ILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUtoQzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxHQUFXLENBQUMsS0FBYSxFQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUM7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQXlCLENBQUMsR0FBVyxFQUFFLFVBQXdCLEVBQUUsRUFBYSxFQUFFO0lBQzVHLE1BQU0sRUFDSixTQUFTLEdBQUcsaUJBQWlCLEVBQzdCLFVBQVUsR0FBRyxVQUFVLEdBQ3hCLEdBQUcsT0FBTyxDQUFDO0lBQ1osTUFBTSxNQUFNLEdBQVksRUFBRSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxHQUFTLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7SUFFekIsR0FBRyxDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksSUFBSTtZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQXVCLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQXVCLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixJQUFJLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsT0FBTzthQUNSLENBQUMsQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxTQUFTLENBQ2pCLG1CQUFtQixJQUFJLENBQUMsS0FBSywrRUFBK0UsQ0FDN0csQ0FBQztZQUNKLENBQUM7WUFDRCxTQUFTO1FBQ1gsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxFQUFFLEtBQUssTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJO2dCQUNuQyxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFLFNBQVM7YUFDckIsQ0FBQyxDQUFDO1lBQ0gsU0FBUztRQUNYLENBQUM7UUFFRCxNQUFNLElBQUksR0FBdUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQXVCLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckQsTUFBTSxPQUFPLEdBQXVCLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0QsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUF1QixFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFFOUYsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBRTlCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUUvQixNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNWLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQzNELE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUMxQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsT0FBTztnQkFDUCxRQUFRO2dCQUNSLFNBQVM7YUFDVixDQUFDLENBQUM7WUFDSCxTQUFTO1FBQ1gsQ0FBQztRQUVELEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEIsTUFBTTtJQUNSLENBQUMsUUFBUSxJQUFJLEVBQUU7SUFFZixPQUFPLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZyBvcmlnaW5hbCBzb3VyY2UgY29kZTpcclxuICogLSBodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHBcclxuICogLSBDb3B5cmlnaHQgKGMpIDIwMTQgQmxha2UgRW1icmV5IChoZWxsb0BibGFrZWVtYnJleS5jb20pXHJcbiAqIFxyXG4gKiBVc2Ugb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIFxyXG4gKiB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9waWxsYXJqcy9wYXRoLXRvLXJlZ2V4cC9ibG9iL21hc3Rlci9MSUNFTlNFXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxcIjtcclxuaW1wb3J0IHsgQVNURVJJU0ssIFJJR0hUX0NVUkxZX0JSQUNFLCBERUZBVUxUX0RFTElNSVRFUiwgRU5ELCBOQU1FLCBMRUZUX0NVUkxZX0JSQUNFLCBQQVRURVJOLCBTRU1JX0NPTE9OIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEl0ZXIgfSBmcm9tIFwiLi9pdGVyXCI7XHJcbmltcG9ydCB7IFBhcnNlT3B0aW9ucyB9IGZyb20gXCIuL21vZGVsL3BhcnNlLW9wdGlvbnNcIjtcclxuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiLi9tb2RlbC90b2tlblwiO1xyXG5pbXBvcnQgeyBUb2tlbkRhdGEgfSBmcm9tIFwiLi90b2tlbi1kYXRhXCI7XHJcbmltcG9ydCB7IGxleGVyIH0gZnJvbSBcIi4vbGV4ZXJcIjtcclxuaW1wb3J0IHsgRW5jb2RlIH0gZnJvbSBcIi4vbW9kZWwvZW5jb2RlXCI7XHJcbmltcG9ydCB7IFJvdXRlU3RyaW5nVG9rZW5pemVyIH0gZnJvbSBcIi4vbW9kZWwvcm91dGUtc3RyaW5nLXRva2VuaXplclwiO1xyXG5pbXBvcnQgeyBMZXhUb2tlbiB9IGZyb20gXCIuL21vZGVsL2xleC10b2tlblwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEEgTk9PUCBgRW5kb2RlcmAgZnVuY3Rpb24uXHJcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgaW5wdXQgc3RyaW5nIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBUaGUgaW5wdXQgc3RyaW5nIHZhbHVlLlxyXG4gKi9cclxuY29uc3QgTk9PUF9WQUxVRTogRW5jb2RlID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4gdmFsdWU7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogUGFyc2UgYSBzdHJpbmcgZm9yIHRoZSByYXcgdG9rZW5zLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHN0cmluZ1RvVG9rZW5EYXRhOiBSb3V0ZVN0cmluZ1Rva2VuaXplciA9IChzdHI6IHN0cmluZywgb3B0aW9uczogUGFyc2VPcHRpb25zID0ge30pOiBUb2tlbkRhdGEgPT4ge1xyXG4gIGNvbnN0IHtcclxuICAgIGRlbGltaXRlciA9IERFRkFVTFRfREVMSU1JVEVSLFxyXG4gICAgZW5jb2RlUGF0aCA9IE5PT1BfVkFMVUUsXHJcbiAgfSA9IG9wdGlvbnM7XHJcbiAgY29uc3QgdG9rZW5zOiBUb2tlbltdID0gW107XHJcbiAgY29uc3QgaXQ6IEl0ZXIgPSBsZXhlcihzdHIpO1xyXG4gIGxldCBrZXlJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgZG8ge1xyXG4gICAgY29uc3QgcGF0aDogc3RyaW5nID0gaXQudGV4dCgpO1xyXG4gICAgaWYgKHBhdGgpIHRva2Vucy5wdXNoKGVuY29kZVBhdGgocGF0aCkpO1xyXG4gICAgY29uc3QgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gaXQudHJ5Q29uc3VtZShOQU1FKTtcclxuICAgIGNvbnN0IHBhdHRlcm46IHN0cmluZyB8IHVuZGVmaW5lZCA9IGl0LnRyeUNvbnN1bWUoUEFUVEVSTik7XHJcbiAgICBpZiAobmFtZSB8fCBwYXR0ZXJuKSB7XHJcbiAgICAgIHRva2Vucy5wdXNoKHtcclxuICAgICAgICBuYW1lOiBuYW1lIHx8IFN0cmluZyhrZXlJbmRleCsrKSxcclxuICAgICAgICBwYXR0ZXJuLFxyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgbmV4dDogTGV4VG9rZW4gPSBpdC5wZWVrKCk7XHJcbiAgICAgIGlmIChuZXh0LnR5cGUgPT09IEFTVEVSSVNLKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcclxuICAgICAgICAgIGBVbmV4cGVjdGVkICogYXQgJHtuZXh0LmluZGV4fSwgeW91IHByb2JhYmx5IHdhbnQgXFxgLypcXGAgb3IgXFxgey86Zm9vfSpcXGA6IGh0dHBzOi8vZ2l0Lm5ldy9wYXRoVG9SZWdleHBFcnJvcmAsXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBjb250aW51ZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGFzdGVyaXNrID0gaXQudHJ5Q29uc3VtZShBU1RFUklTSyk7XHJcbiAgICBpZiAoYXN0ZXJpc2spIHtcclxuICAgICAgdG9rZW5zLnB1c2goe1xyXG4gICAgICAgIG5hbWU6IFN0cmluZyhrZXlJbmRleCsrKSxcclxuICAgICAgICBwYXR0ZXJuOiBgW14ke2VzY2FwZShkZWxpbWl0ZXIpfV0qYCxcclxuICAgICAgICBtb2RpZmllcjogQVNURVJJU0ssXHJcbiAgICAgICAgc2VwYXJhdG9yOiBkZWxpbWl0ZXIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb250aW51ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcGVuOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBpdC50cnlDb25zdW1lKExFRlRfQ1VSTFlfQlJBQ0UpO1xyXG4gICAgaWYgKG9wZW4pIHtcclxuICAgICAgY29uc3QgcHJlZml4OiBzdHJpbmcgPSBpdC50ZXh0KCk7XHJcbiAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGl0LnRyeUNvbnN1bWUoTkFNRSk7XHJcbiAgICAgIGNvbnN0IHBhdHRlcm46IHN0cmluZyB8IHVuZGVmaW5lZCA9IGl0LnRyeUNvbnN1bWUoUEFUVEVSTik7XHJcbiAgICAgIGNvbnN0IHN1ZmZpeDogc3RyaW5nID0gaXQudGV4dCgpO1xyXG4gICAgICBjb25zdCBzZXBhcmF0b3I6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGl0LnRyeUNvbnN1bWUoU0VNSV9DT0xPTikgPyBpdC50ZXh0KCkgOiBwcmVmaXggKyBzdWZmaXg7XHJcblxyXG4gICAgICBpdC5jb25zdW1lKFJJR0hUX0NVUkxZX0JSQUNFKTtcclxuXHJcbiAgICAgIGNvbnN0IG1vZGlmaWVyID0gaXQubW9kaWZpZXIoKTtcclxuXHJcbiAgICAgIHRva2Vucy5wdXNoKHtcclxuICAgICAgICBuYW1lOiBuYW1lIHx8IChwYXR0ZXJuID8gU3RyaW5nKGtleUluZGV4KyspIDogRU1QVFlfU1RSSU5HKSxcclxuICAgICAgICBwcmVmaXg6IGVuY29kZVBhdGgocHJlZml4KSxcclxuICAgICAgICBzdWZmaXg6IGVuY29kZVBhdGgoc3VmZml4KSxcclxuICAgICAgICBwYXR0ZXJuLFxyXG4gICAgICAgIG1vZGlmaWVyLFxyXG4gICAgICAgIHNlcGFyYXRvcixcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnRpbnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGl0LmNvbnN1bWUoRU5EKTtcclxuICAgIGJyZWFrO1xyXG4gIH0gd2hpbGUgKHRydWUpO1xyXG5cclxuICByZXR1cm4gbmV3IFRva2VuRGF0YSh0b2tlbnMsIGRlbGltaXRlcik7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
* This source code is derived from the following original source code:
|
|
9
|
+
* - https://github.com/pillarjs/path-to-regexp
|
|
10
|
+
* - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
|
|
11
|
+
*
|
|
12
|
+
* Use of the original source code is governed by an MIT-style license
|
|
13
|
+
* that can be found in the LICENSE file at
|
|
14
|
+
* https://github.com/pillarjs/path-to-regexp/blob/master/LICENSE
|
|
15
|
+
*/
|
|
16
|
+
import { EMPTY_STRING } from "../../../../util";
|
|
17
|
+
import { ASTERISK, PLUS, QUESTION_MARK } from "./constants";
|
|
18
|
+
import { escapeRegexpString } from "./escape-to-regexp-string";
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
* Returns a function that converts a token into a regexp string.
|
|
22
|
+
*/
|
|
23
|
+
export const toKeyRegexp = (stringify, delimiter) => {
|
|
24
|
+
const segmentPattern = `[^${escapeRegexpString(delimiter)}]+?`;
|
|
25
|
+
return (key) => {
|
|
26
|
+
const prefix = key.prefix ? stringify(key.prefix) : EMPTY_STRING;
|
|
27
|
+
const suffix = key.suffix ? stringify(key.suffix) : EMPTY_STRING;
|
|
28
|
+
const modifier = key.modifier || EMPTY_STRING;
|
|
29
|
+
if (key.name) {
|
|
30
|
+
const pattern = key.pattern || segmentPattern;
|
|
31
|
+
if (key.modifier === PLUS || key.modifier === ASTERISK) {
|
|
32
|
+
const mod = key.modifier === ASTERISK ? QUESTION_MARK : EMPTY_STRING;
|
|
33
|
+
const split = key.separator ? stringify(key.separator) : EMPTY_STRING;
|
|
34
|
+
return `(?:${prefix}((?:${pattern})(?:${split}(?:${pattern}))*)${suffix})${mod}`;
|
|
35
|
+
}
|
|
36
|
+
return `(?:${prefix}(${pattern})${suffix})${modifier}`;
|
|
37
|
+
}
|
|
38
|
+
return `(?:${prefix}${suffix})${modifier}`;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8ta2V5LXJlZ2V4cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAvcGF0aC10by1yZWdleHAvdG8ta2V5LXJlZ2V4cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHL0Q7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUErRCxDQUFDLFNBQWlCLEVBQUUsU0FBaUIsRUFBcUIsRUFBRTtJQUNqSixNQUFNLGNBQWMsR0FBVyxLQUFLLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDdkUsT0FBTyxDQUFDLEdBQVEsRUFBVSxFQUFFO1FBQzFCLE1BQU0sTUFBTSxHQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUN6RSxNQUFNLE1BQU0sR0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDekUsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsSUFBSSxZQUFZLENBQUM7UUFDOUMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDYixNQUFNLE9BQU8sR0FBVyxHQUFHLENBQUMsT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN0RCxJQUFJLEdBQUcsQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZELE1BQU0sR0FBRyxHQUFXLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDN0UsTUFBTSxLQUFLLEdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUM5RSxPQUFPLE1BQU0sTUFBTSxPQUFPLE9BQU8sT0FBTyxLQUFLLE1BQU0sT0FBTyxPQUFPLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNuRixDQUFDO1lBQ0QsT0FBTyxNQUFNLE1BQU0sSUFBSSxPQUFPLElBQUksTUFBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUM3QyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZyBvcmlnaW5hbCBzb3VyY2UgY29kZTpcclxuICogLSBodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHBcclxuICogLSBDb3B5cmlnaHQgKGMpIDIwMTQgQmxha2UgRW1icmV5IChoZWxsb0BibGFrZWVtYnJleS5jb20pXHJcbiAqIFxyXG4gKiBVc2Ugb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIFxyXG4gKiB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9waWxsYXJqcy9wYXRoLXRvLXJlZ2V4cC9ibG9iL21hc3Rlci9MSUNFTlNFXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxcIjtcclxuaW1wb3J0IHsgQVNURVJJU0ssIFBMVVMsIFFVRVNUSU9OX01BUksgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRGVjb2RlS2V5VG9TdHJpbmcgfSBmcm9tIFwiLi9tb2RlbC9kZWNvZGUta2V5LXRvLXN0cmluZ1wiO1xyXG5pbXBvcnQgeyBFbmNvZGUgfSBmcm9tIFwiLi9tb2RlbC9lbmNvZGVcIjtcclxuaW1wb3J0IHsgZXNjYXBlUmVnZXhwU3RyaW5nIH0gZnJvbSBcIi4vZXNjYXBlLXRvLXJlZ2V4cC1zdHJpbmdcIjtcclxuaW1wb3J0IHsgS2V5IH0gZnJvbSBcIi4vbW9kZWwva2V5XCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgYSB0b2tlbiBpbnRvIGEgcmVnZXhwIHN0cmluZy5cclxuICovXHJcbmV4cG9ydCBjb25zdCB0b0tleVJlZ2V4cDogKHN0cmluZ2lmeTogRW5jb2RlLCBkZWxpbWl0ZXI6IHN0cmluZyk9PiBEZWNvZGVLZXlUb1N0cmluZyA9IChzdHJpbmdpZnk6IEVuY29kZSwgZGVsaW1pdGVyOiBzdHJpbmcpOiBEZWNvZGVLZXlUb1N0cmluZyA9PiB7XHJcbiAgY29uc3Qgc2VnbWVudFBhdHRlcm46IHN0cmluZyA9IGBbXiR7ZXNjYXBlUmVnZXhwU3RyaW5nKGRlbGltaXRlcil9XSs/YDtcclxuICByZXR1cm4gKGtleTogS2V5KTogc3RyaW5nID0+IHtcclxuICAgIGNvbnN0IHByZWZpeDogc3RyaW5nID0ga2V5LnByZWZpeCA/IHN0cmluZ2lmeShrZXkucHJlZml4KSA6IEVNUFRZX1NUUklORztcclxuICAgIGNvbnN0IHN1ZmZpeDogc3RyaW5nID0ga2V5LnN1ZmZpeCA/IHN0cmluZ2lmeShrZXkuc3VmZml4KSA6IEVNUFRZX1NUUklORztcclxuICAgIGNvbnN0IG1vZGlmaWVyID0ga2V5Lm1vZGlmaWVyIHx8IEVNUFRZX1NUUklORztcclxuICAgIGlmIChrZXkubmFtZSkge1xyXG4gICAgICBjb25zdCBwYXR0ZXJuOiBzdHJpbmcgPSBrZXkucGF0dGVybiB8fCBzZWdtZW50UGF0dGVybjtcclxuICAgICAgaWYgKGtleS5tb2RpZmllciA9PT0gUExVUyB8fCBrZXkubW9kaWZpZXIgPT09IEFTVEVSSVNLKSB7XHJcbiAgICAgICAgY29uc3QgbW9kOiBzdHJpbmcgPSBrZXkubW9kaWZpZXIgPT09IEFTVEVSSVNLID8gUVVFU1RJT05fTUFSSyA6IEVNUFRZX1NUUklORztcclxuICAgICAgICBjb25zdCBzcGxpdDogc3RyaW5nID0ga2V5LnNlcGFyYXRvciA/IHN0cmluZ2lmeShrZXkuc2VwYXJhdG9yKSA6IEVNUFRZX1NUUklORztcclxuICAgICAgICByZXR1cm4gYCg/OiR7cHJlZml4fSgoPzoke3BhdHRlcm59KSg/OiR7c3BsaXR9KD86JHtwYXR0ZXJufSkpKikke3N1ZmZpeH0pJHttb2R9YDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gYCg/OiR7cHJlZml4fSgke3BhdHRlcm59KSR7c3VmZml4fSkke21vZGlmaWVyfWA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCg/OiR7cHJlZml4fSR7c3VmZml4fSkke21vZGlmaWVyfWA7XHJcbiAgfTtcclxufVxyXG4iXX0=
|
|
@@ -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
|
+
* This source code is derived from the following original source code:
|
|
9
|
+
* - https://github.com/pillarjs/path-to-regexp
|
|
10
|
+
* - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
|
|
11
|
+
*
|
|
12
|
+
* Use of the original source code is governed by an MIT-style license
|
|
13
|
+
* that can be found in the LICENSE file at
|
|
14
|
+
* https://github.com/pillarjs/path-to-regexp/blob/master/LICENSE
|
|
15
|
+
*/
|
|
16
|
+
import { G_FLAG } from "./constants";
|
|
17
|
+
import { escapeRegexpString } from "./escape-to-regexp-string";
|
|
18
|
+
import { looseReplacer } from "./loose-replacer";
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
* Encode all non-delimiter characters using the encode function.
|
|
22
|
+
*/
|
|
23
|
+
export const toStringify = (loose, delimiter) => {
|
|
24
|
+
if (!loose)
|
|
25
|
+
return escapeRegexpString;
|
|
26
|
+
const re = new RegExp(`[^${escapeRegexpString(delimiter)}]+|(.)`, G_FLAG);
|
|
27
|
+
return (value) => value.replace(re, looseReplacer);
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tc3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC9wYXRoLXRvLXJlZ2V4cC90by1zdHJpbmdpZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlqRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQWdDLENBQUMsS0FBYyxFQUFFLFNBQWlCLEVBQVUsRUFBRTtJQUNwRyxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sa0JBQWtCLENBQUM7SUFDdEMsTUFBTSxFQUFFLEdBQVcsSUFBSSxNQUFNLENBQUMsS0FBSyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xGLE9BQU8sQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKlxyXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGRlcml2ZWQgZnJvbSB0aGUgZm9sbG93aW5nIG9yaWdpbmFsIHNvdXJjZSBjb2RlOlxyXG4gKiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9waWxsYXJqcy9wYXRoLXRvLXJlZ2V4cFxyXG4gKiAtIENvcHlyaWdodCAoYykgMjAxNCBCbGFrZSBFbWJyZXkgKGhlbGxvQGJsYWtlZW1icmV5LmNvbSlcclxuICogXHJcbiAqIFVzZSBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgXHJcbiAqIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXRcclxuICogaHR0cHM6Ly9naXRodWIuY29tL3BpbGxhcmpzL3BhdGgtdG8tcmVnZXhwL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcclxuICovXHJcblxyXG5pbXBvcnQgeyBHX0ZMQUcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZXNjYXBlUmVnZXhwU3RyaW5nIH0gZnJvbSBcIi4vZXNjYXBlLXRvLXJlZ2V4cC1zdHJpbmdcIjtcclxuaW1wb3J0IHsgbG9vc2VSZXBsYWNlciB9IGZyb20gXCIuL2xvb3NlLXJlcGxhY2VyXCI7XHJcbmltcG9ydCB7IEVuY29kZSB9IGZyb20gXCIuL21vZGVsL2VuY29kZVwiO1xyXG5pbXBvcnQgeyBOb25EZWxpbWl0ZXJFbmNvZGVyUHJvdmlkZXIgfSBmcm9tIFwiLi9tb2RlbC9ub24tZGVsaW1pdGVyLWVuY29kZXItcHJvdmlkZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBFbmNvZGUgYWxsIG5vbi1kZWxpbWl0ZXIgY2hhcmFjdGVycyB1c2luZyB0aGUgZW5jb2RlIGZ1bmN0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHRvU3RyaW5naWZ5OiBOb25EZWxpbWl0ZXJFbmNvZGVyUHJvdmlkZXIgPSAobG9vc2U6IGJvb2xlYW4sIGRlbGltaXRlcjogc3RyaW5nKTogRW5jb2RlID0+IHtcclxuICBpZiAoIWxvb3NlKSByZXR1cm4gZXNjYXBlUmVnZXhwU3RyaW5nO1xyXG4gIGNvbnN0IHJlOiBSZWdFeHAgPSBuZXcgUmVnRXhwKGBbXiR7ZXNjYXBlUmVnZXhwU3RyaW5nKGRlbGltaXRlcil9XSt8KC4pYCwgR19GTEFHKTtcclxuICByZXR1cm4gKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlLnJlcGxhY2UocmUsIGxvb3NlUmVwbGFjZXIpO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
* This source code is derived from the following original source code:
|
|
9
|
+
* - https://github.com/pillarjs/path-to-regexp
|
|
10
|
+
* - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
|
|
11
|
+
*
|
|
12
|
+
* Use of the original source code is governed by an MIT-style license
|
|
13
|
+
* that can be found in the LICENSE file at
|
|
14
|
+
* https://github.com/pillarjs/path-to-regexp/blob/master/LICENSE
|
|
15
|
+
*/
|
|
16
|
+
import { EMPTY_STRING, STRING } from "../../../../util";
|
|
17
|
+
import { CARRET, DOLLAR } from "./constants";
|
|
18
|
+
import { escapeRegexpString } from "./escape-to-regexp-string";
|
|
19
|
+
import { getFlags } from "./get-flags";
|
|
20
|
+
import { toKeyRegexp } from "./to-key-regexp";
|
|
21
|
+
import { toStringify } from "./to-stringify";
|
|
22
|
+
/**
|
|
23
|
+
* @Private
|
|
24
|
+
* Expose a function for taking tokens and returning a RegExp.
|
|
25
|
+
*/
|
|
26
|
+
export const tokenDataToRegexp = (data, keys, options) => {
|
|
27
|
+
const { trailing = true, start = true, end = true, loose = true, } = options;
|
|
28
|
+
const stringify = toStringify(loose, data.delimiter);
|
|
29
|
+
const keyToRegexp = toKeyRegexp(stringify, data.delimiter);
|
|
30
|
+
let pattern = start ? CARRET : EMPTY_STRING;
|
|
31
|
+
for (const token of data.tokens) {
|
|
32
|
+
if (typeof token === STRING) {
|
|
33
|
+
pattern += stringify(token);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
if (token.name)
|
|
37
|
+
keys.push(token);
|
|
38
|
+
pattern += keyToRegexp(token);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (trailing)
|
|
42
|
+
pattern += `(?:${stringify(data.delimiter)})?`;
|
|
43
|
+
pattern += end ? DOLLAR : `(?=${escapeRegexpString(data.delimiter)}|$)`;
|
|
44
|
+
// URLs in general are case-sensitive (with the exception of machine names).
|
|
45
|
+
// See https://www.w3.org/TR/WD-html40-970708/htmlweb.html
|
|
46
|
+
// Note that default modifier is "i".
|
|
47
|
+
return new RegExp(pattern, getFlags(options));
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZGF0YS10by1yZWdleHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3BhdGgtdG8tcmVnZXhwL3Rva2VuLWRhdGEtdG8tcmVnZXhwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQTJCLENBQUMsSUFBZSxFQUFFLElBQVcsRUFBRSxPQUE0QixFQUFVLEVBQUU7SUFDOUgsTUFBTSxFQUNKLFFBQVEsR0FBRyxJQUFJLEVBQ2YsS0FBSyxHQUFHLElBQUksRUFDWixHQUFHLEdBQUcsSUFBSSxFQUNWLEtBQUssR0FBRyxJQUFJLEdBQ2IsR0FBRyxPQUFPLENBQUM7SUFDWixNQUFNLFNBQVMsR0FBVyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxNQUFNLFdBQVcsR0FBc0IsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUUsSUFBSSxPQUFPLEdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUVwRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFJLE9BQU8sS0FBSyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEtBQUssQ0FBQyxJQUFJO2dCQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUFFLE9BQU8sSUFBSSxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztJQUM3RCxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFFeEUsNEVBQTRFO0lBQzVFLDBEQUEwRDtJQUMxRCxxQ0FBcUM7SUFDckMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqXHJcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmcgb3JpZ2luYWwgc291cmNlIGNvZGU6XHJcbiAqIC0gaHR0cHM6Ly9naXRodWIuY29tL3BpbGxhcmpzL3BhdGgtdG8tcmVnZXhwXHJcbiAqIC0gQ29weXJpZ2h0IChjKSAyMDE0IEJsYWtlIEVtYnJleSAoaGVsbG9AYmxha2VlbWJyZXkuY29tKVxyXG4gKiBcclxuICogVXNlIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSBcclxuICogdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdFxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHAvYmxvYi9tYXN0ZXIvTElDRU5TRVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEVNUFRZX1NUUklORywgU1RSSU5HIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxcIjtcclxuaW1wb3J0IHsgQ0FSUkVULCBET0xMQVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRW5jb2RlIH0gZnJvbSBcIi4vbW9kZWwvZW5jb2RlXCI7XHJcbmltcG9ydCB7IGVzY2FwZVJlZ2V4cFN0cmluZyB9IGZyb20gXCIuL2VzY2FwZS10by1yZWdleHAtc3RyaW5nXCI7XHJcbmltcG9ydCB7IEtleSB9IGZyb20gXCIuL21vZGVsL2tleVwiO1xyXG5pbXBvcnQgeyBnZXRGbGFncyB9IGZyb20gXCIuL2dldC1mbGFnc1wiO1xyXG5pbXBvcnQgeyBQYXRoVG9SZWdleHBPcHRpb25zIH0gZnJvbSBcIi4vbW9kZWwvcGF0aC10by1yZWdleHAtb3B0aW9uc1wiO1xyXG5pbXBvcnQgeyBUb2tlbkRhdGEgfSBmcm9tIFwiLi90b2tlbi1kYXRhXCI7XHJcbmltcG9ydCB7IERlY29kZUtleVRvU3RyaW5nIH0gZnJvbSBcIi4vbW9kZWwvZGVjb2RlLWtleS10by1zdHJpbmdcIjtcclxuaW1wb3J0IHsgdG9LZXlSZWdleHAgfSBmcm9tIFwiLi90by1rZXktcmVnZXhwXCI7XHJcbmltcG9ydCB7IHRvU3RyaW5naWZ5IH0gZnJvbSBcIi4vdG8tc3RyaW5naWZ5XCI7XHJcbmltcG9ydCB7IFRva2VuRGF0YVJlZ0V4cEZhY3RvcnkgfSBmcm9tIFwiLi9tb2RlbC90b2tlbi1kYXRhLXJlZ2V4cC1mYWN0b3J5XCI7XHJcblxyXG4vKipcclxuICogQFByaXZhdGVcclxuICogRXhwb3NlIGEgZnVuY3Rpb24gZm9yIHRha2luZyB0b2tlbnMgYW5kIHJldHVybmluZyBhIFJlZ0V4cC5cclxuICovXHJcbmV4cG9ydCBjb25zdCB0b2tlbkRhdGFUb1JlZ2V4cDogVG9rZW5EYXRhUmVnRXhwRmFjdG9yeSA9IChkYXRhOiBUb2tlbkRhdGEsIGtleXM6IEtleVtdLCBvcHRpb25zOiBQYXRoVG9SZWdleHBPcHRpb25zKTogUmVnRXhwID0+IHtcclxuICBjb25zdCB7XHJcbiAgICB0cmFpbGluZyA9IHRydWUsXHJcbiAgICBzdGFydCA9IHRydWUsXHJcbiAgICBlbmQgPSB0cnVlLFxyXG4gICAgbG9vc2UgPSB0cnVlLFxyXG4gIH0gPSBvcHRpb25zO1xyXG4gIGNvbnN0IHN0cmluZ2lmeTogRW5jb2RlID0gdG9TdHJpbmdpZnkobG9vc2UsIGRhdGEuZGVsaW1pdGVyKTtcclxuICBjb25zdCBrZXlUb1JlZ2V4cDogRGVjb2RlS2V5VG9TdHJpbmcgPSB0b0tleVJlZ2V4cChzdHJpbmdpZnksIGRhdGEuZGVsaW1pdGVyKTtcclxuICBsZXQgcGF0dGVybjogc3RyaW5nID0gc3RhcnQgPyBDQVJSRVQgOiBFTVBUWV9TVFJJTkc7XHJcbiAgXHJcbiAgZm9yIChjb25zdCB0b2tlbiBvZiBkYXRhLnRva2VucyBhcyBhbnkpIHtcclxuICAgIGlmICh0eXBlb2YgdG9rZW4gPT09IFNUUklORykge1xyXG4gICAgICBwYXR0ZXJuICs9IHN0cmluZ2lmeSh0b2tlbik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodG9rZW4ubmFtZSkga2V5cy5wdXNoKHRva2VuKTtcclxuICAgICAgcGF0dGVybiArPSBrZXlUb1JlZ2V4cCh0b2tlbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAodHJhaWxpbmcpIHBhdHRlcm4gKz0gYCg/OiR7c3RyaW5naWZ5KGRhdGEuZGVsaW1pdGVyKX0pP2A7XHJcbiAgcGF0dGVybiArPSBlbmQgPyBET0xMQVIgOiBgKD89JHtlc2NhcGVSZWdleHBTdHJpbmcoZGF0YS5kZWxpbWl0ZXIpfXwkKWA7XHJcblxyXG4gIC8vIFVSTHMgaW4gZ2VuZXJhbCBhcmUgY2FzZS1zZW5zaXRpdmUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBtYWNoaW5lIG5hbWVzKS5cclxuICAvLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL1dELWh0bWw0MC05NzA3MDgvaHRtbHdlYi5odG1sXHJcbiAgLy8gTm90ZSB0aGF0IGRlZmF1bHQgbW9kaWZpZXIgaXMgXCJpXCIuXHJcbiAgcmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgZ2V0RmxhZ3Mob3B0aW9ucykpO1xyXG59XHJcbiJdfQ==
|
|
@@ -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
|
+
* This source code is derived from the following original source code:
|
|
9
|
+
* - https://github.com/pillarjs/path-to-regexp
|
|
10
|
+
* - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
|
|
11
|
+
*
|
|
12
|
+
* Use of the original source code is governed by an MIT-style license
|
|
13
|
+
* that can be found in the LICENSE file at
|
|
14
|
+
* https://github.com/pillarjs/path-to-regexp/blob/master/LICENSE
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* @private
|
|
18
|
+
* Tokenized path instance.
|
|
19
|
+
*/
|
|
20
|
+
export class TokenData {
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
* Creates a new `TokenData` instance.
|
|
24
|
+
*
|
|
25
|
+
* @param tokens A list of `Token` objects.
|
|
26
|
+
* @param delimiter the string delimiter for this `TokenData` instance.
|
|
27
|
+
*/
|
|
28
|
+
constructor(tokens, delimiter) {
|
|
29
|
+
this.tokens = tokens;
|
|
30
|
+
this.delimiter = delimiter;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAvcGF0aC10by1yZWdleHAvdG9rZW4tZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUlIOzs7R0FHRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBRXBCOzs7Ozs7T0FNRztJQUNILFlBQTRCLE1BQWUsRUFDZixTQUFpQjtRQURqQixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUFHLENBQUM7Q0FDbEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICpcclxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZyBvcmlnaW5hbCBzb3VyY2UgY29kZTpcclxuICogLSBodHRwczovL2dpdGh1Yi5jb20vcGlsbGFyanMvcGF0aC10by1yZWdleHBcclxuICogLSBDb3B5cmlnaHQgKGMpIDIwMTQgQmxha2UgRW1icmV5IChoZWxsb0BibGFrZWVtYnJleS5jb20pXHJcbiAqIFxyXG4gKiBVc2Ugb2YgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIFxyXG4gKiB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9waWxsYXJqcy9wYXRoLXRvLXJlZ2V4cC9ibG9iL21hc3Rlci9MSUNFTlNFXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiLi9tb2RlbC90b2tlblwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFRva2VuaXplZCBwYXRoIGluc3RhbmNlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRva2VuRGF0YSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBgVG9rZW5EYXRhYCBpbnN0YW5jZS5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gdG9rZW5zIEEgbGlzdCBvZiBgVG9rZW5gIG9iamVjdHMuXHJcbiAgICogQHBhcmFtIGRlbGltaXRlciB0aGUgc3RyaW5nIGRlbGltaXRlciBmb3IgdGhpcyBgVG9rZW5EYXRhYCBpbnN0YW5jZS5cclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdG9rZW5zOiBUb2tlbltdLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyByZWFkb25seSBkZWxpbWl0ZXI6IHN0cmluZykge31cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
+
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
import { EMPTY_STRING } from "projects/angular-toolbox/src/public-api";
|
|
9
|
+
/**
|
|
10
|
+
* @private
|
|
11
|
+
* A static utility class for building `DataStorage` objects.
|
|
12
|
+
*/
|
|
13
|
+
export class DataStorageBuilder {
|
|
14
|
+
/**
|
|
15
|
+
* @private
|
|
16
|
+
* Builds and returns a new `DataStorage` objects.
|
|
17
|
+
*
|
|
18
|
+
* @param httpResponse The `HttpResponseMock` to be stored by the framework.
|
|
19
|
+
* @param data The data of the HTTP response to be stored by the framework.
|
|
20
|
+
*
|
|
21
|
+
* @returns A new `DataStorage` objects.
|
|
22
|
+
*/
|
|
23
|
+
static buildDataStorage(httpResponse, data) {
|
|
24
|
+
// TODO: add support for different data types (string, Blob, etc.)
|
|
25
|
+
const stringifiedData = data ? JSON.stringify(data) : EMPTY_STRING;
|
|
26
|
+
return {
|
|
27
|
+
httpResponse: httpResponse,
|
|
28
|
+
loaded: 0,
|
|
29
|
+
total: data ? new Blob([stringifiedData]).size : 0,
|
|
30
|
+
data: data,
|
|
31
|
+
stringifiedData: stringifiedData
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdG9yYWdlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvZGF0YS1zdG9yYWdlLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSXZFOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFFM0I7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsWUFBOEIsRUFBRSxJQUFTO1FBQ3BFLGtFQUFrRTtRQUNsRSxNQUFNLGVBQWUsR0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUMzRSxPQUFPO1lBQ0gsWUFBWSxFQUFFLFlBQVk7WUFDMUIsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksRUFBRSxJQUFJO1lBQ1YsZUFBZSxFQUFFLGVBQWU7U0FDbkMsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcblxyXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwicHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9wdWJsaWMtYXBpXCI7XHJcbmltcG9ydCB7IEh0dHBSZXNwb25zZU1vY2sgfSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWxcIjtcclxuaW1wb3J0IHsgRGF0YVN0b3JhZ2UgfSBmcm9tIFwiLi4vY29yZS9kYXRhLXN0b3JhZ2VcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBBIHN0YXRpYyB1dGlsaXR5IGNsYXNzIGZvciBidWlsZGluZyBgRGF0YVN0b3JhZ2VgIG9iamVjdHMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGF0YVN0b3JhZ2VCdWlsZGVyIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBCdWlsZHMgYW5kIHJldHVybnMgYSBuZXcgYERhdGFTdG9yYWdlYCBvYmplY3RzLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gaHR0cFJlc3BvbnNlIFRoZSBgSHR0cFJlc3BvbnNlTW9ja2AgdG8gYmUgc3RvcmVkIGJ5IHRoZSBmcmFtZXdvcmsuXHJcbiAgICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSBvZiB0aGUgSFRUUCByZXNwb25zZSB0byBiZSBzdG9yZWQgYnkgdGhlIGZyYW1ld29yay5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgQSBuZXcgYERhdGFTdG9yYWdlYCBvYmplY3RzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkRGF0YVN0b3JhZ2UoaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2VNb2NrLCBkYXRhOiBhbnkpOiBEYXRhU3RvcmFnZSB7XHJcbiAgICAgICAgLy8gVE9ETzogYWRkIHN1cHBvcnQgZm9yIGRpZmZlcmVudCBkYXRhIHR5cGVzIChzdHJpbmcsIEJsb2IsIGV0Yy4pXHJcbiAgICAgICAgY29uc3Qgc3RyaW5naWZpZWREYXRhOiBzdHJpbmcgPSBkYXRhID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiBFTVBUWV9TVFJJTkc7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaHR0cFJlc3BvbnNlOiBodHRwUmVzcG9uc2UsXHJcbiAgICAgICAgICAgIGxvYWRlZDogMCxcclxuICAgICAgICAgICAgdG90YWw6IGRhdGEgPyBuZXcgQmxvYihbc3RyaW5naWZpZWREYXRhXSkuc2l6ZSA6IDAsXHJcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgICAgIHN0cmluZ2lmaWVkRGF0YTogc3RyaW5naWZpZWREYXRhXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,138 @@
|
|
|
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 } from "@angular/common/http";
|
|
9
|
+
/**
|
|
10
|
+
* A statefull builder for creating new `HttpHeaders` instances.
|
|
11
|
+
*/
|
|
12
|
+
export class HttpHeadersMockBuilder {
|
|
13
|
+
constructor() {
|
|
14
|
+
/**
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
this._headers = new HttpHeaders();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Sets the `"Cache-Control"` property of the new `HttpHeaders` instance with the specified value.
|
|
21
|
+
*
|
|
22
|
+
* @param value The value used to set the `"Cache-Control"` property of the new `HttpHeaders` instance.
|
|
23
|
+
* Default value is `"no-cache"`.
|
|
24
|
+
*
|
|
25
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
26
|
+
*/
|
|
27
|
+
cacheControl(value = "no-cache") {
|
|
28
|
+
this.setHeader("Cache-Control", value);
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sets the `"CContent-Type"` property of the new `HttpHeaders` instance with the specified value.
|
|
33
|
+
*
|
|
34
|
+
* @param value The value used to set the `"Content-Type"` property of the new `HttpHeaders` instance.
|
|
35
|
+
* Default value is `"application/json; charset=utf-8"`.
|
|
36
|
+
*
|
|
37
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
38
|
+
*/
|
|
39
|
+
contentType(value = "application/json; charset=utf-8") {
|
|
40
|
+
this.setHeader("Content-Type", value);
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Sets the `"Priority"` property of the new `HttpHeaders` instance with the specified value.
|
|
45
|
+
*
|
|
46
|
+
* @param value The value used to set the `"Priority"` property of the new `HttpHeaders` instance.
|
|
47
|
+
* Default value is `"u=0, i"`.
|
|
48
|
+
*
|
|
49
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
50
|
+
*/
|
|
51
|
+
priority(value = "u=0, i") {
|
|
52
|
+
this.setHeader("Priority", value);
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Sets the `"User-Agent"` property of the new `HttpHeaders` instance with the specified value.
|
|
57
|
+
*
|
|
58
|
+
* @param value The value used to set the `"User-Agent"` property of the new `HttpHeaders` instance.
|
|
59
|
+
* Default value is the navigator user agent.
|
|
60
|
+
*
|
|
61
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
62
|
+
*/
|
|
63
|
+
userAgent(value = null) {
|
|
64
|
+
this.setHeader("User-Agent", value || navigator.userAgent);
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sets the `"Accept-Language"` property of the new `HttpHeaders` instance with the specified value.
|
|
69
|
+
*
|
|
70
|
+
* @param value The value used to set the `"Accept-Language"` property of the new `HttpHeaders` instance.
|
|
71
|
+
* Default value is the navigator language.
|
|
72
|
+
*
|
|
73
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
74
|
+
*/
|
|
75
|
+
acceptLanguage(value = null) {
|
|
76
|
+
this.setHeader("Accept-Language", value || navigator.language);
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Sets the `"Accept"` property of the new `HttpHeaders` instance with the specified value.
|
|
81
|
+
*
|
|
82
|
+
* @param value The value used to set the `"Accept"` property of the new `HttpHeaders` instance.
|
|
83
|
+
* Default value is `'*\/*'`.
|
|
84
|
+
*
|
|
85
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
86
|
+
*/
|
|
87
|
+
accept(value = "*/*") {
|
|
88
|
+
this.setHeader("Accept", value);
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Sets the `"Accept-Encoding"` property of the new `HttpHeaders` instance with the specified value.
|
|
93
|
+
*
|
|
94
|
+
* @param value The value used to set the `"Accept-Encoding"` property of the new `HttpHeaders` instance.
|
|
95
|
+
* Default value is `"ngzip, deflate, br, zstd"`.
|
|
96
|
+
*
|
|
97
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
98
|
+
*/
|
|
99
|
+
acceptEncoding(value = "gzip, deflate, br, zstd") {
|
|
100
|
+
this.setHeader("Accept-Encoding", value);
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Sets or modifies a value of the new `HttpHeaders` instance.
|
|
105
|
+
*
|
|
106
|
+
* @param name The header name.
|
|
107
|
+
* @param value The value or values to set or override for the given header.
|
|
108
|
+
*
|
|
109
|
+
* @returns A reference to this `HttpResponseMockBuilder` instance.
|
|
110
|
+
*/
|
|
111
|
+
set(name, value) {
|
|
112
|
+
this.setHeader(name, value);
|
|
113
|
+
return this;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Return a new `HttpHeaders` instance, built from the properties specified with the
|
|
117
|
+
* `HttpHeadersMockBuilder` methods.
|
|
118
|
+
*
|
|
119
|
+
* @returns A new `HttpHeaders` instance.
|
|
120
|
+
*/
|
|
121
|
+
headers() {
|
|
122
|
+
return this._headers;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @private
|
|
126
|
+
*/
|
|
127
|
+
setHeader(name, value) {
|
|
128
|
+
const values = Array.isArray(value) ? value.join(", ") : value;
|
|
129
|
+
this._headers = this._headers.set(name, values);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* A utility function used to create new "chainable" `HttpHeadersMockBuilder` instances.
|
|
134
|
+
*
|
|
135
|
+
* @returns A new `HttpHeadersMockBuilder` instance;
|
|
136
|
+
*/
|
|
137
|
+
export const httpHeadersMock = () => new HttpHeadersMockBuilder();
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oZWFkZXJzLW1vY2suYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAvdXRpbC9odHRwLWhlYWRlcnMtbW9jay5idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFBbkM7UUFFSTs7V0FFRztRQUNLLGFBQVEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQTJIdEQsQ0FBQztJQXpIRzs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUFDLFFBQWdCLFVBQVU7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLENBQUMsUUFBZ0IsaUNBQWlDO1FBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksUUFBUSxDQUFDLFFBQWdCLFFBQVE7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxTQUFTLENBQUMsUUFBdUIsSUFBSTtRQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksY0FBYyxDQUFDLFFBQXVCLElBQUk7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLFFBQWdCLEtBQUs7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxjQUFjLENBQUMsUUFBZ0IseUJBQXlCO1FBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQXdCO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE9BQU87UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUyxDQUFDLElBQVksRUFBRSxLQUF3QjtRQUNwRCxNQUFNLE1BQU0sR0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNKO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBK0IsR0FBRSxFQUFFLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbi8qKlxyXG4gKiBBIHN0YXRlZnVsbCBidWlsZGVyIGZvciBjcmVhdGluZyBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZXMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSHR0cEhlYWRlcnNNb2NrQnVpbGRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9oZWFkZXJzOiBIdHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYFwiQ2FjaGUtQ29udHJvbFwiYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwSGVhZGVyc2AgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBgXCJDYWNoZS1Db250cm9sXCJgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZS5cclxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYFwibm8tY2FjaGVcImAuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhY2hlQ29udHJvbCh2YWx1ZTogc3RyaW5nID0gXCJuby1jYWNoZVwiKTogSHR0cEhlYWRlcnNNb2NrQnVpbGRlciB7XHJcbiAgICAgICAgdGhpcy5zZXRIZWFkZXIoXCJDYWNoZS1Db250cm9sXCIsIHZhbHVlKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBgXCJDQ29udGVudC1UeXBlXCJgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGBcIkNvbnRlbnQtVHlwZVwiYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwSGVhZGVyc2AgaW5zdGFuY2UuXHJcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBcImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLThcImAuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnRlbnRUeXBlKHZhbHVlOiBzdHJpbmcgPSBcImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLThcIik6IEh0dHBIZWFkZXJzTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIHZhbHVlKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGBcIlByaW9yaXR5XCJgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGBcIlByaW9yaXR5XCJgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZS5cclxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYFwidT0wLCBpXCJgLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwcmlvcml0eSh2YWx1ZTogc3RyaW5nID0gXCJ1PTAsIGlcIik6IEh0dHBIZWFkZXJzTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKFwiUHJpb3JpdHlcIiwgdmFsdWUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYFwiVXNlci1BZ2VudFwiYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwSGVhZGVyc2AgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBgXCJVc2VyLUFnZW50XCJgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZS5cclxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgdGhlIG5hdmlnYXRvciB1c2VyIGFnZW50LlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB1c2VyQWdlbnQodmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsKTogSHR0cEhlYWRlcnNNb2NrQnVpbGRlciB7XHJcbiAgICAgICAgdGhpcy5zZXRIZWFkZXIoXCJVc2VyLUFnZW50XCIsIHZhbHVlIHx8IG5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYFwiQWNjZXB0LUxhbmd1YWdlXCJgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGBcIkFjY2VwdC1MYW5ndWFnZVwiYCBwcm9wZXJ0eSBvZiB0aGUgbmV3IGBIdHRwSGVhZGVyc2AgaW5zdGFuY2UuXHJcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIHRoZSBuYXZpZ2F0b3IgbGFuZ3VhZ2UuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjY2VwdExhbmd1YWdlKHZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCk6IEh0dHBIZWFkZXJzTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKFwiQWNjZXB0LUxhbmd1YWdlXCIsIHZhbHVlIHx8IG5hdmlnYXRvci5sYW5ndWFnZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBgXCJBY2NlcHRcImAgcHJvcGVydHkgb2YgdGhlIG5ldyBgSHR0cEhlYWRlcnNgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYFwiQWNjZXB0XCJgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZS5cclxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYCcqXFwvKidgLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY2NlcHQodmFsdWU6IHN0cmluZyA9IFwiKi8qXCIpOiBIdHRwSGVhZGVyc01vY2tCdWlsZGVyIHtcclxuICAgICAgICB0aGlzLnNldEhlYWRlcihcIkFjY2VwdFwiLCB2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBgXCJBY2NlcHQtRW5jb2RpbmdcImAgcHJvcGVydHkgb2YgdGhlIG5ldyBgSHR0cEhlYWRlcnNgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgYFwiQWNjZXB0LUVuY29kaW5nXCJgIHByb3BlcnR5IG9mIHRoZSBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZS5cclxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYFwibmd6aXAsIGRlZmxhdGUsIGJyLCB6c3RkXCJgLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGlzIGBIdHRwUmVzcG9uc2VNb2NrQnVpbGRlcmAgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY2NlcHRFbmNvZGluZyh2YWx1ZTogc3RyaW5nID0gXCJnemlwLCBkZWZsYXRlLCBiciwgenN0ZFwiKTogSHR0cEhlYWRlcnNNb2NrQnVpbGRlciB7XHJcbiAgICAgICAgdGhpcy5zZXRIZWFkZXIoXCJBY2NlcHQtRW5jb2RpbmdcIiwgdmFsdWUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBvciBtb2RpZmllcyBhIHZhbHVlIG9mIHRoZSBuZXcgYEh0dHBIZWFkZXJzYCBpbnN0YW5jZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgaGVhZGVyIG5hbWUuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9yIHZhbHVlcyB0byBzZXQgb3Igb3ZlcnJpZGUgZm9yIHRoZSBnaXZlbiBoZWFkZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoaXMgYEh0dHBSZXNwb25zZU1vY2tCdWlsZGVyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IEh0dHBIZWFkZXJzTW9ja0J1aWxkZXIge1xyXG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKG5hbWUsIHZhbHVlKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybiBhIG5ldyBgSHR0cEhlYWRlcnNgIGluc3RhbmNlLCBidWlsdCBmcm9tIHRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCB3aXRoIHRoZVxyXG4gICAgICogYEh0dHBIZWFkZXJzTW9ja0J1aWxkZXJgIG1ldGhvZHMuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIEEgbmV3IGBIdHRwSGVhZGVyc2AgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVycztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2V0SGVhZGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzOiBzdHJpbmcgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oXCIsIFwiKSA6IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX2hlYWRlcnMgPSB0aGlzLl9oZWFkZXJzLnNldChuYW1lLCB2YWx1ZXMpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogQSB1dGlsaXR5IGZ1bmN0aW9uIHVzZWQgdG8gY3JlYXRlIG5ldyBcImNoYWluYWJsZVwiIGBIdHRwSGVhZGVyc01vY2tCdWlsZGVyYCBpbnN0YW5jZXMuXHJcbiAqIFxyXG4gKiBAcmV0dXJucyBBIG5ldyBgSHR0cEhlYWRlcnNNb2NrQnVpbGRlcmAgaW5zdGFuY2U7XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaHR0cEhlYWRlcnNNb2NrOigpPT4gSHR0cEhlYWRlcnNNb2NrQnVpbGRlciA9ICgpPT4gbmV3IEh0dHBIZWFkZXJzTW9ja0J1aWxkZXIoKTsiXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
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 { EMPTY_STRING } from "../../../../util";
|
|
9
|
+
import { httpHeadersMock } from "./http-headers-mock.builder";
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
* Internal reference to a new line character.
|
|
13
|
+
*/
|
|
14
|
+
const NL = "\n";
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
* A set of static utilities for manipulating `HttpHeaders` objects.
|
|
18
|
+
*/
|
|
19
|
+
export class HttpHeadersUtil {
|
|
20
|
+
/**
|
|
21
|
+
* @private
|
|
22
|
+
* Returns a string representation the the specified `HttpHeaders `object, compatible with the format
|
|
23
|
+
* expected by the `XMLHttpRequest.getAllResponseHeaders()` method.
|
|
24
|
+
*
|
|
25
|
+
* @param headers The `HttpHeaders` object to format.
|
|
26
|
+
*
|
|
27
|
+
* @returns A string compatible with the format expected by the `XMLHttpRequest.getAllResponseHeaders()` method.
|
|
28
|
+
*/
|
|
29
|
+
static stringify(headers) {
|
|
30
|
+
let result = EMPTY_STRING;
|
|
31
|
+
if (!headers)
|
|
32
|
+
return result;
|
|
33
|
+
const keys = headers.keys();
|
|
34
|
+
const last = keys.length - 1;
|
|
35
|
+
keys.forEach((key, index) => {
|
|
36
|
+
result += `${key}: ${headers.getAll(key)}${index !== last ? NL : EMPTY_STRING}`;
|
|
37
|
+
});
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @private
|
|
42
|
+
* Creates the default `HttpHeaders` object for a mocked HTTP request.
|
|
43
|
+
*
|
|
44
|
+
* @returns The default `HttpHeaders` object for a mocked HTTP request.
|
|
45
|
+
*/
|
|
46
|
+
static createDefaultRequestHeaders() {
|
|
47
|
+
// "Accept" header is set by Angular framework when missing
|
|
48
|
+
return httpHeadersMock().cacheControl()
|
|
49
|
+
.acceptEncoding()
|
|
50
|
+
.acceptLanguage()
|
|
51
|
+
.priority()
|
|
52
|
+
.userAgent()
|
|
53
|
+
.headers();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oZWFkZXJzLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvaHR0cC1oZWFkZXJzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxNQUFNLEVBQUUsR0FBVyxJQUFJLENBQUM7QUFFeEI7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFFeEI7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQWdDO1FBQ3BELElBQUksTUFBTSxHQUFXLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxHQUFhLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBVyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBQyxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxHQUFHLEdBQUcsS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsMkJBQTJCO1FBQ3JDLDJEQUEyRDtRQUMzRCxPQUFPLGVBQWUsRUFBRSxDQUFDLFlBQVksRUFBRTthQUNkLGNBQWMsRUFBRTthQUNoQixjQUFjLEVBQUU7YUFDaEIsUUFBUSxFQUFFO2FBQ1YsU0FBUyxFQUFFO2FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxcIjtcclxuaW1wb3J0IHsgaHR0cEhlYWRlcnNNb2NrIH0gZnJvbSBcIi4vaHR0cC1oZWFkZXJzLW1vY2suYnVpbGRlclwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEludGVybmFsIHJlZmVyZW5jZSB0byBhIG5ldyBsaW5lIGNoYXJhY3Rlci5cclxuICovXHJcbmNvbnN0IE5MOiBzdHJpbmcgPSBcIlxcblwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEEgc2V0IG9mIHN0YXRpYyB1dGlsaXRpZXMgZm9yIG1hbmlwdWxhdGluZyBgSHR0cEhlYWRlcnNgIG9iamVjdHMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSHR0cEhlYWRlcnNVdGlsIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIHRoZSB0aGUgc3BlY2lmaWVkIGBIdHRwSGVhZGVycyBgb2JqZWN0LCBjb21wYXRpYmxlIHdpdGggdGhlIGZvcm1hdFxyXG4gICAgICogZXhwZWN0ZWQgYnkgdGhlIGBYTUxIdHRwUmVxdWVzdC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKWAgbWV0aG9kLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBUaGUgYEh0dHBIZWFkZXJzYCBvYmplY3QgdG8gZm9ybWF0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBIHN0cmluZyBjb21wYXRpYmxlIHdpdGggdGhlIGZvcm1hdCBleHBlY3RlZCBieSB0aGUgYFhNTEh0dHBSZXF1ZXN0LmdldEFsbFJlc3BvbnNlSGVhZGVycygpYCBtZXRob2QuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5naWZ5KGhlYWRlcnM6IEh0dHBIZWFkZXJzIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBFTVBUWV9TVFJJTkc7XHJcbiAgICAgICAgaWYgKCFoZWFkZXJzKSByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gaGVhZGVycy5rZXlzKCk7XHJcbiAgICAgICAgY29uc3QgbGFzdDogbnVtYmVyID0ga2V5cy5sZW5ndGggLSAxO1xyXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpPT4ge1xyXG4gICAgICAgICAgICByZXN1bHQgKz0gYCR7a2V5fTogJHtoZWFkZXJzLmdldEFsbChrZXkpfSR7aW5kZXggIT09IGxhc3QgPyBOTCA6IEVNUFRZX1NUUklOR31gO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIENyZWF0ZXMgdGhlIGRlZmF1bHQgYEh0dHBIZWFkZXJzYCBvYmplY3QgZm9yIGEgbW9ja2VkIEhUVFAgcmVxdWVzdC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMgVGhlIGRlZmF1bHQgYEh0dHBIZWFkZXJzYCBvYmplY3QgZm9yIGEgbW9ja2VkIEhUVFAgcmVxdWVzdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVEZWZhdWx0UmVxdWVzdEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIC8vIFwiQWNjZXB0XCIgaGVhZGVyIGlzIHNldCBieSBBbmd1bGFyIGZyYW1ld29yayB3aGVuIG1pc3NpbmdcclxuICAgICAgICByZXR1cm4gaHR0cEhlYWRlcnNNb2NrKCkuY2FjaGVDb250cm9sKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWNjZXB0RW5jb2RpbmcoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hY2NlcHRMYW5ndWFnZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaW9yaXR5KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudXNlckFnZW50KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGVhZGVycygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
* @private
|
|
10
|
+
* Provides the list of HTTP verbs.
|
|
11
|
+
*/
|
|
12
|
+
export var HTTPMethodRef;
|
|
13
|
+
(function (HTTPMethodRef) {
|
|
14
|
+
/**
|
|
15
|
+
* @private
|
|
16
|
+
* A reference to the `connect` route associated with the `CONNECT` HTTP verb.
|
|
17
|
+
*/
|
|
18
|
+
HTTPMethodRef["CONNECT"] = "connect";
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
* A reference to the `delete` route associated with the `DELETE` HTTP verb.
|
|
22
|
+
*/
|
|
23
|
+
HTTPMethodRef["DELETE"] = "delete";
|
|
24
|
+
/**
|
|
25
|
+
* @private
|
|
26
|
+
* A reference to the `get` route associated with the `GET` HTTP verb.
|
|
27
|
+
*/
|
|
28
|
+
HTTPMethodRef["GET"] = "get";
|
|
29
|
+
/**
|
|
30
|
+
* @private
|
|
31
|
+
* A reference to the `head` route associated with the `HEAD` HTTP verb.
|
|
32
|
+
*/
|
|
33
|
+
HTTPMethodRef["HEAD"] = "head";
|
|
34
|
+
/**
|
|
35
|
+
* @private
|
|
36
|
+
* A reference to the `options` route associated with the `OPTIONS` HTTP verb.
|
|
37
|
+
*/
|
|
38
|
+
HTTPMethodRef["OPTIONS"] = "options";
|
|
39
|
+
/**
|
|
40
|
+
* @private
|
|
41
|
+
* A reference to the `patch` route associated with the `PATCH` HTTP verb.
|
|
42
|
+
*/
|
|
43
|
+
HTTPMethodRef["PATCH"] = "patch";
|
|
44
|
+
/**
|
|
45
|
+
* @private
|
|
46
|
+
* A reference to the `post` route associated with the `POST` HTTP verb.
|
|
47
|
+
*/
|
|
48
|
+
HTTPMethodRef["POST"] = "post";
|
|
49
|
+
/**
|
|
50
|
+
* @private
|
|
51
|
+
* A reference to the `put` route associated with the `PUT` HTTP verb.
|
|
52
|
+
*/
|
|
53
|
+
HTTPMethodRef["PUT"] = "put";
|
|
54
|
+
/**
|
|
55
|
+
* @private
|
|
56
|
+
* A reference to the `trace` route associated with the `TRACE` HTTP verb.
|
|
57
|
+
*/
|
|
58
|
+
HTTPMethodRef["TRACE"] = "trace";
|
|
59
|
+
})(HTTPMethodRef || (HTTPMethodRef = {}));
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tZXRob2QtcmVmLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwL3V0aWwvaHR0cC1tZXRob2QtcmVmLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFOLElBQVksYUF1RFQ7QUF2REgsV0FBWSxhQUFhO0lBRXJCOzs7T0FHRztJQUNILG9DQUFtQixDQUFBO0lBRW5COzs7T0FHRztJQUNILGtDQUFpQixDQUFBO0lBRWpCOzs7T0FHRztJQUNILDRCQUFXLENBQUE7SUFFWDs7O09BR0c7SUFDSCw4QkFBYSxDQUFBO0lBRWI7OztPQUdHO0lBQ0gsb0NBQW1CLENBQUE7SUFFbkI7OztPQUdHO0lBQ0gsZ0NBQWUsQ0FBQTtJQUVmOzs7T0FHRztJQUNILDhCQUFhLENBQUE7SUFFYjs7O09BR0c7SUFDSCw0QkFBVyxDQUFBO0lBRVg7OztPQUdHO0lBQ0gsZ0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBdkRTLGFBQWEsS0FBYixhQUFhLFFBdUR0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBQcm92aWRlcyB0aGUgbGlzdCBvZiBIVFRQIHZlcmJzLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gSFRUUE1ldGhvZFJlZiB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGBjb25uZWN0YCByb3V0ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGBDT05ORUNUYCBIVFRQIHZlcmIuXHJcbiAgICAgKi9cclxuICAgIENPTk5FQ1QgPSAnY29ubmVjdCcsXHJcbiAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYGRlbGV0ZWAgcm91dGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBgREVMRVRFYCBIVFRQIHZlcmIuXHJcbiAgICAgKi9cclxuICAgIERFTEVURSA9ICdkZWxldGUnLFxyXG4gIFxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGBnZXRgIHJvdXRlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYEdFVGAgSFRUUCB2ZXJiLlxyXG4gICAgICovXHJcbiAgICBHRVQgPSAnZ2V0JyxcclxuICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBgaGVhZGAgcm91dGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBgSEVBRGAgSFRUUCB2ZXJiLlxyXG4gICAgICovXHJcbiAgICBIRUFEID0gJ2hlYWQnLFxyXG4gIFxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGBvcHRpb25zYCByb3V0ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGBPUFRJT05TYCBIVFRQIHZlcmIuXHJcbiAgICAgKi9cclxuICAgIE9QVElPTlMgPSAnb3B0aW9ucycsXHJcbiAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYHBhdGNoYCByb3V0ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGBQQVRDSGAgSFRUUCB2ZXJiLlxyXG4gICAgICovXHJcbiAgICBQQVRDSCA9ICdwYXRjaCcsXHJcbiAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYHBvc3RgIHJvdXRlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYFBPU1RgIEhUVFAgdmVyYi5cclxuICAgICAqL1xyXG4gICAgUE9TVCA9ICdwb3N0JyxcclxuICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBgcHV0YCByb3V0ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGBQVVRgIEhUVFAgdmVyYi5cclxuICAgICAqL1xyXG4gICAgUFVUID0gJ3B1dCcsXHJcbiAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYHRyYWNlYCByb3V0ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGBUUkFDRWAgSFRUUCB2ZXJiLlxyXG4gICAgICovXHJcbiAgICBUUkFDRSA9ICd0cmFjZSdcclxuICB9Il19
|