@promster/hapi 8.0.6 → 10.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.
- package/dist/declarations/src/index.d.ts +5 -5
- package/dist/declarations/src/plugin/index.d.ts +2 -2
- package/dist/declarations/src/plugin/plugin.d.ts +7 -3
- package/dist/promster-hapi.cjs.d.ts +1 -0
- package/dist/promster-hapi.cjs.d.ts.map +1 -0
- package/dist/promster-hapi.cjs.dev.js +28 -14
- package/dist/promster-hapi.cjs.prod.js +28 -14
- package/package.json +13 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import { createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp } from './plugin';
|
|
1
|
+
import { type Server } from '@hapi/hapi';
|
|
2
|
+
import { type TPromsterOptions, createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp } from "./plugin/index.js";
|
|
4
3
|
import { getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers, timing } from '@promster/metrics';
|
|
5
|
-
declare const instrument: (server: Server, options: TPromsterOptions) => Promise<void>;
|
|
6
|
-
export { createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp, getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers, instrument, timing, };
|
|
4
|
+
declare const instrument: (server: Server, options: TPromsterOptions) => Promise<Server<import("@hapi/hapi").ServerApplicationState> & void>;
|
|
5
|
+
export { type TPromsterOptions, createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp, getSummary, getContentType, Prometheus, defaultRegister, defaultNormalizers, instrument, timing, };
|
|
6
|
+
export * from '@promster/types';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp } from
|
|
2
|
-
export { createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp };
|
|
1
|
+
import { type TPromsterOptions, createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp } from "./plugin.js";
|
|
2
|
+
export { type TPromsterOptions, createPlugin, getRequestRecorder, signalIsUp, signalIsNotUp, };
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
1
|
+
import { type TOptionalPromsterOptions, type TLabelValues } from '@promster/types';
|
|
2
|
+
import { type TRequestRecorder } from '@promster/metrics';
|
|
3
|
+
import { type Plugin, type Request, type ResponseObject } from '@hapi/hapi';
|
|
4
4
|
declare const getRequestRecorder: () => TRequestRecorder;
|
|
5
5
|
declare const signalIsUp: () => void;
|
|
6
6
|
declare const signalIsNotUp: () => void;
|
|
7
7
|
declare const getAreServerEventsSupported: (actualVersion: string) => boolean;
|
|
8
8
|
declare const getDoesResponseNeedInvocation: (actualVersion: string) => boolean;
|
|
9
|
+
type TSkipFunction = <TRequest extends Request, TResponse extends ResponseObject>(_req: TRequest, _res: TResponse, _labels: TLabelValues) => boolean;
|
|
10
|
+
export type TPromsterOptions = TOptionalPromsterOptions & {
|
|
11
|
+
skip?: TSkipFunction;
|
|
12
|
+
};
|
|
9
13
|
declare const createPlugin: ({ options: pluginOptions, }?: {
|
|
10
14
|
options?: TPromsterOptions;
|
|
11
15
|
}) => Plugin<unknown>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promster-hapi.cjs.d.ts","sourceRoot":"","sources":["./declarations/src/index.d.ts"],"names":[],"mappings":"AAAA"}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var semver = require('semver');
|
|
6
6
|
var merge = require('merge-options');
|
|
7
7
|
var metrics = require('@promster/metrics');
|
|
8
|
+
var types = require('@promster/types');
|
|
8
9
|
|
|
9
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
10
11
|
|
|
@@ -13,7 +14,7 @@ var merge__default = /*#__PURE__*/_interopDefault(merge);
|
|
|
13
14
|
|
|
14
15
|
var pkg = {
|
|
15
16
|
name: "@promster/hapi",
|
|
16
|
-
version: "
|
|
17
|
+
version: "10.0.0",
|
|
17
18
|
description: "Hapi server integrations of promster",
|
|
18
19
|
main: "dist/promster-hapi.cjs.js",
|
|
19
20
|
typings: "dist/promster-hapi.cjs.d.ts",
|
|
@@ -29,8 +30,8 @@ var pkg = {
|
|
|
29
30
|
access: "public"
|
|
30
31
|
},
|
|
31
32
|
engines: {
|
|
32
|
-
node: ">=
|
|
33
|
-
npm: ">=
|
|
33
|
+
node: ">=16",
|
|
34
|
+
npm: ">=8"
|
|
34
35
|
},
|
|
35
36
|
repository: {
|
|
36
37
|
type: "git",
|
|
@@ -49,17 +50,19 @@ var pkg = {
|
|
|
49
50
|
"prometheus"
|
|
50
51
|
],
|
|
51
52
|
dependencies: {
|
|
52
|
-
"@promster/metrics": "^
|
|
53
|
+
"@promster/metrics": "^11.0.0",
|
|
54
|
+
"@promster/types": "^5.0.0",
|
|
53
55
|
"merge-options": "3.0.4",
|
|
54
|
-
semver: "7.
|
|
55
|
-
tslib: "2.
|
|
56
|
+
semver: "7.5.4",
|
|
57
|
+
tslib: "2.6.2"
|
|
56
58
|
},
|
|
57
59
|
devDependencies: {
|
|
58
|
-
"@hapi/boom": "
|
|
59
|
-
"@hapi/hapi": "
|
|
60
|
-
"@promster/types": "^3.2.5",
|
|
60
|
+
"@hapi/boom": "10.0.1",
|
|
61
|
+
"@hapi/hapi": "21.3.2",
|
|
61
62
|
"@types/hapi__hapi": "20.0.13",
|
|
62
|
-
"parse-prometheus-text-format": "1.1.1"
|
|
63
|
+
"parse-prometheus-text-format": "1.1.1",
|
|
64
|
+
"@promster/server": "workspace:*",
|
|
65
|
+
"@types/semver": "7.5.1"
|
|
63
66
|
}
|
|
64
67
|
};
|
|
65
68
|
|
|
@@ -105,7 +108,9 @@ const createPlugin = ({
|
|
|
105
108
|
} = {
|
|
106
109
|
options: undefined
|
|
107
110
|
}) => {
|
|
108
|
-
const allDefaultedOptions = merge__default["default"](metrics.createHttpMetrics.defaultOptions, metrics.createGcMetrics.defaultOptions, metrics.createRequestRecorder.defaultOptions,
|
|
111
|
+
const allDefaultedOptions = merge__default["default"](metrics.createHttpMetrics.defaultOptions, metrics.createGcMetrics.defaultOptions, metrics.createRequestRecorder.defaultOptions,
|
|
112
|
+
// @ts-expect-error
|
|
113
|
+
metrics.createGcObserver.defaultOptions, metrics.defaultNormalizers, pluginOptions);
|
|
109
114
|
const shouldSkipMetricsByEnvironment = metrics.skipMetricsInEnvironment(allDefaultedOptions);
|
|
110
115
|
const httpMetrics = metrics.createHttpMetrics(allDefaultedOptions);
|
|
111
116
|
const gcMetrics = metrics.createGcMetrics(allDefaultedOptions);
|
|
@@ -130,7 +135,7 @@ const createPlugin = ({
|
|
|
130
135
|
return doesResponseNeedInvocation ? h.continue() : h.continue;
|
|
131
136
|
};
|
|
132
137
|
const onResponseHandler = (request, response) => {
|
|
133
|
-
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response,
|
|
138
|
+
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response, _allDefaultedOptions$2;
|
|
134
139
|
const labels = Object.assign({}, {
|
|
135
140
|
path: allDefaultedOptions.normalizePath(extractPath(request), {
|
|
136
141
|
req: request,
|
|
@@ -140,14 +145,15 @@ const createPlugin = ({
|
|
|
140
145
|
req: request,
|
|
141
146
|
res: response
|
|
142
147
|
}),
|
|
148
|
+
// eslint-disable-next-line camelcase
|
|
143
149
|
status_code: allDefaultedOptions.normalizeStatusCode(extractStatusCode(request), {
|
|
144
150
|
req: request,
|
|
145
151
|
res: response
|
|
146
152
|
})
|
|
147
153
|
}, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, request, {}));
|
|
148
|
-
const requestContentLength = Number((_request$headers$cont = request === null || request === void 0
|
|
154
|
+
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);
|
|
149
155
|
const responseContentLength = Number( // @ts-expect-error
|
|
150
|
-
(_request$response$hea = request === null || request === void 0
|
|
156
|
+
(_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);
|
|
151
157
|
const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
|
|
152
158
|
if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
|
|
153
159
|
recordRequest(request.plugins.promster.timing, {
|
|
@@ -156,6 +162,8 @@ const createPlugin = ({
|
|
|
156
162
|
responseContentLength
|
|
157
163
|
});
|
|
158
164
|
}
|
|
165
|
+
|
|
166
|
+
// @ts-expect-error - this is the older Hapi version
|
|
159
167
|
if (doesResponseNeedInvocation) response.continue();
|
|
160
168
|
};
|
|
161
169
|
|
|
@@ -221,3 +229,9 @@ exports.getRequestRecorder = getRequestRecorder;
|
|
|
221
229
|
exports.instrument = instrument;
|
|
222
230
|
exports.signalIsNotUp = signalIsNotUp;
|
|
223
231
|
exports.signalIsUp = signalIsUp;
|
|
232
|
+
Object.keys(types).forEach(function (k) {
|
|
233
|
+
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
234
|
+
enumerable: true,
|
|
235
|
+
get: function () { return types[k]; }
|
|
236
|
+
});
|
|
237
|
+
});
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var semver = require('semver');
|
|
6
6
|
var merge = require('merge-options');
|
|
7
7
|
var metrics = require('@promster/metrics');
|
|
8
|
+
var types = require('@promster/types');
|
|
8
9
|
|
|
9
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
10
11
|
|
|
@@ -13,7 +14,7 @@ var merge__default = /*#__PURE__*/_interopDefault(merge);
|
|
|
13
14
|
|
|
14
15
|
var pkg = {
|
|
15
16
|
name: "@promster/hapi",
|
|
16
|
-
version: "
|
|
17
|
+
version: "10.0.0",
|
|
17
18
|
description: "Hapi server integrations of promster",
|
|
18
19
|
main: "dist/promster-hapi.cjs.js",
|
|
19
20
|
typings: "dist/promster-hapi.cjs.d.ts",
|
|
@@ -29,8 +30,8 @@ var pkg = {
|
|
|
29
30
|
access: "public"
|
|
30
31
|
},
|
|
31
32
|
engines: {
|
|
32
|
-
node: ">=
|
|
33
|
-
npm: ">=
|
|
33
|
+
node: ">=16",
|
|
34
|
+
npm: ">=8"
|
|
34
35
|
},
|
|
35
36
|
repository: {
|
|
36
37
|
type: "git",
|
|
@@ -49,17 +50,19 @@ var pkg = {
|
|
|
49
50
|
"prometheus"
|
|
50
51
|
],
|
|
51
52
|
dependencies: {
|
|
52
|
-
"@promster/metrics": "^
|
|
53
|
+
"@promster/metrics": "^11.0.0",
|
|
54
|
+
"@promster/types": "^5.0.0",
|
|
53
55
|
"merge-options": "3.0.4",
|
|
54
|
-
semver: "7.
|
|
55
|
-
tslib: "2.
|
|
56
|
+
semver: "7.5.4",
|
|
57
|
+
tslib: "2.6.2"
|
|
56
58
|
},
|
|
57
59
|
devDependencies: {
|
|
58
|
-
"@hapi/boom": "
|
|
59
|
-
"@hapi/hapi": "
|
|
60
|
-
"@promster/types": "^3.2.5",
|
|
60
|
+
"@hapi/boom": "10.0.1",
|
|
61
|
+
"@hapi/hapi": "21.3.2",
|
|
61
62
|
"@types/hapi__hapi": "20.0.13",
|
|
62
|
-
"parse-prometheus-text-format": "1.1.1"
|
|
63
|
+
"parse-prometheus-text-format": "1.1.1",
|
|
64
|
+
"@promster/server": "workspace:*",
|
|
65
|
+
"@types/semver": "7.5.1"
|
|
63
66
|
}
|
|
64
67
|
};
|
|
65
68
|
|
|
@@ -105,7 +108,9 @@ const createPlugin = ({
|
|
|
105
108
|
} = {
|
|
106
109
|
options: undefined
|
|
107
110
|
}) => {
|
|
108
|
-
const allDefaultedOptions = merge__default["default"](metrics.createHttpMetrics.defaultOptions, metrics.createGcMetrics.defaultOptions, metrics.createRequestRecorder.defaultOptions,
|
|
111
|
+
const allDefaultedOptions = merge__default["default"](metrics.createHttpMetrics.defaultOptions, metrics.createGcMetrics.defaultOptions, metrics.createRequestRecorder.defaultOptions,
|
|
112
|
+
// @ts-expect-error
|
|
113
|
+
metrics.createGcObserver.defaultOptions, metrics.defaultNormalizers, pluginOptions);
|
|
109
114
|
const shouldSkipMetricsByEnvironment = metrics.skipMetricsInEnvironment(allDefaultedOptions);
|
|
110
115
|
const httpMetrics = metrics.createHttpMetrics(allDefaultedOptions);
|
|
111
116
|
const gcMetrics = metrics.createGcMetrics(allDefaultedOptions);
|
|
@@ -130,7 +135,7 @@ const createPlugin = ({
|
|
|
130
135
|
return doesResponseNeedInvocation ? h.continue() : h.continue;
|
|
131
136
|
};
|
|
132
137
|
const onResponseHandler = (request, response) => {
|
|
133
|
-
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response,
|
|
138
|
+
var _allDefaultedOptions$, _request$headers$cont, _request$headers, _request$response$hea, _request$response, _allDefaultedOptions$2;
|
|
134
139
|
const labels = Object.assign({}, {
|
|
135
140
|
path: allDefaultedOptions.normalizePath(extractPath(request), {
|
|
136
141
|
req: request,
|
|
@@ -140,14 +145,15 @@ const createPlugin = ({
|
|
|
140
145
|
req: request,
|
|
141
146
|
res: response
|
|
142
147
|
}),
|
|
148
|
+
// eslint-disable-next-line camelcase
|
|
143
149
|
status_code: allDefaultedOptions.normalizeStatusCode(extractStatusCode(request), {
|
|
144
150
|
req: request,
|
|
145
151
|
res: response
|
|
146
152
|
})
|
|
147
153
|
}, (_allDefaultedOptions$ = allDefaultedOptions.getLabelValues) === null || _allDefaultedOptions$ === void 0 ? void 0 : _allDefaultedOptions$.call(allDefaultedOptions, request, {}));
|
|
148
|
-
const requestContentLength = Number((_request$headers$cont = request === null || request === void 0
|
|
154
|
+
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);
|
|
149
155
|
const responseContentLength = Number( // @ts-expect-error
|
|
150
|
-
(_request$response$hea = request === null || request === void 0
|
|
156
|
+
(_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);
|
|
151
157
|
const shouldSkipByRequest = (_allDefaultedOptions$2 = allDefaultedOptions.skip) === null || _allDefaultedOptions$2 === void 0 ? void 0 : _allDefaultedOptions$2.call(allDefaultedOptions, request, response, labels);
|
|
152
158
|
if (!shouldSkipByRequest && !shouldSkipMetricsByEnvironment) {
|
|
153
159
|
recordRequest(request.plugins.promster.timing, {
|
|
@@ -156,6 +162,8 @@ const createPlugin = ({
|
|
|
156
162
|
responseContentLength
|
|
157
163
|
});
|
|
158
164
|
}
|
|
165
|
+
|
|
166
|
+
// @ts-expect-error - this is the older Hapi version
|
|
159
167
|
if (doesResponseNeedInvocation) response.continue();
|
|
160
168
|
};
|
|
161
169
|
|
|
@@ -221,3 +229,9 @@ exports.getRequestRecorder = getRequestRecorder;
|
|
|
221
229
|
exports.instrument = instrument;
|
|
222
230
|
exports.signalIsNotUp = signalIsNotUp;
|
|
223
231
|
exports.signalIsUp = signalIsUp;
|
|
232
|
+
Object.keys(types).forEach(function (k) {
|
|
233
|
+
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
234
|
+
enumerable: true,
|
|
235
|
+
get: function () { return types[k]; }
|
|
236
|
+
});
|
|
237
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promster/hapi",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.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,18 @@
|
|
|
36
36
|
"prometheus"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@promster/metrics": "^
|
|
39
|
+
"@promster/metrics": "^11.0.0",
|
|
40
|
+
"@promster/types": "^5.0.0",
|
|
40
41
|
"merge-options": "3.0.4",
|
|
41
|
-
"semver": "7.
|
|
42
|
-
"tslib": "2.
|
|
42
|
+
"semver": "7.5.4",
|
|
43
|
+
"tslib": "2.6.2"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
|
-
"@hapi/boom": "
|
|
46
|
-
"@hapi/hapi": "
|
|
47
|
-
"@promster/types": "^3.2.5",
|
|
46
|
+
"@hapi/boom": "10.0.1",
|
|
47
|
+
"@hapi/hapi": "21.3.2",
|
|
48
48
|
"@types/hapi__hapi": "20.0.13",
|
|
49
|
-
"parse-prometheus-text-format": "1.1.1"
|
|
49
|
+
"parse-prometheus-text-format": "1.1.1",
|
|
50
|
+
"@types/semver": "7.5.1",
|
|
51
|
+
"@promster/server": "9.0.0"
|
|
50
52
|
}
|
|
51
|
-
}
|
|
53
|
+
}
|