temba 0.43.0 → 0.44.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/README.md +14 -16
- package/config/index.d.ts +0 -1
- package/config/index.d.ts.map +1 -1
- package/config/index.js +1 -1
- package/config/index.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.d.ts.map +1 -1
- package/index.js +20 -32
- package/index.js.map +1 -1
- package/openapi/html.d.ts +2 -0
- package/openapi/html.d.ts.map +1 -0
- package/openapi/html.js +14 -0
- package/openapi/html.js.map +1 -0
- package/openapi/index.d.ts +5 -0
- package/openapi/index.d.ts.map +1 -0
- package/openapi/index.js +37 -0
- package/openapi/index.js.map +1 -0
- package/openapi/spec.d.ts +8 -0
- package/openapi/spec.d.ts.map +1 -0
- package/openapi/spec.js +486 -0
- package/openapi/spec.js.map +1 -0
- package/package.json +11 -11
- package/requestHandlers/delete.d.ts +2 -2
- package/requestHandlers/delete.js +8 -8
- package/requestHandlers/delete.js.map +1 -1
- package/requestHandlers/get.d.ts +13 -7
- package/requestHandlers/get.d.ts.map +1 -1
- package/requestHandlers/get.js +7 -7
- package/requestHandlers/get.js.map +1 -1
- package/requestHandlers/index.d.ts +40 -18
- package/requestHandlers/index.d.ts.map +1 -1
- package/requestHandlers/index.js +2 -2
- package/requestHandlers/index.js.map +1 -1
- package/requestHandlers/patch.d.ts +9 -2
- package/requestHandlers/patch.d.ts.map +1 -1
- package/requestHandlers/patch.js +10 -7
- package/requestHandlers/patch.js.map +1 -1
- package/requestHandlers/post.d.ts +5 -3
- package/requestHandlers/post.d.ts.map +1 -1
- package/requestHandlers/post.js +6 -6
- package/requestHandlers/post.js.map +1 -1
- package/requestHandlers/put.d.ts +9 -2
- package/requestHandlers/put.d.ts.map +1 -1
- package/requestHandlers/put.js +10 -7
- package/requestHandlers/put.js.map +1 -1
- package/requestHandlers/types.d.ts +4 -12
- package/requestHandlers/types.d.ts.map +1 -1
- package/requestHandlers/utils.d.ts +4 -1
- package/requestHandlers/utils.d.ts.map +1 -1
- package/requestHandlers/utils.js.map +1 -1
- package/requestInterceptor/interceptRequest.d.ts +6 -5
- package/requestInterceptor/interceptRequest.d.ts.map +1 -1
- package/requestInterceptor/interceptRequest.js +8 -8
- package/requestInterceptor/interceptRequest.js.map +1 -1
- package/requestInterceptor/types.d.ts +9 -7
- package/requestInterceptor/types.d.ts.map +1 -1
- package/resourceHandler.d.ts +2 -7
- package/resourceHandler.d.ts.map +1 -1
- package/resourceHandler.js +17 -48
- package/resourceHandler.js.map +1 -1
- package/responseHandler.d.ts +13 -0
- package/responseHandler.d.ts.map +1 -0
- package/responseHandler.js +39 -0
- package/responseHandler.js.map +1 -0
- package/root/html.d.ts +8 -0
- package/root/html.d.ts.map +1 -0
- package/root/html.js +48 -0
- package/root/html.js.map +1 -0
- package/root/root.d.ts +4 -0
- package/root/root.d.ts.map +1 -0
- package/root/root.js +37 -0
- package/root/root.js.map +1 -0
- package/schema/compile.js +10 -11
- package/schema/compile.js.map +1 -1
- package/schema/validate.d.ts +2 -1
- package/schema/validate.d.ts.map +1 -1
- package/schema/validate.js.map +1 -1
- package/staticFolder/staticFolder.d.ts +3 -5
- package/staticFolder/staticFolder.d.ts.map +1 -1
- package/staticFolder/staticFolder.js +15 -18
- package/staticFolder/staticFolder.js.map +1 -1
- package/version.js +1 -1
- package/openapi/openapi.d.ts +0 -6
- package/openapi/openapi.d.ts.map +0 -1
- package/openapi/openapi.js +0 -476
- package/openapi/openapi.js.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export const interceptGetRequest = (intercept, headers, resource, id) => {
|
|
2
|
-
intercept({ headers, resource, id });
|
|
1
|
+
export const interceptGetRequest = async (intercept, headers, resource, id) => {
|
|
2
|
+
await intercept({ headers, resource, id });
|
|
3
3
|
};
|
|
4
|
-
export const interceptPostRequest = (intercept, headers, resource, id, body) => {
|
|
5
|
-
const intercepted = intercept({ headers, resource, body, id });
|
|
4
|
+
export const interceptPostRequest = async (intercept, headers, resource, id, body) => {
|
|
5
|
+
const intercepted = await intercept({ headers, resource, body, id });
|
|
6
6
|
return interceptRequest(intercepted, body);
|
|
7
7
|
};
|
|
8
|
-
export const interceptPutRequest = (intercept, headers, resource, id, body) => {
|
|
9
|
-
const intercepted = intercept({ headers, resource, id, body });
|
|
8
|
+
export const interceptPutRequest = async (intercept, headers, resource, id, body) => {
|
|
9
|
+
const intercepted = await intercept({ headers, resource, id, body });
|
|
10
10
|
return interceptRequest(intercepted, body);
|
|
11
11
|
};
|
|
12
12
|
export const interceptPatchRequest = interceptPutRequest;
|
|
13
|
-
export const interceptDeleteRequest = (intercept, headers, resource, id) => {
|
|
14
|
-
intercept({ headers, resource, id });
|
|
13
|
+
export const interceptDeleteRequest = async (intercept, headers, resource, id) => {
|
|
14
|
+
await intercept({ headers, resource, id });
|
|
15
15
|
};
|
|
16
16
|
const interceptRequest = (intercepted, body) => {
|
|
17
17
|
if (!intercepted && typeof body === 'object')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptRequest.js","sourceRoot":"","sources":["../../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interceptRequest.js","sourceRoot":"","sources":["../../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,SAAgC,EAChC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACjB,EAAE;IACF,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,SAAiC,EACjC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACjB,IAAU,EACV,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACpE,OAAO,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,SAAgC,EAChC,OAA4B,EAC5B,QAAgB,EAChB,EAAU,EACV,IAAU,EACV,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACpE,OAAO,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAA;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,SAAmC,EACnC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACjB,EAAE;IACF,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,WAAmC,EAAE,IAAU,EAAE,EAAE;IAC3E,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAEzD,6CAA6C;IAC7C,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/E,OAAO,WAAW,CAAA;IAEpB,kEAAkE;IAClE,iEAAiE;IACjE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { IncomingHttpHeaders } from 'http';
|
|
2
|
+
import type { Body } from '../requestHandlers/types.js';
|
|
3
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
2
4
|
type InterceptedResource = {
|
|
3
5
|
headers: IncomingHttpHeaders;
|
|
4
6
|
resource: string;
|
|
@@ -7,21 +9,21 @@ type WithMaybeId = InterceptedResource & {
|
|
|
7
9
|
id: string | null;
|
|
8
10
|
};
|
|
9
11
|
type WithBody = InterceptedResource & {
|
|
10
|
-
body:
|
|
12
|
+
body: Body;
|
|
11
13
|
};
|
|
12
14
|
type WithIdAndBody = InterceptedResource & {
|
|
13
15
|
id: string;
|
|
14
|
-
body:
|
|
16
|
+
body: Body;
|
|
15
17
|
};
|
|
16
18
|
type WithBodyAndMaybeId = WithBody & {
|
|
17
19
|
id: string | null;
|
|
18
20
|
};
|
|
19
21
|
export type InterceptedReturnValue = void | object;
|
|
20
|
-
export type InterceptedGetRequest = (request: WithMaybeId) => InterceptedReturnValue
|
|
21
|
-
export type InterceptedPostRequest = (request: WithBodyAndMaybeId) => InterceptedReturnValue
|
|
22
|
-
export type InterceptedPatchRequest = (request: WithIdAndBody) => InterceptedReturnValue
|
|
23
|
-
export type InterceptedPutRequest = (request: WithIdAndBody) => InterceptedReturnValue
|
|
24
|
-
export type InterceptedDeleteRequest = (request: WithMaybeId) => InterceptedReturnValue
|
|
22
|
+
export type InterceptedGetRequest = (request: WithMaybeId) => MaybePromise<InterceptedReturnValue>;
|
|
23
|
+
export type InterceptedPostRequest = (request: WithBodyAndMaybeId) => MaybePromise<InterceptedReturnValue>;
|
|
24
|
+
export type InterceptedPatchRequest = (request: WithIdAndBody) => MaybePromise<InterceptedReturnValue>;
|
|
25
|
+
export type InterceptedPutRequest = (request: WithIdAndBody) => MaybePromise<InterceptedReturnValue>;
|
|
26
|
+
export type InterceptedDeleteRequest = (request: WithMaybeId) => MaybePromise<InterceptedReturnValue>;
|
|
25
27
|
export type RequestInterceptor = {
|
|
26
28
|
get?: InterceptedGetRequest;
|
|
27
29
|
post?: InterceptedPostRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/requestInterceptor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/requestInterceptor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAErC,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,WAAW,GAAG,mBAAmB,GAAG;IACvC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,KAAK,QAAQ,GAAG,mBAAmB,GAAG;IACpC,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,KAAK,aAAa,GAAG,mBAAmB,GAAG;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,KAAK,kBAAkB,GAAG,QAAQ,GAAG;IACnC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,MAAM,CAAA;AAElD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAClG,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,kBAAkB,KACxB,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACzC,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,aAAa,KACnB,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACzC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACpG,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,WAAW,KACjB,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAEzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,IAAI,CAAC,EAAE,sBAAsB,CAAA;IAC7B,KAAK,CAAC,EAAE,uBAAuB,CAAA;IAC/B,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,MAAM,CAAC,EAAE,wBAAwB,CAAA;CAClC,CAAA"}
|
package/resourceHandler.d.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import type { Config } from './config/index.js';
|
|
2
3
|
import type { Queries } from './data/types.js';
|
|
3
4
|
import type { CompiledSchemas } from './schema/types.js';
|
|
4
|
-
|
|
5
|
-
export declare const sendErrorResponse: (res: ServerResponse<IncomingMessage>, statusCode?: number, message?: string) => void;
|
|
6
|
-
export declare const handleMethodNotAllowed: (_: IncomingMessage, res: ServerResponse<IncomingMessage>) => void;
|
|
7
|
-
export declare const handleNotFound: (_: IncomingMessage, res: ServerResponse<IncomingMessage> & {
|
|
8
|
-
req: IncomingMessage;
|
|
9
|
-
}) => void;
|
|
10
|
-
export declare const createResourceHandler: (queries: Queries, schemas: CompiledSchemas, routerConfig: RouterConfig) => (req: IncomingMessage, res: ServerResponse<IncomingMessage>) => Promise<void> | undefined;
|
|
5
|
+
export declare const createResourceHandler: (queries: Queries, schemas: CompiledSchemas, config: Config) => Promise<(req: IncomingMessage, res: ServerResponse<IncomingMessage>) => Promise<void> | undefined>;
|
|
11
6
|
//# sourceMappingURL=resourceHandler.d.ts.map
|
package/resourceHandler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceHandler.d.ts","sourceRoot":"","sources":["../../src/resourceHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAY3D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"resourceHandler.d.ts","sourceRoot":"","sources":["../../src/resourceHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAY3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAuErD,eAAO,MAAM,qBAAqB,GAChC,SAAS,OAAO,EAChB,SAAS,eAAe,EACxB,QAAQ,MAAM,mBAuKD,eAAe,OAAO,cAAc,CAAC,eAAe,CAAC,+BAOnE,CAAA"}
|
package/resourceHandler.js
CHANGED
|
@@ -1,23 +1,11 @@
|
|
|
1
1
|
import { getRequestHandler } from './requestHandlers/index.js';
|
|
2
2
|
import { parseUrl } from './urls/urlParser.js';
|
|
3
|
-
import {
|
|
4
|
-
export const sendErrorResponse = (res, statusCode = 500, message = 'Internal Server Error') => {
|
|
5
|
-
res.statusCode = statusCode;
|
|
6
|
-
res.setHeader('Content-Type', 'application/json');
|
|
7
|
-
setCorsHeaders(res);
|
|
8
|
-
res.end(JSON.stringify({ message }));
|
|
9
|
-
};
|
|
10
|
-
export const handleMethodNotAllowed = (_, res) => {
|
|
11
|
-
sendErrorResponse(res, 405, 'Method Not Allowed');
|
|
12
|
-
};
|
|
13
|
-
export const handleNotFound = (_, res) => {
|
|
14
|
-
sendErrorResponse(res, 404, 'Not Found');
|
|
15
|
-
};
|
|
3
|
+
import { sendErrorResponse, sendResponse } from './responseHandler.js';
|
|
16
4
|
const isError = (request) => {
|
|
17
|
-
return '
|
|
5
|
+
return 'statusCode' in request;
|
|
18
6
|
};
|
|
19
|
-
const createError = (
|
|
20
|
-
return {
|
|
7
|
+
const createError = (statusCode, message) => {
|
|
8
|
+
return { statusCode, message };
|
|
21
9
|
};
|
|
22
10
|
const validateIdInUrlRequired = (requestInfo) => {
|
|
23
11
|
return !requestInfo.id ? createError(400, 'An id is required in the URL') : requestInfo;
|
|
@@ -64,9 +52,9 @@ const convertToDeleteRequest = (requestInfo) => {
|
|
|
64
52
|
etag: requestInfo.etag ?? null,
|
|
65
53
|
};
|
|
66
54
|
};
|
|
67
|
-
export const createResourceHandler = (queries, schemas,
|
|
55
|
+
export const createResourceHandler = async (queries, schemas, config) => {
|
|
68
56
|
const getUrlInfo = (baseUrl) => {
|
|
69
|
-
const url =
|
|
57
|
+
const url = config.apiPrefix ? baseUrl.replace(config.apiPrefix, '') : baseUrl;
|
|
70
58
|
return parseUrl(url);
|
|
71
59
|
};
|
|
72
60
|
const getBody = (request) => {
|
|
@@ -113,45 +101,31 @@ export const createResourceHandler = (queries, schemas, routerConfig) => {
|
|
|
113
101
|
};
|
|
114
102
|
};
|
|
115
103
|
const validateResource = (requestInfo) => {
|
|
116
|
-
const resourcePaths =
|
|
104
|
+
const resourcePaths = config.resources.map((resource) => {
|
|
117
105
|
return typeof resource === 'string' ? resource : resource.resourcePath;
|
|
118
106
|
});
|
|
119
|
-
if (
|
|
107
|
+
if (config.validateResources &&
|
|
120
108
|
!resourcePaths.includes((requestInfo.resource ?? '').toLowerCase())) {
|
|
121
109
|
return createError(404, 'Invalid resource');
|
|
122
110
|
}
|
|
123
111
|
return requestInfo;
|
|
124
112
|
};
|
|
125
|
-
const sendResponse = (tembaResponse, res) => {
|
|
126
|
-
res.statusCode = tembaResponse.status;
|
|
127
|
-
if (tembaResponse.headers) {
|
|
128
|
-
for (const [key, value] of Object.entries(tembaResponse.headers)) {
|
|
129
|
-
res.setHeader(key, value);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
setCorsHeaders(res);
|
|
133
|
-
if (tembaResponse.body) {
|
|
134
|
-
res.setHeader('Content-Type', 'application/json');
|
|
135
|
-
res.write(JSON.stringify(tembaResponse.body));
|
|
136
|
-
}
|
|
137
|
-
res.end();
|
|
138
|
-
};
|
|
139
113
|
const handle = async (httpRequest, httpResponse, validators, convert, handleRequest) => {
|
|
140
114
|
const requestInfo = await parseRequest(httpRequest);
|
|
141
115
|
if (isError(requestInfo)) {
|
|
142
|
-
return sendErrorResponse(httpResponse, requestInfo.
|
|
116
|
+
return sendErrorResponse(httpResponse, requestInfo.statusCode, requestInfo.message);
|
|
143
117
|
}
|
|
144
118
|
for (const validator of [validators].flat()) {
|
|
145
119
|
const validationResult = validator(requestInfo);
|
|
146
120
|
if (isError(validationResult)) {
|
|
147
|
-
return sendErrorResponse(httpResponse, validationResult.
|
|
121
|
+
return sendErrorResponse(httpResponse, validationResult.statusCode, validationResult.message);
|
|
148
122
|
}
|
|
149
123
|
}
|
|
150
124
|
const convertedRequest = convert(requestInfo);
|
|
151
125
|
const response = await handleRequest(convertedRequest);
|
|
152
|
-
sendResponse(
|
|
126
|
+
sendResponse(httpResponse)(response);
|
|
153
127
|
};
|
|
154
|
-
const requestHandler = getRequestHandler(queries, schemas,
|
|
128
|
+
const requestHandler = await getRequestHandler(queries, schemas, config);
|
|
155
129
|
const getHandler = async (httpRequest, httpResponse) => {
|
|
156
130
|
await handle(httpRequest, httpResponse, validateResource, convertToGetRequest, requestHandler.handleGet);
|
|
157
131
|
};
|
|
@@ -168,21 +142,16 @@ export const createResourceHandler = (queries, schemas, routerConfig) => {
|
|
|
168
142
|
await handle(httpRequest, httpResponse, validateResource, convertToDeleteRequest, requestHandler.handleDelete);
|
|
169
143
|
};
|
|
170
144
|
return (req, res) => {
|
|
171
|
-
if (['GET', 'HEAD'].includes(req.method ?? ''))
|
|
145
|
+
if (['GET', 'HEAD'].includes(req.method ?? ''))
|
|
172
146
|
return getHandler(req, res);
|
|
173
|
-
|
|
174
|
-
if (req.method === 'POST') {
|
|
147
|
+
if (req.method === 'POST')
|
|
175
148
|
return postHandler(req, res);
|
|
176
|
-
|
|
177
|
-
if (req.method === 'PUT') {
|
|
149
|
+
if (req.method === 'PUT')
|
|
178
150
|
return putHandler(req, res);
|
|
179
|
-
|
|
180
|
-
if (req.method === 'PATCH') {
|
|
151
|
+
if (req.method === 'PATCH')
|
|
181
152
|
return patchHandler(req, res);
|
|
182
|
-
|
|
183
|
-
if (req.method === 'DELETE') {
|
|
153
|
+
if (req.method === 'DELETE')
|
|
184
154
|
return deleteHandler(req, res);
|
|
185
|
-
}
|
|
186
155
|
};
|
|
187
156
|
};
|
|
188
157
|
//# sourceMappingURL=resourceHandler.js.map
|
package/resourceHandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceHandler.js","sourceRoot":"","sources":["../../src/resourceHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"resourceHandler.js","sourceRoot":"","sources":["../../src/resourceHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import type { Body } from './requestHandlers/types.js';
|
|
3
|
+
export type Response = {
|
|
4
|
+
statusCode: number;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
body?: Body;
|
|
7
|
+
contentType?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const sendResponse: (res: ServerResponse<IncomingMessage>) => (response: Response) => void;
|
|
10
|
+
export declare const sendErrorResponse: (res: ServerResponse<IncomingMessage>, statusCode?: number, message?: string) => void;
|
|
11
|
+
export declare const handleMethodNotAllowed: (res: ServerResponse<IncomingMessage>) => void;
|
|
12
|
+
export declare const handleNotFound: (res: ServerResponse<IncomingMessage>) => void;
|
|
13
|
+
//# sourceMappingURL=responseHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseHandler.d.ts","sourceRoot":"","sources":["../../src/responseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAE3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAEnD,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,KAAK,cAAc,CAAC,eAAe,CAAC,MAAM,UAAU,QAAQ,SA6BxF,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,KAAK,cAAc,CAAC,eAAe,CAAC,EACpC,aAAY,MAAY,EACxB,UAAS,MAAgC,SAM1C,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,KAAK,cAAc,CAAC,eAAe,CAAC,SAE1E,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,cAAc,CAAC,eAAe,CAAC,SAElE,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { setCorsHeaders } from './cors/cors.js';
|
|
2
|
+
export const sendResponse = (res) => (response) => {
|
|
3
|
+
res.statusCode = response.statusCode;
|
|
4
|
+
if (response.headers) {
|
|
5
|
+
Object.entries(response.headers).forEach(([key, value]) => {
|
|
6
|
+
res.setHeader(key, value);
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
setCorsHeaders(res);
|
|
10
|
+
if (response.body) {
|
|
11
|
+
const body = typeof response.body === 'string' || Buffer.isBuffer(response.body)
|
|
12
|
+
? response.body
|
|
13
|
+
: JSON.stringify(response.body);
|
|
14
|
+
if (response.contentType) {
|
|
15
|
+
res.setHeader('Content-Type', response.contentType);
|
|
16
|
+
}
|
|
17
|
+
else if (typeof response.body === 'string') {
|
|
18
|
+
res.setHeader('Content-Type', 'text/plain');
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
res.setHeader('Content-Type', 'application/json');
|
|
22
|
+
}
|
|
23
|
+
res.write(body);
|
|
24
|
+
}
|
|
25
|
+
res.end();
|
|
26
|
+
};
|
|
27
|
+
export const sendErrorResponse = (res, statusCode = 500, message = 'Internal Server Error') => {
|
|
28
|
+
sendResponse(res)({
|
|
29
|
+
statusCode,
|
|
30
|
+
body: { message },
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
export const handleMethodNotAllowed = (res) => {
|
|
34
|
+
sendErrorResponse(res, 405, 'Method Not Allowed');
|
|
35
|
+
};
|
|
36
|
+
export const handleNotFound = (res) => {
|
|
37
|
+
sendErrorResponse(res, 404, 'Not Found');
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=responseHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseHandler.js","sourceRoot":"","sources":["../../src/responseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAU5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAoC,EAAE,EAAE,CAAC,CAAC,QAAkB,EAAE,EAAE;IAC3F,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IAEpC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACxD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,cAAc,CAAC,GAAG,CAAC,CAAA;IAEnB,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,GACR,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjE,CAAC,CAAC,QAAQ,CAAC,IAAI;YACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEnC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;QACrD,CAAC;aAAM,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;QACnD,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC;IAED,GAAG,CAAC,GAAG,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,GAAoC,EACpC,aAAqB,GAAG,EACxB,UAAkB,uBAAuB,EACzC,EAAE;IACF,YAAY,CAAC,GAAG,CAAC,CAAC;QAChB,UAAU;QACV,IAAI,EAAE,EAAE,OAAO,EAAE;KAClB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAoC,EAAE,EAAE;IAC7E,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAoC,EAAE,EAAE;IACrE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAA;AAC1C,CAAC,CAAA"}
|
package/root/html.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../src/root/html.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG;IACd,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAA;CACnD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,UAAU,QAAQ,WAgDzC,CAAA"}
|
package/root/html.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export const getHtml = (pageInfo) => {
|
|
2
|
+
return `<!DOCTYPE html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>${pageInfo.title}</title>
|
|
8
|
+
<style>
|
|
9
|
+
body {
|
|
10
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
11
|
+
color: #333;
|
|
12
|
+
background-color: #fff;
|
|
13
|
+
padding: 0.5rem;
|
|
14
|
+
font-size: 1rem;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
h1 {
|
|
18
|
+
font-size: 2rem;
|
|
19
|
+
margin-bottom: 0.5rem;
|
|
20
|
+
color: #111;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
a, a:visited {
|
|
24
|
+
color: #007acc;
|
|
25
|
+
}
|
|
26
|
+
</style>
|
|
27
|
+
</head>
|
|
28
|
+
<body>
|
|
29
|
+
<main>
|
|
30
|
+
<h1>${pageInfo.title}</h1>
|
|
31
|
+
|
|
32
|
+
${pageInfo.openapi
|
|
33
|
+
? `<p>
|
|
34
|
+
OpenAPI specification:
|
|
35
|
+
<a href="${pageInfo.openapi.html}">HTML</a> ·
|
|
36
|
+
<a href="${pageInfo.openapi.json}">JSON</a> ·
|
|
37
|
+
<a href="${pageInfo.openapi.yaml}">YAML</a>
|
|
38
|
+
</p>`
|
|
39
|
+
: ''}
|
|
40
|
+
</main>
|
|
41
|
+
|
|
42
|
+
<footer>
|
|
43
|
+
Powered by <a href="https://github.com/bouwe77/temba" target="_blank" rel="noopener noreferrer">Temba</a> ${pageInfo.version}
|
|
44
|
+
</footer>
|
|
45
|
+
</body>
|
|
46
|
+
</html>`;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=html.js.map
|
package/root/html.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/root/html.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAkB,EAAE,EAAE;IAC5C,OAAO;;;;;WAKE,QAAQ,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;UAuBf,QAAQ,CAAC,KAAK;;MAGlB,QAAQ,CAAC,OAAO;QACd,CAAC,CAAC;;uBAEa,QAAQ,CAAC,OAAO,CAAC,IAAI;uBACrB,QAAQ,CAAC,OAAO,CAAC,IAAI;uBACrB,QAAQ,CAAC,OAAO,CAAC,IAAI;eAC7B;QACP,CAAC,CAAC,EACN;;;;gHAI4G,QAAQ,CAAC,OAAO;;;QAGxH,CAAA;AACR,CAAC,CAAA"}
|
package/root/root.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import type { Config } from '../config/index.js';
|
|
3
|
+
export declare const createRootUrlHandler: (config: Config) => (req: IncomingMessage, res: ServerResponse<IncomingMessage>) => void;
|
|
4
|
+
//# sourceMappingURL=root.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/root/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAIhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAiCvC,eAAO,MAAM,oBAAoB,GAC9B,QAAQ,MAAM,MAAM,KAAK,eAAe,EAAE,KAAK,cAAc,CAAC,eAAe,CAAC,SAM9E,CAAA"}
|
package/root/root.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { handleMethodNotAllowed } from '../responseHandler.js';
|
|
2
|
+
import { version } from '../version.js';
|
|
3
|
+
import { getHtml } from './html.js';
|
|
4
|
+
import { sendResponse } from '../responseHandler.js';
|
|
5
|
+
const title = 'My API';
|
|
6
|
+
const text = (res) => sendResponse(res)({
|
|
7
|
+
statusCode: 200,
|
|
8
|
+
contentType: 'text/plain',
|
|
9
|
+
body: `${title}\n\nPowered by Temba ${version}`,
|
|
10
|
+
});
|
|
11
|
+
const html = (res, config) => {
|
|
12
|
+
const apiPrefix = config.apiPrefix ? `${config.apiPrefix}/` : '';
|
|
13
|
+
const html = getHtml({
|
|
14
|
+
version,
|
|
15
|
+
title,
|
|
16
|
+
...(config.openapi && {
|
|
17
|
+
openapi: {
|
|
18
|
+
json: `/${apiPrefix}openapi.json`,
|
|
19
|
+
yaml: `/${apiPrefix}openapi.yaml`,
|
|
20
|
+
html: `/${apiPrefix}openapi.html`,
|
|
21
|
+
},
|
|
22
|
+
}),
|
|
23
|
+
});
|
|
24
|
+
sendResponse(res)({
|
|
25
|
+
statusCode: 200,
|
|
26
|
+
contentType: 'text/html',
|
|
27
|
+
body: html,
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
export const createRootUrlHandler = (config) => (req, res) => {
|
|
31
|
+
if (req.method !== 'GET')
|
|
32
|
+
return handleMethodNotAllowed(res);
|
|
33
|
+
if (req.headers.accept?.includes('text/html'))
|
|
34
|
+
return html(res, config);
|
|
35
|
+
return text(res);
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=root.js.map
|
package/root/root.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/root/root.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,KAAK,GAAG,QAAQ,CAAA;AAEtB,MAAM,IAAI,GAAG,CAAC,GAAoC,EAAE,EAAE,CACpD,YAAY,CAAC,GAAG,CAAC,CAAC;IAChB,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,YAAY;IACzB,IAAI,EAAE,GAAG,KAAK,wBAAwB,OAAO,EAAE;CAChD,CAAC,CAAA;AAEJ,MAAM,IAAI,GAAG,CAAC,GAAoC,EAAE,MAAc,EAAE,EAAE;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO;QACP,KAAK;QACL,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI;YACpB,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI,SAAS,cAAc;gBACjC,IAAI,EAAE,IAAI,SAAS,cAAc;gBACjC,IAAI,EAAE,IAAI,SAAS,cAAc;aAClC;SACF,CAAC;KACH,CAAC,CAAA;IAEF,YAAY,CAAC,GAAG,CAAC,CAAC;QAChB,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAC/B,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,GAAoB,EAAE,GAAoC,EAAE,EAAE;IACjF,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK;QAAE,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAE5D,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAEvE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC,CAAA"}
|
package/schema/compile.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import Ajv
|
|
1
|
+
import Ajv from 'ajv';
|
|
2
2
|
export const compileSchemas = (configuredSchemas) => {
|
|
3
|
-
// Turn the configured schemas into compiled schemas
|
|
4
3
|
const compiledSchemas = {
|
|
5
4
|
post: {},
|
|
6
5
|
put: {},
|
|
@@ -8,19 +7,19 @@ export const compileSchemas = (configuredSchemas) => {
|
|
|
8
7
|
};
|
|
9
8
|
if (!configuredSchemas)
|
|
10
9
|
return compiledSchemas;
|
|
11
|
-
// Use a single Ajv instance in the whole app
|
|
12
10
|
const ajv = new Ajv();
|
|
13
|
-
Object.keys(configuredSchemas)
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
for (const resource of Object.keys(configuredSchemas)) {
|
|
12
|
+
const schemaSet = configuredSchemas[resource];
|
|
13
|
+
if (schemaSet?.post) {
|
|
14
|
+
compiledSchemas.post[resource] = ajv.compile(schemaSet.post);
|
|
16
15
|
}
|
|
17
|
-
if (
|
|
18
|
-
compiledSchemas.put[resource] = ajv.compile(
|
|
16
|
+
if (schemaSet?.put) {
|
|
17
|
+
compiledSchemas.put[resource] = ajv.compile(schemaSet.put);
|
|
19
18
|
}
|
|
20
|
-
if (
|
|
21
|
-
compiledSchemas.patch[resource] = ajv.compile(
|
|
19
|
+
if (schemaSet?.patch) {
|
|
20
|
+
compiledSchemas.patch[resource] = ajv.compile(schemaSet.patch);
|
|
22
21
|
}
|
|
23
|
-
}
|
|
22
|
+
}
|
|
24
23
|
return compiledSchemas;
|
|
25
24
|
};
|
|
26
25
|
//# sourceMappingURL=compile.js.map
|
package/schema/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/schema/compile.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/schema/compile.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,iBAA2C,EAAE,EAAE;IAC5E,MAAM,eAAe,GAAoB;QACvC,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,EAAE;KACV,CAAA;IAED,IAAI,CAAC,iBAAiB;QAAE,OAAO,eAAe,CAAA;IAE9C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;IAErB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QAE7C,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC9D,CAAC;QAED,IAAI,SAAS,EAAE,GAAG,EAAE,CAAC;YACnB,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC5D,CAAC;QAED,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC;YACrB,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA"}
|
package/schema/validate.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ValidateFunction } from 'ajv';
|
|
2
2
|
import type { ValidationResult } from './types.js';
|
|
3
|
-
|
|
3
|
+
import type { Body } from '../requestHandlers/types.js';
|
|
4
|
+
export declare const validate: (body: Body, validate?: ValidateFunction<unknown>) => ValidationResult;
|
|
4
5
|
//# sourceMappingURL=validate.d.ts.map
|
package/schema/validate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/schema/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/schema/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,EAAE,WAAW,gBAAgB,CAAC,OAAO,CAAC,KAAG,gBAW3E,CAAA"}
|
package/schema/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/schema/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/schema/validate.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,QAAoC,EAAoB,EAAE;IAC7F,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAEvC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,iCAAiC;SACjF,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -4,9 +4,7 @@ export type StaticFileInfo = {
|
|
|
4
4
|
content: Buffer | string;
|
|
5
5
|
mimeType: string;
|
|
6
6
|
};
|
|
7
|
-
export type GetStaticFileFromDisk = (filename: string) => StaticFileInfo
|
|
8
|
-
export declare const handleStaticFolder: (req: IncomingMessage, res: ServerResponse<IncomingMessage>
|
|
9
|
-
|
|
10
|
-
}, getStaticFileFromDisk: () => StaticFileInfo) => void;
|
|
11
|
-
export declare const createGetStaticFileFromDisk: (config: Config) => (filename: string) => StaticFileInfo;
|
|
7
|
+
export type GetStaticFileFromDisk = (filename: string) => Promise<StaticFileInfo>;
|
|
8
|
+
export declare const handleStaticFolder: (req: IncomingMessage, res: ServerResponse<IncomingMessage>, getStaticFileFromDisk: () => Promise<StaticFileInfo>) => Promise<void>;
|
|
9
|
+
export declare const createGetStaticFileFromDisk: (config: Config) => (filename: string) => Promise<StaticFileInfo>;
|
|
12
10
|
//# sourceMappingURL=staticFolder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticFolder.d.ts","sourceRoot":"","sources":["../../../src/staticFolder/staticFolder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAMvC,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"staticFolder.d.ts","sourceRoot":"","sources":["../../../src/staticFolder/staticFolder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAMvC,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;AASjF,eAAO,MAAM,kBAAkB,GAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,CAAC,eAAe,CAAC,EACpC,uBAAuB,MAAM,OAAO,CAAC,cAAc,CAAC,kBAcrD,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,QAAQ,MAAM,MAC1C,UAAU,MAAM,KAAG,OAAO,CAAC,cAAc,CAYxD,CAAA"}
|
|
@@ -1,40 +1,37 @@
|
|
|
1
|
-
import { handleMethodNotAllowed, handleNotFound, sendErrorResponse } from '../
|
|
1
|
+
import { handleMethodNotAllowed, handleNotFound, sendErrorResponse } from '../responseHandler.js';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import fs from '
|
|
3
|
+
import { promises as fs } from 'fs';
|
|
4
4
|
import mime from 'mime/lite';
|
|
5
|
-
import {
|
|
5
|
+
import { sendResponse } from '../responseHandler.js';
|
|
6
6
|
const parseError = (e) => {
|
|
7
7
|
if (e.code === 'ENOENT')
|
|
8
8
|
return 'NotFound';
|
|
9
9
|
return 'UnknownError';
|
|
10
10
|
};
|
|
11
11
|
const allowedMethods = ['GET', 'HEAD'];
|
|
12
|
-
export const handleStaticFolder = (req, res, getStaticFileFromDisk) => {
|
|
12
|
+
export const handleStaticFolder = async (req, res, getStaticFileFromDisk) => {
|
|
13
13
|
if (!req.method || !allowedMethods.includes(req.method))
|
|
14
|
-
return handleMethodNotAllowed(
|
|
14
|
+
return handleMethodNotAllowed(res);
|
|
15
15
|
try {
|
|
16
|
-
const staticContent = getStaticFileFromDisk();
|
|
17
|
-
res
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
res.end(staticContent.content);
|
|
25
|
-
}
|
|
16
|
+
const staticContent = await getStaticFileFromDisk();
|
|
17
|
+
sendResponse(res)({
|
|
18
|
+
statusCode: 200,
|
|
19
|
+
contentType: staticContent.mimeType,
|
|
20
|
+
body: staticContent.content,
|
|
21
|
+
});
|
|
26
22
|
}
|
|
27
23
|
catch (e) {
|
|
28
|
-
return parseError(e) === 'NotFound' ? handleNotFound(
|
|
24
|
+
return parseError(e) === 'NotFound' ? handleNotFound(res) : sendErrorResponse(res);
|
|
29
25
|
}
|
|
30
26
|
};
|
|
31
27
|
export const createGetStaticFileFromDisk = (config) => {
|
|
32
|
-
return (filename) => {
|
|
28
|
+
return async (filename) => {
|
|
33
29
|
const filePath = path.join(config.staticFolder || '', filename);
|
|
34
30
|
const mimeType = mime.getType(filePath) || 'application/octet-stream';
|
|
35
31
|
const isText = mimeType.startsWith('text/') || mimeType === 'application/json';
|
|
32
|
+
const content = await fs.readFile(filePath, isText ? 'utf8' : undefined);
|
|
36
33
|
return {
|
|
37
|
-
content
|
|
34
|
+
content,
|
|
38
35
|
mimeType,
|
|
39
36
|
};
|
|
40
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticFolder.js","sourceRoot":"","sources":["../../../src/staticFolder/staticFolder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE9F,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"staticFolder.js","sourceRoot":"","sources":["../../../src/staticFolder/staticFolder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE9F,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAA;AACnC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AASjD,MAAM,UAAU,GAAG,CAAC,CAAU,EAAE,EAAE;IAChC,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAA;IACrE,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,GAAoB,EACpB,GAAoC,EACpC,qBAAoD,EACpD,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAE3F,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,qBAAqB,EAAE,CAAA;QACnD,YAAY,CAAC,GAAG,CAAC,CAAC;YAChB,UAAU,EAAE,GAAG;YACf,WAAW,EAAE,aAAa,CAAC,QAAQ;YACnC,IAAI,EAAE,aAAa,CAAC,OAAO;SAC5B,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACpF,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAE,EAAE;IAC5D,OAAO,KAAK,EAAE,QAAgB,EAA2B,EAAE;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,0BAA0B,CAAA;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,QAAQ,KAAK,kBAAkB,CAAA;QAE9E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAExE,OAAO;YACL,OAAO;YACP,QAAQ;SACT,CAAA;IACH,CAAC,CAAA;AACH,CAAC,CAAA"}
|
package/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = 'v0.
|
|
1
|
+
export const version = 'v0.44.0'
|
|
2
2
|
|
package/openapi/openapi.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Config } from '../config/index.js';
|
|
2
|
-
import type { IncomingMessage, ServerResponse } from 'http';
|
|
3
|
-
type OpenApiFormat = 'json' | 'yaml';
|
|
4
|
-
export declare const createOpenApiHandler: (format: OpenApiFormat, config: Config) => (req: IncomingMessage, res: ServerResponse<IncomingMessage>) => Promise<void>;
|
|
5
|
-
export {};
|
|
6
|
-
//# sourceMappingURL=openapi.d.ts.map
|