@rudderstack/integrations-lib 0.2.4 → 0.2.5
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/build/network/clients/axios_client.test.js +53 -6
- package/build/structured-logger.d.ts +2 -0
- package/build/structured-logger.d.ts.map +1 -1
- package/build/structured-logger.js +11 -8
- package/build/structured-logger.test.d.ts +2 -0
- package/build/structured-logger.test.d.ts.map +1 -0
- package/build/structured-logger.test.js +118 -0
- package/build/utils/json.d.ts.map +1 -1
- package/build/utils/json.js +13 -3
- package/build/utils/json.test.js +703 -1
- package/build/utils/sem.test.js +81 -1
- package/package.json +1 -1
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const axios_1 =
|
|
29
|
+
const axios_1 = __importStar(require("axios"));
|
|
7
30
|
const axios_mock_adapter_1 = __importDefault(require("axios-mock-adapter"));
|
|
8
31
|
const axios_client_1 = require("./axios_client"); // Import the AxiosClient class
|
|
9
32
|
// Mock Axios for testing
|
|
@@ -38,7 +61,7 @@ describe('AxiosClient', () => {
|
|
|
38
61
|
mockAxios.onPost('https://example.com').reply(201, 'POST response');
|
|
39
62
|
const response = (await axiosClient.post('https://example.com', {
|
|
40
63
|
foo: 'bar',
|
|
41
|
-
}));
|
|
64
|
+
}, { timeout: 1000 }));
|
|
42
65
|
expect(response.type).toBe('success');
|
|
43
66
|
expect(response.statusCode).toBe(201);
|
|
44
67
|
expect(response.responseBody).toBe('POST response');
|
|
@@ -49,7 +72,7 @@ describe('AxiosClient', () => {
|
|
|
49
72
|
mockAxios.onPut('https://example.com').reply(204);
|
|
50
73
|
const response = (await axiosClient.put('https://example.com', {
|
|
51
74
|
foo: 'bar',
|
|
52
|
-
}));
|
|
75
|
+
}, { timeout: 100 }));
|
|
53
76
|
expect(response.type).toBe('success');
|
|
54
77
|
expect(response.statusCode).toBe(204);
|
|
55
78
|
expect(response.responseBody).toBeUndefined(); // No response body for PUT
|
|
@@ -60,7 +83,7 @@ describe('AxiosClient', () => {
|
|
|
60
83
|
mockAxios.onPatch('https://example.com').reply(200, 'PATCH response');
|
|
61
84
|
const response = (await axiosClient.patch('https://example.com', {
|
|
62
85
|
foo: 'bar',
|
|
63
|
-
}));
|
|
86
|
+
}, { timeout: 500 }));
|
|
64
87
|
expect(response.type).toBe('success');
|
|
65
88
|
expect(response.statusCode).toBe(200);
|
|
66
89
|
expect(response.responseBody).toBe('PATCH response');
|
|
@@ -69,7 +92,9 @@ describe('AxiosClient', () => {
|
|
|
69
92
|
it('should make a DELETE request and receive a response', async () => {
|
|
70
93
|
// Mock the axios.delete method to return a response
|
|
71
94
|
mockAxios.onDelete('https://example.com').reply(204);
|
|
72
|
-
const response = (await axiosClient.delete('https://example.com'
|
|
95
|
+
const response = (await axiosClient.delete('https://example.com', {
|
|
96
|
+
timeout: 420,
|
|
97
|
+
}));
|
|
73
98
|
expect(response.type).toBe('success');
|
|
74
99
|
expect(response.statusCode).toBe(204);
|
|
75
100
|
expect(response.responseBody).toBeUndefined(); // No response body for DELETE
|
|
@@ -185,6 +210,28 @@ describe('AxiosClient', () => {
|
|
|
185
210
|
expect(response.statusCode).toBe(400);
|
|
186
211
|
expect(response.responseBody).toBe('Bad Request Received');
|
|
187
212
|
});
|
|
213
|
+
it('should make a GET request and receive a 500 error when errored with unknown code', async () => {
|
|
214
|
+
// Mock the GET request using axios-mock-adapter
|
|
215
|
+
mockAxios.onGet('https://example.com').reply((config) => {
|
|
216
|
+
const err = axios_1.AxiosError.from('my error message', 'MY_CODE', config);
|
|
217
|
+
return Promise.reject(err);
|
|
218
|
+
});
|
|
219
|
+
const response = (await axiosClient.get('https://example.com'));
|
|
220
|
+
expect(response.type).toBe('client-error');
|
|
221
|
+
expect(response.statusCode).toBe(500);
|
|
222
|
+
expect(response.message).toBe(`Unknown Error:undefined`);
|
|
223
|
+
});
|
|
224
|
+
it('should make a GET request and receive a 500 error when errored with EACCES code', async () => {
|
|
225
|
+
// Mock the GET request using axios-mock-adapter
|
|
226
|
+
mockAxios.onGet('https://example.com').reply((config) => {
|
|
227
|
+
const err = axios_1.AxiosError.from('my error message', 'EACCES', config);
|
|
228
|
+
return Promise.reject(err);
|
|
229
|
+
});
|
|
230
|
+
const response = (await axiosClient.get('https://example.com'));
|
|
231
|
+
expect(response.type).toBe('client-error');
|
|
232
|
+
expect(response.statusCode).toBe(400);
|
|
233
|
+
expect(response.message).toBe('[EACCES] :: Permission denied');
|
|
234
|
+
});
|
|
188
235
|
// should handle application errors (5xx)
|
|
189
236
|
it('should make a GET request and receive a 500 error', async () => {
|
|
190
237
|
// Mock the GET request using axios-mock-adapter
|
|
@@ -216,4 +263,4 @@ describe('AxiosClient', () => {
|
|
|
216
263
|
});
|
|
217
264
|
});
|
|
218
265
|
});
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3NfY2xpZW50LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9jbGllbnRzL2F4aW9zX2NsaWVudC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLDRFQUE2QztBQUM3QyxpREFBNkMsQ0FBQywrQkFBK0I7QUFPN0UseUJBQXlCO0FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDeEIsR0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBWTtJQUMxQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0NBQy9ELENBQUMsQ0FBQyxDQUFDO0FBRUosYUFBYTtBQUNiLFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzNCLElBQUksV0FBd0IsQ0FBQztJQUM3QixJQUFJLFNBQVMsQ0FBQztJQUVkLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxTQUFTLEdBQUcsSUFBSSw0QkFBVyxDQUFDLGVBQUssQ0FBQyxDQUFDLENBQUMsaUNBQWlDO1FBQ3JFLFdBQVcsR0FBRyxJQUFJLDBCQUFXLEVBQUUsQ0FBQyxDQUFDLGtEQUFrRDtJQUNyRixDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLGlEQUFpRDtRQUNqRCxFQUFFLENBQUMsa0RBQWtELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDaEUsZ0RBQWdEO1lBQ2hELFNBQVMsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxF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QztZQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0NBQW9DO1FBQ3BDLEVBQUUsQ0FBQyw4REFBOEQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM1RSxnREFBZ0Q7WUFDaEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVsRCxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sV0FBVyxDQUFDLEdBQUcsQ0FDckMscUJBQXFCLENBQ3RCLENBQWtDLENBQUM7WUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IE1vY2tBZGFwdGVyIGZyb20gJ2F4aW9zLW1vY2stYWRhcHRlcic7XG5pbXBvcnQgeyBBeGlvc0NsaWVudCB9IGZyb20gJy4vYXhpb3NfY2xpZW50JzsgLy8gSW1wb3J0IHRoZSBBeGlvc0NsaWVudCBjbGFzc1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25FcnJvckFwaVJlc3BvbnNlLFxuICBDbGllbnRFcnJvckFwaVJlc3BvbnNlLFxuICBTdWNjZXNzZnVsQXBpUmVzcG9uc2UsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBNb2NrIEF4aW9zIGZvciB0ZXN0aW5nXG5qZXN0Lm1vY2soJ2F4aW9zJywgKCkgPT4gKHtcbiAgLi4uKGplc3QucmVxdWlyZUFjdHVhbCgnYXhpb3MnKSBhcyBvYmplY3QpLFxuICBjcmVhdGU6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoamVzdC5yZXF1aXJlQWN0dWFsKCdheGlvcycpKSxcbn0pKTtcblxuLy8gVGVzdCBjYXNlc1xuZGVzY3JpYmUoJ0F4aW9zQ2xpZW50JywgKCkgPT4ge1xuICBsZXQgYXhpb3NDbGllbnQ6IEF4aW9zQ2xpZW50O1xuICBsZXQgbW9ja0F4aW9zO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG1vY2tBeGlvcyA9IG5ldyBNb2NrQWRhcHRlcihheGlvcyk7IC8vIENyZWF0ZSBhIE1vY2tBZGFwdGVyIGZvciBBeGlvc1xuICAgIGF4aW9zQ2xpZW50ID0gbmV3IEF4aW9zQ2xpZW50KCk7IC8vIENyZWF0ZSBhIG5ldyBBeGlvc0NsaWVudCBpbnN0YW5jZSBmb3IgZWFjaCB0ZXN0XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgbW9ja0F4aW9zLnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2hhcHB5IGZsb3cgdGVzdHMnLCAoKSA9PiB7XG4gICAgLy8gU2NlbmFyaW8gMTogR0VUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZVxuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgcmVzcG9uc2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwMCwgJ0dFVCByZXNwb25zZScpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZ2V0KFxuICAgICAgICAnaHR0cHM6Ly9leGFtcGxlLmNvbScsXG4gICAgICApKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnR0VUIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyAyOiBQT1NUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZVxuICAgIGl0KCdzaG91bGQgbWFrZSBhIFBPU1QgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgYXhpb3MucG9zdCBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vblBvc3QoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDEsICdQT1NUIHJlc3BvbnNlJyk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LnBvc3QoJ2h0dHBzOi8vZXhhbXBsZS5jb20nLCB7XG4gICAgICAgIGZvbzogJ2JhcicsXG4gICAgICB9KSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAxKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BPU1QgcmVzcG9uc2UnKTtcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDM6IFBVVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgcmVzcG9uc2VcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBQVVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgYXhpb3MucHV0IG1ldGhvZCB0byByZXR1cm4gYSByZXNwb25zZVxuICAgICAgbW9ja0F4aW9zLm9uUHV0KCdodHRwczovL2V4YW1wbGUuY29tJykucmVwbHkoMjA0KTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQucHV0KCdodHRwczovL2V4YW1wbGUuY29tJywge1xuICAgICAgICBmb286ICdiYXInLFxuICAgICAgfSkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwNCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlVW5kZWZpbmVkKCk7IC8vIE5vIHJlc3BvbnNlIGJvZHkgZm9yIFBVVFxuICAgIH0pO1xuXG4gICAgLy8gU2NlbmFyaW8gNDogUEFUQ0ggcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgUEFUQ0ggcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgYXhpb3MucGF0Y2ggbWV0aG9kIHRvIHJldHVybiBhIHJlc3BvbnNlXG4gICAgICBtb2NrQXhpb3Mub25QYXRjaCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwMCwgJ1BBVENIIHJlc3BvbnNlJyk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LnBhdGNoKCdodHRwczovL2V4YW1wbGUuY29tJywge1xuICAgICAgICBmb286ICdiYXInLFxuICAgICAgfSkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlKCdQQVRDSCByZXNwb25zZScpO1xuICAgIH0pO1xuXG4gICAgLy8gU2NlbmFyaW8gNTogREVMRVRFIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZVxuICAgIGl0KCdzaG91bGQgbWFrZSBhIERFTEVURSByZXF1ZXN0IGFuZCByZWNlaXZlIGEgcmVzcG9uc2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBheGlvcy5kZWxldGUgbWV0aG9kIHRvIHJldHVybiBhIHJlc3BvbnNlXG4gICAgICBtb2NrQXhpb3Mub25EZWxldGUoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDQpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5kZWxldGUoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwNCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlVW5kZWZpbmVkKCk7IC8vIE5vIHJlc3BvbnNlIGJvZHkgZm9yIERFTEVURVxuICAgIH0pO1xuXG4gICAgLy8gU2NlbmFyaW8gNjogR0VUIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlclxuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwMCwgJ0dFVCByZXNwb25zZScpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICAge30sXG4gICAgICAgIChkYXRhKSA9PiBgUGFyc2VkICR7ZGF0YX1gLFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BhcnNlZCBHRVQgcmVzcG9uc2UnKTtcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDc6IFBPU1QgcmVxdWVzdCB3aXRoIGEgcmVzcG9uc2UgcGFyc2VyXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgUE9TVCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBheGlvcy5wb3N0IG1ldGhvZCB0byByZXR1cm4gYSByZXNwb25zZVxuICAgICAgbW9ja0F4aW9zLm9uUG9zdCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwMSwgJ1BPU1QgcmVzcG9uc2UnKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQucG9zdChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgICB7XG4gICAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgICAge30sXG4gICAgICAgIChkYXRhKSA9PiBgUGFyc2VkICR7ZGF0YX1gLFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAxKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BhcnNlZCBQT1NUIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyA4OiBQVVQgcmVxdWVzdCB3aXRoIGEgcmVzcG9uc2UgcGFyc2VyXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgUFVUIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLnB1dCBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vblB1dCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwNCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LnB1dChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgICB7XG4gICAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgICAge30sXG4gICAgICAgIChkYXRhKSA9PiBgUGFyc2VkICR7ZGF0YX1gLFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjA0KTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BhcnNlZCB1bmRlZmluZWQnKTsgLy8gTm8gcmVzcG9uc2UgYm9keSBmb3IgUFVUXG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyA5OiBQQVRDSCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXJcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBQQVRDSCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBheGlvcy5wYXRjaCBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vblBhdGNoKCdodHRwczovL2V4YW1wbGUuY29tJykucmVwbHkoMjAwLCAnUEFUQ0ggcmVzcG9uc2UnKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQucGF0Y2goXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICAge1xuICAgICAgICAgIGZvbzogJ2JhcicsXG4gICAgICAgIH0sXG4gICAgICAgIHt9LFxuICAgICAgICAoZGF0YSkgPT4gYFBhcnNlZCAke2RhdGF9YCxcbiAgICAgICkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlKCdQYXJzZWQgUEFUQ0ggcmVzcG9uc2UnKTtcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDEwOiBERUxFVEUgcmVxdWVzdCB3aXRoIGEgcmVzcG9uc2UgcGFyc2VyXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgREVMRVRFIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLmRlbGV0ZSBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vbkRlbGV0ZSgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwNCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmRlbGV0ZShcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgICB7fSxcbiAgICAgICAgKGRhdGEpID0+IGBQYXJzZWQgJHtkYXRhfWAsXG4gICAgICApKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDQpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnUGFyc2VkIHVuZGVmaW5lZCcpOyAvLyBObyByZXNwb25zZSBib2R5IGZvciBERUxFVEVcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDExOiBHRVQgcmVxdWVzdCB3aXRoIGhlYWRlcnNcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCB3aXRoIGhlYWRlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KChjb25maWcpID0+IHtcbiAgICAgICAgZXhwZWN0KGNvbmZpZy5oZWFkZXJzLmZvbykudG9FcXVhbCgnYmFyJyk7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgMjAwLFxuICAgICAgICAgICdHRVQgcmVzcG9uc2UnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgVG9rZW5gLFxuICAgICAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZ2V0KCdodHRwczovL2V4YW1wbGUuY29tJywge1xuICAgICAgICBoZWFkZXJzOiB7IGZvbzogJ2JhcicgfSxcbiAgICAgIH0pKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnR0VUIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBvdGhlciBoYXBweSBmbG93IHRlc3RzXG4gICAgLy8gU2NlbmFyaW8gMTI6XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdlcnJvciBmbG93IHRlc3RzJywgKCkgPT4ge1xuICAgIC8vIFNjZW5hcmlvIDE6IEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgbmV0d29yayBlcnJvclxuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgbmV0d29yayBlcnJvcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIEdFVCByZXF1ZXN0IHVzaW5nIGF4aW9zLW1vY2stYWRhcHRlclxuICAgICAgbW9ja0F4aW9zLm9uR2V0KCdodHRwczovL2V4YW1wbGUuY29tJykuYWJvcnRSZXF1ZXN0KCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpKSBhcyBDbGllbnRFcnJvckFwaVJlc3BvbnNlO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ2NsaWVudC1lcnJvcicpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoNTAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5tZXNzYWdlKS50b0JlKCdVbmtub3duIEVycm9yOlJlcXVlc3QgYWJvcnRlZCcpO1xuICAgIH0pO1xuXG4gICAgLy8gc2hvdWxkIGhhbmRsZSB0aW1lb3V0IGVycm9yc1xuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgdGltZW91dCBlcnJvcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIEdFVCByZXF1ZXN0IHVzaW5nIGF4aW9zLW1vY2stYWRhcHRlclxuICAgICAgbW9ja0F4aW9zLm9uR2V0KCdodHRwczovL2V4YW1wbGUuY29tJykudGltZW91dCgpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKSkgYXMgQ2xpZW50RXJyb3JBcGlSZXNwb25zZTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdjbGllbnQtZXJyb3InKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDUwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UubWVzc2FnZSkudG9CZSgnVW5rbm93biBFcnJvcjp0aW1lb3V0IG9mIDBtcyBleGNlZWRlZCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgR0VUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSBuZXR3b3JrIGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5uZXR3b3JrRXJyb3IoKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZ2V0KCdodHRwczovL2V4YW1wbGUuY29tJykpIGFzIENsaWVudEVycm9yQXBpUmVzcG9uc2U7XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnY2xpZW50LWVycm9yJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSg1MDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLm1lc3NhZ2UpLnRvQmUoJ05ldHdvcmsgRXJyb3InKTtcbiAgICB9KTtcblxuICAgIC8vIHNob3VsZCBoYW5kbGUgYXBwbGljYXRpb24gZXJyb3JzICg0eHgpXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgR0VUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSA0MDAgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDQwMCwgJ0JhZCBSZXF1ZXN0IFJlY2VpdmVkJyk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmdldChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgKSkgYXMgQXBwbGljYXRpb25FcnJvckFwaVJlc3BvbnNlO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ2FwcGxpY2F0aW9uLWVycm9yJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSg0MDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnQmFkIFJlcXVlc3QgUmVjZWl2ZWQnKTtcbiAgICB9KTtcblxuICAgIC8vIHNob3VsZCBoYW5kbGUgYXBwbGljYXRpb24gZXJyb3JzICg1eHgpXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgR0VUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSA1MDAgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDUwMCwgJ0ludGVybmFsIFNlcnZlciBFcnJvcicpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICkpIGFzIEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdhcHBsaWNhdGlvbi1lcnJvcicpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoNTAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ0ludGVybmFsIFNlcnZlciBFcnJvcicpO1xuICAgIH0pO1xuXG4gICAgLy8gc2hvdWxkIGhhbmRsZSB1bmV4cGVjdGVkIGVycm9yc1xuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGFuIHVuZXhwZWN0ZWQgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwMCwgJ0dFVCByZXNwb25zZScpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nLCB7fSwgKF9kYXRhKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBFcnJvcicpO1xuICAgICAgfSkpIGFzIENsaWVudEVycm9yQXBpUmVzcG9uc2U7XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnY2xpZW50LWVycm9yJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSg1MDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLm1lc3NhZ2UpLnRvQmUoJ0ZhaWxlZCB0byBwYXJzZSByZXNwb25zZSBkYXRhOiBVbmV4cGVjdGVkIEVycm9yJyk7XG4gICAgfSk7XG5cbiAgICAvLyBzaG91bGQgaGFuZGxlIGVtcHR5IHJlc3BvbnNlIGJvZHlcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhbiBlbXB0eSByZXNwb25zZSBib2R5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDApO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3NfY2xpZW50LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmV0d29yay9jbGllbnRzL2F4aW9zX2NsaWVudC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBMEM7QUFDMUMsNEVBQTZDO0FBQzdDLGlEQUE2QyxDQUFDLCtCQUErQjtBQU83RSx5QkFBeUI7QUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN4QixHQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFZO0lBQzFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7Q0FDL0QsQ0FBQyxDQUFDLENBQUM7QUFFSixhQUFhO0FBQ2IsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7SUFDM0IsSUFBSSxXQUF3QixDQUFDO0lBQzdCLElBQUksU0FBUyxDQUFDO0lBRWQsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFNBQVMsR0FBRyxJQUFJLDRCQUFXLENBQUMsZUFBSyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7UUFDckUsV0FBVyxHQUFHLElBQUksMEJBQVcsRUFBRSxDQUFDLENBQUMsa0RBQWtEO0lBQ3JGLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7UUFDaEMsaURBQWlEO1FBQ2pELEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNoRSxnREFBZ0Q7WUFDaEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FB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Q0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NFcnJvciB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCBNb2NrQWRhcHRlciBmcm9tICdheGlvcy1tb2NrLWFkYXB0ZXInO1xuaW1wb3J0IHsgQXhpb3NDbGllbnQgfSBmcm9tICcuL2F4aW9zX2NsaWVudCc7IC8vIEltcG9ydCB0aGUgQXhpb3NDbGllbnQgY2xhc3NcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZSxcbiAgQ2xpZW50RXJyb3JBcGlSZXNwb25zZSxcbiAgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzJztcblxuLy8gTW9jayBBeGlvcyBmb3IgdGVzdGluZ1xuamVzdC5tb2NrKCdheGlvcycsICgpID0+ICh7XG4gIC4uLihqZXN0LnJlcXVpcmVBY3R1YWwoJ2F4aW9zJykgYXMgb2JqZWN0KSxcbiAgY3JlYXRlOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKGplc3QucmVxdWlyZUFjdHVhbCgnYXhpb3MnKSksXG59KSk7XG5cbi8vIFRlc3QgY2FzZXNcbmRlc2NyaWJlKCdBeGlvc0NsaWVudCcsICgpID0+IHtcbiAgbGV0IGF4aW9zQ2xpZW50OiBBeGlvc0NsaWVudDtcbiAgbGV0IG1vY2tBeGlvcztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBtb2NrQXhpb3MgPSBuZXcgTW9ja0FkYXB0ZXIoYXhpb3MpOyAvLyBDcmVhdGUgYSBNb2NrQWRhcHRlciBmb3IgQXhpb3NcbiAgICBheGlvc0NsaWVudCA9IG5ldyBBeGlvc0NsaWVudCgpOyAvLyBDcmVhdGUgYSBuZXcgQXhpb3NDbGllbnQgaW5zdGFuY2UgZm9yIGVhY2ggdGVzdFxuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIG1vY2tBeGlvcy5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdoYXBweSBmbG93IHRlc3RzJywgKCkgPT4ge1xuICAgIC8vIFNjZW5hcmlvIDE6IEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgcmVzcG9uc2VcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDAsICdHRVQgcmVzcG9uc2UnKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmdldChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ0dFVCByZXNwb25zZScpO1xuICAgIH0pO1xuXG4gICAgLy8gU2NlbmFyaW8gMjogUE9TVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgcmVzcG9uc2VcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBQT1NUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZScsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLnBvc3QgbWV0aG9kIHRvIHJldHVybiBhIHJlc3BvbnNlXG4gICAgICBtb2NrQXhpb3Mub25Qb3N0KCdodHRwczovL2V4YW1wbGUuY29tJykucmVwbHkoMjAxLCAnUE9TVCByZXNwb25zZScpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5wb3N0KFxuICAgICAgICAnaHR0cHM6Ly9leGFtcGxlLmNvbScsXG4gICAgICAgIHtcbiAgICAgICAgICBmb286ICdiYXInLFxuICAgICAgICB9LFxuICAgICAgICB7IHRpbWVvdXQ6IDEwMDAgfSxcbiAgICAgICkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwMSk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlKCdQT1NUIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyAzOiBQVVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgUFVUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZScsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLnB1dCBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vblB1dCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwNCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LnB1dChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgICB7XG4gICAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgICAgeyB0aW1lb3V0OiAxMDAgfSxcbiAgICAgICkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwNCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlVW5kZWZpbmVkKCk7IC8vIE5vIHJlc3BvbnNlIGJvZHkgZm9yIFBVVFxuICAgIH0pO1xuXG4gICAgLy8gU2NlbmFyaW8gNDogUEFUQ0ggcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgUEFUQ0ggcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgYXhpb3MucGF0Y2ggbWV0aG9kIHRvIHJldHVybiBhIHJlc3BvbnNlXG4gICAgICBtb2NrQXhpb3Mub25QYXRjaCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwMCwgJ1BBVENIIHJlc3BvbnNlJyk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LnBhdGNoKFxuICAgICAgICAnaHR0cHM6Ly9leGFtcGxlLmNvbScsXG4gICAgICAgIHtcbiAgICAgICAgICBmb286ICdiYXInLFxuICAgICAgICB9LFxuICAgICAgICB7IHRpbWVvdXQ6IDUwMCB9LFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BBVENIIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyA1OiBERUxFVEUgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhIHJlc3BvbnNlXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgREVMRVRFIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSByZXNwb25zZScsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLmRlbGV0ZSBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vbkRlbGV0ZSgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwNCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmRlbGV0ZSgnaHR0cHM6Ly9leGFtcGxlLmNvbScsIHtcbiAgICAgICAgdGltZW91dDogNDIwLFxuICAgICAgfSkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwNCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlVW5kZWZpbmVkKCk7IC8vIE5vIHJlc3BvbnNlIGJvZHkgZm9yIERFTEVURVxuICAgIH0pO1xuXG4gICAgLy8gU2NlbmFyaW8gNjogR0VUIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlclxuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwMCwgJ0dFVCByZXNwb25zZScpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICAge30sXG4gICAgICAgIChkYXRhKSA9PiBgUGFyc2VkICR7ZGF0YX1gLFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BhcnNlZCBHRVQgcmVzcG9uc2UnKTtcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDc6IFBPU1QgcmVxdWVzdCB3aXRoIGEgcmVzcG9uc2UgcGFyc2VyXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgUE9TVCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBheGlvcy5wb3N0IG1ldGhvZCB0byByZXR1cm4gYSByZXNwb25zZVxuICAgICAgbW9ja0F4aW9zLm9uUG9zdCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwMSwgJ1BPU1QgcmVzcG9uc2UnKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQucG9zdChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgICB7XG4gICAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgICAge30sXG4gICAgICAgIChkYXRhKSA9PiBgUGFyc2VkICR7ZGF0YX1gLFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjAxKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BhcnNlZCBQT1NUIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyA4OiBQVVQgcmVxdWVzdCB3aXRoIGEgcmVzcG9uc2UgcGFyc2VyXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgUFVUIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLnB1dCBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vblB1dCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwNCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LnB1dChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgICB7XG4gICAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgICAge30sXG4gICAgICAgIChkYXRhKSA9PiBgUGFyc2VkICR7ZGF0YX1gLFxuICAgICAgKSkgYXMgU3VjY2Vzc2Z1bEFwaVJlc3BvbnNlPHN0cmluZz47XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnc3VjY2VzcycpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoMjA0KTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ1BhcnNlZCB1bmRlZmluZWQnKTsgLy8gTm8gcmVzcG9uc2UgYm9keSBmb3IgUFVUXG4gICAgfSk7XG5cbiAgICAvLyBTY2VuYXJpbyA5OiBQQVRDSCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXJcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBQQVRDSCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBwYXJzZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBheGlvcy5wYXRjaCBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vblBhdGNoKCdodHRwczovL2V4YW1wbGUuY29tJykucmVwbHkoMjAwLCAnUEFUQ0ggcmVzcG9uc2UnKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQucGF0Y2goXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICAge1xuICAgICAgICAgIGZvbzogJ2JhcicsXG4gICAgICAgIH0sXG4gICAgICAgIHt9LFxuICAgICAgICAoZGF0YSkgPT4gYFBhcnNlZCAke2RhdGF9YCxcbiAgICAgICkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlKCdQYXJzZWQgUEFUQ0ggcmVzcG9uc2UnKTtcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDEwOiBERUxFVEUgcmVxdWVzdCB3aXRoIGEgcmVzcG9uc2UgcGFyc2VyXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgREVMRVRFIHJlcXVlc3Qgd2l0aCBhIHJlc3BvbnNlIHBhcnNlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIGF4aW9zLmRlbGV0ZSBtZXRob2QgdG8gcmV0dXJuIGEgcmVzcG9uc2VcbiAgICAgIG1vY2tBeGlvcy5vbkRlbGV0ZSgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwNCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmRlbGV0ZShcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgICB7fSxcbiAgICAgICAgKGRhdGEpID0+IGBQYXJzZWQgJHtkYXRhfWAsXG4gICAgICApKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDQpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnUGFyc2VkIHVuZGVmaW5lZCcpOyAvLyBObyByZXNwb25zZSBib2R5IGZvciBERUxFVEVcbiAgICB9KTtcblxuICAgIC8vIFNjZW5hcmlvIDExOiBHRVQgcmVxdWVzdCB3aXRoIGhlYWRlcnNcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCB3aXRoIGhlYWRlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KChjb25maWcpID0+IHtcbiAgICAgICAgZXhwZWN0KGNvbmZpZy5oZWFkZXJzLmZvbykudG9FcXVhbCgnYmFyJyk7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgMjAwLFxuICAgICAgICAgICdHRVQgcmVzcG9uc2UnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgVG9rZW5gLFxuICAgICAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZ2V0KCdodHRwczovL2V4YW1wbGUuY29tJywge1xuICAgICAgICBoZWFkZXJzOiB7IGZvbzogJ2JhcicgfSxcbiAgICAgIH0pKSBhcyBTdWNjZXNzZnVsQXBpUmVzcG9uc2U8c3RyaW5nPjtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdzdWNjZXNzJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSgyMDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnR0VUIHJlc3BvbnNlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBvdGhlciBoYXBweSBmbG93IHRlc3RzXG4gICAgLy8gU2NlbmFyaW8gMTI6XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdlcnJvciBmbG93IHRlc3RzJywgKCkgPT4ge1xuICAgIC8vIFNjZW5hcmlvIDE6IEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgbmV0d29yayBlcnJvclxuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgbmV0d29yayBlcnJvcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIEdFVCByZXF1ZXN0IHVzaW5nIGF4aW9zLW1vY2stYWRhcHRlclxuICAgICAgbW9ja0F4aW9zLm9uR2V0KCdodHRwczovL2V4YW1wbGUuY29tJykuYWJvcnRSZXF1ZXN0KCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpKSBhcyBDbGllbnRFcnJvckFwaVJlc3BvbnNlO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ2NsaWVudC1lcnJvcicpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoNTAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5tZXNzYWdlKS50b0JlKCdVbmtub3duIEVycm9yOlJlcXVlc3QgYWJvcnRlZCcpO1xuICAgIH0pO1xuXG4gICAgLy8gc2hvdWxkIGhhbmRsZSB0aW1lb3V0IGVycm9yc1xuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgdGltZW91dCBlcnJvcicsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIEdFVCByZXF1ZXN0IHVzaW5nIGF4aW9zLW1vY2stYWRhcHRlclxuICAgICAgbW9ja0F4aW9zLm9uR2V0KCdodHRwczovL2V4YW1wbGUuY29tJykudGltZW91dCgpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKSkgYXMgQ2xpZW50RXJyb3JBcGlSZXNwb25zZTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdjbGllbnQtZXJyb3InKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDUwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UubWVzc2FnZSkudG9CZSgnVW5rbm93biBFcnJvcjp0aW1lb3V0IG9mIDBtcyBleGNlZWRlZCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgR0VUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSBuZXR3b3JrIGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5uZXR3b3JrRXJyb3IoKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgYXhpb3NDbGllbnQuZ2V0KCdodHRwczovL2V4YW1wbGUuY29tJykpIGFzIENsaWVudEVycm9yQXBpUmVzcG9uc2U7XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnY2xpZW50LWVycm9yJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSg1MDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLm1lc3NhZ2UpLnRvQmUoJ05ldHdvcmsgRXJyb3InKTtcbiAgICB9KTtcblxuICAgIC8vIHNob3VsZCBoYW5kbGUgYXBwbGljYXRpb24gZXJyb3JzICg0eHgpXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgR0VUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSA0MDAgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDQwMCwgJ0JhZCBSZXF1ZXN0IFJlY2VpdmVkJyk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmdldChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgKSkgYXMgQXBwbGljYXRpb25FcnJvckFwaVJlc3BvbnNlO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ2FwcGxpY2F0aW9uLWVycm9yJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSg0MDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnJlc3BvbnNlQm9keSkudG9CZSgnQmFkIFJlcXVlc3QgUmVjZWl2ZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgNTAwIGVycm9yIHdoZW4gZXJyb3JlZCB3aXRoIHVua25vd24gY29kZScsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIE1vY2sgdGhlIEdFVCByZXF1ZXN0IHVzaW5nIGF4aW9zLW1vY2stYWRhcHRlclxuICAgICAgbW9ja0F4aW9zLm9uR2V0KCdodHRwczovL2V4YW1wbGUuY29tJykucmVwbHkoKGNvbmZpZykgPT4ge1xuICAgICAgICBjb25zdCBlcnIgPSBBeGlvc0Vycm9yLmZyb20oJ215IGVycm9yIG1lc3NhZ2UnLCAnTVlfQ09ERScsIGNvbmZpZyk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGF4aW9zQ2xpZW50LmdldChcbiAgICAgICAgJ2h0dHBzOi8vZXhhbXBsZS5jb20nLFxuICAgICAgKSkgYXMgQXBwbGljYXRpb25FcnJvckFwaVJlc3BvbnNlO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ2NsaWVudC1lcnJvcicpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoNTAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5tZXNzYWdlKS50b0JlKGBVbmtub3duIEVycm9yOnVuZGVmaW5lZGApO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGEgNTAwIGVycm9yIHdoZW4gZXJyb3JlZCB3aXRoIEVBQ0NFUyBjb2RlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgoY29uZmlnKSA9PiB7XG4gICAgICAgIGNvbnN0IGVyciA9IEF4aW9zRXJyb3IuZnJvbSgnbXkgZXJyb3IgbWVzc2FnZScsICdFQUNDRVMnLCBjb25maWcpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICkpIGFzIEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdjbGllbnQtZXJyb3InKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDQwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UubWVzc2FnZSkudG9CZSgnW0VBQ0NFU10gOjogUGVybWlzc2lvbiBkZW5pZWQnKTtcbiAgICB9KTtcblxuICAgIC8vIHNob3VsZCBoYW5kbGUgYXBwbGljYXRpb24gZXJyb3JzICg1eHgpXG4gICAgaXQoJ3Nob3VsZCBtYWtlIGEgR0VUIHJlcXVlc3QgYW5kIHJlY2VpdmUgYSA1MDAgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDUwMCwgJ0ludGVybmFsIFNlcnZlciBFcnJvcicpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICkpIGFzIEFwcGxpY2F0aW9uRXJyb3JBcGlSZXNwb25zZTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS50eXBlKS50b0JlKCdhcHBsaWNhdGlvbi1lcnJvcicpO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnN0YXR1c0NvZGUpLnRvQmUoNTAwKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5yZXNwb25zZUJvZHkpLnRvQmUoJ0ludGVybmFsIFNlcnZlciBFcnJvcicpO1xuICAgIH0pO1xuXG4gICAgLy8gc2hvdWxkIGhhbmRsZSB1bmV4cGVjdGVkIGVycm9yc1xuICAgIGl0KCdzaG91bGQgbWFrZSBhIEdFVCByZXF1ZXN0IGFuZCByZWNlaXZlIGFuIHVuZXhwZWN0ZWQgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBNb2NrIHRoZSBHRVQgcmVxdWVzdCB1c2luZyBheGlvcy1tb2NrLWFkYXB0ZXJcbiAgICAgIG1vY2tBeGlvcy5vbkdldCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpLnJlcGx5KDIwMCwgJ0dFVCByZXNwb25zZScpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nLCB7fSwgKF9kYXRhKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBFcnJvcicpO1xuICAgICAgfSkpIGFzIENsaWVudEVycm9yQXBpUmVzcG9uc2U7XG4gICAgICBleHBlY3QocmVzcG9uc2UudHlwZSkudG9CZSgnY2xpZW50LWVycm9yJyk7XG4gICAgICBleHBlY3QocmVzcG9uc2Uuc3RhdHVzQ29kZSkudG9CZSg1MDApO1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLm1lc3NhZ2UpLnRvQmUoJ0ZhaWxlZCB0byBwYXJzZSByZXNwb25zZSBkYXRhOiBVbmV4cGVjdGVkIEVycm9yJyk7XG4gICAgfSk7XG5cbiAgICAvLyBzaG91bGQgaGFuZGxlIGVtcHR5IHJlc3BvbnNlIGJvZHlcbiAgICBpdCgnc2hvdWxkIG1ha2UgYSBHRVQgcmVxdWVzdCBhbmQgcmVjZWl2ZSBhbiBlbXB0eSByZXNwb25zZSBib2R5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gTW9jayB0aGUgR0VUIHJlcXVlc3QgdXNpbmcgYXhpb3MtbW9jay1hZGFwdGVyXG4gICAgICBtb2NrQXhpb3Mub25HZXQoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKS5yZXBseSgyMDApO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCBheGlvc0NsaWVudC5nZXQoXG4gICAgICAgICdodHRwczovL2V4YW1wbGUuY29tJyxcbiAgICAgICkpIGFzIFN1Y2Nlc3NmdWxBcGlSZXNwb25zZTxzdHJpbmc+O1xuICAgICAgZXhwZWN0KHJlc3BvbnNlLnR5cGUpLnRvQmUoJ3N1Y2Nlc3MnKTtcbiAgICAgIGV4cGVjdChyZXNwb25zZS5zdGF0dXNDb2RlKS50b0JlKDIwMCk7XG4gICAgICBleHBlY3QocmVzcG9uc2UucmVzcG9uc2VCb2R5KS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { Logform } from 'winston';
|
|
1
2
|
import { LoggableExtraData } from './types';
|
|
3
|
+
export declare const printLog: (info: Logform.TransformableInfo) => string;
|
|
2
4
|
interface LeveledLogMethod {
|
|
3
5
|
(message: string, extraData?: Partial<LoggableExtraData>): void;
|
|
4
6
|
(infoObject: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured-logger.d.ts","sourceRoot":"","sources":["../src/structured-logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"structured-logger.d.ts","sourceRoot":"","sources":["../src/structured-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,OAAO,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAyB5C,eAAO,MAAM,QAAQ,SAAU,QAAQ,iBAAiB,KAAG,MAM1D,CAAC;AA4BF,UAAU,gBAAgB;IACxB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAChE,CAAC,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;CACtE;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AA6CD,QAAA,MAAM,YAAY,uCAAsC,CAAC;AAEzD,eAAe,YAAY,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.printLog = void 0;
|
|
3
4
|
const winston_1 = require("winston");
|
|
4
5
|
/**
|
|
5
6
|
* We are trying to create structured logging methods.
|
|
@@ -19,6 +20,14 @@ const metadataKey = 'extraData';
|
|
|
19
20
|
const { LOG_LEVEL } = process.env;
|
|
20
21
|
const envLevelInt = parseInt(LOG_LEVEL ?? '1', 10);
|
|
21
22
|
const winstonConfigLevel = ['debug', 'info', 'warn', 'error'];
|
|
23
|
+
const printLog = (info) => {
|
|
24
|
+
let extraData = '';
|
|
25
|
+
if (info?.[metadataKey]) {
|
|
26
|
+
extraData += ` ${JSON.stringify(info[metadataKey])}`;
|
|
27
|
+
}
|
|
28
|
+
return `${info.timestamp} ${info.level}: ${info.message}${extraData}`;
|
|
29
|
+
};
|
|
30
|
+
exports.printLog = printLog;
|
|
22
31
|
// Doc: https://github.com/winstonjs/winston?tab=readme-ov-file#creating-your-own-logger
|
|
23
32
|
const logger = (0, winston_1.createLogger)({
|
|
24
33
|
level: winstonConfigLevel[envLevelInt],
|
|
@@ -34,13 +43,7 @@ const logger = (0, winston_1.createLogger)({
|
|
|
34
43
|
'destinationResponse',
|
|
35
44
|
'authErrorCategory',
|
|
36
45
|
],
|
|
37
|
-
}), printf((
|
|
38
|
-
let extraData = '';
|
|
39
|
-
if (info?.[metadataKey]) {
|
|
40
|
-
extraData += ` ${JSON.stringify(info[metadataKey])}`;
|
|
41
|
-
}
|
|
42
|
-
return `${info.timestamp} ${info.level}: ${info.message}${extraData}`;
|
|
43
|
-
}), json()),
|
|
46
|
+
}), printf(exports.printLog), json()),
|
|
44
47
|
transports: [new winston_1.transports.Console()],
|
|
45
48
|
});
|
|
46
49
|
/**
|
|
@@ -81,4 +84,4 @@ const objectLogger = Object.entries({
|
|
|
81
84
|
}, { errorw: () => { }, infow: () => { }, debugw: () => { }, warnw: () => { } });
|
|
82
85
|
const customLogger = Object.assign(logger, objectLogger);
|
|
83
86
|
exports.default = customLogger;
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlZC1sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RydWN0dXJlZC1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQW9FO0FBR3BFOzs7Ozs7Ozs7Ozs7R0FZRztBQUVILE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxnQkFBTSxDQUFDO0FBRTdFLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUVoQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUVsQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNuRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFdkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUErQixFQUFVLEVBQUU7SUFDbEUsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ25CLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDdkIsU0FBUyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ3REO0lBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsRUFBRSxDQUFDO0FBQ3hFLENBQUMsQ0FBQztBQU5XLFFBQUEsUUFBUSxZQU1uQjtBQUVGLHdGQUF3RjtBQUN4RixNQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFZLEVBQUM7SUFDMUIsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztJQUN0QyxNQUFNLEVBQUUsT0FBTyxDQUNiLFNBQVMsQ0FBQztRQUNSLE1BQU0sRUFBRSxzQkFBc0I7S0FDL0IsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUN2QixLQUFLLEVBQUUsRUFDUCxRQUFRLENBQUM7UUFDUCxHQUFHLEVBQUUsV0FBVztRQUNoQixVQUFVLEVBQUU7WUFDVixXQUFXO1lBQ1gsT0FBTztZQUNQLFNBQVM7WUFDVCxPQUFPO1lBQ1AscUJBQXFCO1lBQ3JCLG1CQUFtQjtTQUNwQjtLQUNGLENBQUMsRUFDRixNQUFNLENBQUMsZ0JBQVEsQ0FBQyxFQUNoQixJQUFJLEVBQUUsQ0FDUDtJQUNELFVBQVUsRUFBRSxDQUFDLElBQUksb0JBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztDQUN2QyxDQUFDLENBQUM7QUFhSDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxZQUFZLEdBQWUsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxNQUFNLEVBQUUsT0FBTztJQUNmLEtBQUssRUFBRSxNQUFNO0lBQ2IsS0FBSyxFQUFFLFNBQVM7SUFDaEIsTUFBTSxFQUFFLE9BQU87Q0FDaEIsQ0FBQyxDQUFDLE1BQU0sQ0FDUCxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNaLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBRTlDLE1BQU0sTUFBTSxHQUFHLENBQ2IsR0FBZ0UsRUFDaEUsRUFBK0IsRUFDL0IsRUFBRTtRQUNGLE1BQU0saUJBQWlCLEdBQStCO1lBQ3BELEdBQUcsQ0FBQyxFQUFFLEVBQUUsYUFBYSxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3RCxHQUFHLENBQUMsRUFBRSxFQUFFLFdBQVcsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkQsR0FBRyxDQUFDLEVBQUUsRUFBRSxlQUFlLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ25FLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEMsR0FBRyxDQUFDLEVBQUUsRUFBRSxjQUFjLElBQUksRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ2pFLENBQUM7UUFDRixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtZQUMzQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLE9BQU87U0FDUjtRQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQztJQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzdDLENBQUMsRUFDRCxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsQ0FDekUsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBRXpELGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUxvZ2dlciwgdHJhbnNwb3J0cywgZm9ybWF0LCBMb2dmb3JtIH0gZnJvbSAnd2luc3Rvbic7XG5pbXBvcnQgeyBMb2dnYWJsZUV4dHJhRGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFdlIGFyZSB0cnlpbmcgdG8gY3JlYXRlIHN0cnVjdHVyZWQgbG9nZ2luZyBtZXRob2RzLlxuICogV2hlbmV2ZXIgc29tZW9uZSB3b3VsZCBsaWtlIHRvIGxvZyBzb21ldGhpbmcgdXNpbmcgc3RydWN0dXJlZCBsb2dnaW5nLCB0aGV5IGNhbiB1c2UgdGhlc2UgbWV0aG9kcyB0byBkbyBzby5cbiAqIFN0cnVjdHVyZWQgbG9nZ2VyIG1ldGhvZHM6XG4gKiAtIGRlYnVnd1xuICogLSBpbmZvd1xuICogLSB3YXJud1xuICogLSBlcnJvcndcbiAqXG4gKiBFeGFtcGxlIGZvciBob3cgc2hvdWxkIG9uZSB1c2UgdGhpcyBsb2dnZXI6XG4gKiAgbG9nZ2VyLmluZm93KFwibXkgZXJyb3IgbWVzc2FnZVwiLCB7IGRlc3RpbmF0aW9uSWQ6IFwiZGVzdElkXCIsIHdvcmtzcGFjZUlkOiBcIndzcElkXCIsIGRlc3RpbmF0aW9uVHlwZTogXCJkZXN0X3R5cGVcIiB9KSAvLyBwcmVmZXJyZWRcbiAqICBsb2dnZXIuaW5mb3coeyBtZXNzYWdlOiBcIm15IGVycm9yIG1lc3NhZ2UtMlwiLCBkZXN0aW5hdGlvbklkOiBcImRlc3RJZFwiLCB3b3Jrc3BhY2VJZDogXCJ3c3BJZFwiLCAgZGVzdGluYXRpb25UeXBlOiBcImRlc3RfdHlwZVwiIH0pXG4gKi9cblxuY29uc3QgeyB0aW1lc3RhbXAsIGNvbWJpbmUsIG1ldGFkYXRhLCBwcmludGYsIGFsaWduLCBlcnJvcnMsIGpzb24gfSA9IGZvcm1hdDtcblxuY29uc3QgbWV0YWRhdGFLZXkgPSAnZXh0cmFEYXRhJztcblxuY29uc3QgeyBMT0dfTEVWRUwgfSA9IHByb2Nlc3MuZW52O1xuXG5jb25zdCBlbnZMZXZlbEludCA9IHBhcnNlSW50KExPR19MRVZFTCA/PyAnMScsIDEwKTtcbmNvbnN0IHdpbnN0b25Db25maWdMZXZlbCA9IFsnZGVidWcnLCAnaW5mbycsICd3YXJuJywgJ2Vycm9yJ107XG5cbmV4cG9ydCBjb25zdCBwcmludExvZyA9IChpbmZvOiBMb2dmb3JtLlRyYW5zZm9ybWFibGVJbmZvKTogc3RyaW5nID0+IHtcbiAgbGV0IGV4dHJhRGF0YSA9ICcnO1xuICBpZiAoaW5mbz8uW21ldGFkYXRhS2V5XSkge1xuICAgIGV4dHJhRGF0YSArPSBgICR7SlNPTi5zdHJpbmdpZnkoaW5mb1ttZXRhZGF0YUtleV0pfWA7XG4gIH1cbiAgcmV0dXJuIGAke2luZm8udGltZXN0YW1wfSAke2luZm8ubGV2ZWx9OiAke2luZm8ubWVzc2FnZX0ke2V4dHJhRGF0YX1gO1xufTtcblxuLy8gRG9jOiBodHRwczovL2dpdGh1Yi5jb20vd2luc3RvbmpzL3dpbnN0b24/dGFiPXJlYWRtZS1vdi1maWxlI2NyZWF0aW5nLXlvdXItb3duLWxvZ2dlclxuY29uc3QgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKHtcbiAgbGV2ZWw6IHdpbnN0b25Db25maWdMZXZlbFtlbnZMZXZlbEludF0sXG4gIGZvcm1hdDogY29tYmluZShcbiAgICB0aW1lc3RhbXAoe1xuICAgICAgZm9ybWF0OiAnTU1NLURELVlZWVkgSEg6bW06c3MnLFxuICAgIH0pLFxuICAgIGVycm9ycyh7IHN0YWNrOiB0cnVlIH0pLFxuICAgIGFsaWduKCksXG4gICAgbWV0YWRhdGEoe1xuICAgICAga2V5OiBtZXRhZGF0YUtleSxcbiAgICAgIGZpbGxFeGNlcHQ6IFtcbiAgICAgICAgJ3RpbWVzdGFtcCcsXG4gICAgICAgICdsZXZlbCcsXG4gICAgICAgICdtZXNzYWdlJyxcbiAgICAgICAgJ3N0YWNrJyxcbiAgICAgICAgJ2Rlc3RpbmF0aW9uUmVzcG9uc2UnLFxuICAgICAgICAnYXV0aEVycm9yQ2F0ZWdvcnknLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBwcmludGYocHJpbnRMb2cpLFxuICAgIGpzb24oKSxcbiAgKSxcbiAgdHJhbnNwb3J0czogW25ldyB0cmFuc3BvcnRzLkNvbnNvbGUoKV0sXG59KTtcblxuaW50ZXJmYWNlIExldmVsZWRMb2dNZXRob2Qge1xuICAobWVzc2FnZTogc3RyaW5nLCBleHRyYURhdGE/OiBQYXJ0aWFsPExvZ2dhYmxlRXh0cmFEYXRhPik6IHZvaWQ7XG4gIChpbmZvT2JqZWN0OiB7IG1lc3NhZ2U6IHN0cmluZyB9ICYgUGFydGlhbDxMb2dnYWJsZUV4dHJhRGF0YT4pOiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgQ3VzdExvZ2dlciB7XG4gIGVycm9ydzogTGV2ZWxlZExvZ01ldGhvZDtcbiAgaW5mb3c6IExldmVsZWRMb2dNZXRob2Q7XG4gIGRlYnVndzogTGV2ZWxlZExvZ01ldGhvZDtcbiAgd2Fybnc6IExldmVsZWRMb2dNZXRob2Q7XG59XG4vKipcbiAqIExvZ2ljYWxseSBiZWxvdyBtZXRob2QgcHV0cyBzdHJ1Y3R1cmVkIGxvZ2dlciBtZXRob2RzIGludG8gbG9nZ2VyIGluc3RhbmNlIHdpdGggcmVxdWlyZWQgbGFiZWxzIHN1Y2ggYXNcbiAqIC0gZGVzdGluYXRpb25JZFxuICogLSB3b3Jrc3BhY2VJZFxuICogLSBtb2R1bGVcbiAqIC0gaW1wbGVtZW50YXRpb25cbiAqIC0gc291cmNlSWRcbiAqIC0gZGVzdGluYXRpb25UeXBlXG4gKlxuICogKipOb3RlKio6IHByZXNlbmNlIG9mIGFueW9uZSBvZiB0aGVtIGlzIHN1cHBvcnRlZCBhdCB0aGlzIHBvaW50XG4gKi9cbmNvbnN0IG9iamVjdExvZ2dlcjogQ3VzdExvZ2dlciA9IE9iamVjdC5lbnRyaWVzKHtcbiAgZGVidWd3OiAnZGVidWcnLFxuICBpbmZvdzogJ2luZm8nLFxuICB3YXJudzogJ3dhcm5pbmcnLFxuICBlcnJvcnc6ICdlcnJvcicsXG59KS5yZWR1Y2UoXG4gIChhZ2csIGN1cnIpID0+IHtcbiAgICBjb25zdCBbY3VzdExvZ01ldGhvZCwgd2luc3RvbkxvZ0xldmVsXSA9IGN1cnI7XG5cbiAgICBjb25zdCBtZXRob2QgPSAoXG4gICAgICBtc2c6IHN0cmluZyB8ICh7IG1lc3NhZ2U6IHN0cmluZyB9ICYgUGFydGlhbDxMb2dnYWJsZUV4dHJhRGF0YT4pLFxuICAgICAgZXg/OiBQYXJ0aWFsPExvZ2dhYmxlRXh0cmFEYXRhPixcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGxvZ2dhYmxlRXh0cmFEYXRhOiBQYXJ0aWFsPExvZ2dhYmxlRXh0cmFEYXRhPiA9IHtcbiAgICAgICAgLi4uKGV4Py5kZXN0aW5hdGlvbklkICYmIHsgZGVzdGluYXRpb25JZDogZXguZGVzdGluYXRpb25JZCB9KSxcbiAgICAgICAgLi4uKGV4Py53b3Jrc3BhY2VJZCAmJiB7IHdvcmtzcGFjZUlkOiBleC53b3Jrc3BhY2VJZCB9KSxcbiAgICAgICAgLi4uKGV4Py5kZXN0aW5hdGlvblR5cGUgJiYgeyBkZXN0aW5hdGlvblR5cGU6IGV4LmRlc3RpbmF0aW9uVHlwZSB9KSxcbiAgICAgICAgLi4uKGV4Py5zb3VyY2VJZCAmJiB7IHNvdXJjZUlkOiBleC5zb3VyY2VJZCB9KSxcbiAgICAgICAgLi4uKGV4Py5tb2R1bGUgJiYgeyBtb2R1bGU6IGV4Lm1vZHVsZSB9KSxcbiAgICAgICAgLi4uKGV4Py5pbXBsZW1lbnRhdGlvbiAmJiB7IGltcGxlbWVudGF0aW9uOiBleC5pbXBsZW1lbnRhdGlvbiB9KSxcbiAgICAgIH07XG4gICAgICBpZiAodHlwZW9mIG1zZyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgeyBtZXNzYWdlLCAuLi5vdGhlcnMgfSA9IG1zZztcbiAgICAgICAgbG9nZ2VyLmxvZyh3aW5zdG9uTG9nTGV2ZWwsIG1lc3NhZ2UsIHsgLi4ub3RoZXJzLCAuLi5sb2dnYWJsZUV4dHJhRGF0YSB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbG9nZ2VyLmxvZyh3aW5zdG9uTG9nTGV2ZWwsIG1zZywgbG9nZ2FibGVFeHRyYURhdGEpO1xuICAgIH07XG4gICAgcmV0dXJuIHsgLi4uYWdnLCBbY3VzdExvZ01ldGhvZF06IG1ldGhvZCB9O1xuICB9LFxuICB7IGVycm9ydzogKCkgPT4ge30sIGluZm93OiAoKSA9PiB7fSwgZGVidWd3OiAoKSA9PiB7fSwgd2Fybnc6ICgpID0+IHt9IH0sXG4pO1xuXG5jb25zdCBjdXN0b21Mb2dnZXIgPSBPYmplY3QuYXNzaWduKGxvZ2dlciwgb2JqZWN0TG9nZ2VyKTtcblxuZXhwb3J0IGRlZmF1bHQgY3VzdG9tTG9nZ2VyO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-logger.test.d.ts","sourceRoot":"","sources":["../src/structured-logger.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const logger = {
|
|
27
|
+
debug: jest.fn(),
|
|
28
|
+
log: jest.fn(),
|
|
29
|
+
};
|
|
30
|
+
// trying to mock createLogger to return a specific logger instance
|
|
31
|
+
jest.mock('winston', () => ({
|
|
32
|
+
format: {
|
|
33
|
+
colorize: jest.fn(),
|
|
34
|
+
combine: jest.fn(),
|
|
35
|
+
label: jest.fn(),
|
|
36
|
+
timestamp: jest.fn(),
|
|
37
|
+
printf: jest.fn(),
|
|
38
|
+
errors: jest.fn(),
|
|
39
|
+
json: jest.fn(),
|
|
40
|
+
align: jest.fn(),
|
|
41
|
+
metadata: jest.fn(),
|
|
42
|
+
},
|
|
43
|
+
createLogger: jest.fn().mockReturnValue(logger),
|
|
44
|
+
transports: {
|
|
45
|
+
Console: jest.fn(),
|
|
46
|
+
},
|
|
47
|
+
}));
|
|
48
|
+
// eslint-disable-next-line import/first
|
|
49
|
+
const structured_logger_1 = __importStar(require("./structured-logger"));
|
|
50
|
+
const printLogTestCases = [
|
|
51
|
+
{
|
|
52
|
+
description: 'should show log correctly when extraData is not available',
|
|
53
|
+
input: { message: 'some error - 1', level: 'warning', timestamp: 'Jan-12-2024 00:01:02' },
|
|
54
|
+
output: 'Jan-12-2024 00:01:02 warning: some error - 1',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
description: 'should show log with stringified extraData when extraData is available',
|
|
58
|
+
input: {
|
|
59
|
+
message: 'some error - 2',
|
|
60
|
+
level: 'warning',
|
|
61
|
+
timestamp: 'Jan-12-2024 00:01:02',
|
|
62
|
+
extraData: { workspaceId: '21' },
|
|
63
|
+
},
|
|
64
|
+
output: 'Jan-12-2024 00:01:02 warning: some error - 2 {"workspaceId":"21"}',
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
describe('printLog tests', () => {
|
|
68
|
+
test.each(printLogTestCases)('$description', ({ input, output }) => {
|
|
69
|
+
expect((0, structured_logger_1.printLog)(input)).toEqual(output);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('Structured logging tests', () => {
|
|
73
|
+
test('testing logger errorw function', () => {
|
|
74
|
+
structured_logger_1.default.errorw('Some error', { destinationId: 'd1' });
|
|
75
|
+
expect(logger.log).toHaveBeenCalled();
|
|
76
|
+
expect(logger.log).toHaveBeenCalledWith('error', 'Some error', { destinationId: 'd1' });
|
|
77
|
+
});
|
|
78
|
+
test('testing logger debugw function', () => {
|
|
79
|
+
structured_logger_1.default.debugw('Some error-2', {
|
|
80
|
+
destinationId: 'd1',
|
|
81
|
+
workspaceId: 'w1',
|
|
82
|
+
destinationType: 'd',
|
|
83
|
+
implementation: 'impl',
|
|
84
|
+
module: 'mod',
|
|
85
|
+
sourceId: 's1',
|
|
86
|
+
});
|
|
87
|
+
expect(logger.log).toHaveBeenCalled();
|
|
88
|
+
expect(logger.log).toHaveBeenCalledWith('debug', 'Some error-2', {
|
|
89
|
+
destinationId: 'd1',
|
|
90
|
+
workspaceId: 'w1',
|
|
91
|
+
destinationType: 'd',
|
|
92
|
+
implementation: 'impl',
|
|
93
|
+
module: 'mod',
|
|
94
|
+
sourceId: 's1',
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
test('testing logger warnw function', () => {
|
|
98
|
+
structured_logger_1.default.warnw({
|
|
99
|
+
message: 'some error - 3',
|
|
100
|
+
destinationId: 'd1',
|
|
101
|
+
workspaceId: 'w1',
|
|
102
|
+
destinationType: 'd',
|
|
103
|
+
implementation: 'impl',
|
|
104
|
+
module: 'mod',
|
|
105
|
+
sourceId: 's1',
|
|
106
|
+
});
|
|
107
|
+
expect(logger.log).toHaveBeenCalled();
|
|
108
|
+
expect(logger.log).toHaveBeenCalledWith('warning', 'some error - 3', {
|
|
109
|
+
destinationId: 'd1',
|
|
110
|
+
workspaceId: 'w1',
|
|
111
|
+
destinationType: 'd',
|
|
112
|
+
implementation: 'impl',
|
|
113
|
+
module: 'mod',
|
|
114
|
+
sourceId: 's1',
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlZC1sb2dnZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdHJ1Y3R1cmVkLWxvZ2dlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLE1BQU0sR0FBRztJQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0lBQ2hCLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ2YsQ0FBQztBQUVGLG1FQUFtRTtBQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sRUFBRTtRQUNOLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7UUFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7S0FDcEI7SUFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFDL0MsVUFBVSxFQUFFO1FBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7S0FDbkI7Q0FDRixDQUFDLENBQUMsQ0FBQztBQUVKLHdDQUF3QztBQUN4Qyx5RUFBaUU7QUFFakUsTUFBTSxpQkFBaUIsR0FBRztJQUN4QjtRQUNFLFdBQVcsRUFBRSwyREFBMkQ7UUFDeEUsS0FBSyxFQUFF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QUFHO1lBQ3BCLGNBQWMsRUFBRSxNQUFNO1lBQ3RCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbG9nZ2VyID0ge1xuICBkZWJ1ZzogamVzdC5mbigpLFxuICBsb2c6IGplc3QuZm4oKSxcbn07XG5cbi8vIHRyeWluZyB0byBtb2NrIGNyZWF0ZUxvZ2dlciB0byByZXR1cm4gYSBzcGVjaWZpYyBsb2dnZXIgaW5zdGFuY2Vcbmplc3QubW9jaygnd2luc3RvbicsICgpID0+ICh7XG4gIGZvcm1hdDoge1xuICAgIGNvbG9yaXplOiBqZXN0LmZuKCksXG4gICAgY29tYmluZTogamVzdC5mbigpLFxuICAgIGxhYmVsOiBqZXN0LmZuKCksXG4gICAgdGltZXN0YW1wOiBqZXN0LmZuKCksXG4gICAgcHJpbnRmOiBqZXN0LmZuKCksXG4gICAgZXJyb3JzOiBqZXN0LmZuKCksXG4gICAganNvbjogamVzdC5mbigpLFxuICAgIGFsaWduOiBqZXN0LmZuKCksXG4gICAgbWV0YWRhdGE6IGplc3QuZm4oKSxcbiAgfSxcbiAgY3JlYXRlTG9nZ2VyOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKGxvZ2dlciksXG4gIHRyYW5zcG9ydHM6IHtcbiAgICBDb25zb2xlOiBqZXN0LmZuKCksXG4gIH0sXG59KSk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvZmlyc3RcbmltcG9ydCBzdHJ1Y3R1cmVkTG9nZ2VyLCB7IHByaW50TG9nIH0gZnJvbSAnLi9zdHJ1Y3R1cmVkLWxvZ2dlcic7XG5cbmNvbnN0IHByaW50TG9nVGVzdENhc2VzID0gW1xuICB7XG4gICAgZGVzY3JpcHRpb246ICdzaG91bGQgc2hvdyBsb2cgY29ycmVjdGx5IHdoZW4gZXh0cmFEYXRhIGlzIG5vdCBhdmFpbGFibGUnLFxuICAgIGlucHV0OiB7IG1lc3NhZ2U6ICdzb21lIGVycm9yIC0gMScsIGxldmVsOiAnd2FybmluZycsIHRpbWVzdGFtcDogJ0phbi0xMi0yMDI0IDAwOjAxOjAyJyB9LFxuICAgIG91dHB1dDogJ0phbi0xMi0yMDI0IDAwOjAxOjAyIHdhcm5pbmc6IHNvbWUgZXJyb3IgLSAxJyxcbiAgfSxcbiAge1xuICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHNob3cgbG9nIHdpdGggc3RyaW5naWZpZWQgZXh0cmFEYXRhIHdoZW4gZXh0cmFEYXRhIGlzIGF2YWlsYWJsZScsXG4gICAgaW5wdXQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdzb21lIGVycm9yIC0gMicsXG4gICAgICBsZXZlbDogJ3dhcm5pbmcnLFxuICAgICAgdGltZXN0YW1wOiAnSmFuLTEyLTIwMjQgMDA6MDE6MDInLFxuICAgICAgZXh0cmFEYXRhOiB7IHdvcmtzcGFjZUlkOiAnMjEnIH0sXG4gICAgfSxcbiAgICBvdXRwdXQ6ICdKYW4tMTItMjAyNCAwMDowMTowMiB3YXJuaW5nOiBzb21lIGVycm9yIC0gMiB7XCJ3b3Jrc3BhY2VJZFwiOlwiMjFcIn0nLFxuICB9LFxuXTtcbmRlc2NyaWJlKCdwcmludExvZyB0ZXN0cycsICgpID0+IHtcbiAgdGVzdC5lYWNoKHByaW50TG9nVGVzdENhc2VzKSgnJGRlc2NyaXB0aW9uJywgKHsgaW5wdXQsIG91dHB1dCB9KSA9PiB7XG4gICAgZXhwZWN0KHByaW50TG9nKGlucHV0KSkudG9FcXVhbChvdXRwdXQpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnU3RydWN0dXJlZCBsb2dnaW5nIHRlc3RzJywgKCkgPT4ge1xuICB0ZXN0KCd0ZXN0aW5nIGxvZ2dlciBlcnJvcncgZnVuY3Rpb24nLCAoKSA9PiB7XG4gICAgc3RydWN0dXJlZExvZ2dlci5lcnJvcncoJ1NvbWUgZXJyb3InLCB7IGRlc3RpbmF0aW9uSWQ6ICdkMScgfSk7XG4gICAgZXhwZWN0KGxvZ2dlci5sb2cpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBleHBlY3QobG9nZ2VyLmxvZykudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2Vycm9yJywgJ1NvbWUgZXJyb3InLCB7IGRlc3RpbmF0aW9uSWQ6ICdkMScgfSk7XG4gIH0pO1xuICB0ZXN0KCd0ZXN0aW5nIGxvZ2dlciBkZWJ1Z3cgZnVuY3Rpb24nLCAoKSA9PiB7XG4gICAgc3RydWN0dXJlZExvZ2dlci5kZWJ1Z3coJ1NvbWUgZXJyb3ItMicsIHtcbiAgICAgIGRlc3RpbmF0aW9uSWQ6ICdkMScsXG4gICAgICB3b3Jrc3BhY2VJZDogJ3cxJyxcbiAgICAgIGRlc3RpbmF0aW9uVHlwZTogJ2QnLFxuICAgICAgaW1wbGVtZW50YXRpb246ICdpbXBsJyxcbiAgICAgIG1vZHVsZTogJ21vZCcsXG4gICAgICBzb3VyY2VJZDogJ3MxJyxcbiAgICB9KTtcbiAgICBleHBlY3QobG9nZ2VyLmxvZykudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIGV4cGVjdChsb2dnZXIubG9nKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZGVidWcnLCAnU29tZSBlcnJvci0yJywge1xuICAgICAgZGVzdGluYXRpb25JZDogJ2QxJyxcbiAgICAgIHdvcmtzcGFjZUlkOiAndzEnLFxuICAgICAgZGVzdGluYXRpb25UeXBlOiAnZCcsXG4gICAgICBpbXBsZW1lbnRhdGlvbjogJ2ltcGwnLFxuICAgICAgbW9kdWxlOiAnbW9kJyxcbiAgICAgIHNvdXJjZUlkOiAnczEnLFxuICAgIH0pO1xuICB9KTtcblxuICB0ZXN0KCd0ZXN0aW5nIGxvZ2dlciB3YXJudyBmdW5jdGlvbicsICgpID0+IHtcbiAgICBzdHJ1Y3R1cmVkTG9nZ2VyLndhcm53KHtcbiAgICAgIG1lc3NhZ2U6ICdzb21lIGVycm9yIC0gMycsXG4gICAgICBkZXN0aW5hdGlvbklkOiAnZDEnLFxuICAgICAgd29ya3NwYWNlSWQ6ICd3MScsXG4gICAgICBkZXN0aW5hdGlvblR5cGU6ICdkJyxcbiAgICAgIGltcGxlbWVudGF0aW9uOiAnaW1wbCcsXG4gICAgICBtb2R1bGU6ICdtb2QnLFxuICAgICAgc291cmNlSWQ6ICdzMScsXG4gICAgfSk7XG4gICAgZXhwZWN0KGxvZ2dlci5sb2cpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBleHBlY3QobG9nZ2VyLmxvZykudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3dhcm5pbmcnLCAnc29tZSBlcnJvciAtIDMnLCB7XG4gICAgICBkZXN0aW5hdGlvbklkOiAnZDEnLFxuICAgICAgd29ya3NwYWNlSWQ6ICd3MScsXG4gICAgICBkZXN0aW5hdGlvblR5cGU6ICdkJyxcbiAgICAgIGltcGxlbWVudGF0aW9uOiAnaW1wbCcsXG4gICAgICBtb2R1bGU6ICdtb2QnLFxuICAgICAgc291cmNlSWQ6ICdzMScsXG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoC5C,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0B;IAExD;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoC5C,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0B;IAExD;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAwExC,OAAO,CAAC,MAAM,CAAC,cAAc;IAiE7B,OAAO,CAAC,MAAM,CAAC,YAAY;IAgH3B,OAAO,CAAC,MAAM,CAAC,cAAc;IAsB7B,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA8GrC,OAAO,CAAC,MAAM,CAAC,cAAc;IAM7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA6DhC;;;;;;;;OAQG;WACW,mBAAmB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAChD,GAAG;IA0CN;;;;;;;;OAQG;WACW,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG;IAQzF;;;;;;;;OAQG;WACW,gBAAgB,CAC5B,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,GAAG,EAAE,EAClB,eAAe,GAAE,MAAW,GAC3B,GAAG;WA4DQ,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAGhD"}
|