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.
Files changed (86) hide show
  1. package/README.md +14 -16
  2. package/config/index.d.ts +0 -1
  3. package/config/index.d.ts.map +1 -1
  4. package/config/index.js +1 -1
  5. package/config/index.js.map +1 -1
  6. package/index.d.ts +2 -2
  7. package/index.d.ts.map +1 -1
  8. package/index.js +20 -32
  9. package/index.js.map +1 -1
  10. package/openapi/html.d.ts +2 -0
  11. package/openapi/html.d.ts.map +1 -0
  12. package/openapi/html.js +14 -0
  13. package/openapi/html.js.map +1 -0
  14. package/openapi/index.d.ts +5 -0
  15. package/openapi/index.d.ts.map +1 -0
  16. package/openapi/index.js +37 -0
  17. package/openapi/index.js.map +1 -0
  18. package/openapi/spec.d.ts +8 -0
  19. package/openapi/spec.d.ts.map +1 -0
  20. package/openapi/spec.js +486 -0
  21. package/openapi/spec.js.map +1 -0
  22. package/package.json +11 -11
  23. package/requestHandlers/delete.d.ts +2 -2
  24. package/requestHandlers/delete.js +8 -8
  25. package/requestHandlers/delete.js.map +1 -1
  26. package/requestHandlers/get.d.ts +13 -7
  27. package/requestHandlers/get.d.ts.map +1 -1
  28. package/requestHandlers/get.js +7 -7
  29. package/requestHandlers/get.js.map +1 -1
  30. package/requestHandlers/index.d.ts +40 -18
  31. package/requestHandlers/index.d.ts.map +1 -1
  32. package/requestHandlers/index.js +2 -2
  33. package/requestHandlers/index.js.map +1 -1
  34. package/requestHandlers/patch.d.ts +9 -2
  35. package/requestHandlers/patch.d.ts.map +1 -1
  36. package/requestHandlers/patch.js +10 -7
  37. package/requestHandlers/patch.js.map +1 -1
  38. package/requestHandlers/post.d.ts +5 -3
  39. package/requestHandlers/post.d.ts.map +1 -1
  40. package/requestHandlers/post.js +6 -6
  41. package/requestHandlers/post.js.map +1 -1
  42. package/requestHandlers/put.d.ts +9 -2
  43. package/requestHandlers/put.d.ts.map +1 -1
  44. package/requestHandlers/put.js +10 -7
  45. package/requestHandlers/put.js.map +1 -1
  46. package/requestHandlers/types.d.ts +4 -12
  47. package/requestHandlers/types.d.ts.map +1 -1
  48. package/requestHandlers/utils.d.ts +4 -1
  49. package/requestHandlers/utils.d.ts.map +1 -1
  50. package/requestHandlers/utils.js.map +1 -1
  51. package/requestInterceptor/interceptRequest.d.ts +6 -5
  52. package/requestInterceptor/interceptRequest.d.ts.map +1 -1
  53. package/requestInterceptor/interceptRequest.js +8 -8
  54. package/requestInterceptor/interceptRequest.js.map +1 -1
  55. package/requestInterceptor/types.d.ts +9 -7
  56. package/requestInterceptor/types.d.ts.map +1 -1
  57. package/resourceHandler.d.ts +2 -7
  58. package/resourceHandler.d.ts.map +1 -1
  59. package/resourceHandler.js +17 -48
  60. package/resourceHandler.js.map +1 -1
  61. package/responseHandler.d.ts +13 -0
  62. package/responseHandler.d.ts.map +1 -0
  63. package/responseHandler.js +39 -0
  64. package/responseHandler.js.map +1 -0
  65. package/root/html.d.ts +8 -0
  66. package/root/html.d.ts.map +1 -0
  67. package/root/html.js +48 -0
  68. package/root/html.js.map +1 -0
  69. package/root/root.d.ts +4 -0
  70. package/root/root.d.ts.map +1 -0
  71. package/root/root.js +37 -0
  72. package/root/root.js.map +1 -0
  73. package/schema/compile.js +10 -11
  74. package/schema/compile.js.map +1 -1
  75. package/schema/validate.d.ts +2 -1
  76. package/schema/validate.d.ts.map +1 -1
  77. package/schema/validate.js.map +1 -1
  78. package/staticFolder/staticFolder.d.ts +3 -5
  79. package/staticFolder/staticFolder.d.ts.map +1 -1
  80. package/staticFolder/staticFolder.js +15 -18
  81. package/staticFolder/staticFolder.js.map +1 -1
  82. package/version.js +1 -1
  83. package/openapi/openapi.d.ts +0 -6
  84. package/openapi/openapi.d.ts.map +0 -1
  85. package/openapi/openapi.js +0 -476
  86. 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":"AAUA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,SAAgC,EAChC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACjB,EAAE;IACF,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,SAAiC,EACjC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACjB,IAAa,EACb,EAAE;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAC9D,OAAO,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,SAAgC,EAChC,OAA4B,EAC5B,QAAgB,EAChB,EAAU,EACV,IAAa,EACb,EAAE;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,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,CACpC,SAAmC,EACnC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACjB,EAAE;IACF,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,WAAmC,EAAE,IAAa,EAAE,EAAE;IAC9E,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
+ {"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: unknown;
12
+ body: Body;
11
13
  };
12
14
  type WithIdAndBody = InterceptedResource & {
13
15
  id: string;
14
- body: unknown;
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;AAE/C,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,OAAO,CAAA;CACd,CAAA;AAED,KAAK,aAAa,GAAG,mBAAmB,GAAG;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;CACd,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,sBAAsB,CAAA;AACpF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,kBAAkB,KAAK,sBAAsB,CAAA;AAC5F,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,sBAAsB,CAAA;AACxF,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,sBAAsB,CAAA;AACtF,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,sBAAsB,CAAA;AAEvF,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"}
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"}
@@ -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
- import type { RouterConfig } from './config/index.js';
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
@@ -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,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAG5C,eAAO,MAAM,iBAAiB,GAC5B,KAAK,cAAc,CAAC,eAAe,CAAC,EACpC,aAAY,MAAY,EACxB,UAAS,MAAgC,SAM1C,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,GAAG,eAAe,EAClB,KAAK,cAAc,CAAC,eAAe,CAAC,SAGrC,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,GAAG,eAAe,EAClB,KAAK,cAAc,CAAC,eAAe,CAAC,GAAG;IAAE,GAAG,EAAE,eAAe,CAAA;CAAE,SAGhE,CAAA;AAuED,eAAO,MAAM,qBAAqB,GAChC,SAAS,OAAO,EAChB,SAAS,eAAe,EACxB,cAAc,YAAY,MAsLlB,KAAK,eAAe,EAAE,KAAK,cAAc,CAAC,eAAe,CAAC,8BAiBnE,CAAA"}
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"}
@@ -1,23 +1,11 @@
1
1
  import { getRequestHandler } from './requestHandlers/index.js';
2
2
  import { parseUrl } from './urls/urlParser.js';
3
- import { setCorsHeaders } from './cors/cors.js';
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 'status' in request;
5
+ return 'statusCode' in request;
18
6
  };
19
- const createError = (status, message) => {
20
- return { status, message };
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, routerConfig) => {
55
+ export const createResourceHandler = async (queries, schemas, config) => {
68
56
  const getUrlInfo = (baseUrl) => {
69
- const url = routerConfig.apiPrefix ? baseUrl.replace(routerConfig.apiPrefix, '') : baseUrl;
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 = routerConfig.resources.map((resource) => {
104
+ const resourcePaths = config.resources.map((resource) => {
117
105
  return typeof resource === 'string' ? resource : resource.resourcePath;
118
106
  });
119
- if (routerConfig.validateResources &&
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.status, requestInfo.message);
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.status, validationResult.message);
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(response, httpResponse);
126
+ sendResponse(httpResponse)(response);
153
127
  };
154
- const requestHandler = getRequestHandler(queries, schemas, routerConfig);
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
@@ -1 +1 @@
1
- {"version":3,"file":"resourceHandler.js","sourceRoot":"","sources":["../../src/resourceHandler.ts"],"names":[],"mappings":"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"}
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,8 @@
1
+ type PageInfo = {
2
+ version: string;
3
+ title: string;
4
+ openapi?: Record<'json' | 'yaml' | 'html', string>;
5
+ };
6
+ export declare const getHtml: (pageInfo: PageInfo) => string;
7
+ export {};
8
+ //# sourceMappingURL=html.d.ts.map
@@ -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
@@ -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
@@ -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, {} from '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).forEach((resource) => {
14
- if (configuredSchemas[resource]?.post) {
15
- compiledSchemas.post[resource] = ajv.compile(configuredSchemas[resource]?.post);
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 (configuredSchemas[resource]?.put) {
18
- compiledSchemas.put[resource] = ajv.compile(configuredSchemas[resource]?.put);
16
+ if (schemaSet?.put) {
17
+ compiledSchemas.put[resource] = ajv.compile(schemaSet.put);
19
18
  }
20
- if (configuredSchemas[resource]?.patch) {
21
- compiledSchemas.patch[resource] = ajv.compile(configuredSchemas[resource]?.patch);
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
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/schema/compile.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAkB,MAAM,KAAK,CAAA;AAGzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,iBAA2C,EAAE,EAAE;IAC5E,oDAAoD;IACpD,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,6CAA6C;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;IAErB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAClD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;YACtC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,IAAiB,CAAC,CAAA;QAC9F,CAAC;QAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;YACrC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,GAAgB,CAAC,CAAA;QAC5F,CAAC;QAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;YACvC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,KAAkB,CAAC,CAAA;QAChG,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA"}
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"}
@@ -1,4 +1,5 @@
1
1
  import type { ValidateFunction } from 'ajv';
2
2
  import type { ValidationResult } from './types.js';
3
- export declare const validate: (body: unknown, validate?: ValidateFunction<unknown>) => ValidationResult;
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
@@ -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;AAE/C,eAAO,MAAM,QAAQ,GAAI,MAAM,OAAO,EAAE,WAAW,gBAAgB,CAAC,OAAO,CAAC,KAAG,gBAW9E,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/schema/validate.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAE,QAAoC,EAAoB,EAAE;IAChG,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"}
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
- req: IncomingMessage;
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;AASxE,eAAO,MAAM,kBAAkB,GAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,CAAC,eAAe,CAAC,GAAG;IAAE,GAAG,EAAE,eAAe,CAAA;CAAE,EAC/D,uBAAuB,MAAM,cAAc,SAmB5C,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,QAAQ,MAAM,MAChD,UAAU,MAAM,KAAG,cAU5B,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 '../resourceHandler.js';
1
+ import { handleMethodNotAllowed, handleNotFound, sendErrorResponse } from '../responseHandler.js';
2
2
  import path from 'node:path';
3
- import fs from 'node:fs';
3
+ import { promises as fs } from 'fs';
4
4
  import mime from 'mime/lite';
5
- import { setCorsHeaders } from '../cors/cors.js';
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(req, res);
14
+ return handleMethodNotAllowed(res);
15
15
  try {
16
- const staticContent = getStaticFileFromDisk();
17
- res.statusCode = 200;
18
- res.setHeader('Content-Type', staticContent.mimeType);
19
- setCorsHeaders(res);
20
- if (typeof staticContent.content === 'string') {
21
- res.end(staticContent.content);
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(req, res) : sendErrorResponse(res);
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: fs.readFileSync(filePath, isText ? 'utf8' : undefined),
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,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAS7C,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,CAChC,GAAoB,EACpB,GAA+D,EAC/D,qBAA2C,EAC3C,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAEhG,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAA;QAE7C,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;QACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;QACrD,cAAc,CAAC,GAAG,CAAC,CAAA;QAEnB,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9C,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACzF,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAE,EAAE;IAC5D,OAAO,CAAC,QAAgB,EAAkB,EAAE;QAC1C,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,OAAO;YACL,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,QAAQ;SACT,CAAA;IACH,CAAC,CAAA;AACH,CAAC,CAAA"}
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.43.0'
1
+ export const version = 'v0.44.0'
2
2
 
@@ -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