@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
package/dist/error.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { FieldError, StatusKey } from "./types.ts";
|
|
2
|
+
export declare class HoneyError extends Error {
|
|
3
|
+
readonly data?: unknown;
|
|
4
|
+
readonly errorKey: string;
|
|
5
|
+
readonly fields: Record<string, FieldError[]>;
|
|
6
|
+
readonly headers?: Record<string, string>;
|
|
7
|
+
readonly status: number;
|
|
8
|
+
readonly statusKey: StatusKey;
|
|
9
|
+
readonly vars?: Record<string, string | number>;
|
|
10
|
+
constructor(opts: {
|
|
11
|
+
cause?: unknown;
|
|
12
|
+
data?: unknown;
|
|
13
|
+
errorKey: string;
|
|
14
|
+
fields?: Record<string, FieldError[]>;
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
status: StatusKey;
|
|
17
|
+
vars?: Record<string, string | number>;
|
|
18
|
+
});
|
|
19
|
+
static serialize(e: unknown): Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGvD,qBAAa,UAAW,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;IAE/C,YAAY,IAAI,EAAE;QACjB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,MAAM,EAAE,SAAS,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;KACtC,EASA;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBpD;CACD"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { HoneyError } from "./error.ts";
|
|
2
|
+
import type { ExtractICUVars } from "./i18n.ts";
|
|
3
|
+
import type { FieldError, InferOutput, StandardSchemaLike, StatusKey } from "./types.ts";
|
|
4
|
+
type ErrorFactoryOpts<TVars> = {
|
|
5
|
+
cause?: unknown;
|
|
6
|
+
fields?: Record<string, FieldError[]>;
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
vars?: TVars;
|
|
9
|
+
};
|
|
10
|
+
type ErrorDefWithSchema = {
|
|
11
|
+
schema: StandardSchemaLike;
|
|
12
|
+
status: StatusKey;
|
|
13
|
+
};
|
|
14
|
+
type ErrorDef = ErrorDefWithSchema | StatusKey;
|
|
15
|
+
export type ErrorMetaEntry = {
|
|
16
|
+
schema: StandardSchemaLike | null;
|
|
17
|
+
statusKey: StatusKey;
|
|
18
|
+
};
|
|
19
|
+
/** Per-key meta — keeps schema + statusKey literals for ComputeErrorsByStatus */
|
|
20
|
+
type ErrorMetaForDef<D extends ErrorDef> = D extends ErrorDefWithSchema ? {
|
|
21
|
+
schema: D["schema"];
|
|
22
|
+
statusKey: D["status"];
|
|
23
|
+
} : D extends StatusKey ? {
|
|
24
|
+
schema: null;
|
|
25
|
+
statusKey: D;
|
|
26
|
+
} : ErrorMetaEntry;
|
|
27
|
+
export declare const ERROR_META: unique symbol;
|
|
28
|
+
type ErrorFactoryResult<TMap extends Record<string, ErrorDef>, TTranslations extends Record<string, string>> = {
|
|
29
|
+
[K in keyof TMap]: TMap[K] extends ErrorDefWithSchema ? (data: InferOutput<TMap[K]["schema"]>, opts?: {
|
|
30
|
+
cause?: unknown;
|
|
31
|
+
headers?: Record<string, string>;
|
|
32
|
+
}) => HoneyError : K extends keyof TTranslations ? (opts?: ErrorFactoryOpts<ExtractICUVars<TTranslations[K]>>) => HoneyError : (opts?: ErrorFactoryOpts<Record<string, string | number>>) => HoneyError;
|
|
33
|
+
} & {
|
|
34
|
+
readonly [ERROR_META]: {
|
|
35
|
+
[K in keyof TMap]: ErrorMetaForDef<TMap[K]>;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export declare function defineErrors<TMap extends Record<string, ErrorDef>, TTranslations extends Record<string, string> = Record<string, string>>(map: TMap): ErrorFactoryResult<TMap, TTranslations>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAExF,KAAK,gBAAgB,CAAC,KAAK,IAAI;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,KAAK,kBAAkB,GAAG;IACzB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,MAAM,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,KAAK,QAAQ,GAAG,kBAAkB,GAAG,SAAS,CAAA;AAE9C,MAAM,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACjC,SAAS,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,iFAAiF;AACjF,KAAK,eAAe,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,kBAAkB,GACpE;IAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;CAAE,GAC/C,CAAC,SAAS,SAAS,GAClB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,CAAC,CAAA;CAAE,GAC9B,cAAc,CAAA;AAElB,eAAO,MAAM,UAAU,EAAE,OAAO,MAAuC,CAAA;AAEvE,KAAK,kBAAkB,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI;KAC7G,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,kBAAkB,GAClD,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAAK,UAAU,GAClH,CAAC,SAAS,MAAM,aAAa,GAC5B,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,GACzE,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,KAAK,UAAU;CAC5E,GAAG;IACH,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAAE,CAAA;CACtE,CAAA;AAED,wBAAgB,YAAY,CAC3B,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACrC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpE,GAAG,EAAE,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAuCpD"}
|
package/dist/etag.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"etag.d.ts","sourceRoot":"","sources":["../src/etag.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD,KAAK,WAAW,GAAG;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAeD,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,CAAC,CAmD9E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-load.d.ts","sourceRoot":"","sources":["../src/feature-load.ts"],"names":[],"mappings":"AAeA,2FAA2F;AAC3F,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { IRSchema } from "./codegen-ir.ts";
|
|
2
|
+
export declare const GO_KEYWORDS: Set<string>;
|
|
3
|
+
/** Converts a string to PascalCase from kebab-case, snake_case, dotted, or camelCase. */
|
|
4
|
+
export declare function goPascal(name: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Returns a safe Go identifier. PascalCase makes all exported identifiers safe
|
|
7
|
+
* without keyword conflicts (Go keywords are all lowercase; Title casing avoids clashes).
|
|
8
|
+
* For unexported uses the keyword check adds `_` suffix.
|
|
9
|
+
*/
|
|
10
|
+
export declare function goIdent(name: string, exported?: boolean): string;
|
|
11
|
+
export declare function goTag(jsonKey: string, omitempty: boolean): string;
|
|
12
|
+
export type RenderUseCtx = {
|
|
13
|
+
parentName: string;
|
|
14
|
+
fieldName: string;
|
|
15
|
+
decls: Map<string, string>;
|
|
16
|
+
circularRefs?: Set<string>;
|
|
17
|
+
depth?: number;
|
|
18
|
+
};
|
|
19
|
+
export declare function isNullable(schema: Record<string, unknown>): boolean;
|
|
20
|
+
export declare function isStringEnum(schema: Record<string, unknown>): boolean;
|
|
21
|
+
export declare function isIntEnum(schema: Record<string, unknown>): boolean;
|
|
22
|
+
export declare function isLiteralConst(schema: Record<string, unknown>): boolean;
|
|
23
|
+
export declare function hoistEnumName(parentName: string, fieldName: string): string;
|
|
24
|
+
/** Mutates `ctx.decls` when hoisting enums. */
|
|
25
|
+
export declare function irRenderUse(ir: IRSchema, ctx: RenderUseCtx, depth?: number): string;
|
|
26
|
+
/**
|
|
27
|
+
* `raw` 4th arg is for the const-with-declared-type branch only: IR `const` kind
|
|
28
|
+
* strips the type field; `raw.type` provides the override.
|
|
29
|
+
*/
|
|
30
|
+
export declare function irRenderTopLevel(name: string, ir: IRSchema, decls: Map<string, string>, raw?: Record<string, unknown>): string;
|
|
31
|
+
export declare function renderUse(schema: Record<string, unknown> | undefined, ctx: RenderUseCtx): string;
|
|
32
|
+
export declare function renderTopLevel(name: string, schema: Record<string, unknown>, decls: Map<string, string>): string;
|
|
33
|
+
//# sourceMappingURL=go-type-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-type-emitter.d.ts","sourceRoot":"","sources":["../src/go-type-emitter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C,eAAO,MAAM,WAAW,aA0BtB,CAAA;AAEF,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,MAAM,CAM7D;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAEjE;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAOnE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAOrE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAOlE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEvE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3E;AA+CD,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,SAAI,GAAG,MAAM,CA4F9E;AA0BD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CAmIR;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAEhG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAEhH"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/** NodeRequest sets this so HoneyRes can skip `new Response()` on Node. */
|
|
2
|
+
export declare const NODE_OUTBOUND: unique symbol;
|
|
3
|
+
declare const HONEY_RESPONSE: unique symbol;
|
|
4
|
+
export declare function isNodeOutbound(req: Request): boolean;
|
|
5
|
+
export declare function isHoneyResponse(value: unknown): value is HoneyResponse;
|
|
6
|
+
/**
|
|
7
|
+
* Headers view over a plain map. `get`/`has` stay on the record.
|
|
8
|
+
* A real `Headers` is built only if something iterates or mutates.
|
|
9
|
+
*/
|
|
10
|
+
export declare class HoneyOutHeaders {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(map: Record<string, string | string[]>);
|
|
13
|
+
append(name: string, value: string): void;
|
|
14
|
+
delete(name: string): void;
|
|
15
|
+
get(name: string): string | null;
|
|
16
|
+
getSetCookie(): string[];
|
|
17
|
+
has(name: string): boolean;
|
|
18
|
+
set(name: string, value: string): void;
|
|
19
|
+
forEach(callback: (value: string, key: string, parent: Headers) => void, thisArg?: unknown): void;
|
|
20
|
+
keys(): IterableIterator<string>;
|
|
21
|
+
values(): IterableIterator<string>;
|
|
22
|
+
entries(): IterableIterator<[string, string]>;
|
|
23
|
+
[Symbol.iterator](): IterableIterator<[string, string]>;
|
|
24
|
+
get [Symbol.toStringTag](): string;
|
|
25
|
+
toRecord(): Record<string, string | string[]>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Response-shaped bag for Node. Avoids `new Response()` until something
|
|
29
|
+
* needs a real Fetch body stream (cors/etag wrap, clone).
|
|
30
|
+
*/
|
|
31
|
+
export declare class HoneyResponse {
|
|
32
|
+
#private;
|
|
33
|
+
readonly [HONEY_RESPONSE] = true;
|
|
34
|
+
readonly ok: boolean;
|
|
35
|
+
readonly redirected = false;
|
|
36
|
+
readonly status: number;
|
|
37
|
+
readonly statusText: string;
|
|
38
|
+
readonly type: ResponseType;
|
|
39
|
+
readonly url = "";
|
|
40
|
+
constructor(init: {
|
|
41
|
+
headers: Record<string, string | string[]>;
|
|
42
|
+
raw?: string | Uint8Array | null;
|
|
43
|
+
status: number;
|
|
44
|
+
statusText?: string;
|
|
45
|
+
stream?: ReadableStream<Uint8Array> | null;
|
|
46
|
+
});
|
|
47
|
+
get headers(): HoneyOutHeaders;
|
|
48
|
+
get body(): ReadableStream<Uint8Array> | null;
|
|
49
|
+
get bodyUsed(): boolean;
|
|
50
|
+
/** Plain header map for `res.writeHead`. */
|
|
51
|
+
get plainHeaders(): Record<string, string | string[]>;
|
|
52
|
+
/** Known-size body for `res.end`. */
|
|
53
|
+
get rawBody(): string | Uint8Array | null;
|
|
54
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
55
|
+
blob(): Promise<Blob>;
|
|
56
|
+
bytes(): Promise<Uint8Array>;
|
|
57
|
+
clone(): Response;
|
|
58
|
+
formData(): Promise<FormData>;
|
|
59
|
+
json(): Promise<unknown>;
|
|
60
|
+
text(): Promise<string>;
|
|
61
|
+
/** Copy this bag with new headers/status/body — keeps the Node `res.end` path. */
|
|
62
|
+
derive(init: {
|
|
63
|
+
headers?: Record<string, string | string[]> | Headers | HoneyOutHeaders;
|
|
64
|
+
raw?: string | Uint8Array | null;
|
|
65
|
+
status?: number;
|
|
66
|
+
stream?: ReadableStream<Uint8Array> | null;
|
|
67
|
+
}): HoneyResponse;
|
|
68
|
+
}
|
|
69
|
+
export declare function createHoneyResponse(init: {
|
|
70
|
+
headers: Record<string, string | string[]>;
|
|
71
|
+
raw?: string | Uint8Array | null;
|
|
72
|
+
status: number;
|
|
73
|
+
stream?: ReadableStream<Uint8Array> | null;
|
|
74
|
+
}): Response;
|
|
75
|
+
/** Rebuild a response without dropping a HoneyResponse back to `new Response()`. */
|
|
76
|
+
export declare function replaceResponse(response: Response, init: {
|
|
77
|
+
body?: BodyInit | null;
|
|
78
|
+
headers?: Headers | HoneyOutHeaders | Record<string, string | string[]>;
|
|
79
|
+
status?: number;
|
|
80
|
+
}): Response;
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=honey-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"honey-response.d.ts","sourceRoot":"","sources":["../src/honey-response.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type I18nRuntime = {
|
|
2
|
+
interpolate: (template: string, vars: Record<string, unknown>, locale?: string) => string;
|
|
3
|
+
};
|
|
4
|
+
export declare function registerI18nRuntime(next: I18nRuntime): void;
|
|
5
|
+
export declare function resetI18nRuntime(): void;
|
|
6
|
+
export declare function getI18nRuntime(): I18nRuntime;
|
|
7
|
+
//# sourceMappingURL=i18n-slot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-slot.d.ts","sourceRoot":"","sources":["../src/i18n-slot.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACzB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CACzF,CAAA;AAMD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,cAAc,IAAI,WAAW,CAG5C"}
|
package/dist/i18n.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts {varName} patterns from ICU MessageFormat string literals at the type level.
|
|
3
|
+
* "cause" is excluded (reserved by HoneyError).
|
|
4
|
+
* Returns {} when no variables found — makes `vars` optional at call site.
|
|
5
|
+
*/
|
|
6
|
+
export type ExtractICUVars<T extends string> = T extends `${string}{${infer Var}}${infer Rest}` ? Var extends "cause" ? ExtractICUVars<Rest> : {
|
|
7
|
+
[K in Var | keyof ExtractICUVars<Rest>]: string | number;
|
|
8
|
+
} : {};
|
|
9
|
+
type TranslationMap = Record<string, string>;
|
|
10
|
+
export type TranslationSource = (() => Promise<TranslationMap> | TranslationMap) | TranslationMap;
|
|
11
|
+
export declare class TranslationRegistry {
|
|
12
|
+
private cache;
|
|
13
|
+
private sources;
|
|
14
|
+
constructor(sources: Record<string, TranslationSource>);
|
|
15
|
+
get(locale: string): Promise<TranslationMap | undefined>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* ICU MessageFormat interpolation.
|
|
19
|
+
* Supports: {var}, {var, plural, one{...} other{...}}, {var, select, ...}, {var, number}
|
|
20
|
+
*/
|
|
21
|
+
export declare function interpolate(template: string, vars: Record<string, unknown>, locale?: string): string;
|
|
22
|
+
export declare function resolveTranslation(registry: TranslationRegistry, locale: string, key: string, vars: Record<string, string | number>): Promise<string>;
|
|
23
|
+
export declare function resolveFieldName(registry: TranslationRegistry, locale: string, fieldPath: string): Promise<string>;
|
|
24
|
+
export declare function enableI18n(): void;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,IAAI,MAAM,IAAI,EAAE,GAC5F,GAAG,SAAS,OAAO,GAClB,cAAc,CAAC,IAAI,CAAC,GACpB;KAAG,CAAC,IAAI,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM;CAAE,GAC7D,EAAE,CAAA;AAEL,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE5C,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC,GAAG,cAAc,CAAA;AAEjG,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAmC;IAElD,YAAY,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAErD;IAEK,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAa7D;CACD;AAmJD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAIpG;AAED,wBAAsB,kBAAkB,CACvC,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED,wBAAsB,gBAAgB,CACrC,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
|