@duplojs/http 0.1.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 (238) hide show
  1. package/README.md +2 -0
  2. package/dist/core/builders/checker.cjs +20 -0
  3. package/dist/core/builders/checker.d.ts +17 -0
  4. package/dist/core/builders/checker.mjs +17 -0
  5. package/dist/core/builders/index.d.ts +4 -0
  6. package/dist/core/builders/preflight/builder.cjs +15 -0
  7. package/dist/core/builders/preflight/builder.d.ts +17 -0
  8. package/dist/core/builders/preflight/builder.mjs +12 -0
  9. package/dist/core/builders/preflight/index.d.ts +3 -0
  10. package/dist/core/builders/preflight/process.cjs +22 -0
  11. package/dist/core/builders/preflight/process.d.ts +22 -0
  12. package/dist/core/builders/preflight/process.mjs +20 -0
  13. package/dist/core/builders/preflight/route.cjs +23 -0
  14. package/dist/core/builders/preflight/route.d.ts +21 -0
  15. package/dist/core/builders/preflight/route.mjs +21 -0
  16. package/dist/core/builders/process/builder.cjs +17 -0
  17. package/dist/core/builders/process/builder.d.ts +18 -0
  18. package/dist/core/builders/process/builder.mjs +14 -0
  19. package/dist/core/builders/process/checker.cjs +23 -0
  20. package/dist/core/builders/process/checker.d.ts +34 -0
  21. package/dist/core/builders/process/checker.mjs +21 -0
  22. package/dist/core/builders/process/cut.cjs +22 -0
  23. package/dist/core/builders/process/cut.d.ts +19 -0
  24. package/dist/core/builders/process/cut.mjs +20 -0
  25. package/dist/core/builders/process/export.cjs +6 -0
  26. package/dist/core/builders/process/export.d.ts +12 -0
  27. package/dist/core/builders/process/export.mjs +4 -0
  28. package/dist/core/builders/process/extract.cjs +22 -0
  29. package/dist/core/builders/process/extract.d.ts +25 -0
  30. package/dist/core/builders/process/extract.mjs +20 -0
  31. package/dist/core/builders/process/index.d.ts +7 -0
  32. package/dist/core/builders/process/presetChecker.cjs +22 -0
  33. package/dist/core/builders/process/presetChecker.d.ts +23 -0
  34. package/dist/core/builders/process/presetChecker.mjs +20 -0
  35. package/dist/core/builders/process/process.cjs +22 -0
  36. package/dist/core/builders/process/process.d.ts +22 -0
  37. package/dist/core/builders/process/process.mjs +20 -0
  38. package/dist/core/builders/route/builder.cjs +18 -0
  39. package/dist/core/builders/route/builder.d.ts +16 -0
  40. package/dist/core/builders/route/builder.mjs +15 -0
  41. package/dist/core/builders/route/checker.cjs +23 -0
  42. package/dist/core/builders/route/checker.d.ts +34 -0
  43. package/dist/core/builders/route/checker.mjs +21 -0
  44. package/dist/core/builders/route/cut.cjs +22 -0
  45. package/dist/core/builders/route/cut.d.ts +19 -0
  46. package/dist/core/builders/route/cut.mjs +20 -0
  47. package/dist/core/builders/route/extract.cjs +22 -0
  48. package/dist/core/builders/route/extract.d.ts +25 -0
  49. package/dist/core/builders/route/extract.mjs +20 -0
  50. package/dist/core/builders/route/handler.cjs +28 -0
  51. package/dist/core/builders/route/handler.d.ts +19 -0
  52. package/dist/core/builders/route/handler.mjs +26 -0
  53. package/dist/core/builders/route/index.d.ts +8 -0
  54. package/dist/core/builders/route/presetChecker.cjs +22 -0
  55. package/dist/core/builders/route/presetChecker.d.ts +23 -0
  56. package/dist/core/builders/route/presetChecker.mjs +20 -0
  57. package/dist/core/builders/route/process.cjs +22 -0
  58. package/dist/core/builders/route/process.d.ts +23 -0
  59. package/dist/core/builders/route/process.mjs +20 -0
  60. package/dist/core/builders/route/store.cjs +19 -0
  61. package/dist/core/builders/route/store.d.ts +13 -0
  62. package/dist/core/builders/route/store.mjs +17 -0
  63. package/dist/core/checker.cjs +14 -0
  64. package/dist/core/checker.d.ts +22 -0
  65. package/dist/core/checker.mjs +10 -0
  66. package/dist/core/floor.d.ts +1 -0
  67. package/dist/core/functionsBuilders/index.d.ts +2 -0
  68. package/dist/core/functionsBuilders/route/build.cjs +40 -0
  69. package/dist/core/functionsBuilders/route/build.d.ts +8 -0
  70. package/dist/core/functionsBuilders/route/build.mjs +38 -0
  71. package/dist/core/functionsBuilders/route/create.cjs +11 -0
  72. package/dist/core/functionsBuilders/route/create.d.ts +16 -0
  73. package/dist/core/functionsBuilders/route/create.mjs +9 -0
  74. package/dist/core/functionsBuilders/route/default.cjs +143 -0
  75. package/dist/core/functionsBuilders/route/default.d.ts +1 -0
  76. package/dist/core/functionsBuilders/route/default.mjs +141 -0
  77. package/dist/core/functionsBuilders/route/hook.cjs +69 -0
  78. package/dist/core/functionsBuilders/route/hook.d.ts +7 -0
  79. package/dist/core/functionsBuilders/route/hook.mjs +62 -0
  80. package/dist/core/functionsBuilders/route/index.d.ts +4 -0
  81. package/dist/core/functionsBuilders/steps/build.cjs +24 -0
  82. package/dist/core/functionsBuilders/steps/build.d.ts +8 -0
  83. package/dist/core/functionsBuilders/steps/build.mjs +22 -0
  84. package/dist/core/functionsBuilders/steps/create.cjs +11 -0
  85. package/dist/core/functionsBuilders/steps/create.d.ts +20 -0
  86. package/dist/core/functionsBuilders/steps/create.mjs +9 -0
  87. package/dist/core/functionsBuilders/steps/defaults/checkerStep.cjs +73 -0
  88. package/dist/core/functionsBuilders/steps/defaults/checkerStep.d.ts +1 -0
  89. package/dist/core/functionsBuilders/steps/defaults/checkerStep.mjs +71 -0
  90. package/dist/core/functionsBuilders/steps/defaults/cutStep.cjs +58 -0
  91. package/dist/core/functionsBuilders/steps/defaults/cutStep.d.ts +1 -0
  92. package/dist/core/functionsBuilders/steps/defaults/cutStep.mjs +56 -0
  93. package/dist/core/functionsBuilders/steps/defaults/extractStep.cjs +57 -0
  94. package/dist/core/functionsBuilders/steps/defaults/extractStep.d.ts +1 -0
  95. package/dist/core/functionsBuilders/steps/defaults/extractStep.mjs +55 -0
  96. package/dist/core/functionsBuilders/steps/defaults/handlerStep.cjs +41 -0
  97. package/dist/core/functionsBuilders/steps/defaults/handlerStep.d.ts +1 -0
  98. package/dist/core/functionsBuilders/steps/defaults/handlerStep.mjs +39 -0
  99. package/dist/core/functionsBuilders/steps/defaults/index.d.ts +5 -0
  100. package/dist/core/functionsBuilders/steps/defaults/processStep.cjs +65 -0
  101. package/dist/core/functionsBuilders/steps/defaults/processStep.d.ts +4 -0
  102. package/dist/core/functionsBuilders/steps/defaults/processStep.mjs +62 -0
  103. package/dist/core/functionsBuilders/steps/index.d.ts +3 -0
  104. package/dist/core/hub/defaultExtractContract.cjs +8 -0
  105. package/dist/core/hub/defaultExtractContract.d.ts +6 -0
  106. package/dist/core/hub/defaultExtractContract.mjs +6 -0
  107. package/dist/core/hub/defaultNotfoundHandler.cjs +20 -0
  108. package/dist/core/hub/defaultNotfoundHandler.d.ts +10 -0
  109. package/dist/core/hub/defaultNotfoundHandler.mjs +18 -0
  110. package/dist/core/hub/hooks.cjs +38 -0
  111. package/dist/core/hub/hooks.d.ts +33 -0
  112. package/dist/core/hub/hooks.mjs +30 -0
  113. package/dist/core/hub/index.cjs +157 -0
  114. package/dist/core/hub/index.d.ts +58 -0
  115. package/dist/core/hub/index.mjs +145 -0
  116. package/dist/core/index.cjs +141 -0
  117. package/dist/core/index.d.ts +15 -0
  118. package/dist/core/index.mjs +57 -0
  119. package/dist/core/kind.cjs +9 -0
  120. package/dist/core/kind.d.ts +6 -0
  121. package/dist/core/kind.mjs +7 -0
  122. package/dist/core/presetChecker.cjs +39 -0
  123. package/dist/core/presetChecker.d.ts +38 -0
  124. package/dist/core/presetChecker.mjs +36 -0
  125. package/dist/core/process/index.cjs +12 -0
  126. package/dist/core/process/index.d.ts +31 -0
  127. package/dist/core/process/index.mjs +9 -0
  128. package/dist/core/process/types/index.d.ts +1 -0
  129. package/dist/core/request.cjs +34 -0
  130. package/dist/core/request.d.ts +40 -0
  131. package/dist/core/request.mjs +32 -0
  132. package/dist/core/response/contract.cjs +91 -0
  133. package/dist/core/response/contract.d.ts +291 -0
  134. package/dist/core/response/contract.mjs +91 -0
  135. package/dist/core/response/index.cjs +45 -0
  136. package/dist/core/response/index.d.ts +21 -0
  137. package/dist/core/response/index.mjs +39 -0
  138. package/dist/core/route/hooks/index.cjs +21 -0
  139. package/dist/core/route/hooks/index.d.ts +61 -0
  140. package/dist/core/route/hooks/index.mjs +16 -0
  141. package/dist/core/route/hooks/response.cjs +23 -0
  142. package/dist/core/route/hooks/response.d.ts +13 -0
  143. package/dist/core/route/hooks/response.mjs +21 -0
  144. package/dist/core/route/index.cjs +16 -0
  145. package/dist/core/route/index.d.ts +25 -0
  146. package/dist/core/route/index.mjs +10 -0
  147. package/dist/core/route/types/buildedRoute.d.ts +2 -0
  148. package/dist/core/route/types/index.d.ts +1 -0
  149. package/dist/core/router/buildError.cjs +14 -0
  150. package/dist/core/router/buildError.d.ts +9 -0
  151. package/dist/core/router/buildError.mjs +12 -0
  152. package/dist/core/router/decodeUrl.cjs +47 -0
  153. package/dist/core/router/decodeUrl.d.ts +7 -0
  154. package/dist/core/router/decodeUrl.mjs +43 -0
  155. package/dist/core/router/index.cjs +108 -0
  156. package/dist/core/router/index.d.ts +7 -0
  157. package/dist/core/router/index.mjs +102 -0
  158. package/dist/core/router/pathToRegExp.cjs +9 -0
  159. package/dist/core/router/pathToRegExp.d.ts +2 -0
  160. package/dist/core/router/pathToRegExp.mjs +7 -0
  161. package/dist/core/router/types/buildedRouter.d.ts +12 -0
  162. package/dist/core/router/types/index.d.ts +1 -0
  163. package/dist/core/steps/checker.cjs +13 -0
  164. package/dist/core/steps/checker.d.ts +19 -0
  165. package/dist/core/steps/checker.mjs +10 -0
  166. package/dist/core/steps/cut.cjs +15 -0
  167. package/dist/core/steps/cut.d.ts +22 -0
  168. package/dist/core/steps/cut.mjs +11 -0
  169. package/dist/core/steps/extract.cjs +13 -0
  170. package/dist/core/steps/extract.d.ts +18 -0
  171. package/dist/core/steps/extract.mjs +10 -0
  172. package/dist/core/steps/handler.cjs +13 -0
  173. package/dist/core/steps/handler.d.ts +19 -0
  174. package/dist/core/steps/handler.mjs +10 -0
  175. package/dist/core/steps/identifier.cjs +7 -0
  176. package/dist/core/steps/identifier.d.ts +5 -0
  177. package/dist/core/steps/identifier.mjs +5 -0
  178. package/dist/core/steps/index.d.ts +9 -0
  179. package/dist/core/steps/kind.cjs +7 -0
  180. package/dist/core/steps/kind.d.ts +3 -0
  181. package/dist/core/steps/kind.mjs +5 -0
  182. package/dist/core/steps/presetChecker.cjs +13 -0
  183. package/dist/core/steps/presetChecker.d.ts +14 -0
  184. package/dist/core/steps/presetChecker.mjs +10 -0
  185. package/dist/core/steps/process.cjs +13 -0
  186. package/dist/core/steps/process.d.ts +14 -0
  187. package/dist/core/steps/process.mjs +10 -0
  188. package/dist/core/steps/types/buildedStep.d.ts +5 -0
  189. package/dist/core/steps/types/index.d.ts +3 -0
  190. package/dist/core/steps/types/stepFunctionParams.d.ts +12 -0
  191. package/dist/core/steps/types/steps.d.ts +11 -0
  192. package/dist/core/stringIdentifier.cjs +7 -0
  193. package/dist/core/stringIdentifier.d.ts +1 -0
  194. package/dist/core/stringIdentifier.mjs +5 -0
  195. package/dist/core/types/environment.d.ts +4 -0
  196. package/dist/core/types/index.d.ts +1 -0
  197. package/dist/interfaces/bun/index.cjs +16 -0
  198. package/dist/interfaces/bun/index.d.ts +2 -0
  199. package/dist/interfaces/bun/index.mjs +10 -0
  200. package/dist/interfaces/bun/kind.cjs +9 -0
  201. package/dist/interfaces/bun/kind.d.ts +6 -0
  202. package/dist/interfaces/bun/kind.mjs +7 -0
  203. package/dist/interfaces/bun/types/index.d.ts +1 -0
  204. package/dist/interfaces/bun/types/request.d.ts +21 -0
  205. package/dist/interfaces/deno/index.cjs +7 -0
  206. package/dist/interfaces/deno/index.d.ts +2 -0
  207. package/dist/interfaces/deno/index.mjs +1 -0
  208. package/dist/interfaces/deno/kind.cjs +9 -0
  209. package/dist/interfaces/deno/kind.d.ts +6 -0
  210. package/dist/interfaces/deno/kind.mjs +7 -0
  211. package/dist/interfaces/deno/types/index.d.ts +1 -0
  212. package/dist/interfaces/deno/types/request.d.ts +21 -0
  213. package/dist/interfaces/node/createHttpServer.cjs +65 -0
  214. package/dist/interfaces/node/createHttpServer.d.ts +23 -0
  215. package/dist/interfaces/node/createHttpServer.mjs +63 -0
  216. package/dist/interfaces/node/error/bodyParseUnknownError.cjs +16 -0
  217. package/dist/interfaces/node/error/bodyParseUnknownError.d.ts +9 -0
  218. package/dist/interfaces/node/error/bodyParseUnknownError.mjs +14 -0
  219. package/dist/interfaces/node/error/bodyParseWrongChunkReceived.cjs +14 -0
  220. package/dist/interfaces/node/error/bodyParseWrongChunkReceived.d.ts +8 -0
  221. package/dist/interfaces/node/error/bodyParseWrongChunkReceived.mjs +12 -0
  222. package/dist/interfaces/node/error/bodySizeExceedsLimitError.cjs +14 -0
  223. package/dist/interfaces/node/error/bodySizeExceedsLimitError.d.ts +9 -0
  224. package/dist/interfaces/node/error/bodySizeExceedsLimitError.mjs +12 -0
  225. package/dist/interfaces/node/error/index.d.ts +3 -0
  226. package/dist/interfaces/node/hooks.cjs +119 -0
  227. package/dist/interfaces/node/hooks.d.ts +8 -0
  228. package/dist/interfaces/node/hooks.mjs +117 -0
  229. package/dist/interfaces/node/index.cjs +26 -0
  230. package/dist/interfaces/node/index.d.ts +5 -0
  231. package/dist/interfaces/node/index.mjs +15 -0
  232. package/dist/interfaces/node/kind.cjs +9 -0
  233. package/dist/interfaces/node/kind.d.ts +6 -0
  234. package/dist/interfaces/node/kind.mjs +7 -0
  235. package/dist/interfaces/node/types/host.d.ts +4 -0
  236. package/dist/interfaces/node/types/index.d.ts +2 -0
  237. package/dist/interfaces/node/types/request.d.ts +23 -0
  238. package/package.json +82 -0
@@ -0,0 +1,20 @@
1
+ import '../../steps/kind.mjs';
2
+ import '../../steps/identifier.mjs';
3
+ import '../../steps/checker.mjs';
4
+ import '../../steps/extract.mjs';
5
+ import '../../steps/cut.mjs';
6
+ import '../../steps/handler.mjs';
7
+ import '../../steps/process.mjs';
8
+ import { createPresetCheckerStep } from '../../steps/presetChecker.mjs';
9
+ import { processBuilder } from './builder.mjs';
10
+
11
+ processBuilder.set("presetCheck", ({ args: [presetChecker, input,], accumulator, next, }) => next({
12
+ ...accumulator,
13
+ steps: [
14
+ ...accumulator.steps,
15
+ createPresetCheckerStep({
16
+ presetChecker,
17
+ input,
18
+ }),
19
+ ],
20
+ }));
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ require('../../steps/kind.cjs');
4
+ require('../../steps/identifier.cjs');
5
+ require('../../steps/checker.cjs');
6
+ require('../../steps/extract.cjs');
7
+ require('../../steps/cut.cjs');
8
+ require('../../steps/handler.cjs');
9
+ var process = require('../../steps/process.cjs');
10
+ require('../../steps/presetChecker.cjs');
11
+ var builder = require('./builder.cjs');
12
+
13
+ builder.processBuilder.set("exec", ({ args: [process$1, params,], accumulator, next, }) => next({
14
+ ...accumulator,
15
+ steps: [
16
+ ...accumulator.steps,
17
+ process.createProcessStep({
18
+ ...params,
19
+ process: process$1,
20
+ }),
21
+ ],
22
+ }));
@@ -0,0 +1,22 @@
1
+ import { type Floor } from "../../floor";
2
+ import { type ProcessStep } from "../../steps";
3
+ import { type O, type NeverCoalescing, type FixDeepFunctionInfer, type Adaptor, type AnyFunction } from "@duplojs/utils";
4
+ import { type ProcessDefinition, type GetProcessExportValue, type Process, type GetProcessRequest } from "../../process";
5
+ import { type Request } from "../../request";
6
+ declare module "./builder" {
7
+ interface ProcessBuilder<GenericDefinition extends ProcessDefinition = ProcessDefinition, GenericFloor extends Floor = {}, GenericRequest extends Request = Request> {
8
+ 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?: {
9
+ readonly imports?: GenericImportation;
10
+ readonly options?: FixDeepFunctionInfer<GenericProcess["definition"]["options"] | ((floor: GenericFloor) => GenericProcess["definition"]["options"]), GenericOptions>;
11
+ }): ProcessBuilder<O.AssignObjects<GenericDefinition, {
12
+ readonly steps: readonly [
13
+ ...GenericDefinition["steps"],
14
+ ProcessStep<{
15
+ readonly process: GenericProcess;
16
+ readonly options: NeverCoalescing<Adaptor<GenericOptions, AnyFunction | GenericProcess["definition"]["options"]>, undefined>;
17
+ readonly imports: NeverCoalescing<GenericImportation, undefined>;
18
+ }>
19
+ ];
20
+ }>, O.AssignObjects<GenericFloor, Pick<GenericProcessExportValue, GenericImportation[number]>>, GenericRequest & NeverCoalescing<GetProcessRequest<GenericProcess>, Request>>;
21
+ }
22
+ }
@@ -0,0 +1,20 @@
1
+ import '../../steps/kind.mjs';
2
+ import '../../steps/identifier.mjs';
3
+ import '../../steps/checker.mjs';
4
+ import '../../steps/extract.mjs';
5
+ import '../../steps/cut.mjs';
6
+ import '../../steps/handler.mjs';
7
+ import { createProcessStep } from '../../steps/process.mjs';
8
+ import '../../steps/presetChecker.mjs';
9
+ import { processBuilder } from './builder.mjs';
10
+
11
+ processBuilder.set("exec", ({ args: [process, params,], accumulator, next, }) => next({
12
+ ...accumulator,
13
+ steps: [
14
+ ...accumulator.steps,
15
+ createProcessStep({
16
+ ...params,
17
+ process,
18
+ }),
19
+ ],
20
+ }));
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@duplojs/utils');
4
+ var stringIdentifier = require('../../stringIdentifier.cjs');
5
+
6
+ const routeBuilderHandler = utils.createBuilder(stringIdentifier.createCoreLibStringIdentifier("route"));
7
+ function useRouteBuilder(method, path, options) {
8
+ return routeBuilderHandler.use({
9
+ method,
10
+ paths: utils.A.coalescing(path),
11
+ preflightSteps: [],
12
+ steps: [],
13
+ hooks: options?.hooks ?? [],
14
+ });
15
+ }
16
+
17
+ exports.routeBuilderHandler = routeBuilderHandler;
18
+ exports.useRouteBuilder = useRouteBuilder;
@@ -0,0 +1,16 @@
1
+ import { type MakeRequestFromHooks, type HookRouteLifeCycle, type RouteDefinition, type RoutePath } from "../../route";
2
+ import { type Floor } from "../../floor";
3
+ import { type RequestMethods, type Request } from "../../request";
4
+ import { type Builder, type NeverCoalescing } from "@duplojs/utils";
5
+ export interface RouteBuilder<GenericDefinition extends RouteDefinition = RouteDefinition, GenericFloor extends Floor = {}, GenericRequest extends Request = Request> extends Builder<RouteDefinition> {
6
+ }
7
+ export declare const routeBuilderHandler: import("@duplojs/utils").BuilderHandler<RouteBuilder<RouteDefinition, {}, Request>>;
8
+ export declare function useRouteBuilder<GenericMethod extends RequestMethods, const GenericPaths extends RoutePath | readonly [RoutePath, ...RoutePath[]], const GenericHooks extends readonly HookRouteLifeCycle[] = readonly []>(method: GenericMethod, path: GenericPaths, options?: {
9
+ hooks?: GenericHooks | readonly HookRouteLifeCycle[];
10
+ }): RouteBuilder<{
11
+ readonly method: GenericMethod;
12
+ readonly paths: GenericPaths extends string ? readonly [GenericPaths] : GenericPaths;
13
+ readonly preflightSteps: readonly [];
14
+ readonly steps: readonly [];
15
+ readonly hooks: GenericHooks;
16
+ }, {}, NeverCoalescing<MakeRequestFromHooks<GenericHooks>, Request>>;
@@ -0,0 +1,15 @@
1
+ import { createBuilder, A } from '@duplojs/utils';
2
+ import { createCoreLibStringIdentifier } from '../../stringIdentifier.mjs';
3
+
4
+ const routeBuilderHandler = createBuilder(createCoreLibStringIdentifier("route"));
5
+ function useRouteBuilder(method, path, options) {
6
+ return routeBuilderHandler.use({
7
+ method,
8
+ paths: A.coalescing(path),
9
+ preflightSteps: [],
10
+ steps: [],
11
+ hooks: options?.hooks ?? [],
12
+ });
13
+ }
14
+
15
+ export { routeBuilderHandler, useRouteBuilder };
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ require('../../steps/kind.cjs');
4
+ require('../../steps/identifier.cjs');
5
+ var checker = require('../../steps/checker.cjs');
6
+ require('../../steps/extract.cjs');
7
+ require('../../steps/cut.cjs');
8
+ require('../../steps/handler.cjs');
9
+ require('../../steps/process.cjs');
10
+ require('../../steps/presetChecker.cjs');
11
+ var builder = require('./builder.cjs');
12
+
13
+ builder.routeBuilderHandler.set("check", ({ args: [checker$1, { otherwise: responseContract, ...params },], accumulator, next, }) => next({
14
+ ...accumulator,
15
+ steps: [
16
+ ...accumulator.steps,
17
+ checker.createCheckerStep({
18
+ ...params,
19
+ responseContract,
20
+ checker: checker$1,
21
+ }),
22
+ ],
23
+ }));
@@ -0,0 +1,34 @@
1
+ import { type Floor } from "../../floor";
2
+ import { type RouteDefinition } from "../../route";
3
+ import { type CheckerStep } from "../../steps";
4
+ import { type O, type MaybeArray, type NeverCoalescing, type FixDeepFunctionInfer, type Adaptor, type AnyFunction, type DP, type A } from "@duplojs/utils";
5
+ import { type GetCheckerInput, type Checker, type GetCheckerResult, type GetCheckerOptions } from "../../checker";
6
+ import { type ClientErrorResponseCode, type ResponseContract } from "../../response";
7
+ import { type Request } from "../../request";
8
+ declare module "./builder" {
9
+ interface RouteBuilder<GenericDefinition extends RouteDefinition = RouteDefinition, GenericFloor extends Floor = {}, GenericRequest extends Request = Request> {
10
+ check<GenericChecker extends Checker, GenericResultInformation extends MaybeArray<Awaited<GetCheckerResult<GenericChecker>>["information"]>, GenericInput extends GetCheckerInput<GenericChecker>, GenericResponseContract extends ResponseContract.Contract<ClientErrorResponseCode, string, DP.DataParserEmpty>, GenericIndex extends string = never, GenericOptions extends (GetCheckerOptions<GenericChecker> | ((floor: GenericFloor) => Exclude<GetCheckerOptions<GenericChecker>, undefined>)) = never>(checker: GenericChecker, params: {
11
+ input(floor: GenericFloor): GenericInput;
12
+ readonly result: GenericResultInformation;
13
+ readonly indexing?: GenericIndex;
14
+ readonly options?: FixDeepFunctionInfer<GenericChecker["definition"]["options"] | ((floor: GenericFloor) => GenericChecker["definition"]["options"]), GenericOptions>;
15
+ readonly otherwise: GenericResponseContract;
16
+ }): RouteBuilder<O.AssignObjects<GenericDefinition, {
17
+ readonly steps: readonly [
18
+ ...GenericDefinition["steps"],
19
+ CheckerStep<{
20
+ readonly checker: GenericChecker;
21
+ readonly result: GenericResultInformation;
22
+ readonly indexing: NeverCoalescing<GenericIndex, undefined>;
23
+ input(floor: GenericFloor): GenericInput;
24
+ readonly options: NeverCoalescing<Adaptor<GenericOptions, AnyFunction | GenericChecker["definition"]["options"]>, undefined>;
25
+ readonly responseContract: GenericResponseContract;
26
+ }>
27
+ ];
28
+ }>, O.AssignObjects<GenericFloor, {
29
+ [Prop in GenericIndex]: Extract<Awaited<GetCheckerResult<GenericChecker>>, {
30
+ information: A.ArrayCoalescing<GenericResultInformation>[number];
31
+ }>["value"];
32
+ }>, GenericRequest>;
33
+ }
34
+ }
@@ -0,0 +1,21 @@
1
+ import '../../steps/kind.mjs';
2
+ import '../../steps/identifier.mjs';
3
+ import { createCheckerStep } from '../../steps/checker.mjs';
4
+ import '../../steps/extract.mjs';
5
+ import '../../steps/cut.mjs';
6
+ import '../../steps/handler.mjs';
7
+ import '../../steps/process.mjs';
8
+ import '../../steps/presetChecker.mjs';
9
+ import { routeBuilderHandler } from './builder.mjs';
10
+
11
+ routeBuilderHandler.set("check", ({ args: [checker, { otherwise: responseContract, ...params },], accumulator, next, }) => next({
12
+ ...accumulator,
13
+ steps: [
14
+ ...accumulator.steps,
15
+ createCheckerStep({
16
+ ...params,
17
+ responseContract,
18
+ checker,
19
+ }),
20
+ ],
21
+ }));
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ require('../../steps/kind.cjs');
4
+ require('../../steps/identifier.cjs');
5
+ require('../../steps/checker.cjs');
6
+ require('../../steps/extract.cjs');
7
+ var cut = require('../../steps/cut.cjs');
8
+ require('../../steps/handler.cjs');
9
+ require('../../steps/process.cjs');
10
+ require('../../steps/presetChecker.cjs');
11
+ var builder = require('./builder.cjs');
12
+
13
+ builder.routeBuilderHandler.set("cut", ({ args: [responseContract, theFunction], accumulator, next, }) => next({
14
+ ...accumulator,
15
+ steps: [
16
+ ...accumulator.steps,
17
+ cut.createCutStep({
18
+ responseContract,
19
+ theFunction,
20
+ }),
21
+ ],
22
+ }));
@@ -0,0 +1,19 @@
1
+ import { type Floor } from "../../floor";
2
+ import { type ResponseContract } from "../../response";
3
+ import { type RouteDefinition } from "../../route";
4
+ import { type CutStepFunctionOutput, type CutStep, type CutStepFunctionParams } from "../../steps";
5
+ import { type Unwrap, type O, type MaybePromise, type IsEqual, type A } from "@duplojs/utils";
6
+ import { type Request } from "../../request";
7
+ declare module "./builder" {
8
+ 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
+ readonly steps: readonly [
11
+ ...GenericDefinition["steps"],
12
+ CutStep<{
13
+ readonly responseContract: GenericResponseContract;
14
+ theFunction(floor: GenericFloor, param: CutStepFunctionParams<GenericRequest, GenericResponse>): MaybePromise<GenericOutput>;
15
+ }>
16
+ ];
17
+ }>, IsEqual<Extract<GenericOutput, CutStepFunctionOutput>, never> extends true ? GenericFloor : (GenericOutput extends infer InferredOutputData extends CutStepFunctionOutput ? O.AssignObjects<GenericFloor, Unwrap<InferredOutputData>> : never), GenericRequest>;
18
+ }
19
+ }
@@ -0,0 +1,20 @@
1
+ import '../../steps/kind.mjs';
2
+ import '../../steps/identifier.mjs';
3
+ import '../../steps/checker.mjs';
4
+ import '../../steps/extract.mjs';
5
+ import { createCutStep } from '../../steps/cut.mjs';
6
+ import '../../steps/handler.mjs';
7
+ import '../../steps/process.mjs';
8
+ import '../../steps/presetChecker.mjs';
9
+ import { routeBuilderHandler } from './builder.mjs';
10
+
11
+ routeBuilderHandler.set("cut", ({ args: [responseContract, theFunction], accumulator, next, }) => next({
12
+ ...accumulator,
13
+ steps: [
14
+ ...accumulator.steps,
15
+ createCutStep({
16
+ responseContract,
17
+ theFunction,
18
+ }),
19
+ ],
20
+ }));
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ require('../../steps/kind.cjs');
4
+ require('../../steps/identifier.cjs');
5
+ require('../../steps/checker.cjs');
6
+ var extract = require('../../steps/extract.cjs');
7
+ require('../../steps/cut.cjs');
8
+ require('../../steps/handler.cjs');
9
+ require('../../steps/process.cjs');
10
+ require('../../steps/presetChecker.cjs');
11
+ var builder = require('./builder.cjs');
12
+
13
+ builder.routeBuilderHandler.set("extract", ({ args: [shape, responseContract], accumulator, next, }) => next({
14
+ ...accumulator,
15
+ steps: [
16
+ ...accumulator.steps,
17
+ extract.createExtractStep({
18
+ shape,
19
+ responseContract,
20
+ }),
21
+ ],
22
+ }));
@@ -0,0 +1,25 @@
1
+ import { type Floor } from "../../floor";
2
+ import { type RouteDefinition } from "../../route";
3
+ import { type ExtractShape, type ExtractStep } from "../../steps";
4
+ import { type DP, type ObjectEntry, type O, type SimplifyTopLevel, type NeverCoalescing } from "@duplojs/utils";
5
+ import { type ClientErrorResponseCode, type ResponseContract } from "../../response";
6
+ import { type Request } from "../../request";
7
+ declare module "./builder" {
8
+ 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
+ readonly steps: readonly [
11
+ ...GenericDefinition["steps"],
12
+ ExtractStep<{
13
+ readonly shape: GenericShape;
14
+ readonly responseContract: NeverCoalescing<GenericResponseContract, undefined>;
15
+ }>
16
+ ];
17
+ }>, O.AssignObjects<GenericFloor, {
18
+ [Prop in keyof GenericShape]: GenericShape[Prop] extends DP.DataParser ? [Prop, DP.Output<GenericShape[Prop]>] : GenericShape[Prop] extends infer InferredSubShape extends Record<string, DP.DataParser> ? {
19
+ [Prop in keyof InferredSubShape]: [Prop, DP.Output<InferredSubShape[Prop]>];
20
+ }[keyof InferredSubShape] : never;
21
+ }[keyof GenericShape] extends infer InferredEntry extends ObjectEntry ? SimplifyTopLevel<{
22
+ [Entry in InferredEntry as Entry[0]]: Entry[1];
23
+ }> : never>, GenericRequest>;
24
+ }
25
+ }
@@ -0,0 +1,20 @@
1
+ import '../../steps/kind.mjs';
2
+ import '../../steps/identifier.mjs';
3
+ import '../../steps/checker.mjs';
4
+ import { createExtractStep } from '../../steps/extract.mjs';
5
+ import '../../steps/cut.mjs';
6
+ import '../../steps/handler.mjs';
7
+ import '../../steps/process.mjs';
8
+ import '../../steps/presetChecker.mjs';
9
+ import { routeBuilderHandler } from './builder.mjs';
10
+
11
+ routeBuilderHandler.set("extract", ({ args: [shape, responseContract], accumulator, next, }) => next({
12
+ ...accumulator,
13
+ steps: [
14
+ ...accumulator.steps,
15
+ createExtractStep({
16
+ shape,
17
+ responseContract,
18
+ }),
19
+ ],
20
+ }));
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var index = require('../../route/index.cjs');
4
+ require('../../steps/kind.cjs');
5
+ require('../../steps/identifier.cjs');
6
+ require('../../steps/checker.cjs');
7
+ require('../../steps/extract.cjs');
8
+ require('../../steps/cut.cjs');
9
+ var handler = require('../../steps/handler.cjs');
10
+ require('../../steps/process.cjs');
11
+ require('../../steps/presetChecker.cjs');
12
+ var builder = require('./builder.cjs');
13
+ var store = require('./store.cjs');
14
+
15
+ builder.routeBuilderHandler.set("handler", ({ args: [responseContract, theFunction], accumulator, }) => {
16
+ const route = index.createRoute({
17
+ ...accumulator,
18
+ steps: [
19
+ ...accumulator.steps,
20
+ handler.createHandlerStep({
21
+ responseContract,
22
+ theFunction,
23
+ }),
24
+ ],
25
+ });
26
+ store.routeStore.add(route);
27
+ return route;
28
+ });
@@ -0,0 +1,19 @@
1
+ import { type Floor } from "../../floor";
2
+ import { type ResponseContract } from "../../response";
3
+ import { type Route, type RouteDefinition } from "../../route";
4
+ import { type HandlerStep, type HandlerStepFunctionParams } from "../../steps";
5
+ import { type MaybePromise, type AnyTuple, type O } from "@duplojs/utils";
6
+ import { type Request } from "../../request";
7
+ declare module "./builder" {
8
+ 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
+ readonly steps: readonly [
11
+ ...GenericDefinition["steps"],
12
+ HandlerStep<{
13
+ readonly responseContract: GenericResponseContract;
14
+ theFunction(floor: GenericFloor, param: HandlerStepFunctionParams<GenericRequest, GenericResponse>): MaybePromise<GenericResponse>;
15
+ }>
16
+ ];
17
+ }>>;
18
+ }
19
+ }
@@ -0,0 +1,26 @@
1
+ import { createRoute } from '../../route/index.mjs';
2
+ import '../../steps/kind.mjs';
3
+ import '../../steps/identifier.mjs';
4
+ import '../../steps/checker.mjs';
5
+ import '../../steps/extract.mjs';
6
+ import '../../steps/cut.mjs';
7
+ import { createHandlerStep } from '../../steps/handler.mjs';
8
+ import '../../steps/process.mjs';
9
+ import '../../steps/presetChecker.mjs';
10
+ import { routeBuilderHandler } from './builder.mjs';
11
+ import { routeStore } from './store.mjs';
12
+
13
+ routeBuilderHandler.set("handler", ({ args: [responseContract, theFunction], accumulator, }) => {
14
+ const route = createRoute({
15
+ ...accumulator,
16
+ steps: [
17
+ ...accumulator.steps,
18
+ createHandlerStep({
19
+ responseContract,
20
+ theFunction,
21
+ }),
22
+ ],
23
+ });
24
+ routeStore.add(route);
25
+ return route;
26
+ });
@@ -0,0 +1,8 @@
1
+ export * from "./builder";
2
+ export * from "./handler";
3
+ export * from "./cut";
4
+ export * from "./extract";
5
+ export * from "./checker";
6
+ export * from "./process";
7
+ export * from "./presetChecker";
8
+ export * from "./store";
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ require('../../steps/kind.cjs');
4
+ require('../../steps/identifier.cjs');
5
+ require('../../steps/checker.cjs');
6
+ require('../../steps/extract.cjs');
7
+ require('../../steps/cut.cjs');
8
+ require('../../steps/handler.cjs');
9
+ require('../../steps/process.cjs');
10
+ var presetChecker = require('../../steps/presetChecker.cjs');
11
+ var builder = require('./builder.cjs');
12
+
13
+ builder.routeBuilderHandler.set("presetCheck", ({ args: [presetChecker$1, input,], accumulator, next, }) => next({
14
+ ...accumulator,
15
+ steps: [
16
+ ...accumulator.steps,
17
+ presetChecker.createPresetCheckerStep({
18
+ presetChecker: presetChecker$1,
19
+ input,
20
+ }),
21
+ ],
22
+ }));
@@ -0,0 +1,23 @@
1
+ import { type Floor } from "../../floor";
2
+ import { type RouteDefinition } from "../../route";
3
+ import { type PresetCheckerStep } from "../../steps";
4
+ import { type O, type A } from "@duplojs/utils";
5
+ import { type Request } from "../../request";
6
+ import { type GetPresetCheckerIndex, type GetPresetCheckerInformation, type GetPresetCheckerResult, type GetPresetCheckerInput, type PresetChecker } from "../../presetChecker";
7
+ declare module "./builder" {
8
+ 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
+ readonly steps: readonly [
11
+ ...GenericDefinition["steps"],
12
+ PresetCheckerStep<{
13
+ readonly presetChecker: GenericPresetChecker;
14
+ input(floor: GenericFloor): GenericInput;
15
+ }>
16
+ ];
17
+ }>, O.AssignObjects<GenericFloor, {
18
+ [Prop in GetPresetCheckerIndex<GenericPresetChecker>]: Extract<Awaited<GetPresetCheckerResult<GenericPresetChecker>>, {
19
+ information: A.ArrayCoalescing<GetPresetCheckerInformation<GenericPresetChecker>>[number];
20
+ }>["value"];
21
+ }>, GenericRequest>;
22
+ }
23
+ }
@@ -0,0 +1,20 @@
1
+ import '../../steps/kind.mjs';
2
+ import '../../steps/identifier.mjs';
3
+ import '../../steps/checker.mjs';
4
+ import '../../steps/extract.mjs';
5
+ import '../../steps/cut.mjs';
6
+ import '../../steps/handler.mjs';
7
+ import '../../steps/process.mjs';
8
+ import { createPresetCheckerStep } from '../../steps/presetChecker.mjs';
9
+ import { routeBuilderHandler } from './builder.mjs';
10
+
11
+ routeBuilderHandler.set("presetCheck", ({ args: [presetChecker, input,], accumulator, next, }) => next({
12
+ ...accumulator,
13
+ steps: [
14
+ ...accumulator.steps,
15
+ createPresetCheckerStep({
16
+ presetChecker,
17
+ input,
18
+ }),
19
+ ],
20
+ }));
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ require('../../steps/kind.cjs');
4
+ require('../../steps/identifier.cjs');
5
+ require('../../steps/checker.cjs');
6
+ require('../../steps/extract.cjs');
7
+ require('../../steps/cut.cjs');
8
+ require('../../steps/handler.cjs');
9
+ var process = require('../../steps/process.cjs');
10
+ require('../../steps/presetChecker.cjs');
11
+ var builder = require('./builder.cjs');
12
+
13
+ builder.routeBuilderHandler.set("exec", ({ args: [process$1, params,], accumulator, next, }) => next({
14
+ ...accumulator,
15
+ steps: [
16
+ ...accumulator.steps,
17
+ process.createProcessStep({
18
+ ...params,
19
+ process: process$1,
20
+ }),
21
+ ],
22
+ }));
@@ -0,0 +1,23 @@
1
+ import { type Floor } from "../../floor";
2
+ import { type RouteDefinition } from "../../route";
3
+ import { type ProcessStep } from "../../steps";
4
+ import { type O, type NeverCoalescing, type FixDeepFunctionInfer, type Adaptor, type AnyFunction } from "@duplojs/utils";
5
+ import { type GetProcessRequest, type GetProcessExportValue, type Process } from "../../process";
6
+ import { type Request } from "../../request";
7
+ declare module "./builder" {
8
+ 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
+ readonly imports?: GenericImportation;
11
+ readonly options?: FixDeepFunctionInfer<GenericProcess["definition"]["options"] | ((floor: GenericFloor) => GenericProcess["definition"]["options"]), GenericOptions>;
12
+ }): RouteBuilder<O.AssignObjects<GenericDefinition, {
13
+ readonly steps: readonly [
14
+ ...GenericDefinition["steps"],
15
+ ProcessStep<{
16
+ readonly process: GenericProcess;
17
+ readonly options: NeverCoalescing<Adaptor<GenericOptions, AnyFunction | GenericProcess["definition"]["options"]>, undefined>;
18
+ readonly imports: NeverCoalescing<GenericImportation, undefined>;
19
+ }>
20
+ ];
21
+ }>, O.AssignObjects<GenericFloor, Pick<GenericProcessExportValue, GenericImportation[number]>>, GenericRequest & NeverCoalescing<GetProcessRequest<GenericProcess>, Request>>;
22
+ }
23
+ }
@@ -0,0 +1,20 @@
1
+ import '../../steps/kind.mjs';
2
+ import '../../steps/identifier.mjs';
3
+ import '../../steps/checker.mjs';
4
+ import '../../steps/extract.mjs';
5
+ import '../../steps/cut.mjs';
6
+ import '../../steps/handler.mjs';
7
+ import { createProcessStep } from '../../steps/process.mjs';
8
+ import '../../steps/presetChecker.mjs';
9
+ import { routeBuilderHandler } from './builder.mjs';
10
+
11
+ routeBuilderHandler.set("exec", ({ args: [process, params,], accumulator, next, }) => next({
12
+ ...accumulator,
13
+ steps: [
14
+ ...accumulator.steps,
15
+ createProcessStep({
16
+ ...params,
17
+ process,
18
+ }),
19
+ ],
20
+ }));
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var stringIdentifier = require('../../stringIdentifier.cjs');
4
+ var utils = require('@duplojs/utils');
5
+
6
+ const SymbolRouteStore = Symbol.for(stringIdentifier.createCoreLibStringIdentifier("route-store"));
7
+ const privateRouteStore = utils.createGlobalStore(SymbolRouteStore, new Set());
8
+ const routeStore = {
9
+ add(route) {
10
+ privateRouteStore.value.add(route);
11
+ },
12
+ *getAll() {
13
+ for (const route of privateRouteStore.value) {
14
+ yield route;
15
+ }
16
+ },
17
+ };
18
+
19
+ exports.routeStore = routeStore;
@@ -0,0 +1,13 @@
1
+ import { type Route } from "../../route";
2
+ declare const SymbolRouteStore: unique symbol;
3
+ declare module "@duplojs/utils" {
4
+ interface GlobalStore {
5
+ [SymbolRouteStore]: Set<Route>;
6
+ }
7
+ }
8
+ export interface RouteStore {
9
+ add(route: Route): void;
10
+ getAll(): Generator<Route>;
11
+ }
12
+ export declare const routeStore: RouteStore;
13
+ export {};
@@ -0,0 +1,17 @@
1
+ import { createCoreLibStringIdentifier } from '../../stringIdentifier.mjs';
2
+ import { createGlobalStore } from '@duplojs/utils';
3
+
4
+ const SymbolRouteStore = Symbol.for(createCoreLibStringIdentifier("route-store"));
5
+ const privateRouteStore = createGlobalStore(SymbolRouteStore, new Set());
6
+ const routeStore = {
7
+ add(route) {
8
+ privateRouteStore.value.add(route);
9
+ },
10
+ *getAll() {
11
+ for (const route of privateRouteStore.value) {
12
+ yield route;
13
+ }
14
+ },
15
+ };
16
+
17
+ export { routeStore };