@trojs/openapi-server 3.4.5 → 3.5.1
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/package.json +3 -2
- package/src/api.js +12 -2
- package/src/error-status.js +12 -3
- package/src/express-callback.js +24 -3
- package/src/handlers/response-validation.js +1 -1
- package/src/router.js +9 -5
- package/src/server.js +7 -4
- package/types/api.d.ts +9 -1
- package/types/api.d.ts.map +1 -1
- package/types/error-status.d.ts +4 -1
- package/types/error-status.d.ts.map +1 -1
- package/types/express-callback.d.ts.map +1 -1
- package/types/router.d.ts +3 -1
- package/types/router.d.ts.map +1 -1
- package/types/server.d.ts +3 -2
- package/types/server.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trojs/openapi-server",
|
|
3
3
|
"description": "OpenAPI Server",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.5.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Pieter Wigboldus",
|
|
7
7
|
"url": "https://trojs.org/"
|
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
"semver@<=7.5.3": "^7.5.3",
|
|
79
79
|
"send@<=0.19.0": "^0.19.0",
|
|
80
80
|
"cookie@<=0.7.0": "0.7.0",
|
|
81
|
-
"@apidevtools/json-schema-ref-parser@<=14.0.0": "14.0.0"
|
|
81
|
+
"@apidevtools/json-schema-ref-parser@<=14.0.0": "14.0.0",
|
|
82
|
+
"lodash@<=4.17.23": "4.17.23"
|
|
82
83
|
}
|
|
83
84
|
}
|
package/src/api.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import express from 'express'
|
|
2
2
|
import swaggerUi from 'swagger-ui-express'
|
|
3
|
+
import crypto from 'node:crypto'
|
|
3
4
|
import { setupRouter } from './router.js'
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* @typedef {import('openapi-backend').Handler} Handler
|
|
7
8
|
* @typedef {import('ajv').Options} AjvOpts
|
|
9
|
+
* @typedef {import('openapi-backend').AjvCustomizer} AjvCustomizer
|
|
8
10
|
* @typedef {object} Logger
|
|
9
11
|
* @property {Function} error
|
|
10
12
|
* @property {Function} warn
|
|
@@ -23,9 +25,11 @@ import { setupRouter } from './router.js'
|
|
|
23
25
|
* @property {Logger=} logger
|
|
24
26
|
* @property {object=} meta
|
|
25
27
|
* @property {SecurityHandler[]=} securityHandlers
|
|
28
|
+
* @property {Handler=} unauthorizedHandler
|
|
26
29
|
* @property {boolean=} swagger
|
|
27
30
|
* @property {boolean=} apiDocs
|
|
28
31
|
* @property {AjvOpts=} ajvOptions
|
|
32
|
+
* @property {AjvCustomizer=} customizeAjv
|
|
29
33
|
* @property {any[]=} middleware
|
|
30
34
|
*/
|
|
31
35
|
|
|
@@ -50,9 +54,11 @@ export class Api {
|
|
|
50
54
|
logger,
|
|
51
55
|
meta,
|
|
52
56
|
securityHandlers,
|
|
57
|
+
unauthorizedHandler,
|
|
53
58
|
swagger,
|
|
54
59
|
apiDocs,
|
|
55
60
|
ajvOptions,
|
|
61
|
+
customizeAjv,
|
|
56
62
|
middleware = []
|
|
57
63
|
}) {
|
|
58
64
|
this.version = version
|
|
@@ -64,9 +70,11 @@ export class Api {
|
|
|
64
70
|
this.logger = logger || console
|
|
65
71
|
this.meta = meta || {}
|
|
66
72
|
this.securityHandlers = securityHandlers || []
|
|
73
|
+
this.unauthorizedHandler = unauthorizedHandler || undefined
|
|
67
74
|
this.swagger = swagger ?? true
|
|
68
75
|
this.apiDocs = apiDocs ?? true
|
|
69
76
|
this.ajvOptions = ajvOptions ?? { allErrors: false }
|
|
77
|
+
this.customizeAjv = customizeAjv
|
|
70
78
|
this.middleware = middleware
|
|
71
79
|
}
|
|
72
80
|
|
|
@@ -84,7 +92,7 @@ export class Api {
|
|
|
84
92
|
if (this.apiDocs) {
|
|
85
93
|
// Generate an ETag for the specification (simple hash or JSON string)
|
|
86
94
|
const apiDocsString = JSON.stringify(this.specification)
|
|
87
|
-
const etag = `"${
|
|
95
|
+
const etag = `"${crypto.createHash('sha256').update(apiDocsString).digest('base64')}"`
|
|
88
96
|
|
|
89
97
|
router.get('/api-docs', (request, response) => {
|
|
90
98
|
// Check for If-None-Match header
|
|
@@ -111,7 +119,9 @@ export class Api {
|
|
|
111
119
|
logger: this.logger,
|
|
112
120
|
meta: this.meta,
|
|
113
121
|
securityHandlers: this.securityHandlers,
|
|
114
|
-
|
|
122
|
+
unauthorizedHandler: this.unauthorizedHandler,
|
|
123
|
+
ajvOptions: this.ajvOptions,
|
|
124
|
+
customizeAjv: this.customizeAjv
|
|
115
125
|
})
|
|
116
126
|
api.init()
|
|
117
127
|
|
package/src/error-status.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Error & { status?: number }} StatusError
|
|
3
|
+
*/
|
|
4
|
+
|
|
1
5
|
const errorCodesStatus = [
|
|
2
6
|
{
|
|
3
7
|
type: TypeError,
|
|
@@ -7,6 +11,10 @@ const errorCodesStatus = [
|
|
|
7
11
|
type: RangeError,
|
|
8
12
|
status: 404
|
|
9
13
|
},
|
|
14
|
+
{
|
|
15
|
+
type: SyntaxError,
|
|
16
|
+
status: 400
|
|
17
|
+
},
|
|
10
18
|
{
|
|
11
19
|
type: Error,
|
|
12
20
|
status: 500
|
|
@@ -16,9 +24,10 @@ const errorCodesStatus = [
|
|
|
16
24
|
/**
|
|
17
25
|
* Get a http status when you send an error.
|
|
18
26
|
* When it is a error, throw back the error.
|
|
19
|
-
* @param {
|
|
27
|
+
* @param {StatusError} error
|
|
20
28
|
* @returns {number}
|
|
21
29
|
*/
|
|
22
30
|
export default (error) =>
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
error.status
|
|
32
|
+
|| errorCodesStatus.find((errorCode) => error instanceof errorCode.type)?.status
|
|
33
|
+
|| 500
|
package/src/express-callback.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hrtime } from 'node:process'
|
|
1
2
|
import getStatusByError from './error-status.js'
|
|
2
3
|
import { parseParams } from './params.js'
|
|
3
4
|
|
|
@@ -30,6 +31,7 @@ export const makeExpressCallback
|
|
|
30
31
|
* @returns {Promise<any>}
|
|
31
32
|
*/
|
|
32
33
|
async (context, request, response) => {
|
|
34
|
+
const startTime = hrtime()
|
|
33
35
|
try {
|
|
34
36
|
const allParameters = {
|
|
35
37
|
...(context.request?.params || {}),
|
|
@@ -42,7 +44,15 @@ export const makeExpressCallback
|
|
|
42
44
|
})
|
|
43
45
|
const url = `${request.protocol}://${request.get('Host')}${request.originalUrl}`
|
|
44
46
|
|
|
45
|
-
const
|
|
47
|
+
const ipHeader = request.headers?.['x-forwarded-for']
|
|
48
|
+
const ipString = Array.isArray(ipHeader) ? ipHeader[0] : ipHeader
|
|
49
|
+
const ip = ipString
|
|
50
|
+
? ipString.split(',')[0].trim()
|
|
51
|
+
: (request.socket?.remoteAddress || request.ip || '-')
|
|
52
|
+
const { method } = request
|
|
53
|
+
const userAgent = request.headers?.['user-agent'] || request.get('user-agent') || '-'
|
|
54
|
+
|
|
55
|
+
const feedback = {
|
|
46
56
|
context,
|
|
47
57
|
request,
|
|
48
58
|
response,
|
|
@@ -52,12 +62,22 @@ export const makeExpressCallback
|
|
|
52
62
|
url,
|
|
53
63
|
logger,
|
|
54
64
|
meta
|
|
55
|
-
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const responseBody = await controller(feedback)
|
|
68
|
+
const responseTime = hrtime(startTime)[1] / 1000000 // convert to milliseconds
|
|
69
|
+
|
|
56
70
|
logger.debug({
|
|
57
71
|
url,
|
|
58
72
|
parameters,
|
|
59
73
|
post: request.body,
|
|
60
|
-
response: responseBody
|
|
74
|
+
response: responseBody,
|
|
75
|
+
method,
|
|
76
|
+
ip,
|
|
77
|
+
userAgent,
|
|
78
|
+
responseTime,
|
|
79
|
+
statusCode: response.statusCode || 200,
|
|
80
|
+
message: 'access'
|
|
61
81
|
})
|
|
62
82
|
|
|
63
83
|
return responseBody
|
|
@@ -88,6 +108,7 @@ export const makeExpressCallback
|
|
|
88
108
|
}
|
|
89
109
|
|
|
90
110
|
return {
|
|
111
|
+
errors: error.errors || error.value?.errors,
|
|
91
112
|
status: errorCodeStatus,
|
|
92
113
|
timestamp: new Date(),
|
|
93
114
|
message: error.message
|
package/src/router.js
CHANGED
|
@@ -10,6 +10,7 @@ import { unauthorized } from './handlers/unauthorized.js'
|
|
|
10
10
|
/**
|
|
11
11
|
* @typedef {import('./api.js').Logger} Logger
|
|
12
12
|
* @typedef {import('./api.js').SecurityHandler} SecurityHandler
|
|
13
|
+
* @typedef {import('./api.js').Handler} Handler
|
|
13
14
|
* @typedef {import('ajv').Options} AjvOpts
|
|
14
15
|
* @typedef {import('openapi-backend').AjvCustomizer} AjvCustomizer
|
|
15
16
|
*/
|
|
@@ -25,6 +26,7 @@ import { unauthorized } from './handlers/unauthorized.js'
|
|
|
25
26
|
* @param {Logger=} params.logger
|
|
26
27
|
* @param {object=} params.meta
|
|
27
28
|
* @param {SecurityHandler[]=} params.securityHandlers
|
|
29
|
+
* @param {Handler=} params.unauthorizedHandler
|
|
28
30
|
* @param {AjvOpts=} params.ajvOptions
|
|
29
31
|
* @param {AjvCustomizer=} params.customizeAjv
|
|
30
32
|
* @param {boolean=} params.mock
|
|
@@ -39,23 +41,25 @@ export const setupRouter = ({
|
|
|
39
41
|
logger,
|
|
40
42
|
meta,
|
|
41
43
|
securityHandlers = [],
|
|
44
|
+
unauthorizedHandler,
|
|
42
45
|
ajvOptions = {},
|
|
43
46
|
customizeAjv,
|
|
44
47
|
mock
|
|
45
48
|
}) => {
|
|
49
|
+
const ajvWithExtraFormats = (originalAjv) => {
|
|
50
|
+
addFormats(originalAjv)
|
|
51
|
+
return originalAjv
|
|
52
|
+
}
|
|
46
53
|
const api = new OpenAPIBackend({
|
|
47
54
|
definition: openAPISpecification,
|
|
48
55
|
apiRoot,
|
|
49
56
|
strict: strictSpecification,
|
|
50
57
|
ajvOpts: ajvOptions,
|
|
51
|
-
customizeAjv:
|
|
52
|
-
addFormats(originalAjv)
|
|
53
|
-
return originalAjv
|
|
54
|
-
}
|
|
58
|
+
customizeAjv: customizeAjv || ajvWithExtraFormats
|
|
55
59
|
})
|
|
56
60
|
|
|
57
61
|
api.register({
|
|
58
|
-
unauthorizedHandler: unauthorized,
|
|
62
|
+
unauthorizedHandler: unauthorizedHandler || unauthorized,
|
|
59
63
|
validationFail: requestValidation,
|
|
60
64
|
notFound,
|
|
61
65
|
postResponseHandler: makeResponseValidation(logger)
|
package/src/server.js
CHANGED
|
@@ -4,6 +4,7 @@ import compression from 'compression'
|
|
|
4
4
|
import helmet from 'helmet'
|
|
5
5
|
import * as Sentry from '@sentry/node'
|
|
6
6
|
import bodyParser from 'body-parser'
|
|
7
|
+
import { hostname } from 'node:os'
|
|
7
8
|
import { openAPI } from './openapi.js'
|
|
8
9
|
import { Api } from './api.js'
|
|
9
10
|
|
|
@@ -35,7 +36,7 @@ const getOriginResourcePolicy = (origin) => ({
|
|
|
35
36
|
*/
|
|
36
37
|
|
|
37
38
|
/**
|
|
38
|
-
* @template
|
|
39
|
+
* @template [T=unknown]
|
|
39
40
|
* @typedef {object} Controller
|
|
40
41
|
* @property {Context=} context
|
|
41
42
|
* @property {Request=} request
|
|
@@ -54,7 +55,8 @@ const getOriginResourcePolicy = (origin) => ({
|
|
|
54
55
|
* @property {number=} tracesSampleRate
|
|
55
56
|
* @property {number=} profilesSampleRate
|
|
56
57
|
* @property {string=} release
|
|
57
|
-
* @property {
|
|
58
|
+
* @property {string=} environment
|
|
59
|
+
* @property {string=} serverName
|
|
58
60
|
*/
|
|
59
61
|
|
|
60
62
|
/**
|
|
@@ -90,10 +92,11 @@ export const setupServer = async ({
|
|
|
90
92
|
if (sentry) {
|
|
91
93
|
Sentry.init({
|
|
92
94
|
dsn: sentry.dsn,
|
|
95
|
+
environment: sentry.environment || process.env.NODE_ENV || 'production',
|
|
93
96
|
tracesSampleRate: sentry.tracesSampleRate || 1.0,
|
|
94
97
|
profilesSampleRate: sentry.profilesSampleRate || 1.0,
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
release: sentry.release || process.env.SOURCE_VERSION,
|
|
99
|
+
serverName: sentry.serverName || process.env.SERVER_NAME || hostname()
|
|
97
100
|
})
|
|
98
101
|
}
|
|
99
102
|
|
package/types/api.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @typedef {import('openapi-backend').Handler} Handler
|
|
3
3
|
* @typedef {import('ajv').Options} AjvOpts
|
|
4
|
+
* @typedef {import('openapi-backend').AjvCustomizer} AjvCustomizer
|
|
4
5
|
* @typedef {object} Logger
|
|
5
6
|
* @property {Function} error
|
|
6
7
|
* @property {Function} warn
|
|
@@ -19,9 +20,11 @@
|
|
|
19
20
|
* @property {Logger=} logger
|
|
20
21
|
* @property {object=} meta
|
|
21
22
|
* @property {SecurityHandler[]=} securityHandlers
|
|
23
|
+
* @property {Handler=} unauthorizedHandler
|
|
22
24
|
* @property {boolean=} swagger
|
|
23
25
|
* @property {boolean=} apiDocs
|
|
24
26
|
* @property {AjvOpts=} ajvOptions
|
|
27
|
+
* @property {AjvCustomizer=} customizeAjv
|
|
25
28
|
* @property {any[]=} middleware
|
|
26
29
|
*/
|
|
27
30
|
/**
|
|
@@ -34,7 +37,7 @@ export class Api {
|
|
|
34
37
|
* @class
|
|
35
38
|
* @param {ApiSchema} params
|
|
36
39
|
*/
|
|
37
|
-
constructor({ version, specification, controllers, apiRoot, strictSpecification, errorDetails, logger, meta, securityHandlers, swagger, apiDocs, ajvOptions, middleware }: ApiSchema);
|
|
40
|
+
constructor({ version, specification, controllers, apiRoot, strictSpecification, errorDetails, logger, meta, securityHandlers, unauthorizedHandler, swagger, apiDocs, ajvOptions, customizeAjv, middleware }: ApiSchema);
|
|
38
41
|
version: string;
|
|
39
42
|
specification: object;
|
|
40
43
|
controllers: object;
|
|
@@ -44,14 +47,17 @@ export class Api {
|
|
|
44
47
|
logger: Logger;
|
|
45
48
|
meta: object;
|
|
46
49
|
securityHandlers: SecurityHandler[];
|
|
50
|
+
unauthorizedHandler: Handler | undefined;
|
|
47
51
|
swagger: boolean;
|
|
48
52
|
apiDocs: boolean;
|
|
49
53
|
ajvOptions: import("ajv").Options;
|
|
54
|
+
customizeAjv: import("openapi-backend").AjvCustomizer | undefined;
|
|
50
55
|
middleware: any[];
|
|
51
56
|
setup(): any;
|
|
52
57
|
}
|
|
53
58
|
export type Handler = import("openapi-backend").Handler;
|
|
54
59
|
export type AjvOpts = import("ajv").Options;
|
|
60
|
+
export type AjvCustomizer = import("openapi-backend").AjvCustomizer;
|
|
55
61
|
export type Logger = {
|
|
56
62
|
error: Function;
|
|
57
63
|
warn: Function;
|
|
@@ -72,9 +78,11 @@ export type ApiSchema = {
|
|
|
72
78
|
logger?: Logger | undefined;
|
|
73
79
|
meta?: object | undefined;
|
|
74
80
|
securityHandlers?: SecurityHandler[] | undefined;
|
|
81
|
+
unauthorizedHandler?: Handler | undefined;
|
|
75
82
|
swagger?: boolean | undefined;
|
|
76
83
|
apiDocs?: boolean | undefined;
|
|
77
84
|
ajvOptions?: AjvOpts | undefined;
|
|
85
|
+
customizeAjv?: AjvCustomizer | undefined;
|
|
78
86
|
middleware?: any[] | undefined;
|
|
79
87
|
};
|
|
80
88
|
//# sourceMappingURL=api.d.ts.map
|
package/types/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;GAGG;AAEH;IACE;;;;OAIG;IACH,8MAFW,SAAS,EAkCnB;IAfC,gBAAsB;IACtB,sBAAkC;IAClC,oBAA8B;IAC9B,4BAAsB;IACtB,yCAA8C;IAC9C,sBAAyC;IACzC,eAA+B;IAC/B,aAAsB;IACtB,oCAA8C;IAC9C,yCAA2D;IAC3D,iBAA8B;IAC9B,iBAA8B;IAC9B,kCAAoD;IACpD,kEAAgC;IAChC,kBAA4B;IAG9B,aAsDC;CACF;sBAjIY,OAAO,iBAAiB,EAAE,OAAO;sBACjC,OAAO,KAAK,EAAE,OAAO;4BACrB,OAAO,iBAAiB,EAAE,aAAa;;;;;;;;UAOtC,MAAM;aACN,OAAO;;;aAEP,MAAM;mBACN,MAAM;iBACN,MAAM;cACN,MAAM,YAAC;0BACP,OAAO,YAAC;mBACR,OAAO,YAAC;aACR,MAAM,YAAC;WACP,MAAM,YAAC;uBACP,eAAe,EAAE,YAAC;0BAClB,OAAO,YAAC;cACR,OAAO,YAAC;cACR,OAAO,YAAC;iBACR,OAAO,YAAC;mBACR,aAAa,YAAC;iBACd,GAAG,EAAE,YAAC"}
|
package/types/error-status.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-status.d.ts","sourceRoot":"","sources":["../src/error-status.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-status.d.ts","sourceRoot":"","sources":["../src/error-status.js"],"names":[],"mappings":"AA6Be,iCAHJ,WAAW,GACT,MAAM,CAKX;;0BA/BK,KAAK,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-callback.d.ts","sourceRoot":"","sources":["../src/express-callback.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"express-callback.d.ts","sourceRoot":"","sources":["../src/express-callback.js"],"names":[],"mappings":"AAsBO,qGARJ;IAAyB,UAAU;IACZ,aAAa,EAA5B,MAAM;IACW,YAAY,GAA7B,OAAO,YAAC;IACQ,MAAM,GAAtB,MAAM,YAAC;IACS,IAAI,GAApB,MAAM,YAAC;IACU,IAAI,GAArB,OAAO,YAAC;CAChB,YAgGE;sBA/GQ,OAAO,2BAA2B,EAAE,OAAO;uBAC3C,OAAO,2BAA2B,EAAE,QAAQ;sBAC5C,OAAO,iBAAiB,EAAE,OAAO;qBACjC,OAAO,UAAU,EAAE,MAAM"}
|
package/types/router.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function setupRouter({ openAPISpecification, controllers, apiRoot, strictSpecification, errorDetails, logger, meta, securityHandlers, ajvOptions, customizeAjv, mock }: {
|
|
1
|
+
export function setupRouter({ openAPISpecification, controllers, apiRoot, strictSpecification, errorDetails, logger, meta, securityHandlers, unauthorizedHandler, ajvOptions, customizeAjv, mock }: {
|
|
2
2
|
openAPISpecification: object;
|
|
3
3
|
controllers: object;
|
|
4
4
|
apiRoot?: string | undefined;
|
|
@@ -7,6 +7,7 @@ export function setupRouter({ openAPISpecification, controllers, apiRoot, strict
|
|
|
7
7
|
logger?: Logger | undefined;
|
|
8
8
|
meta?: object | undefined;
|
|
9
9
|
securityHandlers?: SecurityHandler[] | undefined;
|
|
10
|
+
unauthorizedHandler?: Handler | undefined;
|
|
10
11
|
ajvOptions?: AjvOpts | undefined;
|
|
11
12
|
customizeAjv?: AjvCustomizer | undefined;
|
|
12
13
|
mock?: boolean | undefined;
|
|
@@ -16,6 +17,7 @@ export function setupRouter({ openAPISpecification, controllers, apiRoot, strict
|
|
|
16
17
|
};
|
|
17
18
|
export type Logger = import("./api.js").Logger;
|
|
18
19
|
export type SecurityHandler = import("./api.js").SecurityHandler;
|
|
20
|
+
export type Handler = import("./api.js").Handler;
|
|
19
21
|
export type AjvOpts = import("ajv").Options;
|
|
20
22
|
export type AjvCustomizer = import("openapi-backend").AjvCustomizer;
|
|
21
23
|
import { OpenAPIBackend } from 'openapi-backend';
|
package/types/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.js"],"names":[],"mappings":"AAkCO,oMAdJ;IAAuB,oBAAoB,EAAnC,MAAM;IACS,WAAW,EAA1B,MAAM;IACU,OAAO,GAAvB,MAAM,YAAC;IACU,mBAAmB,GAApC,OAAO,YAAC;IACS,YAAY,GAA7B,OAAO,YAAC;IACQ,MAAM,GAAtB,MAAM,YAAC;IACS,IAAI,GAApB,MAAM,YAAC;IACoB,gBAAgB,GAA3C,eAAe,EAAE,YAAC;IACD,mBAAmB,GAApC,OAAO,YAAC;IACS,UAAU,GAA3B,OAAO,YAAC;IACe,YAAY,GAAnC,aAAa,YAAC;IACG,IAAI,GAArB,OAAO,YAAC;CAChB,GAAU;IAAE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,CAoEtE;qBA1FY,OAAO,UAAU,EAAE,MAAM;8BACzB,OAAO,UAAU,EAAE,eAAe;sBAClC,OAAO,UAAU,EAAE,OAAO;sBAC1B,OAAO,KAAK,EAAE,OAAO;4BACrB,OAAO,iBAAiB,EAAE,aAAa;+BAdrB,iBAAiB"}
|
package/types/server.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type ApiSchema = import("./api.js").ApiSchema;
|
|
|
17
17
|
export type Logger = import("./api.js").Logger;
|
|
18
18
|
export type Express = any;
|
|
19
19
|
export type Integration = any;
|
|
20
|
-
export type Controller<T
|
|
20
|
+
export type Controller<T = unknown> = {
|
|
21
21
|
context?: Context | undefined;
|
|
22
22
|
request?: Request | undefined;
|
|
23
23
|
response?: Response | undefined;
|
|
@@ -33,7 +33,8 @@ export type SentryConfig = {
|
|
|
33
33
|
tracesSampleRate?: number | undefined;
|
|
34
34
|
profilesSampleRate?: number | undefined;
|
|
35
35
|
release?: string | undefined;
|
|
36
|
-
|
|
36
|
+
environment?: string | undefined;
|
|
37
|
+
serverName?: string | undefined;
|
|
37
38
|
};
|
|
38
39
|
import { openAPI } from './openapi.js';
|
|
39
40
|
import { Api } from './api.js';
|
package/types/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.js"],"names":[],"mappings":"AA2EO,qHAVJ;IAA4B,IAAI,EAAxB,SAAS,EAAE;IACK,MAAM,GAAtB,MAAM,YAAC;IACS,YAAY,GAA5B,MAAM,YAAC;IACe,MAAM,GAA5B,YAAY,YAAC;IACG,SAAS,GAAzB,MAAM,YAAC;IACS,OAAO,GAAvB,MAAM,YAAC;IACQ,UAAU,GAAzB,GAAG,EAAE,YAAC;IACiB,eAAe,GAAtC,CAAA,MAAM,GAAC,MAAM,aAAC;CACtB,GAAU,OAAO,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAwDrC;sBArGY,OAAO,2BAA2B,EAAE,OAAO;uBAC3C,OAAO,2BAA2B,EAAE,QAAQ;sBAC5C,OAAO,iBAAiB,EAAE,OAAO;wBACjC,OAAO,UAAU,EAAE,SAAS;qBAC5B,OAAO,UAAU,EAAE,MAAM;;;uBAMxB,CAAC;cAED,OAAO,YAAC;cACR,OAAO,YAAC;eACR,QAAQ,YAAC;iBACT,MAAM,YAAC;oBACP,MAAM,YAAC;WACP,CAAC,YAAC;UACF,MAAM,YAAC;aACP,MAAM,YAAC;WACP,MAAM,YAAC;;;UAKP,MAAM,YAAC;uBACP,MAAM,YAAC;yBACP,MAAM,YAAC;cACP,MAAM,YAAC;kBACP,MAAM,YAAC;iBACP,MAAM,YAAC;;wBAnDG,cAAc;oBAClB,UAAU"}
|