@commercetools-backend/loggers 22.30.3 → 22.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commercetools-backend-loggers.cjs.dev.js +47 -36
- package/dist/commercetools-backend-loggers.cjs.prod.js +47 -36
- package/dist/commercetools-backend-loggers.esm.js +45 -34
- package/dist/declarations/src/helpers.d.ts +6 -0
- package/dist/declarations/src/types.d.ts +1 -1
- package/package.json +1 -1
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var expressWinston = require('express-winston');
|
|
6
|
+
var winston = require('winston');
|
|
5
7
|
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
6
8
|
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
7
9
|
var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
|
|
8
|
-
var
|
|
10
|
+
var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
|
|
9
11
|
var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
|
|
10
12
|
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
|
|
11
13
|
var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
|
|
@@ -14,8 +16,6 @@ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/in
|
|
|
14
16
|
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
|
|
15
17
|
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
16
18
|
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
17
|
-
var expressWinston = require('express-winston');
|
|
18
|
-
var winston = require('winston');
|
|
19
19
|
var cloneDeep = require('lodash/cloneDeep');
|
|
20
20
|
var getIn = require('lodash/get');
|
|
21
21
|
var setIn = require('lodash/set');
|
|
@@ -42,8 +42,10 @@ function _interopNamespace(e) {
|
|
|
42
42
|
return Object.freeze(n);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
var expressWinston__default = /*#__PURE__*/_interopDefault(expressWinston);
|
|
46
|
+
var winston__namespace = /*#__PURE__*/_interopNamespace(winston);
|
|
45
47
|
var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
46
|
-
var
|
|
48
|
+
var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
|
|
47
49
|
var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
|
|
48
50
|
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
|
|
49
51
|
var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
|
|
@@ -52,15 +54,13 @@ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachIns
|
|
|
52
54
|
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
|
|
53
55
|
var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
|
|
54
56
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
55
|
-
var expressWinston__default = /*#__PURE__*/_interopDefault(expressWinston);
|
|
56
|
-
var winston__namespace = /*#__PURE__*/_interopNamespace(winston);
|
|
57
57
|
var cloneDeep__default = /*#__PURE__*/_interopDefault(cloneDeep);
|
|
58
58
|
var getIn__default = /*#__PURE__*/_interopDefault(getIn);
|
|
59
59
|
var setIn__default = /*#__PURE__*/_interopDefault(setIn);
|
|
60
60
|
var unsetIn__default = /*#__PURE__*/_interopDefault(unsetIn);
|
|
61
61
|
|
|
62
62
|
function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
63
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
63
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
64
64
|
const parseIps = request => {
|
|
65
65
|
const forwardedFor = request.headers['x-forwarded-for'];
|
|
66
66
|
if (!forwardedFor) {
|
|
@@ -69,48 +69,60 @@ const parseIps = request => {
|
|
|
69
69
|
const remoteAddresses = _Array$isArray__default["default"](forwardedFor) ? forwardedFor : forwardedFor.split(',');
|
|
70
70
|
return remoteAddresses;
|
|
71
71
|
};
|
|
72
|
+
const createAccessLogSkipper = options => request => {
|
|
73
|
+
var _context;
|
|
74
|
+
if (Boolean(options.silent)) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
const hasMatchingIgnoreUrl = _someInstanceProperty__default["default"](_context = options.ignoreUrls ?? []).call(_context, uriPathOrRegex => {
|
|
78
|
+
if (typeof uriPathOrRegex === 'string') {
|
|
79
|
+
return request.originalUrl === uriPathOrRegex;
|
|
80
|
+
}
|
|
81
|
+
return request.originalUrl.match(uriPathOrRegex);
|
|
82
|
+
});
|
|
83
|
+
return hasMatchingIgnoreUrl;
|
|
84
|
+
};
|
|
85
|
+
const mapRequestMetadata = request => {
|
|
86
|
+
try {
|
|
87
|
+
const remoteAddress = request.socket?.remoteAddress;
|
|
88
|
+
const proxyIps = parseIps(request);
|
|
89
|
+
const _proxyIps = _slicedToArray(proxyIps, 1),
|
|
90
|
+
clientIp = _proxyIps[0];
|
|
91
|
+
return _objectSpread({
|
|
92
|
+
clientIp: clientIp ?? remoteAddress,
|
|
93
|
+
proxyIps,
|
|
94
|
+
hostname: request.socket ? request.hostname : undefined
|
|
95
|
+
}, remoteAddress ? {
|
|
96
|
+
remoteAddress
|
|
97
|
+
} : {});
|
|
98
|
+
} catch (error) {
|
|
99
|
+
console.error(`Failed to parse request metadata`, error);
|
|
100
|
+
return {};
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
72
104
|
const createAccessLoggerMiddleware = function () {
|
|
73
|
-
var _options$ignoreUrls, _options$formatters, _options$level;
|
|
74
105
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
75
|
-
const
|
|
76
|
-
const
|
|
106
|
+
const formatters = winston__namespace["default"].format.combine(winston__namespace["default"].format.timestamp(), ...(options.formatters ?? []), options.json ? winston__namespace["default"].format.json() : winston__namespace["default"].format.cli());
|
|
107
|
+
const skip = createAccessLogSkipper(options);
|
|
77
108
|
return expressWinston__default["default"].logger({
|
|
78
|
-
level:
|
|
109
|
+
level: options.level ?? 'info',
|
|
79
110
|
transports: [new winston__namespace["default"].transports.Console()],
|
|
80
111
|
format: formatters,
|
|
81
112
|
meta: true,
|
|
82
113
|
expressFormat: true,
|
|
83
114
|
// Use default morgan access log formatting
|
|
84
115
|
colorize: !options.json,
|
|
85
|
-
skip
|
|
86
|
-
dynamicMeta:
|
|
87
|
-
try {
|
|
88
|
-
var _req$socket;
|
|
89
|
-
const remoteAddress = (_req$socket = req.socket) === null || _req$socket === void 0 ? void 0 : _req$socket.remoteAddress;
|
|
90
|
-
const proxyIps = parseIps(req);
|
|
91
|
-
const _proxyIps = _slicedToArray(proxyIps, 1),
|
|
92
|
-
clientIp = _proxyIps[0];
|
|
93
|
-
return _objectSpread({
|
|
94
|
-
clientIp: clientIp !== null && clientIp !== void 0 ? clientIp : remoteAddress,
|
|
95
|
-
proxyIps,
|
|
96
|
-
hostname: req.socket ? req.hostname : undefined
|
|
97
|
-
}, remoteAddress ? {
|
|
98
|
-
remoteAddress
|
|
99
|
-
} : {});
|
|
100
|
-
} catch (error) {
|
|
101
|
-
console.error("Failed to parse request metadata", error);
|
|
102
|
-
return {};
|
|
103
|
-
}
|
|
104
|
-
}
|
|
116
|
+
skip,
|
|
117
|
+
dynamicMeta: mapRequestMetadata
|
|
105
118
|
});
|
|
106
119
|
};
|
|
107
120
|
|
|
108
121
|
const createApplicationLogger = function () {
|
|
109
|
-
var _options$formatters, _options$level;
|
|
110
122
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
111
|
-
const formatters = winston__namespace.format.combine(...(
|
|
123
|
+
const formatters = winston__namespace.format.combine(...(options.formatters ?? []), options.json ? winston__namespace.format.json() : winston__namespace.format.combine(winston__namespace.format.cli(), winston__namespace.format.simple()));
|
|
112
124
|
return winston__namespace.createLogger({
|
|
113
|
-
level:
|
|
125
|
+
level: options.level ?? 'info',
|
|
114
126
|
format: formatters,
|
|
115
127
|
transports: [new winston__namespace.transports.Console({
|
|
116
128
|
silent: Boolean(options.silent)
|
|
@@ -119,9 +131,8 @@ const createApplicationLogger = function () {
|
|
|
119
131
|
};
|
|
120
132
|
|
|
121
133
|
function rewriteField(info, field) {
|
|
122
|
-
var _field$preserveFromFi;
|
|
123
134
|
const fromFieldValue = getIn__default["default"](info, field.from);
|
|
124
|
-
const preserveFromField =
|
|
135
|
+
const preserveFromField = field.preserveFromField ?? false;
|
|
125
136
|
if (fromFieldValue) {
|
|
126
137
|
if (!preserveFromField) {
|
|
127
138
|
unsetIn__default["default"](info, field.from);
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var expressWinston = require('express-winston');
|
|
6
|
+
var winston = require('winston');
|
|
5
7
|
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
6
8
|
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
7
9
|
var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
|
|
8
|
-
var
|
|
10
|
+
var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
|
|
9
11
|
var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
|
|
10
12
|
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
|
|
11
13
|
var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
|
|
@@ -14,8 +16,6 @@ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/in
|
|
|
14
16
|
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
|
|
15
17
|
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
16
18
|
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
17
|
-
var expressWinston = require('express-winston');
|
|
18
|
-
var winston = require('winston');
|
|
19
19
|
var cloneDeep = require('lodash/cloneDeep');
|
|
20
20
|
var getIn = require('lodash/get');
|
|
21
21
|
var setIn = require('lodash/set');
|
|
@@ -42,8 +42,10 @@ function _interopNamespace(e) {
|
|
|
42
42
|
return Object.freeze(n);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
var expressWinston__default = /*#__PURE__*/_interopDefault(expressWinston);
|
|
46
|
+
var winston__namespace = /*#__PURE__*/_interopNamespace(winston);
|
|
45
47
|
var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
46
|
-
var
|
|
48
|
+
var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
|
|
47
49
|
var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
|
|
48
50
|
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
|
|
49
51
|
var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
|
|
@@ -52,15 +54,13 @@ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachIns
|
|
|
52
54
|
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
|
|
53
55
|
var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
|
|
54
56
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
55
|
-
var expressWinston__default = /*#__PURE__*/_interopDefault(expressWinston);
|
|
56
|
-
var winston__namespace = /*#__PURE__*/_interopNamespace(winston);
|
|
57
57
|
var cloneDeep__default = /*#__PURE__*/_interopDefault(cloneDeep);
|
|
58
58
|
var getIn__default = /*#__PURE__*/_interopDefault(getIn);
|
|
59
59
|
var setIn__default = /*#__PURE__*/_interopDefault(setIn);
|
|
60
60
|
var unsetIn__default = /*#__PURE__*/_interopDefault(unsetIn);
|
|
61
61
|
|
|
62
62
|
function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
63
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
63
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
64
64
|
const parseIps = request => {
|
|
65
65
|
const forwardedFor = request.headers['x-forwarded-for'];
|
|
66
66
|
if (!forwardedFor) {
|
|
@@ -69,48 +69,60 @@ const parseIps = request => {
|
|
|
69
69
|
const remoteAddresses = _Array$isArray__default["default"](forwardedFor) ? forwardedFor : forwardedFor.split(',');
|
|
70
70
|
return remoteAddresses;
|
|
71
71
|
};
|
|
72
|
+
const createAccessLogSkipper = options => request => {
|
|
73
|
+
var _context;
|
|
74
|
+
if (Boolean(options.silent)) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
const hasMatchingIgnoreUrl = _someInstanceProperty__default["default"](_context = options.ignoreUrls ?? []).call(_context, uriPathOrRegex => {
|
|
78
|
+
if (typeof uriPathOrRegex === 'string') {
|
|
79
|
+
return request.originalUrl === uriPathOrRegex;
|
|
80
|
+
}
|
|
81
|
+
return request.originalUrl.match(uriPathOrRegex);
|
|
82
|
+
});
|
|
83
|
+
return hasMatchingIgnoreUrl;
|
|
84
|
+
};
|
|
85
|
+
const mapRequestMetadata = request => {
|
|
86
|
+
try {
|
|
87
|
+
const remoteAddress = request.socket?.remoteAddress;
|
|
88
|
+
const proxyIps = parseIps(request);
|
|
89
|
+
const _proxyIps = _slicedToArray(proxyIps, 1),
|
|
90
|
+
clientIp = _proxyIps[0];
|
|
91
|
+
return _objectSpread({
|
|
92
|
+
clientIp: clientIp ?? remoteAddress,
|
|
93
|
+
proxyIps,
|
|
94
|
+
hostname: request.socket ? request.hostname : undefined
|
|
95
|
+
}, remoteAddress ? {
|
|
96
|
+
remoteAddress
|
|
97
|
+
} : {});
|
|
98
|
+
} catch (error) {
|
|
99
|
+
console.error(`Failed to parse request metadata`, error);
|
|
100
|
+
return {};
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
72
104
|
const createAccessLoggerMiddleware = function () {
|
|
73
|
-
var _options$ignoreUrls, _options$formatters, _options$level;
|
|
74
105
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
75
|
-
const
|
|
76
|
-
const
|
|
106
|
+
const formatters = winston__namespace["default"].format.combine(winston__namespace["default"].format.timestamp(), ...(options.formatters ?? []), options.json ? winston__namespace["default"].format.json() : winston__namespace["default"].format.cli());
|
|
107
|
+
const skip = createAccessLogSkipper(options);
|
|
77
108
|
return expressWinston__default["default"].logger({
|
|
78
|
-
level:
|
|
109
|
+
level: options.level ?? 'info',
|
|
79
110
|
transports: [new winston__namespace["default"].transports.Console()],
|
|
80
111
|
format: formatters,
|
|
81
112
|
meta: true,
|
|
82
113
|
expressFormat: true,
|
|
83
114
|
// Use default morgan access log formatting
|
|
84
115
|
colorize: !options.json,
|
|
85
|
-
skip
|
|
86
|
-
dynamicMeta:
|
|
87
|
-
try {
|
|
88
|
-
var _req$socket;
|
|
89
|
-
const remoteAddress = (_req$socket = req.socket) === null || _req$socket === void 0 ? void 0 : _req$socket.remoteAddress;
|
|
90
|
-
const proxyIps = parseIps(req);
|
|
91
|
-
const _proxyIps = _slicedToArray(proxyIps, 1),
|
|
92
|
-
clientIp = _proxyIps[0];
|
|
93
|
-
return _objectSpread({
|
|
94
|
-
clientIp: clientIp !== null && clientIp !== void 0 ? clientIp : remoteAddress,
|
|
95
|
-
proxyIps,
|
|
96
|
-
hostname: req.socket ? req.hostname : undefined
|
|
97
|
-
}, remoteAddress ? {
|
|
98
|
-
remoteAddress
|
|
99
|
-
} : {});
|
|
100
|
-
} catch (error) {
|
|
101
|
-
console.error("Failed to parse request metadata", error);
|
|
102
|
-
return {};
|
|
103
|
-
}
|
|
104
|
-
}
|
|
116
|
+
skip,
|
|
117
|
+
dynamicMeta: mapRequestMetadata
|
|
105
118
|
});
|
|
106
119
|
};
|
|
107
120
|
|
|
108
121
|
const createApplicationLogger = function () {
|
|
109
|
-
var _options$formatters, _options$level;
|
|
110
122
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
111
|
-
const formatters = winston__namespace.format.combine(...(
|
|
123
|
+
const formatters = winston__namespace.format.combine(...(options.formatters ?? []), options.json ? winston__namespace.format.json() : winston__namespace.format.combine(winston__namespace.format.cli(), winston__namespace.format.simple()));
|
|
112
124
|
return winston__namespace.createLogger({
|
|
113
|
-
level:
|
|
125
|
+
level: options.level ?? 'info',
|
|
114
126
|
format: formatters,
|
|
115
127
|
transports: [new winston__namespace.transports.Console({
|
|
116
128
|
silent: Boolean(options.silent)
|
|
@@ -119,9 +131,8 @@ const createApplicationLogger = function () {
|
|
|
119
131
|
};
|
|
120
132
|
|
|
121
133
|
function rewriteField(info, field) {
|
|
122
|
-
var _field$preserveFromFi;
|
|
123
134
|
const fromFieldValue = getIn__default["default"](info, field.from);
|
|
124
|
-
const preserveFromField =
|
|
135
|
+
const preserveFromField = field.preserveFromField ?? false;
|
|
125
136
|
if (fromFieldValue) {
|
|
126
137
|
if (!preserveFromField) {
|
|
127
138
|
unsetIn__default["default"](info, field.from);
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import expressWinston from 'express-winston';
|
|
2
|
+
import * as winston from 'winston';
|
|
3
|
+
import winston__default from 'winston';
|
|
1
4
|
import _defineProperty from '@babel/runtime-corejs3/helpers/esm/defineProperty';
|
|
2
5
|
import _slicedToArray from '@babel/runtime-corejs3/helpers/esm/slicedToArray';
|
|
3
6
|
import _Array$isArray from '@babel/runtime-corejs3/core-js-stable/array/is-array';
|
|
4
|
-
import
|
|
7
|
+
import _someInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/some';
|
|
5
8
|
import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys';
|
|
6
9
|
import _Object$getOwnPropertySymbols from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols';
|
|
7
10
|
import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/filter';
|
|
@@ -10,9 +13,6 @@ import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/inst
|
|
|
10
13
|
import _Object$getOwnPropertyDescriptors from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors';
|
|
11
14
|
import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/object/define-properties';
|
|
12
15
|
import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property';
|
|
13
|
-
import expressWinston from 'express-winston';
|
|
14
|
-
import * as winston from 'winston';
|
|
15
|
-
import winston__default from 'winston';
|
|
16
16
|
import cloneDeep from 'lodash/cloneDeep';
|
|
17
17
|
import getIn from 'lodash/get';
|
|
18
18
|
import setIn from 'lodash/set';
|
|
@@ -20,7 +20,7 @@ import unsetIn from 'lodash/unset';
|
|
|
20
20
|
import { format } from 'logform';
|
|
21
21
|
|
|
22
22
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
24
|
const parseIps = request => {
|
|
25
25
|
const forwardedFor = request.headers['x-forwarded-for'];
|
|
26
26
|
if (!forwardedFor) {
|
|
@@ -29,48 +29,60 @@ const parseIps = request => {
|
|
|
29
29
|
const remoteAddresses = _Array$isArray(forwardedFor) ? forwardedFor : forwardedFor.split(',');
|
|
30
30
|
return remoteAddresses;
|
|
31
31
|
};
|
|
32
|
+
const createAccessLogSkipper = options => request => {
|
|
33
|
+
var _context;
|
|
34
|
+
if (Boolean(options.silent)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
const hasMatchingIgnoreUrl = _someInstanceProperty(_context = options.ignoreUrls ?? []).call(_context, uriPathOrRegex => {
|
|
38
|
+
if (typeof uriPathOrRegex === 'string') {
|
|
39
|
+
return request.originalUrl === uriPathOrRegex;
|
|
40
|
+
}
|
|
41
|
+
return request.originalUrl.match(uriPathOrRegex);
|
|
42
|
+
});
|
|
43
|
+
return hasMatchingIgnoreUrl;
|
|
44
|
+
};
|
|
45
|
+
const mapRequestMetadata = request => {
|
|
46
|
+
try {
|
|
47
|
+
const remoteAddress = request.socket?.remoteAddress;
|
|
48
|
+
const proxyIps = parseIps(request);
|
|
49
|
+
const _proxyIps = _slicedToArray(proxyIps, 1),
|
|
50
|
+
clientIp = _proxyIps[0];
|
|
51
|
+
return _objectSpread({
|
|
52
|
+
clientIp: clientIp ?? remoteAddress,
|
|
53
|
+
proxyIps,
|
|
54
|
+
hostname: request.socket ? request.hostname : undefined
|
|
55
|
+
}, remoteAddress ? {
|
|
56
|
+
remoteAddress
|
|
57
|
+
} : {});
|
|
58
|
+
} catch (error) {
|
|
59
|
+
console.error(`Failed to parse request metadata`, error);
|
|
60
|
+
return {};
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
32
64
|
const createAccessLoggerMiddleware = function () {
|
|
33
|
-
var _options$ignoreUrls, _options$formatters, _options$level;
|
|
34
65
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
35
|
-
const
|
|
36
|
-
const
|
|
66
|
+
const formatters = winston__default.format.combine(winston__default.format.timestamp(), ...(options.formatters ?? []), options.json ? winston__default.format.json() : winston__default.format.cli());
|
|
67
|
+
const skip = createAccessLogSkipper(options);
|
|
37
68
|
return expressWinston.logger({
|
|
38
|
-
level:
|
|
69
|
+
level: options.level ?? 'info',
|
|
39
70
|
transports: [new winston__default.transports.Console()],
|
|
40
71
|
format: formatters,
|
|
41
72
|
meta: true,
|
|
42
73
|
expressFormat: true,
|
|
43
74
|
// Use default morgan access log formatting
|
|
44
75
|
colorize: !options.json,
|
|
45
|
-
skip
|
|
46
|
-
dynamicMeta:
|
|
47
|
-
try {
|
|
48
|
-
var _req$socket;
|
|
49
|
-
const remoteAddress = (_req$socket = req.socket) === null || _req$socket === void 0 ? void 0 : _req$socket.remoteAddress;
|
|
50
|
-
const proxyIps = parseIps(req);
|
|
51
|
-
const _proxyIps = _slicedToArray(proxyIps, 1),
|
|
52
|
-
clientIp = _proxyIps[0];
|
|
53
|
-
return _objectSpread({
|
|
54
|
-
clientIp: clientIp !== null && clientIp !== void 0 ? clientIp : remoteAddress,
|
|
55
|
-
proxyIps,
|
|
56
|
-
hostname: req.socket ? req.hostname : undefined
|
|
57
|
-
}, remoteAddress ? {
|
|
58
|
-
remoteAddress
|
|
59
|
-
} : {});
|
|
60
|
-
} catch (error) {
|
|
61
|
-
console.error("Failed to parse request metadata", error);
|
|
62
|
-
return {};
|
|
63
|
-
}
|
|
64
|
-
}
|
|
76
|
+
skip,
|
|
77
|
+
dynamicMeta: mapRequestMetadata
|
|
65
78
|
});
|
|
66
79
|
};
|
|
67
80
|
|
|
68
81
|
const createApplicationLogger = function () {
|
|
69
|
-
var _options$formatters, _options$level;
|
|
70
82
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
71
|
-
const formatters = winston.format.combine(...(
|
|
83
|
+
const formatters = winston.format.combine(...(options.formatters ?? []), options.json ? winston.format.json() : winston.format.combine(winston.format.cli(), winston.format.simple()));
|
|
72
84
|
return winston.createLogger({
|
|
73
|
-
level:
|
|
85
|
+
level: options.level ?? 'info',
|
|
74
86
|
format: formatters,
|
|
75
87
|
transports: [new winston.transports.Console({
|
|
76
88
|
silent: Boolean(options.silent)
|
|
@@ -79,9 +91,8 @@ const createApplicationLogger = function () {
|
|
|
79
91
|
};
|
|
80
92
|
|
|
81
93
|
function rewriteField(info, field) {
|
|
82
|
-
var _field$preserveFromFi;
|
|
83
94
|
const fromFieldValue = getIn(info, field.from);
|
|
84
|
-
const preserveFromField =
|
|
95
|
+
const preserveFromField = field.preserveFromField ?? false;
|
|
85
96
|
if (fromFieldValue) {
|
|
86
97
|
if (!preserveFromField) {
|
|
87
98
|
unsetIn(info, field.from);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Request } from 'express';
|
|
2
|
+
import type { TAccessLoggerOptions } from './types';
|
|
3
|
+
declare const parseIps: (request: Request) => string[];
|
|
4
|
+
declare const createAccessLogSkipper: (options: TAccessLoggerOptions) => (request: Request) => boolean;
|
|
5
|
+
declare const mapRequestMetadata: (request: Request) => {};
|
|
6
|
+
export { parseIps, createAccessLogSkipper, mapRequestMetadata };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools-backend/loggers",
|
|
3
|
-
"version": "22.
|
|
3
|
+
"version": "22.31.0",
|
|
4
4
|
"description": "Opinionated JSON loggers for HTTP server applications",
|
|
5
5
|
"bugs": "https://github.com/commercetools/merchant-center-application-kit/issues",
|
|
6
6
|
"repository": {
|