@getsoda/core 0.1.1 → 0.2.1

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 (120) hide show
  1. package/README.md +58 -0
  2. package/dist/app/app.d.ts +17 -1
  3. package/dist/app/app.d.ts.map +1 -1
  4. package/dist/app/app.js +46 -10
  5. package/dist/app/app.js.map +1 -1
  6. package/dist/di/container.d.ts +7 -0
  7. package/dist/di/container.d.ts.map +1 -1
  8. package/dist/di/container.js +24 -1
  9. package/dist/di/container.js.map +1 -1
  10. package/dist/di/graph.d.ts +2 -2
  11. package/dist/di/graph.d.ts.map +1 -1
  12. package/dist/di/graph.js +20 -10
  13. package/dist/di/graph.js.map +1 -1
  14. package/dist/http/arguments.d.ts +20 -2
  15. package/dist/http/arguments.d.ts.map +1 -1
  16. package/dist/http/arguments.js +29 -0
  17. package/dist/http/arguments.js.map +1 -1
  18. package/dist/http/body.d.ts +28 -0
  19. package/dist/http/body.d.ts.map +1 -1
  20. package/dist/http/body.js +96 -1
  21. package/dist/http/body.js.map +1 -1
  22. package/dist/http/context-key.d.ts +33 -0
  23. package/dist/http/context-key.d.ts.map +1 -0
  24. package/dist/http/context-key.js +37 -0
  25. package/dist/http/context-key.js.map +1 -0
  26. package/dist/http/context.d.ts +37 -3
  27. package/dist/http/context.d.ts.map +1 -1
  28. package/dist/http/context.js +63 -5
  29. package/dist/http/context.js.map +1 -1
  30. package/dist/http/cookies.d.ts +49 -0
  31. package/dist/http/cookies.d.ts.map +1 -0
  32. package/dist/http/cookies.js +77 -0
  33. package/dist/http/cookies.js.map +1 -0
  34. package/dist/http/cors.d.ts +41 -0
  35. package/dist/http/cors.d.ts.map +1 -0
  36. package/dist/http/cors.js +97 -0
  37. package/dist/http/cors.js.map +1 -0
  38. package/dist/http/index.d.ts +8 -2
  39. package/dist/http/index.d.ts.map +1 -1
  40. package/dist/http/index.js +4 -1
  41. package/dist/http/index.js.map +1 -1
  42. package/dist/http/middleware.d.ts +56 -0
  43. package/dist/http/middleware.d.ts.map +1 -0
  44. package/dist/http/middleware.js +83 -0
  45. package/dist/http/middleware.js.map +1 -0
  46. package/dist/http/parsers.d.ts +3 -0
  47. package/dist/http/parsers.d.ts.map +1 -1
  48. package/dist/http/parsers.js +2 -1
  49. package/dist/http/parsers.js.map +1 -1
  50. package/dist/http/routes.d.ts +10 -1
  51. package/dist/http/routes.d.ts.map +1 -1
  52. package/dist/http/routes.js +4 -1
  53. package/dist/http/routes.js.map +1 -1
  54. package/dist/index.d.ts +1 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +1 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/jwt/algorithms.d.ts +19 -0
  59. package/dist/jwt/algorithms.d.ts.map +1 -0
  60. package/dist/jwt/algorithms.js +60 -0
  61. package/dist/jwt/algorithms.js.map +1 -0
  62. package/dist/jwt/errors.d.ts +24 -0
  63. package/dist/jwt/errors.d.ts.map +1 -0
  64. package/dist/jwt/errors.js +14 -0
  65. package/dist/jwt/errors.js.map +1 -0
  66. package/dist/jwt/guard.d.ts +30 -0
  67. package/dist/jwt/guard.d.ts.map +1 -0
  68. package/dist/jwt/guard.js +61 -0
  69. package/dist/jwt/guard.js.map +1 -0
  70. package/dist/jwt/index.d.ts +14 -0
  71. package/dist/jwt/index.d.ts.map +1 -0
  72. package/dist/jwt/index.js +10 -0
  73. package/dist/jwt/index.js.map +1 -0
  74. package/dist/jwt/module.d.ts +36 -0
  75. package/dist/jwt/module.d.ts.map +1 -0
  76. package/dist/jwt/module.js +38 -0
  77. package/dist/jwt/module.js.map +1 -0
  78. package/dist/jwt/service.d.ts +66 -0
  79. package/dist/jwt/service.d.ts.map +1 -0
  80. package/dist/jwt/service.js +138 -0
  81. package/dist/jwt/service.js.map +1 -0
  82. package/dist/logger/console-logger.d.ts +36 -0
  83. package/dist/logger/console-logger.d.ts.map +1 -0
  84. package/dist/logger/console-logger.js +117 -0
  85. package/dist/logger/console-logger.js.map +1 -0
  86. package/dist/logger/index.d.ts +9 -0
  87. package/dist/logger/index.d.ts.map +1 -0
  88. package/dist/logger/index.js +7 -0
  89. package/dist/logger/index.js.map +1 -0
  90. package/dist/logger/logger.d.ts +55 -0
  91. package/dist/logger/logger.d.ts.map +1 -0
  92. package/dist/logger/logger.js +66 -0
  93. package/dist/logger/logger.js.map +1 -0
  94. package/dist/routing/types.d.ts +1 -1
  95. package/dist/routing/types.d.ts.map +1 -1
  96. package/package.json +6 -12
  97. package/src/app/app.ts +77 -13
  98. package/src/di/container.ts +38 -2
  99. package/src/di/graph.ts +26 -11
  100. package/src/http/arguments.ts +42 -2
  101. package/src/http/body.ts +142 -1
  102. package/src/http/context-key.ts +35 -0
  103. package/src/http/context.ts +94 -8
  104. package/src/http/cookies.ts +96 -0
  105. package/src/http/cors.ts +143 -0
  106. package/src/http/index.ts +8 -2
  107. package/src/http/middleware.ts +124 -0
  108. package/src/http/parsers.ts +2 -1
  109. package/src/http/routes.ts +17 -2
  110. package/src/index.ts +1 -0
  111. package/src/jwt/algorithms.ts +113 -0
  112. package/src/jwt/errors.ts +30 -0
  113. package/src/jwt/guard.ts +74 -0
  114. package/src/jwt/index.ts +14 -0
  115. package/src/jwt/module.ts +58 -0
  116. package/src/jwt/service.ts +216 -0
  117. package/src/logger/console-logger.ts +163 -0
  118. package/src/logger/index.ts +9 -0
  119. package/src/logger/logger.ts +96 -0
  120. package/src/routing/types.ts +1 -1
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @module
3
+ * CORS middleware.
4
+ *
5
+ * Follows Hono's `cors()` and the `cors` package Nest uses, with two differences:
6
+ *
7
+ * - only a real preflight (`OPTIONS` with `Access-Control-Request-Method`, as
8
+ * the Fetch spec defines it) is answered here; other `OPTIONS` requests reach
9
+ * the application and its own `OPTIONS` routes;
10
+ * - `credentials: true` with `origin: '*'` is rejected when the middleware is
11
+ * created: browsers refuse that pair, so it could never work.
12
+ *
13
+ * Response headers are set in place: Bun's responses always have mutable headers.
14
+ *
15
+ * ```ts
16
+ * cors({ origin: ['https://app.example.com'], credentials: true, maxAge: 600 })
17
+ * ```
18
+ */
19
+ import type { MiddlewareFunction } from './middleware.ts';
20
+ export interface CorsOptions {
21
+ /**
22
+ * Allowed origins: `'*'` (default), one origin, a list, or a predicate.
23
+ * An allowed origin is echoed back; a refused one gets no CORS headers, so the browser blocks the response.
24
+ */
25
+ readonly origin?: '*' | string | readonly string[] | ((origin: string, req: Request) => boolean);
26
+ /** Methods announced to preflights. */
27
+ readonly methods?: readonly string[];
28
+ /** Headers announced to preflights. Defaults to the ones the preflight asks for. */
29
+ readonly allowedHeaders?: readonly string[];
30
+ /** Response headers the browser exposes to scripts. */
31
+ readonly exposedHeaders?: readonly string[];
32
+ /** Allows cookies and `Authorization`; needs explicit origins. */
33
+ readonly credentials?: boolean;
34
+ /** Seconds a browser may cache a preflight. */
35
+ readonly maxAge?: number;
36
+ }
37
+ /**
38
+ * Creates the CORS middleware. Throws a `TypeError` for options browsers would refuse.
39
+ */
40
+ export declare const cors: (options?: CorsOptions) => MiddlewareFunction;
41
+ //# sourceMappingURL=cors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/http/cors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,CAAA;IAChG,uCAAuC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,oFAAoF;IACpF,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3C,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3C,kEAAkE;IAClE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AA4BD;;GAEG;AACH,eAAO,MAAM,IAAI,aAAa,WAAW,KAAQ,kBA0EhD,CAAA"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @module
3
+ * CORS middleware.
4
+ *
5
+ * Follows Hono's `cors()` and the `cors` package Nest uses, with two differences:
6
+ *
7
+ * - only a real preflight (`OPTIONS` with `Access-Control-Request-Method`, as
8
+ * the Fetch spec defines it) is answered here; other `OPTIONS` requests reach
9
+ * the application and its own `OPTIONS` routes;
10
+ * - `credentials: true` with `origin: '*'` is rejected when the middleware is
11
+ * created: browsers refuse that pair, so it could never work.
12
+ *
13
+ * Response headers are set in place: Bun's responses always have mutable headers.
14
+ *
15
+ * ```ts
16
+ * cors({ origin: ['https://app.example.com'], credentials: true, maxAge: 600 })
17
+ * ```
18
+ */
19
+ const DEFAULT_METHODS = ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE'];
20
+ const createOriginCheck = (origin) => {
21
+ if (typeof origin === 'function') {
22
+ return origin;
23
+ }
24
+ if (typeof origin === 'string') {
25
+ return (requested) => requested === origin;
26
+ }
27
+ const allowed = new Set(origin);
28
+ return (requested) => allowed.has(requested);
29
+ };
30
+ const appendVary = (headers, value) => {
31
+ const current = headers.get('vary');
32
+ if (current === null) {
33
+ headers.set('vary', value);
34
+ }
35
+ else if (current !== '*' && !current.toLowerCase().split(/\s*,\s*/).includes(value.toLowerCase())) {
36
+ headers.set('vary', `${current}, ${value}`);
37
+ }
38
+ };
39
+ /**
40
+ * Creates the CORS middleware. Throws a `TypeError` for options browsers would refuse.
41
+ */
42
+ export const cors = (options = {}) => {
43
+ const origin = options.origin ?? '*';
44
+ const any = origin === '*';
45
+ if (any && options.credentials === true) {
46
+ throw new TypeError("cors(): credentials cannot be used with origin '*', browsers reject that combination; list the allowed origins instead");
47
+ }
48
+ const isAllowed = any ? () => true : createOriginCheck(origin);
49
+ const methods = (options.methods ?? DEFAULT_METHODS).join(', ');
50
+ const allowedHeaders = options.allowedHeaders?.join(', ');
51
+ const exposedHeaders = options.exposedHeaders?.join(', ');
52
+ const maxAge = options.maxAge === undefined ? undefined : String(options.maxAge);
53
+ /** Headers every CORS response of an allowed origin gets. */
54
+ const applyCommon = (headers, requested, req) => {
55
+ if (requested !== null && isAllowed(requested, req)) {
56
+ headers.set('access-control-allow-origin', any ? '*' : requested);
57
+ if (options.credentials === true) {
58
+ headers.set('access-control-allow-credentials', 'true');
59
+ }
60
+ }
61
+ // The response depends on Origin as soon as it is not the same for every origin.
62
+ if (!any) {
63
+ appendVary(headers, 'Origin');
64
+ }
65
+ };
66
+ return async (req, next) => {
67
+ const requested = req.headers.get('origin');
68
+ const preflight = req.method === 'OPTIONS' && requested !== null && req.headers.has('access-control-request-method');
69
+ if (preflight) {
70
+ const headers = new Headers();
71
+ applyCommon(headers, requested, req);
72
+ if (headers.has('access-control-allow-origin')) {
73
+ headers.set('access-control-allow-methods', methods);
74
+ const requestedHeaders = req.headers.get('access-control-request-headers');
75
+ const allowHeaders = allowedHeaders ?? requestedHeaders ?? '';
76
+ if (allowHeaders !== '') {
77
+ headers.set('access-control-allow-headers', allowHeaders);
78
+ }
79
+ if (allowedHeaders === undefined && requestedHeaders !== null) {
80
+ appendVary(headers, 'Access-Control-Request-Headers');
81
+ }
82
+ if (maxAge !== undefined) {
83
+ headers.set('access-control-max-age', maxAge);
84
+ }
85
+ }
86
+ return new Response(null, { status: 204, headers });
87
+ }
88
+ const response = await next();
89
+ const headers = response.headers;
90
+ applyCommon(headers, requested, req);
91
+ if (exposedHeaders !== undefined && headers.has('access-control-allow-origin')) {
92
+ headers.set('access-control-expose-headers', exposedHeaders);
93
+ }
94
+ return response;
95
+ };
96
+ };
97
+ //# sourceMappingURL=cors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/http/cors.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,11 @@
2
2
  * @module
3
3
  * HTTP layer for Soda: controllers, route decorators, request context, validation, exceptions.
4
4
  */
5
- export { body, context, header, param, query } from './arguments.ts';
5
+ export { body, context, cookie, form, header, param, query, value } from './arguments.ts';
6
6
  export type { Argument, ArgumentFor, ArgumentKind, ArgumentValues } from './arguments.ts';
7
7
  export { Context } from './context.ts';
8
+ export { CookieSigner, signed } from './cookies.ts';
9
+ export { ContextKey } from './context-key.ts';
8
10
  export type { ContextParams, ParamNameOf } from './context.ts';
9
11
  export { All, Controller, Delete, Get, Head, Header, HttpCode, Options, Patch, Post, Put, Route } from './decorators.ts';
10
12
  export type { ArgumentsRouteDecorator, MethodMetadataDecorator, MethodRouteDecoratorFactory, RouteDecorator, RouteDecoratorFactory, RouteHandlerMethod, } from './decorators.ts';
@@ -15,10 +17,14 @@ export type { HttpExceptionBody, HttpExceptionOptions } from './exceptions.ts';
15
17
  export { boolean, int, number, uuid } from './parsers.ts';
16
18
  export type { Parsed, Parser, ParserOptions, ValueParser } from './parsers.ts';
17
19
  export { buildRoutes, controllerRoutes } from './routes.ts';
18
- export type { BuiltRoutes, ControllerRoutesOptions } from './routes.ts';
20
+ export type { BuiltRoutes, ControllerRoutesOptions, MappedController } from './routes.ts';
19
21
  export type { InferOutput, StandardSchemaV1 } from './schema.ts';
20
22
  export type { AnyParams, PathParams } from './types.ts';
21
23
  export { Catch, createDecorator, UseFilters, UseGuards, UseInterceptors } from './enhancers.ts';
22
24
  export type { CallHandler, CanActivate, ClassOrMethodDecorator, Enhancers, ExceptionFilter, FilterFunction, FilterLike, Guard, GuardFunction, Interceptor, InterceptorFunction, InterceptorLike, MetadataDecorator, } from './enhancers.ts';
23
25
  export type { RouteInfo } from './context.ts';
26
+ export { cors } from './cors.ts';
27
+ export type { CorsOptions } from './cors.ts';
28
+ export type { Middleware, MiddlewareFunction, NestMiddleware, Next } from './middleware.ts';
29
+ export type { FormFields, FormLimits, FormValue } from './body.ts';
24
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACxH,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,cAAc,EACd,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,4BAA4B,EAC5B,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACzD,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC3D,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACvE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAChE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC/F,YAAY,EACV,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,SAAS,EACT,eAAe,EACf,cAAc,EACd,UAAU,EACV,KAAK,EACL,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACzF,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACxH,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,cAAc,EACd,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,4BAA4B,EAC5B,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACzD,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC3D,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACzF,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAChE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC/F,YAAY,EACV,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,SAAS,EACT,eAAe,EACf,cAAc,EACd,UAAU,EACV,KAAK,EACL,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3F,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA"}
@@ -2,12 +2,15 @@
2
2
  * @module
3
3
  * HTTP layer for Soda: controllers, route decorators, request context, validation, exceptions.
4
4
  */
5
- export { body, context, header, param, query } from './arguments.js';
5
+ export { body, context, cookie, form, header, param, query, value } from './arguments.js';
6
6
  export { Context } from './context.js';
7
+ export { CookieSigner, signed } from './cookies.js';
8
+ export { ContextKey } from './context-key.js';
7
9
  export { All, Controller, Delete, Get, Head, Header, HttpCode, Options, Patch, Post, Put, Route } from './decorators.js';
8
10
  export { ControllerError } from './errors.js';
9
11
  export { BadRequestException, ConflictException, ForbiddenException, HttpException, InternalServerErrorException, NotFoundException, PayloadTooLargeException, ServiceUnavailableException, TooManyRequestsException, UnauthorizedException, UnprocessableEntityException, UnsupportedMediaTypeException, } from './exceptions.js';
10
12
  export { boolean, int, number, uuid } from './parsers.js';
11
13
  export { buildRoutes, controllerRoutes } from './routes.js';
12
14
  export { Catch, createDecorator, UseFilters, UseGuards, UseInterceptors } from './enhancers.js';
15
+ export { cors } from './cors.js';
13
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AASxH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,4BAA4B,EAC5B,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI3D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEzF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AASxH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,4BAA4B,EAC5B,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI3D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAiB/F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @module
3
+ * Application middleware: runs around every request, before routing.
4
+ *
5
+ * Unlike guards and interceptors, which belong to a route, middleware sees
6
+ * every request: unknown paths (404), wrong methods (405), CORS preflights.
7
+ * That is where CORS, request ids, access logs or compression belong.
8
+ *
9
+ * ```ts
10
+ * const requestId: MiddlewareFunction = async (req, next) => {
11
+ * const response = await next()
12
+ *
13
+ * response.headers.set('x-request-id', crypto.randomUUID())
14
+ *
15
+ * return response
16
+ * }
17
+ *
18
+ * await createApp(AppModule, { middleware: [cors({ origin: 'https://app.example.com' }), requestId] })
19
+ * ```
20
+ *
21
+ * As guards: a class is created once by the container (root module) and gets
22
+ * lifecycle hooks, a function runs where `inject()` works, an instance is used as is.
23
+ */
24
+ import type { Constructor } from '../di/index.ts';
25
+ import type { NativeHandler } from '../routing/index.ts';
26
+ /** Continues with the next middleware, then the route. */
27
+ export type Next = () => Promise<Response>;
28
+ /** Class middleware. Like Nest's `NestMiddleware`, for the Fetch API. */
29
+ export interface NestMiddleware {
30
+ use(req: Request, next: Next): Response | Promise<Response>;
31
+ }
32
+ /** Function middleware; `inject()` works inside it, before the first `await`. */
33
+ export type MiddlewareFunction = (req: Request, next: Next) => Response | Promise<Response>;
34
+ /** What `middleware` accepts. */
35
+ export type Middleware = Constructor<NestMiddleware> | NestMiddleware | MiddlewareFunction;
36
+ type Step = (req: Request, next: Next) => Response | Promise<Response>;
37
+ /**
38
+ * Turns middleware declarations into steps. Classes are created now, inside
39
+ * `runInContext`, and passed to `onCreate` for their lifecycle hooks.
40
+ */
41
+ export declare const resolveMiddleware: (middleware: readonly Middleware[], runInContext: <R>(fn: () => R) => R, onCreate: (instance: unknown) => void) => Step[];
42
+ /**
43
+ * Wraps `handler` with the middleware steps, first one outermost.
44
+ * Errors of middleware go to `onError`, which builds the response.
45
+ */
46
+ export declare const withMiddleware: <R extends Request>(steps: readonly Step[], handler: (req: R) => Response | Promise<Response>, onError: (error: unknown, req: Request) => Response) => ((req: R) => Promise<Response>);
47
+ /**
48
+ * Applies middleware to every native route and to the fallback of a compiled table.
49
+ * Without middleware, the table is returned unchanged: no wrapper on the request path.
50
+ */
51
+ export declare const applyMiddleware: (steps: readonly Step[], routes: Record<string, NativeHandler>, fetch: (req: Request) => Response | Promise<Response>, onError: (error: unknown, req: Request) => Response) => {
52
+ routes: Record<string, NativeHandler>;
53
+ fetch: (req: Request) => Response | Promise<Response>;
54
+ };
55
+ export {};
56
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/http/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,0DAA0D;AAC1D,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE1C,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC5D;AAED,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE3F,iCAAiC;AACjC,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,kBAAkB,CAAA;AAE1F,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAWtE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,eAChB,SAAS,UAAU,EAAE,gBACnB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,YACzB,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,KACpC,IAAI,EAqBN,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,OAAO,SACvC,SAAS,IAAI,EAAE,WACb,CAAC,GAAG,EAAE,CAAC,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WACxC,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,QAAQ,KAClD,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAShC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,UACnB,SAAS,IAAI,EAAE,UACd,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,SAC9B,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAC5C,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,QAAQ,KAClD;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CAYhG,CAAA"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @module
3
+ * Application middleware: runs around every request, before routing.
4
+ *
5
+ * Unlike guards and interceptors, which belong to a route, middleware sees
6
+ * every request: unknown paths (404), wrong methods (405), CORS preflights.
7
+ * That is where CORS, request ids, access logs or compression belong.
8
+ *
9
+ * ```ts
10
+ * const requestId: MiddlewareFunction = async (req, next) => {
11
+ * const response = await next()
12
+ *
13
+ * response.headers.set('x-request-id', crypto.randomUUID())
14
+ *
15
+ * return response
16
+ * }
17
+ *
18
+ * await createApp(AppModule, { middleware: [cors({ origin: 'https://app.example.com' }), requestId] })
19
+ * ```
20
+ *
21
+ * As guards: a class is created once by the container (root module) and gets
22
+ * lifecycle hooks, a function runs where `inject()` works, an instance is used as is.
23
+ */
24
+ /** Runs a step, turning a synchronous throw into a rejection. */
25
+ const settle = (step) => {
26
+ try {
27
+ return Promise.resolve(step());
28
+ }
29
+ catch (error) {
30
+ return Promise.reject(error);
31
+ }
32
+ };
33
+ /**
34
+ * Turns middleware declarations into steps. Classes are created now, inside
35
+ * `runInContext`, and passed to `onCreate` for their lifecycle hooks.
36
+ */
37
+ export const resolveMiddleware = (middleware, runInContext, onCreate) => {
38
+ const steps = [];
39
+ for (const entry of middleware) {
40
+ if (typeof entry === 'function' && typeof entry.prototype?.use === 'function') {
41
+ const instance = runInContext(() => new entry());
42
+ onCreate(instance);
43
+ steps.push((req, next) => instance.use(req, next));
44
+ }
45
+ else if (typeof entry === 'function') {
46
+ const fn = entry;
47
+ steps.push((req, next) => runInContext(() => fn(req, next)));
48
+ }
49
+ else if (typeof entry === 'object' && entry !== null && typeof entry.use === 'function') {
50
+ steps.push((req, next) => entry.use(req, next));
51
+ }
52
+ else {
53
+ throw new TypeError(`Invalid middleware: ${String(entry)} is neither a function nor an object with use()`);
54
+ }
55
+ }
56
+ return steps;
57
+ };
58
+ /**
59
+ * Wraps `handler` with the middleware steps, first one outermost.
60
+ * Errors of middleware go to `onError`, which builds the response.
61
+ */
62
+ export const withMiddleware = (steps, handler, onError) => {
63
+ const count = steps.length;
64
+ return (req) => {
65
+ const call = (index) => index === count ? settle(() => handler(req)) : settle(() => steps[index](req, () => call(index + 1)));
66
+ return call(0).catch((error) => onError(error, req));
67
+ };
68
+ };
69
+ /**
70
+ * Applies middleware to every native route and to the fallback of a compiled table.
71
+ * Without middleware, the table is returned unchanged: no wrapper on the request path.
72
+ */
73
+ export const applyMiddleware = (steps, routes, fetch, onError) => {
74
+ if (steps.length === 0) {
75
+ return { routes, fetch };
76
+ }
77
+ const wrapped = {};
78
+ for (const key of Object.keys(routes)) {
79
+ wrapped[key] = withMiddleware(steps, routes[key], onError);
80
+ }
81
+ return { routes: wrapped, fetch: withMiddleware(steps, fetch, onError) };
82
+ };
83
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/http/middleware.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  * ctx.query('page', int({ optional: true })) // number | undefined
11
11
  * ```
12
12
  */
13
+ import { BadRequestException } from './exceptions.ts';
13
14
  import type { InferOutput, StandardSchemaV1 } from './schema.ts';
14
15
  /**
15
16
  * Turns a raw string (`undefined` when absent) into a value, or throws an `HttpException`.
@@ -28,6 +29,8 @@ export interface ParserOptions {
28
29
  type Result<T, O extends ParserOptions> = O extends {
29
30
  readonly optional: true;
30
31
  } ? T | undefined : T;
32
+ /** The `400` of a value that is missing or not what a parser expects. */
33
+ export declare const failure: (name: string, expected: string) => BadRequestException;
31
34
  /**
32
35
  * Integer within `Number.MAX_SAFE_INTEGER`. Unlike Nest's `ParseIntPipe`,
33
36
  * `'99999999999999999999'` is rejected instead of being silently rounded.
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/http/parsers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEhE;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,CAAA;CAC/D;AAED,0EAA0E;AAC1E,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC,CAAC,CAAA;AAEhF,8BAA8B;AAC9B,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAE3G,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA;AAiCnG;;;GAGG;AACH,eAAO,MAAM,GAAG,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,YAAY,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAS9D,CAAA;AAEhC,uDAAuD;AACvD,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,YAAY,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CASjE,CAAA;AAEhC,6BAA6B;AAC7B,eAAO,MAAM,OAAO,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,YAAY,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAGhG,CAAA;AAEH,6CAA6C;AAC7C,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,YAAY,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAC6B,CAAA;AAE5H;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,MAAM,GAAG,SAAS,QAAQ,MAAM,KAAG,MAAM,CAAC,CAAC,CACK,CAAA"}
1
+ {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/http/parsers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEhE;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,CAAA;CAC/D;AAED,0EAA0E;AAC1E,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC,CAAC,CAAA;AAEhF,8BAA8B;AAC9B,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAE3G,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA;AAMnG,yEAAyE;AACzE,eAAO,MAAM,OAAO,SAAU,MAAM,YAAY,MAAM,KAAG,mBAC6B,CAAA;AA0BtF;;;GAGG;AACH,eAAO,MAAM,GAAG,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,YAAY,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAS9D,CAAA;AAEhC,uDAAuD;AACvD,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,YAAY,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CASjE,CAAA;AAEhC,6BAA6B;AAC7B,eAAO,MAAM,OAAO,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,YAAY,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAGhG,CAAA;AAEH,6CAA6C;AAC7C,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,EAAE,YAAY,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAC6B,CAAA;AAE5H;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,MAAM,GAAG,SAAS,QAAQ,MAAM,KAAG,MAAM,CAAC,CAAC,CACK,CAAA"}
@@ -15,7 +15,8 @@ import { isStandardSchema, validateSync } from './schema.js';
15
15
  const INTEGER = /^-?\d+$/;
16
16
  const NUMBER = /^-?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?$/;
17
17
  const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
18
- const failure = (name, expected) => new BadRequestException(`Validation failed for "${name}" (${expected} is expected)`);
18
+ /** The `400` of a value that is missing or not what a parser expects. */
19
+ export const failure = (name, expected) => new BadRequestException(`Validation failed for "${name}" (${expected} is expected)`);
19
20
  const createParser = (expected, convert, options) => ({
20
21
  parse: (value, name) => {
21
22
  if (value === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/http/parsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/http/parsers.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  * ('', '/', '/') => '/'
11
11
  * ```
12
12
  */
13
- import type { Container } from '../di/index.ts';
13
+ import type { Constructor, Container } from '../di/index.ts';
14
14
  import type { RouteDefinition } from '../routing/index.ts';
15
15
  import type { FilterLike, Guard, InterceptorLike } from './enhancers.ts';
16
16
  /**
@@ -28,12 +28,21 @@ export interface ControllerRoutesOptions {
28
28
  /** Receives errors that no filter answered and that are not `HttpException`s (sent as 500). Defaults to `console.error`. */
29
29
  readonly onError?: (error: unknown, req: Request) => void;
30
30
  }
31
+ /** A controller and the routes made from it, as `createApp` logs them at startup. */
32
+ export interface MappedController {
33
+ readonly controller: Constructor<unknown>;
34
+ /** Path of the controller, with the global prefix. */
35
+ readonly path: string;
36
+ readonly routes: readonly RouteDefinition[];
37
+ }
31
38
  /**
32
39
  * Routes of every controller, and the guards, interceptors and filters created
33
40
  * for them from classes (whose lifecycle hooks the application runs).
34
41
  */
35
42
  export interface BuiltRoutes {
36
43
  readonly routes: RouteDefinition[];
44
+ /** In module order. */
45
+ readonly controllers: readonly MappedController[];
37
46
  /** In creation order. */
38
47
  readonly enhancers: readonly unknown[];
39
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/http/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAgC,MAAM,gBAAgB,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAQ1D,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAMxE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,0GAA0G;IAC1G,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAA;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAClD,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;IACxC,4HAA4H;IAC5H,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1D;AAmND;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAA;IAClC,yBAAyB;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAA;CACvC;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,cAAe,SAAS,YAAW,uBAAuB,KAAQ,WAQzF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,cAAe,SAAS,YAAW,uBAAuB,KAAQ,eAAe,EACtE,CAAA"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/http/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAgC,MAAM,gBAAgB,CAAA;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAQ1D,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAMxE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,0GAA0G;IAC1G,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAA;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAClD,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;IACxC,4HAA4H;IAC5H,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1D;AAwND,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACzC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAA;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAA;IAClC,uBAAuB;IACvB,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACjD,yBAAyB;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAA;CACvC;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,cAAe,SAAS,YAAW,uBAAuB,KAAQ,WAQzF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,cAAe,SAAS,YAAW,uBAAuB,KAAQ,eAAe,EACtE,CAAA"}
@@ -95,6 +95,7 @@ const resolveAll = (levels, globalResolve, moduleResolve) => {
95
95
  */
96
96
  class RoutesBuilder {
97
97
  routes = [];
98
+ controllers = [];
98
99
  /** Guards, interceptors and filters created from classes, in creation order. */
99
100
  enhancers = [];
100
101
  #options;
@@ -115,10 +116,12 @@ class RoutesBuilder {
115
116
  throw new ControllerError('NOT_A_CONTROLLER', `${entry.controller.name} is listed in the controllers of ${entry.module.name} but has no @Controller()`);
116
117
  }
117
118
  const basePath = joinPaths(this.#options.prefix ?? '', controllerPath);
119
+ const start = this.routes.length;
118
120
  // The most derived function: an override without route decorators has no metadata.
119
121
  for (const name of methodNames(entry.instance)) {
120
122
  this.#addMethod(entry, basePath, name);
121
123
  }
124
+ this.controllers.push({ controller: entry.controller, path: basePath, routes: this.routes.slice(start) });
122
125
  }
123
126
  #resolverOf(entry) {
124
127
  let resolver = this.#modules.get(entry.module);
@@ -176,7 +179,7 @@ export const buildRoutes = (container, options = {}) => {
176
179
  for (const entry of container.controllers) {
177
180
  builder.addController(entry);
178
181
  }
179
- return { routes: builder.routes, enhancers: builder.enhancers };
182
+ return { routes: builder.routes, controllers: builder.controllers, enhancers: builder.enhancers };
180
183
  };
181
184
  /**
182
185
  * Route definitions of every controller of `container`, ready for `compileRoutes`.
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/http/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/http/routes.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -33,5 +33,6 @@
33
33
  export * from './app/index.ts';
34
34
  export * from './di/index.ts';
35
35
  export * from './http/index.ts';
36
+ export * from './logger/index.ts';
36
37
  export * from './routing/index.ts';
37
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
package/dist/index.js CHANGED
@@ -33,5 +33,6 @@
33
33
  export * from './app/index.js';
34
34
  export * from './di/index.js';
35
35
  export * from './http/index.js';
36
+ export * from './logger/index.js';
36
37
  export * from './routing/index.js';
37
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @module
3
+ * JWS algorithms (RFC 7518) on WebCrypto, and the keys they take.
4
+ */
5
+ import type { webcrypto } from 'node:crypto';
6
+ /** Algorithms a token can be signed with. `none` is not one of them. */
7
+ export type JwtAlgorithm = 'HS256' | 'HS384' | 'HS512' | 'RS256' | 'RS384' | 'RS512' | 'PS256' | 'PS384' | 'PS512' | 'ES256' | 'ES384' | 'ES512' | 'EdDSA';
8
+ /**
9
+ * A key: a `CryptoKey`, a JWK, a PEM string (`PRIVATE KEY` in PKCS #8 or
10
+ * `PUBLIC KEY` in SPKI), or the secret of an HMAC algorithm.
11
+ */
12
+ export type JwtKey = CryptoKey | webcrypto.JsonWebKey | string;
13
+ export declare const isJwtAlgorithm: (value: unknown) => value is JwtAlgorithm;
14
+ export declare const isHmac: (algorithm: JwtAlgorithm) => boolean;
15
+ /** Imports `key` once for `usage` with `algorithm`. */
16
+ export declare const importKey: (key: JwtKey, algorithm: JwtAlgorithm, usage: 'sign' | 'verify') => Promise<CryptoKey>;
17
+ export declare const signBytes: (algorithm: JwtAlgorithm, key: CryptoKey, data: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>;
18
+ export declare const verifyBytes: (algorithm: JwtAlgorithm, key: CryptoKey, signature: Uint8Array<ArrayBuffer>, data: Uint8Array<ArrayBuffer>) => Promise<boolean>;
19
+ //# sourceMappingURL=algorithms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"algorithms.d.ts","sourceRoot":"","sources":["../../src/jwt/algorithms.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,wEAAwE;AACxE,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,CAAA;AAEX;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC,UAAU,GAAG,MAAM,CAAA;AAwC9D,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,KAAK,IAAI,YAA6E,CAAA;AAEtI,eAAO,MAAM,MAAM,cAAe,YAAY,KAAG,OAAqC,CAAA;AAKtF,uDAAuD;AACvD,eAAO,MAAM,SAAS,QAAe,MAAM,aAAa,YAAY,SAAS,MAAM,GAAG,QAAQ,KAAG,OAAO,CAAC,SAAS,CA2BjH,CAAA;AAED,eAAO,MAAM,SAAS,cAAqB,YAAY,OAAO,SAAS,QAAQ,UAAU,CAAC,WAAW,CAAC,KAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CACvD,CAAA;AAEjF,eAAO,MAAM,WAAW,cACX,YAAY,OAClB,SAAS,aACH,UAAU,CAAC,WAAW,CAAC,QAC5B,UAAU,CAAC,WAAW,CAAC,KAC5B,OAAO,CAAC,OAAO,CAA2E,CAAA"}