raffel 1.1.35 → 1.1.39

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 (52) hide show
  1. package/dist/http/context.d.ts.map +1 -1
  2. package/dist/http/context.js +6 -3
  3. package/dist/http/context.js.map +1 -1
  4. package/dist/server/discovery-utils.d.ts.map +1 -1
  5. package/dist/server/discovery-utils.js +5 -1
  6. package/dist/server/discovery-utils.js.map +1 -1
  7. package/dist/server/fs-routes/index.d.ts +1 -1
  8. package/dist/server/fs-routes/index.d.ts.map +1 -1
  9. package/dist/server/fs-routes/index.js.map +1 -1
  10. package/dist/server/fs-routes/loader.d.ts.map +1 -1
  11. package/dist/server/fs-routes/loader.js +15 -3
  12. package/dist/server/fs-routes/loader.js.map +1 -1
  13. package/dist/server/fs-routes/resources/loader.d.ts.map +1 -1
  14. package/dist/server/fs-routes/resources/loader.js +43 -4
  15. package/dist/server/fs-routes/resources/loader.js.map +1 -1
  16. package/dist/server/fs-routes/types.d.ts +10 -1
  17. package/dist/server/fs-routes/types.d.ts.map +1 -1
  18. package/dist/server/http-lifecycle/http-aware-input.d.ts +8 -0
  19. package/dist/server/http-lifecycle/http-aware-input.d.ts.map +1 -0
  20. package/dist/server/http-lifecycle/http-aware-input.js +265 -0
  21. package/dist/server/http-lifecycle/http-aware-input.js.map +1 -0
  22. package/dist/server/http-lifecycle/index.d.ts +2 -0
  23. package/dist/server/http-lifecycle/index.d.ts.map +1 -1
  24. package/dist/server/http-lifecycle/index.js +31 -0
  25. package/dist/server/http-lifecycle/index.js.map +1 -1
  26. package/dist/server/index.d.ts +1 -1
  27. package/dist/server/index.d.ts.map +1 -1
  28. package/dist/server/index.js.map +1 -1
  29. package/dist/server/orchestration/registration.d.ts.map +1 -1
  30. package/dist/server/orchestration/registration.js +3 -2
  31. package/dist/server/orchestration/registration.js.map +1 -1
  32. package/dist/ui/http/context.d.ts +172 -0
  33. package/dist/ui/http/context.d.ts.map +1 -0
  34. package/dist/ui/http/rate-limit-headers.d.ts +36 -0
  35. package/dist/ui/http/rate-limit-headers.d.ts.map +1 -0
  36. package/dist/ui/http/web-types.d.ts +38 -0
  37. package/dist/ui/http/web-types.d.ts.map +1 -0
  38. package/dist/ui/server/fs-routes/index.d.ts +1 -1
  39. package/dist/ui/server/fs-routes/index.d.ts.map +1 -1
  40. package/dist/ui/server/fs-routes/loader.d.ts.map +1 -1
  41. package/dist/ui/server/fs-routes/resources/loader.d.ts.map +1 -1
  42. package/dist/ui/server/fs-routes/types.d.ts +10 -1
  43. package/dist/ui/server/fs-routes/types.d.ts.map +1 -1
  44. package/dist/ui/server/http-lifecycle/http-aware-input.d.ts +8 -0
  45. package/dist/ui/server/http-lifecycle/http-aware-input.d.ts.map +1 -0
  46. package/dist/ui/server/http-lifecycle/index.d.ts +83 -0
  47. package/dist/ui/server/http-lifecycle/index.d.ts.map +1 -0
  48. package/dist/ui/utils/client-ip.d.ts +26 -0
  49. package/dist/ui/utils/client-ip.d.ts.map +1 -0
  50. package/dist/ui/utils/context-utils.d.ts +12 -0
  51. package/dist/ui/utils/context-utils.d.ts.map +1 -0
  52. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ import type { Context } from '../../types/index.js';
2
+ type HttpFacadeOptions = {
3
+ preferFacadeKeys?: boolean;
4
+ };
5
+ export declare function createHttpAwareInput(input: unknown, ctx: Context, options?: HttpFacadeOptions): unknown;
6
+ export declare function createHttpAwareProcedureHandler<THandler extends (input: unknown, ctx: Context) => unknown>(handler: THandler): THandler;
7
+ export {};
8
+ //# sourceMappingURL=http-aware-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-aware-input.d.ts","sourceRoot":"","sources":["../../../../src/server/http-lifecycle/http-aware-input.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGnD,KAAK,iBAAiB,GAAG;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAoND,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CA2C3G;AAYD,wBAAgB,+BAA+B,CAAC,QAAQ,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,EACxG,OAAO,EAAE,QAAQ,GAChB,QAAQ,CAUV"}
@@ -0,0 +1,83 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { Router } from '../../core/router.js';
3
+ import type { Context, ContextSeed, Envelope } from '../../types/index.js';
4
+ import { type TrustedProxyConfig } from '../../utils/client-ip.js';
5
+ import { type Codec } from '../../utils/content-codecs.js';
6
+ export { createHttpAwareInput, createHttpAwareProcedureHandler, } from './http-aware-input.js';
7
+ export declare class HttpBodyParseError extends Error {
8
+ code: 'PAYLOAD_TOO_LARGE' | 'PARSE_ERROR';
9
+ constructor(code: 'PAYLOAD_TOO_LARGE' | 'PARSE_ERROR', message: string);
10
+ }
11
+ export declare function getHeaderValue(value: string | string[] | undefined): string | undefined;
12
+ export declare function requestHasBody(req: IncomingMessage): boolean;
13
+ export declare function searchParamsToQuery(params: URLSearchParams): Record<string, unknown>;
14
+ export declare function parseJsonQueryParams(params: URLSearchParams): Record<string, unknown>;
15
+ export declare function parseHttpRequestBody(req: IncomingMessage, maxSize: number, codec: Codec): Promise<{
16
+ payload: unknown;
17
+ size: number;
18
+ raw?: Buffer;
19
+ }>;
20
+ export declare function sendEncodedResponse(res: ServerResponse, status: number, data: unknown, codec: Codec, includeBody?: boolean): void;
21
+ export declare function sendFetchResponse(res: ServerResponse, response: Response, includeBody?: boolean): Promise<void>;
22
+ export declare function sendErrorResponse(res: ServerResponse, status: number, code: string, message: string, details?: unknown, includeBody?: boolean): void;
23
+ export declare function resolveHttpResponseCodec(req: IncomingMessage, res: ServerResponse, codecs: Codec[]): Codec | null;
24
+ export declare function resolveHttpRequestBody(args: {
25
+ req: IncomingMessage;
26
+ res: ServerResponse;
27
+ codecs: Codec[];
28
+ maxBodySize: number;
29
+ }): Promise<{
30
+ payload: unknown;
31
+ size: number;
32
+ raw?: Buffer;
33
+ } | null>;
34
+ export declare function buildHttpContextSeed(options: {
35
+ req: IncomingMessage;
36
+ res?: ServerResponse;
37
+ method: string;
38
+ url: URL;
39
+ input: {
40
+ body?: unknown;
41
+ params?: Record<string, string>;
42
+ query?: Record<string, unknown>;
43
+ };
44
+ rawBody?: Buffer;
45
+ trustedProxies?: TrustedProxyConfig;
46
+ }): {
47
+ metadata: Record<string, string>;
48
+ seed: ContextSeed;
49
+ };
50
+ export declare function attachHttpAbortHandlers(req: IncomingMessage, res: ServerResponse, abortController: AbortController): void;
51
+ export declare function createHttpRequestContext(args: {
52
+ req: IncomingMessage;
53
+ res: ServerResponse;
54
+ method: string;
55
+ url: URL;
56
+ input: {
57
+ body?: unknown;
58
+ params?: Record<string, string>;
59
+ query?: Record<string, unknown>;
60
+ };
61
+ rawBody?: Buffer;
62
+ trustedProxies?: TrustedProxyConfig;
63
+ contextFactory?: (req: IncomingMessage) => ContextSeed | Promise<ContextSeed>;
64
+ abortController?: AbortController;
65
+ }): Promise<{
66
+ ctx: Context;
67
+ metadata: Record<string, string>;
68
+ requestId: string;
69
+ abortController: AbortController;
70
+ }>;
71
+ export declare function dispatchHttpEnvelope(args: {
72
+ res: ServerResponse;
73
+ router: Router;
74
+ procedure: string;
75
+ type?: Envelope['type'];
76
+ payload: unknown;
77
+ metadata: Record<string, string>;
78
+ ctx: Context;
79
+ responseCodec: Codec;
80
+ method: string;
81
+ successStatus?: number;
82
+ }): Promise<void>;
83
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/http-lifecycle/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export type TrustedProxyConfig = false | string[];
2
+ export interface RequestSocketInfo {
3
+ remoteAddress?: string;
4
+ remotePort?: number;
5
+ }
6
+ export type ClientIpSource = 'socket' | 'x-forwarded-for' | 'x-real-ip' | 'unknown';
7
+ export interface ClientIpResolution {
8
+ ip?: string;
9
+ source: ClientIpSource;
10
+ remoteAddress?: string;
11
+ remotePort?: number;
12
+ forwardedChain: string[];
13
+ }
14
+ type HeaderValue = string | string[] | undefined;
15
+ type HeaderRecord = Headers | Record<string, HeaderValue> | undefined;
16
+ export declare function attachRequestSocketInfo(request: Request, info: RequestSocketInfo): Request;
17
+ export declare function getRequestSocketInfo(request: Request): RequestSocketInfo | undefined;
18
+ export declare function resolveClientIp(options: {
19
+ headers?: HeaderRecord;
20
+ remoteAddress?: string;
21
+ remotePort?: number;
22
+ trustedProxies?: TrustedProxyConfig;
23
+ }): ClientIpResolution;
24
+ export declare function resolveRequestClientIp(request: Request, trustedProxies?: TrustedProxyConfig): ClientIpResolution;
25
+ export {};
26
+ //# sourceMappingURL=client-ip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-ip.d.ts","sourceRoot":"","sources":["../../../src/utils/client-ip.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,EAAE,CAAA;AAEjD,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS,CAAA;AAEnF,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,cAAc,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAKD,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;AAChD,KAAK,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,CAAA;AAwHrE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAG1F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAEpF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,kBAAkB,CAAA;CACpC,GAAG,kBAAkB,CAgErB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,cAAc,GAAE,kBAA0B,GACzC,kBAAkB,CAQpB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared context utilities for protocol adapters.
3
+ */
4
+ import type { Context, ContextSeed } from '../types/index.js';
5
+ /**
6
+ * Create a request context whose AbortSignal is merged with an upstream signal.
7
+ * The abortController is aborted whenever the upstream signal fires (or
8
+ * immediately if it is already aborted).
9
+ */
10
+ export declare function createAbortableContext(requestId: string, overrides: ContextSeed | undefined, abortController: AbortController): Context;
11
+ export declare function createAbortableContextAsync(requestId: string, overrides: ContextSeed | Promise<ContextSeed> | undefined, abortController: AbortController): Promise<Context>;
12
+ //# sourceMappingURL=context-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/context-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG7D;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,eAAe,EAAE,eAAe,GAC/B,OAAO,CAqBT;AAED,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EACzD,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,OAAO,CAAC,CAGlB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "raffel",
3
- "version": "1.1.35",
3
+ "version": "1.1.39",
4
4
  "description": "Unified multi-protocol server runtime. One core, multiple transports.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",