ionic-logging-service 16.0.0 → 18.0.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.
Files changed (29) hide show
  1. package/README.md +3 -1
  2. package/esm2022/lib/ajax-appender.model.mjs +149 -0
  3. package/esm2022/lib/local-storage-appender.model.mjs +177 -0
  4. package/esm2022/lib/log-level.converter.mjs +92 -0
  5. package/esm2022/lib/logger.model.mjs +191 -0
  6. package/{esm2020 → esm2022}/lib/logging-service.module.mjs +5 -5
  7. package/esm2022/lib/logging.service.mjs +167 -0
  8. package/esm2022/lib/memory-appender.model.mjs +133 -0
  9. package/{fesm2015 → fesm2022}/ionic-logging-service.mjs +15 -15
  10. package/{fesm2020 → fesm2022}/ionic-logging-service.mjs.map +1 -1
  11. package/package.json +7 -13
  12. package/esm2020/lib/ajax-appender.model.mjs +0 -149
  13. package/esm2020/lib/local-storage-appender.model.mjs +0 -177
  14. package/esm2020/lib/log-level.converter.mjs +0 -92
  15. package/esm2020/lib/logger.model.mjs +0 -191
  16. package/esm2020/lib/logging.service.mjs +0 -167
  17. package/esm2020/lib/memory-appender.model.mjs +0 -133
  18. package/fesm2015/ionic-logging-service.mjs.map +0 -1
  19. package/fesm2020/ionic-logging-service.mjs +0 -992
  20. /package/{esm2020 → esm2022}/ionic-logging-service.mjs +0 -0
  21. /package/{esm2020 → esm2022}/lib/ajax-appender.configuration.mjs +0 -0
  22. /package/{esm2020 → esm2022}/lib/browser-console-appender.configuration.mjs +0 -0
  23. /package/{esm2020 → esm2022}/lib/json-layout.model.mjs +0 -0
  24. /package/{esm2020 → esm2022}/lib/local-storage-appender.configuration.mjs +0 -0
  25. /package/{esm2020 → esm2022}/lib/log-level.model.mjs +0 -0
  26. /package/{esm2020 → esm2022}/lib/log-message.model.mjs +0 -0
  27. /package/{esm2020 → esm2022}/lib/logging-service.configuration.mjs +0 -0
  28. /package/{esm2020 → esm2022}/lib/memory-appender.configuration.mjs +0 -0
  29. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -1,177 +0,0 @@
1
- import * as log4javascript from "log4javascript";
2
- import { LogLevelConverter } from "./log-level.converter";
3
- import { LogLevel } from "./log-level.model";
4
- /**
5
- * An appender which stores the log messages in the browser's local storage.
6
- *
7
- * The messages are saved JSON-serialized.
8
- * You have to configure which key is used for storing the messages.
9
- *
10
- * A typical configuration could be:
11
- *
12
- * ```json
13
- * {
14
- * "localStorageKey": "myLogs",
15
- * "maxMessages": 500,
16
- * "threshold": "INFO"
17
- * }
18
- * ```
19
- */
20
- export class LocalStorageAppender extends log4javascript.Appender {
21
- /**
22
- * Creates a new instance of the appender.
23
- *
24
- * @param configuration configuration for the appender.
25
- */
26
- constructor(configuration) {
27
- super();
28
- if (!configuration) {
29
- throw new Error("configuration must be not empty");
30
- }
31
- if (!configuration.localStorageKey || configuration.localStorageKey === "") {
32
- throw new Error("localStorageKey must be not empty");
33
- }
34
- this.localStorageKey = configuration.localStorageKey;
35
- // read existing logMessages
36
- this.logMessages = LocalStorageAppender.loadLogMessages(this.localStorageKey);
37
- // process remaining configuration
38
- this.configure({
39
- localStorageKey: configuration.localStorageKey,
40
- maxMessages: configuration.maxMessages || LocalStorageAppender.maxMessagesDefault,
41
- threshold: configuration.threshold || LocalStorageAppender.thresholdDefault,
42
- });
43
- }
44
- /**
45
- * Load log messages from local storage which are stored there under the given key.
46
- *
47
- * @param localStorageKey local storage key
48
- * @return stored messages
49
- */
50
- static loadLogMessages(localStorageKey) {
51
- let logMessages;
52
- if (!localStorageKey || localStorage.getItem(localStorageKey) === null) {
53
- logMessages = [];
54
- }
55
- else {
56
- logMessages = JSON.parse(localStorage.getItem(localStorageKey));
57
- for (const logMessage of logMessages) {
58
- // timestamps are serialized as strings
59
- logMessage.timeStamp = new Date(logMessage.timeStamp);
60
- }
61
- }
62
- return logMessages;
63
- }
64
- /**
65
- * Remove log messages from local storage which are stored there under the given key.
66
- *
67
- * @param localStorageKey local storage key
68
- */
69
- static removeLogMessages(localStorageKey) {
70
- localStorage.removeItem(localStorageKey);
71
- }
72
- /**
73
- * Configures the logging depending on the given configuration.
74
- *
75
- * Only the defined properties get overwritten.
76
- * The localStorageKey cannot be modified.
77
- *
78
- * @param configuration configuration data.
79
- */
80
- configure(configuration) {
81
- if (configuration) {
82
- if (configuration.localStorageKey && configuration.localStorageKey !== this.localStorageKey) {
83
- throw new Error("localStorageKey must not be changed");
84
- }
85
- if (configuration.maxMessages) {
86
- this.setMaxMessages(configuration.maxMessages);
87
- }
88
- if (configuration.threshold) {
89
- const convertedThreshold = LogLevelConverter.levelToLog4Javascript(LogLevelConverter.levelFromString(configuration.threshold));
90
- this.setThreshold(convertedThreshold);
91
- }
92
- }
93
- }
94
- /**
95
- * Appender-specific method to append a log message.
96
- *
97
- * @param loggingEvent event to be appended.
98
- */
99
- append(loggingEvent) {
100
- // if logMessages is already full, remove oldest element
101
- while (this.logMessages.length >= this.maxMessages) {
102
- this.logMessages.shift();
103
- }
104
- // add event to logMessages
105
- const message = {
106
- level: LogLevel[LogLevelConverter.levelFromLog4Javascript(loggingEvent.level)],
107
- logger: typeof loggingEvent.logger !== "undefined" ? loggingEvent.logger.name : undefined,
108
- message: loggingEvent.messages.slice(1),
109
- methodName: loggingEvent.messages[0],
110
- timeStamp: loggingEvent.timeStamp,
111
- };
112
- this.logMessages.push(message);
113
- // write values to localStorage
114
- localStorage.setItem(this.localStorageKey, JSON.stringify(this.logMessages));
115
- }
116
- /**
117
- * Gets the appender's name.
118
- * Mainly for unit testing purposes.
119
- *
120
- * @return appender's name
121
- */
122
- toString() {
123
- return "Ionic.Logging.LocalStorageAppender";
124
- }
125
- /**
126
- * Get the key which is used to store the messages in the local storage.
127
- */
128
- getLocalStorageKey() {
129
- return this.localStorageKey;
130
- }
131
- /**
132
- * Get the maximum number of messages which will be stored in local storage.
133
- */
134
- getMaxMessages() {
135
- return this.maxMessages;
136
- }
137
- /**
138
- * Set the maximum number of messages which will be stored in local storage.
139
- *
140
- * If the appender stores currently more messages than the new value allows, the oldest messages get removed.
141
- *
142
- * @param value new maximum number
143
- */
144
- setMaxMessages(value) {
145
- if (this.maxMessages !== value) {
146
- this.maxMessages = value;
147
- if (this.logMessages.length > this.maxMessages) {
148
- // there are too much logMessages for the new value, therefore remove oldest messages
149
- while (this.logMessages.length > this.maxMessages) {
150
- this.logMessages.shift();
151
- }
152
- // write values to localStorage
153
- localStorage.setItem(this.localStorageKey, JSON.stringify(this.logMessages));
154
- }
155
- }
156
- }
157
- /**
158
- * Gets all messages stored in local storage.
159
- * Mainly for unit testing purposes.
160
- *
161
- * @return stored messages
162
- */
163
- getLogMessages() {
164
- return this.logMessages;
165
- }
166
- /**
167
- * Removes all messages from local storage.
168
- * Mainly for unit testing purposes.
169
- */
170
- clearLog() {
171
- this.logMessages = [];
172
- localStorage.removeItem(this.localStorageKey);
173
- }
174
- }
175
- LocalStorageAppender.maxMessagesDefault = 250;
176
- LocalStorageAppender.thresholdDefault = "WARN";
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS1hcHBlbmRlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lvbmljLWxvZ2dpbmctc2VydmljZS9zcmMvbGliL2xvY2FsLXN0b3JhZ2UtYXBwZW5kZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLGNBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHN0M7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQWMsQ0FBQyxRQUFRO0lBVWhFOzs7O09BSUc7SUFDSCxZQUFZLGFBQWdEO1FBQzNELEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsSUFBSSxhQUFhLENBQUMsZUFBZSxLQUFLLEVBQUUsRUFBRTtZQUMzRSxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUM7UUFFckQsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU5RSxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNkLGVBQWUsRUFBRSxhQUFhLENBQUMsZUFBZTtZQUM5QyxXQUFXLEVBQUUsYUFBYSxDQUFDLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQyxrQkFBa0I7WUFDakYsU0FBUyxFQUFFLGFBQWEsQ0FB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LElBQUksQ0FBQyxlQUFlLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksY0FBYztRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGNBQWMsQ0FBQyxLQUFhO1FBQ2xDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFFekIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMvQyxxRkFBcUY7Z0JBQ3JGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDekI7Z0JBRUQsK0JBQStCO2dCQUMvQixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUM3RTtTQUNEO0lBQ0YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksY0FBYztRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDOztBQWxMYyx1Q0FBa0IsR0FBRyxHQUFHLENBQUM7QUFDekIscUNBQWdCLEdBQUcsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbG9nNGphdmFzY3JpcHQgZnJvbSBcImxvZzRqYXZhc2NyaXB0XCI7XG5cbmltcG9ydCB7IExvY2FsU3RvcmFnZUFwcGVuZGVyQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuL2xvY2FsLXN0b3JhZ2UtYXBwZW5kZXIuY29uZmlndXJhdGlvblwiO1xuaW1wb3J0IHsgTG9nTGV2ZWxDb252ZXJ0ZXIgfSBmcm9tIFwiLi9sb2ctbGV2ZWwuY29udmVydGVyXCI7XG5pbXBvcnQgeyBMb2dMZXZlbCB9IGZyb20gXCIuL2xvZy1sZXZlbC5tb2RlbFwiO1xuaW1wb3J0IHsgTG9nTWVzc2FnZSB9IGZyb20gXCIuL2xvZy1tZXNzYWdlLm1vZGVsXCI7XG5cbi8qKlxuICogQW4gYXBwZW5kZXIgd2hpY2ggc3RvcmVzIHRoZSBsb2cgbWVzc2FnZXMgaW4gdGhlIGJyb3dzZXIncyBsb2NhbCBzdG9yYWdlLlxuICpcbiAqIFRoZSBtZXNzYWdlcyBhcmUgc2F2ZWQgSlNPTi1zZXJpYWxpemVkLlxuICogWW91IGhhdmUgdG8gY29uZmlndXJlIHdoaWNoIGtleSBpcyB1c2VkIGZvciBzdG9yaW5nIHRoZSBtZXNzYWdlcy5cbiAqXG4gKiBBIHR5cGljYWwgY29uZmlndXJhdGlvbiBjb3VsZCBiZTpcbiAqXG4gKiBgYGBqc29uXG4gKiB7XG4gKiAgIFwibG9jYWxTdG9yYWdlS2V5XCI6IFwibXlMb2dzXCIsXG4gKiAgIFwibWF4TWVzc2FnZXNcIjogNTAwLFxuICogICBcInRocmVzaG9sZFwiOiBcIklORk9cIlxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VBcHBlbmRlciBleHRlbmRzIGxvZzRqYXZhc2NyaXB0LkFwcGVuZGVyIHtcblxuXHRwcml2YXRlIHN0YXRpYyBtYXhNZXNzYWdlc0RlZmF1bHQgPSAyNTA7XG5cdHByaXZhdGUgc3RhdGljIHRocmVzaG9sZERlZmF1bHQgPSBcIldBUk5cIjtcblxuXHRwcml2YXRlIG1heE1lc3NhZ2VzOiBudW1iZXI7XG5cblx0cHJpdmF0ZSBsb2NhbFN0b3JhZ2VLZXk6IHN0cmluZztcblx0cHJpdmF0ZSBsb2dNZXNzYWdlczogTG9nTWVzc2FnZVtdO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBhcHBlbmRlci5cblx0ICpcblx0ICogQHBhcmFtIGNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIGFwcGVuZGVyLlxuXHQgKi9cblx0Y29uc3RydWN0b3IoY29uZmlndXJhdGlvbjogTG9jYWxTdG9yYWdlQXBwZW5kZXJDb25maWd1cmF0aW9uKSB7XG5cdFx0c3VwZXIoKTtcblxuXHRcdGlmICghY29uZmlndXJhdGlvbikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiY29uZmlndXJhdGlvbiBtdXN0IGJlIG5vdCBlbXB0eVwiKTtcblx0XHR9XG5cdFx0aWYgKCFjb25maWd1cmF0aW9uLmxvY2FsU3RvcmFnZUtleSB8fCBjb25maWd1cmF0aW9uLmxvY2FsU3RvcmFnZUtleSA9PT0gXCJcIikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwibG9jYWxTdG9yYWdlS2V5IG11c3QgYmUgbm90IGVtcHR5XCIpO1xuXHRcdH1cblx0XHR0aGlzLmxvY2FsU3RvcmFnZUtleSA9IGNvbmZpZ3VyYXRpb24ubG9jYWxTdG9yYWdlS2V5O1xuXG5cdFx0Ly8gcmVhZCBleGlzdGluZyBsb2dNZXNzYWdlc1xuXHRcdHRoaXMubG9nTWVzc2FnZXMgPSBMb2NhbFN0b3JhZ2VBcHBlbmRlci5sb2FkTG9nTWVzc2FnZXModGhpcy5sb2NhbFN0b3JhZ2VLZXkpO1xuXG5cdFx0Ly8gcHJvY2VzcyByZW1haW5pbmcgY29uZmlndXJhdGlvblxuXHRcdHRoaXMuY29uZmlndXJlKHtcblx0XHRcdGxvY2FsU3RvcmFnZUtleTogY29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VLZXksXG5cdFx0XHRtYXhNZXNzYWdlczogY29uZmlndXJhdGlvbi5tYXhNZXNzYWdlcyB8fCBMb2NhbFN0b3JhZ2VBcHBlbmRlci5tYXhNZXNzYWdlc0RlZmF1bHQsXG5cdFx0XHR0aHJlc2hvbGQ6IGNvbmZpZ3VyYXRpb24udGhyZXNob2xkIHx8IExvY2FsU3RvcmFnZUFwcGVuZGVyLnRocmVzaG9sZERlZmF1bHQsXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogTG9hZCBsb2cgbWVzc2FnZXMgZnJvbSBsb2NhbCBzdG9yYWdlIHdoaWNoIGFyZSBzdG9yZWQgdGhlcmUgdW5kZXIgdGhlIGdpdmVuIGtleS5cblx0ICpcblx0ICogQHBhcmFtIGxvY2FsU3RvcmFnZUtleSBsb2NhbCBzdG9yYWdlIGtleVxuXHQgKiBAcmV0dXJuIHN0b3JlZCBtZXNzYWdlc1xuXHQgKi9cblx0cHVibGljIHN0YXRpYyBsb2FkTG9nTWVzc2FnZXMobG9jYWxTdG9yYWdlS2V5OiBzdHJpbmcpOiBMb2dNZXNzYWdlW10ge1xuXHRcdGxldCBsb2dNZXNzYWdlczogTG9nTWVzc2FnZVtdO1xuXG5cdFx0aWYgKCFsb2NhbFN0b3JhZ2VLZXkgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0obG9jYWxTdG9yYWdlS2V5KSA9PT0gbnVsbCkge1xuXHRcdFx0bG9nTWVzc2FnZXMgPSBbXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bG9nTWVzc2FnZXMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvY2FsU3RvcmFnZUtleSkpO1xuXHRcdFx0Zm9yIChjb25zdCBsb2dNZXNzYWdlIG9mIGxvZ01lc3NhZ2VzKSB7XG5cdFx0XHRcdC8vIHRpbWVzdGFtcHMgYXJlIHNlcmlhbGl6ZWQgYXMgc3RyaW5nc1xuXHRcdFx0XHRsb2dNZXNzYWdlLnRpbWVTdGFtcCA9IG5ldyBEYXRlKGxvZ01lc3NhZ2UudGltZVN0YW1wKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gbG9nTWVzc2FnZXM7XG5cdH1cblxuXHQvKipcblx0ICogUmVtb3ZlIGxvZyBtZXNzYWdlcyBmcm9tIGxvY2FsIHN0b3JhZ2Ugd2hpY2ggYXJlIHN0b3JlZCB0aGVyZSB1bmRlciB0aGUgZ2l2ZW4ga2V5LlxuXHQgKlxuXHQgKiBAcGFyYW0gbG9jYWxTdG9yYWdlS2V5IGxvY2FsIHN0b3JhZ2Uga2V5XG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHJlbW92ZUxvZ01lc3NhZ2VzKGxvY2FsU3RvcmFnZUtleTogc3RyaW5nKTogdm9pZCB7XG5cdFx0bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0obG9jYWxTdG9yYWdlS2V5KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb25maWd1cmVzIHRoZSBsb2dnaW5nIGRlcGVuZGluZyBvbiB0aGUgZ2l2ZW4gY29uZmlndXJhdGlvbi5cblx0ICpcblx0ICogT25seSB0aGUgZGVmaW5lZCBwcm9wZXJ0aWVzIGdldCBvdmVyd3JpdHRlbi5cblx0ICogVGhlIGxvY2FsU3RvcmFnZUtleSBjYW5ub3QgYmUgbW9kaWZpZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSBjb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24gZGF0YS5cblx0ICovXG5cdHB1YmxpYyBjb25maWd1cmUoY29uZmlndXJhdGlvbjogTG9jYWxTdG9yYWdlQXBwZW5kZXJDb25maWd1cmF0aW9uKTogdm9pZCB7XG5cdFx0aWYgKGNvbmZpZ3VyYXRpb24pIHtcblx0XHRcdGlmIChjb25maWd1cmF0aW9uLmxvY2FsU3RvcmFnZUtleSAmJiBjb25maWd1cmF0aW9uLmxvY2FsU3RvcmFnZUtleSAhPT0gdGhpcy5sb2NhbFN0b3JhZ2VLZXkpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwibG9jYWxTdG9yYWdlS2V5IG11c3Qgbm90IGJlIGNoYW5nZWRcIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY29uZmlndXJhdGlvbi5tYXhNZXNzYWdlcykge1xuXHRcdFx0XHR0aGlzLnNldE1heE1lc3NhZ2VzKGNvbmZpZ3VyYXRpb24ubWF4TWVzc2FnZXMpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGNvbmZpZ3VyYXRpb24udGhyZXNob2xkKSB7XG5cdFx0XHRcdGNvbnN0IGNvbnZlcnRlZFRocmVzaG9sZCA9IExvZ0xldmVsQ29udmVydGVyLmxldmVsVG9Mb2c0SmF2YXNjcmlwdChcblx0XHRcdFx0XHRMb2dMZXZlbENvbnZlcnRlci5sZXZlbEZyb21TdHJpbmcoY29uZmlndXJhdGlvbi50aHJlc2hvbGQpKTtcblx0XHRcdFx0dGhpcy5zZXRUaHJlc2hvbGQoY29udmVydGVkVGhyZXNob2xkKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQXBwZW5kZXItc3BlY2lmaWMgbWV0aG9kIHRvIGFwcGVuZCBhIGxvZyBtZXNzYWdlLlxuXHQgKlxuXHQgKiBAcGFyYW0gbG9nZ2luZ0V2ZW50IGV2ZW50IHRvIGJlIGFwcGVuZGVkLlxuXHQgKi9cblx0cHVibGljIGFwcGVuZChsb2dnaW5nRXZlbnQ6IGxvZzRqYXZhc2NyaXB0LkxvZ2dpbmdFdmVudCk6IHZvaWQge1xuXHRcdC8vIGlmIGxvZ01lc3NhZ2VzIGlzIGFscmVhZHkgZnVsbCwgcmVtb3ZlIG9sZGVzdCBlbGVtZW50XG5cdFx0d2hpbGUgKHRoaXMubG9nTWVzc2FnZXMubGVuZ3RoID49IHRoaXMubWF4TWVzc2FnZXMpIHtcblx0XHRcdHRoaXMubG9nTWVzc2FnZXMuc2hpZnQoKTtcblx0XHR9XG5cdFx0Ly8gYWRkIGV2ZW50IHRvIGxvZ01lc3NhZ2VzXG5cdFx0Y29uc3QgbWVzc2FnZTogTG9nTWVzc2FnZSA9IHtcblx0XHRcdGxldmVsOiBMb2dMZXZlbFtMb2dMZXZlbENvbnZlcnRlci5sZXZlbEZyb21Mb2c0SmF2YXNjcmlwdChsb2dnaW5nRXZlbnQubGV2ZWwpXSxcblx0XHRcdGxvZ2dlcjogdHlwZW9mIGxvZ2dpbmdFdmVudC5sb2dnZXIgIT09IFwidW5kZWZpbmVkXCIgPyBsb2dnaW5nRXZlbnQubG9nZ2VyLm5hbWUgOiB1bmRlZmluZWQsXG5cdFx0XHRtZXNzYWdlOiBsb2dnaW5nRXZlbnQubWVzc2FnZXMuc2xpY2UoMSksXG5cdFx0XHRtZXRob2ROYW1lOiBsb2dnaW5nRXZlbnQubWVzc2FnZXNbMF0sXG5cdFx0XHR0aW1lU3RhbXA6IGxvZ2dpbmdFdmVudC50aW1lU3RhbXAsXG5cdFx0fTtcblx0XHR0aGlzLmxvZ01lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XG5cblx0XHQvLyB3cml0ZSB2YWx1ZXMgdG8gbG9jYWxTdG9yYWdlXG5cdFx0bG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VLZXksIEpTT04uc3RyaW5naWZ5KHRoaXMubG9nTWVzc2FnZXMpKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBhcHBlbmRlcidzIG5hbWUuXG5cdCAqIE1haW5seSBmb3IgdW5pdCB0ZXN0aW5nIHB1cnBvc2VzLlxuXHQgKlxuXHQgKiBAcmV0dXJuIGFwcGVuZGVyJ3MgbmFtZVxuXHQgKi9cblx0cHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIFwiSW9uaWMuTG9nZ2luZy5Mb2NhbFN0b3JhZ2VBcHBlbmRlclwiO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUga2V5IHdoaWNoIGlzIHVzZWQgdG8gc3RvcmUgdGhlIG1lc3NhZ2VzIGluIHRoZSBsb2NhbCBzdG9yYWdlLlxuXHQgKi9cblx0cHVibGljIGdldExvY2FsU3RvcmFnZUtleSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmxvY2FsU3RvcmFnZUtleTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIG1lc3NhZ2VzIHdoaWNoIHdpbGwgYmUgc3RvcmVkIGluIGxvY2FsIHN0b3JhZ2UuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0TWF4TWVzc2FnZXMoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5tYXhNZXNzYWdlcztcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIG1lc3NhZ2VzIHdoaWNoIHdpbGwgYmUgc3RvcmVkIGluIGxvY2FsIHN0b3JhZ2UuXG5cdCAqXG5cdCAqIElmIHRoZSBhcHBlbmRlciBzdG9yZXMgY3VycmVudGx5IG1vcmUgbWVzc2FnZXMgdGhhbiB0aGUgbmV3IHZhbHVlIGFsbG93cywgdGhlIG9sZGVzdCBtZXNzYWdlcyBnZXQgcmVtb3ZlZC5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlIG5ldyBtYXhpbXVtIG51bWJlclxuXHQgKi9cblx0cHVibGljIHNldE1heE1lc3NhZ2VzKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5tYXhNZXNzYWdlcyAhPT0gdmFsdWUpIHtcblx0XHRcdHRoaXMubWF4TWVzc2FnZXMgPSB2YWx1ZTtcblxuXHRcdFx0aWYgKHRoaXMubG9nTWVzc2FnZXMubGVuZ3RoID4gdGhpcy5tYXhNZXNzYWdlcykge1xuXHRcdFx0XHQvLyB0aGVyZSBhcmUgdG9vIG11Y2ggbG9nTWVzc2FnZXMgZm9yIHRoZSBuZXcgdmFsdWUsIHRoZXJlZm9yZSByZW1vdmUgb2xkZXN0IG1lc3NhZ2VzXG5cdFx0XHRcdHdoaWxlICh0aGlzLmxvZ01lc3NhZ2VzLmxlbmd0aCA+IHRoaXMubWF4TWVzc2FnZXMpIHtcblx0XHRcdFx0XHR0aGlzLmxvZ01lc3NhZ2VzLnNoaWZ0KCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyB3cml0ZSB2YWx1ZXMgdG8gbG9jYWxTdG9yYWdlXG5cdFx0XHRcdGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeSh0aGlzLmxvZ01lc3NhZ2VzKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgYWxsIG1lc3NhZ2VzIHN0b3JlZCBpbiBsb2NhbCBzdG9yYWdlLlxuXHQgKiBNYWlubHkgZm9yIHVuaXQgdGVzdGluZyBwdXJwb3Nlcy5cblx0ICpcblx0ICogQHJldHVybiBzdG9yZWQgbWVzc2FnZXNcblx0ICovXG5cdHB1YmxpYyBnZXRMb2dNZXNzYWdlcygpOiBMb2dNZXNzYWdlW10ge1xuXHRcdHJldHVybiB0aGlzLmxvZ01lc3NhZ2VzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYWxsIG1lc3NhZ2VzIGZyb20gbG9jYWwgc3RvcmFnZS5cblx0ICogTWFpbmx5IGZvciB1bml0IHRlc3RpbmcgcHVycG9zZXMuXG5cdCAqL1xuXHRwdWJsaWMgY2xlYXJMb2coKTogdm9pZCB7XG5cdFx0dGhpcy5sb2dNZXNzYWdlcyA9IFtdO1xuXHRcdGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5KTtcblx0fVxufVxuIl19
@@ -1,92 +0,0 @@
1
- import * as log4javascript from "log4javascript";
2
- import { LogLevel } from "./log-level.model";
3
- /**
4
- * Helper class for converting log levels from and to different data type.
5
- */
6
- export class LogLevelConverter {
7
- /**
8
- * Converts log4javascript.Level to internal LogLevel.
9
- *
10
- * @param level log4javascript's data type
11
- * @return internal data type.
12
- */
13
- static levelFromLog4Javascript(level) {
14
- switch (level) {
15
- case log4javascript.Level.ALL:
16
- return LogLevel.ALL;
17
- case log4javascript.Level.DEBUG:
18
- return LogLevel.DEBUG;
19
- case log4javascript.Level.ERROR:
20
- return LogLevel.ERROR;
21
- case log4javascript.Level.FATAL:
22
- return LogLevel.FATAL;
23
- case log4javascript.Level.INFO:
24
- return LogLevel.INFO;
25
- case log4javascript.Level.OFF:
26
- return LogLevel.OFF;
27
- case log4javascript.Level.TRACE:
28
- return LogLevel.TRACE;
29
- case log4javascript.Level.WARN:
30
- return LogLevel.WARN;
31
- default:
32
- throw new Error(`invalid level ${level}`);
33
- }
34
- }
35
- /**
36
- * Converts string representation to internal LogLevel.
37
- *
38
- * @param level string representation
39
- * @return internal data type.
40
- */
41
- static levelFromString(level) {
42
- switch (level) {
43
- case "ALL":
44
- return LogLevel.ALL;
45
- case "DEBUG":
46
- return LogLevel.DEBUG;
47
- case "ERROR":
48
- return LogLevel.ERROR;
49
- case "FATAL":
50
- return LogLevel.FATAL;
51
- case "INFO":
52
- return LogLevel.INFO;
53
- case "OFF":
54
- return LogLevel.OFF;
55
- case "TRACE":
56
- return LogLevel.TRACE;
57
- case "WARN":
58
- return LogLevel.WARN;
59
- default:
60
- throw new Error(`invalid level ${level}`);
61
- }
62
- }
63
- /**
64
- * Converts internal LogLevel to log4javascript.Level.
65
- *
66
- * @param internal data type.
67
- * @return level log4javascript's data type
68
- */
69
- static levelToLog4Javascript(level) {
70
- switch (level) {
71
- case LogLevel.ALL:
72
- return log4javascript.Level.ALL;
73
- case LogLevel.DEBUG:
74
- return log4javascript.Level.DEBUG;
75
- case LogLevel.ERROR:
76
- return log4javascript.Level.ERROR;
77
- case LogLevel.FATAL:
78
- return log4javascript.Level.FATAL;
79
- case LogLevel.INFO:
80
- return log4javascript.Level.INFO;
81
- case LogLevel.OFF:
82
- return log4javascript.Level.OFF;
83
- case LogLevel.TRACE:
84
- return log4javascript.Level.TRACE;
85
- case LogLevel.WARN:
86
- return log4javascript.Level.WARN;
87
- default:
88
- throw new Error(`invalid level ${level}`);
89
- }
90
- }
91
- }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWxldmVsLmNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lvbmljLWxvZ2dpbmctc2VydmljZS9zcmMvbGliL2xvZy1sZXZlbC5jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLGNBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFN0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBRTdCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQTJCO1FBQ2hFLFFBQVEsS0FBSyxFQUFFO1lBQ2QsS0FBSyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUc7Z0JBQzVCLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUNyQixLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSztnQkFDOUIsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLEtBQUssY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLO2dCQUM5QixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDdkIsS0FBSyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUs7Z0JBQzlCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN2QixLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSTtnQkFDN0IsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ3RCLEtBQUssY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHO2dCQUM1QixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDckIsS0FBSyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUs7Z0JBQzlCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN2QixLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSTtnQkFDN0IsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ3RCO2dCQUNDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDM0M7SUFDRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQWE7UUFDMUMsUUFBUSxLQUFLLEVBQUU7WUFDZCxLQUFLLEtBQUs7Z0JBQ1QsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ3JCLEtBQUssT0FBTztnQkFDWCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDdkIsS0FBSyxPQUFPO2dCQUNYLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN2QixLQUFLLE9BQU87Z0JBQ1gsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLEtBQUssTUFBTTtnQkFDVixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDdEIsS0FBSyxLQUFLO2dCQUNULE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUNyQixLQUFLLE9BQU87Z0JBQ1gsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLEtBQUssTUFBTTtnQkFDVixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDdEI7Z0JBQ0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUMzQztJQUNGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFlO1FBQ2xELFFBQVEsS0FBSyxFQUFFO1lBQ2QsS0FBSyxRQUFRLENBQUMsR0FBRztnQkFDaEIsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNqQyxLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNsQixPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ25DLEtBQUssUUFBUSxDQUFDLEtBQUs7Z0JBQ2xCLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkMsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDbEIsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNuQyxLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNqQixPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ2xDLEtBQUssUUFBUSxDQUFDLEdBQUc7Z0JBQ2hCLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDakMsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDbEIsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNuQyxLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNqQixPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ2xDO2dCQUNDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDM0M7SUFDRixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBsb2c0amF2YXNjcmlwdCBmcm9tIFwibG9nNGphdmFzY3JpcHRcIjtcblxuaW1wb3J0IHsgTG9nTGV2ZWwgfSBmcm9tIFwiLi9sb2ctbGV2ZWwubW9kZWxcIjtcblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIGNvbnZlcnRpbmcgbG9nIGxldmVscyBmcm9tIGFuZCB0byBkaWZmZXJlbnQgZGF0YSB0eXBlLlxuICovXG5leHBvcnQgY2xhc3MgTG9nTGV2ZWxDb252ZXJ0ZXIge1xuXG5cdC8qKlxuXHQgKiBDb252ZXJ0cyBsb2c0amF2YXNjcmlwdC5MZXZlbCB0byBpbnRlcm5hbCBMb2dMZXZlbC5cblx0ICpcblx0ICogQHBhcmFtIGxldmVsIGxvZzRqYXZhc2NyaXB0J3MgZGF0YSB0eXBlXG5cdCAqIEByZXR1cm4gaW50ZXJuYWwgZGF0YSB0eXBlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBsZXZlbEZyb21Mb2c0SmF2YXNjcmlwdChsZXZlbDogbG9nNGphdmFzY3JpcHQuTGV2ZWwpOiBMb2dMZXZlbCB7XG5cdFx0c3dpdGNoIChsZXZlbCkge1xuXHRcdFx0Y2FzZSBsb2c0amF2YXNjcmlwdC5MZXZlbC5BTEw6XG5cdFx0XHRcdHJldHVybiBMb2dMZXZlbC5BTEw7XG5cdFx0XHRjYXNlIGxvZzRqYXZhc2NyaXB0LkxldmVsLkRFQlVHOlxuXHRcdFx0XHRyZXR1cm4gTG9nTGV2ZWwuREVCVUc7XG5cdFx0XHRjYXNlIGxvZzRqYXZhc2NyaXB0LkxldmVsLkVSUk9SOlxuXHRcdFx0XHRyZXR1cm4gTG9nTGV2ZWwuRVJST1I7XG5cdFx0XHRjYXNlIGxvZzRqYXZhc2NyaXB0LkxldmVsLkZBVEFMOlxuXHRcdFx0XHRyZXR1cm4gTG9nTGV2ZWwuRkFUQUw7XG5cdFx0XHRjYXNlIGxvZzRqYXZhc2NyaXB0LkxldmVsLklORk86XG5cdFx0XHRcdHJldHVybiBMb2dMZXZlbC5JTkZPO1xuXHRcdFx0Y2FzZSBsb2c0amF2YXNjcmlwdC5MZXZlbC5PRkY6XG5cdFx0XHRcdHJldHVybiBMb2dMZXZlbC5PRkY7XG5cdFx0XHRjYXNlIGxvZzRqYXZhc2NyaXB0LkxldmVsLlRSQUNFOlxuXHRcdFx0XHRyZXR1cm4gTG9nTGV2ZWwuVFJBQ0U7XG5cdFx0XHRjYXNlIGxvZzRqYXZhc2NyaXB0LkxldmVsLldBUk46XG5cdFx0XHRcdHJldHVybiBMb2dMZXZlbC5XQVJOO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGxldmVsICR7bGV2ZWx9YCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlcnRzIHN0cmluZyByZXByZXNlbnRhdGlvbiB0byBpbnRlcm5hbCBMb2dMZXZlbC5cblx0ICpcblx0ICogQHBhcmFtIGxldmVsIHN0cmluZyByZXByZXNlbnRhdGlvblxuXHQgKiBAcmV0dXJuIGludGVybmFsIGRhdGEgdHlwZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgbGV2ZWxGcm9tU3RyaW5nKGxldmVsOiBzdHJpbmcpOiBMb2dMZXZlbCB7XG5cdFx0c3dpdGNoIChsZXZlbCkge1xuXHRcdFx0Y2FzZSBcIkFMTFwiOlxuXHRcdFx0XHRyZXR1cm4gTG9nTGV2ZWwuQUxMO1xuXHRcdFx0Y2FzZSBcIkRFQlVHXCI6XG5cdFx0XHRcdHJldHVybiBMb2dMZXZlbC5ERUJVRztcblx0XHRcdGNhc2UgXCJFUlJPUlwiOlxuXHRcdFx0XHRyZXR1cm4gTG9nTGV2ZWwuRVJST1I7XG5cdFx0XHRjYXNlIFwiRkFUQUxcIjpcblx0XHRcdFx0cmV0dXJuIExvZ0xldmVsLkZBVEFMO1xuXHRcdFx0Y2FzZSBcIklORk9cIjpcblx0XHRcdFx0cmV0dXJuIExvZ0xldmVsLklORk87XG5cdFx0XHRjYXNlIFwiT0ZGXCI6XG5cdFx0XHRcdHJldHVybiBMb2dMZXZlbC5PRkY7XG5cdFx0XHRjYXNlIFwiVFJBQ0VcIjpcblx0XHRcdFx0cmV0dXJuIExvZ0xldmVsLlRSQUNFO1xuXHRcdFx0Y2FzZSBcIldBUk5cIjpcblx0XHRcdFx0cmV0dXJuIExvZ0xldmVsLldBUk47XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbGV2ZWwgJHtsZXZlbH1gKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ29udmVydHMgaW50ZXJuYWwgTG9nTGV2ZWwgdG8gbG9nNGphdmFzY3JpcHQuTGV2ZWwuXG5cdCAqXG5cdCAqIEBwYXJhbSBpbnRlcm5hbCBkYXRhIHR5cGUuXG5cdCAqIEByZXR1cm4gbGV2ZWwgbG9nNGphdmFzY3JpcHQncyBkYXRhIHR5cGVcblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgbGV2ZWxUb0xvZzRKYXZhc2NyaXB0KGxldmVsOiBMb2dMZXZlbCk6IGxvZzRqYXZhc2NyaXB0LkxldmVsIHtcblx0XHRzd2l0Y2ggKGxldmVsKSB7XG5cdFx0XHRjYXNlIExvZ0xldmVsLkFMTDpcblx0XHRcdFx0cmV0dXJuIGxvZzRqYXZhc2NyaXB0LkxldmVsLkFMTDtcblx0XHRcdGNhc2UgTG9nTGV2ZWwuREVCVUc6XG5cdFx0XHRcdHJldHVybiBsb2c0amF2YXNjcmlwdC5MZXZlbC5ERUJVRztcblx0XHRcdGNhc2UgTG9nTGV2ZWwuRVJST1I6XG5cdFx0XHRcdHJldHVybiBsb2c0amF2YXNjcmlwdC5MZXZlbC5FUlJPUjtcblx0XHRcdGNhc2UgTG9nTGV2ZWwuRkFUQUw6XG5cdFx0XHRcdHJldHVybiBsb2c0amF2YXNjcmlwdC5MZXZlbC5GQVRBTDtcblx0XHRcdGNhc2UgTG9nTGV2ZWwuSU5GTzpcblx0XHRcdFx0cmV0dXJuIGxvZzRqYXZhc2NyaXB0LkxldmVsLklORk87XG5cdFx0XHRjYXNlIExvZ0xldmVsLk9GRjpcblx0XHRcdFx0cmV0dXJuIGxvZzRqYXZhc2NyaXB0LkxldmVsLk9GRjtcblx0XHRcdGNhc2UgTG9nTGV2ZWwuVFJBQ0U6XG5cdFx0XHRcdHJldHVybiBsb2c0amF2YXNjcmlwdC5MZXZlbC5UUkFDRTtcblx0XHRcdGNhc2UgTG9nTGV2ZWwuV0FSTjpcblx0XHRcdFx0cmV0dXJuIGxvZzRqYXZhc2NyaXB0LkxldmVsLldBUk47XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbGV2ZWwgJHtsZXZlbH1gKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -1,191 +0,0 @@
1
- import * as log4javascript from "log4javascript";
2
- import { LogLevelConverter } from "./log-level.converter";
3
- /**
4
- * Logger for writing log messages.
5
- */
6
- export class Logger {
7
- /**
8
- * Creates a new instance of a logger.
9
- */
10
- constructor(logger) {
11
- if (typeof logger === "undefined") {
12
- this.logger = log4javascript.getRootLogger();
13
- }
14
- else if (typeof logger === "string") {
15
- this.logger = log4javascript.getLogger(logger);
16
- }
17
- else {
18
- this.logger = logger;
19
- }
20
- }
21
- /**
22
- * Get the log level.
23
- */
24
- getLogLevel() {
25
- return LogLevelConverter.levelFromLog4Javascript(this.logger.getLevel());
26
- }
27
- /**
28
- * Set the log level.
29
- *
30
- * @param level the new log level
31
- */
32
- setLogLevel(level) {
33
- this.logger.setLevel(LogLevelConverter.levelToLog4Javascript(level));
34
- }
35
- /**
36
- * Logs a message at level TRACE.
37
- *
38
- * @param methodName name of the method
39
- * @param params optional parameters to be logged; objects will be formatted as JSON
40
- */
41
- trace(methodName, ...params) {
42
- if (this.logger.isTraceEnabled()) {
43
- const args = [methodName];
44
- for (const param of params) {
45
- args.push(this.formatArgument(param));
46
- }
47
- this.logger.trace.apply(this.logger, args);
48
- }
49
- }
50
- /**
51
- * Logs a message at level DEBUG.
52
- *
53
- * @param methodName name of the method
54
- * @param params optional parameters to be logged; objects will be formatted as JSON
55
- */
56
- debug(methodName, ...params) {
57
- if (this.logger.isDebugEnabled()) {
58
- const args = [methodName];
59
- for (const param of params) {
60
- args.push(this.formatArgument(param));
61
- }
62
- this.logger.debug.apply(this.logger, args);
63
- }
64
- }
65
- /**
66
- * Logs a message at level INFO.
67
- *
68
- * @param methodName name of the method
69
- * @param params optional parameters to be logged; objects will be formatted as JSON
70
- */
71
- info(methodName, ...params) {
72
- if (this.logger.isInfoEnabled()) {
73
- const args = [methodName];
74
- for (const param of params) {
75
- args.push(this.formatArgument(param));
76
- }
77
- this.logger.info.apply(this.logger, args);
78
- }
79
- }
80
- /**
81
- * Logs a message at level WARN.
82
- *
83
- * @param methodName name of the method
84
- * @param params optional parameters to be logged; objects will be formatted as JSON
85
- */
86
- warn(methodName, ...params) {
87
- if (this.logger.isWarnEnabled()) {
88
- const args = [methodName];
89
- for (const param of params) {
90
- args.push(this.formatArgument(param));
91
- }
92
- this.logger.warn.apply(this.logger, args);
93
- }
94
- }
95
- /**
96
- * Logs a message at level ERROR.
97
- *
98
- * @param methodName name of the method
99
- * @param params optional parameters to be logged; objects will be formatted as JSON
100
- */
101
- error(methodName, ...params) {
102
- if (this.logger.isErrorEnabled()) {
103
- const args = [methodName];
104
- for (const param of params) {
105
- args.push(this.formatArgument(param));
106
- }
107
- this.logger.error.apply(this.logger, args);
108
- }
109
- }
110
- /**
111
- * Logs a message at level FATAL.
112
- *
113
- * @param methodName name of the method
114
- * @param params optional parameters to be logged; objects will be formatted as JSON
115
- */
116
- fatal(methodName, ...params) {
117
- if (this.logger.isFatalEnabled()) {
118
- const args = [methodName];
119
- for (const param of params) {
120
- args.push(this.formatArgument(param));
121
- }
122
- this.logger.fatal.apply(this.logger, args);
123
- }
124
- }
125
- /**
126
- * Logs the entry into a method.
127
- * The method name will be logged at level INFO, the parameters at level DEBUG.
128
- *
129
- * @param methodName name of the method
130
- * @param params optional parameters to be logged; objects will be formatted as JSON
131
- */
132
- entry(methodName, ...params) {
133
- if (this.logger.isInfoEnabled()) {
134
- const args = [methodName, "entry"];
135
- if (this.logger.isDebugEnabled()) {
136
- for (const param of params) {
137
- args.push(this.formatArgument(param));
138
- }
139
- }
140
- this.logger.info.apply(this.logger, args);
141
- }
142
- }
143
- /**
144
- * Logs the exit of a method.
145
- * The method name will be logged at level INFO, the parameters at level DEBUG.
146
- *
147
- * @param methodName name of the method
148
- * @param params optional parameters to be logged; objects will be formatted as JSON
149
- */
150
- exit(methodName, ...params) {
151
- if (this.logger.isInfoEnabled()) {
152
- const args = [methodName, "exit"];
153
- if (this.logger.isDebugEnabled()) {
154
- for (const param of params) {
155
- args.push(this.formatArgument(param));
156
- }
157
- }
158
- this.logger.info.apply(this.logger, args);
159
- }
160
- }
161
- /**
162
- * Formats the given argument.
163
- */
164
- formatArgument(arg) {
165
- if (typeof arg === "string") {
166
- return arg;
167
- }
168
- else if (typeof arg === "number") {
169
- return arg.toString();
170
- }
171
- else if (arg instanceof Error) {
172
- // JSON.stringify() returns here "{ }"
173
- return arg.toString();
174
- }
175
- else {
176
- try {
177
- return JSON.stringify(arg);
178
- }
179
- catch (e) {
180
- return e.message;
181
- }
182
- }
183
- }
184
- /**
185
- * Returns the internal Logger (for unit tests only).
186
- */
187
- getInternalLogger() {
188
- return this.logger;
189
- }
190
- }
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW9uaWMtbG9nZ2luZy1zZXJ2aWNlL3NyYy9saWIvbG9nZ2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxjQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQUlsQjs7T0FFRztJQUNILFlBQVksTUFBcUI7UUFDaEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDN0M7YUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDL0M7YUFBTTtZQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ3JCO0lBQ0YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNqQixPQUFPLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxLQUFlO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFVBQWtCLEVBQUUsR0FBRyxNQUFhO1FBQ2hELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNqQyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO2dCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzNDO0lBQ0YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFVBQWtCLEVBQUUsR0FBRyxNQUFhO1FBQ2hELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNqQyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO2dCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzNDO0lBQ0YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksSUFBSSxDQUFDLFVBQWtCLEVBQUUsR0FBRyxNQUFhO1FBQy9DLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUNoQyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO2dCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzFDO0lBQ0YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksSUFBSSxDQUFDLFVBQWtCLEVBQUUsR0FBRyxNQUFhO1FBQy9DLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUNoQyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO2dCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzFDO0lBQ0YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFVBQWtCLEVBQUUsR0FBRyxNQUFhO1FBQ2hELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNqQyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO2dCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzNDO0lBQ0YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFVBQWtCLEVBQUUsR0FBRyxNQUFhO1FBQ2hELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNqQyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO2dCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzNDO0lBQ0YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxVQUFrQixFQUFFLEdBQUcsTUFBYTtRQUNoRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbkMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUNqQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtvQkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ3RDO2FBQ0Q7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMxQztJQUNGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxJQUFJLENBQUMsVUFBa0IsRUFBRSxHQUFHLE1BQWE7UUFDL0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDakMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUN0QzthQUNEO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDMUM7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjLENBQUMsR0FBUTtRQUM3QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUM1QixPQUFPLEdBQUcsQ0FBQztTQUNYO2FBQU0sSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDbkMsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdEI7YUFBTSxJQUFJLEdBQUcsWUFBWSxLQUFLLEVBQUU7WUFDaEMsc0NBQXNDO1lBQ3RDLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3RCO2FBQU07WUFDTixJQUFJO2dCQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMzQjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQzthQUNqQjtTQUNEO0lBQ0YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBsb2c0amF2YXNjcmlwdCBmcm9tIFwibG9nNGphdmFzY3JpcHRcIjtcblxuaW1wb3J0IHsgTG9nTGV2ZWxDb252ZXJ0ZXIgfSBmcm9tIFwiLi9sb2ctbGV2ZWwuY29udmVydGVyXCI7XG5pbXBvcnQgeyBMb2dMZXZlbCB9IGZyb20gXCIuL2xvZy1sZXZlbC5tb2RlbFwiO1xuXG4vKipcbiAqIExvZ2dlciBmb3Igd3JpdGluZyBsb2cgbWVzc2FnZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dnZXIge1xuXG5cdHByaXZhdGUgbG9nZ2VyOiBsb2c0amF2YXNjcmlwdC5Mb2dnZXI7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYSBsb2dnZXIuXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihsb2dnZXI/OiBzdHJpbmcgfCBhbnkpIHtcblx0XHRpZiAodHlwZW9mIGxvZ2dlciA9PT0gXCJ1bmRlZmluZWRcIikge1xuXHRcdFx0dGhpcy5sb2dnZXIgPSBsb2c0amF2YXNjcmlwdC5nZXRSb290TG9nZ2VyKCk7XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgbG9nZ2VyID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR0aGlzLmxvZ2dlciA9IGxvZzRqYXZhc2NyaXB0LmdldExvZ2dlcihsb2dnZXIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBsb2cgbGV2ZWwuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0TG9nTGV2ZWwoKTogTG9nTGV2ZWwge1xuXHRcdHJldHVybiBMb2dMZXZlbENvbnZlcnRlci5sZXZlbEZyb21Mb2c0SmF2YXNjcmlwdCh0aGlzLmxvZ2dlci5nZXRMZXZlbCgpKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXQgdGhlIGxvZyBsZXZlbC5cblx0ICpcblx0ICogQHBhcmFtIGxldmVsIHRoZSBuZXcgbG9nIGxldmVsXG5cdCAqL1xuXHRwdWJsaWMgc2V0TG9nTGV2ZWwobGV2ZWw6IExvZ0xldmVsKTogdm9pZCB7XG5cdFx0dGhpcy5sb2dnZXIuc2V0TGV2ZWwoTG9nTGV2ZWxDb252ZXJ0ZXIubGV2ZWxUb0xvZzRKYXZhc2NyaXB0KGxldmVsKSk7XG5cdH1cblxuXHQvKipcblx0ICogTG9ncyBhIG1lc3NhZ2UgYXQgbGV2ZWwgVFJBQ0UuXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXRob2ROYW1lIG5hbWUgb2YgdGhlIG1ldGhvZFxuXHQgKiBAcGFyYW0gcGFyYW1zIG9wdGlvbmFsIHBhcmFtZXRlcnMgdG8gYmUgbG9nZ2VkOyBvYmplY3RzIHdpbGwgYmUgZm9ybWF0dGVkIGFzIEpTT05cblx0ICovXG5cdHB1YmxpYyB0cmFjZShtZXRob2ROYW1lOiBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pOiB2b2lkIHtcblx0XHRpZiAodGhpcy5sb2dnZXIuaXNUcmFjZUVuYWJsZWQoKSkge1xuXHRcdFx0Y29uc3QgYXJncyA9IFttZXRob2ROYW1lXTtcblx0XHRcdGZvciAoY29uc3QgcGFyYW0gb2YgcGFyYW1zKSB7XG5cdFx0XHRcdGFyZ3MucHVzaCh0aGlzLmZvcm1hdEFyZ3VtZW50KHBhcmFtKSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxvZ2dlci50cmFjZS5hcHBseSh0aGlzLmxvZ2dlciwgYXJncyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIExvZ3MgYSBtZXNzYWdlIGF0IGxldmVsIERFQlVHLlxuXHQgKlxuXHQgKiBAcGFyYW0gbWV0aG9kTmFtZSBuYW1lIG9mIHRoZSBtZXRob2Rcblx0ICogQHBhcmFtIHBhcmFtcyBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIGJlIGxvZ2dlZDsgb2JqZWN0cyB3aWxsIGJlIGZvcm1hdHRlZCBhcyBKU09OXG5cdCAqL1xuXHRwdWJsaWMgZGVidWcobWV0aG9kTmFtZTogc3RyaW5nLCAuLi5wYXJhbXM6IGFueVtdKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMubG9nZ2VyLmlzRGVidWdFbmFibGVkKCkpIHtcblx0XHRcdGNvbnN0IGFyZ3MgPSBbbWV0aG9kTmFtZV07XG5cdFx0XHRmb3IgKGNvbnN0IHBhcmFtIG9mIHBhcmFtcykge1xuXHRcdFx0XHRhcmdzLnB1c2godGhpcy5mb3JtYXRBcmd1bWVudChwYXJhbSkpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5sb2dnZXIuZGVidWcuYXBwbHkodGhpcy5sb2dnZXIsIGFyZ3MpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBMb2dzIGEgbWVzc2FnZSBhdCBsZXZlbCBJTkZPLlxuXHQgKlxuXHQgKiBAcGFyYW0gbWV0aG9kTmFtZSBuYW1lIG9mIHRoZSBtZXRob2Rcblx0ICogQHBhcmFtIHBhcmFtcyBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIGJlIGxvZ2dlZDsgb2JqZWN0cyB3aWxsIGJlIGZvcm1hdHRlZCBhcyBKU09OXG5cdCAqL1xuXHRwdWJsaWMgaW5mbyhtZXRob2ROYW1lOiBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pOiB2b2lkIHtcblx0XHRpZiAodGhpcy5sb2dnZXIuaXNJbmZvRW5hYmxlZCgpKSB7XG5cdFx0XHRjb25zdCBhcmdzID0gW21ldGhvZE5hbWVdO1xuXHRcdFx0Zm9yIChjb25zdCBwYXJhbSBvZiBwYXJhbXMpIHtcblx0XHRcdFx0YXJncy5wdXNoKHRoaXMuZm9ybWF0QXJndW1lbnQocGFyYW0pKTtcblx0XHRcdH1cblx0XHRcdHRoaXMubG9nZ2VyLmluZm8uYXBwbHkodGhpcy5sb2dnZXIsIGFyZ3MpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBMb2dzIGEgbWVzc2FnZSBhdCBsZXZlbCBXQVJOLlxuXHQgKlxuXHQgKiBAcGFyYW0gbWV0aG9kTmFtZSBuYW1lIG9mIHRoZSBtZXRob2Rcblx0ICogQHBhcmFtIHBhcmFtcyBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIGJlIGxvZ2dlZDsgb2JqZWN0cyB3aWxsIGJlIGZvcm1hdHRlZCBhcyBKU09OXG5cdCAqL1xuXHRwdWJsaWMgd2FybihtZXRob2ROYW1lOiBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pOiB2b2lkIHtcblx0XHRpZiAodGhpcy5sb2dnZXIuaXNXYXJuRW5hYmxlZCgpKSB7XG5cdFx0XHRjb25zdCBhcmdzID0gW21ldGhvZE5hbWVdO1xuXHRcdFx0Zm9yIChjb25zdCBwYXJhbSBvZiBwYXJhbXMpIHtcblx0XHRcdFx0YXJncy5wdXNoKHRoaXMuZm9ybWF0QXJndW1lbnQocGFyYW0pKTtcblx0XHRcdH1cblx0XHRcdHRoaXMubG9nZ2VyLndhcm4uYXBwbHkodGhpcy5sb2dnZXIsIGFyZ3MpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBMb2dzIGEgbWVzc2FnZSBhdCBsZXZlbCBFUlJPUi5cblx0ICpcblx0ICogQHBhcmFtIG1ldGhvZE5hbWUgbmFtZSBvZiB0aGUgbWV0aG9kXG5cdCAqIEBwYXJhbSBwYXJhbXMgb3B0aW9uYWwgcGFyYW1ldGVycyB0byBiZSBsb2dnZWQ7IG9iamVjdHMgd2lsbCBiZSBmb3JtYXR0ZWQgYXMgSlNPTlxuXHQgKi9cblx0cHVibGljIGVycm9yKG1ldGhvZE5hbWU6IHN0cmluZywgLi4ucGFyYW1zOiBhbnlbXSk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmxvZ2dlci5pc0Vycm9yRW5hYmxlZCgpKSB7XG5cdFx0XHRjb25zdCBhcmdzID0gW21ldGhvZE5hbWVdO1xuXHRcdFx0Zm9yIChjb25zdCBwYXJhbSBvZiBwYXJhbXMpIHtcblx0XHRcdFx0YXJncy5wdXNoKHRoaXMuZm9ybWF0QXJndW1lbnQocGFyYW0pKTtcblx0XHRcdH1cblx0XHRcdHRoaXMubG9nZ2VyLmVycm9yLmFwcGx5KHRoaXMubG9nZ2VyLCBhcmdzKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTG9ncyBhIG1lc3NhZ2UgYXQgbGV2ZWwgRkFUQUwuXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXRob2ROYW1lIG5hbWUgb2YgdGhlIG1ldGhvZFxuXHQgKiBAcGFyYW0gcGFyYW1zIG9wdGlvbmFsIHBhcmFtZXRlcnMgdG8gYmUgbG9nZ2VkOyBvYmplY3RzIHdpbGwgYmUgZm9ybWF0dGVkIGFzIEpTT05cblx0ICovXG5cdHB1YmxpYyBmYXRhbChtZXRob2ROYW1lOiBzdHJpbmcsIC4uLnBhcmFtczogYW55W10pOiB2b2lkIHtcblx0XHRpZiAodGhpcy5sb2dnZXIuaXNGYXRhbEVuYWJsZWQoKSkge1xuXHRcdFx0Y29uc3QgYXJncyA9IFttZXRob2ROYW1lXTtcblx0XHRcdGZvciAoY29uc3QgcGFyYW0gb2YgcGFyYW1zKSB7XG5cdFx0XHRcdGFyZ3MucHVzaCh0aGlzLmZvcm1hdEFyZ3VtZW50KHBhcmFtKSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxvZ2dlci5mYXRhbC5hcHBseSh0aGlzLmxvZ2dlciwgYXJncyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIExvZ3MgdGhlIGVudHJ5IGludG8gYSBtZXRob2QuXG5cdCAqIFRoZSBtZXRob2QgbmFtZSB3aWxsIGJlIGxvZ2dlZCBhdCBsZXZlbCBJTkZPLCB0aGUgcGFyYW1ldGVycyBhdCBsZXZlbCBERUJVRy5cblx0ICpcblx0ICogQHBhcmFtIG1ldGhvZE5hbWUgbmFtZSBvZiB0aGUgbWV0aG9kXG5cdCAqIEBwYXJhbSBwYXJhbXMgb3B0aW9uYWwgcGFyYW1ldGVycyB0byBiZSBsb2dnZWQ7IG9iamVjdHMgd2lsbCBiZSBmb3JtYXR0ZWQgYXMgSlNPTlxuXHQgKi9cblx0cHVibGljIGVudHJ5KG1ldGhvZE5hbWU6IHN0cmluZywgLi4ucGFyYW1zOiBhbnlbXSk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmxvZ2dlci5pc0luZm9FbmFibGVkKCkpIHtcblx0XHRcdGNvbnN0IGFyZ3MgPSBbbWV0aG9kTmFtZSwgXCJlbnRyeVwiXTtcblx0XHRcdGlmICh0aGlzLmxvZ2dlci5pc0RlYnVnRW5hYmxlZCgpKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgcGFyYW0gb2YgcGFyYW1zKSB7XG5cdFx0XHRcdFx0YXJncy5wdXNoKHRoaXMuZm9ybWF0QXJndW1lbnQocGFyYW0pKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5sb2dnZXIuaW5mby5hcHBseSh0aGlzLmxvZ2dlciwgYXJncyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIExvZ3MgdGhlIGV4aXQgb2YgYSBtZXRob2QuXG5cdCAqIFRoZSBtZXRob2QgbmFtZSB3aWxsIGJlIGxvZ2dlZCBhdCBsZXZlbCBJTkZPLCB0aGUgcGFyYW1ldGVycyBhdCBsZXZlbCBERUJVRy5cblx0ICpcblx0ICogQHBhcmFtIG1ldGhvZE5hbWUgbmFtZSBvZiB0aGUgbWV0aG9kXG5cdCAqIEBwYXJhbSBwYXJhbXMgb3B0aW9uYWwgcGFyYW1ldGVycyB0byBiZSBsb2dnZWQ7IG9iamVjdHMgd2lsbCBiZSBmb3JtYXR0ZWQgYXMgSlNPTlxuXHQgKi9cblx0cHVibGljIGV4aXQobWV0aG9kTmFtZTogc3RyaW5nLCAuLi5wYXJhbXM6IGFueVtdKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMubG9nZ2VyLmlzSW5mb0VuYWJsZWQoKSkge1xuXHRcdFx0Y29uc3QgYXJncyA9IFttZXRob2ROYW1lLCBcImV4aXRcIl07XG5cdFx0XHRpZiAodGhpcy5sb2dnZXIuaXNEZWJ1Z0VuYWJsZWQoKSkge1xuXHRcdFx0XHRmb3IgKGNvbnN0IHBhcmFtIG9mIHBhcmFtcykge1xuXHRcdFx0XHRcdGFyZ3MucHVzaCh0aGlzLmZvcm1hdEFyZ3VtZW50KHBhcmFtKSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHRoaXMubG9nZ2VyLmluZm8uYXBwbHkodGhpcy5sb2dnZXIsIGFyZ3MpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBGb3JtYXRzIHRoZSBnaXZlbiBhcmd1bWVudC5cblx0ICovXG5cdHB1YmxpYyBmb3JtYXRBcmd1bWVudChhcmc6IGFueSk6IHN0cmluZyB7XG5cdFx0aWYgKHR5cGVvZiBhcmcgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdHJldHVybiBhcmc7XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgYXJnID09PSBcIm51bWJlclwiKSB7XG5cdFx0XHRyZXR1cm4gYXJnLnRvU3RyaW5nKCk7XG5cdFx0fSBlbHNlIGlmIChhcmcgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdFx0Ly8gSlNPTi5zdHJpbmdpZnkoKSByZXR1cm5zIGhlcmUgXCJ7IH1cIlxuXHRcdFx0cmV0dXJuIGFyZy50b1N0cmluZygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJnKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0cmV0dXJuIGUubWVzc2FnZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgaW50ZXJuYWwgTG9nZ2VyIChmb3IgdW5pdCB0ZXN0cyBvbmx5KS5cblx0ICovXG5cdHB1YmxpYyBnZXRJbnRlcm5hbExvZ2dlcigpOiBsb2c0amF2YXNjcmlwdC5Mb2dnZXIge1xuXHRcdHJldHVybiB0aGlzLmxvZ2dlcjtcblx0fVxufVxuIl19