@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.
@@ -1,6 +1,6 @@
1
- import type { TPromsterOptions } from '@promster/types';
2
- import type { Server } from '@hapi/hapi';
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 './plugin';
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 { TPromsterOptions } from '@promster/types';
2
- import type { TRequestRecorder } from '@promster/metrics';
3
- import type { Plugin } from '@hapi/hapi';
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>;
@@ -1 +1,2 @@
1
1
  export * from "./declarations/src/index";
2
+ //# sourceMappingURL=promster-hapi.cjs.d.ts.map
@@ -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: "8.0.6",
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: ">=14",
33
- npm: ">=6"
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": "^9.1.6",
53
+ "@promster/metrics": "^11.0.0",
54
+ "@promster/types": "^5.0.0",
53
55
  "merge-options": "3.0.4",
54
- semver: "7.3.8",
55
- tslib: "2.4.1"
56
+ semver: "7.5.4",
57
+ tslib: "2.6.2"
56
58
  },
57
59
  devDependencies: {
58
- "@hapi/boom": "9.1.4",
59
- "@hapi/hapi": "20.2.2",
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, metrics.createGcObserver.defaultOptions, metrics.defaultNormalizers, pluginOptions);
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, _request$response$hea2, _allDefaultedOptions$2;
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 ? 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);
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 ? void 0 : (_request$response = request.response) === null || _request$response === void 0 ? void 0 : (_request$response$hea2 = _request$response.headers) === null || _request$response$hea2 === void 0 ? void 0 : _request$response$hea2['content-length']) !== null && _request$response$hea !== void 0 ? _request$response$hea : 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: "8.0.6",
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: ">=14",
33
- npm: ">=6"
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": "^9.1.6",
53
+ "@promster/metrics": "^11.0.0",
54
+ "@promster/types": "^5.0.0",
53
55
  "merge-options": "3.0.4",
54
- semver: "7.3.8",
55
- tslib: "2.4.1"
56
+ semver: "7.5.4",
57
+ tslib: "2.6.2"
56
58
  },
57
59
  devDependencies: {
58
- "@hapi/boom": "9.1.4",
59
- "@hapi/hapi": "20.2.2",
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, metrics.createGcObserver.defaultOptions, metrics.defaultNormalizers, pluginOptions);
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, _request$response$hea2, _allDefaultedOptions$2;
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 ? 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);
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 ? void 0 : (_request$response = request.response) === null || _request$response === void 0 ? void 0 : (_request$response$hea2 = _request$response.headers) === null || _request$response$hea2 === void 0 ? void 0 : _request$response$hea2['content-length']) !== null && _request$response$hea !== void 0 ? _request$response$hea : 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": "8.0.6",
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": ">=14",
20
- "npm": ">=6"
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": "^9.1.6",
39
+ "@promster/metrics": "^11.0.0",
40
+ "@promster/types": "^5.0.0",
40
41
  "merge-options": "3.0.4",
41
- "semver": "7.3.8",
42
- "tslib": "2.4.1"
42
+ "semver": "7.5.4",
43
+ "tslib": "2.6.2"
43
44
  },
44
45
  "devDependencies": {
45
- "@hapi/boom": "9.1.4",
46
- "@hapi/hapi": "20.2.2",
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
+ }