@kernlang/python 3.5.4-canary.157.1.43256f52 → 3.5.4-canary.166.1.2a2fcbf6

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.
@@ -5,5 +5,38 @@
5
5
  * into Python/FastAPI handler code.
6
6
  */
7
7
  import type { IRNode } from '@kernlang/core';
8
- export declare function generatePortableChildFastAPI(child: IRNode, indent: string, pathParams: string[], imports: Set<string>): string[];
9
- export declare function generatePortableHandlerFastAPI(routeNode: IRNode, indent: string, pathParams: string[], imports: Set<string>): string[];
8
+ /**
9
+ * Streaming-body context (slice 4c). Threaded through the portable emitter only
10
+ * when generating a `stream` response body:
11
+ * - `queueVar` set → `emit` lowers to `await <queueVar>.put(<frame>)` (inside
12
+ * a concurrent `fanout` producer that feeds the fan-in queue).
13
+ * - `queueVar` unset → `emit` lowers to `yield <frame>` (the sequential
14
+ * generator path).
15
+ * - `abortExpr` is inserted as `if <abortExpr>: break` at the top of each
16
+ * `each await` loop body, so a disconnected client stops upstream pulls.
17
+ * Undefined for ordinary routes — `each await` then emits no disconnect check.
18
+ */
19
+ export interface FastAPIStreamCtx {
20
+ queueVar?: string;
21
+ abortExpr?: string;
22
+ /**
23
+ * Shared mutable counter that uniquifies each `fanout`'s generated helper
24
+ * names (`__k_q_<name>_<seq>`, …). Threaded by reference through nested
25
+ * scopes so two sibling fan-outs that share a loop-var name don't collide
26
+ * (Gemini/kimi review on slice 4c).
27
+ */
28
+ fanoutSeq?: {
29
+ n: number;
30
+ };
31
+ }
32
+ export declare function generatePortableChildFastAPI(child: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean, streamCtx?: FastAPIStreamCtx): string[];
33
+ export declare function generatePortableHandlerFastAPI(routeNode: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean): string[];
34
+ export declare function hasPortableStreamBodyFastAPI(streamNode: IRNode): boolean;
35
+ /**
36
+ * Lower a portable `stream` body to the lines that go inside the FastAPI
37
+ * `event_generator()`. `derive`/`let` run at generator scope; `each await`
38
+ * yields directly (disconnect-aware); `fanout` injects the `asyncio.Queue`
39
+ * fan-in. The caller appends the terminal `[DONE]` frame and wraps the result
40
+ * in a `StreamingResponse`.
41
+ */
42
+ export declare function generatePortableStreamFastAPI(streamNode: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean): string[];
@@ -4,7 +4,7 @@
4
4
  * Converts IR portable nodes (derive, guard, handler, respond, branch, each, collect, effect)
5
5
  * into Python/FastAPI handler code.
6
6
  */
7
- import { getChildren, getFirstChild, getProps } from '@kernlang/core';
7
+ import { getChildren, getFirstChild, getProps, isPostfixMutationOperator, isSupportedAssignOperator, } from '@kernlang/core';
8
8
  import { isUnsupportedJsHandlerBody, unsupportedRawHandlerBody } from './fastapi-raw-handler.js';
9
9
  import { addRespondImports, extractExprCode, generateRespondFastAPI, rewriteFastAPIExpr } from './fastapi-response.js';
10
10
  import { escapePyStr, indentHandler } from './fastapi-utils.js';
@@ -41,7 +41,7 @@ function extractCodeOrString(val) {
41
41
  // before comparing against literal names so `{{ true }}` (with internal
42
42
  // whitespace from KERN curly-expression syntax) maps to `True`, not the
43
43
  // invalid Python identifier `true`.
44
- function lowerPropToPython(val, pathParams) {
44
+ function lowerPropToPython(val, pathParams, bodyFields, authUser, imports) {
45
45
  const raw = extractCodeOrString(val);
46
46
  const trimmed = raw.trim();
47
47
  if (trimmed === '' || trimmed === 'null' || trimmed === 'undefined')
@@ -54,9 +54,9 @@ function lowerPropToPython(val, pathParams) {
54
54
  // a curly-expression carries no semantic information and only risks
55
55
  // confusing any future anchor-based regex (Gemini defensive note on
56
56
  // commit 7a25348b).
57
- return rewriteFastAPIExpr(trimmed, pathParams);
57
+ return rewriteFastAPIExpr(trimmed, pathParams, bodyFields, authUser, imports);
58
58
  }
59
- export function generatePortableChildFastAPI(child, indent, pathParams, imports) {
59
+ export function generatePortableChildFastAPI(child, indent, pathParams, imports, bodyFields = new Set(), authUser = false, streamCtx) {
60
60
  const lines = [];
61
61
  const p = getProps(child);
62
62
  switch (child.type) {
@@ -64,10 +64,47 @@ export function generatePortableChildFastAPI(child, indent, pathParams, imports)
64
64
  const name = String(p.name || '');
65
65
  const exprCode = extractExprCode(p.expr);
66
66
  if (name && exprCode) {
67
- lines.push(`${indent}${toSnakeCase(name)} = ${rewriteFastAPIExpr(exprCode, pathParams)}`);
67
+ lines.push(`${indent}${toSnakeCase(name)} = ${rewriteFastAPIExpr(exprCode, pathParams, bodyFields, authUser, imports)}`);
68
68
  }
69
69
  break;
70
70
  }
71
+ case 'assign': {
72
+ // Portable side-effect: `assign target="provider.enabled" value="body.enabled"`
73
+ // → `provider.enabled = body.enabled`. Both sides flow through the same
74
+ // rewriter as `derive`, so `body.x` lowers to the Pydantic field access.
75
+ const target = extractExprCode(p.target);
76
+ if (!target)
77
+ break;
78
+ const op = p.op === undefined || p.op === '' ? '=' : String(p.op);
79
+ if (!isSupportedAssignOperator(op)) {
80
+ throw new Error(`portable route \`assign op="${op}"\` is not supported on the FastAPI target.`);
81
+ }
82
+ const lhs = rewriteFastAPIExpr(target, pathParams, bodyFields, authUser, imports);
83
+ if (isPostfixMutationOperator(op)) {
84
+ // Python lacks `++`/`--`; lower to the canonical compound form.
85
+ lines.push(`${indent}${lhs} ${op === '++' ? '+=' : '-='} 1`);
86
+ }
87
+ else {
88
+ const valueCode = extractExprCode(p.value);
89
+ // `value` is schema-required for a non-postfix `assign`; fail loud here
90
+ // too (parity with the body-statement emitter) rather than silently
91
+ // dropping the statement for a direct-IR caller that skipped validation.
92
+ if (!valueCode) {
93
+ throw new Error('portable route `assign` requires `value=` for a non-postfix operator.');
94
+ }
95
+ const rhs = rewriteFastAPIExpr(valueCode, pathParams, bodyFields, authUser, imports);
96
+ lines.push(`${indent}${lhs} ${op} ${rhs}`);
97
+ }
98
+ break;
99
+ }
100
+ case 'do': {
101
+ // Portable void side-effect: `do value="registry.register(provider)"` →
102
+ // the bare call statement.
103
+ const value = extractExprCode(p.value);
104
+ if (value)
105
+ lines.push(`${indent}${rewriteFastAPIExpr(value, pathParams, bodyFields, authUser, imports)}`);
106
+ break;
107
+ }
71
108
  case 'guard': {
72
109
  const name = String(p.name || '');
73
110
  const exprCode = extractExprCode(p.expr);
@@ -75,7 +112,7 @@ export function generatePortableChildFastAPI(child, indent, pathParams, imports)
75
112
  const elseMessage = typeof p.message === 'string' ? p.message : name ? `${name} guard failed` : 'Guard failed';
76
113
  if (exprCode) {
77
114
  imports.add('from fastapi import HTTPException');
78
- lines.push(`${indent}if not (${rewriteFastAPIExpr(exprCode, pathParams)}):`);
115
+ lines.push(`${indent}if not (${rewriteFastAPIExpr(exprCode, pathParams, bodyFields, authUser, imports)}):`);
79
116
  lines.push(`${indent} raise HTTPException(status_code=${elseStatus}, detail="${escapePyStr(elseMessage)}")`);
80
117
  }
81
118
  break;
@@ -98,18 +135,21 @@ export function generatePortableChildFastAPI(child, indent, pathParams, imports)
98
135
  break;
99
136
  }
100
137
  case 'respond': {
101
- // Clone props to avoid mutating shared AST, then rewrite portable refs
138
+ // Clone props to avoid mutating shared AST, then rewrite portable refs.
139
+ // Use extractExprCode so a curly-expression value (`json={{ {a: 1} }}`)
140
+ // yields its code rather than `String({__expr})` → "[object Object]";
141
+ // plain identifiers (`json=user`) pass through unchanged.
102
142
  const clonedRespond = { ...child, props: { ...child.props } };
103
143
  if (clonedRespond.props.json)
104
- clonedRespond.props.json = rewriteFastAPIExpr(String(clonedRespond.props.json), pathParams);
144
+ clonedRespond.props.json = rewriteFastAPIExpr(extractExprCode(clonedRespond.props.json), pathParams, bodyFields, authUser, imports);
105
145
  if (clonedRespond.props.text)
106
- clonedRespond.props.text = rewriteFastAPIExpr(String(clonedRespond.props.text), pathParams);
146
+ clonedRespond.props.text = rewriteFastAPIExpr(extractExprCode(clonedRespond.props.text), pathParams, bodyFields, authUser, imports);
107
147
  addRespondImports(clonedRespond, imports);
108
148
  lines.push(...generateRespondFastAPI(clonedRespond, indent));
109
149
  break;
110
150
  }
111
151
  case 'branch': {
112
- const on = lowerPropToPython(p.on, pathParams);
152
+ const on = lowerPropToPython(p.on, pathParams, bodyFields, authUser, imports);
113
153
  const paths = getChildren(child, 'path');
114
154
  for (let i = 0; i < paths.length; i++) {
115
155
  const pathNode = paths[i];
@@ -119,31 +159,145 @@ export function generatePortableChildFastAPI(child, indent, pathParams, imports)
119
159
  lines.push(`${indent}${keyword} ${on} == "${escapePyStr(value)}":`);
120
160
  const bodyStart = lines.length;
121
161
  for (const pathChild of pathNode.children || []) {
122
- lines.push(...generatePortableChildFastAPI(pathChild, `${indent} `, pathParams, imports));
162
+ lines.push(...generatePortableChildFastAPI(pathChild, `${indent} `, pathParams, imports, bodyFields, authUser, streamCtx));
123
163
  }
124
164
  if (lines.length === bodyStart)
125
165
  lines.push(`${indent} pass`);
126
166
  }
127
167
  break;
128
168
  }
169
+ case 'let': {
170
+ // Stream/iteration-scoped binding — `let name=adapter value="…"` →
171
+ // `adapter = …`. Name is emitted verbatim (NOT snake-cased) so later
172
+ // references in sibling expressions still resolve. Flows through the same
173
+ // rewriter as `derive`.
174
+ const name = String(p.name || '');
175
+ if (!name)
176
+ break;
177
+ const valueCode = extractExprCode(p.value) || extractExprCode(p.expr);
178
+ if (valueCode) {
179
+ lines.push(`${indent}${name} = ${rewriteFastAPIExpr(valueCode, pathParams, bodyFields, authUser, imports)}`);
180
+ }
181
+ break;
182
+ }
129
183
  case 'each': {
130
184
  const name = String(p.name || 'item');
131
- const collection = rewriteFastAPIExpr(extractExprCode(p.in) || String(p.in || ''), pathParams);
185
+ const collection = rewriteFastAPIExpr(extractExprCode(p.in) || String(p.in || ''), pathParams, bodyFields, authUser, imports);
132
186
  const index = p.index ? String(p.index) : undefined;
133
- if (index) {
187
+ const isAwait = p.await === true || p.await === 'true';
188
+ if (isAwait) {
189
+ // `each await=true` → `async for x in <aiter>:`. Cannot combine with
190
+ // `index=` (rejected by the core validator), so no enumerate() branch.
191
+ lines.push(`${indent}async for ${name} in ${collection}:`);
192
+ }
193
+ else if (index) {
134
194
  lines.push(`${indent}for ${index}, ${name} in enumerate(${collection}):`);
135
195
  }
136
196
  else {
137
197
  lines.push(`${indent}for ${name} in ${collection}:`);
138
198
  }
139
199
  const bodyStart = lines.length;
200
+ if (isAwait && streamCtx?.abortExpr) {
201
+ // Stop pulling from the upstream async iterable once the client is gone.
202
+ lines.push(`${indent} if ${streamCtx.abortExpr}:`);
203
+ lines.push(`${indent} break`);
204
+ }
140
205
  for (const eachChild of child.children || []) {
141
- lines.push(...generatePortableChildFastAPI(eachChild, `${indent} `, pathParams, imports));
206
+ lines.push(...generatePortableChildFastAPI(eachChild, `${indent} `, pathParams, imports, bodyFields, authUser, streamCtx));
142
207
  }
143
208
  if (lines.length === bodyStart)
144
209
  lines.push(`${indent} pass`);
145
210
  break;
146
211
  }
212
+ case 'fanout': {
213
+ // Concurrent fan-out → `asyncio.Queue` fan-in. N producer coroutines run
214
+ // under `asyncio.gather(..., return_exceptions=True)` (the faithful
215
+ // analogue of TS `Promise.allSettled`), each putting pre-framed SSE
216
+ // strings onto a shared queue; a merge task pushes a sentinel once all
217
+ // finish, and the generator drains the queue, yielding until the
218
+ // sentinel. Names are suffixed with the loop var so sibling fan-outs in
219
+ // one generator don't collide.
220
+ imports.add('import asyncio');
221
+ const name = String(p.name || 'item');
222
+ const collection = rewriteFastAPIExpr(extractExprCode(p.in) || String(p.in || ''), pathParams, bodyFields, authUser, imports);
223
+ // Suffix with the loop var AND a per-stream sequence so sibling fan-outs
224
+ // sharing a name (`fanout name=item` twice) don't collide in the shared
225
+ // generator scope.
226
+ const seq = streamCtx?.fanoutSeq ? streamCtx.fanoutSeq.n++ : 0;
227
+ const sfx = `${toSnakeCase(name)}_${seq}`;
228
+ const q = `__k_q_${sfx}`;
229
+ const done = `__k_done_${sfx}`;
230
+ const producer = `__k_producer_${sfx}`;
231
+ const merge = `__k_merge_${sfx}`;
232
+ const mergeTask = `__k_merge_task_${sfx}`;
233
+ const event = `__k_event_${sfx}`;
234
+ // Inside a producer, `emit` puts onto the queue and `each await` checks
235
+ // disconnect via the FastAPI Request injected into the route signature.
236
+ // The same `fanoutSeq` ref propagates so a nested fan-out stays unique.
237
+ const producerCtx = {
238
+ queueVar: q,
239
+ abortExpr: 'await request.is_disconnected()',
240
+ fanoutSeq: streamCtx?.fanoutSeq,
241
+ };
242
+ lines.push(`${indent}${q}: asyncio.Queue = asyncio.Queue()`);
243
+ lines.push(`${indent}${done} = object()`);
244
+ lines.push(`${indent}async def ${producer}(${name}):`);
245
+ // Skip a producer whose client already disconnected — symmetry with the
246
+ // Express `if (ac.signal.aborted) return;` (kimi review). Covers producers
247
+ // that have no inner `each await` to carry the per-event check.
248
+ lines.push(`${indent} if await request.is_disconnected():`);
249
+ lines.push(`${indent} return`);
250
+ for (const fanChild of child.children || []) {
251
+ lines.push(...generatePortableChildFastAPI(fanChild, `${indent} `, pathParams, imports, bodyFields, authUser, producerCtx));
252
+ }
253
+ lines.push(`${indent}async def ${merge}():`);
254
+ lines.push(`${indent} await asyncio.gather(*[${producer}(${name}) for ${name} in ${collection}], return_exceptions=True)`);
255
+ lines.push(`${indent} await ${q}.put(${done})`);
256
+ lines.push(`${indent}${mergeTask} = asyncio.create_task(${merge}())`);
257
+ lines.push(`${indent}try:`);
258
+ lines.push(`${indent} while True:`);
259
+ lines.push(`${indent} ${event} = await ${q}.get()`);
260
+ lines.push(`${indent} if ${event} is ${done}:`);
261
+ lines.push(`${indent} break`);
262
+ // Top-level fan-out yields to the StreamingResponse; a fan-out NESTED in
263
+ // another producer must forward to the enclosing queue instead — a `yield`
264
+ // here would turn the outer producer into an async generator, so
265
+ // `asyncio.gather` would receive a non-awaitable and the stream would hang
266
+ // (Codex review). `streamCtx.queueVar` is set iff we're inside a producer.
267
+ lines.push(streamCtx?.queueVar
268
+ ? `${indent} await ${streamCtx.queueVar}.put(${event})`
269
+ : `${indent} yield ${event}`);
270
+ lines.push(`${indent}finally:`);
271
+ lines.push(`${indent} ${mergeTask}.cancel()`);
272
+ break;
273
+ }
274
+ case 'emit': {
275
+ // Push one SSE frame. The frame string (`data: <json>\n\n`, optionally
276
+ // prefixed with an `event:` line) is built HERE so event names work in
277
+ // both modes; the consumer just relays it. In a `fanout` producer it goes
278
+ // onto the queue; in a sequential generator it is yielded directly.
279
+ const value = extractExprCode(p.value) || String(p.value || '');
280
+ if (!value)
281
+ break;
282
+ imports.add('import json');
283
+ const rewritten = rewriteFastAPIExpr(value, pathParams, bodyFields, authUser, imports);
284
+ const evName = typeof p.event === 'string' && p.event ? p.event : undefined;
285
+ // String concatenation, NOT an f-string: a rewritten object/dict payload
286
+ // (`{{ {type: x} }}` → `{"type": x}`) contains double quotes that would
287
+ // collide with an enclosing f-string's quotes and raise SyntaxError on
288
+ // Python < 3.12 (PEP 701). Concatenation sidesteps the nesting entirely
289
+ // (Codex P1 on slice 4c).
290
+ const frame = evName
291
+ ? `"event: ${escapePyStr(evName)}\\ndata: " + json.dumps(${rewritten}) + "\\n\\n"`
292
+ : `"data: " + json.dumps(${rewritten}) + "\\n\\n"`;
293
+ if (streamCtx?.queueVar) {
294
+ lines.push(`${indent}await ${streamCtx.queueVar}.put(${frame})`);
295
+ }
296
+ else {
297
+ lines.push(`${indent}yield ${frame}`);
298
+ }
299
+ break;
300
+ }
147
301
  case 'collect': {
148
302
  const rawName = toSnakeCase(String(p.name || ''));
149
303
  // Avoid shadowing Python built-ins
@@ -167,14 +321,14 @@ export function generatePortableChildFastAPI(child, indent, pathParams, imports)
167
321
  'all',
168
322
  ]);
169
323
  const collectName = PY_BUILTINS.has(rawName) ? `${rawName}_result` : rawName;
170
- const from = lowerPropToPython(p.from, pathParams);
324
+ const from = lowerPropToPython(p.from, pathParams, bodyFields, authUser, imports);
171
325
  const where = p.where ? extractExprCode(p.where) : undefined;
172
326
  // `limit` is typically a literal integer (`limit=10`) but can be a
173
327
  // curly-expression (`limit={{params.max}}`) — route through the same
174
328
  // helper used for from/order so the `[object Object]` bug class
175
329
  // doesn't lurk here either (Gemini M3 on 86e6b893).
176
330
  const limit = p.limit !== undefined && p.limit !== null && p.limit !== ''
177
- ? lowerPropToPython(p.limit, pathParams)
331
+ ? lowerPropToPython(p.limit, pathParams, bodyFields, authUser, imports)
178
332
  : undefined;
179
333
  // Compute order in two stages so we can suppress `sorted()`
180
334
  // emission entirely when the source value resolves to absent / null
@@ -192,14 +346,14 @@ export function generatePortableChildFastAPI(child, indent, pathParams, imports)
192
346
  const orderSourceTrimmed = extractCodeOrString(p.order).trim();
193
347
  const order = orderSourceTrimmed === '' || orderSourceTrimmed === 'null' || orderSourceTrimmed === 'undefined'
194
348
  ? undefined
195
- : lowerPropToPython(p.order, pathParams);
349
+ : lowerPropToPython(p.order, pathParams, bodyFields, authUser, imports);
196
350
  if (where && !order && !limit) {
197
- lines.push(`${indent}${collectName} = [item for item in ${from} if ${rewriteFastAPIExpr(where, pathParams)}]`);
351
+ lines.push(`${indent}${collectName} = [item for item in ${from} if ${rewriteFastAPIExpr(where, pathParams, bodyFields, authUser, imports)}]`);
198
352
  }
199
353
  else {
200
354
  lines.push(`${indent}${collectName} = ${from}`);
201
355
  if (where)
202
- lines.push(`${indent}${collectName} = [item for item in ${collectName} if ${rewriteFastAPIExpr(where, pathParams)}]`);
356
+ lines.push(`${indent}${collectName} = [item for item in ${collectName} if ${rewriteFastAPIExpr(where, pathParams, bodyFields, authUser, imports)}]`);
203
357
  if (order)
204
358
  // `order` already routed through `lowerPropToPython` above (which
205
359
  // includes the rewriter), so no second `rewriteFastAPIExpr` call.
@@ -256,12 +410,12 @@ export function generatePortableChildFastAPI(child, indent, pathParams, imports)
256
410
  triggerExpr = '';
257
411
  }
258
412
  const retryCount = recoverNode ? parseInt(String(getProps(recoverNode).retry || '0'), 10) : 0;
259
- const pyFallback = lowerPropToPython(recoverNode ? getProps(recoverNode).fallback : undefined, pathParams);
413
+ const pyFallback = lowerPropToPython(recoverNode ? getProps(recoverNode).fallback : undefined, pathParams, bodyFields, authUser, imports);
260
414
  if (retryCount > 0) {
261
415
  lines.push(`${indent}${effectName} = ${pyFallback}`);
262
416
  lines.push(`${indent}for _attempt in range(${retryCount}):`);
263
417
  lines.push(`${indent} try:`);
264
- lines.push(`${indent} ${effectName} = ${rewriteFastAPIExpr(triggerExpr, pathParams)}`);
418
+ lines.push(`${indent} ${effectName} = ${rewriteFastAPIExpr(triggerExpr, pathParams, bodyFields, authUser, imports)}`);
265
419
  lines.push(`${indent} break`);
266
420
  lines.push(`${indent} except Exception:`);
267
421
  lines.push(`${indent} if _attempt == ${retryCount - 1}:`);
@@ -269,7 +423,7 @@ export function generatePortableChildFastAPI(child, indent, pathParams, imports)
269
423
  }
270
424
  else {
271
425
  lines.push(`${indent}try:`);
272
- lines.push(`${indent} ${effectName} = ${rewriteFastAPIExpr(triggerExpr, pathParams)}`);
426
+ lines.push(`${indent} ${effectName} = ${rewriteFastAPIExpr(triggerExpr, pathParams, bodyFields, authUser, imports)}`);
273
427
  lines.push(`${indent}except Exception:`);
274
428
  lines.push(`${indent} ${effectName} = ${pyFallback}`);
275
429
  }
@@ -280,14 +434,51 @@ export function generatePortableChildFastAPI(child, indent, pathParams, imports)
280
434
  }
281
435
  return lines;
282
436
  }
283
- export function generatePortableHandlerFastAPI(routeNode, indent, pathParams, imports) {
437
+ export function generatePortableHandlerFastAPI(routeNode, indent, pathParams, imports, bodyFields = new Set(), authUser = false) {
284
438
  const lines = [];
285
439
  const children = routeNode.children || [];
286
440
  // Walk all route children in document order
287
- const PORTABLE_TYPES = new Set(['derive', 'guard', 'handler', 'respond', 'branch', 'each', 'collect', 'effect']);
441
+ const PORTABLE_TYPES = new Set([
442
+ 'derive',
443
+ 'guard',
444
+ 'handler',
445
+ 'respond',
446
+ 'branch',
447
+ 'each',
448
+ 'collect',
449
+ 'effect',
450
+ 'assign',
451
+ 'do',
452
+ ]);
288
453
  for (const child of children) {
289
454
  if (PORTABLE_TYPES.has(child.type)) {
290
- lines.push(...generatePortableChildFastAPI(child, indent, pathParams, imports));
455
+ lines.push(...generatePortableChildFastAPI(child, indent, pathParams, imports, bodyFields, authUser));
456
+ }
457
+ }
458
+ return lines;
459
+ }
460
+ // Portable SSE body node types (slice 4c) — the route-body subset that composes
461
+ // inside a `stream`, plus the streaming primitives `fanout`/`emit`.
462
+ const PORTABLE_STREAM_TYPES = new Set(['derive', 'let', 'each', 'fanout', 'emit', 'do', 'assign', 'branch', 'collect']);
463
+ export function hasPortableStreamBodyFastAPI(streamNode) {
464
+ return (streamNode.children || []).some((c) => PORTABLE_STREAM_TYPES.has(c.type));
465
+ }
466
+ /**
467
+ * Lower a portable `stream` body to the lines that go inside the FastAPI
468
+ * `event_generator()`. `derive`/`let` run at generator scope; `each await`
469
+ * yields directly (disconnect-aware); `fanout` injects the `asyncio.Queue`
470
+ * fan-in. The caller appends the terminal `[DONE]` frame and wraps the result
471
+ * in a `StreamingResponse`.
472
+ */
473
+ export function generatePortableStreamFastAPI(streamNode, indent, pathParams, imports, bodyFields = new Set(), authUser = false) {
474
+ const lines = [];
475
+ // Sequential generator scope: `emit` yields; `each await` still honors the
476
+ // client-disconnect check (the route signature always injects `request`).
477
+ // `fanoutSeq` uniquifies helper names across every fan-out in this generator.
478
+ const ctx = { abortExpr: 'await request.is_disconnected()', fanoutSeq: { n: 0 } };
479
+ for (const child of streamNode.children || []) {
480
+ if (PORTABLE_STREAM_TYPES.has(child.type)) {
481
+ lines.push(...generatePortableChildFastAPI(child, indent, pathParams, imports, bodyFields, authUser, ctx));
291
482
  }
292
483
  }
293
484
  return lines;
@@ -1 +1 @@
1
- {"version":3,"file":"fastapi-portable.js","sourceRoot":"","sources":["../src/fastapi-portable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fastapi-portable.js","sourceRoot":"","sources":["../src/fastapi-portable.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,6 @@
8
8
  */
9
9
  import type { IRNode } from '@kernlang/core';
10
10
  export declare function generateRespondFastAPI(respondNode: IRNode, indent: string): string[];
11
- export declare function rewriteFastAPIExpr(expr: string, pathParams: string[]): string;
11
+ export declare function rewriteFastAPIExpr(expr: string, pathParams: string[], bodyFields?: Set<string>, authUser?: boolean, imports?: Set<string>): string;
12
12
  export declare function extractExprCode(prop: unknown): string;
13
13
  export declare function addRespondImports(respondNode: IRNode, imports: Set<string>): void;