@kernlang/python 3.5.4-canary.157.1.43256f52 → 3.5.4-canary.161.2.d4dbfea4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fastapi-portable.d.ts +35 -2
- package/dist/fastapi-portable.js +216 -25
- package/dist/fastapi-portable.js.map +1 -1
- package/dist/fastapi-response.d.ts +1 -1
- package/dist/fastapi-response.js +604 -4
- package/dist/fastapi-response.js.map +1 -1
- package/dist/fastapi-route.d.ts +14 -2
- package/dist/fastapi-route.js +117 -68
- package/dist/fastapi-route.js.map +1 -1
- package/dist/fastapi-utils.d.ts +2 -0
- package/dist/fastapi-utils.js +90 -0
- package/dist/fastapi-utils.js.map +1 -1
- package/dist/transpiler-fastapi.js +10 -2
- package/dist/transpiler-fastapi.js.map +1 -1
- package/package.json +2 -2
|
@@ -5,5 +5,38 @@
|
|
|
5
5
|
* into Python/FastAPI handler code.
|
|
6
6
|
*/
|
|
7
7
|
import type { IRNode } from '@kernlang/core';
|
|
8
|
-
|
|
9
|
-
|
|
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[];
|
package/dist/fastapi-portable.js
CHANGED
|
@@ -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(
|
|
144
|
+
clonedRespond.props.json = rewriteFastAPIExpr(extractExprCode(clonedRespond.props.json), pathParams, bodyFields, authUser, imports);
|
|
105
145
|
if (clonedRespond.props.text)
|
|
106
|
-
clonedRespond.props.text = rewriteFastAPIExpr(
|
|
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
|
-
|
|
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([
|
|
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;
|