@duplojs/http 0.4.0 → 0.5.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 (104) hide show
  1. package/dist/core/builders/preflight/builder.cjs +1 -0
  2. package/dist/core/builders/preflight/builder.d.ts +5 -1
  3. package/dist/core/builders/preflight/builder.mjs +1 -0
  4. package/dist/core/builders/preflight/process.cjs +2 -1
  5. package/dist/core/builders/preflight/process.d.ts +4 -2
  6. package/dist/core/builders/preflight/process.mjs +2 -1
  7. package/dist/core/builders/preflight/route.cjs +4 -0
  8. package/dist/core/builders/preflight/route.d.ts +9 -3
  9. package/dist/core/builders/preflight/route.mjs +4 -0
  10. package/dist/core/builders/process/builder.cjs +1 -0
  11. package/dist/core/builders/process/builder.d.ts +4 -1
  12. package/dist/core/builders/process/builder.mjs +1 -0
  13. package/dist/core/builders/process/checker.cjs +2 -1
  14. package/dist/core/builders/process/checker.d.ts +4 -2
  15. package/dist/core/builders/process/checker.mjs +2 -1
  16. package/dist/core/builders/process/cut.cjs +2 -1
  17. package/dist/core/builders/process/cut.d.ts +3 -1
  18. package/dist/core/builders/process/cut.mjs +2 -1
  19. package/dist/core/builders/process/extract.cjs +2 -1
  20. package/dist/core/builders/process/extract.d.ts +3 -1
  21. package/dist/core/builders/process/extract.mjs +2 -1
  22. package/dist/core/builders/process/index.cjs +1 -1
  23. package/dist/core/builders/process/index.d.ts +1 -1
  24. package/dist/core/builders/process/index.mjs +1 -1
  25. package/dist/core/builders/process/presetChecker.cjs +2 -1
  26. package/dist/core/builders/process/presetChecker.d.ts +3 -1
  27. package/dist/core/builders/process/presetChecker.mjs +2 -1
  28. package/dist/core/builders/process/process.cjs +2 -1
  29. package/dist/core/builders/process/process.d.ts +4 -2
  30. package/dist/core/builders/process/process.mjs +2 -1
  31. package/dist/core/builders/route/builder.cjs +1 -0
  32. package/dist/core/builders/route/builder.d.ts +4 -1
  33. package/dist/core/builders/route/builder.mjs +1 -0
  34. package/dist/core/builders/route/checker.cjs +2 -1
  35. package/dist/core/builders/route/checker.d.ts +4 -2
  36. package/dist/core/builders/route/checker.mjs +2 -1
  37. package/dist/core/builders/route/cut.cjs +2 -1
  38. package/dist/core/builders/route/cut.d.ts +3 -1
  39. package/dist/core/builders/route/cut.mjs +2 -1
  40. package/dist/core/builders/route/extract.cjs +2 -1
  41. package/dist/core/builders/route/extract.d.ts +3 -1
  42. package/dist/core/builders/route/extract.mjs +2 -1
  43. package/dist/core/builders/route/handler.cjs +9 -2
  44. package/dist/core/builders/route/handler.d.ts +3 -1
  45. package/dist/core/builders/route/handler.mjs +9 -2
  46. package/dist/core/builders/route/presetChecker.cjs +2 -1
  47. package/dist/core/builders/route/presetChecker.d.ts +3 -1
  48. package/dist/core/builders/route/presetChecker.mjs +2 -1
  49. package/dist/core/builders/route/process.cjs +2 -1
  50. package/dist/core/builders/route/process.d.ts +4 -2
  51. package/dist/core/builders/route/process.mjs +2 -1
  52. package/dist/core/hub/defaultNotfoundHandler.cjs +1 -0
  53. package/dist/core/hub/defaultNotfoundHandler.d.ts +1 -0
  54. package/dist/core/hub/defaultNotfoundHandler.mjs +1 -0
  55. package/dist/core/hub/index.cjs +1 -0
  56. package/dist/core/hub/index.mjs +1 -0
  57. package/dist/core/index.cjs +6 -0
  58. package/dist/core/index.d.ts +1 -0
  59. package/dist/core/index.mjs +3 -0
  60. package/dist/core/metadata/base.cjs +20 -0
  61. package/dist/core/metadata/base.d.ts +14 -0
  62. package/dist/core/metadata/base.mjs +17 -0
  63. package/dist/core/metadata/ignoreByRouteStore.cjs +7 -0
  64. package/dist/core/metadata/ignoreByRouteStore.d.ts +1 -0
  65. package/dist/core/metadata/ignoreByRouteStore.mjs +5 -0
  66. package/dist/core/metadata/index.cjs +10 -0
  67. package/dist/core/metadata/index.d.ts +2 -0
  68. package/dist/core/metadata/index.mjs +2 -0
  69. package/dist/core/process/index.d.ts +3 -1
  70. package/dist/core/route/index.d.ts +2 -0
  71. package/dist/core/router/index.cjs +1 -0
  72. package/dist/core/router/index.mjs +1 -0
  73. package/dist/core/steps/checker.d.ts +2 -0
  74. package/dist/core/steps/cut.d.ts +2 -0
  75. package/dist/core/steps/extract.d.ts +2 -0
  76. package/dist/core/steps/handler.d.ts +2 -0
  77. package/dist/core/steps/presetChecker.d.ts +2 -0
  78. package/dist/core/steps/process.d.ts +2 -0
  79. package/dist/plugins/codeGenerator/{stepsToDataParser.cjs → aggregateStepContract.cjs} +8 -5
  80. package/dist/plugins/codeGenerator/{stepsToDataParser.d.ts → aggregateStepContract.d.ts} +1 -1
  81. package/dist/plugins/codeGenerator/{stepsToDataParser.mjs → aggregateStepContract.mjs} +9 -6
  82. package/dist/plugins/codeGenerator/index.cjs +4 -2
  83. package/dist/plugins/codeGenerator/index.d.ts +2 -1
  84. package/dist/plugins/codeGenerator/index.mjs +2 -1
  85. package/dist/plugins/codeGenerator/metadata.cjs +8 -0
  86. package/dist/plugins/codeGenerator/metadata.d.ts +1 -0
  87. package/dist/plugins/codeGenerator/metadata.mjs +6 -0
  88. package/dist/plugins/codeGenerator/routeToDataParser.cjs +7 -2
  89. package/dist/plugins/codeGenerator/routeToDataParser.mjs +8 -3
  90. package/dist/plugins/openApiGenerator/aggregateStepContract.cjs +6 -3
  91. package/dist/plugins/openApiGenerator/aggregateStepContract.mjs +7 -4
  92. package/dist/plugins/openApiGenerator/index.cjs +2 -0
  93. package/dist/plugins/openApiGenerator/index.d.ts +1 -0
  94. package/dist/plugins/openApiGenerator/index.mjs +1 -0
  95. package/dist/plugins/openApiGenerator/makeOpenApiRoute.d.ts +2 -0
  96. package/dist/plugins/openApiGenerator/metadata.cjs +8 -0
  97. package/dist/plugins/openApiGenerator/metadata.d.ts +1 -0
  98. package/dist/plugins/openApiGenerator/metadata.mjs +6 -0
  99. package/dist/plugins/openApiGenerator/routeToOpenApi.cjs +5 -0
  100. package/dist/plugins/openApiGenerator/routeToOpenApi.mjs +6 -1
  101. package/package.json +1 -1
  102. /package/dist/core/builders/process/{export.cjs → exports.cjs} +0 -0
  103. /package/dist/core/builders/process/{export.d.ts → exports.d.ts} +0 -0
  104. /package/dist/core/builders/process/{export.mjs → exports.mjs} +0 -0
@@ -4,13 +4,14 @@ require('../../steps/index.cjs');
4
4
  var builder = require('./builder.cjs');
5
5
  var cut = require('../../steps/cut.cjs');
6
6
 
7
- builder.routeBuilderHandler.set("cut", ({ args: [responseContract, theFunction], accumulator, next, }) => next({
7
+ builder.routeBuilderHandler.set("cut", ({ args: [responseContract, theFunction, ...metadata], accumulator, next, }) => next({
8
8
  ...accumulator,
9
9
  steps: [
10
10
  ...accumulator.steps,
11
11
  cut.createCutStep({
12
12
  responseContract,
13
13
  theFunction,
14
+ metadata,
14
15
  }),
15
16
  ],
16
17
  }));
@@ -4,14 +4,16 @@ import { type RouteDefinition } from "../../route";
4
4
  import { type CutStepFunctionOutput, type CutStep, type CutStepFunctionParams } from "../../steps";
5
5
  import { type Unwrap, type O, type MaybePromise, type IsEqual, type A } from "@duplojs/utils";
6
6
  import { type Request } from "../../request";
7
+ import { type Metadata } from "../../metadata";
7
8
  declare module "./builder" {
8
9
  interface RouteBuilder<GenericDefinition extends RouteDefinition = RouteDefinition, GenericFloor extends Floor = {}, GenericRequest extends Request = Request> {
9
- cut<const GenericResponseContract extends (ResponseContract.Contract | readonly ResponseContract.Contract[]), GenericResponse extends ResponseContract.Convert<A.ArrayCoalescing<GenericResponseContract>[number]>, GenericOutput extends CutStepFunctionOutput | GenericResponse>(responseContract: GenericResponseContract, theFunction: (floor: GenericFloor, param: CutStepFunctionParams<GenericRequest, GenericResponse>) => MaybePromise<GenericOutput>): RouteBuilder<O.AssignObjects<GenericDefinition, {
10
+ cut<const GenericResponseContract extends (ResponseContract.Contract | readonly ResponseContract.Contract[]), GenericResponse extends ResponseContract.Convert<A.ArrayCoalescing<GenericResponseContract>[number]>, GenericOutput extends CutStepFunctionOutput | GenericResponse, const GenericMetadata extends readonly Metadata[] = readonly []>(responseContract: GenericResponseContract, theFunction: (floor: GenericFloor, params: CutStepFunctionParams<GenericRequest, GenericResponse>) => MaybePromise<GenericOutput>, ...metadata: GenericMetadata): RouteBuilder<O.AssignObjects<GenericDefinition, {
10
11
  readonly steps: readonly [
11
12
  ...GenericDefinition["steps"],
12
13
  CutStep<{
13
14
  readonly responseContract: GenericResponseContract;
14
15
  theFunction(floor: GenericFloor, param: CutStepFunctionParams<GenericRequest, GenericResponse>): MaybePromise<GenericOutput>;
16
+ readonly metadata: GenericMetadata;
15
17
  }>
16
18
  ];
17
19
  }>, IsEqual<Extract<GenericOutput, CutStepFunctionOutput>, never> extends true ? GenericFloor : (GenericOutput extends infer InferredOutputData extends CutStepFunctionOutput ? O.AssignObjects<GenericFloor, Unwrap<InferredOutputData>> : never), GenericRequest>;
@@ -2,13 +2,14 @@ import '../../steps/index.mjs';
2
2
  import { routeBuilderHandler } from './builder.mjs';
3
3
  import { createCutStep } from '../../steps/cut.mjs';
4
4
 
5
- routeBuilderHandler.set("cut", ({ args: [responseContract, theFunction], accumulator, next, }) => next({
5
+ routeBuilderHandler.set("cut", ({ args: [responseContract, theFunction, ...metadata], accumulator, next, }) => next({
6
6
  ...accumulator,
7
7
  steps: [
8
8
  ...accumulator.steps,
9
9
  createCutStep({
10
10
  responseContract,
11
11
  theFunction,
12
+ metadata,
12
13
  }),
13
14
  ],
14
15
  }));
@@ -4,13 +4,14 @@ require('../../steps/index.cjs');
4
4
  var builder = require('./builder.cjs');
5
5
  var extract = require('../../steps/extract.cjs');
6
6
 
7
- builder.routeBuilderHandler.set("extract", ({ args: [shape, responseContract], accumulator, next, }) => next({
7
+ builder.routeBuilderHandler.set("extract", ({ args: [shape, responseContract, ...metadata], accumulator, next, }) => next({
8
8
  ...accumulator,
9
9
  steps: [
10
10
  ...accumulator.steps,
11
11
  extract.createExtractStep({
12
12
  shape,
13
13
  responseContract,
14
+ metadata,
14
15
  }),
15
16
  ],
16
17
  }));
@@ -4,14 +4,16 @@ import { type ExtractShape, type ExtractStep } from "../../steps";
4
4
  import { type DP, type ObjectEntry, type O, type SimplifyTopLevel, type NeverCoalescing } from "@duplojs/utils";
5
5
  import { type ClientErrorResponseCode, type ResponseContract } from "../../response";
6
6
  import { type Request } from "../../request";
7
+ import { type Metadata } from "../../metadata";
7
8
  declare module "./builder" {
8
9
  interface RouteBuilder<GenericDefinition extends RouteDefinition = RouteDefinition, GenericFloor extends Floor = {}, GenericRequest extends Request = Request> {
9
- extract<GenericShape extends ExtractShape<GenericRequest>, GenericResponseContract extends (ResponseContract.Contract<ClientErrorResponseCode, string, DP.DataParserEmpty>) = never>(shape: GenericShape, responseContract?: GenericResponseContract): RouteBuilder<O.AssignObjects<GenericDefinition, {
10
+ extract<GenericShape extends ExtractShape<GenericRequest>, GenericResponseContract extends (ResponseContract.Contract<ClientErrorResponseCode, string, DP.DataParserEmpty> | undefined) = never, const GenericMetadata extends readonly Metadata[] = readonly []>(shape: GenericShape, responseContract?: GenericResponseContract, ...metadata: GenericMetadata): RouteBuilder<O.AssignObjects<GenericDefinition, {
10
11
  readonly steps: readonly [
11
12
  ...GenericDefinition["steps"],
12
13
  ExtractStep<{
13
14
  readonly shape: GenericShape;
14
15
  readonly responseContract: NeverCoalescing<GenericResponseContract, undefined>;
16
+ readonly metadata: GenericMetadata;
15
17
  }>
16
18
  ];
17
19
  }>, O.AssignObjects<GenericFloor, {
@@ -2,13 +2,14 @@ import '../../steps/index.mjs';
2
2
  import { routeBuilderHandler } from './builder.mjs';
3
3
  import { createExtractStep } from '../../steps/extract.mjs';
4
4
 
5
- routeBuilderHandler.set("extract", ({ args: [shape, responseContract], accumulator, next, }) => next({
5
+ routeBuilderHandler.set("extract", ({ args: [shape, responseContract, ...metadata], accumulator, next, }) => next({
6
6
  ...accumulator,
7
7
  steps: [
8
8
  ...accumulator.steps,
9
9
  createExtractStep({
10
10
  shape,
11
11
  responseContract,
12
+ metadata,
12
13
  }),
13
14
  ],
14
15
  }));
@@ -2,11 +2,14 @@
2
2
 
3
3
  var index = require('../../route/index.cjs');
4
4
  require('../../steps/index.cjs');
5
+ var utils = require('@duplojs/utils');
5
6
  var builder = require('./builder.cjs');
6
7
  var store = require('./store.cjs');
8
+ require('../../metadata/index.cjs');
7
9
  var handler = require('../../steps/handler.cjs');
10
+ var ignoreByRouteStore = require('../../metadata/ignoreByRouteStore.cjs');
8
11
 
9
- builder.routeBuilderHandler.set("handler", ({ args: [responseContract, theFunction], accumulator, }) => {
12
+ builder.routeBuilderHandler.set("handler", ({ args: [responseContract, theFunction, ...metadata], accumulator, }) => {
10
13
  const route = index.createRoute({
11
14
  ...accumulator,
12
15
  steps: [
@@ -14,9 +17,13 @@ builder.routeBuilderHandler.set("handler", ({ args: [responseContract, theFuncti
14
17
  handler.createHandlerStep({
15
18
  responseContract,
16
19
  theFunction,
20
+ metadata,
17
21
  }),
18
22
  ],
19
23
  });
20
- store.routeStore.add(route);
24
+ const ignoreByRouteStoreMetadata = utils.A.find(accumulator.metadata, ignoreByRouteStore.IgnoreByRouteStoreMetadata.is);
25
+ if (ignoreByRouteStoreMetadata === undefined) {
26
+ store.routeStore.add(route);
27
+ }
21
28
  return route;
22
29
  });
@@ -4,14 +4,16 @@ import { type Route, type RouteDefinition } from "../../route";
4
4
  import { type HandlerStep, type HandlerStepFunctionParams } from "../../steps";
5
5
  import { type MaybePromise, type AnyTuple, type O } from "@duplojs/utils";
6
6
  import { type Request } from "../../request";
7
+ import { type Metadata } from "../../metadata";
7
8
  declare module "./builder" {
8
9
  interface RouteBuilder<GenericDefinition extends RouteDefinition = RouteDefinition, GenericFloor extends Floor = {}, GenericRequest extends Request = Request> {
9
- handler<GenericResponseContract extends (ResponseContract.Contract | readonly [ResponseContract.Contract, ...ResponseContract.Contract[]]), GenericResponse extends ResponseContract.Convert<GenericResponseContract extends AnyTuple ? GenericResponseContract[number] : GenericResponseContract>>(responseContract: GenericResponseContract, theFunction: (floor: GenericFloor, param: HandlerStepFunctionParams<GenericRequest, GenericResponse>) => MaybePromise<GenericResponse>): Route<O.AssignObjects<GenericDefinition, {
10
+ handler<GenericResponseContract extends (ResponseContract.Contract | readonly [ResponseContract.Contract, ...ResponseContract.Contract[]]), GenericResponse extends ResponseContract.Convert<GenericResponseContract extends AnyTuple ? GenericResponseContract[number] : GenericResponseContract>, const GenericMetadata extends readonly Metadata[] = readonly []>(responseContract: GenericResponseContract, theFunction: (floor: GenericFloor, param: HandlerStepFunctionParams<GenericRequest, GenericResponse>) => MaybePromise<GenericResponse>, ...metadata: GenericMetadata): Route<O.AssignObjects<GenericDefinition, {
10
11
  readonly steps: readonly [
11
12
  ...GenericDefinition["steps"],
12
13
  HandlerStep<{
13
14
  readonly responseContract: GenericResponseContract;
14
15
  theFunction(floor: GenericFloor, param: HandlerStepFunctionParams<GenericRequest, GenericResponse>): MaybePromise<GenericResponse>;
16
+ readonly metadata: GenericMetadata;
15
17
  }>
16
18
  ];
17
19
  }>>;
@@ -1,10 +1,13 @@
1
1
  import { createRoute } from '../../route/index.mjs';
2
2
  import '../../steps/index.mjs';
3
+ import { A } from '@duplojs/utils';
3
4
  import { routeBuilderHandler } from './builder.mjs';
4
5
  import { routeStore } from './store.mjs';
6
+ import '../../metadata/index.mjs';
5
7
  import { createHandlerStep } from '../../steps/handler.mjs';
8
+ import { IgnoreByRouteStoreMetadata } from '../../metadata/ignoreByRouteStore.mjs';
6
9
 
7
- routeBuilderHandler.set("handler", ({ args: [responseContract, theFunction], accumulator, }) => {
10
+ routeBuilderHandler.set("handler", ({ args: [responseContract, theFunction, ...metadata], accumulator, }) => {
8
11
  const route = createRoute({
9
12
  ...accumulator,
10
13
  steps: [
@@ -12,9 +15,13 @@ routeBuilderHandler.set("handler", ({ args: [responseContract, theFunction], acc
12
15
  createHandlerStep({
13
16
  responseContract,
14
17
  theFunction,
18
+ metadata,
15
19
  }),
16
20
  ],
17
21
  });
18
- routeStore.add(route);
22
+ const ignoreByRouteStoreMetadata = A.find(accumulator.metadata, IgnoreByRouteStoreMetadata.is);
23
+ if (ignoreByRouteStoreMetadata === undefined) {
24
+ routeStore.add(route);
25
+ }
19
26
  return route;
20
27
  });
@@ -4,13 +4,14 @@ require('../../steps/index.cjs');
4
4
  var builder = require('./builder.cjs');
5
5
  var presetChecker = require('../../steps/presetChecker.cjs');
6
6
 
7
- builder.routeBuilderHandler.set("presetCheck", ({ args: [presetChecker$1, input,], accumulator, next, }) => next({
7
+ builder.routeBuilderHandler.set("presetCheck", ({ args: [presetChecker$1, input, ...metadata], accumulator, next, }) => next({
8
8
  ...accumulator,
9
9
  steps: [
10
10
  ...accumulator.steps,
11
11
  presetChecker.createPresetCheckerStep({
12
12
  presetChecker: presetChecker$1,
13
13
  input,
14
+ metadata,
14
15
  }),
15
16
  ],
16
17
  }));
@@ -4,14 +4,16 @@ import { type PresetCheckerStep } from "../../steps";
4
4
  import { type O, type A } from "@duplojs/utils";
5
5
  import { type Request } from "../../request";
6
6
  import { type GetPresetCheckerIndex, type GetPresetCheckerInformation, type GetPresetCheckerResult, type GetPresetCheckerInput, type PresetChecker } from "../../presetChecker";
7
+ import { type Metadata } from "../../metadata";
7
8
  declare module "./builder" {
8
9
  interface RouteBuilder<GenericDefinition extends RouteDefinition = RouteDefinition, GenericFloor extends Floor = {}, GenericRequest extends Request = Request> {
9
- presetCheck<GenericPresetChecker extends PresetChecker, GenericInput extends GetPresetCheckerInput<GenericPresetChecker>>(presetChecker: GenericPresetChecker, input: (floor: GenericFloor) => GenericInput): RouteBuilder<O.AssignObjects<GenericDefinition, {
10
+ presetCheck<GenericPresetChecker extends PresetChecker, GenericInput extends GetPresetCheckerInput<GenericPresetChecker>, const GenericMetadata extends readonly Metadata[] = readonly []>(presetChecker: GenericPresetChecker, input: (floor: GenericFloor) => GenericInput, ...metadata: GenericMetadata): RouteBuilder<O.AssignObjects<GenericDefinition, {
10
11
  readonly steps: readonly [
11
12
  ...GenericDefinition["steps"],
12
13
  PresetCheckerStep<{
13
14
  readonly presetChecker: GenericPresetChecker;
14
15
  input(floor: GenericFloor): GenericInput;
16
+ readonly metadata: GenericMetadata;
15
17
  }>
16
18
  ];
17
19
  }>, O.AssignObjects<GenericFloor, {
@@ -2,13 +2,14 @@ import '../../steps/index.mjs';
2
2
  import { routeBuilderHandler } from './builder.mjs';
3
3
  import { createPresetCheckerStep } from '../../steps/presetChecker.mjs';
4
4
 
5
- routeBuilderHandler.set("presetCheck", ({ args: [presetChecker, input,], accumulator, next, }) => next({
5
+ routeBuilderHandler.set("presetCheck", ({ args: [presetChecker, input, ...metadata], accumulator, next, }) => next({
6
6
  ...accumulator,
7
7
  steps: [
8
8
  ...accumulator.steps,
9
9
  createPresetCheckerStep({
10
10
  presetChecker,
11
11
  input,
12
+ metadata,
12
13
  }),
13
14
  ],
14
15
  }));
@@ -4,13 +4,14 @@ require('../../steps/index.cjs');
4
4
  var builder = require('./builder.cjs');
5
5
  var process = require('../../steps/process.cjs');
6
6
 
7
- builder.routeBuilderHandler.set("exec", ({ args: [process$1, params,], accumulator, next, }) => next({
7
+ builder.routeBuilderHandler.set("exec", ({ args: [process$1, params, ...metadata], accumulator, next, }) => next({
8
8
  ...accumulator,
9
9
  steps: [
10
10
  ...accumulator.steps,
11
11
  process.createProcessStep({
12
12
  ...params,
13
13
  process: process$1,
14
+ metadata,
14
15
  }),
15
16
  ],
16
17
  }));
@@ -4,18 +4,20 @@ import { type ProcessStep } from "../../steps";
4
4
  import { type O, type NeverCoalescing, type FixDeepFunctionInfer, type Adaptor, type AnyFunction } from "@duplojs/utils";
5
5
  import { type GetProcessRequest, type GetProcessExportValue, type Process } from "../../process";
6
6
  import { type Request } from "../../request";
7
+ import { type Metadata } from "../../metadata";
7
8
  declare module "./builder" {
8
9
  interface RouteBuilder<GenericDefinition extends RouteDefinition = RouteDefinition, GenericFloor extends Floor = {}, GenericRequest extends Request = Request> {
9
- exec<GenericProcess extends Process, GenericProcessExportValue extends GetProcessExportValue<GenericProcess>, const GenericImportation extends readonly Extract<keyof GenericProcessExportValue, string>[] = never, GenericOptions extends (GenericProcess["definition"]["options"] | ((floor: GenericFloor) => Exclude<GenericProcess["definition"]["options"], undefined>)) = never>(process: GenericProcess, params?: {
10
+ exec<GenericProcess extends Process, GenericProcessExportValue extends GetProcessExportValue<GenericProcess>, const GenericImportation extends readonly Extract<keyof GenericProcessExportValue, string>[] = never, GenericOptions extends (GenericProcess["definition"]["options"] | ((floor: GenericFloor) => Exclude<GenericProcess["definition"]["options"], undefined>)) = never, const GenericMetadata extends readonly Metadata[] = readonly []>(process: GenericProcess, params?: {
10
11
  readonly imports?: GenericImportation;
11
12
  readonly options?: FixDeepFunctionInfer<GenericProcess["definition"]["options"] | ((floor: GenericFloor) => GenericProcess["definition"]["options"]), GenericOptions>;
12
- }): RouteBuilder<O.AssignObjects<GenericDefinition, {
13
+ }, ...metadata: GenericMetadata): RouteBuilder<O.AssignObjects<GenericDefinition, {
13
14
  readonly steps: readonly [
14
15
  ...GenericDefinition["steps"],
15
16
  ProcessStep<{
16
17
  readonly process: GenericProcess;
17
18
  readonly options: NeverCoalescing<Adaptor<GenericOptions, AnyFunction | GenericProcess["definition"]["options"]>, undefined>;
18
19
  readonly imports: NeverCoalescing<GenericImportation, undefined>;
20
+ readonly metadata: GenericMetadata;
19
21
  }>
20
22
  ];
21
23
  }>, O.AssignObjects<GenericFloor, Pick<GenericProcessExportValue, GenericImportation[number]>>, GenericRequest & NeverCoalescing<GetProcessRequest<GenericProcess>, Request>>;
@@ -2,13 +2,14 @@ import '../../steps/index.mjs';
2
2
  import { routeBuilderHandler } from './builder.mjs';
3
3
  import { createProcessStep } from '../../steps/process.mjs';
4
4
 
5
- routeBuilderHandler.set("exec", ({ args: [process, params,], accumulator, next, }) => next({
5
+ routeBuilderHandler.set("exec", ({ args: [process, params, ...metadata], accumulator, next, }) => next({
6
6
  ...accumulator,
7
7
  steps: [
8
8
  ...accumulator.steps,
9
9
  createProcessStep({
10
10
  ...params,
11
11
  process,
12
+ metadata,
12
13
  }),
13
14
  ],
14
15
  }));
@@ -9,6 +9,7 @@ var contract = require('../response/contract.cjs');
9
9
  const defaultNotfoundHandler = handler.createHandlerStep({
10
10
  responseContract: contract.ResponseContract.notFound("notfound-route", utils.DP.string()),
11
11
  theFunction: (floor, { request, response }) => response("notfound-route", `${request.method}:${request.path}`),
12
+ metadata: [],
12
13
  });
13
14
 
14
15
  exports.defaultNotfoundHandler = defaultNotfoundHandler;
@@ -7,4 +7,5 @@ export declare const defaultNotfoundHandler: import("../steps").HandlerStep<{
7
7
  readonly checkers: readonly [];
8
8
  }>>>;
9
9
  theFunction: (floor: import("..").Floor, { request, response }: import("../steps").HandlerStepFunctionParams<import("..").Request, import("../response").PredictedResponse<import("../response").ResponseCode, string, unknown>>) => never;
10
+ metadata: never[];
10
11
  }>;
@@ -7,6 +7,7 @@ import { ResponseContract } from '../response/contract.mjs';
7
7
  const defaultNotfoundHandler = createHandlerStep({
8
8
  responseContract: ResponseContract.notFound("notfound-route", DP.string()),
9
9
  theFunction: (floor, { request, response }) => response("notfound-route", `${request.method}:${request.path}`),
10
+ metadata: [],
10
11
  });
11
12
 
12
13
  export { defaultNotfoundHandler };
@@ -74,6 +74,7 @@ function createHub(config) {
74
74
  notfoundHandler: handler.createHandlerStep({
75
75
  responseContract,
76
76
  theFunction: (floor, params) => theFunction(params),
77
+ metadata: [],
77
78
  }),
78
79
  };
79
80
  },
@@ -72,6 +72,7 @@ function createHub(config) {
72
72
  notfoundHandler: createHandlerStep({
73
73
  responseContract,
74
74
  theFunction: (floor, params) => theFunction(params),
75
+ metadata: [],
75
76
  }),
76
77
  };
77
78
  },
@@ -15,6 +15,7 @@ var index$2 = require('./hub/index.cjs');
15
15
  require('./functionsBuilders/index.cjs');
16
16
  var index$3 = require('./router/index.cjs');
17
17
  var stringIdentifier = require('./stringIdentifier.cjs');
18
+ require('./metadata/index.cjs');
18
19
  var checker = require('./builders/checker.cjs');
19
20
  var builder = require('./builders/route/builder.cjs');
20
21
  var store = require('./builders/route/store.cjs');
@@ -50,6 +51,8 @@ var build$1 = require('./functionsBuilders/steps/build.cjs');
50
51
  var pathToRegExp = require('./router/pathToRegExp.cjs');
51
52
  var buildError = require('./router/buildError.cjs');
52
53
  var decodeUrl = require('./router/decodeUrl.cjs');
54
+ var base$1 = require('./metadata/base.cjs');
55
+ var ignoreByRouteStore = require('./metadata/ignoreByRouteStore.cjs');
53
56
 
54
57
 
55
58
 
@@ -133,3 +136,6 @@ exports.RouterBuildError = buildError.RouterBuildError;
133
136
  exports.decodeUrl = decodeUrl.decodeUrl;
134
137
  exports.regexQueryAnalyser = decodeUrl.regexQueryAnalyser;
135
138
  exports.regexUrlAnalyser = decodeUrl.regexUrlAnalyser;
139
+ exports.createMetadata = base$1.createMetadata;
140
+ exports.metadataKind = base$1.metadataKind;
141
+ exports.IgnoreByRouteStoreMetadata = ignoreByRouteStore.IgnoreByRouteStoreMetadata;
@@ -13,3 +13,4 @@ export * from "./hub";
13
13
  export * from "./functionsBuilders";
14
14
  export * from "./router";
15
15
  export * from "./stringIdentifier";
16
+ export * from "./metadata";
@@ -13,6 +13,7 @@ export { createHub, hubKind } from './hub/index.mjs';
13
13
  import './functionsBuilders/index.mjs';
14
14
  export { buildRouter } from './router/index.mjs';
15
15
  export { createCoreLibStringIdentifier } from './stringIdentifier.mjs';
16
+ import './metadata/index.mjs';
16
17
  export { checkerBuilder, useCheckerBuilder } from './builders/checker.mjs';
17
18
  export { routeBuilderHandler, useRouteBuilder } from './builders/route/builder.mjs';
18
19
  export { routeStore } from './builders/route/store.mjs';
@@ -48,3 +49,5 @@ export { buildStepFunction } from './functionsBuilders/steps/build.mjs';
48
49
  export { pathToRegExp } from './router/pathToRegExp.mjs';
49
50
  export { RouterBuildError } from './router/buildError.mjs';
50
51
  export { decodeUrl, regexQueryAnalyser, regexUrlAnalyser } from './router/decodeUrl.mjs';
52
+ export { createMetadata, metadataKind } from './metadata/base.mjs';
53
+ export { IgnoreByRouteStoreMetadata } from './metadata/ignoreByRouteStore.mjs';
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var kind = require('../kind.cjs');
4
+ var utils = require('@duplojs/utils');
5
+
6
+ const metadataKind = kind.createCoreLibKind("metadata");
7
+ function createMetadata(name) {
8
+ function metadataHandler(value) {
9
+ return metadataKind.setTo(utils.wrapValue(value), name);
10
+ }
11
+ metadataHandler.dataName = name;
12
+ metadataHandler.is = function (input) {
13
+ return metadataKind.has(input)
14
+ && metadataKind.getValue(input) === name;
15
+ };
16
+ return metadataHandler;
17
+ }
18
+
19
+ exports.createMetadata = createMetadata;
20
+ exports.metadataKind = metadataKind;
@@ -0,0 +1,14 @@
1
+ import { type WrappedValue, type Kind, type IsEqual, type Or, type IsExtends } from "@duplojs/utils";
2
+ export declare const metadataKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/metadata", string>>;
3
+ export interface Metadata<GenericName extends string = string, GenericValue extends unknown = unknown> extends Kind<typeof metadataKind.definition, GenericName>, WrappedValue<GenericValue> {
4
+ }
5
+ export interface MetadataHandler<GenericName extends string, GenericValue extends unknown> {
6
+ dataName: GenericName;
7
+ <GenericMetadataValue extends GenericValue>(...args: Or<[
8
+ IsEqual<GenericValue, unknown>,
9
+ IsEqual<GenericValue, never>,
10
+ IsExtends<undefined, GenericValue>
11
+ ]> extends true ? [value?: GenericMetadataValue] : [value: GenericMetadataValue]): Metadata<GenericName, GenericMetadataValue>;
12
+ is(input: unknown): input is Metadata<GenericName, any>;
13
+ }
14
+ export declare function createMetadata<GenericName extends string, GenericValue extends unknown = unknown>(name: GenericName): MetadataHandler<GenericName, GenericValue>;
@@ -0,0 +1,17 @@
1
+ import { createCoreLibKind } from '../kind.mjs';
2
+ import { wrapValue } from '@duplojs/utils';
3
+
4
+ const metadataKind = createCoreLibKind("metadata");
5
+ function createMetadata(name) {
6
+ function metadataHandler(value) {
7
+ return metadataKind.setTo(wrapValue(value), name);
8
+ }
9
+ metadataHandler.dataName = name;
10
+ metadataHandler.is = function (input) {
11
+ return metadataKind.has(input)
12
+ && metadataKind.getValue(input) === name;
13
+ };
14
+ return metadataHandler;
15
+ }
16
+
17
+ export { createMetadata, metadataKind };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var base = require('./base.cjs');
4
+
5
+ const IgnoreByRouteStoreMetadata = base.createMetadata("ignore-by-route-store");
6
+
7
+ exports.IgnoreByRouteStoreMetadata = IgnoreByRouteStoreMetadata;
@@ -0,0 +1 @@
1
+ export declare const IgnoreByRouteStoreMetadata: import("./base").MetadataHandler<"ignore-by-route-store", unknown>;
@@ -0,0 +1,5 @@
1
+ import { createMetadata } from './base.mjs';
2
+
3
+ const IgnoreByRouteStoreMetadata = createMetadata("ignore-by-route-store");
4
+
5
+ export { IgnoreByRouteStoreMetadata };
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var base = require('./base.cjs');
4
+ var ignoreByRouteStore = require('./ignoreByRouteStore.cjs');
5
+
6
+
7
+
8
+ exports.createMetadata = base.createMetadata;
9
+ exports.metadataKind = base.metadataKind;
10
+ exports.IgnoreByRouteStoreMetadata = ignoreByRouteStore.IgnoreByRouteStoreMetadata;
@@ -0,0 +1,2 @@
1
+ export * from "./base";
2
+ export * from "./ignoreByRouteStore";
@@ -0,0 +1,2 @@
1
+ export { createMetadata, metadataKind } from './base.mjs';
2
+ export { IgnoreByRouteStoreMetadata } from './ignoreByRouteStore.mjs';
@@ -3,6 +3,7 @@ import { type ProcessStep, type CheckerStep, type CutStep, type ExtractStep, typ
3
3
  import { type Floor } from "../floor";
4
4
  import { type HookRouteLifeCycle } from "../route";
5
5
  import { type Request } from "../request";
6
+ import { type Metadata } from "../metadata";
6
7
  export * from "./types";
7
8
  export interface ProcessStepsCustom {
8
9
  }
@@ -13,6 +14,7 @@ export interface ProcessDefinition {
13
14
  steps: readonly ProcessSteps[];
14
15
  options?: Record<string, unknown>;
15
16
  readonly hooks: readonly HookRouteLifeCycle[];
17
+ readonly metadata: readonly Metadata[];
16
18
  [SymbolProcessExportValue]?: Floor;
17
19
  [SymbolProcessRequest]?: Request;
18
20
  }
@@ -28,4 +30,4 @@ export declare const processKind: import("@duplojs/utils").KindHandler<import("@
28
30
  export interface Process<GenericDefinition extends ProcessDefinition = ProcessDefinition> extends Kind<typeof processKind.definition> {
29
31
  definition: GenericDefinition;
30
32
  }
31
- export declare function createProcess<GenericDefinition extends Pick<ProcessDefinition, "steps" | "options" | "hooks">>(definition: GenericDefinition): Process<GenericDefinition>;
33
+ export declare function createProcess<GenericDefinition extends Pick<ProcessDefinition, "steps" | "options" | "hooks" | "metadata">>(definition: GenericDefinition): Process<GenericDefinition>;
@@ -2,6 +2,7 @@ import { type O, type Kind } from "@duplojs/utils";
2
2
  import { type RequestMethods } from "../request";
3
3
  import { type ExtractStep, type CheckerStep, type CutStep, type HandlerStep, type ProcessStep, type stepKind, type PresetCheckerStep } from "../steps";
4
4
  import { type HookRouteLifeCycle } from "./hooks";
5
+ import { type Metadata } from "../metadata";
5
6
  export * from "./types";
6
7
  export * from "./hooks";
7
8
  export interface RouteStepsCustom {
@@ -17,6 +18,7 @@ export interface RouteDefinition {
17
18
  readonly preflightSteps: readonly RoutePreFlightSteps[];
18
19
  readonly steps: readonly RouteSteps[];
19
20
  readonly hooks: readonly HookRouteLifeCycle[];
21
+ readonly metadata: readonly Metadata[];
20
22
  }
21
23
  export declare const routeKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/route", unknown>>;
22
24
  export interface Route<GenericDefinition extends RouteDefinition = RouteDefinition> extends Kind<typeof routeKind.definition> {
@@ -58,6 +58,7 @@ async function buildRouter(inputHub) {
58
58
  hooks: [],
59
59
  preflightSteps: [],
60
60
  steps: [hub.notfoundHandler],
61
+ metadata: [],
61
62
  }), async (route) => {
62
63
  const result = await build.buildRouteFunction(route, buildParams);
63
64
  return utils.E.whenIsLeft(result, (element) => {
@@ -57,6 +57,7 @@ async function buildRouter(inputHub) {
57
57
  hooks: [],
58
58
  preflightSteps: [],
59
59
  steps: [hub.notfoundHandler],
60
+ metadata: [],
60
61
  }), async (route) => {
61
62
  const result = await buildRouteFunction(route, buildParams);
62
63
  return E.whenIsLeft(result, (element) => {
@@ -3,6 +3,7 @@ import { type StepKind } from "./kind";
3
3
  import { type Checker } from "../checker";
4
4
  import { type Floor } from "../floor";
5
5
  import { type ClientErrorResponseCode, type ResponseContract } from "../response";
6
+ import { type Metadata } from "../metadata";
6
7
  export interface CheckerStepDefinition {
7
8
  readonly checker: Checker;
8
9
  readonly result: string | readonly string[];
@@ -10,6 +11,7 @@ export interface CheckerStepDefinition {
10
11
  input(input: Floor): unknown;
11
12
  readonly options?: Record<string, unknown> | ((input: any) => Record<string, unknown>);
12
13
  readonly responseContract: ResponseContract.Contract<ClientErrorResponseCode>;
14
+ readonly metadata: readonly Metadata[];
13
15
  }
14
16
  export declare const checkerStepKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/checker-step", unknown>>;
15
17
  export type _CheckerStep = (Kind<typeof checkerStepKind.definition> & StepKind);
@@ -4,6 +4,7 @@ import { type Floor } from "../floor";
4
4
  import { type StepFunctionParams } from "./types";
5
5
  import { type PredictedResponse, type ResponseContract } from "../response";
6
6
  import { type Request } from "../request";
7
+ import { type Metadata } from "../metadata";
7
8
  export declare const cutStepOutputKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/cut-output", unknown>>;
8
9
  export interface CutStepFunctionOutput<GenericData extends Record<string, unknown> = Record<string, unknown>> extends Kind<typeof cutStepOutputKind.definition>, WrappedValue<GenericData> {
9
10
  }
@@ -13,6 +14,7 @@ export interface CutStepFunctionParams<GenericRequest extends Request = Request,
13
14
  export interface CutStepDefinition {
14
15
  theFunction(floor: Floor, params: CutStepFunctionParams): MaybePromise<CutStepFunctionOutput | PredictedResponse>;
15
16
  readonly responseContract: ResponseContract.Contract | readonly ResponseContract.Contract[];
17
+ readonly metadata: readonly Metadata[];
16
18
  }
17
19
  export declare const cutStepKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/cut-step", unknown>>;
18
20
  export type _CutStep = (Kind<typeof cutStepKind.definition> & StepKind);
@@ -2,6 +2,7 @@ import { type DP, type Kind, type O, type AnyFunction } from "@duplojs/utils";
2
2
  import { type StepKind } from "./kind";
3
3
  import { type Request } from "../request";
4
4
  import { type ClientErrorResponseCode, type ResponseContract } from "../response";
5
+ import { type Metadata } from "../metadata";
5
6
  export interface DisabledExtractKeysCustom {
6
7
  }
7
8
  export type DisabledExtractKeys = O.GetPropsWithValue<DisabledExtractKeysCustom, true>;
@@ -9,6 +10,7 @@ export type ExtractShape<GenericRequest extends Request = Request> = Partial<Rec
9
10
  export interface ExtractStepDefinition {
10
11
  readonly shape: ExtractShape;
11
12
  readonly responseContract?: ResponseContract.Contract<ClientErrorResponseCode, string, DP.DataParserEmpty>;
13
+ readonly metadata: readonly Metadata[];
12
14
  }
13
15
  export declare const extractStepKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/extract-step", unknown>>;
14
16
  export type _ExtractStep = (Kind<typeof extractStepKind.definition> & StepKind);
@@ -4,11 +4,13 @@ import { type Floor } from "../floor";
4
4
  import { type PredictedResponse, type ResponseContract } from "../response";
5
5
  import { type Request } from "../request";
6
6
  import { type StepFunctionParams } from "./types";
7
+ import { type Metadata } from "../metadata";
7
8
  export interface HandlerStepFunctionParams<GenericRequest extends Request = Request, GenericResponse extends PredictedResponse = PredictedResponse> extends StepFunctionParams<GenericRequest, GenericResponse> {
8
9
  }
9
10
  export interface HandlerStepDefinition {
10
11
  theFunction(floor: Floor, params: HandlerStepFunctionParams): MaybePromise<PredictedResponse>;
11
12
  readonly responseContract: ResponseContract.Contract | readonly ResponseContract.Contract[];
13
+ readonly metadata: readonly Metadata[];
12
14
  }
13
15
  export declare const handlerStepKind: import("@duplojs/utils").KindHandler<import("@duplojs/utils").KindDefinition<"@DuplojsHttpCore/handler-step", unknown>>;
14
16
  type _HandlerStep = (Kind<typeof handlerStepKind.definition> & StepKind);