@lovrozagar/honey 0.1.0 → 0.2.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.
- package/README.md +1596 -6
- package/dist/accepts.d.ts +6 -0
- package/dist/accepts.d.ts.map +1 -0
- package/dist/body-limit.d.ts +22 -0
- package/dist/body-limit.d.ts.map +1 -0
- package/dist/build/index.d.ts +42 -0
- package/dist/build/index.d.ts.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/client/error.d.ts +14 -0
- package/dist/client/error.d.ts.map +1 -0
- package/dist/client/http.d.ts +88 -0
- package/dist/client/http.d.ts.map +1 -0
- package/dist/client/index.d.ts +22 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/sdk.d.ts +34 -0
- package/dist/client/sdk.d.ts.map +1 -0
- package/dist/client/sse.d.ts +10 -0
- package/dist/client/sse.d.ts.map +1 -0
- package/dist/client/types.d.ts +124 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/ws.d.ts +15 -0
- package/dist/client/ws.d.ts.map +1 -0
- package/dist/client-mcp/server.d.ts +10 -0
- package/dist/client-mcp/server.d.ts.map +1 -0
- package/dist/client-mcp/types.d.ts +16 -0
- package/dist/client-mcp/types.d.ts.map +1 -0
- package/dist/cloudflare/realtime.d.ts +30 -0
- package/dist/cloudflare/realtime.d.ts.map +1 -0
- package/dist/codegen-go-cli.d.ts +22 -0
- package/dist/codegen-go-cli.d.ts.map +1 -0
- package/dist/codegen-go.d.ts +29 -0
- package/dist/codegen-go.d.ts.map +1 -0
- package/dist/codegen-hash.d.ts +3 -0
- package/dist/codegen-hash.d.ts.map +1 -0
- package/dist/codegen-ir.d.ts +123 -0
- package/dist/codegen-ir.d.ts.map +1 -0
- package/dist/codegen-loaders.d.ts +12 -0
- package/dist/codegen-loaders.d.ts.map +1 -0
- package/dist/codegen-mcp.d.ts +13 -0
- package/dist/codegen-mcp.d.ts.map +1 -0
- package/dist/codegen-python.d.ts +21 -0
- package/dist/codegen-python.d.ts.map +1 -0
- package/dist/codegen-rust.d.ts +18 -0
- package/dist/codegen-rust.d.ts.map +1 -0
- package/dist/codegen-sanitize.d.ts +3 -0
- package/dist/codegen-sanitize.d.ts.map +1 -0
- package/dist/codegen-schema-naming.d.ts +22 -0
- package/dist/codegen-schema-naming.d.ts.map +1 -0
- package/dist/codegen.d.ts +178 -0
- package/dist/codegen.d.ts.map +1 -0
- package/dist/context.d.ts +56 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/cookie-sign.d.ts +3 -0
- package/dist/cookie-sign.d.ts.map +1 -0
- package/dist/cookie.d.ts +12 -0
- package/dist/cookie.d.ts.map +1 -0
- package/dist/cors.d.ts +13 -0
- package/dist/cors.d.ts.map +1 -0
- package/dist/crypto.d.ts +2 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/csrf.d.ts +9 -0
- package/dist/csrf.d.ts.map +1 -0
- package/dist/curl-logger.d.ts +33 -0
- package/dist/curl-logger.d.ts.map +1 -0
- package/dist/detect-runtime.d.ts +16 -0
- package/dist/detect-runtime.d.ts.map +1 -0
- package/dist/error.d.ts +21 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/errors.d.ts +40 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/etag.d.ts +9 -0
- package/dist/etag.d.ts.map +1 -0
- package/dist/feature-load.d.ts +3 -0
- package/dist/feature-load.d.ts.map +1 -0
- package/dist/go-type-emitter.d.ts +33 -0
- package/dist/go-type-emitter.d.ts.map +1 -0
- package/dist/honey-response.d.ts +82 -0
- package/dist/honey-response.d.ts.map +1 -0
- package/dist/i18n-slot.d.ts +7 -0
- package/dist/i18n-slot.d.ts.map +1 -0
- package/dist/i18n.d.ts +26 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/index.d.ts +470 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/init.d.ts +7 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/input.d.ts +6 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/ip-restrict.d.ts +12 -0
- package/dist/ip-restrict.d.ts.map +1 -0
- package/dist/logger.d.ts +45 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/meta-spec.d.ts +81 -0
- package/dist/meta-spec.d.ts.map +1 -0
- package/dist/middleware.d.ts +60 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/node-request.d.ts +59 -0
- package/dist/node-request.d.ts.map +1 -0
- package/dist/node.d.ts +13 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/openapi/register.d.ts +3 -0
- package/dist/openapi/register.d.ts.map +1 -0
- package/dist/openapi/scalar.d.ts +12 -0
- package/dist/openapi/scalar.d.ts.map +1 -0
- package/dist/openapi/spec-factory.d.ts +31 -0
- package/dist/openapi/spec-factory.d.ts.map +1 -0
- package/dist/openapi/spec.d.ts +19 -0
- package/dist/openapi/spec.d.ts.map +1 -0
- package/dist/openapi/swagger.d.ts +12 -0
- package/dist/openapi/swagger.d.ts.map +1 -0
- package/dist/plugin.d.ts +167 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/powered-by.d.ts +7 -0
- package/dist/powered-by.d.ts.map +1 -0
- package/dist/pretty-json.d.ts +10 -0
- package/dist/pretty-json.d.ts.map +1 -0
- package/dist/proxy.d.ts +51 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/python-type-emitter.d.ts +11 -0
- package/dist/python-type-emitter.d.ts.map +1 -0
- package/dist/realtime/buffer.d.ts +18 -0
- package/dist/realtime/buffer.d.ts.map +1 -0
- package/dist/realtime/bus.d.ts +11 -0
- package/dist/realtime/bus.d.ts.map +1 -0
- package/dist/realtime/longpoll.d.ts +23 -0
- package/dist/realtime/longpoll.d.ts.map +1 -0
- package/dist/realtime/protocol.d.ts +50 -0
- package/dist/realtime/protocol.d.ts.map +1 -0
- package/dist/realtime/route.d.ts +42 -0
- package/dist/realtime/route.d.ts.map +1 -0
- package/dist/realtime/runtime.d.ts +74 -0
- package/dist/realtime/runtime.d.ts.map +1 -0
- package/dist/request-id.d.ts +12 -0
- package/dist/request-id.d.ts.map +1 -0
- package/dist/request-to-curl.d.ts +9 -0
- package/dist/request-to-curl.d.ts.map +1 -0
- package/dist/response.d.ts +57 -0
- package/dist/response.d.ts.map +1 -0
- package/dist/rust-type-emitter.d.ts +32 -0
- package/dist/rust-type-emitter.d.ts.map +1 -0
- package/dist/secure-headers.d.ts +16 -0
- package/dist/secure-headers.d.ts.map +1 -0
- package/dist/serve-register.d.ts +2 -0
- package/dist/serve-register.d.ts.map +1 -0
- package/dist/serve-slot.d.ts +6 -0
- package/dist/serve-slot.d.ts.map +1 -0
- package/dist/serve.d.ts +21 -0
- package/dist/serve.d.ts.map +1 -0
- package/dist/server-timing.d.ts +9 -0
- package/dist/server-timing.d.ts.map +1 -0
- package/dist/static.d.ts +12 -0
- package/dist/static.d.ts.map +1 -0
- package/dist/telemetry/otel.d.ts +59 -0
- package/dist/telemetry/otel.d.ts.map +1 -0
- package/dist/testing.d.ts +24 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/timeout.d.ts +7 -0
- package/dist/timeout.d.ts.map +1 -0
- package/dist/tree.d.ts +90 -0
- package/dist/tree.d.ts.map +1 -0
- package/dist/ts-type-emitter.d.ts +4 -0
- package/dist/ts-type-emitter.d.ts.map +1 -0
- package/dist/type-emitter.d.ts +8 -0
- package/dist/type-emitter.d.ts.map +1 -0
- package/dist/type-extractor.d.ts +39 -0
- package/dist/type-extractor.d.ts.map +1 -0
- package/dist/types.d.ts +451 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/validation.d.ts +18 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/ws/bun.d.ts +28 -0
- package/dist/ws/bun.d.ts.map +1 -0
- package/dist/ws/cloudflare.d.ts +55 -0
- package/dist/ws/cloudflare.d.ts.map +1 -0
- package/dist/ws/deno.d.ts +13 -0
- package/dist/ws/deno.d.ts.map +1 -0
- package/dist/ws/node.d.ts +10 -0
- package/dist/ws/node.d.ts.map +1 -0
- package/dist/yaml.d.ts +4 -0
- package/dist/yaml.d.ts.map +1 -0
- package/docs/api-ref/go.md +82 -82
- package/docs/api-ref/python.md +82 -82
- package/docs/api-ref/rust.md +82 -82
- package/docs/api-ref/typescript.md +82 -82
- package/docs/invalidate-spec.md +13 -13
- package/docs/meta-spec.md +513 -0
- package/docs/packaging.md +85 -0
- package/docs/sdk.md +87 -73
- package/package.json +195 -51
- package/src/body-limit.ts +2 -1
- package/src/build/index.ts +2 -9
- package/src/cli.ts +2 -3
- package/src/client/http.ts +204 -223
- package/src/client/index.ts +6 -14
- package/src/client/sdk.ts +24 -17
- package/src/client/types.ts +4 -9
- package/src/client/ws.ts +3 -5
- package/src/client-mcp/server.ts +1 -4
- package/src/cloudflare/realtime.ts +8 -10
- package/src/codegen-go-cli.ts +74 -67
- package/src/codegen-go.ts +71 -51
- package/src/codegen-ir.ts +16 -27
- package/src/codegen-loaders.ts +5 -8
- package/src/codegen-mcp.ts +9 -27
- package/src/codegen-python.ts +47 -27
- package/src/codegen-rust.ts +110 -66
- package/src/codegen-sanitize.ts +1 -7
- package/src/codegen-schema-naming.ts +8 -2
- package/src/codegen.ts +299 -196
- package/src/context.ts +91 -95
- package/src/cookie-sign.ts +5 -13
- package/src/cookie.ts +1 -2
- package/src/cors.ts +4 -6
- package/src/crypto.ts +1 -4
- package/src/csrf.ts +3 -3
- package/src/curl-logger.ts +14 -32
- package/src/detect-runtime.ts +1 -3
- package/src/errors.ts +1 -3
- package/src/etag.ts +3 -4
- package/src/go-type-emitter.ts +45 -40
- package/src/honey-response.ts +1 -3
- package/src/i18n.ts +3 -12
- package/src/index.ts +1168 -1412
- package/src/ip-restrict.ts +2 -1
- package/src/logger.ts +13 -13
- package/src/meta-spec.ts +0 -0
- package/src/middleware.ts +111 -79
- package/src/node-request.ts +2 -1
- package/src/node.ts +9 -10
- package/src/openapi/register.ts +1 -2
- package/src/openapi/scalar.ts +9 -9
- package/src/openapi/spec-factory.ts +2 -2
- package/src/openapi/spec.ts +26 -19
- package/src/openapi/swagger.ts +9 -9
- package/src/plugin.ts +226 -256
- package/src/powered-by.ts +2 -1
- package/src/pretty-json.ts +2 -1
- package/src/proxy.ts +1 -3
- package/src/python-type-emitter.ts +37 -12
- package/src/realtime/route.ts +1 -1
- package/src/realtime/runtime.ts +9 -12
- package/src/request-id.ts +3 -4
- package/src/request-to-curl.ts +1 -4
- package/src/response.ts +150 -199
- package/src/rust-type-emitter.ts +66 -25
- package/src/secure-headers.ts +2 -1
- package/src/serve.ts +3 -12
- package/src/server-timing.ts +2 -1
- package/src/static.ts +3 -4
- package/src/telemetry/otel.ts +1 -6
- package/src/testing.ts +2 -11
- package/src/timeout.ts +2 -1
- package/src/tree.ts +12 -27
- package/src/ts-type-emitter.ts +71 -15
- package/src/type-emitter.ts +226 -237
- package/src/type-extractor.ts +260 -334
- package/src/types.ts +168 -68
- package/src/validation.ts +7 -30
- package/src/ws/bun.ts +2 -9
- package/src/ws/cloudflare.ts +13 -16
- package/src/ws/deno.ts +31 -40
- package/src/ws/node.ts +4 -19
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { type OpenApiSpecInput } from "./codegen.ts";
|
|
2
|
+
export type IRScalarType = "string" | "number" | "integer" | "boolean" | "null";
|
|
3
|
+
export type IRSchema = {
|
|
4
|
+
kind: "scalar";
|
|
5
|
+
type: IRScalarType;
|
|
6
|
+
format?: string;
|
|
7
|
+
enum?: (string | number | boolean)[];
|
|
8
|
+
} | {
|
|
9
|
+
kind: "const";
|
|
10
|
+
value: string | number | boolean;
|
|
11
|
+
} | {
|
|
12
|
+
kind: "object";
|
|
13
|
+
fields: IRField[];
|
|
14
|
+
additional?: IRSchema | false;
|
|
15
|
+
} | {
|
|
16
|
+
kind: "array";
|
|
17
|
+
items: IRSchema;
|
|
18
|
+
} | {
|
|
19
|
+
kind: "tuple";
|
|
20
|
+
items: IRSchema[];
|
|
21
|
+
} | {
|
|
22
|
+
kind: "union";
|
|
23
|
+
variants: IRSchema[];
|
|
24
|
+
discriminator?: IRDiscriminator;
|
|
25
|
+
} | {
|
|
26
|
+
kind: "allOf";
|
|
27
|
+
parts: IRSchema[];
|
|
28
|
+
} | {
|
|
29
|
+
kind: "ref";
|
|
30
|
+
name: string;
|
|
31
|
+
} | {
|
|
32
|
+
kind: "nullable";
|
|
33
|
+
inner: IRSchema;
|
|
34
|
+
} | {
|
|
35
|
+
kind: "binary";
|
|
36
|
+
} | {
|
|
37
|
+
kind: "unknown";
|
|
38
|
+
};
|
|
39
|
+
export type IRField = {
|
|
40
|
+
name: string;
|
|
41
|
+
schema: IRSchema;
|
|
42
|
+
required: boolean;
|
|
43
|
+
description?: string;
|
|
44
|
+
};
|
|
45
|
+
export type IRDiscriminator = {
|
|
46
|
+
propertyName: string;
|
|
47
|
+
mapping?: Record<string, string>;
|
|
48
|
+
};
|
|
49
|
+
export type IRParam = {
|
|
50
|
+
name: string;
|
|
51
|
+
schema: IRSchema;
|
|
52
|
+
description?: string;
|
|
53
|
+
};
|
|
54
|
+
export type IRMultipartPart = {
|
|
55
|
+
name: string;
|
|
56
|
+
/** "file" for schemas with kind === "binary" (or array-of-binary), otherwise "text". */
|
|
57
|
+
type: "file" | "text";
|
|
58
|
+
schema?: IRSchema;
|
|
59
|
+
};
|
|
60
|
+
export type IRBody = {
|
|
61
|
+
kind: "raw";
|
|
62
|
+
contentType: string;
|
|
63
|
+
schema: IRSchema;
|
|
64
|
+
required: boolean;
|
|
65
|
+
} | {
|
|
66
|
+
kind: "stream";
|
|
67
|
+
contentType: "application/octet-stream";
|
|
68
|
+
required: boolean;
|
|
69
|
+
} | {
|
|
70
|
+
kind: "multipart";
|
|
71
|
+
contentType: "multipart/form-data";
|
|
72
|
+
parts: IRMultipartPart[];
|
|
73
|
+
required: boolean;
|
|
74
|
+
};
|
|
75
|
+
export type IRResponse = {
|
|
76
|
+
status: string;
|
|
77
|
+
contentType?: string;
|
|
78
|
+
schema?: IRSchema;
|
|
79
|
+
};
|
|
80
|
+
export type IROperationExtensions = {
|
|
81
|
+
websocket?: true;
|
|
82
|
+
realtime?: true;
|
|
83
|
+
sse?: true;
|
|
84
|
+
deprecated?: true;
|
|
85
|
+
idempotencyKey?: true;
|
|
86
|
+
mcp?: true;
|
|
87
|
+
invalidates?: string[];
|
|
88
|
+
};
|
|
89
|
+
export type IROperation = {
|
|
90
|
+
id: string;
|
|
91
|
+
method: string;
|
|
92
|
+
path: string;
|
|
93
|
+
description?: string;
|
|
94
|
+
params: {
|
|
95
|
+
path: IRParam[];
|
|
96
|
+
query: IRParam[];
|
|
97
|
+
header: IRParam[];
|
|
98
|
+
};
|
|
99
|
+
body?: IRBody;
|
|
100
|
+
responses: Record<string, IRResponse>;
|
|
101
|
+
extensions: IROperationExtensions;
|
|
102
|
+
};
|
|
103
|
+
export type IRTreeEntry = {
|
|
104
|
+
kind: "method";
|
|
105
|
+
op: IROperation;
|
|
106
|
+
} | {
|
|
107
|
+
kind: "namespace";
|
|
108
|
+
ns: IRNamespace;
|
|
109
|
+
};
|
|
110
|
+
export type IRNamespace = {
|
|
111
|
+
entries: Map<string, IRTreeEntry>;
|
|
112
|
+
};
|
|
113
|
+
export type IR = {
|
|
114
|
+
operations: IROperation[];
|
|
115
|
+
schemas: Record<string, IRSchema>;
|
|
116
|
+
tree: IRNamespace;
|
|
117
|
+
};
|
|
118
|
+
export declare function methodsOf(ns: IRNamespace): Array<[string, IROperation]>;
|
|
119
|
+
export declare function namespacesOf(ns: IRNamespace): Array<[string, IRNamespace]>;
|
|
120
|
+
export declare function buildResourceTree(operations: IROperation[]): IRNamespace;
|
|
121
|
+
export declare function schemaToIR(schema: Record<string, unknown> | undefined): IRSchema;
|
|
122
|
+
export declare function toIR(spec: OpenApiSpecInput): IR;
|
|
123
|
+
//# sourceMappingURL=codegen-ir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-ir.d.ts","sourceRoot":"","sources":["../src/codegen-ir.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Dynamic Zod/Effect JSON Schema loaders. Not a package export — tests may import this file. */
|
|
2
|
+
export declare let toJSONSchemaFn: ((schema: unknown, opts?: {
|
|
3
|
+
io?: "input" | "output";
|
|
4
|
+
}) => unknown) | undefined;
|
|
5
|
+
export declare function loadToJSONSchema(): Promise<((schema: unknown, opts?: {
|
|
6
|
+
io?: "input" | "output";
|
|
7
|
+
}) => unknown) | undefined>;
|
|
8
|
+
export declare let effectJsonSchemaFn: ((schema: unknown) => unknown) | undefined;
|
|
9
|
+
export declare function loadEffectJsonSchema(): Promise<((schema: unknown) => unknown) | undefined>;
|
|
10
|
+
export declare function prepareCodegen(): Promise<void>;
|
|
11
|
+
export declare function resetCodegenJsonSchemaLoadersForTests(): void;
|
|
12
|
+
//# sourceMappingURL=codegen-loaders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-loaders.d.ts","sourceRoot":"","sources":["../src/codegen-loaders.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAEjG,eAAO,IAAI,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;AAGzG,wBAAsB,gBAAgB,IAAI,OAAO,CAChD,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAC9E,CAcA;AAED,eAAO,IAAI,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;AAGzE,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC,CAYhG;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpD;AAED,wBAAgB,qCAAqC,IAAI,IAAI,CAK5D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { OpenApiSpecInput } from "./codegen.ts";
|
|
2
|
+
type MCPOptions = {
|
|
3
|
+
projectName: string;
|
|
4
|
+
sdkPackageName: string;
|
|
5
|
+
sdkClassName: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
};
|
|
8
|
+
type MCPResult = {
|
|
9
|
+
files: Record<string, string>;
|
|
10
|
+
};
|
|
11
|
+
export declare function generateMCPServer(spec: OpenApiSpecInput, options: MCPOptions): MCPResult;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=codegen-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-mcp.d.ts","sourceRoot":"","sources":["../src/codegen-mcp.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD,KAAK,UAAU,GAAG;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,SAAS,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B,CAAA;AA6SD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,CA2BxF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Python SDK code generator. Mirrors TS SDK emitter in codegen.ts. */
|
|
2
|
+
interface PySDKOptions {
|
|
3
|
+
name?: string;
|
|
4
|
+
throwOnError?: boolean;
|
|
5
|
+
staleTime?: number;
|
|
6
|
+
staleMaxEntries?: number;
|
|
7
|
+
}
|
|
8
|
+
interface ServiceMapEntry {
|
|
9
|
+
method: string;
|
|
10
|
+
path: string;
|
|
11
|
+
operationId: string;
|
|
12
|
+
invalidate?: string[];
|
|
13
|
+
}
|
|
14
|
+
interface PySDKResult {
|
|
15
|
+
files: Record<string, string>;
|
|
16
|
+
serviceMap: Record<string, ServiceMapEntry>;
|
|
17
|
+
}
|
|
18
|
+
export declare function loadPythonRuntimeTemplates(): Map<string, string>;
|
|
19
|
+
export declare function generatePythonSDK(spec: Record<string, unknown>, options?: PySDKOptions): PySDKResult;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=codegen-python.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-python.d.ts","sourceRoot":"","sources":["../src/codegen-python.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAQvE,UAAU,YAAY;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,eAAe;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,UAAU,WAAW;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC3C;AA4DD,wBAAgB,0BAA0B,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQhE;AA26BD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAexG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type RustSDKOptions = {
|
|
2
|
+
crateName?: string;
|
|
3
|
+
throwOnError?: boolean;
|
|
4
|
+
version?: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
homepage?: string;
|
|
7
|
+
repository?: string;
|
|
8
|
+
license?: string;
|
|
9
|
+
};
|
|
10
|
+
export type GeneratedRustSDK = {
|
|
11
|
+
files: Record<string, string>;
|
|
12
|
+
serviceMap: Record<string, Record<string, unknown>>;
|
|
13
|
+
};
|
|
14
|
+
export declare function loadRustRuntimeTemplates(): Map<string, string>;
|
|
15
|
+
/** Validates and normalises a crate name. Throws if invalid per cargo rules. */
|
|
16
|
+
export declare function validateCrateName(name: string): string;
|
|
17
|
+
export declare function generateRustSDK(spec: Record<string, unknown>, options?: RustSDKOptions): GeneratedRustSDK;
|
|
18
|
+
//# sourceMappingURL=codegen-rust.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-rust.d.ts","sourceRoot":"","sources":["../src/codegen-rust.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,cAAc,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACnD,CAAA;AAaD,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA2B9D;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKtD;AAqiDD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,gBAAgB,CA2C7G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-sanitize.d.ts","sourceRoot":"","sources":["../src/codegen-sanitize.ts"],"names":[],"mappings":"AAAA,gEAAgE;AA6BhE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+B3F"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type SchemaRole = "request" | "response";
|
|
2
|
+
export type SchemaNameContext = {
|
|
3
|
+
method: string;
|
|
4
|
+
path: string;
|
|
5
|
+
role: "request";
|
|
6
|
+
fieldPath?: string[];
|
|
7
|
+
} | {
|
|
8
|
+
method: string;
|
|
9
|
+
path: string;
|
|
10
|
+
role: "response";
|
|
11
|
+
status: number;
|
|
12
|
+
fieldPath?: string[];
|
|
13
|
+
};
|
|
14
|
+
/** Returns 6-char lowercase hex derived from content hash. */
|
|
15
|
+
export declare function shortHash(canonical: string): string;
|
|
16
|
+
/** Returns true if schema matches anyrow-style error envelope shape. */
|
|
17
|
+
export declare function isErrorEnvelope(schema: Record<string, unknown>): boolean;
|
|
18
|
+
/** Derives a canonical name for a shared error envelope (e.g. `Err400InvalidInput`). */
|
|
19
|
+
export declare function deriveErrorEnvelopeName(schema: Record<string, unknown>, fallbackStatus?: number): string;
|
|
20
|
+
/** Derives a human-readable schema component name from operation context. */
|
|
21
|
+
export declare function deriveSchemaName(ctx: SchemaNameContext): string;
|
|
22
|
+
//# sourceMappingURL=codegen-schema-naming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-schema-naming.d.ts","sourceRoot":"","sources":["../src/codegen-schema-naming.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAE/C,MAAM,MAAM,iBAAiB,GAC1B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACvE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAI3F,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAqFD,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CASxE;AAED,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBxG;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAY/D"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { Honey } from "./index.ts";
|
|
2
|
+
import type { TreeNode } from "./tree.ts";
|
|
3
|
+
export { prepareCodegen } from "./codegen-loaders.ts";
|
|
4
|
+
export { toYaml, yamlSiblingPath } from "./yaml.ts";
|
|
5
|
+
type ErrorEntry = {
|
|
6
|
+
errorKey: string;
|
|
7
|
+
status: number;
|
|
8
|
+
statusKey: string;
|
|
9
|
+
};
|
|
10
|
+
type RouteManifestEntry = {
|
|
11
|
+
errors: string[];
|
|
12
|
+
input?: Record<string, unknown>;
|
|
13
|
+
meta: Record<string, unknown>;
|
|
14
|
+
method: string;
|
|
15
|
+
middleware: string[];
|
|
16
|
+
output?: Record<string, unknown>;
|
|
17
|
+
params: string[];
|
|
18
|
+
path: string;
|
|
19
|
+
};
|
|
20
|
+
type RouteManifest = {
|
|
21
|
+
errors: ErrorEntry[];
|
|
22
|
+
routes: RouteManifestEntry[];
|
|
23
|
+
};
|
|
24
|
+
type OpenApiInfo = {
|
|
25
|
+
description?: string;
|
|
26
|
+
title: string;
|
|
27
|
+
version: string;
|
|
28
|
+
};
|
|
29
|
+
export type OpenApiSpec = {
|
|
30
|
+
components?: {
|
|
31
|
+
schemas?: Record<string, Record<string, unknown>>;
|
|
32
|
+
securitySchemes?: Record<string, unknown>;
|
|
33
|
+
};
|
|
34
|
+
info: OpenApiInfo;
|
|
35
|
+
openapi: string;
|
|
36
|
+
paths: Record<string, Record<string, Record<string, unknown>>>;
|
|
37
|
+
};
|
|
38
|
+
export declare const DEFAULT_ERROR_JSON_SCHEMA: Record<string, unknown>;
|
|
39
|
+
export { normalizeSecurity } from "./meta-spec.ts";
|
|
40
|
+
export declare function canonicalizeSchema(schema: Record<string, unknown>): string;
|
|
41
|
+
export declare function deduplicateSchemas(spec: OpenApiSpec): OpenApiSpec;
|
|
42
|
+
export type OpenApiSanitizeOptions = {
|
|
43
|
+
stripSecurityRequirements?: string[];
|
|
44
|
+
stripSecuritySchemes?: string[];
|
|
45
|
+
stripXExtensions?: boolean | string[];
|
|
46
|
+
};
|
|
47
|
+
export declare function sanitizeOpenApiSpec(spec: OpenApiSpec, options: OpenApiSanitizeOptions): OpenApiSpec;
|
|
48
|
+
export declare function resolveRefs(spec: OpenApiSpecInput): OpenApiSpecInput;
|
|
49
|
+
export declare function generateManifest<TEnv, TCtx>(app: Honey<TEnv, TCtx, unknown, unknown, unknown, string, string>): RouteManifest;
|
|
50
|
+
export type OpenApiRouteInfo<TMeta = unknown> = {
|
|
51
|
+
meta: TMeta;
|
|
52
|
+
method: string;
|
|
53
|
+
path: string;
|
|
54
|
+
};
|
|
55
|
+
export declare function generateOpenApi<TEnv, TCtx, TMeta = unknown>(app: Honey<TEnv, TCtx, unknown, TMeta, unknown, string, string>, options: {
|
|
56
|
+
filterRoutes?: (route: OpenApiRouteInfo<TMeta>) => boolean;
|
|
57
|
+
info: OpenApiInfo;
|
|
58
|
+
/** Named metaSpec profile — selects which emitted keys this document carries */
|
|
59
|
+
profile?: string;
|
|
60
|
+
securitySchemes?: Record<string, unknown>;
|
|
61
|
+
}): Promise<OpenApiSpec>;
|
|
62
|
+
export declare function extractSchemas<TEnv, TCtx>(app: Honey<TEnv, TCtx, unknown, unknown, unknown, string, string>): Record<string, Record<string, unknown>>;
|
|
63
|
+
type RouteConfig = {
|
|
64
|
+
boundaryErrorKey: string | null;
|
|
65
|
+
errorKeys: string[];
|
|
66
|
+
/** JSON Schema per input source — { json?, form?, params?, search?, headers?, cookies? }; null = no input validation */
|
|
67
|
+
inputSchemas: Record<string, Record<string, unknown>> | null;
|
|
68
|
+
meta: Record<string, unknown> | null;
|
|
69
|
+
method: string;
|
|
70
|
+
middlewareNames: string[];
|
|
71
|
+
/**
|
|
72
|
+
* JSON Schema per (contentType, statusKey). Special case: `redirect` contentType holds
|
|
73
|
+
* `Record<statusKey, true>` with no schema (declaration-only, no body to validate).
|
|
74
|
+
* null = no output validation declared.
|
|
75
|
+
*/
|
|
76
|
+
outputSchemas: Record<string, Record<string, unknown>> | null;
|
|
77
|
+
path: string;
|
|
78
|
+
};
|
|
79
|
+
export declare function generateRouteTree(routes: RouteConfig[]): string;
|
|
80
|
+
export declare function generateRouteTreeFromApp<TEnv, TCtx>(app: Honey<TEnv, TCtx, unknown, unknown, unknown, string, string>): string;
|
|
81
|
+
/**
|
|
82
|
+
* Generate static route tree code from a pre-built RouteTree.
|
|
83
|
+
* Supports gateway patterns: import service trees → enrich meta → mergeTree → generate.
|
|
84
|
+
*/
|
|
85
|
+
export declare function generateRouteTreeFromRouteTree(rt: {
|
|
86
|
+
root: TreeNode;
|
|
87
|
+
}): string;
|
|
88
|
+
type GenerateTypesOptions = {
|
|
89
|
+
baseCtxName?: string;
|
|
90
|
+
inlineEnvType?: string;
|
|
91
|
+
inlineMiddlewareType?: string | null;
|
|
92
|
+
/** Inline type string for TTaps — emitted as typed tap() override on context */
|
|
93
|
+
inlineTapsType?: string | null;
|
|
94
|
+
/** per-route middleware additions keyed by "method /path" (e.g. "get /v1/auth/me") */
|
|
95
|
+
routeMiddleware?: Record<string, string>;
|
|
96
|
+
/** structured per-property middleware data for sub-type dedup */
|
|
97
|
+
routeMiddlewareProps?: Record<string, Array<{
|
|
98
|
+
name: string;
|
|
99
|
+
opt: boolean;
|
|
100
|
+
type: string;
|
|
101
|
+
}>>;
|
|
102
|
+
};
|
|
103
|
+
export declare function generateTypes<TEnv, TCtx>(app: Honey<TEnv, TCtx, unknown, unknown, unknown, string, string>, options: GenerateTypesOptions): string;
|
|
104
|
+
export type OpenApiSpecInput = {
|
|
105
|
+
components?: {
|
|
106
|
+
schemas?: Record<string, Record<string, unknown>>;
|
|
107
|
+
securitySchemes?: Record<string, unknown>;
|
|
108
|
+
};
|
|
109
|
+
info: {
|
|
110
|
+
title: string;
|
|
111
|
+
version: string;
|
|
112
|
+
};
|
|
113
|
+
openapi: string;
|
|
114
|
+
paths: Record<string, Record<string, Record<string, unknown>>>;
|
|
115
|
+
};
|
|
116
|
+
export declare function mergeSpecs(...specs: OpenApiSpecInput[]): OpenApiSpecInput;
|
|
117
|
+
export declare function scopeSpec(spec: OpenApiSpecInput, filter: {
|
|
118
|
+
excludeTags?: string[];
|
|
119
|
+
operationIds?: string[];
|
|
120
|
+
pathPrefix?: string;
|
|
121
|
+
tags?: string[];
|
|
122
|
+
}): OpenApiSpecInput;
|
|
123
|
+
type ServiceEntry = {
|
|
124
|
+
idempotent?: boolean;
|
|
125
|
+
invalidate?: string[];
|
|
126
|
+
method: string;
|
|
127
|
+
params?: string[];
|
|
128
|
+
path: string;
|
|
129
|
+
realtime?: boolean;
|
|
130
|
+
ws?: boolean;
|
|
131
|
+
sse?: boolean;
|
|
132
|
+
};
|
|
133
|
+
type NestedServiceNode = {
|
|
134
|
+
kind: "leaf";
|
|
135
|
+
entry: ServiceEntry;
|
|
136
|
+
} | {
|
|
137
|
+
kind: "ns";
|
|
138
|
+
children: Map<string, NestedServiceNode>;
|
|
139
|
+
};
|
|
140
|
+
type GeneratedSDK = {
|
|
141
|
+
files: {
|
|
142
|
+
client: string;
|
|
143
|
+
index: string;
|
|
144
|
+
map: string;
|
|
145
|
+
runtime: string | null;
|
|
146
|
+
types: string;
|
|
147
|
+
};
|
|
148
|
+
serviceMap: Record<string, Record<string, ServiceEntry>>;
|
|
149
|
+
};
|
|
150
|
+
type SDKMethod = {
|
|
151
|
+
action: string;
|
|
152
|
+
errorsByStatusType: string | null;
|
|
153
|
+
inputHasMandatory: boolean;
|
|
154
|
+
inputType: string;
|
|
155
|
+
realtime: boolean;
|
|
156
|
+
resource: string;
|
|
157
|
+
responseType: string;
|
|
158
|
+
sse: boolean;
|
|
159
|
+
ws: boolean;
|
|
160
|
+
};
|
|
161
|
+
export declare function extractOpenApiPathParams(path: string): string[];
|
|
162
|
+
export declare function isSSEOperation(operation: Record<string, unknown>): boolean;
|
|
163
|
+
/** JSON Schema → TypeScript type string (shim — delegates to IR pipeline). */
|
|
164
|
+
export declare function jsonSchemaToTS(schema: Record<string, unknown> | undefined, depth?: number): string;
|
|
165
|
+
export declare function isStandardErrEnvelope(schema: Record<string, unknown>): {
|
|
166
|
+
keys: string[];
|
|
167
|
+
status: number;
|
|
168
|
+
} | null;
|
|
169
|
+
export declare function collectSDKMethods(spec: OpenApiSpecInput): {
|
|
170
|
+
serviceMap: Record<string, Record<string, ServiceEntry>>;
|
|
171
|
+
nestedMap: Map<string, NestedServiceNode>;
|
|
172
|
+
methods: SDKMethod[];
|
|
173
|
+
};
|
|
174
|
+
export declare function generateSDK(spec: OpenApiSpecInput, options?: {
|
|
175
|
+
name?: string;
|
|
176
|
+
stem?: string;
|
|
177
|
+
}): GeneratedSDK;
|
|
178
|
+
//# sourceMappingURL=codegen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { HoneyRes } from "./response.ts";
|
|
2
|
+
import type { PendingTap } from "./types.ts";
|
|
3
|
+
/**
|
|
4
|
+
* HoneyContext uses `declare` for properties set after construction and
|
|
5
|
+
* class-level getters for lazy-computed properties. No Object.defineProperty
|
|
6
|
+
* on the hot path — V8 optimizes class shapes via hidden classes.
|
|
7
|
+
*
|
|
8
|
+
* `declare` fields have no private brand, so Omit<HoneyContext, "res">
|
|
9
|
+
* works structurally for ApplyOutput type narrowing.
|
|
10
|
+
*/
|
|
11
|
+
export declare class HoneyContext<TEnv = Record<string, unknown>> {
|
|
12
|
+
readonly background: (p: Promise<unknown>) => void;
|
|
13
|
+
readonly env: TEnv;
|
|
14
|
+
readonly params: Record<string, string>;
|
|
15
|
+
readonly req: Request;
|
|
16
|
+
readonly res: HoneyRes;
|
|
17
|
+
readonly cookies: Record<string, string>;
|
|
18
|
+
readonly errors: Record<string, (...args: never[]) => unknown>;
|
|
19
|
+
readonly executionCtx: {
|
|
20
|
+
waitUntil?: (p: Promise<unknown>) => void;
|
|
21
|
+
} | undefined;
|
|
22
|
+
readonly headers: Record<string, string>;
|
|
23
|
+
readonly meta: Record<string, unknown>;
|
|
24
|
+
readonly path: string;
|
|
25
|
+
readonly realtime: {
|
|
26
|
+
publish(topic: string, data: unknown): void;
|
|
27
|
+
};
|
|
28
|
+
readonly routePattern: string;
|
|
29
|
+
readonly search: Record<string, string>;
|
|
30
|
+
readonly searchAll: Record<string, string[]>;
|
|
31
|
+
/** @internal */ _lzCookies: Record<string, string> | null;
|
|
32
|
+
/** @internal */ _lzHeaders: Record<string, string> | null;
|
|
33
|
+
/** @internal */ _lzSearch: Record<string, string> | null;
|
|
34
|
+
/** @internal */ _lzSearchAll: Record<string, string[]> | null;
|
|
35
|
+
/** @internal */ _lzUrlFn: (() => URL) | null;
|
|
36
|
+
/** @internal */ _errorToResponse: ((thrown: unknown) => Promise<Response>) | null;
|
|
37
|
+
/** @internal */ _isErrorResponse: boolean;
|
|
38
|
+
/** @internal */ _pendingTaps: PendingTap[] | null;
|
|
39
|
+
constructor(opts: {
|
|
40
|
+
env: TEnv;
|
|
41
|
+
executionCtx?: {
|
|
42
|
+
waitUntil?: (p: Promise<unknown>) => void;
|
|
43
|
+
};
|
|
44
|
+
meta?: Record<string, unknown>;
|
|
45
|
+
params: Record<string, string>;
|
|
46
|
+
path?: string;
|
|
47
|
+
req: Request;
|
|
48
|
+
routePattern?: string;
|
|
49
|
+
urlFn?: () => URL;
|
|
50
|
+
});
|
|
51
|
+
/** @internal */
|
|
52
|
+
_setErrors(errors: Record<string, (...args: never[]) => unknown>): void;
|
|
53
|
+
/** Queue a side-effect to fire after handler returns successfully */
|
|
54
|
+
tap(key: string, payload: unknown): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-sign.d.ts","sourceRoot":"","sources":["../src/cookie-sign.ts"],"names":[],"mappings":"AA4BA,wBAAsB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIzE;AAED,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAetF"}
|
package/dist/cookie.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type CookieOptions = {
|
|
2
|
+
domain?: string;
|
|
3
|
+
expires?: Date;
|
|
4
|
+
httpOnly?: boolean;
|
|
5
|
+
maxAge?: number;
|
|
6
|
+
path?: string;
|
|
7
|
+
sameSite?: "lax" | "none" | "strict";
|
|
8
|
+
secure?: boolean;
|
|
9
|
+
value: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function serializeCookie(name: string, opts: CookieOptions): string;
|
|
12
|
+
//# sourceMappingURL=cookie.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../src/cookie.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACpC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACb,CAAA;AA2BD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,CAmDzE"}
|
package/dist/cors.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MiddlewareFn } from "./middleware.ts";
|
|
2
|
+
export type CORSOptions = {
|
|
3
|
+
credentials?: boolean;
|
|
4
|
+
exposeHeaders?: string[];
|
|
5
|
+
headers?: string[];
|
|
6
|
+
maxAge?: number;
|
|
7
|
+
methods?: string[];
|
|
8
|
+
origin?: "*" | ((origin: string) => boolean) | string | string[];
|
|
9
|
+
};
|
|
10
|
+
export declare function cors(options?: CORSOptions): MiddlewareFn<{
|
|
11
|
+
req: Request;
|
|
12
|
+
}, {}>;
|
|
13
|
+
//# sourceMappingURL=cors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD,MAAM,MAAM,WAAW,GAAG;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;CAChE,CAAA;AAaD,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,CAAC,CAqE9E"}
|
package/dist/crypto.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAWA,wBAAsB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI5E"}
|
package/dist/csrf.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MiddlewareFn } from "./middleware.ts";
|
|
2
|
+
type CSRFOptions = {
|
|
3
|
+
origin?: ((origin: string) => boolean) | string | string[];
|
|
4
|
+
};
|
|
5
|
+
export declare function csrf(options?: CSRFOptions): MiddlewareFn<{
|
|
6
|
+
req: Request;
|
|
7
|
+
}, {}>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=csrf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csrf.d.ts","sourceRoot":"","sources":["../src/csrf.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGnD,KAAK,WAAW,GAAG;IAClB,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;CAC1D,CAAA;AAYD,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,CAAC,CAkC9E"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { MiddlewareFn } from "./middleware.ts";
|
|
2
|
+
import type { LoggerInstance } from "./logger.ts";
|
|
3
|
+
type BodyOmittedReason = "content-type" | "disabled" | "missing" | "read-error" | "too-large";
|
|
4
|
+
type CurlLogData = {
|
|
5
|
+
bodyIncluded: boolean;
|
|
6
|
+
bodyOmittedReason: BodyOmittedReason | null;
|
|
7
|
+
curl: string;
|
|
8
|
+
duration: number;
|
|
9
|
+
method: string;
|
|
10
|
+
path: string;
|
|
11
|
+
requestId: string | null;
|
|
12
|
+
status: number;
|
|
13
|
+
};
|
|
14
|
+
type CurlLoggerBodyOptions = {
|
|
15
|
+
allowContentTypes?: string[];
|
|
16
|
+
maxBytes?: number;
|
|
17
|
+
};
|
|
18
|
+
type CurlLoggerOptions = {
|
|
19
|
+
body?: boolean | CurlLoggerBodyOptions;
|
|
20
|
+
instance?: LoggerInstance;
|
|
21
|
+
log?: (data: CurlLogData) => void;
|
|
22
|
+
redactHeader?: (name: string, value: string) => string | null;
|
|
23
|
+
redactQueryParam?: (name: string, value: string) => string | null;
|
|
24
|
+
skip?: (data: CurlLogData) => boolean;
|
|
25
|
+
};
|
|
26
|
+
declare function buildCurlLogData(request: Request, options?: Pick<CurlLoggerOptions, "body" | "redactHeader" | "redactQueryParam">): Promise<Pick<CurlLogData, "bodyIncluded" | "bodyOmittedReason" | "curl">>;
|
|
27
|
+
declare function curlLogger(options?: CurlLoggerOptions): MiddlewareFn<{
|
|
28
|
+
path: string;
|
|
29
|
+
req: Request;
|
|
30
|
+
}, {}>;
|
|
31
|
+
export { buildCurlLogData, curlLogger };
|
|
32
|
+
export type { BodyOmittedReason, CurlLogData, CurlLoggerBodyOptions, CurlLoggerOptions };
|
|
33
|
+
//# sourceMappingURL=curl-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curl-logger.d.ts","sourceRoot":"","sources":["../src/curl-logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,iBAAiB,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,CAAA;AAE7F,KAAK,WAAW,GAAG;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACxB,IAAI,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAA;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACjC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAC7D,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IACjE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAA;CACrC,CAAA;AA2FD,iBAAe,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,cAAc,GAAG,kBAAkB,CAAC,GAC7E,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,GAAG,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAwC3E;AAED,iBAAS,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,YAAY,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,CAAC,CAgDjG;AAED,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAA;AACvC,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type ServeRuntime = "bun" | "cloudflare" | "deno" | "node";
|
|
2
|
+
type DetectGlobal = {
|
|
3
|
+
Bun?: unknown;
|
|
4
|
+
Deno?: unknown;
|
|
5
|
+
navigator?: {
|
|
6
|
+
userAgent?: string;
|
|
7
|
+
};
|
|
8
|
+
process?: {
|
|
9
|
+
versions?: {
|
|
10
|
+
node?: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare function detectRuntime(g?: DetectGlobal): ServeRuntime;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=detect-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-runtime.d.ts","sourceRoot":"","sources":["../src/detect-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAA;AAEjE,KAAK,YAAY,GAAG;IACnB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAC1C,CAAA;AAED,wBAAgB,aAAa,CAAC,CAAC,GAAE,YAAyB,GAAG,YAAY,CAOxE"}
|