@duplojs/http 0.8.5 → 0.10.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 (171) hide show
  1. package/dist/core/builders/preflight/builder.d.ts +5 -6
  2. package/dist/core/builders/preflight/process.d.ts +3 -4
  3. package/dist/core/builders/preflight/route.d.ts +4 -5
  4. package/dist/core/builders/process/builder.d.ts +4 -5
  5. package/dist/core/builders/process/checker.d.ts +2 -3
  6. package/dist/core/builders/process/cut.d.ts +4 -5
  7. package/dist/core/builders/process/exports.d.ts +3 -4
  8. package/dist/core/builders/process/extract.d.ts +2 -3
  9. package/dist/core/builders/process/presetChecker.d.ts +2 -3
  10. package/dist/core/builders/process/process.d.ts +3 -4
  11. package/dist/core/builders/route/builder.d.ts +6 -6
  12. package/dist/core/builders/route/checker.d.ts +2 -3
  13. package/dist/core/builders/route/cut.d.ts +4 -5
  14. package/dist/core/builders/route/extract.d.ts +3 -3
  15. package/dist/core/builders/route/handler.d.ts +3 -4
  16. package/dist/core/builders/route/presetChecker.d.ts +2 -3
  17. package/dist/core/builders/route/process.d.ts +3 -4
  18. package/dist/core/defaultHooks/index.d.ts +1 -1
  19. package/dist/core/functionsBuilders/index.cjs +1 -0
  20. package/dist/core/functionsBuilders/index.d.ts +1 -0
  21. package/dist/core/functionsBuilders/index.mjs +1 -0
  22. package/dist/core/functionsBuilders/route/build.d.ts +5 -2
  23. package/dist/core/functionsBuilders/route/create.d.ts +3 -5
  24. package/dist/core/functionsBuilders/route/{hook.cjs → default/hook.cjs} +16 -7
  25. package/dist/core/functionsBuilders/route/{hook.d.ts → default/hook.d.ts} +5 -5
  26. package/dist/core/functionsBuilders/route/{hook.mjs → default/hook.mjs} +16 -7
  27. package/dist/core/functionsBuilders/route/{default.cjs → default/index.cjs} +22 -34
  28. package/dist/core/functionsBuilders/route/default/index.d.ts +2 -0
  29. package/dist/core/functionsBuilders/route/{default.mjs → default/index.mjs} +11 -29
  30. package/dist/core/functionsBuilders/route/index.cjs +2 -9
  31. package/dist/core/functionsBuilders/route/index.d.ts +0 -1
  32. package/dist/core/functionsBuilders/route/index.mjs +1 -2
  33. package/dist/core/functionsBuilders/router/build.cjs +7 -0
  34. package/dist/core/functionsBuilders/router/build.d.ts +14 -0
  35. package/dist/core/functionsBuilders/router/build.mjs +5 -0
  36. package/dist/core/functionsBuilders/router/create.cjs +7 -0
  37. package/dist/core/functionsBuilders/router/create.d.ts +15 -0
  38. package/dist/core/functionsBuilders/router/create.mjs +5 -0
  39. package/dist/core/functionsBuilders/router/default/index.cjs +52 -0
  40. package/dist/core/functionsBuilders/router/default/index.d.ts +1 -0
  41. package/dist/core/functionsBuilders/router/default/index.mjs +50 -0
  42. package/dist/core/functionsBuilders/router/index.cjs +11 -0
  43. package/dist/core/functionsBuilders/router/index.d.ts +3 -0
  44. package/dist/core/functionsBuilders/router/index.mjs +3 -0
  45. package/dist/core/functionsBuilders/steps/create.d.ts +3 -6
  46. package/dist/core/hub/defaultMalformedUrlHandler.d.ts +1 -1
  47. package/dist/core/hub/defaultNotfoundHandler.d.ts +1 -1
  48. package/dist/core/hub/hooks.d.ts +2 -2
  49. package/dist/core/hub/index.cjs +5 -0
  50. package/dist/core/hub/index.d.ts +6 -3
  51. package/dist/core/hub/index.mjs +5 -0
  52. package/dist/core/implementHttpServer.cjs +1 -1
  53. package/dist/core/implementHttpServer.d.ts +2 -2
  54. package/dist/core/implementHttpServer.mjs +2 -2
  55. package/dist/core/index.cjs +15 -14
  56. package/dist/core/index.mjs +8 -6
  57. package/dist/core/process/index.d.ts +0 -7
  58. package/dist/core/route/hooks.cjs +2 -17
  59. package/dist/core/route/hooks.d.ts +15 -32
  60. package/dist/core/route/hooks.mjs +3 -17
  61. package/dist/core/route/index.cjs +0 -1
  62. package/dist/core/route/index.mjs +1 -1
  63. package/dist/core/router/{buildSystemRoute.cjs → createRouterElementSystem.cjs} +4 -3
  64. package/dist/core/router/createRouterElementSystem.d.ts +9 -0
  65. package/dist/core/router/{buildSystemRoute.mjs → createRouterElementSystem.mjs} +4 -3
  66. package/dist/core/router/index.cjs +19 -60
  67. package/dist/core/router/index.d.ts +3 -4
  68. package/dist/core/router/index.mjs +17 -56
  69. package/dist/core/router/types/buildedRouter.d.ts +2 -12
  70. package/dist/core/router/types/index.cjs +4 -0
  71. package/dist/core/router/types/index.d.ts +4 -0
  72. package/dist/core/router/types/index.mjs +4 -0
  73. package/dist/core/router/types/router.cjs +2 -0
  74. package/dist/core/router/types/router.d.ts +12 -0
  75. package/dist/core/router/types/router.mjs +1 -0
  76. package/dist/core/router/types/routerElement.cjs +2 -0
  77. package/dist/core/router/types/routerElement.d.ts +8 -0
  78. package/dist/core/router/types/routerElement.mjs +1 -0
  79. package/dist/core/router/types/routerElementSystem.cjs +2 -0
  80. package/dist/core/router/types/routerElementSystem.d.ts +6 -0
  81. package/dist/core/router/types/routerElementSystem.mjs +1 -0
  82. package/dist/core/router/types/routerElementWrapper.cjs +2 -0
  83. package/dist/core/router/types/routerElementWrapper.d.ts +2 -0
  84. package/dist/core/router/types/routerElementWrapper.mjs +1 -0
  85. package/dist/core/steps/cut.d.ts +1 -2
  86. package/dist/core/steps/handler.d.ts +1 -2
  87. package/dist/core/steps/types/stepFunctionParams.d.ts +2 -2
  88. package/dist/interfaces/node/createHttpServer.cjs +2 -2
  89. package/dist/interfaces/node/createHttpServer.mjs +2 -2
  90. package/dist/interfaces/node/hooks/index.d.ts +3 -3
  91. package/dist/plugins/cacheController/hooks.cjs +2 -1
  92. package/dist/plugins/cacheController/hooks.d.ts +1 -1
  93. package/dist/plugins/cacheController/hooks.mjs +2 -1
  94. package/dist/plugins/cookie/hooks/cookieHooks.cjs +15 -0
  95. package/dist/plugins/cookie/hooks/cookieHooks.d.ts +11 -0
  96. package/dist/plugins/cookie/hooks/cookieHooks.mjs +13 -0
  97. package/dist/plugins/cookie/hooks/index.cjs +11 -0
  98. package/dist/plugins/cookie/hooks/index.d.ts +3 -0
  99. package/dist/plugins/cookie/hooks/index.mjs +3 -0
  100. package/dist/plugins/cookie/hooks/parseRequestCookie.cjs +20 -0
  101. package/dist/plugins/cookie/hooks/parseRequestCookie.d.ts +8 -0
  102. package/dist/plugins/cookie/hooks/parseRequestCookie.mjs +18 -0
  103. package/dist/plugins/cookie/hooks/serializeResponseCookie.cjs +17 -0
  104. package/dist/plugins/cookie/hooks/serializeResponseCookie.d.ts +7 -0
  105. package/dist/plugins/cookie/hooks/serializeResponseCookie.mjs +15 -0
  106. package/dist/plugins/cookie/index.cjs +25 -0
  107. package/dist/plugins/cookie/index.d.ts +6 -0
  108. package/dist/plugins/cookie/index.mjs +9 -0
  109. package/dist/plugins/cookie/kind.cjs +9 -0
  110. package/dist/plugins/cookie/kind.d.ts +6 -0
  111. package/dist/plugins/cookie/kind.mjs +7 -0
  112. package/dist/plugins/cookie/metadata.cjs +8 -0
  113. package/dist/plugins/cookie/metadata.d.ts +1 -0
  114. package/dist/plugins/cookie/metadata.mjs +6 -0
  115. package/dist/plugins/cookie/override.cjs +30 -0
  116. package/dist/plugins/cookie/override.d.ts +16 -0
  117. package/dist/plugins/cookie/override.mjs +28 -0
  118. package/dist/plugins/cookie/parser.cjs +84 -0
  119. package/dist/plugins/cookie/parser.d.ts +2 -0
  120. package/dist/plugins/cookie/parser.mjs +79 -0
  121. package/dist/plugins/cookie/plugin.cjs +30 -0
  122. package/dist/plugins/cookie/plugin.d.ts +8 -0
  123. package/dist/plugins/cookie/plugin.mjs +28 -0
  124. package/dist/plugins/cookie/serialize.cjs +84 -0
  125. package/dist/plugins/cookie/serialize.d.ts +29 -0
  126. package/dist/plugins/cookie/serialize.mjs +81 -0
  127. package/dist/plugins/cors/headerFunctions/allowHeaders.cjs +11 -0
  128. package/dist/plugins/cors/headerFunctions/allowHeaders.d.ts +5 -0
  129. package/dist/plugins/cors/headerFunctions/allowHeaders.mjs +9 -0
  130. package/dist/plugins/cors/headerFunctions/allowMethods.cjs +16 -0
  131. package/dist/plugins/cors/headerFunctions/allowMethods.d.ts +6 -0
  132. package/dist/plugins/cors/headerFunctions/allowMethods.mjs +14 -0
  133. package/dist/plugins/cors/headerFunctions/allowOrigin.cjs +24 -0
  134. package/dist/plugins/cors/headerFunctions/allowOrigin.d.ts +7 -0
  135. package/dist/plugins/cors/headerFunctions/allowOrigin.mjs +22 -0
  136. package/dist/plugins/cors/headerFunctions/credentials.cjs +11 -0
  137. package/dist/plugins/cors/headerFunctions/credentials.d.ts +5 -0
  138. package/dist/plugins/cors/headerFunctions/credentials.mjs +9 -0
  139. package/dist/plugins/cors/headerFunctions/exposeHeaders.cjs +11 -0
  140. package/dist/plugins/cors/headerFunctions/exposeHeaders.d.ts +5 -0
  141. package/dist/plugins/cors/headerFunctions/exposeHeaders.mjs +9 -0
  142. package/dist/plugins/cors/headerFunctions/index.cjs +19 -0
  143. package/dist/plugins/cors/headerFunctions/index.d.ts +7 -0
  144. package/dist/plugins/cors/headerFunctions/index.mjs +7 -0
  145. package/dist/plugins/cors/headerFunctions/maxAge.cjs +11 -0
  146. package/dist/plugins/cors/headerFunctions/maxAge.d.ts +5 -0
  147. package/dist/plugins/cors/headerFunctions/maxAge.mjs +9 -0
  148. package/dist/plugins/cors/headerFunctions/vary.cjs +35 -0
  149. package/dist/plugins/cors/headerFunctions/vary.d.ts +5 -0
  150. package/dist/plugins/cors/headerFunctions/vary.mjs +33 -0
  151. package/dist/plugins/cors/index.cjs +9 -0
  152. package/dist/plugins/cors/index.d.ts +2 -0
  153. package/dist/plugins/cors/index.mjs +2 -0
  154. package/dist/plugins/cors/metadata.cjs +8 -0
  155. package/dist/plugins/cors/metadata.d.ts +1 -0
  156. package/dist/plugins/cors/metadata.mjs +6 -0
  157. package/dist/plugins/cors/plugin.cjs +108 -0
  158. package/dist/plugins/cors/plugin.d.ts +12 -0
  159. package/dist/plugins/cors/plugin.mjs +106 -0
  160. package/dist/plugins/openApiGenerator/makeOpenApiRoute.d.ts +1 -1
  161. package/dist/plugins/static/makeRouteFile.d.ts +2 -2
  162. package/dist/plugins/static/makeRouteFolder.cjs +1 -1
  163. package/dist/plugins/static/makeRouteFolder.d.ts +2 -2
  164. package/dist/plugins/static/makeRouteFolder.mjs +1 -1
  165. package/dist/plugins/static/plugin.d.ts +1 -1
  166. package/package.json +37 -7
  167. package/dist/core/functionsBuilders/route/default.d.ts +0 -1
  168. package/dist/core/router/buildSystemRoute.d.ts +0 -11
  169. /package/dist/core/{router/decodeUrl.cjs → decodeUrl.cjs} +0 -0
  170. /package/dist/core/{router/decodeUrl.d.ts → decodeUrl.d.ts} +0 -0
  171. /package/dist/core/{router/decodeUrl.mjs → decodeUrl.mjs} +0 -0
@@ -1,13 +1,3 @@
1
- import { type createStepFunctionBuilder, type createRouteFunctionBuilder } from "../../functionsBuilders";
2
- import { type HookHubLifeCycle } from "../../hub";
3
1
  import { type RequestInitializationData } from "../../request";
4
- import { type HookRouteLifeCycle, type Route } from "../../route";
5
- export type RouterInitializationData = Omit<RequestInitializationData, "matchedPath" | "bodyReader" | "params" | "path" | "query">;
6
- export interface BuildedRouter {
7
- exec(initializationData: RouterInitializationData): Promise<void>;
8
- readonly routes: ReadonlySet<Route>;
9
- readonly hooksRouteLifeCycle: readonly HookRouteLifeCycle[];
10
- readonly routeFunctionBuilders: readonly ReturnType<typeof createRouteFunctionBuilder>[];
11
- readonly stepFunctionBuilders: readonly ReturnType<typeof createStepFunctionBuilder>[];
12
- readonly hooksHubLifeCycle: readonly HookHubLifeCycle[];
13
- }
2
+ export type RouterParams = Omit<RequestInitializationData, "matchedPath" | "bodyReader" | "params" | "path" | "query">;
3
+ export type BuildedRouter = (params: RouterParams) => Promise<void>;
@@ -1,4 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  require('./buildedRouter.cjs');
4
+ require('./router.cjs');
5
+ require('./routerElement.cjs');
6
+ require('./routerElementSystem.cjs');
7
+ require('./routerElementWrapper.cjs');
4
8
 
@@ -1 +1,5 @@
1
1
  export * from "./buildedRouter";
2
+ export * from "./router";
3
+ export * from "./routerElement";
4
+ export * from "./routerElementSystem";
5
+ export * from "./routerElementWrapper";
@@ -1 +1,5 @@
1
1
  import './buildedRouter.mjs';
2
+ import './router.mjs';
3
+ import './routerElement.mjs';
4
+ import './routerElementSystem.mjs';
5
+ import './routerElementWrapper.mjs';
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -0,0 +1,12 @@
1
+ import { type createRouteFunctionBuilder, type createStepFunctionBuilder } from "../../functionsBuilders";
2
+ import { type HookHubLifeCycle } from "../../hub";
3
+ import { type HookRouteLifeCycle, type Route } from "../../route";
4
+ import { type BuildedRouter } from "./buildedRouter";
5
+ export interface Router {
6
+ exec: BuildedRouter;
7
+ readonly routes: ReadonlySet<Route>;
8
+ readonly hooksRouteLifeCycle: readonly HookRouteLifeCycle[];
9
+ readonly routeFunctionBuilders: readonly ReturnType<typeof createRouteFunctionBuilder>[];
10
+ readonly stepFunctionBuilders: readonly ReturnType<typeof createStepFunctionBuilder>[];
11
+ readonly hooksHubLifeCycle: readonly HookHubLifeCycle[];
12
+ }
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -0,0 +1,8 @@
1
+ import { type BodyReader } from "../../request";
2
+ import { type BuildedRoute } from "../../route/types";
3
+ export interface RouterElement {
4
+ readonly pattern: RegExp;
5
+ readonly matchedPath: string;
6
+ readonly bodyReader: BodyReader;
7
+ readonly buildedRoute: BuildedRoute;
8
+ }
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -0,0 +1,6 @@
1
+ import { type BodyReader } from "../../request";
2
+ import { type BuildedRoute } from "../../route/types";
3
+ export interface RouterElementSystem {
4
+ readonly bodyReader: BodyReader;
5
+ readonly buildedRoute: BuildedRoute;
6
+ }
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -0,0 +1,2 @@
1
+ import { type RouterElement } from "./routerElement";
2
+ export type RouterElementWrapper = Record<string, RouterElement[]>;
@@ -3,12 +3,11 @@ import { type StepKind } from "./kind";
3
3
  import { type Floor } from "../floor";
4
4
  import { type StepFunctionParams } from "./types";
5
5
  import { type PredictedResponse, type ResponseContract } from "../response";
6
- import { type Request } from "../request";
7
6
  import { type Metadata } from "../metadata";
8
7
  export declare const cutStepOutputKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/cut-output", unknown>>;
9
8
  export interface CutStepFunctionOutput<GenericData extends Record<string, unknown> = Record<string, unknown>> extends Kind<typeof cutStepOutputKind.definition>, WrappedValue<GenericData> {
10
9
  }
11
- export interface CutStepFunctionParams<GenericRequest extends Request = Request, GenericResponse extends PredictedResponse = PredictedResponse> extends StepFunctionParams<GenericRequest, GenericResponse> {
10
+ export interface CutStepFunctionParams<GenericResponse extends PredictedResponse = PredictedResponse> extends StepFunctionParams<GenericResponse> {
12
11
  output<GenericData extends Record<string, unknown> = never>(data?: GenericData): CutStepFunctionOutput<NeverCoalescing<GenericData, {}>>;
13
12
  }
14
13
  export interface CutStepDefinition {
@@ -2,7 +2,6 @@ import { type MaybePromise, type Kind, type MaybeArray } from "@duplojs/utils";
2
2
  import { type StepKind } from "./kind";
3
3
  import { type Floor } from "../floor";
4
4
  import { type ServerSentEventsPredictedResponse, type PredictedResponse, type ResponseContract } from "../response";
5
- import { type Request } from "../request";
6
5
  import { type StepFunctionParams } from "./types";
7
6
  import { type Metadata } from "../metadata";
8
7
  interface HandlerStepFunctionParamsServerSentEventsResponse<GenericResponse extends ServerSentEventsPredictedResponse> {
@@ -10,7 +9,7 @@ interface HandlerStepFunctionParamsServerSentEventsResponse<GenericResponse exte
10
9
  information: GenericInformation;
11
10
  }>>(information: GenericInformation, startSendingEvents: GenericFilteredResponse["startSendingEvents"]): GenericFilteredResponse;
12
11
  }
13
- export interface HandlerStepFunctionParams<GenericRequest extends Request = Request, GenericResponse extends PredictedResponse | ServerSentEventsPredictedResponse = PredictedResponse | ServerSentEventsPredictedResponse> extends StepFunctionParams<GenericRequest, Extract<GenericResponse, PredictedResponse>>, HandlerStepFunctionParamsServerSentEventsResponse<Extract<GenericResponse, ServerSentEventsPredictedResponse>> {
12
+ export interface HandlerStepFunctionParams<GenericResponse extends PredictedResponse | ServerSentEventsPredictedResponse = PredictedResponse | ServerSentEventsPredictedResponse> extends StepFunctionParams<Extract<GenericResponse, PredictedResponse>>, HandlerStepFunctionParamsServerSentEventsResponse<Extract<GenericResponse, ServerSentEventsPredictedResponse>> {
14
13
  }
15
14
  export interface HandlerStepDefinition {
16
15
  theFunction(floor: Floor, params: HandlerStepFunctionParams): MaybePromise<PredictedResponse | ServerSentEventsPredictedResponse>;
@@ -1,8 +1,8 @@
1
1
  import { type Request } from "../../request";
2
2
  import { type PredictedResponse } from "../../response";
3
3
  import { type IsEqual, type Or } from "@duplojs/utils";
4
- export interface StepFunctionParams<GenericRequest extends Request = Request, GenericResponse extends PredictedResponse = PredictedResponse> {
5
- request: GenericRequest;
4
+ export interface StepFunctionParams<GenericResponse extends PredictedResponse = PredictedResponse> {
5
+ request: Request;
6
6
  response<GenericInformation extends GenericResponse["information"], GenericFilteredResponse extends Extract<GenericResponse, {
7
7
  information: GenericInformation;
8
8
  }>>(information: GenericInformation, ...args: Or<[
@@ -24,8 +24,8 @@ function createHttpServer(hub, params) {
24
24
  index.createTextBodyReaderImplementation(httpServerParams),
25
25
  index$1.createFormDataBodyReaderImplementation(httpServerParams),
26
26
  ]);
27
- function whenUncaughtError(error, routerInitializationData) {
28
- const serverResponse = routerInitializationData.raw.response;
27
+ function whenUncaughtError(error, routerParams) {
28
+ const serverResponse = routerParams.raw.response;
29
29
  if (!serverResponse.headersSent && !serverResponse.writableEnded) {
30
30
  serverResponse.writeHead(500, {
31
31
  [httpServerParams.informationHeaderKey]: "critical-server-error",
@@ -22,8 +22,8 @@ function createHttpServer(hub, params) {
22
22
  createTextBodyReaderImplementation(httpServerParams),
23
23
  createFormDataBodyReaderImplementation(httpServerParams),
24
24
  ]);
25
- function whenUncaughtError(error, routerInitializationData) {
26
- const serverResponse = routerInitializationData.raw.response;
25
+ function whenUncaughtError(error, routerParams) {
26
+ const serverResponse = routerParams.raw.response;
27
27
  if (!serverResponse.headersSent && !serverResponse.writableEnded) {
28
28
  serverResponse.writeHead(500, {
29
29
  [httpServerParams.informationHeaderKey]: "critical-server-error",
@@ -1,7 +1,7 @@
1
1
  import { type Hub } from "../../../core/hub";
2
2
  import { type HttpServerParams } from "../../../core/types";
3
3
  export declare function initNodeHook(hub: Hub, serverParams: HttpServerParams): {
4
- readonly beforeSendResponse: ({ request, currentResponse, exit }: import("../../../core/route").RouteHookParamsAfter<import("../../../core/request").Request>) => import("../../../core/route").RouteHookExit;
5
- readonly sendResponse: ({ request, currentResponse, exit }: import("../../../core/route").RouteHookParamsAfter<import("../../../core/request").Request>) => Promise<import("../../../core/route").RouteHookExit>;
6
- readonly afterSendResponse: ({ request, next }: import("../../../core/route").RouteHookParamsAfter<import("../../../core/request").Request>) => Promise<import("../../../core/route").RouteHookNext>;
4
+ readonly beforeSendResponse: ({ request, currentResponse, exit }: import("../../../core/route").RouteHookParamsAfter) => import("../../../core/route").RouteHookExit;
5
+ readonly sendResponse: ({ request, currentResponse, exit }: import("../../../core/route").RouteHookParamsAfter) => Promise<import("../../../core/route").RouteHookExit>;
6
+ readonly afterSendResponse: ({ request, next }: import("../../../core/route").RouteHookParamsAfter) => Promise<import("../../../core/route").RouteHookNext>;
7
7
  };
@@ -12,7 +12,8 @@ function createCacheControllerHooks(params) {
12
12
  return hooks.createHookRouteLifeCycle({
13
13
  beforeSendResponse: ({ currentResponse, next }) => {
14
14
  if (cacheControl
15
- && eligibleCodeRegex.test(currentResponse.code)) {
15
+ && eligibleCodeRegex.test(currentResponse.code)
16
+ && currentResponse.headers?.["cache-control"] === undefined) {
16
17
  currentResponse.setHeader("cache-control", cacheControl);
17
18
  }
18
19
  return next();
@@ -1,4 +1,4 @@
1
1
  import type { CacheControlDirectives } from "./types";
2
2
  export declare function createCacheControllerHooks(params?: CacheControlDirectives): {
3
- readonly beforeSendResponse: ({ currentResponse, next }: import("../../core/route").RouteHookParamsAfter<import("../../core/request").Request>) => import("../../core/route").RouteHookNext;
3
+ readonly beforeSendResponse: ({ currentResponse, next }: import("../../core/route").RouteHookParamsAfter) => import("../../core/route").RouteHookNext;
4
4
  };
@@ -10,7 +10,8 @@ function createCacheControllerHooks(params) {
10
10
  return createHookRouteLifeCycle({
11
11
  beforeSendResponse: ({ currentResponse, next }) => {
12
12
  if (cacheControl
13
- && eligibleCodeRegex.test(currentResponse.code)) {
13
+ && eligibleCodeRegex.test(currentResponse.code)
14
+ && currentResponse.headers?.["cache-control"] === undefined) {
14
15
  currentResponse.setHeader("cache-control", cacheControl);
15
16
  }
16
17
  return next();
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var parser = require('../parser.cjs');
4
+ var serialize = require('../serialize.cjs');
5
+ var parseRequestCookie = require('./parseRequestCookie.cjs');
6
+ var serializeResponseCookie = require('./serializeResponseCookie.cjs');
7
+
8
+ function cookieHooks({ parser: parser$1 = parser.defaultParser, serializer = serialize.defaultSerializer, } = {}) {
9
+ return {
10
+ ...parseRequestCookie.parseRequestCookieHook({ parser: parser$1 }),
11
+ ...serializeResponseCookie.serializeResponseCookieHook({ serializer }),
12
+ };
13
+ }
14
+
15
+ exports.cookieHooks = cookieHooks;
@@ -0,0 +1,11 @@
1
+ import { type Parser } from "../parser";
2
+ import { type Serializer } from "../serialize";
3
+ interface CookieHooksParams {
4
+ parser?: Parser;
5
+ serializer?: Serializer;
6
+ }
7
+ export declare function cookieHooks({ parser, serializer, }?: CookieHooksParams): {
8
+ beforeSendResponse: ({ currentResponse, next }: import("../../../core/route").RouteHookParamsAfter) => import("../../../core/route").RouteHookNext;
9
+ beforeRouteExecution: ({ request, next }: import("../../../core/route").RouteHookParams) => import("../../../core/route").RouteHookNext;
10
+ };
11
+ export {};
@@ -0,0 +1,13 @@
1
+ import { defaultParser } from '../parser.mjs';
2
+ import { defaultSerializer } from '../serialize.mjs';
3
+ import { parseRequestCookieHook } from './parseRequestCookie.mjs';
4
+ import { serializeResponseCookieHook } from './serializeResponseCookie.mjs';
5
+
6
+ function cookieHooks({ parser = defaultParser, serializer = defaultSerializer, } = {}) {
7
+ return {
8
+ ...parseRequestCookieHook({ parser }),
9
+ ...serializeResponseCookieHook({ serializer }),
10
+ };
11
+ }
12
+
13
+ export { cookieHooks };
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var parseRequestCookie = require('./parseRequestCookie.cjs');
4
+ var serializeResponseCookie = require('./serializeResponseCookie.cjs');
5
+ var cookieHooks = require('./cookieHooks.cjs');
6
+
7
+
8
+
9
+ exports.parseRequestCookieHook = parseRequestCookie.parseRequestCookieHook;
10
+ exports.serializeResponseCookieHook = serializeResponseCookie.serializeResponseCookieHook;
11
+ exports.cookieHooks = cookieHooks.cookieHooks;
@@ -0,0 +1,3 @@
1
+ export * from "./parseRequestCookie";
2
+ export * from "./serializeResponseCookie";
3
+ export * from "./cookieHooks";
@@ -0,0 +1,3 @@
1
+ export { parseRequestCookieHook } from './parseRequestCookie.mjs';
2
+ export { serializeResponseCookieHook } from './serializeResponseCookie.mjs';
3
+ export { cookieHooks } from './cookieHooks.mjs';
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ require('../../../core/route/index.cjs');
4
+ var hooks = require('../../../core/route/hooks.cjs');
5
+
6
+ function parseRequestCookieHook(params) {
7
+ return hooks.createHookRouteLifeCycle({
8
+ beforeRouteExecution: ({ request, next }) => {
9
+ if (request.headers.cookie) {
10
+ const cookieValue = Array.isArray(request.headers.cookie)
11
+ ? request.headers.cookie.join("; ")
12
+ : request.headers.cookie;
13
+ request.cookies = params.parser(cookieValue);
14
+ }
15
+ return next();
16
+ },
17
+ });
18
+ }
19
+
20
+ exports.parseRequestCookieHook = parseRequestCookieHook;
@@ -0,0 +1,8 @@
1
+ import { type Parser } from "../parser";
2
+ interface ParseRequestCookieHookParams {
3
+ parser: Parser;
4
+ }
5
+ export declare function parseRequestCookieHook(params: ParseRequestCookieHookParams): {
6
+ readonly beforeRouteExecution: ({ request, next }: import("../../../core/route").RouteHookParams) => import("../../../core/route").RouteHookNext;
7
+ };
8
+ export {};
@@ -0,0 +1,18 @@
1
+ import '../../../core/route/index.mjs';
2
+ import { createHookRouteLifeCycle } from '../../../core/route/hooks.mjs';
3
+
4
+ function parseRequestCookieHook(params) {
5
+ return createHookRouteLifeCycle({
6
+ beforeRouteExecution: ({ request, next }) => {
7
+ if (request.headers.cookie) {
8
+ const cookieValue = Array.isArray(request.headers.cookie)
9
+ ? request.headers.cookie.join("; ")
10
+ : request.headers.cookie;
11
+ request.cookies = params.parser(cookieValue);
12
+ }
13
+ return next();
14
+ },
15
+ });
16
+ }
17
+
18
+ export { parseRequestCookieHook };
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ require('../../../core/route/index.cjs');
4
+ var hooks = require('../../../core/route/hooks.cjs');
5
+
6
+ function serializeResponseCookieHook(params) {
7
+ return hooks.createHookRouteLifeCycle({
8
+ beforeSendResponse: ({ currentResponse, next }) => {
9
+ if (currentResponse.cookie !== undefined && Object.keys(currentResponse.cookie).length !== 0) {
10
+ currentResponse.setHeader("set-cookie", Object.entries(currentResponse.cookie).map(([name, content]) => params.serializer(name, content.value, content.params)));
11
+ }
12
+ return next();
13
+ },
14
+ });
15
+ }
16
+
17
+ exports.serializeResponseCookieHook = serializeResponseCookieHook;
@@ -0,0 +1,7 @@
1
+ import { type Serializer } from "../serialize";
2
+ export interface SerializeResponseCookieHookParams {
3
+ serializer: Serializer;
4
+ }
5
+ export declare function serializeResponseCookieHook(params: SerializeResponseCookieHookParams): {
6
+ readonly beforeSendResponse: ({ currentResponse, next }: import("../../../core/route").RouteHookParamsAfter) => import("../../../core/route").RouteHookNext;
7
+ };
@@ -0,0 +1,15 @@
1
+ import '../../../core/route/index.mjs';
2
+ import { createHookRouteLifeCycle } from '../../../core/route/hooks.mjs';
3
+
4
+ function serializeResponseCookieHook(params) {
5
+ return createHookRouteLifeCycle({
6
+ beforeSendResponse: ({ currentResponse, next }) => {
7
+ if (currentResponse.cookie !== undefined && Object.keys(currentResponse.cookie).length !== 0) {
8
+ currentResponse.setHeader("set-cookie", Object.entries(currentResponse.cookie).map(([name, content]) => params.serializer(name, content.value, content.params)));
9
+ }
10
+ return next();
11
+ },
12
+ });
13
+ }
14
+
15
+ export { serializeResponseCookieHook };
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var parser = require('./parser.cjs');
4
+ var serialize = require('./serialize.cjs');
5
+ require('./override.cjs');
6
+ var metadata = require('./metadata.cjs');
7
+ require('./hooks/index.cjs');
8
+ var plugin = require('./plugin.cjs');
9
+ var parseRequestCookie = require('./hooks/parseRequestCookie.cjs');
10
+ var serializeResponseCookie = require('./hooks/serializeResponseCookie.cjs');
11
+ var cookieHooks = require('./hooks/cookieHooks.cjs');
12
+
13
+
14
+
15
+ exports.decode = parser.decode;
16
+ exports.defaultParser = parser.defaultParser;
17
+ exports.findPairEndIndex = parser.findPairEndIndex;
18
+ exports.sliceAndTrimOws = parser.sliceAndTrimOws;
19
+ exports.SerializeCookieError = serialize.SerializeCookieError;
20
+ exports.defaultSerializer = serialize.defaultSerializer;
21
+ exports.IgnoreRouteCookieMetadata = metadata.IgnoreRouteCookieMetadata;
22
+ exports.cookiePlugin = plugin.cookiePlugin;
23
+ exports.parseRequestCookieHook = parseRequestCookie.parseRequestCookieHook;
24
+ exports.serializeResponseCookieHook = serializeResponseCookie.serializeResponseCookieHook;
25
+ exports.cookieHooks = cookieHooks.cookieHooks;
@@ -0,0 +1,6 @@
1
+ export * from "./parser";
2
+ export * from "./serialize";
3
+ export * from "./override";
4
+ export * from "./metadata";
5
+ export * from "./hooks";
6
+ export * from "./plugin";
@@ -0,0 +1,9 @@
1
+ export { decode, defaultParser, findPairEndIndex, sliceAndTrimOws } from './parser.mjs';
2
+ export { SerializeCookieError, defaultSerializer } from './serialize.mjs';
3
+ import './override.mjs';
4
+ export { IgnoreRouteCookieMetadata } from './metadata.mjs';
5
+ import './hooks/index.mjs';
6
+ export { cookiePlugin } from './plugin.mjs';
7
+ export { parseRequestCookieHook } from './hooks/parseRequestCookie.mjs';
8
+ export { serializeResponseCookieHook } from './hooks/serializeResponseCookie.mjs';
9
+ export { cookieHooks } from './hooks/cookieHooks.mjs';
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+
5
+ const createCookiePluginKind = utils.createKindNamespace(
6
+ // @ts-expect-error reserved kind namespace
7
+ "DuplojsCookiePlugin");
8
+
9
+ exports.createCookiePluginKind = createCookiePluginKind;
@@ -0,0 +1,6 @@
1
+ declare module "@duplojs/utils" {
2
+ interface ReservedKindNamespace {
3
+ DuplojsCookiePlugin: true;
4
+ }
5
+ }
6
+ export declare const createCookiePluginKind: <GenericName extends string, GenericKindValue extends unknown = unknown>(name: GenericName & import("@duplojs/utils/string").ForbiddenString<GenericName, "@" | "/">) => import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<`@DuplojsCookiePlugin/${GenericName}`, GenericKindValue>>;
@@ -0,0 +1,7 @@
1
+ import { createKindNamespace } from '@duplojs/utils';
2
+
3
+ const createCookiePluginKind = createKindNamespace(
4
+ // @ts-expect-error reserved kind namespace
5
+ "DuplojsCookiePlugin");
6
+
7
+ export { createCookiePluginKind };
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ require('../../core/metadata/index.cjs');
4
+ var base = require('../../core/metadata/base.cjs');
5
+
6
+ const IgnoreRouteCookieMetadata = base.createMetadata("ignore-by-cookie");
7
+
8
+ exports.IgnoreRouteCookieMetadata = IgnoreRouteCookieMetadata;
@@ -0,0 +1 @@
1
+ export declare const IgnoreRouteCookieMetadata: import("../../core/metadata").MetadataHandler<"ignore-by-cookie", unknown>;
@@ -0,0 +1,6 @@
1
+ import '../../core/metadata/index.mjs';
2
+ import { createMetadata } from '../../core/metadata/base.mjs';
3
+
4
+ const IgnoreRouteCookieMetadata = createMetadata("ignore-by-cookie");
5
+
6
+ export { IgnoreRouteCookieMetadata };
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var index = require('../../core/request/index.cjs');
4
+ require('../../core/response/index.cjs');
5
+ var base = require('../../core/response/base.cjs');
6
+
7
+ index.Request.prototype.cookies = undefined;
8
+ base.Response.prototype.cookie = undefined;
9
+ base.Response.prototype.setCookie = function (name, value, params) {
10
+ if (!this.cookie) {
11
+ this.cookie = {};
12
+ }
13
+ this.cookie[name] = {
14
+ value,
15
+ params,
16
+ };
17
+ return this;
18
+ };
19
+ base.Response.prototype.dropCookie = function (name) {
20
+ if (!this.cookie) {
21
+ this.cookie = {};
22
+ }
23
+ this.cookie[name] = {
24
+ value: "",
25
+ params: {
26
+ maxAge: 0,
27
+ },
28
+ };
29
+ return this;
30
+ };
@@ -0,0 +1,16 @@
1
+ import type { SerializerParams } from "./serialize";
2
+ declare module "../../core/request" {
3
+ interface Request {
4
+ cookies?: Partial<Record<string, string>>;
5
+ }
6
+ }
7
+ declare module "../../core/response" {
8
+ interface Response<GenericCode, GenericInformation, GenericBody> {
9
+ cookie?: Record<string, {
10
+ value: string;
11
+ params?: SerializerParams;
12
+ }>;
13
+ setCookie(name: string, value: string, params?: SerializerParams): this;
14
+ dropCookie(name: string): this;
15
+ }
16
+ }
@@ -0,0 +1,28 @@
1
+ import { Request } from '../../core/request/index.mjs';
2
+ import '../../core/response/index.mjs';
3
+ import { Response } from '../../core/response/base.mjs';
4
+
5
+ Request.prototype.cookies = undefined;
6
+ Response.prototype.cookie = undefined;
7
+ Response.prototype.setCookie = function (name, value, params) {
8
+ if (!this.cookie) {
9
+ this.cookie = {};
10
+ }
11
+ this.cookie[name] = {
12
+ value,
13
+ params,
14
+ };
15
+ return this;
16
+ };
17
+ Response.prototype.dropCookie = function (name) {
18
+ if (!this.cookie) {
19
+ this.cookie = {};
20
+ }
21
+ this.cookie[name] = {
22
+ value: "",
23
+ params: {
24
+ maxAge: 0,
25
+ },
26
+ };
27
+ return this;
28
+ };