ts-procedures 9.1.0 → 9.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.
Files changed (170) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/agent_config/claude-code/skills/ts-procedures/api-reference.md +4 -0
  3. package/agent_config/copilot/copilot-instructions.md +2 -0
  4. package/agent_config/cursor/cursorrules +2 -0
  5. package/build/codegen/bin/cli.d.ts +4 -0
  6. package/build/codegen/bin/cli.js +19 -0
  7. package/build/codegen/bin/cli.js.map +1 -1
  8. package/build/codegen/bin/cli.test.js +21 -0
  9. package/build/codegen/bin/cli.test.js.map +1 -1
  10. package/build/codegen/bin/flag-specs.js +3 -0
  11. package/build/codegen/bin/flag-specs.js.map +1 -1
  12. package/build/codegen/check-output.d.ts +28 -0
  13. package/build/codegen/check-output.js +216 -0
  14. package/build/codegen/check-output.js.map +1 -0
  15. package/build/codegen/check-output.test.d.ts +1 -0
  16. package/build/codegen/check-output.test.js +160 -0
  17. package/build/codegen/check-output.test.js.map +1 -0
  18. package/build/codegen/emit/api-route.js +1 -1
  19. package/build/codegen/emit/api-route.js.map +1 -1
  20. package/build/codegen/emit/context.d.ts +9 -0
  21. package/build/codegen/emit/http-stream-route.js +1 -1
  22. package/build/codegen/emit/http-stream-route.js.map +1 -1
  23. package/build/codegen/emit/rpc-route.js +1 -1
  24. package/build/codegen/emit/rpc-route.js.map +1 -1
  25. package/build/codegen/emit/scope-file.js +14 -0
  26. package/build/codegen/emit/scope-file.js.map +1 -1
  27. package/build/codegen/emit/stream-route.js +1 -1
  28. package/build/codegen/emit/stream-route.js.map +1 -1
  29. package/build/codegen/emit-scope.test.js +55 -0
  30. package/build/codegen/emit-scope.test.js.map +1 -1
  31. package/build/codegen/emit-types.js +19 -0
  32. package/build/codegen/emit-types.js.map +1 -1
  33. package/build/codegen/emit-types.test.js +34 -0
  34. package/build/codegen/emit-types.test.js.map +1 -1
  35. package/build/codegen/index.d.ts +14 -0
  36. package/build/codegen/index.js +11 -1
  37. package/build/codegen/index.js.map +1 -1
  38. package/build/codegen/targets/ts/name-collision.test.d.ts +1 -0
  39. package/build/codegen/targets/ts/name-collision.test.js +30 -0
  40. package/build/codegen/targets/ts/name-collision.test.js.map +1 -0
  41. package/build/codegen/targets/ts/run.js +13 -0
  42. package/build/codegen/targets/ts/run.js.map +1 -1
  43. package/build/errors.d.ts +33 -0
  44. package/build/errors.js +91 -0
  45. package/build/errors.js.map +1 -0
  46. package/build/errors.test.d.ts +1 -0
  47. package/build/errors.test.js +122 -0
  48. package/build/errors.test.js.map +1 -0
  49. package/build/implementations/http/doc-registry.d.ts +28 -0
  50. package/build/implementations/http/doc-registry.js +96 -0
  51. package/build/implementations/http/doc-registry.js.map +1 -0
  52. package/build/implementations/http/doc-registry.test.d.ts +1 -0
  53. package/build/implementations/http/doc-registry.test.js +516 -0
  54. package/build/implementations/http/doc-registry.test.js.map +1 -0
  55. package/build/implementations/http/error-taxonomy.d.ts +249 -0
  56. package/build/implementations/http/error-taxonomy.js +252 -0
  57. package/build/implementations/http/error-taxonomy.js.map +1 -0
  58. package/build/implementations/http/error-taxonomy.test.d.ts +1 -0
  59. package/build/implementations/http/error-taxonomy.test.js +399 -0
  60. package/build/implementations/http/error-taxonomy.test.js.map +1 -0
  61. package/build/implementations/http/express-rpc/error-taxonomy.test.d.ts +1 -0
  62. package/build/implementations/http/express-rpc/error-taxonomy.test.js +83 -0
  63. package/build/implementations/http/express-rpc/error-taxonomy.test.js.map +1 -0
  64. package/build/implementations/http/express-rpc/index.d.ts +125 -0
  65. package/build/implementations/http/express-rpc/index.js +216 -0
  66. package/build/implementations/http/express-rpc/index.js.map +1 -0
  67. package/build/implementations/http/express-rpc/index.test.d.ts +1 -0
  68. package/build/implementations/http/express-rpc/index.test.js +684 -0
  69. package/build/implementations/http/express-rpc/index.test.js.map +1 -0
  70. package/build/implementations/http/express-rpc/types.d.ts +11 -0
  71. package/build/implementations/http/express-rpc/types.js +2 -0
  72. package/build/implementations/http/express-rpc/types.js.map +1 -0
  73. package/build/implementations/http/hono-api/error-taxonomy.test.d.ts +1 -0
  74. package/build/implementations/http/hono-api/error-taxonomy.test.js +137 -0
  75. package/build/implementations/http/hono-api/error-taxonomy.test.js.map +1 -0
  76. package/build/implementations/http/hono-api/index.d.ts +151 -0
  77. package/build/implementations/http/hono-api/index.js +344 -0
  78. package/build/implementations/http/hono-api/index.js.map +1 -0
  79. package/build/implementations/http/hono-api/index.test.d.ts +1 -0
  80. package/build/implementations/http/hono-api/index.test.js +992 -0
  81. package/build/implementations/http/hono-api/index.test.js.map +1 -0
  82. package/build/implementations/http/hono-api/types.d.ts +13 -0
  83. package/build/implementations/http/hono-api/types.js +2 -0
  84. package/build/implementations/http/hono-api/types.js.map +1 -0
  85. package/build/implementations/http/hono-rpc/error-taxonomy.test.d.ts +1 -0
  86. package/build/implementations/http/hono-rpc/error-taxonomy.test.js +64 -0
  87. package/build/implementations/http/hono-rpc/error-taxonomy.test.js.map +1 -0
  88. package/build/implementations/http/hono-rpc/index.d.ts +130 -0
  89. package/build/implementations/http/hono-rpc/index.js +209 -0
  90. package/build/implementations/http/hono-rpc/index.js.map +1 -0
  91. package/build/implementations/http/hono-rpc/index.test.d.ts +1 -0
  92. package/build/implementations/http/hono-rpc/index.test.js +828 -0
  93. package/build/implementations/http/hono-rpc/index.test.js.map +1 -0
  94. package/build/implementations/http/hono-rpc/types.d.ts +11 -0
  95. package/build/implementations/http/hono-rpc/types.js +2 -0
  96. package/build/implementations/http/hono-rpc/types.js.map +1 -0
  97. package/build/implementations/http/hono-stream/error-taxonomy.test.d.ts +1 -0
  98. package/build/implementations/http/hono-stream/error-taxonomy.test.js +159 -0
  99. package/build/implementations/http/hono-stream/error-taxonomy.test.js.map +1 -0
  100. package/build/implementations/http/hono-stream/index.d.ts +171 -0
  101. package/build/implementations/http/hono-stream/index.js +415 -0
  102. package/build/implementations/http/hono-stream/index.js.map +1 -0
  103. package/build/implementations/http/hono-stream/index.test.d.ts +1 -0
  104. package/build/implementations/http/hono-stream/index.test.js +1383 -0
  105. package/build/implementations/http/hono-stream/index.test.js.map +1 -0
  106. package/build/implementations/http/hono-stream/types.d.ts +15 -0
  107. package/build/implementations/http/hono-stream/types.js +2 -0
  108. package/build/implementations/http/hono-stream/types.js.map +1 -0
  109. package/build/implementations/http/on-request-error.test.d.ts +1 -0
  110. package/build/implementations/http/on-request-error.test.js +173 -0
  111. package/build/implementations/http/on-request-error.test.js.map +1 -0
  112. package/build/implementations/http/route-errors.test.d.ts +1 -0
  113. package/build/implementations/http/route-errors.test.js +139 -0
  114. package/build/implementations/http/route-errors.test.js.map +1 -0
  115. package/build/implementations/types.d.ts +192 -0
  116. package/build/implementations/types.js +2 -0
  117. package/build/implementations/types.js.map +1 -0
  118. package/build/index.d.ts +165 -0
  119. package/build/index.js +258 -0
  120. package/build/index.js.map +1 -0
  121. package/build/index.test.d.ts +1 -0
  122. package/build/index.test.js +920 -0
  123. package/build/index.test.js.map +1 -0
  124. package/build/schema/extract-json-schema.d.ts +2 -0
  125. package/build/schema/extract-json-schema.js +12 -0
  126. package/build/schema/extract-json-schema.js.map +1 -0
  127. package/build/schema/extract-json-schema.test.d.ts +1 -0
  128. package/build/schema/extract-json-schema.test.js +23 -0
  129. package/build/schema/extract-json-schema.test.js.map +1 -0
  130. package/build/schema/parser.d.ts +28 -0
  131. package/build/schema/parser.js +170 -0
  132. package/build/schema/parser.js.map +1 -0
  133. package/build/schema/parser.test.d.ts +1 -0
  134. package/build/schema/parser.test.js +120 -0
  135. package/build/schema/parser.test.js.map +1 -0
  136. package/build/schema/resolve-schema-lib.d.ts +12 -0
  137. package/build/schema/resolve-schema-lib.js +11 -0
  138. package/build/schema/resolve-schema-lib.js.map +1 -0
  139. package/build/schema/resolve-schema-lib.test.d.ts +1 -0
  140. package/build/schema/resolve-schema-lib.test.js +17 -0
  141. package/build/schema/resolve-schema-lib.test.js.map +1 -0
  142. package/build/schema/types.d.ts +8 -0
  143. package/build/schema/types.js +2 -0
  144. package/build/schema/types.js.map +1 -0
  145. package/build/stack-utils.d.ts +25 -0
  146. package/build/stack-utils.js +95 -0
  147. package/build/stack-utils.js.map +1 -0
  148. package/build/stack-utils.test.d.ts +1 -0
  149. package/build/stack-utils.test.js +80 -0
  150. package/build/stack-utils.test.js.map +1 -0
  151. package/docs/client-and-codegen.md +17 -0
  152. package/docs/migration-v8-to-v9.md +12 -4
  153. package/package.json +1 -1
  154. package/src/codegen/bin/cli.test.ts +28 -0
  155. package/src/codegen/bin/cli.ts +26 -0
  156. package/src/codegen/bin/flag-specs.ts +3 -0
  157. package/src/codegen/check-output.test.ts +177 -0
  158. package/src/codegen/check-output.ts +262 -0
  159. package/src/codegen/emit/api-route.ts +1 -1
  160. package/src/codegen/emit/context.ts +9 -0
  161. package/src/codegen/emit/http-stream-route.ts +1 -1
  162. package/src/codegen/emit/rpc-route.ts +1 -1
  163. package/src/codegen/emit/scope-file.ts +17 -0
  164. package/src/codegen/emit/stream-route.ts +1 -1
  165. package/src/codegen/emit-scope.test.ts +60 -0
  166. package/src/codegen/emit-types.test.ts +36 -0
  167. package/src/codegen/emit-types.ts +20 -0
  168. package/src/codegen/index.ts +23 -1
  169. package/src/codegen/targets/ts/name-collision.test.ts +34 -0
  170. package/src/codegen/targets/ts/run.ts +16 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/implementations/http/express-rpc/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ExtractConfig, ExtractContext, RPCConfig, RPCHttpRouteDoc } from '../../types.js';
2
+ import { Procedures, TProcedureRegistration } from '../../../index.js';
3
+ import express from 'express';
4
+ export type ExpressFactoryItem<TFactory = ReturnType<typeof Procedures<any, RPCConfig>>> = {
5
+ factory: TFactory;
6
+ factoryContext: ExtractContext<TFactory> | ((req: express.Request) => ExtractContext<TFactory> | Promise<ExtractContext<TFactory>>);
7
+ extendProcedureDoc?: (params: {
8
+ base: RPCHttpRouteDoc;
9
+ procedure: TProcedureRegistration<any, ExtractConfig<TFactory>>;
10
+ }) => Record<string, any>;
11
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/implementations/http/express-rpc/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,137 @@
1
+ import { describe, expect, test, vi } from 'vitest';
2
+ import { Type } from 'typebox';
3
+ import { Procedures } from '../../../index.js';
4
+ import { HonoAPIAppBuilder, defineErrorTaxonomy } from './index.js';
5
+ class UseCaseError extends Error {
6
+ externalMsg;
7
+ internalMsg;
8
+ constructor(externalMsg, internalMsg) {
9
+ super(externalMsg);
10
+ this.externalMsg = externalMsg;
11
+ this.internalMsg = internalMsg;
12
+ this.name = 'UseCaseError';
13
+ Object.setPrototypeOf(this, UseCaseError.prototype);
14
+ }
15
+ }
16
+ describe('HonoAPIAppBuilder — error taxonomy', () => {
17
+ test('taxonomy serializes user error with configured status + body', async () => {
18
+ const errors = defineErrorTaxonomy({
19
+ UseCaseError: {
20
+ class: UseCaseError,
21
+ statusCode: 422,
22
+ toResponse: (err) => ({ name: 'UseCaseError', message: err.externalMsg }),
23
+ },
24
+ });
25
+ const API = Procedures();
26
+ API.Create('Boom', {
27
+ path: '/boom',
28
+ method: 'get',
29
+ schema: { returnType: Type.Object({}) },
30
+ }, async () => {
31
+ throw new UseCaseError('public detail', 'private stack');
32
+ });
33
+ const app = new HonoAPIAppBuilder({ errors }).register(API, () => ({})).build();
34
+ const res = await app.request('/boom');
35
+ expect(res.status).toBe(422);
36
+ expect(await res.json()).toEqual({ name: 'UseCaseError', message: 'public detail' });
37
+ });
38
+ test('onCatch is awaited before response is sent', async () => {
39
+ const logged = [];
40
+ const onCatch = vi.fn(async (err) => {
41
+ await Promise.resolve();
42
+ logged.push(err.internalMsg);
43
+ });
44
+ const errors = defineErrorTaxonomy({
45
+ UseCaseError: {
46
+ class: UseCaseError,
47
+ statusCode: 422,
48
+ onCatch,
49
+ },
50
+ });
51
+ const API = Procedures();
52
+ API.Create('Boom', { path: '/boom', method: 'get', schema: { returnType: Type.Object({}) } }, async () => {
53
+ throw new UseCaseError('ext', 'int-log');
54
+ });
55
+ const app = new HonoAPIAppBuilder({ errors }).register(API, () => ({})).build();
56
+ await app.request('/boom');
57
+ expect(onCatch).toHaveBeenCalledOnce();
58
+ expect(logged).toEqual(['int-log']);
59
+ });
60
+ test('unknownError catches errors the taxonomy does not match', async () => {
61
+ const API = Procedures();
62
+ API.Create('Boom', { path: '/boom', method: 'get', schema: { returnType: Type.Object({}) } }, async () => {
63
+ throw new TypeError('ts-broke');
64
+ });
65
+ const app = new HonoAPIAppBuilder({
66
+ unknownError: {
67
+ statusCode: 503,
68
+ toResponse: () => ({ name: 'ServiceUnavailable' }),
69
+ },
70
+ })
71
+ .register(API, () => ({}))
72
+ .build();
73
+ const res = await app.request('/boom');
74
+ expect(res.status).toBe(503);
75
+ expect(await res.json()).toEqual({ name: 'ServiceUnavailable' });
76
+ });
77
+ test('default taxonomy catches ProcedureValidationError at 400 when user opts in', async () => {
78
+ const API = Procedures();
79
+ API.Create('Validate', {
80
+ path: '/v',
81
+ method: 'post',
82
+ schema: {
83
+ input: { body: Type.Object({ n: Type.Number() }) },
84
+ returnType: Type.Object({}),
85
+ },
86
+ }, async () => ({}));
87
+ // Empty user taxonomy opts into the default chain.
88
+ const app = new HonoAPIAppBuilder({ errors: {} }).register(API, () => ({})).build();
89
+ const res = await app.request('/v', {
90
+ method: 'POST',
91
+ headers: { 'Content-Type': 'application/json' },
92
+ body: JSON.stringify({ n: 'not-a-number' }),
93
+ });
94
+ expect(res.status).toBe(400);
95
+ const body = (await res.json());
96
+ expect(body.name).toBe('ProcedureValidationError');
97
+ });
98
+ test('onError callback runs when taxonomy/unknownError do not match', async () => {
99
+ const onError = vi.fn(async (_p, c) => c.json({ legacy: true }, 418));
100
+ const API = Procedures();
101
+ API.Create('Boom', { path: '/boom', method: 'get', schema: { returnType: Type.Object({}) } }, async () => {
102
+ throw new TypeError('legacy path');
103
+ });
104
+ const app = new HonoAPIAppBuilder({ onError }).register(API, () => ({})).build();
105
+ const res = await app.request('/boom');
106
+ expect(res.status).toBe(418);
107
+ expect(await res.json()).toEqual({ legacy: true });
108
+ expect(onError).toHaveBeenCalledOnce();
109
+ });
110
+ test('no config → hard default unchanged ({ error: message }, 500)', async () => {
111
+ const API = Procedures();
112
+ API.Create('Boom', { path: '/boom', method: 'get', schema: { returnType: Type.Object({}) } }, async () => {
113
+ throw new TypeError('untouched');
114
+ });
115
+ const app = new HonoAPIAppBuilder().register(API, () => ({})).build();
116
+ const res = await app.request('/boom');
117
+ expect(res.status).toBe(500);
118
+ // The handler's TypeError is wrapped by the core into a ProcedureError with
119
+ // `cause` set. The default ProcedureError entry skips wrappers, no
120
+ // unknownError is configured, and no onError is provided — so we hit the
121
+ // hard default: { error: message }.
122
+ expect(await res.json()).toEqual({ error: expect.stringContaining('untouched') });
123
+ });
124
+ test('ctx.error() is serialized by the default ProcedureError taxonomy entry when opted in', async () => {
125
+ const API = Procedures();
126
+ API.Create('Boom', { path: '/boom', method: 'get', schema: { returnType: Type.Object({}) } }, async (ctx) => {
127
+ throw ctx.error('direct from ctx.error', { code: 'E1' });
128
+ });
129
+ const app = new HonoAPIAppBuilder({ errors: {} }).register(API, () => ({})).build();
130
+ const res = await app.request('/boom');
131
+ expect(res.status).toBe(500);
132
+ const body = (await res.json());
133
+ expect(body.name).toBe('ProcedureError');
134
+ expect(body.procedureName).toBe('Boom');
135
+ });
136
+ });
137
+ //# sourceMappingURL=error-taxonomy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-taxonomy.test.js","sourceRoot":"","sources":["../../../../src/implementations/http/hono-api/error-taxonomy.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ import { Hono, Context } from 'hono';
2
+ import { TProcedureRegistration } from '../../../index.js';
3
+ import { ExtractConfig, ExtractContext, ProceduresFactory, APIConfig, APIHttpRouteDoc, APIInput, HttpMethod } from '../../types.js';
4
+ import { ErrorTaxonomy, ErrorTaxonomyEntry, UnknownErrorConfig, defineErrorTaxonomy } from '../error-taxonomy.js';
5
+ export type { APIConfig, APIHttpRouteDoc, APIInput, HttpMethod };
6
+ export { defineErrorTaxonomy };
7
+ export type { ErrorTaxonomy, ErrorTaxonomyEntry, UnknownErrorConfig };
8
+ export type QueryParser = (queryString: string) => Record<string, unknown>;
9
+ export type HonoAPIAppBuilderConfig = {
10
+ /**
11
+ * An existing Hono application instance to use.
12
+ * If not provided, a new instance will be created.
13
+ */
14
+ app?: Hono;
15
+ /** Optional path prefix for all API routes. */
16
+ pathPrefix?: string;
17
+ /**
18
+ * Custom query string parser. Receives the raw query string (without '?').
19
+ *
20
+ * Default: native `URLSearchParams`. The default handles:
21
+ * - flat keys: `?page=2&limit=10` → `{ page: '2', limit: '10' }`
22
+ * - repeated keys: `?tag=a&tag=b` → `{ tag: ['a', 'b'] }`
23
+ *
24
+ * The default does NOT parse any of these — the bracket/dot syntax is kept
25
+ * as part of the literal key name, not interpreted:
26
+ * - bracket objects: `?user[name]=John` → `{ 'user[name]': 'John' }`
27
+ * - bracket arrays: `?tags[]=a&tags[]=b` → `{ 'tags[]': ['a', 'b'] }`
28
+ * - dot paths: `?user.name=John` → `{ 'user.name': 'John' }`
29
+ * - comma-split arrays: `?tags=a,b,c` → `{ tags: 'a,b,c' }`
30
+ *
31
+ * For any of the above, install `qs` and opt in explicitly:
32
+ * `queryParser: (raw) => qs.parse(raw) as Record<string, unknown>`
33
+ */
34
+ queryParser?: QueryParser;
35
+ onRequestStart?: (c: Context) => void;
36
+ onRequestEnd?: (c: Context) => void;
37
+ onSuccess?: (procedure: TProcedureRegistration, c: Context) => void;
38
+ /**
39
+ * Declarative error-to-response mapping (one of the two peer error modes).
40
+ * When a thrown error matches an entry (by `class` or `match`), the builder
41
+ * serializes it automatically. User entries are checked before the framework
42
+ * defaults (`ProcedureValidationError`, `ProcedureYieldValidationError`,
43
+ * `ProcedureError`).
44
+ */
45
+ errors?: ErrorTaxonomy;
46
+ /**
47
+ * Fallback serializer for errors not matched by the taxonomy. Used together
48
+ * with `errors` for apps that want declarative dispatch plus a well-defined
49
+ * shape for unexpected errors.
50
+ */
51
+ unknownError?: UnknownErrorConfig;
52
+ /**
53
+ * Imperative error callback — the other peer error mode. Receives every
54
+ * error directly and returns the HTTP response. Use this when you want full
55
+ * control over the response shape, or alongside `errors` for the tail of
56
+ * errors the taxonomy doesn't cover.
57
+ */
58
+ onError?: (procedure: TProcedureRegistration, c: Context, error: Error) => Response | Promise<Response>;
59
+ /**
60
+ * Cross-cutting observer — fires for every caught error, BEFORE dispatch to
61
+ * the taxonomy or `onError`. Awaited. Cannot mutate the response. Intended
62
+ * for logging, tracing, and metrics (Sentry, Datadog, OpenTelemetry). Any
63
+ * error thrown inside the observer is swallowed and logged so the primary
64
+ * dispatch flow is never disrupted.
65
+ */
66
+ onRequestError?: (ctx: OnRequestErrorContext) => void | Promise<void>;
67
+ };
68
+ /**
69
+ * Context passed to the `onRequestError` observer. `raw` is the Hono
70
+ * `Context` for the in-flight request.
71
+ */
72
+ export type OnRequestErrorContext = {
73
+ err: unknown;
74
+ procedure: TProcedureRegistration;
75
+ raw: Context;
76
+ };
77
+ /**
78
+ * Builder class for creating a Hono application with REST-style API routes.
79
+ *
80
+ * Uses `schema.input` for per-channel type safety:
81
+ * - `input.pathParams` → validated path parameters
82
+ * - `input.query` → validated query string parameters
83
+ * - `input.body` → validated request body
84
+ * - `input.headers` → validated request headers
85
+ *
86
+ * Usage:
87
+ * const API = Procedures<MyContext, APIConfig>()
88
+ *
89
+ * API.Create('GetUser', {
90
+ * path: '/users/:id',
91
+ * method: 'get',
92
+ * schema: {
93
+ * input: {
94
+ * pathParams: Type.Object({ id: Type.String() }),
95
+ * query: Type.Object({ include: Type.Optional(Type.String()) }),
96
+ * },
97
+ * returnType: Type.Object({ id: Type.String(), name: Type.String() }),
98
+ * }
99
+ * }, async (ctx, { pathParams, query }) => {
100
+ * return { id: pathParams.id, name: 'John' }
101
+ * })
102
+ *
103
+ * const apiApp = new HonoAPIAppBuilder()
104
+ * .register(API, (c) => ({ ... }))
105
+ * .build()
106
+ */
107
+ export declare class HonoAPIAppBuilder {
108
+ readonly config?: HonoAPIAppBuilderConfig | undefined;
109
+ constructor(config?: HonoAPIAppBuilderConfig | undefined);
110
+ private factories;
111
+ private _app;
112
+ private _docs;
113
+ get app(): Hono;
114
+ get docs(): APIHttpRouteDoc[];
115
+ /**
116
+ * Registers a procedure factory with its context.
117
+ * @param factory - The procedure factory created by Procedures<Context, APIConfig>()
118
+ * @param factoryContext - Context for handlers. Direct value, sync function, or async function.
119
+ * @param extendProcedureDoc - Custom function to extend the generated route documentation.
120
+ */
121
+ register<TFactory extends ProceduresFactory>(factory: TFactory, factoryContext: ExtractContext<TFactory> | ((c: Context) => ExtractContext<TFactory> | Promise<ExtractContext<TFactory>>), extendProcedureDoc?: (params: {
122
+ base: APIHttpRouteDoc;
123
+ procedure: TProcedureRegistration<any, ExtractConfig<TFactory>>;
124
+ }) => Record<string, any>): this;
125
+ /**
126
+ * Resolves the full path for a route, combining pathPrefix and the procedure's path.
127
+ */
128
+ private resolveFullPath;
129
+ /**
130
+ * Builds and returns the Hono application with registered API routes.
131
+ */
132
+ build(): Hono;
133
+ /**
134
+ * Validates that path parameter names in the path template match the schema.input.pathParams declaration.
135
+ */
136
+ private validatePathParamConsistency;
137
+ /**
138
+ * Creates the async route handler for a procedure.
139
+ */
140
+ private createRouteHandler;
141
+ /**
142
+ * Extracts and assembles structured input params from HTTP request sources.
143
+ * Each channel (pathParams, query, body, headers) is extracted from its HTTP source.
144
+ * The core validates each channel independently via schema.input validators.
145
+ */
146
+ private extractInputParams;
147
+ /**
148
+ * Generates the API HTTP route documentation for the given procedure.
149
+ */
150
+ private buildApiHttpRouteDoc;
151
+ }