@kernlang/python 3.5.2

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 (63) hide show
  1. package/LICENSE +678 -0
  2. package/README.md +26 -0
  3. package/dist/codegen-body-python.d.ts +152 -0
  4. package/dist/codegen-body-python.js +1648 -0
  5. package/dist/codegen-body-python.js.map +1 -0
  6. package/dist/codegen-helpers.d.ts +21 -0
  7. package/dist/codegen-helpers.js +352 -0
  8. package/dist/codegen-helpers.js.map +1 -0
  9. package/dist/codegen-python.d.ts +17 -0
  10. package/dist/codegen-python.js +106 -0
  11. package/dist/codegen-python.js.map +1 -0
  12. package/dist/fastapi-middleware.d.ts +8 -0
  13. package/dist/fastapi-middleware.js +87 -0
  14. package/dist/fastapi-middleware.js.map +1 -0
  15. package/dist/fastapi-portable.d.ts +9 -0
  16. package/dist/fastapi-portable.js +295 -0
  17. package/dist/fastapi-portable.js.map +1 -0
  18. package/dist/fastapi-raw-handler.d.ts +28 -0
  19. package/dist/fastapi-raw-handler.js +282 -0
  20. package/dist/fastapi-raw-handler.js.map +1 -0
  21. package/dist/fastapi-response.d.ts +13 -0
  22. package/dist/fastapi-response.js +150 -0
  23. package/dist/fastapi-response.js.map +1 -0
  24. package/dist/fastapi-route.d.ts +12 -0
  25. package/dist/fastapi-route.js +629 -0
  26. package/dist/fastapi-route.js.map +1 -0
  27. package/dist/fastapi-types.d.ts +39 -0
  28. package/dist/fastapi-types.js +5 -0
  29. package/dist/fastapi-types.js.map +1 -0
  30. package/dist/fastapi-utils.d.ts +16 -0
  31. package/dist/fastapi-utils.js +99 -0
  32. package/dist/fastapi-utils.js.map +1 -0
  33. package/dist/fastapi-websocket.d.ts +6 -0
  34. package/dist/fastapi-websocket.js +77 -0
  35. package/dist/fastapi-websocket.js.map +1 -0
  36. package/dist/generators/core.d.ts +23 -0
  37. package/dist/generators/core.js +906 -0
  38. package/dist/generators/core.js.map +1 -0
  39. package/dist/generators/data.d.ts +15 -0
  40. package/dist/generators/data.js +443 -0
  41. package/dist/generators/data.js.map +1 -0
  42. package/dist/generators/ground.d.ts +20 -0
  43. package/dist/generators/ground.js +333 -0
  44. package/dist/generators/ground.js.map +1 -0
  45. package/dist/generators/infra.d.ts +8 -0
  46. package/dist/generators/infra.js +109 -0
  47. package/dist/generators/infra.js.map +1 -0
  48. package/dist/index.d.ts +6 -0
  49. package/dist/index.js +7 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/ir-semantics/python-leg.d.ts +45 -0
  52. package/dist/ir-semantics/python-leg.js +291 -0
  53. package/dist/ir-semantics/python-leg.js.map +1 -0
  54. package/dist/python-stdlib-preamble.d.ts +32 -0
  55. package/dist/python-stdlib-preamble.js +86 -0
  56. package/dist/python-stdlib-preamble.js.map +1 -0
  57. package/dist/transpiler-fastapi.d.ts +8 -0
  58. package/dist/transpiler-fastapi.js +593 -0
  59. package/dist/transpiler-fastapi.js.map +1 -0
  60. package/dist/type-map.d.ts +14 -0
  61. package/dist/type-map.js +288 -0
  62. package/dist/type-map.js.map +1 -0
  63. package/package.json +37 -0
@@ -0,0 +1,288 @@
1
+ /**
2
+ * TypeScript type strings → Python type strings
3
+ */
4
+ const SIMPLE_MAP = {
5
+ string: 'str',
6
+ number: 'float',
7
+ boolean: 'bool',
8
+ any: 'Any',
9
+ unknown: 'Any',
10
+ void: 'None',
11
+ undefined: 'None',
12
+ null: 'None',
13
+ Date: 'datetime',
14
+ object: 'dict[str, Any]',
15
+ };
16
+ /**
17
+ * Convert a TypeScript type string to a Python type string.
18
+ *
19
+ * Handles: primitives, arrays (T[]), Record<K,V>, Promise<T>, union types,
20
+ * string literal unions ("a"|"b"), T | null → T | None, generics.
21
+ */
22
+ export function mapTsTypeToPython(tsType) {
23
+ const trimmed = tsType.trim();
24
+ const unwrapped = unwrapRedundantParens(trimmed);
25
+ if (unwrapped !== trimmed)
26
+ return mapTsTypeToPython(unwrapped);
27
+ // Simple mappings
28
+ if (SIMPLE_MAP[trimmed])
29
+ return SIMPLE_MAP[trimmed];
30
+ const functionType = parseFunctionType(trimmed);
31
+ if (functionType)
32
+ return functionType;
33
+ if (isWholeObjectType(trimmed))
34
+ return 'dict[str, Any]';
35
+ // String literal union: "a" | "b" | "c" → Literal["a", "b", "c"]
36
+ if (/^["']/.test(trimmed) || (trimmed.includes('|') && trimmed.split('|').every((p) => /^\s*["']/.test(p)))) {
37
+ const parts = trimmed.split('|').map((p) => p.trim());
38
+ const literals = parts.map((p) => {
39
+ const unquoted = p.replace(/^['"]|['"]$/g, '');
40
+ return `"${unquoted}"`;
41
+ });
42
+ return `Literal[${literals.join(', ')}]`;
43
+ }
44
+ // Array: T[] → list[T]
45
+ if (trimmed.endsWith('[]')) {
46
+ const inner = trimmed.slice(0, -2);
47
+ return `list[${mapTsTypeToPython(inner)}]`;
48
+ }
49
+ // Array<T> → list[T]
50
+ const arrayMatch = trimmed.match(/^Array<(.+)>$/);
51
+ if (arrayMatch) {
52
+ return `list[${mapTsTypeToPython(arrayMatch[1])}]`;
53
+ }
54
+ // Record<K, V> → dict[K, V]
55
+ const recordMatch = trimmed.match(/^Record<(.+),\s*(.+)>$/);
56
+ if (recordMatch) {
57
+ return `dict[${mapTsTypeToPython(recordMatch[1])}, ${mapTsTypeToPython(recordMatch[2])}]`;
58
+ }
59
+ // Promise<T> → T (async def handles it)
60
+ const promiseMatch = trimmed.match(/^Promise<(.+)>$/);
61
+ if (promiseMatch) {
62
+ return mapTsTypeToPython(promiseMatch[1]);
63
+ }
64
+ // Slice 4 — Result<T, E> → Result[T, E] / Option<T> → Option[T]. The
65
+ // type aliases are emitted by `pythonStdlibPreamble` when the module
66
+ // references them; here we only translate the syntax. Splitting `T, E`
67
+ // requires depth-aware parsing because nested generics may also use `,`.
68
+ const resultMatch = trimmed.match(/^Result<([\s\S]+)>$/);
69
+ if (resultMatch) {
70
+ const args = splitGenericArgs(resultMatch[1]);
71
+ if (args.length === 2) {
72
+ return `Result[${mapTsTypeToPython(args[0])}, ${mapTsTypeToPython(args[1])}]`;
73
+ }
74
+ }
75
+ const optionMatch = trimmed.match(/^Option<([\s\S]+)>$/);
76
+ if (optionMatch) {
77
+ return `Option[${mapTsTypeToPython(optionMatch[1])}]`;
78
+ }
79
+ // Map<K, V> → dict[K, V]
80
+ const mapMatch = trimmed.match(/^Map<(.+),\s*(.+)>$/);
81
+ if (mapMatch) {
82
+ return `dict[${mapTsTypeToPython(mapMatch[1])}, ${mapTsTypeToPython(mapMatch[2])}]`;
83
+ }
84
+ // Set<T> → set[T]
85
+ const setMatch = trimmed.match(/^Set<(.+)>$/);
86
+ if (setMatch) {
87
+ return `set[${mapTsTypeToPython(setMatch[1])}]`;
88
+ }
89
+ // Union types: T | U
90
+ if (trimmed.includes('|')) {
91
+ const parts = trimmed
92
+ .split('|')
93
+ .map((p) => p.trim())
94
+ .filter(Boolean);
95
+ const mapped = parts.map((p) => mapTsTypeToPython(p));
96
+ return mapped.join(' | ');
97
+ }
98
+ // Passthrough (custom types, capitalized identifiers)
99
+ return trimmed;
100
+ }
101
+ function parseFunctionType(tsType) {
102
+ if (!tsType.startsWith('('))
103
+ return null;
104
+ const closeIdx = findMatchingParen(tsType, 0);
105
+ if (closeIdx === -1)
106
+ return null;
107
+ const tail = tsType.slice(closeIdx + 1).trim();
108
+ if (!tail.startsWith('=>'))
109
+ return null;
110
+ const paramsRaw = tsType.slice(1, closeIdx).trim();
111
+ const returnRaw = tail.slice(2).trim();
112
+ const returnType = returnRaw ? mapTsTypeToPython(returnRaw) : 'Any';
113
+ if (!paramsRaw)
114
+ return `Callable[[], ${returnType}]`;
115
+ const paramTypes = splitTopLevel(paramsRaw, ',').map((param) => {
116
+ const trimmedParam = param.trim();
117
+ if (!trimmedParam)
118
+ return 'Any';
119
+ if (trimmedParam.startsWith('...'))
120
+ return '...';
121
+ const colonIdx = findTopLevelColon(trimmedParam);
122
+ if (colonIdx === -1)
123
+ return isIdentifierLike(trimmedParam) ? 'Any' : mapTsTypeToPython(trimmedParam);
124
+ const typeRaw = trimmedParam.slice(colonIdx + 1).trim();
125
+ return typeRaw ? mapTsTypeToPython(typeRaw) : 'Any';
126
+ });
127
+ if (paramTypes.includes('...'))
128
+ return `Callable[..., ${returnType}]`;
129
+ return `Callable[[${paramTypes.join(', ')}], ${returnType}]`;
130
+ }
131
+ function unwrapRedundantParens(input) {
132
+ if (!input.startsWith('(') || !input.endsWith(')'))
133
+ return input;
134
+ const closeIdx = findMatchingParen(input, 0);
135
+ if (closeIdx !== input.length - 1)
136
+ return input;
137
+ return input.slice(1, -1).trim();
138
+ }
139
+ function findMatchingParen(input, openIdx) {
140
+ let depth = 0;
141
+ let quote = '';
142
+ let escaped = false;
143
+ for (let i = openIdx; i < input.length; i++) {
144
+ const ch = input[i];
145
+ if (quote) {
146
+ if (escaped)
147
+ escaped = false;
148
+ else if (ch === '\\')
149
+ escaped = true;
150
+ else if (ch === quote)
151
+ quote = '';
152
+ continue;
153
+ }
154
+ if (ch === '"' || ch === "'" || ch === '`') {
155
+ quote = ch;
156
+ continue;
157
+ }
158
+ if (ch === '(')
159
+ depth++;
160
+ else if (ch === ')') {
161
+ depth--;
162
+ if (depth === 0)
163
+ return i;
164
+ }
165
+ }
166
+ return -1;
167
+ }
168
+ function findTopLevelColon(input) {
169
+ let depth = 0;
170
+ let quote = '';
171
+ let escaped = false;
172
+ for (let i = 0; i < input.length; i++) {
173
+ const ch = input[i];
174
+ if (quote) {
175
+ if (escaped)
176
+ escaped = false;
177
+ else if (ch === '\\')
178
+ escaped = true;
179
+ else if (ch === quote)
180
+ quote = '';
181
+ continue;
182
+ }
183
+ if (ch === '"' || ch === "'" || ch === '`') {
184
+ quote = ch;
185
+ continue;
186
+ }
187
+ if (ch === '<' || ch === '[' || ch === '(' || ch === '{')
188
+ depth++;
189
+ else if ((ch === '>' || ch === ']' || ch === ')' || ch === '}') && depth > 0)
190
+ depth--;
191
+ else if (ch === ':' && depth === 0)
192
+ return i;
193
+ }
194
+ return -1;
195
+ }
196
+ function isWholeObjectType(input) {
197
+ if (!input.startsWith('{') || !input.endsWith('}'))
198
+ return false;
199
+ const closeIdx = findMatchingBrace(input, 0);
200
+ return closeIdx === input.length - 1;
201
+ }
202
+ function findMatchingBrace(input, openIdx) {
203
+ let depth = 0;
204
+ let quote = '';
205
+ let escaped = false;
206
+ for (let i = openIdx; i < input.length; i++) {
207
+ const ch = input[i];
208
+ if (quote) {
209
+ if (escaped)
210
+ escaped = false;
211
+ else if (ch === '\\')
212
+ escaped = true;
213
+ else if (ch === quote)
214
+ quote = '';
215
+ continue;
216
+ }
217
+ if (ch === '"' || ch === "'" || ch === '`') {
218
+ quote = ch;
219
+ continue;
220
+ }
221
+ if (ch === '{')
222
+ depth++;
223
+ else if (ch === '}') {
224
+ depth--;
225
+ if (depth === 0)
226
+ return i;
227
+ }
228
+ }
229
+ return -1;
230
+ }
231
+ function isIdentifierLike(input) {
232
+ return /^[A-Za-z_$][\w$]*\??$/.test(input);
233
+ }
234
+ /** Split a generic-args string at top-level `,`s — depth-aware so nested
235
+ * generics (`Result<Foo<X, Y>, Bar>`) don't get split mid-arg. */
236
+ function splitGenericArgs(s) {
237
+ return splitTopLevel(s, ',');
238
+ }
239
+ function splitTopLevel(s, separator) {
240
+ const out = [];
241
+ let depth = 0;
242
+ let current = '';
243
+ let quote = '';
244
+ let escaped = false;
245
+ for (const c of s) {
246
+ if (quote) {
247
+ current += c;
248
+ if (escaped)
249
+ escaped = false;
250
+ else if (c === '\\')
251
+ escaped = true;
252
+ else if (c === quote)
253
+ quote = '';
254
+ continue;
255
+ }
256
+ if (c === '"' || c === "'" || c === '`') {
257
+ quote = c;
258
+ current += c;
259
+ continue;
260
+ }
261
+ if (c === '<' || c === '[' || c === '(' || c === '{')
262
+ depth++;
263
+ else if ((c === '>' || c === ']' || c === ')' || c === '}') && depth > 0)
264
+ depth--;
265
+ if (c === separator && depth === 0) {
266
+ out.push(current.trim());
267
+ current = '';
268
+ }
269
+ else {
270
+ current += c;
271
+ }
272
+ }
273
+ if (current.trim())
274
+ out.push(current.trim());
275
+ return out;
276
+ }
277
+ /** Convert a camelCase or PascalCase identifier to snake_case. */
278
+ export function toSnakeCase(name) {
279
+ return name
280
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
281
+ .replace(/([a-z0-9])([A-Z])/g, '$1_$2')
282
+ .toLowerCase();
283
+ }
284
+ /** Convert a name to SCREAMING_SNAKE_CASE. */
285
+ export function toScreamingSnake(name) {
286
+ return toSnakeCase(name).toUpperCase();
287
+ }
288
+ //# sourceMappingURL=type-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-map.js","sourceRoot":"","sources":["../src/type-map.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@kernlang/python",
3
+ "version": "3.5.2",
4
+ "description": "KERN Python backend codegen (FastAPI router target included)",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "keywords": [
18
+ "kern",
19
+ "llm",
20
+ "fastapi",
21
+ "python",
22
+ "backend",
23
+ "transpiler",
24
+ "ai"
25
+ ],
26
+ "license": "AGPL-3.0",
27
+ "engines": {
28
+ "python": ">=3.8"
29
+ },
30
+ "dependencies": {
31
+ "@kernlang/core": "3.5.2"
32
+ },
33
+ "scripts": {
34
+ "build": "tsc -b",
35
+ "test": "node --experimental-vm-modules ../../node_modules/jest/bin/jest.js --config jest.config.js"
36
+ }
37
+ }