ts-procedures 5.14.0 → 5.15.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 (239) hide show
  1. package/agent_config/claude-code/skills/ts-procedures/api-reference.md +2 -0
  2. package/agent_config/claude-code/skills/ts-procedures/patterns.md +1 -0
  3. package/agent_config/claude-code/skills/ts-procedures-scaffold/templates/client.md +3 -0
  4. package/agent_config/copilot/copilot-instructions.md +1 -0
  5. package/agent_config/cursor/cursorrules +1 -0
  6. package/build/codegen/bin/cli.d.ts +2 -0
  7. package/build/codegen/bin/cli.js +11 -0
  8. package/build/codegen/bin/cli.js.map +1 -1
  9. package/build/codegen/bin/cli.test.js +30 -0
  10. package/build/codegen/bin/cli.test.js.map +1 -1
  11. package/build/codegen/index.d.ts +1 -0
  12. package/build/codegen/index.js +1 -0
  13. package/build/codegen/index.js.map +1 -1
  14. package/build/codegen/pipeline.d.ts +1 -0
  15. package/build/codegen/pipeline.js +8 -2
  16. package/build/codegen/pipeline.js.map +1 -1
  17. package/build/codegen/pipeline.test.js +34 -1
  18. package/build/codegen/pipeline.test.js.map +1 -1
  19. package/docs/client-and-codegen.md +2 -0
  20. package/package.json +1 -1
  21. package/src/codegen/bin/cli.test.ts +35 -0
  22. package/src/codegen/bin/cli.ts +11 -0
  23. package/src/codegen/index.ts +2 -0
  24. package/src/codegen/pipeline.test.ts +46 -1
  25. package/src/codegen/pipeline.ts +9 -2
  26. package/src/implementations/http/README.md +2 -0
  27. package/build/src/client/call.d.ts +0 -14
  28. package/build/src/client/call.js +0 -47
  29. package/build/src/client/call.js.map +0 -1
  30. package/build/src/client/call.test.d.ts +0 -1
  31. package/build/src/client/call.test.js +0 -124
  32. package/build/src/client/call.test.js.map +0 -1
  33. package/build/src/client/errors.d.ts +0 -25
  34. package/build/src/client/errors.js +0 -33
  35. package/build/src/client/errors.js.map +0 -1
  36. package/build/src/client/errors.test.d.ts +0 -1
  37. package/build/src/client/errors.test.js +0 -41
  38. package/build/src/client/errors.test.js.map +0 -1
  39. package/build/src/client/fetch-adapter.d.ts +0 -12
  40. package/build/src/client/fetch-adapter.js +0 -156
  41. package/build/src/client/fetch-adapter.js.map +0 -1
  42. package/build/src/client/fetch-adapter.test.d.ts +0 -1
  43. package/build/src/client/fetch-adapter.test.js +0 -271
  44. package/build/src/client/fetch-adapter.test.js.map +0 -1
  45. package/build/src/client/hooks.d.ts +0 -17
  46. package/build/src/client/hooks.js +0 -40
  47. package/build/src/client/hooks.js.map +0 -1
  48. package/build/src/client/hooks.test.d.ts +0 -1
  49. package/build/src/client/hooks.test.js +0 -163
  50. package/build/src/client/hooks.test.js.map +0 -1
  51. package/build/src/client/index.d.ts +0 -22
  52. package/build/src/client/index.js +0 -67
  53. package/build/src/client/index.js.map +0 -1
  54. package/build/src/client/index.test.d.ts +0 -1
  55. package/build/src/client/index.test.js +0 -231
  56. package/build/src/client/index.test.js.map +0 -1
  57. package/build/src/client/request-builder.d.ts +0 -13
  58. package/build/src/client/request-builder.js +0 -53
  59. package/build/src/client/request-builder.js.map +0 -1
  60. package/build/src/client/request-builder.test.d.ts +0 -1
  61. package/build/src/client/request-builder.test.js +0 -160
  62. package/build/src/client/request-builder.test.js.map +0 -1
  63. package/build/src/client/stream.d.ts +0 -27
  64. package/build/src/client/stream.js +0 -118
  65. package/build/src/client/stream.js.map +0 -1
  66. package/build/src/client/stream.test.d.ts +0 -1
  67. package/build/src/client/stream.test.js +0 -228
  68. package/build/src/client/stream.test.js.map +0 -1
  69. package/build/src/client/types.d.ts +0 -78
  70. package/build/src/client/types.js +0 -3
  71. package/build/src/client/types.js.map +0 -1
  72. package/build/src/codegen/bin/cli.d.ts +0 -45
  73. package/build/src/codegen/bin/cli.js +0 -246
  74. package/build/src/codegen/bin/cli.js.map +0 -1
  75. package/build/src/codegen/bin/cli.test.d.ts +0 -1
  76. package/build/src/codegen/bin/cli.test.js +0 -220
  77. package/build/src/codegen/bin/cli.test.js.map +0 -1
  78. package/build/src/codegen/constants.d.ts +0 -1
  79. package/build/src/codegen/constants.js +0 -2
  80. package/build/src/codegen/constants.js.map +0 -1
  81. package/build/src/codegen/e2e.test.d.ts +0 -1
  82. package/build/src/codegen/e2e.test.js +0 -464
  83. package/build/src/codegen/e2e.test.js.map +0 -1
  84. package/build/src/codegen/emit-client-runtime.d.ts +0 -9
  85. package/build/src/codegen/emit-client-runtime.js +0 -99
  86. package/build/src/codegen/emit-client-runtime.js.map +0 -1
  87. package/build/src/codegen/emit-client-runtime.test.d.ts +0 -1
  88. package/build/src/codegen/emit-client-runtime.test.js +0 -78
  89. package/build/src/codegen/emit-client-runtime.test.js.map +0 -1
  90. package/build/src/codegen/emit-client-types.d.ts +0 -8
  91. package/build/src/codegen/emit-client-types.js +0 -25
  92. package/build/src/codegen/emit-client-types.js.map +0 -1
  93. package/build/src/codegen/emit-client-types.test.d.ts +0 -1
  94. package/build/src/codegen/emit-client-types.test.js +0 -33
  95. package/build/src/codegen/emit-client-types.test.js.map +0 -1
  96. package/build/src/codegen/emit-errors.d.ts +0 -19
  97. package/build/src/codegen/emit-errors.js +0 -59
  98. package/build/src/codegen/emit-errors.js.map +0 -1
  99. package/build/src/codegen/emit-errors.test.d.ts +0 -1
  100. package/build/src/codegen/emit-errors.test.js +0 -175
  101. package/build/src/codegen/emit-errors.test.js.map +0 -1
  102. package/build/src/codegen/emit-index.d.ts +0 -12
  103. package/build/src/codegen/emit-index.js +0 -41
  104. package/build/src/codegen/emit-index.js.map +0 -1
  105. package/build/src/codegen/emit-index.test.d.ts +0 -1
  106. package/build/src/codegen/emit-index.test.js +0 -106
  107. package/build/src/codegen/emit-index.test.js.map +0 -1
  108. package/build/src/codegen/emit-scope.d.ts +0 -15
  109. package/build/src/codegen/emit-scope.js +0 -299
  110. package/build/src/codegen/emit-scope.js.map +0 -1
  111. package/build/src/codegen/emit-scope.test.d.ts +0 -1
  112. package/build/src/codegen/emit-scope.test.js +0 -559
  113. package/build/src/codegen/emit-scope.test.js.map +0 -1
  114. package/build/src/codegen/emit-types.d.ts +0 -43
  115. package/build/src/codegen/emit-types.js +0 -111
  116. package/build/src/codegen/emit-types.js.map +0 -1
  117. package/build/src/codegen/emit-types.test.d.ts +0 -1
  118. package/build/src/codegen/emit-types.test.js +0 -184
  119. package/build/src/codegen/emit-types.test.js.map +0 -1
  120. package/build/src/codegen/group-routes.d.ts +0 -23
  121. package/build/src/codegen/group-routes.js +0 -46
  122. package/build/src/codegen/group-routes.js.map +0 -1
  123. package/build/src/codegen/group-routes.test.d.ts +0 -1
  124. package/build/src/codegen/group-routes.test.js +0 -131
  125. package/build/src/codegen/group-routes.test.js.map +0 -1
  126. package/build/src/codegen/index.d.ts +0 -15
  127. package/build/src/codegen/index.js +0 -16
  128. package/build/src/codegen/index.js.map +0 -1
  129. package/build/src/codegen/naming.d.ts +0 -7
  130. package/build/src/codegen/naming.js +0 -21
  131. package/build/src/codegen/naming.js.map +0 -1
  132. package/build/src/codegen/naming.test.d.ts +0 -1
  133. package/build/src/codegen/naming.test.js +0 -40
  134. package/build/src/codegen/naming.test.js.map +0 -1
  135. package/build/src/codegen/pipeline.d.ts +0 -17
  136. package/build/src/codegen/pipeline.js +0 -78
  137. package/build/src/codegen/pipeline.js.map +0 -1
  138. package/build/src/codegen/pipeline.test.d.ts +0 -1
  139. package/build/src/codegen/pipeline.test.js +0 -269
  140. package/build/src/codegen/pipeline.test.js.map +0 -1
  141. package/build/src/codegen/resolve-envelope.d.ts +0 -7
  142. package/build/src/codegen/resolve-envelope.js +0 -46
  143. package/build/src/codegen/resolve-envelope.js.map +0 -1
  144. package/build/src/codegen/resolve-envelope.test.d.ts +0 -1
  145. package/build/src/codegen/resolve-envelope.test.js +0 -69
  146. package/build/src/codegen/resolve-envelope.test.js.map +0 -1
  147. package/build/src/errors.d.ts +0 -33
  148. package/build/src/errors.js +0 -91
  149. package/build/src/errors.js.map +0 -1
  150. package/build/src/errors.test.d.ts +0 -1
  151. package/build/src/errors.test.js +0 -122
  152. package/build/src/errors.test.js.map +0 -1
  153. package/build/src/exports.d.ts +0 -7
  154. package/build/src/exports.js +0 -8
  155. package/build/src/exports.js.map +0 -1
  156. package/build/src/implementations/http/doc-registry.d.ts +0 -12
  157. package/build/src/implementations/http/doc-registry.js +0 -114
  158. package/build/src/implementations/http/doc-registry.js.map +0 -1
  159. package/build/src/implementations/http/doc-registry.test.d.ts +0 -1
  160. package/build/src/implementations/http/doc-registry.test.js +0 -347
  161. package/build/src/implementations/http/doc-registry.test.js.map +0 -1
  162. package/build/src/implementations/http/express-rpc/index.d.ts +0 -94
  163. package/build/src/implementations/http/express-rpc/index.js +0 -185
  164. package/build/src/implementations/http/express-rpc/index.js.map +0 -1
  165. package/build/src/implementations/http/express-rpc/index.test.d.ts +0 -1
  166. package/build/src/implementations/http/express-rpc/index.test.js +0 -684
  167. package/build/src/implementations/http/express-rpc/index.test.js.map +0 -1
  168. package/build/src/implementations/http/express-rpc/types.d.ts +0 -11
  169. package/build/src/implementations/http/express-rpc/types.js +0 -2
  170. package/build/src/implementations/http/express-rpc/types.js.map +0 -1
  171. package/build/src/implementations/http/hono-api/index.d.ts +0 -102
  172. package/build/src/implementations/http/hono-api/index.js +0 -341
  173. package/build/src/implementations/http/hono-api/index.js.map +0 -1
  174. package/build/src/implementations/http/hono-api/index.test.d.ts +0 -1
  175. package/build/src/implementations/http/hono-api/index.test.js +0 -992
  176. package/build/src/implementations/http/hono-api/index.test.js.map +0 -1
  177. package/build/src/implementations/http/hono-api/types.d.ts +0 -13
  178. package/build/src/implementations/http/hono-api/types.js +0 -2
  179. package/build/src/implementations/http/hono-api/types.js.map +0 -1
  180. package/build/src/implementations/http/hono-rpc/index.d.ts +0 -92
  181. package/build/src/implementations/http/hono-rpc/index.js +0 -161
  182. package/build/src/implementations/http/hono-rpc/index.js.map +0 -1
  183. package/build/src/implementations/http/hono-rpc/index.test.d.ts +0 -1
  184. package/build/src/implementations/http/hono-rpc/index.test.js +0 -803
  185. package/build/src/implementations/http/hono-rpc/index.test.js.map +0 -1
  186. package/build/src/implementations/http/hono-rpc/types.d.ts +0 -11
  187. package/build/src/implementations/http/hono-rpc/types.js +0 -2
  188. package/build/src/implementations/http/hono-rpc/types.js.map +0 -1
  189. package/build/src/implementations/http/hono-stream/index.d.ts +0 -120
  190. package/build/src/implementations/http/hono-stream/index.js +0 -309
  191. package/build/src/implementations/http/hono-stream/index.js.map +0 -1
  192. package/build/src/implementations/http/hono-stream/index.test.d.ts +0 -1
  193. package/build/src/implementations/http/hono-stream/index.test.js +0 -1356
  194. package/build/src/implementations/http/hono-stream/index.test.js.map +0 -1
  195. package/build/src/implementations/http/hono-stream/types.d.ts +0 -15
  196. package/build/src/implementations/http/hono-stream/types.js +0 -2
  197. package/build/src/implementations/http/hono-stream/types.js.map +0 -1
  198. package/build/src/implementations/types.d.ts +0 -142
  199. package/build/src/implementations/types.js +0 -2
  200. package/build/src/implementations/types.js.map +0 -1
  201. package/build/src/index.d.ts +0 -165
  202. package/build/src/index.js +0 -253
  203. package/build/src/index.js.map +0 -1
  204. package/build/src/index.test.d.ts +0 -1
  205. package/build/src/index.test.js +0 -890
  206. package/build/src/index.test.js.map +0 -1
  207. package/build/src/schema/compute-schema.d.ts +0 -35
  208. package/build/src/schema/compute-schema.js +0 -41
  209. package/build/src/schema/compute-schema.js.map +0 -1
  210. package/build/src/schema/compute-schema.test.d.ts +0 -1
  211. package/build/src/schema/compute-schema.test.js +0 -107
  212. package/build/src/schema/compute-schema.test.js.map +0 -1
  213. package/build/src/schema/extract-json-schema.d.ts +0 -2
  214. package/build/src/schema/extract-json-schema.js +0 -12
  215. package/build/src/schema/extract-json-schema.js.map +0 -1
  216. package/build/src/schema/extract-json-schema.test.d.ts +0 -1
  217. package/build/src/schema/extract-json-schema.test.js +0 -23
  218. package/build/src/schema/extract-json-schema.test.js.map +0 -1
  219. package/build/src/schema/parser.d.ts +0 -28
  220. package/build/src/schema/parser.js +0 -170
  221. package/build/src/schema/parser.js.map +0 -1
  222. package/build/src/schema/parser.test.d.ts +0 -1
  223. package/build/src/schema/parser.test.js +0 -120
  224. package/build/src/schema/parser.test.js.map +0 -1
  225. package/build/src/schema/resolve-schema-lib.d.ts +0 -12
  226. package/build/src/schema/resolve-schema-lib.js +0 -11
  227. package/build/src/schema/resolve-schema-lib.js.map +0 -1
  228. package/build/src/schema/resolve-schema-lib.test.d.ts +0 -1
  229. package/build/src/schema/resolve-schema-lib.test.js +0 -17
  230. package/build/src/schema/resolve-schema-lib.test.js.map +0 -1
  231. package/build/src/schema/types.d.ts +0 -8
  232. package/build/src/schema/types.js +0 -2
  233. package/build/src/schema/types.js.map +0 -1
  234. package/build/src/stack-utils.d.ts +0 -25
  235. package/build/src/stack-utils.js +0 -95
  236. package/build/src/stack-utils.js.map +0 -1
  237. package/build/src/stack-utils.test.d.ts +0 -1
  238. package/build/src/stack-utils.test.js +0 -80
  239. package/build/src/stack-utils.test.js.map +0 -1
@@ -1,15 +0,0 @@
1
- import type { ScopeGroup } from './group-routes.js';
2
- import { type AjscOptions } from './emit-types.js';
3
- export interface EmitScopeOptions {
4
- ajsc?: AjscOptions;
5
- clientImportPath?: string;
6
- namespaceTypes?: boolean;
7
- }
8
- /**
9
- * Generates a complete TypeScript scope file for a ScopeGroup.
10
- *
11
- * When `namespaceTypes` is true, types are wrapped in nested TypeScript namespaces
12
- * and ajsc runs with `inlineTypes: false` so formatting options (enumStyle, depluralize,
13
- * jsdoc, etc.) produce extracted sub-types inside each namespace.
14
- */
15
- export declare function emitScopeFile(group: ScopeGroup, options?: EmitScopeOptions): Promise<string>;
@@ -1,299 +0,0 @@
1
- import { jsonSchemaToTypeBody, jsonSchemaToExtractedTypes, } from './emit-types.js';
2
- import { CODEGEN_HEADER } from './constants.js';
3
- import { toPascalCase } from './naming.js';
4
- // ---------------------------------------------------------------------------
5
- // Helpers
6
- // ---------------------------------------------------------------------------
7
- /**
8
- * Infers the route kind when the `kind` discriminant is missing.
9
- * This provides backward compatibility with servers running older ts-procedures
10
- * versions that don't set `kind` on route docs.
11
- */
12
- function inferRouteKind(route) {
13
- if ('streamMode' in route)
14
- return 'stream';
15
- if ('fullPath' in route)
16
- return 'api';
17
- return 'rpc';
18
- }
19
- /**
20
- * Checks whether a JSON schema looks like an SSE envelope.
21
- * SSE envelopes have properties: data, event, id (and optionally retry).
22
- */
23
- function isSseEnvelope(schema) {
24
- const props = schema.properties;
25
- if (props == null || typeof props !== 'object')
26
- return false;
27
- const keys = Object.keys(props);
28
- return keys.includes('data') && keys.includes('event') && keys.includes('id');
29
- }
30
- /**
31
- * Unwraps an SSE envelope schema to return the inner `data` property schema.
32
- * If not an SSE envelope, returns the schema unchanged.
33
- */
34
- function unwrapSseEnvelope(schema) {
35
- if (!isSseEnvelope(schema))
36
- return schema;
37
- const props = schema.properties;
38
- const dataSchema = props['data'];
39
- return dataSchema ?? schema;
40
- }
41
- /**
42
- * Returns the PascalCase display name for a route, appending `V{version}`
43
- * when version > 1. Version 1 produces no suffix for backward compatibility.
44
- */
45
- function versionedPascal(name, version) {
46
- const pascal = toPascalCase(name);
47
- if (version != null && version > 1)
48
- return `${pascal}V${version}`;
49
- return pascal;
50
- }
51
- // ---------------------------------------------------------------------------
52
- // Shared type formatting helpers
53
- // ---------------------------------------------------------------------------
54
- /** Indent each line of a multi-line string by a given prefix. */
55
- function indent(text, prefix) {
56
- return text.split('\n').map((line) => (line ? prefix + line : line)).join('\n');
57
- }
58
- /**
59
- * Converts multiple schemas into type declarations and type references.
60
- * In flat mode: `export type ${routePascal}${shortName} = <body>`
61
- * In namespace mode: extracted sub-types + named types inside `export namespace ${routePascal} { ... }`
62
- */
63
- async function formatTypes(routePascal, types, ctx) {
64
- const declarations = [];
65
- const refs = {};
66
- if (ctx.namespaceTypes) {
67
- const nsLines = [];
68
- const seenDeclarations = new Set();
69
- for (const { shortName, schema } of types) {
70
- if (schema == null)
71
- continue;
72
- const result = await jsonSchemaToExtractedTypes(schema, ctx.ajsc);
73
- if (result == null)
74
- continue;
75
- // Collect extracted sub-types (deduplicate across schemas)
76
- for (const decl of result.declarations) {
77
- if (!seenDeclarations.has(decl)) {
78
- seenDeclarations.add(decl);
79
- nsLines.push(indent(decl, ' '));
80
- }
81
- }
82
- nsLines.push(` export type ${shortName} = ${result.body}`);
83
- refs[shortName] = `${ctx.scopePascal}.${routePascal}.${shortName}`;
84
- }
85
- if (nsLines.length > 0) {
86
- declarations.push(` export namespace ${routePascal} {\n${nsLines.join('\n')}\n }`);
87
- }
88
- }
89
- else {
90
- for (const { shortName, schema } of types) {
91
- if (schema == null)
92
- continue;
93
- const flatName = `${routePascal}${shortName}`;
94
- const body = await jsonSchemaToTypeBody(schema, ctx.ajsc);
95
- if (body == null)
96
- continue;
97
- declarations.push(`export type ${flatName} = ${body}`);
98
- refs[shortName] = flatName;
99
- }
100
- }
101
- return { declarations, refs };
102
- }
103
- // ---------------------------------------------------------------------------
104
- // Route emitters
105
- // ---------------------------------------------------------------------------
106
- async function emitRpcRoute(route, ctx) {
107
- const pascal = versionedPascal(route.name, route.version);
108
- const { declarations, refs } = await formatTypes(pascal, [
109
- { shortName: 'Params', schema: route.jsonSchema.body },
110
- { shortName: 'Response', schema: route.jsonSchema.response },
111
- ], ctx);
112
- const paramsTypeName = refs['Params'] ?? 'unknown';
113
- const responseTypeName = refs['Response'] ?? 'unknown';
114
- const scopeStr = Array.isArray(route.scope) ? route.scope.join('-') : route.scope;
115
- const callable = [
116
- ` /** ${route.method.toUpperCase()} ${route.path} */`,
117
- ` ${pascal}(params: ${paramsTypeName}, options?: ProcedureCallOptions): Promise<${responseTypeName}> {`,
118
- ` return client.call<${responseTypeName}>({`,
119
- ` name: '${pascal}',`,
120
- ` scope: '${scopeStr}',`,
121
- ` path: '${route.path}',`,
122
- ` method: '${route.method}',`,
123
- ` kind: 'rpc',`,
124
- ` params,`,
125
- ` }, options)`,
126
- ` },`,
127
- ].join('\n');
128
- return { typeDeclarations: declarations, callable, hasStream: false };
129
- }
130
- async function emitApiRoute(route, ctx) {
131
- const pascal = toPascalCase(route.name);
132
- const channelKeys = ['pathParams', 'query', 'body', 'headers'];
133
- // Build channel types + structured Params type
134
- const channelTypes = [];
135
- const presentChannels = [];
136
- for (const channel of channelKeys) {
137
- const channelSchema = route.jsonSchema[channel];
138
- if (channelSchema != null) {
139
- channelTypes.push({ shortName: toPascalCase(channel), schema: channelSchema });
140
- presentChannels.push(channel);
141
- }
142
- }
143
- // Add response
144
- channelTypes.push({ shortName: 'Response', schema: route.jsonSchema.response });
145
- const { declarations, refs } = await formatTypes(pascal, channelTypes, ctx);
146
- // Compose structured Params type from channels
147
- let paramsTypeName = 'unknown';
148
- if (presentChannels.length > 0) {
149
- if (ctx.namespaceTypes) {
150
- const structureFields = presentChannels
151
- .map((ch) => `${ch}: ${toPascalCase(ch)}`)
152
- .join('; ');
153
- // Insert Params type into the namespace block (before closing brace)
154
- const lastIdx = declarations.length - 1;
155
- if (lastIdx >= 0) {
156
- const lastDecl = declarations[lastIdx];
157
- const closingIdx = lastDecl.lastIndexOf(' }');
158
- if (closingIdx !== -1) {
159
- declarations[lastIdx] =
160
- lastDecl.slice(0, closingIdx) +
161
- ` export type Params = { ${structureFields} }\n` +
162
- lastDecl.slice(closingIdx);
163
- }
164
- }
165
- paramsTypeName = `${ctx.scopePascal}.${pascal}.Params`;
166
- }
167
- else {
168
- const structureFields = presentChannels
169
- .map((ch) => `${ch}: ${refs[toPascalCase(ch)]}`)
170
- .join('; ');
171
- declarations.push(`export type ${pascal}Params = { ${structureFields} }`);
172
- paramsTypeName = `${pascal}Params`;
173
- }
174
- }
175
- const responseTypeName = refs['Response'] ?? 'unknown';
176
- const scopeStr = route.scope ?? 'default';
177
- const callable = [
178
- ` /** ${route.method.toUpperCase()} ${route.fullPath} */`,
179
- ` ${route.name}(params: ${paramsTypeName}, options?: ProcedureCallOptions): Promise<${responseTypeName}> {`,
180
- ` return client.call<${responseTypeName}>({`,
181
- ` name: '${route.name}',`,
182
- ` scope: '${scopeStr}',`,
183
- ` path: '${route.fullPath}',`,
184
- ` method: '${route.method}',`,
185
- ` kind: 'api',`,
186
- ` params,`,
187
- ` }, options)`,
188
- ` },`,
189
- ].join('\n');
190
- return { typeDeclarations: declarations, callable, hasStream: false };
191
- }
192
- async function emitStreamRoute(route, ctx) {
193
- const pascal = versionedPascal(route.name, route.version);
194
- // Unwrap SSE envelope from yieldType
195
- let yieldSchema = route.jsonSchema.yieldType;
196
- if (yieldSchema != null && route.streamMode === 'sse' && isSseEnvelope(yieldSchema)) {
197
- yieldSchema = unwrapSseEnvelope(yieldSchema);
198
- }
199
- const { declarations, refs } = await formatTypes(pascal, [
200
- { shortName: 'Params', schema: route.jsonSchema.params },
201
- { shortName: 'Yield', schema: yieldSchema },
202
- { shortName: 'Return', schema: route.jsonSchema.returnType },
203
- ], ctx);
204
- const paramsTypeName = refs['Params'] ?? 'unknown';
205
- const yieldTypeName = refs['Yield'] ?? 'unknown';
206
- const returnTypeName = refs['Return'] ?? 'void';
207
- const scopeStr = Array.isArray(route.scope) ? route.scope.join('-') : route.scope;
208
- const callable = [
209
- ` /** ${route.methods.map((m) => m.toUpperCase()).join('|')} ${route.path} */`,
210
- ` ${pascal}(params: ${paramsTypeName}, options?: ProcedureCallOptions): TypedStream<${yieldTypeName}, ${returnTypeName}> {`,
211
- ` return client.stream<${yieldTypeName}, ${returnTypeName}>({`,
212
- ` name: '${pascal}',`,
213
- ` scope: '${scopeStr}',`,
214
- ` path: '${route.path}',`,
215
- ` method: '${route.methods[0] ?? 'get'}',`,
216
- ` kind: 'stream',`,
217
- ` streamMode: '${route.streamMode}',`,
218
- ` params,`,
219
- ` }, options)`,
220
- ` },`,
221
- ].join('\n');
222
- return { typeDeclarations: declarations, callable, hasStream: true };
223
- }
224
- // ---------------------------------------------------------------------------
225
- // emitScopeFile
226
- // ---------------------------------------------------------------------------
227
- /**
228
- * Generates a complete TypeScript scope file for a ScopeGroup.
229
- *
230
- * When `namespaceTypes` is true, types are wrapped in nested TypeScript namespaces
231
- * and ajsc runs with `inlineTypes: false` so formatting options (enumStyle, depluralize,
232
- * jsdoc, etc.) produce extracted sub-types inside each namespace.
233
- */
234
- export async function emitScopeFile(group, options) {
235
- const { ajsc: ajscOpts, clientImportPath = 'ts-procedures/client', namespaceTypes = false } = options ?? {};
236
- const pascal = toPascalCase(group.camelCase);
237
- const ctx = { ajsc: ajscOpts, namespaceTypes, scopePascal: pascal };
238
- const allTypeDeclarations = [];
239
- const callables = [];
240
- let hasStream = false;
241
- for (const route of group.routes) {
242
- let chunks;
243
- const kind = route.kind ?? inferRouteKind(route);
244
- try {
245
- if (kind === 'rpc') {
246
- chunks = await emitRpcRoute(route, ctx);
247
- }
248
- else if (kind === 'api') {
249
- chunks = await emitApiRoute(route, ctx);
250
- }
251
- else if (kind === 'stream') {
252
- chunks = await emitStreamRoute(route, ctx);
253
- }
254
- else {
255
- throw new Error(`Unknown route kind "${kind}"`);
256
- }
257
- }
258
- catch (err) {
259
- const msg = err instanceof Error ? err.message : String(err);
260
- throw new Error(`[ts-procedures-codegen] Failed to emit route "${route.name}" (kind: ${kind}, scope: ${group.scopeKey}): ${msg}`);
261
- }
262
- allTypeDeclarations.push(...chunks.typeDeclarations);
263
- callables.push(chunks.callable);
264
- if (chunks.hasStream)
265
- hasStream = true;
266
- }
267
- // Build import line
268
- const clientImports = hasStream
269
- ? `import type { ClientInstance, ProcedureCallOptions, TypedStream } from '${clientImportPath}'`
270
- : `import type { ClientInstance, ProcedureCallOptions } from '${clientImportPath}'`;
271
- let typesBlock;
272
- if (namespaceTypes && allTypeDeclarations.length > 0) {
273
- typesBlock = `export namespace ${pascal} {\n${allTypeDeclarations.join('\n\n')}\n}\n`;
274
- }
275
- else {
276
- typesBlock =
277
- allTypeDeclarations.length > 0
278
- ? allTypeDeclarations.join('\n') + '\n'
279
- : '';
280
- }
281
- const callablesBlock = callables.join('\n\n');
282
- return [
283
- CODEGEN_HEADER,
284
- clientImports,
285
- '',
286
- '// ── Types ────────────────────────────────────────',
287
- '',
288
- typesBlock,
289
- '// ── Callables ────────────────────────────────────',
290
- '',
291
- `export function bind${pascal}Scope(client: ClientInstance) {`,
292
- ' return {',
293
- callablesBlock,
294
- ' }',
295
- '}',
296
- '',
297
- ].join('\n');
298
- }
299
- //# sourceMappingURL=emit-scope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emit-scope.js","sourceRoot":"","sources":["../../../src/codegen/emit-scope.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};