swallowkit 1.0.0-beta.22 → 1.0.0-beta.24

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 (38) hide show
  1. package/README.ja.md +9 -4
  2. package/README.md +9 -4
  3. package/dist/cli/commands/dev.d.ts +14 -0
  4. package/dist/cli/commands/dev.d.ts.map +1 -1
  5. package/dist/cli/commands/dev.js +187 -54
  6. package/dist/cli/commands/dev.js.map +1 -1
  7. package/dist/cli/commands/init.d.ts.map +1 -1
  8. package/dist/cli/commands/init.js +33 -18
  9. package/dist/cli/commands/init.js.map +1 -1
  10. package/dist/cli/commands/scaffold.d.ts +0 -3
  11. package/dist/cli/commands/scaffold.d.ts.map +1 -1
  12. package/dist/cli/commands/scaffold.js +3 -172
  13. package/dist/cli/commands/scaffold.js.map +1 -1
  14. package/dist/core/project/validation.js +2 -2
  15. package/dist/core/project/validation.js.map +1 -1
  16. package/dist/core/scaffold/model-parser.d.ts.map +1 -1
  17. package/dist/core/scaffold/model-parser.js +5 -6
  18. package/dist/core/scaffold/model-parser.js.map +1 -1
  19. package/dist/core/scaffold/native-schema-generator.d.ts +13 -0
  20. package/dist/core/scaffold/native-schema-generator.d.ts.map +1 -0
  21. package/dist/core/scaffold/native-schema-generator.js +677 -0
  22. package/dist/core/scaffold/native-schema-generator.js.map +1 -0
  23. package/dist/utils/python-uv.d.ts +21 -0
  24. package/dist/utils/python-uv.d.ts.map +1 -0
  25. package/dist/utils/python-uv.js +112 -0
  26. package/dist/utils/python-uv.js.map +1 -0
  27. package/package.json +1 -1
  28. package/src/__tests__/dev.test.ts +95 -0
  29. package/src/__tests__/model-parser.test.ts +44 -64
  30. package/src/__tests__/python-uv.test.ts +48 -0
  31. package/src/__tests__/scaffold.test.ts +54 -26
  32. package/src/cli/commands/dev.ts +258 -74
  33. package/src/cli/commands/init.ts +45 -19
  34. package/src/cli/commands/scaffold.ts +3 -213
  35. package/src/core/project/validation.ts +2 -2
  36. package/src/core/scaffold/model-parser.ts +7 -7
  37. package/src/core/scaffold/native-schema-generator.ts +798 -0
  38. package/src/utils/python-uv.ts +97 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-schema-generator.js","sourceRoot":"","sources":["../../../src/core/scaffold/native-schema-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export declare const SWALLOWKIT_PYTHON_VERSION = "3.11";
2
+ export interface ProjectLocalUvPaths {
3
+ stateDir: string;
4
+ cacheDir: string;
5
+ pythonInstallDir: string;
6
+ toolDir: string;
7
+ toolBinDir: string;
8
+ localUvInstallDir: string;
9
+ localUvExecutable: string;
10
+ }
11
+ export declare function getPythonProjectRoot(functionsDir: string): string;
12
+ export declare function getProjectLocalUvPaths(projectRoot: string): ProjectLocalUvPaths;
13
+ export declare function buildProjectLocalUvEnv(baseEnv: NodeJS.ProcessEnv, projectRoot: string): NodeJS.ProcessEnv;
14
+ export declare function buildProjectLocalUvInstallerEnv(baseEnv: NodeJS.ProcessEnv, projectRoot: string): NodeJS.ProcessEnv;
15
+ export declare function getProjectLocalUvInstallerCommand(): {
16
+ command: string;
17
+ args: string[];
18
+ };
19
+ export declare function buildUvVenvArgs(venvDir: string, pythonVersion?: string): string[];
20
+ export declare function buildUvPipInstallArgs(pythonExecutable: string, requirementsPath: string): string[];
21
+ //# sourceMappingURL=python-uv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-uv.d.ts","sourceRoot":"","sources":["../../src/utils/python-uv.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAe/E;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,UAAU,EAC1B,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,UAAU,CAiBnB;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,CAAC,UAAU,EAC1B,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,UAAU,CAQnB;AAED,wBAAgB,iCAAiC,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAkBvF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,SAA4B,GAAG,MAAM,EAAE,CAEpG;AAED,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAElG"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SWALLOWKIT_PYTHON_VERSION = void 0;
37
+ exports.getPythonProjectRoot = getPythonProjectRoot;
38
+ exports.getProjectLocalUvPaths = getProjectLocalUvPaths;
39
+ exports.buildProjectLocalUvEnv = buildProjectLocalUvEnv;
40
+ exports.buildProjectLocalUvInstallerEnv = buildProjectLocalUvInstallerEnv;
41
+ exports.getProjectLocalUvInstallerCommand = getProjectLocalUvInstallerCommand;
42
+ exports.buildUvVenvArgs = buildUvVenvArgs;
43
+ exports.buildUvPipInstallArgs = buildUvPipInstallArgs;
44
+ const path = __importStar(require("path"));
45
+ exports.SWALLOWKIT_PYTHON_VERSION = "3.11";
46
+ function getPythonProjectRoot(functionsDir) {
47
+ return path.dirname(functionsDir);
48
+ }
49
+ function getProjectLocalUvPaths(projectRoot) {
50
+ const stateDir = path.join(projectRoot, ".uv");
51
+ const localUvInstallDir = path.join(stateDir, "bin");
52
+ return {
53
+ stateDir,
54
+ cacheDir: path.join(stateDir, "cache"),
55
+ pythonInstallDir: path.join(stateDir, "python"),
56
+ toolDir: path.join(stateDir, "tools"),
57
+ toolBinDir: path.join(stateDir, "tools", "bin"),
58
+ localUvInstallDir,
59
+ localUvExecutable: process.platform === "win32"
60
+ ? path.join(localUvInstallDir, "uv.exe")
61
+ : path.join(localUvInstallDir, "uv"),
62
+ };
63
+ }
64
+ function buildProjectLocalUvEnv(baseEnv, projectRoot) {
65
+ const uvPaths = getProjectLocalUvPaths(projectRoot);
66
+ const env = {
67
+ ...baseEnv,
68
+ UV_CACHE_DIR: uvPaths.cacheDir,
69
+ UV_PYTHON_INSTALL_DIR: uvPaths.pythonInstallDir,
70
+ UV_TOOL_DIR: uvPaths.toolDir,
71
+ UV_TOOL_BIN_DIR: uvPaths.toolBinDir,
72
+ UV_PYTHON_PREFERENCE: "managed",
73
+ UV_MANAGED_PYTHON: "true",
74
+ };
75
+ if (process.platform === "win32") {
76
+ env.UV_PYTHON_NO_REGISTRY = "true";
77
+ }
78
+ return env;
79
+ }
80
+ function buildProjectLocalUvInstallerEnv(baseEnv, projectRoot) {
81
+ const uvPaths = getProjectLocalUvPaths(projectRoot);
82
+ return {
83
+ ...buildProjectLocalUvEnv(baseEnv, projectRoot),
84
+ UV_UNMANAGED_INSTALL: uvPaths.localUvInstallDir,
85
+ UV_NO_MODIFY_PATH: "1",
86
+ };
87
+ }
88
+ function getProjectLocalUvInstallerCommand() {
89
+ if (process.platform === "win32") {
90
+ return {
91
+ command: "powershell",
92
+ args: [
93
+ "-NoProfile",
94
+ "-ExecutionPolicy",
95
+ "Bypass",
96
+ "-Command",
97
+ "$ProgressPreference = 'SilentlyContinue'; irm https://astral.sh/uv/install.ps1 | iex",
98
+ ],
99
+ };
100
+ }
101
+ return {
102
+ command: "sh",
103
+ args: ["-c", "curl -LsSf https://astral.sh/uv/install.sh | sh"],
104
+ };
105
+ }
106
+ function buildUvVenvArgs(venvDir, pythonVersion = exports.SWALLOWKIT_PYTHON_VERSION) {
107
+ return ["venv", venvDir, "--python", pythonVersion, "--managed-python"];
108
+ }
109
+ function buildUvPipInstallArgs(pythonExecutable, requirementsPath) {
110
+ return ["pip", "install", "--python", pythonExecutable, "-r", requirementsPath];
111
+ }
112
+ //# sourceMappingURL=python-uv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-uv.js","sourceRoot":"","sources":["../../src/utils/python-uv.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,oDAEC;AAED,wDAeC;AAED,wDAoBC;AAED,0EAWC;AAED,8EAkBC;AAED,0CAEC;AAED,sDAEC;AAhGD,2CAA6B;AAEhB,QAAA,yBAAyB,GAAG,MAAM,CAAC;AAYhD,SAAgB,oBAAoB,CAAC,YAAoB;IACvD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,sBAAsB,CAAC,WAAmB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAErD,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;QACtC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC/C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;QACrC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;QAC/C,iBAAiB;QACjB,iBAAiB,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC7C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CACpC,OAA0B,EAC1B,WAAmB;IAEnB,MAAM,OAAO,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,GAAG,GAAsB;QAC7B,GAAG,OAAO;QACV,YAAY,EAAE,OAAO,CAAC,QAAQ;QAC9B,qBAAqB,EAAE,OAAO,CAAC,gBAAgB;QAC/C,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,eAAe,EAAE,OAAO,CAAC,UAAU;QACnC,oBAAoB,EAAE,SAAS;QAC/B,iBAAiB,EAAE,MAAM;KAC1B,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,GAAG,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACrC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,+BAA+B,CAC7C,OAA0B,EAC1B,WAAmB;IAEnB,MAAM,OAAO,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAEpD,OAAO;QACL,GAAG,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC;QAC/C,oBAAoB,EAAE,OAAO,CAAC,iBAAiB;QAC/C,iBAAiB,EAAE,GAAG;KACvB,CAAC;AACJ,CAAC;AAED,SAAgB,iCAAiC;IAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE;gBACJ,YAAY;gBACZ,kBAAkB;gBAClB,QAAQ;gBACR,UAAU;gBACV,sFAAsF;aACvF;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,CAAC,IAAI,EAAE,iDAAiD,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,OAAe,EAAE,aAAa,GAAG,iCAAyB;IACxF,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;AAC1E,CAAC;AAED,SAAgB,qBAAqB,CAAC,gBAAwB,EAAE,gBAAwB;IACtF,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAClF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swallowkit",
3
- "version": "1.0.0-beta.22",
3
+ "version": "1.0.0-beta.24",
4
4
  "description": "Type-safe schema-driven development toolkit for Next.js applications on Azure",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,12 +1,20 @@
1
+ import * as http from "http";
1
2
  import { readFileSync } from "fs";
2
3
  import * as path from "path";
3
4
  import {
5
+ buildFunctionsBaseUrl,
4
6
  buildFunctionsStartArgs,
7
+ buildFunctionsCoreToolsCommand,
5
8
  buildNextDevArgs,
6
9
  buildDevCommand,
7
10
  buildPythonFunctionsEnv,
11
+ compareVersionNumbers,
8
12
  DevOptions,
13
+ getFunctionsReadinessTimeoutMs,
14
+ getCSharpFunctionsBuildArtifactPaths,
9
15
  getPythonVirtualEnvPaths,
16
+ parseCoreToolsVersion,
17
+ waitForHttpServerReady,
10
18
  } from "../cli/commands/dev";
11
19
  import { CLI_VERSION, createProgram, normalizeDevCommandArgv } from "../cli/index";
12
20
 
@@ -23,6 +31,32 @@ describe("dev command helpers", () => {
23
31
  expect(buildFunctionsStartArgs("7076")).toEqual(["start", "--port", "7076"]);
24
32
  });
25
33
 
34
+ it("parses the Core Tools version from CLI output", () => {
35
+ expect(parseCoreToolsVersion("4.6.0+ab90faafcab539d63cd3d0ce5faf1bca4395fccc")).toBe("4.6.0");
36
+ });
37
+
38
+ it("compares Core Tools versions numerically", () => {
39
+ expect(compareVersionNumbers("4.0.5198", "4.6.0")).toBeLessThan(0);
40
+ expect(compareVersionNumbers("4.6.0", "4.6.0")).toBe(0);
41
+ expect(compareVersionNumbers("4.10.0", "4.6.0")).toBeGreaterThan(0);
42
+ });
43
+
44
+ it("falls back to npm Core Tools for older C# isolated hosts", () => {
45
+ expect(buildFunctionsCoreToolsCommand("csharp", "4.0.5198")).toEqual({
46
+ command: "npm",
47
+ argsPrefix: ["exec", "--yes", "azure-functions-core-tools@4", "--"],
48
+ label: "npm exec azure-functions-core-tools@4 (installed func 4.0.5198 is too old for C# isolated)",
49
+ });
50
+ });
51
+
52
+ it("keeps the installed func command for supported Core Tools versions", () => {
53
+ expect(buildFunctionsCoreToolsCommand("csharp", "4.6.0")).toEqual({
54
+ command: "func",
55
+ argsPrefix: [],
56
+ label: "func 4.6.0",
57
+ });
58
+ });
59
+
26
60
  it("uses webpack mode for npm-based Next.js dev", () => {
27
61
  expect(buildNextDevArgs("npm", "3012")).toEqual(["next", "dev", "--port", "3012", "--webpack"]);
28
62
  });
@@ -31,6 +65,48 @@ describe("dev command helpers", () => {
31
65
  expect(buildNextDevArgs("pnpm", "3012")).toEqual(["exec", "next", "dev", "--port", "3012", "--webpack"]);
32
66
  });
33
67
 
68
+ it("builds the Azure Functions base URL from host and port", () => {
69
+ expect(buildFunctionsBaseUrl(undefined, "7071")).toBe("http://localhost:7071");
70
+ expect(buildFunctionsBaseUrl("127.0.0.1", "7072")).toBe("http://127.0.0.1:7072");
71
+ });
72
+
73
+ it("gives C# more startup time before reporting readiness timeout", () => {
74
+ expect(getFunctionsReadinessTimeoutMs("csharp")).toBeGreaterThan(getFunctionsReadinessTimeoutMs("typescript"));
75
+ expect(getFunctionsReadinessTimeoutMs("csharp")).toBeGreaterThan(getFunctionsReadinessTimeoutMs("python"));
76
+ });
77
+
78
+ it("waits until an HTTP server responds before reporting ready", async () => {
79
+ const server = http.createServer((_request, response) => {
80
+ response.writeHead(404);
81
+ response.end("not found");
82
+ });
83
+
84
+ await new Promise<void>((resolve) => {
85
+ server.listen(0, "127.0.0.1", () => resolve());
86
+ });
87
+
88
+ const address = server.address();
89
+ if (!address || typeof address === "string") {
90
+ throw new Error("Failed to determine ephemeral port.");
91
+ }
92
+
93
+ try {
94
+ await expect(
95
+ waitForHttpServerReady(`http://127.0.0.1:${address.port}`, 2_000, 50)
96
+ ).resolves.toBe(true);
97
+ } finally {
98
+ await new Promise<void>((resolve, reject) => {
99
+ server.close((error) => {
100
+ if (error) {
101
+ reject(error);
102
+ return;
103
+ }
104
+ resolve();
105
+ });
106
+ });
107
+ }
108
+ });
109
+
34
110
  it("builds Python virtual environment paths under functions/.venv", () => {
35
111
  const functionsDir = path.join("C:\\repo", "functions");
36
112
  const paths = getPythonVirtualEnvPaths(functionsDir);
@@ -40,6 +116,15 @@ describe("dev command helpers", () => {
40
116
  expect(paths.pythonExecutable.endsWith(process.platform === "win32" ? path.join("Scripts", "python.exe") : path.join("bin", "python"))).toBe(true);
41
117
  });
42
118
 
119
+ it("targets C# bin and obj directories for build cleanup", () => {
120
+ const functionsDir = path.join("C:\\repo", "functions");
121
+
122
+ expect(getCSharpFunctionsBuildArtifactPaths(functionsDir)).toEqual([
123
+ path.join(functionsDir, "bin"),
124
+ path.join(functionsDir, "obj"),
125
+ ]);
126
+ });
127
+
43
128
  it("injects Python virtual environment settings for Functions", () => {
44
129
  const functionsDir = path.join("C:\\repo", "functions");
45
130
  const env = buildPythonFunctionsEnv({ PATH: "C:\\Windows\\System32" }, functionsDir);
@@ -154,4 +239,14 @@ describe("dev CLI parser", () => {
154
239
  expect(optionsBeforeCommand).toMatchObject(expected);
155
240
  expect(optionsBeforeCommand).toMatchObject(optionsAfterCommand);
156
241
  });
242
+
243
+ it("keeps Azure Functions enabled by default", async () => {
244
+ const options = await parseDevOptions([
245
+ "node",
246
+ "swallowkit",
247
+ "dev",
248
+ ]);
249
+
250
+ expect(options.noFunctions).toBe(false);
251
+ });
157
252
  });
@@ -1,72 +1,52 @@
1
- import { parsePartitionKey } from "../core/scaffold/model-parser";
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { parseModelFile } from "../core/scaffold/model-parser";
2
4
 
3
- describe("parsePartitionKey", () => {
4
- it("returns default '/id' when no partitionKey export exists", () => {
5
- const content = `
6
- import { z } from 'zod/v4';
5
+ describe("parseModelFile", () => {
6
+ it("preserves array and enum metadata for schemas with defaults", async () => {
7
+ const tempDir = fs.mkdtempSync(path.join(process.cwd(), ".tmp-model-parser-"));
8
+ const modelPath = path.join(tempDir, "product.ts");
7
9
 
8
- export const Todo = z.object({
9
- id: z.string(),
10
- title: z.string(),
11
- });
12
- export type Todo = z.infer<typeof Todo>;
13
- `;
14
- expect(parsePartitionKey(content)).toBe("/id");
15
- });
16
-
17
- it("extracts explicit partitionKey with single quotes", () => {
18
- const content = `
19
- import { z } from 'zod/v4';
10
+ try {
11
+ fs.writeFileSync(
12
+ modelPath,
13
+ `import { z } from 'zod/v4';
20
14
 
21
- export const Order = z.object({
15
+ export const Product = z.object({
22
16
  id: z.string(),
23
- tenantId: z.string(),
24
- items: z.array(z.string()),
17
+ name: z.string().min(1),
18
+ price: z.number().min(0),
19
+ tags: z.array(z.string()).default([]),
20
+ status: z.enum(['draft', 'active', 'archived']).default('draft'),
21
+ createdAt: z.string().optional(),
22
+ updatedAt: z.string().optional(),
25
23
  });
26
- export type Order = z.infer<typeof Order>;
27
- export const partitionKey = '/tenantId';
28
- `;
29
- expect(parsePartitionKey(content)).toBe("/tenantId");
30
- });
31
-
32
- it("extracts explicit partitionKey with double quotes", () => {
33
- const content = `
34
- export const User = z.object({ id: z.string(), email: z.string() });
35
- export const partitionKey = "/email";
36
- `;
37
- expect(parsePartitionKey(content)).toBe("/email");
38
- });
39
-
40
- it("extracts /id as explicit partitionKey", () => {
41
- const content = `
42
- export const Todo = z.object({ id: z.string() });
43
- export const partitionKey = '/id';
44
- `;
45
- expect(parsePartitionKey(content)).toBe("/id");
46
- });
47
-
48
- it("handles nested/hierarchical partition key paths", () => {
49
- const content = `
50
- export const partitionKey = '/address/city';
51
- `;
52
- expect(parsePartitionKey(content)).toBe("/address/city");
53
- });
54
-
55
- it("ignores commented-out partitionKey", () => {
56
- const content = `
57
- // export const partitionKey = '/tenantId';
58
- export const Todo = z.object({ id: z.string() });
59
- `;
60
- // The regex matches inside comments too — this is acceptable since
61
- // the pattern follows the same approach as parseConnectorConfig/parseAuthPolicy
62
- // In practice, commented-out exports are rare in model files
63
- expect(parsePartitionKey(content)).toBe("/tenantId");
64
- });
65
24
 
66
- it("handles extra spaces around equals sign", () => {
67
- const content = `
68
- export const partitionKey = '/customerId';
69
- `;
70
- expect(parsePartitionKey(content)).toBe("/customerId");
25
+ export type Product = z.infer<typeof Product>;
26
+ `,
27
+ "utf-8"
28
+ );
29
+
30
+ const model = await parseModelFile(modelPath);
31
+ expect(model.fields).toEqual(
32
+ expect.arrayContaining([
33
+ expect.objectContaining({
34
+ name: "tags",
35
+ type: "string",
36
+ isArray: true,
37
+ isOptional: true,
38
+ }),
39
+ expect.objectContaining({
40
+ name: "status",
41
+ type: "string",
42
+ isArray: false,
43
+ isOptional: true,
44
+ enumValues: ["draft", "active", "archived"],
45
+ }),
46
+ ])
47
+ );
48
+ } finally {
49
+ fs.rmSync(tempDir, { recursive: true, force: true });
50
+ }
71
51
  });
72
52
  });
@@ -0,0 +1,48 @@
1
+ import * as path from "path";
2
+ import {
3
+ buildProjectLocalUvEnv,
4
+ buildUvPipInstallArgs,
5
+ buildUvVenvArgs,
6
+ getProjectLocalUvPaths,
7
+ getPythonProjectRoot,
8
+ } from "../utils/python-uv";
9
+
10
+ describe("python uv helpers", () => {
11
+ it("keeps uv-managed state inside the project", () => {
12
+ const projectRoot = "C:\\repo";
13
+ const uvPaths = getProjectLocalUvPaths(projectRoot);
14
+
15
+ expect(uvPaths.stateDir).toBe(path.join(projectRoot, ".uv"));
16
+ expect(uvPaths.cacheDir).toBe(path.join(projectRoot, ".uv", "cache"));
17
+ expect(uvPaths.pythonInstallDir).toBe(path.join(projectRoot, ".uv", "python"));
18
+ expect(uvPaths.localUvExecutable.endsWith(process.platform === "win32" ? path.join(".uv", "bin", "uv.exe") : path.join(".uv", "bin", "uv"))).toBe(true);
19
+ });
20
+
21
+ it("derives the project root from the functions directory", () => {
22
+ expect(getPythonProjectRoot(path.join("C:\\repo", "functions"))).toBe("C:\\repo");
23
+ });
24
+
25
+ it("builds project-local uv environment variables", () => {
26
+ const env = buildProjectLocalUvEnv({ PATH: "C:\\Windows\\System32" }, "C:\\repo");
27
+
28
+ expect(env.UV_CACHE_DIR).toBe(path.join("C:\\repo", ".uv", "cache"));
29
+ expect(env.UV_PYTHON_INSTALL_DIR).toBe(path.join("C:\\repo", ".uv", "python"));
30
+ expect(env.UV_TOOL_DIR).toBe(path.join("C:\\repo", ".uv", "tools"));
31
+ expect(env.UV_TOOL_BIN_DIR).toBe(path.join("C:\\repo", ".uv", "tools", "bin"));
32
+ expect(env.UV_MANAGED_PYTHON).toBe("true");
33
+ expect(env.UV_PYTHON_PREFERENCE).toBe("managed");
34
+ expect(env.UV_PYTHON_NO_REGISTRY).toBe(process.platform === "win32" ? "true" : undefined);
35
+ });
36
+
37
+ it("builds uv commands for venv creation and requirements installation", () => {
38
+ expect(buildUvVenvArgs(".venv")).toEqual(["venv", ".venv", "--python", "3.11", "--managed-python"]);
39
+ expect(buildUvPipInstallArgs(path.join("C:\\repo", "functions", ".venv", "Scripts", "python.exe"), "requirements.txt")).toEqual([
40
+ "pip",
41
+ "install",
42
+ "--python",
43
+ path.join("C:\\repo", "functions", ".venv", "Scripts", "python.exe"),
44
+ "-r",
45
+ "requirements.txt",
46
+ ]);
47
+ });
48
+ });
@@ -1,39 +1,67 @@
1
1
  import * as path from "path";
2
- import { getCSharpSchemaArtifactPruneTargets, getOpenApiGeneratorArgs } from "../cli/commands/scaffold";
2
+ import {
3
+ NSWAG_CONSOLECORE_VERSION,
4
+ buildCSharpCodegenToolManifestSource,
5
+ buildPythonCodegenRequirementsSource,
6
+ getCSharpNativeGeneratorArgs,
7
+ getCSharpSchemaModelPath,
8
+ getCSharpSchemaOptionPath,
9
+ getPythonNativeGeneratorArgs,
10
+ getPythonSchemaModelPath,
11
+ } from "../core/scaffold/native-schema-generator";
3
12
 
4
- describe("getOpenApiGeneratorArgs", () => {
5
- it("omits supportingFiles for C# model generation to avoid Polly version conflicts", () => {
6
- const args = getOpenApiGeneratorArgs("spec.json", "out", "csharp");
7
- const globalPropertyIndex = args.indexOf("--global-property");
13
+ describe("native schema generators", () => {
14
+ it("writes a dotnet tool manifest for NSwag", () => {
15
+ const manifest = JSON.parse(buildCSharpCodegenToolManifestSource());
8
16
 
9
- expect(globalPropertyIndex).toBeGreaterThanOrEqual(0);
10
- expect(args[globalPropertyIndex + 1]).toBe("models,apis=false,modelDocs=false,modelTests=false");
17
+ expect(manifest.version).toBe(1);
18
+ expect(manifest.tools["nswag.consolecore"].version).toBe(NSWAG_CONSOLECORE_VERSION);
19
+ expect(manifest.tools["nswag.consolecore"].commands).toEqual(["nswag"]);
11
20
  });
12
21
 
13
- it("continues omitting supporting files for Python model generation", () => {
14
- const args = getOpenApiGeneratorArgs("spec.json", "out", "python");
15
- const globalPropertyIndex = args.indexOf("--global-property");
16
-
17
- expect(globalPropertyIndex).toBeGreaterThanOrEqual(0);
18
- expect(args[globalPropertyIndex + 1]).toBe(
19
- "models,apis=false,supportingFiles=false,modelDocs=false,modelTests=false"
20
- );
22
+ it("pins python schema generation requirements without Java", () => {
23
+ expect(buildPythonCodegenRequirementsSource()).toContain("datamodel-code-generator");
24
+ expect(buildPythonCodegenRequirementsSource()).not.toContain("openapi-generator");
21
25
  });
22
26
 
23
- it("prunes extra C# artifacts that pull in unused dependencies", () => {
24
- const targets = getCSharpSchemaArtifactPruneTargets("C:\\temp\\generated\\csharp-models");
27
+ it("builds NSwag arguments for model-only C# generation", () => {
28
+ const outputPath = path.join("C:\\temp\\generated\\csharp-models", ".native-temp", "Contracts.cs");
29
+ const args = getCSharpNativeGeneratorArgs("C:\\temp\\todo.openapi.json", outputPath);
25
30
 
26
- expect(targets).toEqual([
27
- path.join("C:\\temp\\generated\\csharp-models", "src", "SwallowKitBackendModels.Test"),
28
- path.join("C:\\temp\\generated\\csharp-models", "src", "SwallowKitBackendModels", "Api"),
29
- path.join("C:\\temp\\generated\\csharp-models", "src", "SwallowKitBackendModels", "Extensions"),
30
- ]);
31
+ expect(args.slice(0, 4)).toEqual(["tool", "run", "nswag", "openapi2csclient"]);
32
+ expect(args).toContain("/GenerateClientClasses:false");
33
+ expect(args).toContain("/GenerateDtoTypes:true");
34
+ expect(args).toContain("/GenerateNullableReferenceTypes:true");
35
+ expect(args).toContain(`/output:${outputPath}`);
31
36
  });
32
37
 
33
- it("keeps only Option.cs from generated C# client helpers", () => {
34
- const args = getOpenApiGeneratorArgs("spec.json", "out", "csharp");
38
+ it("builds datamodel-code-generator arguments for python assets", () => {
39
+ const outputPath = path.join("C:\\temp\\generated\\python-models", ".native-temp", "models.py");
40
+ const args = getPythonNativeGeneratorArgs("C:\\temp\\todo.openapi.json", outputPath);
41
+
42
+ expect(args).toEqual(
43
+ expect.arrayContaining([
44
+ "-m",
45
+ "datamodel_code_generator",
46
+ "--input-file-type",
47
+ "openapi",
48
+ "--output-model-type",
49
+ "pydantic_v2.BaseModel",
50
+ "--disable-timestamp",
51
+ outputPath,
52
+ ])
53
+ );
54
+ });
35
55
 
36
- expect(args).toContain("csharp");
37
- expect(getCSharpSchemaArtifactPruneTargets("C:\\temp\\generated\\csharp-models")).toHaveLength(3);
56
+ it("keeps generated asset paths under functions/generated", () => {
57
+ expect(getCSharpSchemaModelPath("C:\\temp\\generated\\csharp-models", "Product")).toBe(
58
+ path.join("C:\\temp\\generated\\csharp-models", "src", "SwallowKitBackendModels", "Model", "Product.cs")
59
+ );
60
+ expect(getCSharpSchemaOptionPath("C:\\temp\\generated\\csharp-models")).toBe(
61
+ path.join("C:\\temp\\generated\\csharp-models", "src", "SwallowKitBackendModels", "Client", "Option.cs")
62
+ );
63
+ expect(getPythonSchemaModelPath("C:\\temp\\generated\\python-models", "Product")).toBe(
64
+ path.join("C:\\temp\\generated\\python-models", "backend_models", "models", "product.py")
65
+ );
38
66
  });
39
67
  });