@openapi-typescript-infra/service 6.6.3 → 6.8.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.
@@ -13,18 +13,18 @@ interface BootstrapArguments {
13
13
  export declare function bootstrap<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals>(argv?: BootstrapArguments): Promise<{
14
14
  app: import("./types.js").ServiceExpress<SLocals>;
15
15
  codepath: "build" | "src" | "dist" | undefined;
16
- server: import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
16
+ server: import("node:http").Server<typeof import("node:http").IncomingMessage, typeof import("node:http").ServerResponse>;
17
17
  } | {
18
- server: import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | undefined;
18
+ server: import("node:http").Server<typeof import("node:http").IncomingMessage, typeof import("node:http").ServerResponse> | undefined;
19
19
  app: import("./types.js").ServiceExpress<SLocals>;
20
20
  codepath: "build" | "src" | "dist";
21
21
  }>;
22
22
  export declare function bootstrapCli<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals>(argv?: BootstrapArguments): Promise<{
23
23
  app: import("./types.js").ServiceExpress<SLocals>;
24
24
  codepath: "build" | "src" | "dist" | undefined;
25
- server: import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
25
+ server: import("node:http").Server<typeof import("node:http").IncomingMessage, typeof import("node:http").ServerResponse>;
26
26
  } | {
27
- server: import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | undefined;
27
+ server: import("node:http").Server<typeof import("node:http").IncomingMessage, typeof import("node:http").ServerResponse> | undefined;
28
28
  app: import("./types.js").ServiceExpress<SLocals>;
29
29
  codepath: "build" | "src" | "dist";
30
30
  }>;
@@ -1,9 +1,8 @@
1
1
  import http from 'http';
2
- import https from 'https';
3
2
  import type { AnyServiceLocals, RequestLocals, ServiceExpress, ServiceLocals, ServiceStartOptions } from '../types.js';
4
3
  import type { ConfigurationSchema } from '../config/schema.js';
5
4
  export declare function startApp<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals>(startOptions: ServiceStartOptions<SLocals, RLocals>): Promise<ServiceExpress<SLocals>>;
6
5
  export type StartAppFn<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals> = typeof startApp<SLocals, RLocals>;
7
6
  export declare function shutdownApp<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>>(app: ServiceExpress<SLocals>): Promise<void>;
8
- export declare function listen<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>>(app: ServiceExpress<SLocals>, shutdownHandler?: () => Promise<void>): Promise<http.Server<typeof http.IncomingMessage, typeof http.ServerResponse> | https.Server<typeof http.IncomingMessage, typeof http.ServerResponse>>;
7
+ export declare function listen<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>>(app: ServiceExpress<SLocals>, shutdownHandler?: () => Promise<void>): Promise<http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>>;
9
8
  export type ListenFn<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>> = typeof listen<SLocals>;
@@ -17,6 +17,6 @@ export declare function shutdownGlobalTelemetry(): Promise<void>;
17
17
  export declare function startWithTelemetry<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals>(options: DelayLoadServiceStartOptions): Promise<{
18
18
  app: import("../types.js").ServiceExpress<SLocals>;
19
19
  codepath: "build" | "src" | "dist" | undefined;
20
- server: import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
20
+ server: import("node:http").Server<typeof import("node:http").IncomingMessage, typeof import("node:http").ServerResponse>;
21
21
  }>;
22
22
  export { setTelemetryHooks } from './instrumentations.js';
@@ -93,12 +93,16 @@ function finishLog(app, error, req, res, histogram) {
93
93
  endLog.resBody = bodyString;
94
94
  }
95
95
  }
96
- const msg = service.getLogFields?.(req, endLog) || url;
96
+ const msg = service.getLogFields?.(req, endLog);
97
+ if (msg === false) {
98
+ res[LOGGED_SEMAPHORE] = true;
99
+ return;
100
+ }
97
101
  if (unexpectedError) {
98
- logger.error(endLog, msg);
102
+ logger.error(endLog, msg || url);
99
103
  }
100
104
  else {
101
- logger.info(endLog, msg);
105
+ logger.info(endLog, msg || url);
102
106
  }
103
107
  res[LOGGED_SEMAPHORE] = true;
104
108
  }
@@ -142,8 +146,10 @@ export function loggerMiddleware(app, histogram, config) {
142
146
  sid: req.session?.id,
143
147
  c: req.headers.correlationid || undefined,
144
148
  };
145
- const msg = service.getLogFields?.(req, preLog) || url;
146
- logger.info(preLog, msg);
149
+ const msg = service.getLogFields?.(req, preLog);
150
+ if (msg !== false) {
151
+ logger.info(preLog, msg || url);
152
+ }
147
153
  }
148
154
  const logWriter = (err) => finishLog(app, err, req, res, histogram);
149
155
  res.on('finish', logWriter);
@@ -1 +1 @@
1
- {"version":3,"file":"requestLogger.js","sourceRoot":"","sources":["../../src/telemetry/requestLogger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requestLogger.js","sourceRoot":"","sources":["../../src/telemetry/requestLogger.ts"],"names":[],"mappings":"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"}
package/build/types.d.ts CHANGED
@@ -52,7 +52,7 @@ export interface Service<SLocals extends AnyServiceLocals = ServiceLocals<Config
52
52
  healthy?: (app: ServiceExpress<SLocals>) => boolean | Promise<boolean>;
53
53
  onRequest?(req: RequestWithApp<SLocals>, res: Response<unknown, RLocals>): void | Promise<void>;
54
54
  authorize?(req: RequestWithApp<SLocals>, res: Response<unknown, RLocals>): boolean | Promise<boolean>;
55
- getLogFields?(req: RequestWithApp<SLocals>, values: Record<string, string | string[] | number | undefined>): string | undefined;
55
+ getLogFields?(req: RequestWithApp<SLocals>, values: Record<string, string | string[] | number | undefined>): string | false | undefined;
56
56
  attachRepl?(app: ServiceExpress<SLocals>, repl: REPLServer): void;
57
57
  }
58
58
  export type ServiceFactory<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals> = () => Service<SLocals, RLocals>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openapi-typescript-infra/service",
3
- "version": "6.6.3",
3
+ "version": "6.8.0",
4
4
  "description": "An opinionated framework for building configuration driven services - web, api, or ob. Uses OpenAPI, pino logging, express, confit, Typescript and vitest.",
5
5
  "exports": {
6
6
  ".": {
@@ -71,31 +71,31 @@
71
71
  "dependencies": {
72
72
  "@godaddy/terminus": "^4.12.1",
73
73
  "@opentelemetry/api": "^1.9.0",
74
- "@opentelemetry/auto-instrumentations-node": "^0.69.0",
74
+ "@opentelemetry/auto-instrumentations-node": "^0.70.0",
75
75
  "@opentelemetry/exporter-prometheus": "^0.212.0",
76
- "@opentelemetry/instrumentation-dns": "^0.54.0",
77
- "@opentelemetry/instrumentation-express": "^0.59.0",
78
- "@opentelemetry/instrumentation-generic-pool": "^0.54.0",
79
- "@opentelemetry/instrumentation-graphql": "^0.58.0",
76
+ "@opentelemetry/instrumentation-dns": "^0.55.0",
77
+ "@opentelemetry/instrumentation-express": "^0.60.0",
78
+ "@opentelemetry/instrumentation-generic-pool": "^0.55.0",
79
+ "@opentelemetry/instrumentation-graphql": "^0.59.0",
80
80
  "@opentelemetry/instrumentation-http": "^0.212.0",
81
- "@opentelemetry/instrumentation-net": "^0.55.0",
82
- "@opentelemetry/instrumentation-pg": "^0.63.0",
83
- "@opentelemetry/instrumentation-pino": "^0.57.0",
84
- "@opentelemetry/instrumentation-redis": "^0.59.0",
85
- "@opentelemetry/instrumentation-undici": "^0.21.0",
86
- "@opentelemetry/resource-detector-container": "^0.8.2",
87
- "@opentelemetry/resource-detector-gcp": "^0.46.0",
81
+ "@opentelemetry/instrumentation-net": "^0.56.0",
82
+ "@opentelemetry/instrumentation-pg": "^0.64.0",
83
+ "@opentelemetry/instrumentation-pino": "^0.58.0",
84
+ "@opentelemetry/instrumentation-redis": "^0.60.0",
85
+ "@opentelemetry/instrumentation-undici": "^0.22.0",
86
+ "@opentelemetry/resource-detector-container": "^0.8.3",
87
+ "@opentelemetry/resource-detector-gcp": "^0.47.0",
88
88
  "@opentelemetry/sdk-node": "^0.212.0",
89
89
  "@opentelemetry/semantic-conventions": "^1.39.0",
90
90
  "@sesamecare-oss/confit": "^2.2.1",
91
- "@sesamecare-oss/opentelemetry-node-metrics": "^2.0.3",
91
+ "@sesamecare-oss/opentelemetry-node-metrics": "^3.0.0",
92
92
  "ajv": "^8.18.0",
93
93
  "clean-stack": "^6.0.0",
94
94
  "cookie-parser": "^1.4.7",
95
95
  "dotenv": "^17.3.1",
96
96
  "express": "^5.2.1",
97
97
  "express-openapi-validator": "^5.6.2",
98
- "glob": "^13.0.3",
98
+ "glob": "^13.0.6",
99
99
  "import-in-the-middle": "^2.0.6",
100
100
  "minimist": "^1.2.8",
101
101
  "moderndash": "^4.0.0",
@@ -105,8 +105,8 @@
105
105
  "request-ip": "^3.3.0"
106
106
  },
107
107
  "devDependencies": {
108
- "@commitlint/cli": "^20.4.1",
109
- "@commitlint/config-conventional": "^20.4.1",
108
+ "@commitlint/cli": "^20.4.2",
109
+ "@commitlint/config-conventional": "^20.4.2",
110
110
  "@openapi-typescript-infra/cpconfig": "^1.1.0",
111
111
  "@semantic-release/commit-analyzer": "^13.0.1",
112
112
  "@semantic-release/exec": "^7.1.0",
@@ -115,13 +115,13 @@
115
115
  "@types/cookie-parser": "^1.4.10",
116
116
  "@types/express": "^5.0.6",
117
117
  "@types/minimist": "^1.2.5",
118
- "@types/node": "^24.10.13",
118
+ "@types/node": "^25.3.0",
119
119
  "@types/request-ip": "^0.0.41",
120
120
  "@types/supertest": "^6.0.3",
121
121
  "@typescript-eslint/eslint-plugin": "^8.56.0",
122
122
  "@typescript-eslint/parser": "^8.56.0",
123
123
  "cpconfig": "^1.4.4",
124
- "eslint": "^9.39.2",
124
+ "eslint": "^9.39.3",
125
125
  "eslint-config-prettier": "^10.1.8",
126
126
  "eslint-import-resolver-typescript": "^4.4.4",
127
127
  "eslint-plugin-import": "^2.32.0",
@@ -140,11 +140,15 @@ function finishLog<SLocals extends AnyServiceLocals = ServiceLocals<Configuratio
140
140
  endLog.resBody = bodyString;
141
141
  }
142
142
  }
143
- const msg = service.getLogFields?.(req as RequestWithApp<SLocals>, endLog) || url;
143
+ const msg = service.getLogFields?.(req as RequestWithApp<SLocals>, endLog);
144
+ if (msg === false) {
145
+ res[LOGGED_SEMAPHORE] = true;
146
+ return;
147
+ }
144
148
  if (unexpectedError) {
145
- logger.error(endLog, msg);
149
+ logger.error(endLog, msg || url);
146
150
  } else {
147
- logger.info(endLog, msg);
151
+ logger.info(endLog, msg || url);
148
152
  }
149
153
 
150
154
  res[LOGGED_SEMAPHORE] = true;
@@ -200,8 +204,10 @@ export function loggerMiddleware<
200
204
  sid: (req as WithIdentifiedSession).session?.id,
201
205
  c: req.headers.correlationid || undefined,
202
206
  };
203
- const msg = service.getLogFields?.(req as RequestWithApp<SLocals>, preLog) || url;
204
- logger.info(preLog, msg);
207
+ const msg = service.getLogFields?.(req as RequestWithApp<SLocals>, preLog);
208
+ if (msg !== false) {
209
+ logger.info(preLog, msg || url);
210
+ }
205
211
  }
206
212
 
207
213
  const logWriter = (err?: Error) => finishLog(app, err, req, res, histogram);
package/src/types.ts CHANGED
@@ -106,11 +106,11 @@ export interface Service<
106
106
  // Add or redact any fields for logging. Note this will be called twice per request,
107
107
  // once at the start and once at the end. Modify the values directly. Return a
108
108
  // string to control the "msg" field of the logs, or return undefined to leave it
109
- // as the default, which is the request URL.
109
+ // as the default, which is the request URL. Return false to suppress the log entirely.
110
110
  getLogFields?(
111
111
  req: RequestWithApp<SLocals>,
112
112
  values: Record<string, string | string[] | number | undefined>,
113
- ): string | undefined;
113
+ ): string | false | undefined;
114
114
 
115
115
  // The repl is a useful tool for diagnosing issues in non-dev environments.
116
116
  // The attachRepl method provides a way to add custom functionality