@promster/hapi 8.0.5 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2,5 +2,5 @@ import type { TPromsterOptions } from '@promster/types';
|
|
|
2
2
|
import type { Server } from '@hapi/hapi';
|
|
3
3
|
import { createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp } from './plugin';
|
|
4
4
|
import { getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers, timing } from '@promster/metrics';
|
|
5
|
-
declare const instrument: (server: Server, options: TPromsterOptions) => Promise<void>;
|
|
5
|
+
declare const instrument: (server: Server, options: TPromsterOptions) => Promise<Server<import("@hapi/hapi").ServerApplicationState> & void>;
|
|
6
6
|
export { createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp, getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers, instrument, timing, };
|
|
@@ -8,5 +8,5 @@ declare const getAreServerEventsSupported: (actualVersion: string) => boolean;
|
|
|
8
8
|
declare const getDoesResponseNeedInvocation: (actualVersion: string) => boolean;
|
|
9
9
|
declare const createPlugin: ({ options: pluginOptions, }?: {
|
|
10
10
|
options?: TPromsterOptions;
|
|
11
|
-
}) => Plugin<unknown>;
|
|
11
|
+
}) => Plugin<unknown, void>;
|
|
12
12
|
export { createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp, getAreServerEventsSupported, getDoesResponseNeedInvocation, };
|
|
@@ -13,7 +13,7 @@ var merge__default = /*#__PURE__*/_interopDefault(merge);
|
|
|
13
13
|
|
|
14
14
|
var pkg = {
|
|
15
15
|
name: "@promster/hapi",
|
|
16
|
-
version: "
|
|
16
|
+
version: "9.0.0",
|
|
17
17
|
description: "Hapi server integrations of promster",
|
|
18
18
|
main: "dist/promster-hapi.cjs.js",
|
|
19
19
|
typings: "dist/promster-hapi.cjs.d.ts",
|
|
@@ -29,8 +29,8 @@ var pkg = {
|
|
|
29
29
|
access: "public"
|
|
30
30
|
},
|
|
31
31
|
engines: {
|
|
32
|
-
node: ">=
|
|
33
|
-
npm: ">=
|
|
32
|
+
node: ">=16",
|
|
33
|
+
npm: ">=8"
|
|
34
34
|
},
|
|
35
35
|
repository: {
|
|
36
36
|
type: "git",
|
|
@@ -49,69 +49,58 @@ var pkg = {
|
|
|
49
49
|
"prometheus"
|
|
50
50
|
],
|
|
51
51
|
dependencies: {
|
|
52
|
-
"@promster/metrics": "^
|
|
52
|
+
"@promster/metrics": "^10.0.0",
|
|
53
53
|
"merge-options": "3.0.4",
|
|
54
|
-
semver: "7.
|
|
55
|
-
tslib: "2.
|
|
54
|
+
semver: "7.5.4",
|
|
55
|
+
tslib: "2.4.1"
|
|
56
56
|
},
|
|
57
57
|
devDependencies: {
|
|
58
|
-
"@hapi/boom": "
|
|
59
|
-
"@hapi/hapi": "
|
|
60
|
-
"@promster/types": "^
|
|
61
|
-
"@types/hapi__hapi": "20.0.
|
|
62
|
-
"parse-prometheus-text-format": "1.1.1"
|
|
58
|
+
"@hapi/boom": "10.0.1",
|
|
59
|
+
"@hapi/hapi": "21.3.2",
|
|
60
|
+
"@promster/types": "^4.0.0",
|
|
61
|
+
"@types/hapi__hapi": "20.0.13",
|
|
62
|
+
"parse-prometheus-text-format": "1.1.1",
|
|
63
|
+
"@promster/server": "workspace:*"
|
|
63
64
|
}
|
|
64
65
|
};
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
|
|
67
68
|
|
|
69
|
+
const extractPath = request => request.route.path.replace(/\?/g, '');
|
|
68
70
|
const isBoomResponse = response => response.isBoom;
|
|
69
|
-
|
|
70
71
|
const extractStatusCode = request => {
|
|
71
72
|
const {
|
|
72
73
|
response
|
|
73
74
|
} = request;
|
|
74
|
-
|
|
75
75
|
if (!response) {
|
|
76
76
|
return 0;
|
|
77
77
|
}
|
|
78
|
-
|
|
79
78
|
if (isBoomResponse(response)) {
|
|
80
79
|
return response.output.statusCode;
|
|
81
80
|
}
|
|
82
|
-
|
|
83
81
|
return response.statusCode;
|
|
84
82
|
};
|
|
85
|
-
|
|
86
83
|
let recordRequest;
|
|
87
84
|
let upMetric;
|
|
88
|
-
|
|
89
85
|
const getRequestRecorder = () => recordRequest;
|
|
90
|
-
|
|
91
86
|
const signalIsUp = () => {
|
|
92
87
|
if (!upMetric) {
|
|
93
88
|
return;
|
|
94
89
|
}
|
|
95
|
-
|
|
96
90
|
upMetric.forEach(upMetricType => {
|
|
97
91
|
upMetricType.set(1);
|
|
98
92
|
});
|
|
99
93
|
};
|
|
100
|
-
|
|
101
94
|
const signalIsNotUp = () => {
|
|
102
95
|
if (!upMetric) {
|
|
103
96
|
return;
|
|
104
97
|
}
|
|
105
|
-
|
|
106
98
|
upMetric.forEach(upMetricType => {
|
|
107
99
|
upMetricType.set(0);
|
|
108
100
|
});
|
|
109
101
|
};
|
|
110
|
-
|
|
111
102
|
const getAreServerEventsSupported = actualVersion => Boolean(actualVersion && semver__default["default"].satisfies(actualVersion, '>= 17.0.0'));
|
|
112
|
-
|
|
113
103
|
const getDoesResponseNeedInvocation = actualVersion => Boolean(actualVersion && semver__default["default"].satisfies(actualVersion, '< 17.0.0'));
|
|
114
|
-
|
|
115
104
|
const createPlugin = ({
|
|
116
105
|
options: pluginOptions
|
|
117
106
|
} = {
|
|
@@ -124,31 +113,25 @@ const createPlugin = ({
|
|
|
124
113
|
const observeGc = metrics.createGcObserver(gcMetrics, allDefaultedOptions);
|
|
125
114
|
recordRequest = metrics.createRequestRecorder(httpMetrics, allDefaultedOptions);
|
|
126
115
|
upMetric = gcMetrics === null || gcMetrics === void 0 ? void 0 : gcMetrics.up;
|
|
127
|
-
|
|
128
116
|
if (!shouldSkipMetricsByEnvironment) {
|
|
129
117
|
observeGc();
|
|
130
118
|
}
|
|
131
|
-
|
|
132
119
|
const plugin = {
|
|
133
120
|
name: pkg.name,
|
|
134
121
|
version: pkg.version,
|
|
135
|
-
|
|
136
122
|
// @ts-expect-error
|
|
137
123
|
register(server, _registrationOptions, onRegistrationFinished = () => null) {
|
|
138
124
|
const areServerEventsSupported = getAreServerEventsSupported(server.version);
|
|
139
125
|
const doesResponseNeedInvocation = getDoesResponseNeedInvocation(server.version);
|
|
140
|
-
|
|
141
126
|
const onRequestHandler = (request, h) => {
|
|
142
127
|
request.plugins.promster = {
|
|
143
128
|
timing: metrics.timing.start()
|
|
144
|
-
};
|
|
145
|
-
|
|
129
|
+
};
|
|
130
|
+
// @ts-expect-error
|
|
146
131
|
return doesResponseNeedInvocation ? h.continue() : h.continue;
|
|
147
132
|
};
|
|
148
|
-
|
|
149
133
|
const onResponseHandler = (request, response) => {
|
|
150
|
-
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response,
|
|
151
|
-
|
|
134
|
+
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response, _allDefaultedOptions$2;
|
|
152
135
|
const labels = Object.assign({}, {
|
|
153
136
|
path: allDefaultedOptions.normalizePath(extractPath(request), {
|
|
154
137
|
req: request,
|
|
@@ -163,11 +146,10 @@ const createPlugin = ({
|
|
|
163
146
|
res: response
|
|
164
147
|
})
|
|
165
148
|
}, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, request, {}));
|
|
166
|
-
const requestContentLength = Number((_request$headers$cont = request === null || request === void 0
|
|
149
|
+
const requestContentLength = Number((_request$headers$cont = request === null || request === void 0 || (_request$headers = request.headers) === null || _request$headers === void 0 ? void 0 : _request$headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
|
|
167
150
|
const responseContentLength = Number( // @ts-expect-error
|
|
168
|
-
(_request$response$hea = request === null || request === void 0
|
|
151
|
+
(_request$response$hea = request === null || request === void 0 || (_request$response = request.response) === null || _request$response === void 0 || (_request$response = _request$response.headers) === null || _request$response === void 0 ? void 0 : _request$response['content-length']) !== null && _request$response$hea !== void 0 ? _request$response$hea : 0);
|
|
169
152
|
const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
|
|
170
|
-
|
|
171
153
|
if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
|
|
172
154
|
recordRequest(request.plugins.promster.timing, {
|
|
173
155
|
labels,
|
|
@@ -175,34 +157,32 @@ const createPlugin = ({
|
|
|
175
157
|
responseContentLength
|
|
176
158
|
});
|
|
177
159
|
}
|
|
178
|
-
|
|
179
160
|
if (doesResponseNeedInvocation) response.continue();
|
|
180
|
-
};
|
|
181
|
-
// This is very hard to type as we would have to import two aliased versions of types.
|
|
182
|
-
|
|
161
|
+
};
|
|
183
162
|
|
|
163
|
+
// NOTE: This version detection allows us to gracefully support both new and old Hapi APIs.
|
|
164
|
+
// This is very hard to type as we would have to import two aliased versions of types.
|
|
184
165
|
if (areServerEventsSupported) {
|
|
185
166
|
// @ts-expect-error
|
|
186
|
-
server.ext('onRequest', onRequestHandler);
|
|
187
|
-
|
|
167
|
+
server.ext('onRequest', onRequestHandler);
|
|
168
|
+
// @ts-expect-error
|
|
188
169
|
server.events.on('response', onResponseHandler);
|
|
189
170
|
} else {
|
|
190
171
|
// @ts-expect-error
|
|
191
|
-
server.ext('onRequest', onRequestHandler);
|
|
192
|
-
|
|
172
|
+
server.ext('onRequest', onRequestHandler);
|
|
173
|
+
// @ts-expect-error
|
|
193
174
|
server.ext('onPreResponse', onResponseHandler);
|
|
194
|
-
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// NOTE: The type of the server.decorate only supports a function signature,
|
|
195
178
|
// even when the docs state that it can also be "other value" in the case of `server`.
|
|
196
179
|
// @ts-expect-error
|
|
197
|
-
|
|
198
|
-
|
|
199
180
|
server.decorate('server', 'Prometheus', metrics.Prometheus);
|
|
200
181
|
server.decorate('server', 'recordRequest', recordRequest);
|
|
201
182
|
return onRegistrationFinished === null || onRegistrationFinished === void 0 ? void 0 : onRegistrationFinished();
|
|
202
183
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
184
|
+
};
|
|
185
|
+
// @ts-expect-error
|
|
206
186
|
plugin.register.attributes = {
|
|
207
187
|
pkg
|
|
208
188
|
};
|
|
@@ -13,7 +13,7 @@ var merge__default = /*#__PURE__*/_interopDefault(merge);
|
|
|
13
13
|
|
|
14
14
|
var pkg = {
|
|
15
15
|
name: "@promster/hapi",
|
|
16
|
-
version: "
|
|
16
|
+
version: "9.0.0",
|
|
17
17
|
description: "Hapi server integrations of promster",
|
|
18
18
|
main: "dist/promster-hapi.cjs.js",
|
|
19
19
|
typings: "dist/promster-hapi.cjs.d.ts",
|
|
@@ -29,8 +29,8 @@ var pkg = {
|
|
|
29
29
|
access: "public"
|
|
30
30
|
},
|
|
31
31
|
engines: {
|
|
32
|
-
node: ">=
|
|
33
|
-
npm: ">=
|
|
32
|
+
node: ">=16",
|
|
33
|
+
npm: ">=8"
|
|
34
34
|
},
|
|
35
35
|
repository: {
|
|
36
36
|
type: "git",
|
|
@@ -49,69 +49,58 @@ var pkg = {
|
|
|
49
49
|
"prometheus"
|
|
50
50
|
],
|
|
51
51
|
dependencies: {
|
|
52
|
-
"@promster/metrics": "^
|
|
52
|
+
"@promster/metrics": "^10.0.0",
|
|
53
53
|
"merge-options": "3.0.4",
|
|
54
|
-
semver: "7.
|
|
55
|
-
tslib: "2.
|
|
54
|
+
semver: "7.5.4",
|
|
55
|
+
tslib: "2.4.1"
|
|
56
56
|
},
|
|
57
57
|
devDependencies: {
|
|
58
|
-
"@hapi/boom": "
|
|
59
|
-
"@hapi/hapi": "
|
|
60
|
-
"@promster/types": "^
|
|
61
|
-
"@types/hapi__hapi": "20.0.
|
|
62
|
-
"parse-prometheus-text-format": "1.1.1"
|
|
58
|
+
"@hapi/boom": "10.0.1",
|
|
59
|
+
"@hapi/hapi": "21.3.2",
|
|
60
|
+
"@promster/types": "^4.0.0",
|
|
61
|
+
"@types/hapi__hapi": "20.0.13",
|
|
62
|
+
"parse-prometheus-text-format": "1.1.1",
|
|
63
|
+
"@promster/server": "workspace:*"
|
|
63
64
|
}
|
|
64
65
|
};
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
|
|
67
68
|
|
|
69
|
+
const extractPath = request => request.route.path.replace(/\?/g, '');
|
|
68
70
|
const isBoomResponse = response => response.isBoom;
|
|
69
|
-
|
|
70
71
|
const extractStatusCode = request => {
|
|
71
72
|
const {
|
|
72
73
|
response
|
|
73
74
|
} = request;
|
|
74
|
-
|
|
75
75
|
if (!response) {
|
|
76
76
|
return 0;
|
|
77
77
|
}
|
|
78
|
-
|
|
79
78
|
if (isBoomResponse(response)) {
|
|
80
79
|
return response.output.statusCode;
|
|
81
80
|
}
|
|
82
|
-
|
|
83
81
|
return response.statusCode;
|
|
84
82
|
};
|
|
85
|
-
|
|
86
83
|
let recordRequest;
|
|
87
84
|
let upMetric;
|
|
88
|
-
|
|
89
85
|
const getRequestRecorder = () => recordRequest;
|
|
90
|
-
|
|
91
86
|
const signalIsUp = () => {
|
|
92
87
|
if (!upMetric) {
|
|
93
88
|
return;
|
|
94
89
|
}
|
|
95
|
-
|
|
96
90
|
upMetric.forEach(upMetricType => {
|
|
97
91
|
upMetricType.set(1);
|
|
98
92
|
});
|
|
99
93
|
};
|
|
100
|
-
|
|
101
94
|
const signalIsNotUp = () => {
|
|
102
95
|
if (!upMetric) {
|
|
103
96
|
return;
|
|
104
97
|
}
|
|
105
|
-
|
|
106
98
|
upMetric.forEach(upMetricType => {
|
|
107
99
|
upMetricType.set(0);
|
|
108
100
|
});
|
|
109
101
|
};
|
|
110
|
-
|
|
111
102
|
const getAreServerEventsSupported = actualVersion => Boolean(actualVersion && semver__default["default"].satisfies(actualVersion, '>= 17.0.0'));
|
|
112
|
-
|
|
113
103
|
const getDoesResponseNeedInvocation = actualVersion => Boolean(actualVersion && semver__default["default"].satisfies(actualVersion, '< 17.0.0'));
|
|
114
|
-
|
|
115
104
|
const createPlugin = ({
|
|
116
105
|
options: pluginOptions
|
|
117
106
|
} = {
|
|
@@ -124,31 +113,25 @@ const createPlugin = ({
|
|
|
124
113
|
const observeGc = metrics.createGcObserver(gcMetrics, allDefaultedOptions);
|
|
125
114
|
recordRequest = metrics.createRequestRecorder(httpMetrics, allDefaultedOptions);
|
|
126
115
|
upMetric = gcMetrics === null || gcMetrics === void 0 ? void 0 : gcMetrics.up;
|
|
127
|
-
|
|
128
116
|
if (!shouldSkipMetricsByEnvironment) {
|
|
129
117
|
observeGc();
|
|
130
118
|
}
|
|
131
|
-
|
|
132
119
|
const plugin = {
|
|
133
120
|
name: pkg.name,
|
|
134
121
|
version: pkg.version,
|
|
135
|
-
|
|
136
122
|
// @ts-expect-error
|
|
137
123
|
register(server, _registrationOptions, onRegistrationFinished = () => null) {
|
|
138
124
|
const areServerEventsSupported = getAreServerEventsSupported(server.version);
|
|
139
125
|
const doesResponseNeedInvocation = getDoesResponseNeedInvocation(server.version);
|
|
140
|
-
|
|
141
126
|
const onRequestHandler = (request, h) => {
|
|
142
127
|
request.plugins.promster = {
|
|
143
128
|
timing: metrics.timing.start()
|
|
144
|
-
};
|
|
145
|
-
|
|
129
|
+
};
|
|
130
|
+
// @ts-expect-error
|
|
146
131
|
return doesResponseNeedInvocation ? h.continue() : h.continue;
|
|
147
132
|
};
|
|
148
|
-
|
|
149
133
|
const onResponseHandler = (request, response) => {
|
|
150
|
-
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response,
|
|
151
|
-
|
|
134
|
+
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response, _allDefaultedOptions$2;
|
|
152
135
|
const labels = Object.assign({}, {
|
|
153
136
|
path: allDefaultedOptions.normalizePath(extractPath(request), {
|
|
154
137
|
req: request,
|
|
@@ -163,11 +146,10 @@ const createPlugin = ({
|
|
|
163
146
|
res: response
|
|
164
147
|
})
|
|
165
148
|
}, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, request, {}));
|
|
166
|
-
const requestContentLength = Number((_request$headers$cont = request === null || request === void 0
|
|
149
|
+
const requestContentLength = Number((_request$headers$cont = request === null || request === void 0 || (_request$headers = request.headers) === null || _request$headers === void 0 ? void 0 : _request$headers['content-length']) !== null && _request$headers$cont !== void 0 ? _request$headers$cont : 0);
|
|
167
150
|
const responseContentLength = Number( // @ts-expect-error
|
|
168
|
-
(_request$response$hea = request === null || request === void 0
|
|
151
|
+
(_request$response$hea = request === null || request === void 0 || (_request$response = request.response) === null || _request$response === void 0 || (_request$response = _request$response.headers) === null || _request$response === void 0 ? void 0 : _request$response['content-length']) !== null && _request$response$hea !== void 0 ? _request$response$hea : 0);
|
|
169
152
|
const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
|
|
170
|
-
|
|
171
153
|
if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
|
|
172
154
|
recordRequest(request.plugins.promster.timing, {
|
|
173
155
|
labels,
|
|
@@ -175,34 +157,32 @@ const createPlugin = ({
|
|
|
175
157
|
responseContentLength
|
|
176
158
|
});
|
|
177
159
|
}
|
|
178
|
-
|
|
179
160
|
if (doesResponseNeedInvocation) response.continue();
|
|
180
|
-
};
|
|
181
|
-
// This is very hard to type as we would have to import two aliased versions of types.
|
|
182
|
-
|
|
161
|
+
};
|
|
183
162
|
|
|
163
|
+
// NOTE: This version detection allows us to gracefully support both new and old Hapi APIs.
|
|
164
|
+
// This is very hard to type as we would have to import two aliased versions of types.
|
|
184
165
|
if (areServerEventsSupported) {
|
|
185
166
|
// @ts-expect-error
|
|
186
|
-
server.ext('onRequest', onRequestHandler);
|
|
187
|
-
|
|
167
|
+
server.ext('onRequest', onRequestHandler);
|
|
168
|
+
// @ts-expect-error
|
|
188
169
|
server.events.on('response', onResponseHandler);
|
|
189
170
|
} else {
|
|
190
171
|
// @ts-expect-error
|
|
191
|
-
server.ext('onRequest', onRequestHandler);
|
|
192
|
-
|
|
172
|
+
server.ext('onRequest', onRequestHandler);
|
|
173
|
+
// @ts-expect-error
|
|
193
174
|
server.ext('onPreResponse', onResponseHandler);
|
|
194
|
-
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// NOTE: The type of the server.decorate only supports a function signature,
|
|
195
178
|
// even when the docs state that it can also be "other value" in the case of `server`.
|
|
196
179
|
// @ts-expect-error
|
|
197
|
-
|
|
198
|
-
|
|
199
180
|
server.decorate('server', 'Prometheus', metrics.Prometheus);
|
|
200
181
|
server.decorate('server', 'recordRequest', recordRequest);
|
|
201
182
|
return onRegistrationFinished === null || onRegistrationFinished === void 0 ? void 0 : onRegistrationFinished();
|
|
202
183
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
184
|
+
};
|
|
185
|
+
// @ts-expect-error
|
|
206
186
|
plugin.register.attributes = {
|
|
207
187
|
pkg
|
|
208
188
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promster/hapi",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "Hapi server integrations of promster",
|
|
5
5
|
"main": "dist/promster-hapi.cjs.js",
|
|
6
6
|
"typings": "dist/promster-hapi.cjs.d.ts",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
18
18
|
"engines": {
|
|
19
|
-
"node": ">=
|
|
20
|
-
"npm": ">=
|
|
19
|
+
"node": ">=16",
|
|
20
|
+
"npm": ">=8"
|
|
21
21
|
},
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|
|
@@ -36,16 +36,17 @@
|
|
|
36
36
|
"prometheus"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@promster/metrics": "^
|
|
39
|
+
"@promster/metrics": "^10.0.0",
|
|
40
40
|
"merge-options": "3.0.4",
|
|
41
|
-
"semver": "7.
|
|
42
|
-
"tslib": "2.
|
|
41
|
+
"semver": "7.5.4",
|
|
42
|
+
"tslib": "2.4.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@hapi/boom": "
|
|
46
|
-
"@hapi/hapi": "
|
|
47
|
-
"@promster/types": "^
|
|
48
|
-
"@types/hapi__hapi": "20.0.
|
|
49
|
-
"parse-prometheus-text-format": "1.1.1"
|
|
45
|
+
"@hapi/boom": "10.0.1",
|
|
46
|
+
"@hapi/hapi": "21.3.2",
|
|
47
|
+
"@promster/types": "^4.0.0",
|
|
48
|
+
"@types/hapi__hapi": "20.0.13",
|
|
49
|
+
"parse-prometheus-text-format": "1.1.1",
|
|
50
|
+
"@promster/server": "8.0.0"
|
|
50
51
|
}
|
|
51
|
-
}
|
|
52
|
+
}
|