ts-procedures 9.1.0 → 9.3.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 (189) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/agent_config/claude-code/skills/ts-procedures/api-reference.md +29 -22
  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/core/create-http-stream.d.ts +3 -14
  44. package/build/core/create-http-stream.js.map +1 -1
  45. package/build/core/create-http.d.ts +2 -9
  46. package/build/core/create-http.js.map +1 -1
  47. package/build/core/create-http.test-d.d.ts +1 -0
  48. package/build/core/create-http.test-d.js +104 -0
  49. package/build/core/create-http.test-d.js.map +1 -0
  50. package/build/core/procedures.d.ts +6 -16
  51. package/build/core/types.d.ts +49 -4
  52. package/build/errors.d.ts +33 -0
  53. package/build/errors.js +91 -0
  54. package/build/errors.js.map +1 -0
  55. package/build/errors.test.d.ts +1 -0
  56. package/build/errors.test.js +122 -0
  57. package/build/errors.test.js.map +1 -0
  58. package/build/exports.d.ts +1 -1
  59. package/build/exports.js.map +1 -1
  60. package/build/implementations/http/doc-registry.d.ts +28 -0
  61. package/build/implementations/http/doc-registry.js +96 -0
  62. package/build/implementations/http/doc-registry.js.map +1 -0
  63. package/build/implementations/http/doc-registry.test.d.ts +1 -0
  64. package/build/implementations/http/doc-registry.test.js +516 -0
  65. package/build/implementations/http/doc-registry.test.js.map +1 -0
  66. package/build/implementations/http/error-taxonomy.d.ts +249 -0
  67. package/build/implementations/http/error-taxonomy.js +252 -0
  68. package/build/implementations/http/error-taxonomy.js.map +1 -0
  69. package/build/implementations/http/error-taxonomy.test.d.ts +1 -0
  70. package/build/implementations/http/error-taxonomy.test.js +399 -0
  71. package/build/implementations/http/error-taxonomy.test.js.map +1 -0
  72. package/build/implementations/http/express-rpc/error-taxonomy.test.d.ts +1 -0
  73. package/build/implementations/http/express-rpc/error-taxonomy.test.js +83 -0
  74. package/build/implementations/http/express-rpc/error-taxonomy.test.js.map +1 -0
  75. package/build/implementations/http/express-rpc/index.d.ts +125 -0
  76. package/build/implementations/http/express-rpc/index.js +216 -0
  77. package/build/implementations/http/express-rpc/index.js.map +1 -0
  78. package/build/implementations/http/express-rpc/index.test.d.ts +1 -0
  79. package/build/implementations/http/express-rpc/index.test.js +684 -0
  80. package/build/implementations/http/express-rpc/index.test.js.map +1 -0
  81. package/build/implementations/http/express-rpc/types.d.ts +11 -0
  82. package/build/implementations/http/express-rpc/types.js +2 -0
  83. package/build/implementations/http/express-rpc/types.js.map +1 -0
  84. package/build/implementations/http/hono-api/error-taxonomy.test.d.ts +1 -0
  85. package/build/implementations/http/hono-api/error-taxonomy.test.js +137 -0
  86. package/build/implementations/http/hono-api/error-taxonomy.test.js.map +1 -0
  87. package/build/implementations/http/hono-api/index.d.ts +151 -0
  88. package/build/implementations/http/hono-api/index.js +344 -0
  89. package/build/implementations/http/hono-api/index.js.map +1 -0
  90. package/build/implementations/http/hono-api/index.test.d.ts +1 -0
  91. package/build/implementations/http/hono-api/index.test.js +992 -0
  92. package/build/implementations/http/hono-api/index.test.js.map +1 -0
  93. package/build/implementations/http/hono-api/types.d.ts +13 -0
  94. package/build/implementations/http/hono-api/types.js +2 -0
  95. package/build/implementations/http/hono-api/types.js.map +1 -0
  96. package/build/implementations/http/hono-rpc/error-taxonomy.test.d.ts +1 -0
  97. package/build/implementations/http/hono-rpc/error-taxonomy.test.js +64 -0
  98. package/build/implementations/http/hono-rpc/error-taxonomy.test.js.map +1 -0
  99. package/build/implementations/http/hono-rpc/index.d.ts +130 -0
  100. package/build/implementations/http/hono-rpc/index.js +209 -0
  101. package/build/implementations/http/hono-rpc/index.js.map +1 -0
  102. package/build/implementations/http/hono-rpc/index.test.d.ts +1 -0
  103. package/build/implementations/http/hono-rpc/index.test.js +828 -0
  104. package/build/implementations/http/hono-rpc/index.test.js.map +1 -0
  105. package/build/implementations/http/hono-rpc/types.d.ts +11 -0
  106. package/build/implementations/http/hono-rpc/types.js +2 -0
  107. package/build/implementations/http/hono-rpc/types.js.map +1 -0
  108. package/build/implementations/http/hono-stream/error-taxonomy.test.d.ts +1 -0
  109. package/build/implementations/http/hono-stream/error-taxonomy.test.js +159 -0
  110. package/build/implementations/http/hono-stream/error-taxonomy.test.js.map +1 -0
  111. package/build/implementations/http/hono-stream/index.d.ts +171 -0
  112. package/build/implementations/http/hono-stream/index.js +415 -0
  113. package/build/implementations/http/hono-stream/index.js.map +1 -0
  114. package/build/implementations/http/hono-stream/index.test.d.ts +1 -0
  115. package/build/implementations/http/hono-stream/index.test.js +1383 -0
  116. package/build/implementations/http/hono-stream/index.test.js.map +1 -0
  117. package/build/implementations/http/hono-stream/types.d.ts +15 -0
  118. package/build/implementations/http/hono-stream/types.js +2 -0
  119. package/build/implementations/http/hono-stream/types.js.map +1 -0
  120. package/build/implementations/http/on-request-error.test.d.ts +1 -0
  121. package/build/implementations/http/on-request-error.test.js +173 -0
  122. package/build/implementations/http/on-request-error.test.js.map +1 -0
  123. package/build/implementations/http/route-errors.test.d.ts +1 -0
  124. package/build/implementations/http/route-errors.test.js +139 -0
  125. package/build/implementations/http/route-errors.test.js.map +1 -0
  126. package/build/implementations/types.d.ts +192 -0
  127. package/build/implementations/types.js +2 -0
  128. package/build/implementations/types.js.map +1 -0
  129. package/build/index.d.ts +165 -0
  130. package/build/index.js +258 -0
  131. package/build/index.js.map +1 -0
  132. package/build/index.test.d.ts +1 -0
  133. package/build/index.test.js +920 -0
  134. package/build/index.test.js.map +1 -0
  135. package/build/schema/extract-json-schema.d.ts +2 -0
  136. package/build/schema/extract-json-schema.js +12 -0
  137. package/build/schema/extract-json-schema.js.map +1 -0
  138. package/build/schema/extract-json-schema.test.d.ts +1 -0
  139. package/build/schema/extract-json-schema.test.js +23 -0
  140. package/build/schema/extract-json-schema.test.js.map +1 -0
  141. package/build/schema/parser.d.ts +28 -0
  142. package/build/schema/parser.js +170 -0
  143. package/build/schema/parser.js.map +1 -0
  144. package/build/schema/parser.test.d.ts +1 -0
  145. package/build/schema/parser.test.js +120 -0
  146. package/build/schema/parser.test.js.map +1 -0
  147. package/build/schema/resolve-schema-lib.d.ts +12 -0
  148. package/build/schema/resolve-schema-lib.js +11 -0
  149. package/build/schema/resolve-schema-lib.js.map +1 -0
  150. package/build/schema/resolve-schema-lib.test.d.ts +1 -0
  151. package/build/schema/resolve-schema-lib.test.js +17 -0
  152. package/build/schema/resolve-schema-lib.test.js.map +1 -0
  153. package/build/schema/types.d.ts +8 -0
  154. package/build/schema/types.js +2 -0
  155. package/build/schema/types.js.map +1 -0
  156. package/build/server/types.d.ts +6 -12
  157. package/build/stack-utils.d.ts +25 -0
  158. package/build/stack-utils.js +95 -0
  159. package/build/stack-utils.js.map +1 -0
  160. package/build/stack-utils.test.d.ts +1 -0
  161. package/build/stack-utils.test.js +80 -0
  162. package/build/stack-utils.test.js.map +1 -0
  163. package/docs/client-and-codegen.md +17 -0
  164. package/docs/core.md +1 -0
  165. package/docs/migration-v8-to-v9.md +12 -4
  166. package/package.json +1 -1
  167. package/src/codegen/bin/cli.test.ts +28 -0
  168. package/src/codegen/bin/cli.ts +26 -0
  169. package/src/codegen/bin/flag-specs.ts +3 -0
  170. package/src/codegen/check-output.test.ts +177 -0
  171. package/src/codegen/check-output.ts +262 -0
  172. package/src/codegen/emit/api-route.ts +1 -1
  173. package/src/codegen/emit/context.ts +9 -0
  174. package/src/codegen/emit/http-stream-route.ts +1 -1
  175. package/src/codegen/emit/rpc-route.ts +1 -1
  176. package/src/codegen/emit/scope-file.ts +17 -0
  177. package/src/codegen/emit/stream-route.ts +1 -1
  178. package/src/codegen/emit-scope.test.ts +60 -0
  179. package/src/codegen/emit-types.test.ts +36 -0
  180. package/src/codegen/emit-types.ts +20 -0
  181. package/src/codegen/index.ts +23 -1
  182. package/src/codegen/targets/ts/name-collision.test.ts +34 -0
  183. package/src/codegen/targets/ts/run.ts +16 -0
  184. package/src/core/create-http-stream.ts +11 -12
  185. package/src/core/create-http.test-d.ts +154 -0
  186. package/src/core/create-http.ts +11 -7
  187. package/src/core/types.ts +63 -4
  188. package/src/exports.ts +5 -0
  189. package/src/server/types.ts +8 -12
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/codegen/targets/ts/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/codegen/targets/ts/run.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,13 @@
1
1
  import type { Infer, Prettify } from '../schema/json-schema.js';
2
2
  import type { FactoryRuntime } from './internal.js';
3
- import type { HttpMethod, ProcedureResult, TStreamContext } from './types.js';
4
- type HttpReq<TReq> = TReq extends Record<string, unknown> ? Prettify<{
5
- [K in keyof TReq]: Infer<TReq[K]>;
6
- }> : undefined;
7
- export declare function makeCreateHttpStream<TContext>(runtime: FactoryRuntime<TContext, any>): <TName extends string, TReq extends Record<string, unknown> | undefined, TYieldType, TReturnType = void, TResHeaders = undefined, TErrorKey extends string = string>(name: TName, config: {
3
+ import type { HttpMethod, HttpReq, ProcedureResult, THttpReqInput, THttpStreamSchema, TStreamContext } from './types.js';
4
+ export declare function makeCreateHttpStream<TContext>(runtime: FactoryRuntime<TContext, any>): <TName extends string, TReq extends THttpReqInput | undefined, TYieldType, TReturnType = void, TResHeaders = undefined, TErrorKey extends string = string>(name: TName, config: {
8
5
  path: string;
9
6
  method: HttpMethod;
10
7
  scope?: string;
11
8
  errors?: TErrorKey[];
12
9
  description?: string;
13
- schema: {
14
- req?: TReq;
15
- yield?: TYieldType;
16
- returnType?: TReturnType;
17
- res?: TResHeaders extends undefined ? undefined : {
18
- headers: TResHeaders;
19
- };
20
- };
10
+ schema: THttpStreamSchema<TReq, TYieldType, TReturnType, TResHeaders>;
21
11
  validateYields?: boolean;
22
12
  }, handler: TResHeaders extends undefined ? (ctx: Prettify<TContext & TStreamContext>, req: HttpReq<TReq>) => AsyncGenerator<Infer<TYieldType>, Infer<TReturnType> | void, unknown> : (ctx: Prettify<TContext & TStreamContext>, req: HttpReq<TReq>) => Promise<{
23
13
  headers: Infer<TResHeaders>;
@@ -47,4 +37,3 @@ export declare function makeCreateHttpStream<TContext>(runtime: FactoryRuntime<T
47
37
  name: TName;
48
38
  kind: "http-stream";
49
39
  }>;
50
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"create-http-stream.js","sourceRoot":"","sources":["../../src/core/create-http-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-http-stream.js","sourceRoot":"","sources":["../../src/core/create-http-stream.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Infer, Prettify } from '../schema/json-schema.js';
2
2
  import type { FactoryRuntime } from './internal.js';
3
- import type { ProcedureResult, TCreateHttpConfig, TLocalContext } from './types.js';
3
+ import type { HttpReq, ProcedureResult, TCreateHttpConfig, THttpReqInput, THttpResInput, TLocalContext } from './types.js';
4
4
  /**
5
5
  * The handler return shape is gated by the DECLARED response schema, not by
6
6
  * duck-typing the returned value — so domain objects that happen to have
@@ -22,13 +22,7 @@ export type HttpReturn<TRes> = TRes extends {
22
22
  } : TRes extends {
23
23
  body: infer B;
24
24
  } ? Infer<B> : void;
25
- type HttpReq<TReq> = TReq extends Record<string, unknown> ? Prettify<{
26
- [K in keyof TReq]: Infer<TReq[K]>;
27
- }> : undefined;
28
- export declare function makeCreateHttp<TContext>(runtime: FactoryRuntime<TContext, any>): <TName extends string, TReq extends Record<string, unknown> | undefined = undefined, TRes extends {
29
- body?: unknown;
30
- headers?: unknown;
31
- } | undefined = undefined, TErrorKey extends string = string>(name: TName, config: TCreateHttpConfig<TReq, TRes, TErrorKey>, handler: (ctx: Prettify<TContext & TLocalContext>, req: HttpReq<TReq>) => Promise<HttpReturn<TRes>>) => ProcedureResult<TName, (ctx: Prettify<TContext>, req: HttpReq<TReq>) => Promise<HttpReturn<TRes>>, {
25
+ export declare function makeCreateHttp<TContext>(runtime: FactoryRuntime<TContext, any>): <TName extends string, TReq extends THttpReqInput | undefined = undefined, TRes extends THttpResInput | undefined = undefined, TErrorKey extends string = string>(name: TName, config: TCreateHttpConfig<TReq, TRes, TErrorKey>, handler: (ctx: Prettify<TContext & TLocalContext>, req: HttpReq<TReq>) => Promise<HttpReturn<TRes>>) => ProcedureResult<TName, (ctx: Prettify<TContext>, req: HttpReq<TReq>) => Promise<HttpReturn<TRes>>, {
32
26
  path: string;
33
27
  method: import("./types.js").HttpMethod;
34
28
  successStatus?: number;
@@ -48,4 +42,3 @@ export declare function makeCreateHttp<TContext>(runtime: FactoryRuntime<TContex
48
42
  name: TName;
49
43
  kind: "http";
50
44
  }>;
51
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"create-http.js","sourceRoot":"","sources":["../../src/core/create-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-http.js","sourceRoot":"","sources":["../../src/core/create-http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,104 @@
1
+ import { Type } from 'typebox';
2
+ import { describe, expectTypeOf, test } from 'vitest';
3
+ import { Procedures } from './procedures.js';
4
+ // ---------------------------------------------------------------------------
5
+ // Type tests for HTTP input shape autocomplete / DX contract
6
+ // These guard the shapes that power IDE autocomplete for schema.req / schema.res.
7
+ // ---------------------------------------------------------------------------
8
+ describe('THttpReqInput / THttpResInput / APIInput', () => {
9
+ test('APIInput accepts only the four known channels', () => {
10
+ // Valid
11
+ const good = {
12
+ pathParams: Type.Object({ id: Type.String() }),
13
+ query: Type.Object({}),
14
+ body: Type.Object({}),
15
+ headers: Type.Object({}),
16
+ };
17
+ expectTypeOf(good).toEqualTypeOf();
18
+ // Invalid channel should not be assignable
19
+ // @ts-expect-error - unknown channel name
20
+ const _bad = { wrong: Type.Object({}) };
21
+ });
22
+ test('THttpResInput shape', () => {
23
+ const resShape = {
24
+ body: Type.Object({ ok: Type.Boolean() }),
25
+ headers: Type.Object({ 'x-foo': Type.String() }),
26
+ };
27
+ expectTypeOf(resShape).toEqualTypeOf();
28
+ });
29
+ });
30
+ describe('TCreateHttpConfig shapes for literals', () => {
31
+ test('config literal gets the channel keys from the shape (autocomplete contract)', () => {
32
+ const cfg = {
33
+ path: '/x',
34
+ method: 'get',
35
+ schema: {
36
+ req: {
37
+ // These keys should be suggested by the IDE
38
+ pathParams: Type.Object({ id: Type.String() }),
39
+ query: undefined,
40
+ },
41
+ res: {
42
+ body: Type.Object({}),
43
+ },
44
+ },
45
+ };
46
+ expectTypeOf(cfg).toEqualTypeOf();
47
+ });
48
+ test('using satisfies APIInput on req is valid and preserves specific types', () => {
49
+ const req = {
50
+ pathParams: Type.Object({ id: Type.String() }),
51
+ query: Type.Object({ q: Type.Optional(Type.String()) }),
52
+ };
53
+ const cfg = {
54
+ path: '/y',
55
+ method: 'get',
56
+ schema: { req },
57
+ };
58
+ // The assignment succeeded, proving the shape accepted the keys
59
+ // (specific inference of TReq from literal is a bonus)
60
+ });
61
+ });
62
+ describe('handler inference via HttpReq / HttpReturn', () => {
63
+ const procs = Procedures();
64
+ test('full req shape produces correctly typed handler param', () => {
65
+ const { Get } = procs.CreateHttp('Get', {
66
+ path: '/u/:id',
67
+ method: 'get',
68
+ schema: {
69
+ req: {
70
+ pathParams: Type.Object({ id: Type.String() }),
71
+ query: Type.Object({ verbose: Type.Optional(Type.Boolean()) }),
72
+ },
73
+ },
74
+ }, async (_ctx, req) => {
75
+ expectTypeOf(req).toEqualTypeOf();
76
+ // no res schema => void
77
+ return undefined;
78
+ });
79
+ expectTypeOf().toEqualTypeOf();
80
+ });
81
+ test('res with headers produces { body, headers } return shape', () => {
82
+ const { WithHeaders } = procs.CreateHttp('WithHeaders', {
83
+ path: '/h',
84
+ method: 'get',
85
+ schema: {
86
+ res: {
87
+ body: Type.Object({ data: Type.String() }),
88
+ headers: Type.Object({ 'x-trace': Type.String() }),
89
+ },
90
+ },
91
+ }, async () => ({ body: { data: 'hi' }, headers: { 'x-trace': 'abc' } }));
92
+ expectTypeOf().toEqualTypeOf();
93
+ });
94
+ test('no schema.res yields void (204-style)', () => {
95
+ const { Logout } = procs.CreateHttp('Logout', { path: '/logout', method: 'post' }, async () => undefined);
96
+ expectTypeOf().toEqualTypeOf();
97
+ });
98
+ });
99
+ // Smoke test that HttpReq and HttpSchemaInput are exported and usable
100
+ test('HttpReq and HttpSchemaInput are exported and usable', () => {
101
+ expectTypeOf().toHaveProperty('pathParams');
102
+ expectTypeOf().toHaveProperty('query');
103
+ });
104
+ //# sourceMappingURL=create-http.test-d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-http.test-d.js","sourceRoot":"","sources":["../../src/core/create-http.test-d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAW5C,8EAA8E;AAC9E,6DAA6D;AAC7D,kFAAkF;AAClF,8EAA8E;AAE9E,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,QAAQ;QACR,MAAM,IAAI,GAAa;YACrB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;SACzB,CAAA;QACD,YAAY,CAAC,IAAI,CAAC,CAAC,aAAa,EAAY,CAAA;QAE5C,2CAA2C;QAC3C,0CAA0C;QAC1C,MAAM,IAAI,GAAa,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAQ,EAAE,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC/B,MAAM,QAAQ,GAAkB;YAC9B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;SACjD,CAAA;QACD,YAAY,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAiB,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,IAAI,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACvF,MAAM,GAAG,GAAsB;YAC7B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH,4CAA4C;oBAC5C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC9C,KAAK,EAAE,SAAS;iBACjB;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;iBACtB;aACF;SACF,CAAA;QACD,YAAY,CAAC,GAAG,CAAC,CAAC,aAAa,EAAqB,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;QACjF,MAAM,GAAG,GAAG;YACV,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;SACrC,CAAA;QAEpB,MAAM,GAAG,GAAkC;YACzC,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,EAAE,GAAG,EAAE;SAChB,CAAA;QAED,gEAAgE;QAChE,uDAAuD;IACzD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;IAE1B,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACjE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,CAC9B,KAAK,EACL;YACE,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC9C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;iBAC/D;aACF;SACF,EACD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAClB,YAAY,CAAC,GAAG,CAAC,CAAC,aAAa,EAG3B,CAAA;YACJ,wBAAwB;YACxB,OAAO,SAAS,CAAA;QAClB,CAAC,CACF,CAAA;QAGD,YAAY,EAA0B,CAAC,aAAa,EAGhD,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACpE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,UAAU,CACtC,aAAa,EACb;YACE,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;iBACnD;aACF;SACF,EACD,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CACtE,CAAA;QAGD,YAAY,EAAK,CAAC,aAAa,EAA8D,CAAA;IAC/F,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACjD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CACjC,QAAQ,EACR,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EACnC,KAAK,IAAI,EAAE,CAAC,SAAS,CACtB,CAAA;QAGD,YAAY,EAAK,CAAC,aAAa,EAAQ,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,sEAAsE;AACtE,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAE/D,YAAY,EAAc,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;IAIvD,YAAY,EAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAC3C,CAAC,CAAC,CAAA"}
@@ -70,10 +70,7 @@ export declare function Procedures<TContext = TNoContextProvided, TExtendedConfi
70
70
  yield?: import("../schema/compile.js").Validate;
71
71
  } | undefined;
72
72
  } & TExtendedConfig>;
73
- CreateHttp: <TName extends string, TReq extends Record<string, unknown> | undefined = undefined, TRes extends {
74
- body?: unknown;
75
- headers?: unknown;
76
- } | undefined = undefined, TErrorKey extends string = string>(name: TName, config: import("./types.js").TCreateHttpConfig<TReq, TRes, TErrorKey>, handler: (ctx: TContext & import("./types.js").TLocalContext extends infer T ? { [Key in keyof T]: T[Key]; } : never, req: TReq extends Record<string, unknown> ? { [Key_1 in keyof { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }]: { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }[Key_1]; } : undefined) => Promise<import("./create-http.js").HttpReturn<TRes>>) => import("./types.js").ProcedureResult<TName, (ctx: { [Key in keyof TContext]: TContext[Key]; }, req: TReq extends Record<string, unknown> ? { [Key_1 in keyof { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }]: { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }[Key_1]; } : undefined) => Promise<import("./create-http.js").HttpReturn<TRes>>, {
73
+ CreateHttp: <TName extends string, TReq extends import("./types.js").THttpReqInput | undefined = undefined, TRes extends import("./types.js").THttpResInput | undefined = undefined, TErrorKey extends string = string>(name: TName, config: import("./types.js").TCreateHttpConfig<TReq, TRes, TErrorKey>, handler: (ctx: TContext & import("./types.js").TLocalContext extends infer T ? { [Key in keyof T]: T[Key]; } : never, req: import("./types.js").HttpReq<TReq>) => Promise<import("./create-http.js").HttpReturn<TRes>>) => import("./types.js").ProcedureResult<TName, (ctx: { [Key in keyof TContext]: TContext[Key]; }, req: import("./types.js").HttpReq<TReq>) => Promise<import("./create-http.js").HttpReturn<TRes>>, {
77
74
  path: string;
78
75
  method: import("./types.js").HttpMethod;
79
76
  successStatus?: number;
@@ -93,29 +90,22 @@ export declare function Procedures<TContext = TNoContextProvided, TExtendedConfi
93
90
  name: TName;
94
91
  kind: "http";
95
92
  }>;
96
- CreateHttpStream: <TName extends string, TReq extends Record<string, unknown> | undefined, TYieldType, TReturnType = void, TResHeaders = undefined, TErrorKey extends string = string>(name: TName, config: {
93
+ CreateHttpStream: <TName extends string, TReq extends import("./types.js").THttpReqInput | undefined, TYieldType, TReturnType = void, TResHeaders = undefined, TErrorKey extends string = string>(name: TName, config: {
97
94
  path: string;
98
95
  method: import("./types.js").HttpMethod;
99
96
  scope?: string;
100
97
  errors?: TErrorKey[] | undefined;
101
98
  description?: string;
102
- schema: {
103
- req?: TReq | undefined;
104
- yield?: TYieldType | undefined;
105
- returnType?: TReturnType | undefined;
106
- res?: (TResHeaders extends undefined ? undefined : {
107
- headers: TResHeaders;
108
- }) | undefined;
109
- };
99
+ schema: import("./types.js").THttpStreamSchema<TReq, TYieldType, TReturnType, TResHeaders>;
110
100
  validateYields?: boolean;
111
101
  }, handler: TResHeaders extends undefined ? (ctx: TContext & import("./types.js").TLocalContext & {
112
102
  signal: AbortSignal;
113
- } extends infer T ? { [Key in keyof T]: T[Key]; } : never, req: TReq extends Record<string, unknown> ? { [Key_1 in keyof { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }]: { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }[Key_1]; } : undefined) => AsyncGenerator<import("../exports.js").Infer<TYieldType>, void | import("../exports.js").Infer<TReturnType>, unknown> : (ctx: TContext & import("./types.js").TLocalContext & {
103
+ } extends infer T ? { [Key in keyof T]: T[Key]; } : never, req: import("./types.js").HttpReq<TReq>) => AsyncGenerator<import("../exports.js").Infer<TYieldType>, void | import("../exports.js").Infer<TReturnType>, unknown> : (ctx: TContext & import("./types.js").TLocalContext & {
114
104
  signal: AbortSignal;
115
- } extends infer T ? { [Key in keyof T]: T[Key]; } : never, req: TReq extends Record<string, unknown> ? { [Key_1 in keyof { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }]: { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }[Key_1]; } : undefined) => Promise<{
105
+ } extends infer T ? { [Key in keyof T]: T[Key]; } : never, req: import("./types.js").HttpReq<TReq>) => Promise<{
116
106
  headers: import("../exports.js").Infer<TResHeaders>;
117
107
  stream: AsyncGenerator<import("../exports.js").Infer<TYieldType>, void | import("../exports.js").Infer<TReturnType>, unknown>;
118
- }>) => import("./types.js").ProcedureResult<TName, (ctx: { [Key in keyof TContext]: TContext[Key]; }, req: TReq extends Record<string, unknown> ? { [Key_1 in keyof { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }]: { [K in keyof TReq]: import("../exports.js").Infer<TReq[K]>; }[Key_1]; } : undefined) => Promise<{
108
+ }>) => import("./types.js").ProcedureResult<TName, (ctx: { [Key in keyof TContext]: TContext[Key]; }, req: import("./types.js").HttpReq<TReq>) => Promise<{
119
109
  stream: AsyncGenerator<import("../exports.js").Infer<TYieldType>, void | import("../exports.js").Infer<TReturnType>, unknown>;
120
110
  initialHeaders?: Record<string, string>;
121
111
  }>, {
@@ -1,7 +1,7 @@
1
1
  import type * as AJV from 'ajv';
2
2
  import type { ProcedureError } from './errors.js';
3
3
  import type { SchemaAdapter } from '../schema/adapter.js';
4
- import type { TJSONSchema } from '../schema/json-schema.js';
4
+ import type { Infer, Prettify, TJSONSchema } from '../schema/json-schema.js';
5
5
  import type { Validate } from '../schema/compile.js';
6
6
  export type TNoContextProvided = unknown;
7
7
  /**
@@ -61,7 +61,52 @@ export type TStreamProcedureRegistration<TContext = unknown, TExtendedConfig = u
61
61
  handler: (ctx: TContext, params?: any) => AsyncGenerator<any, any, unknown>;
62
62
  };
63
63
  export type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch' | 'head';
64
- export type TCreateHttpConfig<TReq, TRes, TErrorKey extends string = string> = {
64
+ /**
65
+ * Canonical shape for `schema.req` channels.
66
+ * Used both to constrain generics and to provide autocomplete when writing
67
+ * `CreateHttp` / `CreateHttpStream` config objects.
68
+ *
69
+ * Note: RPC `Create` / `CreateStream` use a flatter `schema: { params?, yieldType?, returnType? }`
70
+ * directly (no extra container generic), so they don't need an equivalent named input shape.
71
+ */
72
+ export type THttpReqInput = {
73
+ pathParams?: unknown;
74
+ query?: unknown;
75
+ body?: unknown;
76
+ headers?: unknown;
77
+ };
78
+ /**
79
+ * Canonical shape for `schema.res` on CreateHttp (CreateHttpStream only supports `headers`).
80
+ */
81
+ export type THttpResInput = {
82
+ body?: unknown;
83
+ headers?: unknown;
84
+ };
85
+ /**
86
+ * @internal Helper to surface literal channel keys for autocomplete
87
+ * while still threading the user's concrete generic schemas through for inference.
88
+ */
89
+ export type HttpSchemaInput<Base, T> = Base & (T extends undefined ? {} : T);
90
+ /**
91
+ * @internal Shared helper for typing the destructured `req` argument passed to
92
+ * CreateHttp / CreateHttpStream handlers. Mirrors the per-channel Infer.
93
+ */
94
+ export type HttpReq<TReq> = TReq extends Record<string, unknown> ? Prettify<{
95
+ [K in keyof TReq]: Infer<TReq[K]>;
96
+ }> : undefined;
97
+ /**
98
+ * Shape used for the `schema` option of `CreateHttpStream`.
99
+ * Reuses the same req input shape as CreateHttp for autocomplete consistency.
100
+ */
101
+ export type THttpStreamSchema<TReq extends THttpReqInput | undefined = undefined, TYield = unknown, TReturn = void, TResHeaders = undefined> = {
102
+ req?: HttpSchemaInput<THttpReqInput, TReq>;
103
+ yield?: TYield;
104
+ returnType?: TReturn;
105
+ res?: TResHeaders extends undefined ? undefined : {
106
+ headers: TResHeaders;
107
+ };
108
+ };
109
+ export type TCreateHttpConfig<TReq extends THttpReqInput | undefined = undefined, TRes extends THttpResInput | undefined = undefined, TErrorKey extends string = string> = {
65
110
  path: string;
66
111
  method: HttpMethod;
67
112
  successStatus?: number;
@@ -70,8 +115,8 @@ export type TCreateHttpConfig<TReq, TRes, TErrorKey extends string = string> = {
70
115
  description?: string;
71
116
  /** Optional — a no-input, no-output route (e.g. a 204 logout) may omit it. */
72
117
  schema?: {
73
- req?: TReq;
74
- res?: TRes;
118
+ req?: HttpSchemaInput<THttpReqInput, TReq>;
119
+ res?: HttpSchemaInput<THttpResInput, TRes>;
75
120
  };
76
121
  };
77
122
  export type THttpProcedureRegistration<TContext = unknown> = {
@@ -0,0 +1,33 @@
1
+ import { TSchemaValidationError } from './schema/parser.js';
2
+ import { DefinitionInfo, DefinitionLocation } from './stack-utils.js';
3
+ export declare class ProcedureError extends Error {
4
+ readonly procedureName: string;
5
+ readonly message: string;
6
+ readonly meta?: object | undefined;
7
+ cause?: unknown;
8
+ readonly definedAt?: DefinitionLocation;
9
+ readonly definitionStack?: string;
10
+ constructor(procedureName: string, message: string, meta?: object | undefined, definitionInfo?: DefinitionInfo);
11
+ /**
12
+ * Returns a formatted string showing where the procedure was defined.
13
+ */
14
+ getDefinitionLocation(): string | undefined;
15
+ /**
16
+ * Enhances the error stack with definition location information.
17
+ */
18
+ private enhanceStack;
19
+ }
20
+ export declare class ProcedureValidationError extends ProcedureError {
21
+ readonly procedureName: string;
22
+ readonly errors?: TSchemaValidationError[] | undefined;
23
+ constructor(procedureName: string, message: string, errors?: TSchemaValidationError[] | undefined, definitionInfo?: DefinitionInfo);
24
+ }
25
+ export declare class ProcedureRegistrationError extends ProcedureError {
26
+ readonly procedureName: string;
27
+ constructor(procedureName: string, message: string, definitionInfo?: DefinitionInfo);
28
+ }
29
+ export declare class ProcedureYieldValidationError extends ProcedureError {
30
+ readonly procedureName: string;
31
+ readonly errors?: TSchemaValidationError[] | undefined;
32
+ constructor(procedureName: string, message: string, errors?: TSchemaValidationError[] | undefined, definitionInfo?: DefinitionInfo);
33
+ }
@@ -0,0 +1,91 @@
1
+ import { formatDefinitionInfo } from './stack-utils.js';
2
+ import { kebabCase } from 'es-toolkit/string';
3
+ export class ProcedureError extends Error {
4
+ procedureName;
5
+ message;
6
+ meta;
7
+ cause;
8
+ definedAt;
9
+ definitionStack;
10
+ constructor(procedureName, message, meta,
11
+ // Used for error stack trace details
12
+ definitionInfo) {
13
+ super(message);
14
+ this.procedureName = procedureName;
15
+ this.message = message;
16
+ this.meta = meta;
17
+ this.name = 'ProcedureError';
18
+ if (definitionInfo) {
19
+ this.definedAt = definitionInfo.definedAt;
20
+ this.definitionStack = definitionInfo.definitionStack;
21
+ this.enhanceStack();
22
+ }
23
+ // https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/
24
+ Object.setPrototypeOf(this, ProcedureError.prototype);
25
+ }
26
+ /**
27
+ * Returns a formatted string showing where the procedure was defined.
28
+ */
29
+ getDefinitionLocation() {
30
+ if (!this.definedAt) {
31
+ return undefined;
32
+ }
33
+ return `${this.definedAt.file}:${this.definedAt.line}:${this.definedAt.column}`;
34
+ }
35
+ /**
36
+ * Enhances the error stack with definition location information.
37
+ */
38
+ enhanceStack() {
39
+ if (!this.stack || !this.definedAt) {
40
+ return;
41
+ }
42
+ const definitionSection = formatDefinitionInfo({ definedAt: this.definedAt, definitionStack: this.definitionStack }, this.procedureName);
43
+ if (definitionSection) {
44
+ this.stack = this.stack + definitionSection;
45
+ }
46
+ }
47
+ }
48
+ export class ProcedureValidationError extends ProcedureError {
49
+ procedureName;
50
+ errors;
51
+ constructor(procedureName, message, errors,
52
+ // Used for error stack trace details
53
+ definitionInfo) {
54
+ const readableErrors = errors
55
+ ?.map((err) => `- ${kebabCase(err.instancePath).replace('-', '.')} ${err.message}`)
56
+ .join(', ');
57
+ super(procedureName, message + ' ' + readableErrors, { errors }, definitionInfo);
58
+ this.procedureName = procedureName;
59
+ this.errors = errors;
60
+ this.name = 'ProcedureValidationError';
61
+ // https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/
62
+ Object.setPrototypeOf(this, ProcedureValidationError.prototype);
63
+ }
64
+ }
65
+ export class ProcedureRegistrationError extends ProcedureError {
66
+ procedureName;
67
+ constructor(procedureName, message,
68
+ // Used for error stack trace details
69
+ definitionInfo) {
70
+ super(procedureName, message, undefined, definitionInfo);
71
+ this.procedureName = procedureName;
72
+ this.name = 'ProcedureRegistrationError';
73
+ // https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/
74
+ Object.setPrototypeOf(this, ProcedureRegistrationError.prototype);
75
+ }
76
+ }
77
+ export class ProcedureYieldValidationError extends ProcedureError {
78
+ procedureName;
79
+ errors;
80
+ constructor(procedureName, message, errors,
81
+ // Used for error stack trace details
82
+ definitionInfo) {
83
+ super(procedureName, message, undefined, definitionInfo);
84
+ this.procedureName = procedureName;
85
+ this.errors = errors;
86
+ this.name = 'ProcedureYieldValidationError';
87
+ // https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/
88
+ Object.setPrototypeOf(this, ProcedureYieldValidationError.prototype);
89
+ }
90
+ }
91
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,122 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { ProcedureError, ProcedureValidationError, ProcedureRegistrationError, } from './errors.js';
3
+ describe('Error Classes', () => {
4
+ test('ProcedureError has correct properties', () => {
5
+ const err = new ProcedureError('TestProc', 'Something failed', { code: 123 });
6
+ expect(err.name).toBe('ProcedureError');
7
+ expect(err.procedureName).toBe('TestProc');
8
+ expect(err.message).toBe('Something failed');
9
+ expect(err.meta).toEqual({ code: 123 });
10
+ expect(err instanceof Error).toBe(true);
11
+ });
12
+ test('ProcedureValidationError extends ProcedureError', () => {
13
+ const err = new ProcedureValidationError('TestProc', 'Validation failed', []);
14
+ expect(err instanceof ProcedureError).toBe(true);
15
+ expect(err instanceof Error).toBe(true);
16
+ expect(err.name).toBe('ProcedureValidationError');
17
+ });
18
+ test('ProcedureRegistrationError extends ProcedureError', () => {
19
+ const err = new ProcedureRegistrationError('TestProc', 'Registration failed');
20
+ expect(err instanceof ProcedureError).toBe(true);
21
+ expect(err instanceof Error).toBe(true);
22
+ expect(err.name).toBe('ProcedureRegistrationError');
23
+ expect(err.procedureName).toBe('TestProc');
24
+ });
25
+ test('ProcedureError supports cause property', () => {
26
+ const cause = new Error('Original error');
27
+ const err = new ProcedureError('TestProc', 'Wrapped error');
28
+ err.cause = cause;
29
+ expect(err.cause).toBe(cause);
30
+ });
31
+ test('All error types have consistent procedureName property', () => {
32
+ const baseErr = new ProcedureError('Proc1', 'message');
33
+ const validationErr = new ProcedureValidationError('Proc2', 'message', []);
34
+ const registrationErr = new ProcedureRegistrationError('Proc3', 'message');
35
+ expect(baseErr.procedureName).toBe('Proc1');
36
+ expect(validationErr.procedureName).toBe('Proc2');
37
+ expect(registrationErr.procedureName).toBe('Proc3');
38
+ });
39
+ });
40
+ describe('Error Classes - Definition Info', () => {
41
+ const mockDefinitionInfo = {
42
+ definedAt: {
43
+ file: '/app/procedures/user.ts',
44
+ line: 25,
45
+ column: 3,
46
+ raw: 'at Object.<anonymous> (/app/procedures/user.ts:25:3)',
47
+ },
48
+ definitionStack: 'Error\n at Object.<anonymous> (/app/procedures/user.ts:25:3)',
49
+ };
50
+ test('ProcedureError includes definedAt when provided', () => {
51
+ const err = new ProcedureError('TestProc', 'Something failed', undefined, mockDefinitionInfo);
52
+ expect(err.definedAt).toBeDefined();
53
+ expect(err.definedAt?.file).toBe('/app/procedures/user.ts');
54
+ expect(err.definedAt?.line).toBe(25);
55
+ expect(err.definedAt?.column).toBe(3);
56
+ });
57
+ test('ProcedureError includes definitionStack when provided', () => {
58
+ const err = new ProcedureError('TestProc', 'Something failed', undefined, mockDefinitionInfo);
59
+ expect(err.definitionStack).toBeDefined();
60
+ expect(err.definitionStack).toContain('/app/procedures/user.ts');
61
+ });
62
+ test('ProcedureError works without definitionInfo (backward compat)', () => {
63
+ const err = new ProcedureError('TestProc', 'Something failed', { code: 123 });
64
+ expect(err.definedAt).toBeUndefined();
65
+ expect(err.definitionStack).toBeUndefined();
66
+ expect(err.procedureName).toBe('TestProc');
67
+ expect(err.message).toBe('Something failed');
68
+ expect(err.meta).toEqual({ code: 123 });
69
+ });
70
+ test('ProcedureValidationError includes definedAt when provided', () => {
71
+ const err = new ProcedureValidationError('TestProc', 'Validation failed', [], mockDefinitionInfo);
72
+ expect(err.definedAt).toBeDefined();
73
+ expect(err.definedAt?.file).toBe('/app/procedures/user.ts');
74
+ expect(err.definedAt?.line).toBe(25);
75
+ });
76
+ test('ProcedureValidationError works without definitionInfo (backward compat)', () => {
77
+ const err = new ProcedureValidationError('TestProc', 'Validation failed', []);
78
+ expect(err.definedAt).toBeUndefined();
79
+ expect(err.definitionStack).toBeUndefined();
80
+ expect(err.name).toBe('ProcedureValidationError');
81
+ });
82
+ test('ProcedureRegistrationError includes definedAt when provided', () => {
83
+ const err = new ProcedureRegistrationError('TestProc', 'Registration failed', mockDefinitionInfo);
84
+ expect(err.definedAt).toBeDefined();
85
+ expect(err.definedAt?.file).toBe('/app/procedures/user.ts');
86
+ });
87
+ test('ProcedureRegistrationError works without definitionInfo (backward compat)', () => {
88
+ const err = new ProcedureRegistrationError('TestProc', 'Registration failed');
89
+ expect(err.definedAt).toBeUndefined();
90
+ expect(err.definitionStack).toBeUndefined();
91
+ expect(err.name).toBe('ProcedureRegistrationError');
92
+ });
93
+ test('getDefinitionLocation returns formatted location string', () => {
94
+ const err = new ProcedureError('TestProc', 'Something failed', undefined, mockDefinitionInfo);
95
+ const location = err.getDefinitionLocation();
96
+ expect(location).toBe('/app/procedures/user.ts:25:3');
97
+ });
98
+ test('getDefinitionLocation returns undefined when no definedAt', () => {
99
+ const err = new ProcedureError('TestProc', 'Something failed');
100
+ const location = err.getDefinitionLocation();
101
+ expect(location).toBeUndefined();
102
+ });
103
+ test('enhanced stack contains definition location', () => {
104
+ const err = new ProcedureError('TestProc', 'Something failed', undefined, mockDefinitionInfo);
105
+ expect(err.stack).toContain('--- Procedure "TestProc" defined at ---');
106
+ expect(err.stack).toContain('/app/procedures/user.ts:25:3');
107
+ });
108
+ test('stack is not modified when no definitionInfo', () => {
109
+ const err = new ProcedureError('TestProc', 'Something failed');
110
+ expect(err.stack).toBeDefined();
111
+ expect(err.stack).not.toContain('--- Procedure');
112
+ });
113
+ test('all error types enhance stack with definition location', () => {
114
+ const baseErr = new ProcedureError('Proc1', 'message', undefined, mockDefinitionInfo);
115
+ const validationErr = new ProcedureValidationError('Proc2', 'message', [], mockDefinitionInfo);
116
+ const registrationErr = new ProcedureRegistrationError('Proc3', 'message', mockDefinitionInfo);
117
+ expect(baseErr.stack).toContain('--- Procedure "Proc1" defined at ---');
118
+ expect(validationErr.stack).toContain('--- Procedure "Proc2" defined at ---');
119
+ expect(registrationErr.stack).toContain('--- Procedure "Proc3" defined at ---');
120
+ });
121
+ });
122
+ //# sourceMappingURL=errors.test.js.map