@kernlang/python 3.5.6-canary.199.1.c927d232 → 3.5.6-canary.202.1.31706b95

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 (61) hide show
  1. package/dist/adapters/django.d.ts +49 -0
  2. package/dist/adapters/django.js +151 -0
  3. package/dist/adapters/django.js.map +1 -0
  4. package/dist/adapters/fastapi.d.ts +43 -0
  5. package/dist/adapters/fastapi.js +139 -0
  6. package/dist/adapters/fastapi.js.map +1 -0
  7. package/dist/codegen-body-python.d.ts +51 -2
  8. package/dist/codegen-body-python.js +281 -26
  9. package/dist/codegen-body-python.js.map +1 -1
  10. package/dist/codegen-python.d.ts +1 -0
  11. package/dist/codegen-python.js +1 -1
  12. package/dist/codegen-python.js.map +1 -1
  13. package/dist/core/emit-imports.d.ts +11 -0
  14. package/dist/core/emit-imports.js +166 -0
  15. package/dist/core/emit-imports.js.map +1 -0
  16. package/dist/core/emit-models.d.ts +14 -0
  17. package/dist/core/emit-models.js +86 -0
  18. package/dist/core/emit-models.js.map +1 -0
  19. package/dist/core/expr/helpers.d.ts +5 -0
  20. package/dist/core/expr/helpers.js +62 -0
  21. package/dist/core/expr/helpers.js.map +1 -0
  22. package/dist/core/expr/index.d.ts +9 -0
  23. package/dist/core/expr/index.js +2046 -0
  24. package/dist/core/expr/index.js.map +1 -0
  25. package/dist/core/fence-diagnostics.d.ts +17 -0
  26. package/dist/core/fence-diagnostics.js +86 -0
  27. package/dist/core/fence-diagnostics.js.map +1 -0
  28. package/dist/core/handlers/index.d.ts +74 -0
  29. package/dist/core/handlers/index.js +462 -0
  30. package/dist/core/handlers/index.js.map +1 -0
  31. package/dist/core/index.d.ts +3 -0
  32. package/dist/core/index.js +4 -0
  33. package/dist/core/index.js.map +1 -0
  34. package/dist/core/type-mapper.d.ts +4 -0
  35. package/dist/core/type-mapper.js +8 -0
  36. package/dist/core/type-mapper.js.map +1 -0
  37. package/dist/fastapi-portable.d.ts +7 -1
  38. package/dist/fastapi-portable.js +97 -74
  39. package/dist/fastapi-portable.js.map +1 -1
  40. package/dist/fastapi-response.d.ts +0 -4
  41. package/dist/fastapi-response.js +1 -1868
  42. package/dist/fastapi-response.js.map +1 -1
  43. package/dist/fastapi-route.js +24 -3
  44. package/dist/fastapi-route.js.map +1 -1
  45. package/dist/fastapi-utils.d.ts +2 -1
  46. package/dist/fastapi-utils.js +2 -58
  47. package/dist/fastapi-utils.js.map +1 -1
  48. package/dist/generators/data.d.ts +3 -1
  49. package/dist/generators/data.js +28 -1
  50. package/dist/generators/data.js.map +1 -1
  51. package/dist/index.d.ts +4 -3
  52. package/dist/index.js +4 -3
  53. package/dist/index.js.map +1 -1
  54. package/dist/ir-semantics/python-leg.js +5 -0
  55. package/dist/ir-semantics/python-leg.js.map +1 -1
  56. package/dist/targets/python.d.ts +32 -0
  57. package/dist/targets/python.js +176 -0
  58. package/dist/targets/python.js.map +1 -0
  59. package/dist/transpiler-fastapi.js +23 -66
  60. package/dist/transpiler-fastapi.js.map +1 -1
  61. package/package.json +2 -2
@@ -0,0 +1,462 @@
1
+ /**
2
+ * Framework-agnostic Python handler emission — revised contract (post nero red-team).
3
+ *
4
+ * The `python` target (targets/python.ts) emits a list of `PurePythonHandler`
5
+ * values. Framework adapters (Phase 3: fastapi, django, asgi) take that list
6
+ * and wrap each in their own routing/validation skin.
7
+ *
8
+ * KEY: the boundary is EXPLICIT. A handler consumes a `PureRequest` (a plain
9
+ * dict whose shape is defined HERE, not borrowed from FastAPI or Django) and
10
+ * returns a `PureResponse` (status, body, optional headers). The adapter is
11
+ * the ONLY place that knows about its framework's native request object —
12
+ * the pure handler never sees `fastapi.Request`, `django.http.HttpRequest`,
13
+ * or any framework type.
14
+ *
15
+ * Why explicit instead of `request: dict`? nero pointed out that "request:
16
+ * dict" silently leaks FastAPI's auto-parsed shape into the handler (FastAPI
17
+ * gives you parsed JSON in one place, Django gives you `.POST`/`.GET`/raw
18
+ * body in another). By specifying PureRequest's shape here, the handler is
19
+ * portable BY CONSTRUCTION and the Phase 2 smoke proves it: it hand-builds
20
+ * a PureRequest (neither FastAPI- nor Django-shaped) and the handler still
21
+ * works.
22
+ *
23
+ * EXPLICIT REQUEST/RESPONSE SHAPE (the contract every adapter must marshal to/from):
24
+ *
25
+ * PureRequest:
26
+ * method: str # 'GET' | 'POST' | ...
27
+ * path_params: dict[str, str|int] # already-coerced path params
28
+ * query: dict[str, str|list] # already-parsed (single or list per key)
29
+ * body: Any (typically dict) # JSON-decoded body if content-type is JSON
30
+ * headers: dict[str, str] # lowercased keys
31
+ * user: Any (optional) # auth-supplied user object, opaque to handler
32
+ *
33
+ * PureResponse:
34
+ * tuple[int, Any] # (status, body) — body is JSON-serialisable
35
+ * tuple[int, Any, dict[str, str]] # (status, body, extra_headers)
36
+ *
37
+ * Guard rejections return `(status, {"detail": "<msg>"})` — same unified
38
+ * error shape used by the FastAPI and Go targets (#3 error-semantics).
39
+ *
40
+ * Phase 2 emitter detail: bodies wrap incoming `request`/`body` in a
41
+ * `__DotDict` so the shared `rewriteExpr` lowering (which assumes JS
42
+ * attribute access like `body.value`) is satisfied without each handler
43
+ * needing to rewrite `body.x` → `body["x"]`. The wrapping is internal —
44
+ * adapters and external callers always see a plain `dict`.
45
+ */
46
+ import { getChildren, getFirstChild, getProps } from '@kernlang/core';
47
+ import { isUnsupportedJsHandlerBody, unsupportedRawHandlerBody } from '../../fastapi-raw-handler.js';
48
+ import { derivePathParams, escapePyStr, indentHandler, slugify } from '../../fastapi-utils.js';
49
+ import { toSnakeCase } from '../../type-map.js';
50
+ import { rewriteExpr } from '../expr/index.js';
51
+ function indentHoistedDef(def, indent) {
52
+ return def.split('\n').map((line) => `${indent}${line}`);
53
+ }
54
+ function findFieldsForSchema(root, schemaName) {
55
+ const fields = new Set();
56
+ function search(node) {
57
+ if ((node.type === 'interface' || node.type === 'model' || node.type === 'type') &&
58
+ getProps(node).name === schemaName) {
59
+ const fieldNodes = getChildren(node, 'field');
60
+ for (const f of fieldNodes) {
61
+ const name = getProps(f).name;
62
+ if (name)
63
+ fields.add(String(name));
64
+ }
65
+ }
66
+ for (const child of node.children || []) {
67
+ search(child);
68
+ }
69
+ }
70
+ search(root);
71
+ return fields;
72
+ }
73
+ // Extract the code from a prop that may arrive as a curly-expression
74
+ function extractExprCode(val) {
75
+ if (val && typeof val === 'object' && '__expr' in val && typeof val.code === 'string') {
76
+ return val.code;
77
+ }
78
+ if (typeof val === 'string')
79
+ return val;
80
+ if (typeof val === 'number' || typeof val === 'boolean')
81
+ return String(val);
82
+ return '';
83
+ }
84
+ function extractCodeOrString(val) {
85
+ return extractExprCode(val);
86
+ }
87
+ function mapJsDefaultToPython(def) {
88
+ if (def === undefined || def === null)
89
+ return 'None';
90
+ const s = String(def).trim();
91
+ if (s === 'true')
92
+ return 'True';
93
+ if (s === 'false')
94
+ return 'False';
95
+ if (s === 'null' || s === 'undefined')
96
+ return 'None';
97
+ return s;
98
+ }
99
+ function generatePurePythonStmt(child, indent, pathParams, bodyFields, authUser, imports, hoistCtx) {
100
+ const lines = [];
101
+ const p = getProps(child);
102
+ function rewriteExprPure(expr, currentIndent) {
103
+ const defs = [];
104
+ const rewritten = rewriteExpr(expr, pathParams, bodyFields, authUser, imports, defs, hoistCtx.seq);
105
+ return { expr: rewritten, hoists: defs.flatMap((def) => indentHoistedDef(def, currentIndent)) };
106
+ }
107
+ switch (child.type) {
108
+ case 'derive': {
109
+ const name = String(p.name || '');
110
+ const exprCode = extractExprCode(p.expr);
111
+ if (name && exprCode) {
112
+ const rewritten = rewriteExprPure(exprCode, indent);
113
+ lines.push(...rewritten.hoists, `${indent}${toSnakeCase(name)} = ${rewritten.expr}`);
114
+ }
115
+ break;
116
+ }
117
+ case 'assign': {
118
+ const target = extractExprCode(p.target);
119
+ if (!target)
120
+ break;
121
+ const op = p.op === undefined || p.op === '' ? '=' : String(p.op);
122
+ const lhs = rewriteExprPure(target, indent);
123
+ lines.push(...lhs.hoists);
124
+ if (op === '++' || op === '--') {
125
+ lines.push(`${indent}${lhs.expr} ${op === '++' ? '+=' : '-='} 1`);
126
+ }
127
+ else {
128
+ const valueCode = extractExprCode(p.value);
129
+ if (!valueCode) {
130
+ throw new Error('portable route `assign` requires `value=` for a non-postfix operator.');
131
+ }
132
+ const rhs = rewriteExprPure(valueCode, indent);
133
+ lines.push(...rhs.hoists, `${indent}${lhs.expr} ${op} ${rhs.expr}`);
134
+ }
135
+ break;
136
+ }
137
+ case 'do': {
138
+ const value = extractExprCode(p.value);
139
+ if (value) {
140
+ const rewritten = rewriteExprPure(value, indent);
141
+ lines.push(...rewritten.hoists, `${indent}${rewritten.expr}`);
142
+ }
143
+ break;
144
+ }
145
+ case 'guard': {
146
+ const name = String(p.name || '');
147
+ const exprCode = extractExprCode(p.expr);
148
+ const elseStatus = p.else ? parseInt(String(p.else), 10) : 404;
149
+ const elseMessage = typeof p.message === 'string' ? p.message : name ? `${name} guard failed` : 'Guard failed';
150
+ if (exprCode) {
151
+ const rewritten = rewriteExprPure(exprCode, indent);
152
+ lines.push(...rewritten.hoists, `${indent}if not (${rewritten.expr}):`);
153
+ lines.push(`${indent} return ${elseStatus}, {"detail": "${escapePyStr(elseMessage)}"}`);
154
+ }
155
+ break;
156
+ }
157
+ case 'handler': {
158
+ const code = String(p.code || '');
159
+ if (code) {
160
+ if (isUnsupportedJsHandlerBody(code)) {
161
+ lines.push(...unsupportedRawHandlerBody(indent));
162
+ }
163
+ else {
164
+ lines.push(...indentHandler(code, indent));
165
+ }
166
+ }
167
+ break;
168
+ }
169
+ case 'respond': {
170
+ const status = typeof p.status === 'number' ? p.status : 200;
171
+ const json = p.json ? extractExprCode(p.json) : undefined;
172
+ const text = p.text ? extractExprCode(p.text) : undefined;
173
+ const redirect = p.redirect ? extractExprCode(p.redirect) : undefined;
174
+ const error = p.error ? extractExprCode(p.error) : undefined;
175
+ if (redirect) {
176
+ const rewritten = rewriteExprPure(redirect, indent);
177
+ lines.push(...rewritten.hoists, `${indent}return ${status || 302}, None, {"Location": ${rewritten.expr}}`);
178
+ }
179
+ else if (error) {
180
+ const rewritten = rewriteExprPure(error, indent);
181
+ lines.push(...rewritten.hoists, `${indent}return ${status || 500}, {"detail": ${rewritten.expr}}`);
182
+ }
183
+ else if (json) {
184
+ const rewritten = rewriteExprPure(json, indent);
185
+ lines.push(...rewritten.hoists, `${indent}return ${status}, ${rewritten.expr}`);
186
+ }
187
+ else if (text) {
188
+ const rewritten = rewriteExprPure(text, indent);
189
+ lines.push(...rewritten.hoists, `${indent}return ${status}, ${rewritten.expr}`);
190
+ }
191
+ else {
192
+ lines.push(`${indent}return ${status}, None`);
193
+ }
194
+ break;
195
+ }
196
+ case 'branch': {
197
+ const onSource = extractCodeOrString(p.on);
198
+ const on = onSource.trim() === '' || onSource.trim() === 'null' || onSource.trim() === 'undefined'
199
+ ? { expr: 'None', hoists: [] }
200
+ : rewriteExprPure(onSource.trim(), indent);
201
+ lines.push(...on.hoists);
202
+ const paths = getChildren(child, 'path');
203
+ for (let i = 0; i < paths.length; i++) {
204
+ const pathNode = paths[i];
205
+ const pp = getProps(pathNode);
206
+ const value = String(pp.value || '');
207
+ const keyword = i === 0 ? 'if' : 'elif';
208
+ lines.push(`${indent}${keyword} ${on.expr} == "${escapePyStr(value)}":`);
209
+ const bodyStart = lines.length;
210
+ for (const pathChild of pathNode.children || []) {
211
+ lines.push(...generatePurePythonStmt(pathChild, `${indent} `, pathParams, bodyFields, authUser, imports, hoistCtx));
212
+ }
213
+ if (lines.length === bodyStart)
214
+ lines.push(`${indent} pass`);
215
+ }
216
+ break;
217
+ }
218
+ case 'let': {
219
+ const name = String(p.name || '');
220
+ if (!name)
221
+ break;
222
+ const valueCode = extractExprCode(p.value) || extractExprCode(p.expr);
223
+ if (valueCode) {
224
+ const rewritten = rewriteExprPure(valueCode, indent);
225
+ lines.push(...rewritten.hoists, `${indent}${name} = ${rewritten.expr}`);
226
+ }
227
+ break;
228
+ }
229
+ case 'each': {
230
+ const name = String(p.name || 'item');
231
+ const collection = rewriteExprPure(extractExprCode(p.in) || String(p.in || ''), indent);
232
+ lines.push(...collection.hoists);
233
+ const index = p.index ? String(p.index) : undefined;
234
+ if (index) {
235
+ lines.push(`${indent}for ${index}, ${name} in enumerate(${collection.expr}):`);
236
+ }
237
+ else {
238
+ lines.push(`${indent}for ${name} in ${collection.expr}:`);
239
+ }
240
+ const bodyStart = lines.length;
241
+ for (const eachChild of child.children || []) {
242
+ lines.push(...generatePurePythonStmt(eachChild, `${indent} `, pathParams, bodyFields, authUser, imports, hoistCtx));
243
+ }
244
+ if (lines.length === bodyStart)
245
+ lines.push(`${indent} pass`);
246
+ break;
247
+ }
248
+ case 'collect': {
249
+ const rawName = toSnakeCase(String(p.name || ''));
250
+ const PY_BUILTINS = new Set([
251
+ 'sorted',
252
+ 'list',
253
+ 'dict',
254
+ 'set',
255
+ 'map',
256
+ 'filter',
257
+ 'type',
258
+ 'id',
259
+ 'input',
260
+ 'print',
261
+ 'range',
262
+ 'len',
263
+ 'min',
264
+ 'max',
265
+ 'sum',
266
+ 'any',
267
+ 'all',
268
+ ]);
269
+ const collectName = PY_BUILTINS.has(rawName) ? `${rawName}_result` : rawName;
270
+ const from = rewriteExprPure(extractCodeOrString(p.from).trim(), indent);
271
+ lines.push(...from.hoists);
272
+ const where = p.where ? extractExprCode(p.where) : undefined;
273
+ const limit = p.limit !== undefined && p.limit !== null && p.limit !== ''
274
+ ? rewriteExprPure(extractCodeOrString(p.limit).trim(), indent)
275
+ : undefined;
276
+ const orderSourceTrimmed = extractCodeOrString(p.order).trim();
277
+ const order = orderSourceTrimmed === '' || orderSourceTrimmed === 'null' || orderSourceTrimmed === 'undefined'
278
+ ? undefined
279
+ : rewriteExprPure(orderSourceTrimmed, indent);
280
+ if (limit)
281
+ lines.push(...limit.hoists);
282
+ if (order)
283
+ lines.push(...order.hoists);
284
+ if (where && !order && !limit) {
285
+ const whereExpr = rewriteExprPure(where, indent);
286
+ lines.push(...whereExpr.hoists);
287
+ lines.push(`${indent}${collectName} = [item for item in ${from.expr} if ${whereExpr.expr}]`);
288
+ }
289
+ else {
290
+ lines.push(`${indent}${collectName} = ${from.expr}`);
291
+ if (where) {
292
+ const whereExpr = rewriteExprPure(where, indent);
293
+ lines.push(...whereExpr.hoists, `${indent}${collectName} = [item for item in ${collectName} if ${whereExpr.expr}]`);
294
+ }
295
+ if (order) {
296
+ imports.add('import functools');
297
+ lines.push(`${indent}${collectName} = sorted(${collectName}, key=functools.cmp_to_key(lambda a, b: ${order.expr}))`);
298
+ }
299
+ if (limit)
300
+ lines.push(`${indent}${collectName} = ${collectName}[:${limit.expr}]`);
301
+ }
302
+ break;
303
+ }
304
+ case 'effect': {
305
+ const effectName = toSnakeCase(String(p.name || 'effect'));
306
+ const triggerNode = getFirstChild(child, 'trigger');
307
+ const recoverNode = getFirstChild(child, 'recover');
308
+ const triggerProps = triggerNode ? getProps(triggerNode) : {};
309
+ const exprCode = extractExprCode(triggerProps.expr);
310
+ const queryCode = extractCodeOrString(triggerProps.query);
311
+ const urlCode = extractCodeOrString(triggerProps.url);
312
+ const callCode = extractCodeOrString(triggerProps.call);
313
+ let triggerExpr = '';
314
+ if (exprCode) {
315
+ triggerExpr = exprCode;
316
+ }
317
+ else if (queryCode) {
318
+ triggerExpr = queryCode;
319
+ }
320
+ else if (triggerProps.url !== undefined && triggerProps.url !== null) {
321
+ triggerExpr = `"${escapePyStr(urlCode)}"`;
322
+ }
323
+ else if (callCode) {
324
+ triggerExpr = callCode;
325
+ }
326
+ const retryCount = recoverNode ? parseInt(String(getProps(recoverNode).retry || '0'), 10) : 0;
327
+ const pyFallback = rewriteExprPure(extractCodeOrString(recoverNode ? getProps(recoverNode).fallback : undefined).trim() || 'None', indent);
328
+ const trigger = triggerExpr ? rewriteExprPure(triggerExpr, indent) : { expr: 'None', hoists: [] };
329
+ lines.push(...pyFallback.hoists, ...trigger.hoists);
330
+ if (retryCount > 0) {
331
+ lines.push(`${indent}${effectName} = ${pyFallback.expr}`);
332
+ lines.push(`${indent}for _attempt in range(${retryCount}):`);
333
+ lines.push(`${indent} try:`);
334
+ lines.push(`${indent} ${effectName} = ${trigger.expr}`);
335
+ lines.push(`${indent} break`);
336
+ lines.push(`${indent} except Exception:`);
337
+ lines.push(`${indent} if _attempt == ${retryCount - 1}:`);
338
+ lines.push(`${indent} ${effectName} = ${pyFallback.expr}`);
339
+ }
340
+ else {
341
+ lines.push(`${indent}try:`);
342
+ lines.push(`${indent} ${effectName} = ${trigger.expr}`);
343
+ lines.push(`${indent}except Exception:`);
344
+ lines.push(`${indent} ${effectName} = ${pyFallback.expr}`);
345
+ }
346
+ break;
347
+ }
348
+ }
349
+ return lines;
350
+ }
351
+ /**
352
+ * Phase 2 implements: scan the IR's server children, lower each route
353
+ * to a `PurePythonHandler`.
354
+ */
355
+ export function emitPureHandlers(serverNode, imports, root) {
356
+ const routeNodes = getChildren(serverNode, 'route');
357
+ const handlers = [];
358
+ const rootNode = root || serverNode;
359
+ for (const routeNode of routeNodes) {
360
+ const props = getProps(routeNode);
361
+ const method = String(props.method || 'get').toUpperCase();
362
+ const path = String(props.path || '/');
363
+ const fnName = `handle_${slugify(`${method}_${path.replace(/:([a-zA-Z0-9_]+)/g, 'by_$1')}`)}`;
364
+ const pathParams = derivePathParams(path);
365
+ const pathParamTypes = {};
366
+ for (const p of pathParams) {
367
+ pathParamTypes[p] = 'str';
368
+ }
369
+ const paramsNodes = getChildren(routeNode, 'params');
370
+ const queryParams = [];
371
+ for (const paramNode of paramsNodes) {
372
+ const paramItems = getProps(paramNode).items;
373
+ if (paramItems)
374
+ queryParams.push(...paramItems);
375
+ }
376
+ const queryParamTypes = {};
377
+ for (const qp of queryParams) {
378
+ let pyType = 'str';
379
+ if (qp.type === 'number')
380
+ pyType = 'float';
381
+ else if (qp.type === 'integer')
382
+ pyType = 'int';
383
+ else if (qp.type === 'boolean')
384
+ pyType = 'bool';
385
+ queryParamTypes[qp.name] = pyType;
386
+ }
387
+ const validateNode = getFirstChild(routeNode, 'validate');
388
+ const validateSchema = validateNode ? String(getProps(validateNode).schema || '') : undefined;
389
+ const validatesSchema = validateSchema || undefined;
390
+ const bodyFields = new Set();
391
+ if (validatesSchema) {
392
+ const resolvedFields = findFieldsForSchema(rootNode, validatesSchema);
393
+ for (const f of resolvedFields)
394
+ bodyFields.add(f);
395
+ }
396
+ const authNode = getFirstChild(routeNode, 'auth');
397
+ const authUser = !!authNode;
398
+ const handlerImports = new Set();
399
+ const hoistCtx = { seq: { n: 0 } };
400
+ const bodyLines = [];
401
+ bodyLines.push(' request = __DotDict(request)');
402
+ bodyLines.push(' body = __DotDict(request.get("body") or {})');
403
+ if (pathParams.length > 0) {
404
+ bodyLines.push(' # Path parameters');
405
+ for (const p of pathParams) {
406
+ bodyLines.push(` ${p} = request.path_params.get("${p}")`);
407
+ }
408
+ }
409
+ if (queryParams.length > 0) {
410
+ bodyLines.push(' # Query parameters');
411
+ for (const qp of queryParams) {
412
+ const snakeName = toSnakeCase(qp.name);
413
+ bodyLines.push(` ${snakeName} = request.query.get("${qp.name}")`);
414
+ if (qp.default !== undefined) {
415
+ bodyLines.push(` if ${snakeName} is None:`);
416
+ bodyLines.push(` ${snakeName} = ${mapJsDefaultToPython(qp.default)}`);
417
+ }
418
+ }
419
+ }
420
+ if (authUser) {
421
+ bodyLines.push(' # Auth user');
422
+ bodyLines.push(' user = request.get("user")');
423
+ }
424
+ const children = routeNode.children || [];
425
+ const PORTABLE_TYPES = new Set([
426
+ 'derive',
427
+ 'guard',
428
+ 'handler',
429
+ 'respond',
430
+ 'branch',
431
+ 'each',
432
+ 'collect',
433
+ 'effect',
434
+ 'assign',
435
+ 'do',
436
+ ]);
437
+ for (const child of children) {
438
+ if (PORTABLE_TYPES.has(child.type)) {
439
+ const stmtLines = generatePurePythonStmt(child, ' ', pathParams, bodyFields, authUser, handlerImports, hoistCtx);
440
+ bodyLines.push(...stmtLines);
441
+ }
442
+ }
443
+ for (const imp of handlerImports) {
444
+ imports.add(imp);
445
+ }
446
+ const signature = `def ${fnName}(request: dict) -> tuple:`;
447
+ handlers.push({
448
+ method,
449
+ path,
450
+ fnName,
451
+ signature,
452
+ bodyLines,
453
+ imports: handlerImports,
454
+ pathParamTypes,
455
+ queryParamTypes,
456
+ validatesSchema,
457
+ responseHeaders: {},
458
+ });
459
+ }
460
+ return handlers;
461
+ }
462
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/handlers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { emitImports } from './emit-imports.js';
2
+ export { emitModels } from './emit-models.js';
3
+ export { mapKernTypeToPython } from './type-mapper.js';
@@ -0,0 +1,4 @@
1
+ export { emitImports } from './emit-imports.js';
2
+ export { emitModels } from './emit-models.js';
3
+ export { mapKernTypeToPython } from './type-mapper.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Convert a KERN/TypeScript type string to a Python type string.
3
+ */
4
+ export declare function mapKernTypeToPython(tsType: string): string;
@@ -0,0 +1,8 @@
1
+ import { mapTsTypeToPython } from '../type-map.js';
2
+ /**
3
+ * Convert a KERN/TypeScript type string to a Python type string.
4
+ */
5
+ export function mapKernTypeToPython(tsType) {
6
+ return mapTsTypeToPython(tsType);
7
+ }
8
+ //# sourceMappingURL=type-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-mapper.js","sourceRoot":"","sources":["../../src/core/type-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
@@ -29,7 +29,12 @@ export interface FastAPIStreamCtx {
29
29
  n: number;
30
30
  };
31
31
  }
32
- export declare function generatePortableChildFastAPI(child: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean, streamCtx?: FastAPIStreamCtx): string[];
32
+ interface FastAPIClosureHoistCtx {
33
+ seq: {
34
+ n: number;
35
+ };
36
+ }
37
+ export declare function generatePortableChildFastAPI(child: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean, streamCtx?: FastAPIStreamCtx, closureHoistCtx?: FastAPIClosureHoistCtx): string[];
33
38
  export declare function generatePortableHandlerFastAPI(routeNode: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean): string[];
34
39
  export declare function hasPortableStreamBodyFastAPI(streamNode: IRNode): boolean;
35
40
  /**
@@ -40,3 +45,4 @@ export declare function hasPortableStreamBodyFastAPI(streamNode: IRNode): boolea
40
45
  * in a `StreamingResponse`.
41
46
  */
42
47
  export declare function generatePortableStreamFastAPI(streamNode: IRNode, indent: string, pathParams: string[], imports: Set<string>, bodyFields?: Set<string>, authUser?: boolean): string[];
48
+ export {};