swallowkit 1.0.0-beta.5 → 1.0.0-beta.51

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 (222) hide show
  1. package/LICENSE +21 -21
  2. package/README.ja.md +153 -242
  3. package/README.md +153 -243
  4. package/dist/__tests__/fixtures.d.ts +22 -0
  5. package/dist/__tests__/fixtures.d.ts.map +1 -0
  6. package/dist/__tests__/fixtures.js +146 -0
  7. package/dist/__tests__/fixtures.js.map +1 -0
  8. package/dist/cli/commands/add-auth.d.ts +13 -0
  9. package/dist/cli/commands/add-auth.d.ts.map +1 -0
  10. package/dist/cli/commands/add-auth.js +759 -0
  11. package/dist/cli/commands/add-auth.js.map +1 -0
  12. package/dist/cli/commands/add-connector.d.ts +20 -0
  13. package/dist/cli/commands/add-connector.d.ts.map +1 -0
  14. package/dist/cli/commands/add-connector.js +163 -0
  15. package/dist/cli/commands/add-connector.js.map +1 -0
  16. package/dist/cli/commands/create-model.d.ts +1 -4
  17. package/dist/cli/commands/create-model.d.ts.map +1 -1
  18. package/dist/cli/commands/create-model.js +19 -81
  19. package/dist/cli/commands/create-model.js.map +1 -1
  20. package/dist/cli/commands/dev-seeds.d.ts +57 -0
  21. package/dist/cli/commands/dev-seeds.d.ts.map +1 -0
  22. package/dist/cli/commands/dev-seeds.js +470 -0
  23. package/dist/cli/commands/dev-seeds.js.map +1 -0
  24. package/dist/cli/commands/dev.d.ts +37 -0
  25. package/dist/cli/commands/dev.d.ts.map +1 -1
  26. package/dist/cli/commands/dev.js +720 -156
  27. package/dist/cli/commands/dev.js.map +1 -1
  28. package/dist/cli/commands/index.d.ts +1 -0
  29. package/dist/cli/commands/index.d.ts.map +1 -1
  30. package/dist/cli/commands/index.js +3 -1
  31. package/dist/cli/commands/index.js.map +1 -1
  32. package/dist/cli/commands/init.d.ts +73 -0
  33. package/dist/cli/commands/init.d.ts.map +1 -1
  34. package/dist/cli/commands/init.js +3089 -1779
  35. package/dist/cli/commands/init.js.map +1 -1
  36. package/dist/cli/commands/scaffold.d.ts +13 -0
  37. package/dist/cli/commands/scaffold.d.ts.map +1 -1
  38. package/dist/cli/commands/scaffold.js +513 -129
  39. package/dist/cli/commands/scaffold.js.map +1 -1
  40. package/dist/cli/index.d.ts +5 -1
  41. package/dist/cli/index.d.ts.map +1 -1
  42. package/dist/cli/index.js +206 -55
  43. package/dist/cli/index.js.map +1 -1
  44. package/dist/core/config.d.ts +14 -3
  45. package/dist/core/config.d.ts.map +1 -1
  46. package/dist/core/config.js +172 -5
  47. package/dist/core/config.js.map +1 -1
  48. package/dist/core/mock/connector-mock-server.d.ts +101 -0
  49. package/dist/core/mock/connector-mock-server.d.ts.map +1 -0
  50. package/dist/core/mock/connector-mock-server.js +480 -0
  51. package/dist/core/mock/connector-mock-server.js.map +1 -0
  52. package/dist/core/mock/zod-mock-generator.d.ts +14 -0
  53. package/dist/core/mock/zod-mock-generator.d.ts.map +1 -0
  54. package/dist/core/mock/zod-mock-generator.js +163 -0
  55. package/dist/core/mock/zod-mock-generator.js.map +1 -0
  56. package/dist/core/operations/create-model.d.ts +15 -0
  57. package/dist/core/operations/create-model.d.ts.map +1 -0
  58. package/dist/core/operations/create-model.js +171 -0
  59. package/dist/core/operations/create-model.js.map +1 -0
  60. package/dist/core/operations/runtime.d.ts +32 -0
  61. package/dist/core/operations/runtime.d.ts.map +1 -0
  62. package/dist/core/operations/runtime.js +225 -0
  63. package/dist/core/operations/runtime.js.map +1 -0
  64. package/dist/core/operations/scaffold-machine.d.ts +16 -0
  65. package/dist/core/operations/scaffold-machine.d.ts.map +1 -0
  66. package/dist/core/operations/scaffold-machine.js +63 -0
  67. package/dist/core/operations/scaffold-machine.js.map +1 -0
  68. package/dist/core/project/manifest.d.ts +92 -0
  69. package/dist/core/project/manifest.d.ts.map +1 -0
  70. package/dist/core/project/manifest.js +321 -0
  71. package/dist/core/project/manifest.js.map +1 -0
  72. package/dist/core/project/validation.d.ts +20 -0
  73. package/dist/core/project/validation.d.ts.map +1 -0
  74. package/dist/core/project/validation.js +226 -0
  75. package/dist/core/project/validation.js.map +1 -0
  76. package/dist/core/scaffold/auth-generator.d.ts +63 -0
  77. package/dist/core/scaffold/auth-generator.d.ts.map +1 -0
  78. package/dist/core/scaffold/auth-generator.js +1714 -0
  79. package/dist/core/scaffold/auth-generator.js.map +1 -0
  80. package/dist/core/scaffold/connector-functions-generator.d.ts +41 -0
  81. package/dist/core/scaffold/connector-functions-generator.d.ts.map +1 -0
  82. package/dist/core/scaffold/connector-functions-generator.js +1029 -0
  83. package/dist/core/scaffold/connector-functions-generator.js.map +1 -0
  84. package/dist/core/scaffold/functions-generator.d.ts +7 -1
  85. package/dist/core/scaffold/functions-generator.d.ts.map +1 -1
  86. package/dist/core/scaffold/functions-generator.js +922 -220
  87. package/dist/core/scaffold/functions-generator.js.map +1 -1
  88. package/dist/core/scaffold/model-parser.d.ts +20 -1
  89. package/dist/core/scaffold/model-parser.d.ts.map +1 -1
  90. package/dist/core/scaffold/model-parser.js +333 -139
  91. package/dist/core/scaffold/model-parser.js.map +1 -1
  92. package/dist/core/scaffold/native-schema-generator.d.ts +13 -0
  93. package/dist/core/scaffold/native-schema-generator.d.ts.map +1 -0
  94. package/dist/core/scaffold/native-schema-generator.js +696 -0
  95. package/dist/core/scaffold/native-schema-generator.js.map +1 -0
  96. package/dist/core/scaffold/nextjs-generator.d.ts +8 -0
  97. package/dist/core/scaffold/nextjs-generator.d.ts.map +1 -1
  98. package/dist/core/scaffold/nextjs-generator.js +326 -182
  99. package/dist/core/scaffold/nextjs-generator.js.map +1 -1
  100. package/dist/core/scaffold/openapi-generator.d.ts +3 -0
  101. package/dist/core/scaffold/openapi-generator.d.ts.map +1 -0
  102. package/dist/core/scaffold/openapi-generator.js +190 -0
  103. package/dist/core/scaffold/openapi-generator.js.map +1 -0
  104. package/dist/core/scaffold/ui-generator.d.ts +13 -4
  105. package/dist/core/scaffold/ui-generator.d.ts.map +1 -1
  106. package/dist/core/scaffold/ui-generator.js +772 -663
  107. package/dist/core/scaffold/ui-generator.js.map +1 -1
  108. package/dist/database/base-model.d.ts +3 -3
  109. package/dist/database/base-model.js +3 -3
  110. package/dist/index.d.ts +2 -2
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +2 -1
  113. package/dist/index.js.map +1 -1
  114. package/dist/machine/contracts.d.ts +16 -0
  115. package/dist/machine/contracts.d.ts.map +1 -0
  116. package/dist/machine/contracts.js +3 -0
  117. package/dist/machine/contracts.js.map +1 -0
  118. package/dist/machine/errors.d.ts +11 -0
  119. package/dist/machine/errors.d.ts.map +1 -0
  120. package/dist/machine/errors.js +34 -0
  121. package/dist/machine/errors.js.map +1 -0
  122. package/dist/machine/index.d.ts +3 -0
  123. package/dist/machine/index.d.ts.map +1 -0
  124. package/dist/machine/index.js +156 -0
  125. package/dist/machine/index.js.map +1 -0
  126. package/dist/mcp/index.d.ts +25 -0
  127. package/dist/mcp/index.d.ts.map +1 -0
  128. package/dist/mcp/index.js +202 -0
  129. package/dist/mcp/index.js.map +1 -0
  130. package/dist/types/index.d.ts +95 -0
  131. package/dist/types/index.d.ts.map +1 -1
  132. package/dist/utils/package-manager.d.ts +5 -2
  133. package/dist/utils/package-manager.d.ts.map +1 -1
  134. package/dist/utils/package-manager.js +34 -13
  135. package/dist/utils/package-manager.js.map +1 -1
  136. package/dist/utils/python-uv.d.ts +21 -0
  137. package/dist/utils/python-uv.d.ts.map +1 -0
  138. package/dist/utils/python-uv.js +111 -0
  139. package/dist/utils/python-uv.js.map +1 -0
  140. package/dist/version.d.ts +2 -0
  141. package/dist/version.d.ts.map +1 -0
  142. package/dist/version.js +49 -0
  143. package/dist/version.js.map +1 -0
  144. package/package.json +84 -74
  145. package/src/__tests__/__snapshots__/functions-generator.test.ts.snap +1139 -0
  146. package/src/__tests__/__snapshots__/nextjs-generator.test.ts.snap +206 -0
  147. package/src/__tests__/__snapshots__/ui-generator.test.ts.snap +532 -0
  148. package/src/__tests__/auth.test.ts +761 -0
  149. package/src/__tests__/config.test.ts +295 -0
  150. package/src/__tests__/connector-functions-generator.test.ts +288 -0
  151. package/src/__tests__/connector-mock-server.test.ts +439 -0
  152. package/src/__tests__/connector-model-bff.test.ts +162 -0
  153. package/src/__tests__/dev-seeds.test.ts +173 -0
  154. package/src/__tests__/dev.test.ts +287 -0
  155. package/src/__tests__/fixtures.ts +144 -0
  156. package/src/__tests__/functions-generator.test.ts +237 -0
  157. package/src/__tests__/init.test.ts +356 -0
  158. package/src/__tests__/jest-globals.d.ts +8 -0
  159. package/src/__tests__/machine.test.ts +356 -0
  160. package/src/__tests__/mcp.test.ts +145 -0
  161. package/src/__tests__/model-parser.test.ts +52 -0
  162. package/src/__tests__/multi-auth.test.ts +133 -0
  163. package/src/__tests__/nextjs-generator.test.ts +105 -0
  164. package/src/__tests__/openapi-generator.test.ts +43 -0
  165. package/src/__tests__/package-manager.test.ts +227 -0
  166. package/src/__tests__/python-uv.test.ts +48 -0
  167. package/src/__tests__/scaffold.test.ts +191 -0
  168. package/src/__tests__/string-utils.test.ts +75 -0
  169. package/src/__tests__/tsconfig.json +15 -0
  170. package/src/__tests__/ui-generator.test.ts +144 -0
  171. package/src/__tests__/zod-mock-generator.test.ts +132 -0
  172. package/src/cli/commands/add-auth.ts +815 -0
  173. package/src/cli/commands/add-connector.ts +158 -0
  174. package/src/cli/commands/create-model.ts +62 -0
  175. package/src/cli/commands/dev-seeds.ts +614 -0
  176. package/src/cli/commands/dev.ts +1234 -0
  177. package/src/cli/commands/index.ts +9 -0
  178. package/src/cli/commands/init.ts +3902 -0
  179. package/src/cli/commands/provision.ts +193 -0
  180. package/src/cli/commands/scaffold.ts +1067 -0
  181. package/src/cli/index.ts +202 -0
  182. package/src/core/config.ts +379 -0
  183. package/src/core/mock/connector-mock-server.ts +555 -0
  184. package/src/core/mock/zod-mock-generator.ts +205 -0
  185. package/src/core/operations/create-model.ts +174 -0
  186. package/src/core/operations/runtime.ts +235 -0
  187. package/src/core/operations/scaffold-machine.ts +91 -0
  188. package/src/core/project/manifest.ts +402 -0
  189. package/src/core/project/validation.ts +245 -0
  190. package/src/core/scaffold/auth-generator.ts +1760 -0
  191. package/src/core/scaffold/connector-functions-generator.ts +1133 -0
  192. package/src/core/scaffold/functions-generator.ts +972 -0
  193. package/src/core/scaffold/model-parser.ts +847 -0
  194. package/src/core/scaffold/native-schema-generator.ts +822 -0
  195. package/src/core/scaffold/nextjs-generator.ts +382 -0
  196. package/src/core/scaffold/openapi-generator.ts +212 -0
  197. package/src/core/scaffold/ui-generator.ts +1068 -0
  198. package/src/database/base-model.ts +184 -0
  199. package/src/database/client.ts +140 -0
  200. package/src/database/repository.ts +104 -0
  201. package/src/database/runtime-check.ts +25 -0
  202. package/src/index.ts +27 -0
  203. package/src/machine/contracts.ts +17 -0
  204. package/src/machine/errors.ts +34 -0
  205. package/src/machine/index.ts +173 -0
  206. package/src/mcp/index.ts +209 -0
  207. package/src/types/index.ts +165 -0
  208. package/src/utils/package-manager.ts +246 -0
  209. package/src/utils/python-uv.ts +96 -0
  210. package/src/version.ts +13 -0
  211. package/dist/cli/commands/build.d.ts +0 -6
  212. package/dist/cli/commands/build.d.ts.map +0 -1
  213. package/dist/cli/commands/build.js +0 -177
  214. package/dist/cli/commands/build.js.map +0 -1
  215. package/dist/cli/commands/deploy.d.ts +0 -3
  216. package/dist/cli/commands/deploy.d.ts.map +0 -1
  217. package/dist/cli/commands/deploy.js +0 -147
  218. package/dist/cli/commands/deploy.js.map +0 -1
  219. package/dist/cli/commands/setup.d.ts +0 -6
  220. package/dist/cli/commands/setup.d.ts.map +0 -1
  221. package/dist/cli/commands/setup.js +0 -254
  222. package/dist/cli/commands/setup.js.map +0 -1
@@ -0,0 +1,202 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.buildSwallowKitToolDefinitions = buildSwallowKitToolDefinitions;
38
+ exports.createSwallowKitMcpServer = createSwallowKitMcpServer;
39
+ exports.runMcpServer = runMcpServer;
40
+ const path = __importStar(require("path"));
41
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
42
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
43
+ const z = __importStar(require("zod/v4"));
44
+ const version_1 = require("../version");
45
+ // Keep this as a runtime dynamic import so CommonJS builds do not rewrite it to require().
46
+ const importModule = new Function("specifier", "return import(specifier);");
47
+ function resolveMachineCliEntrypoint() {
48
+ return path.resolve(__dirname, "..", "cli", "index.js");
49
+ }
50
+ async function defaultMachineCliRunner(args) {
51
+ const { execa } = await importModule("execa");
52
+ const result = await execa(process.execPath, [resolveMachineCliEntrypoint(), "machine", ...args], {
53
+ reject: false,
54
+ });
55
+ return {
56
+ stdout: result.stdout,
57
+ stderr: result.stderr,
58
+ exitCode: result.exitCode ?? 0,
59
+ };
60
+ }
61
+ async function executeMachineCommand(args, runMachineCli) {
62
+ const result = await runMachineCli(args);
63
+ let parsed;
64
+ try {
65
+ parsed = JSON.parse(result.stdout);
66
+ }
67
+ catch {
68
+ throw new Error(result.stderr || result.stdout || "Machine CLI returned invalid JSON.");
69
+ }
70
+ if (!parsed.ok) {
71
+ throw new Error(parsed.error.message);
72
+ }
73
+ return parsed;
74
+ }
75
+ function jsonTextContent(value) {
76
+ return {
77
+ content: [
78
+ {
79
+ type: "text",
80
+ text: JSON.stringify(value, null, 2),
81
+ },
82
+ ],
83
+ };
84
+ }
85
+ function withSwallowKitMetadata(data) {
86
+ const value = data && typeof data === "object" ? data : { data };
87
+ const metadata = value.metadata && typeof value.metadata === "object"
88
+ ? value.metadata
89
+ : {};
90
+ return {
91
+ ...value,
92
+ metadata: {
93
+ ...metadata,
94
+ swallowkitVersion: (0, version_1.getSwallowKitVersion)(),
95
+ },
96
+ };
97
+ }
98
+ function buildSwallowKitToolDefinitions(runMachineCli = defaultMachineCliRunner) {
99
+ return [
100
+ {
101
+ name: "swallowkit_inspect_project",
102
+ description: "Return framework-owned SwallowKit project metadata.",
103
+ inputSchema: z.object({}),
104
+ handler: async () => {
105
+ const response = await executeMachineCommand(["inspect", "project"], runMachineCli);
106
+ return jsonTextContent(withSwallowKitMetadata(response.data));
107
+ },
108
+ },
109
+ {
110
+ name: "swallowkit_inspect_entities",
111
+ description: "Return SwallowKit entities, schema metadata, and connector/auth annotations.",
112
+ inputSchema: z.object({}),
113
+ handler: async () => {
114
+ const response = await executeMachineCommand(["inspect", "entities"], runMachineCli);
115
+ return jsonTextContent(response.data);
116
+ },
117
+ },
118
+ {
119
+ name: "swallowkit_inspect_routes",
120
+ description: "Return BFF and Functions route metadata understood by SwallowKit.",
121
+ inputSchema: z.object({}),
122
+ handler: async () => {
123
+ const response = await executeMachineCommand(["inspect", "routes"], runMachineCli);
124
+ return jsonTextContent(response.data);
125
+ },
126
+ },
127
+ {
128
+ name: "swallowkit_validate_project",
129
+ description: "Validate project metadata, generated artifacts, and framework conventions.",
130
+ inputSchema: z.object({}),
131
+ handler: async () => {
132
+ const response = await executeMachineCommand(["validate", "project"], runMachineCli);
133
+ return jsonTextContent(withSwallowKitMetadata(response.data));
134
+ },
135
+ },
136
+ {
137
+ name: "swallowkit_generate_model",
138
+ description: "Generate SwallowKit model templates through the official generator.",
139
+ inputSchema: z.object({
140
+ names: z.array(z.string()).min(1),
141
+ modelsDir: z.string().optional(),
142
+ connector: z.string().optional(),
143
+ overwrite: z.enum(["always", "never"]).optional(),
144
+ }),
145
+ handler: async ({ names, modelsDir, connector, overwrite }) => {
146
+ const response = await executeMachineCommand(["generate", "model", ...names, ...(modelsDir ? ["--models-dir", modelsDir] : []), ...(connector ? ["--connector", connector] : []), "--overwrite", overwrite || "never"], runMachineCli);
147
+ return jsonTextContent(response.data);
148
+ },
149
+ },
150
+ {
151
+ name: "swallowkit_scaffold_model",
152
+ description: "Generate SwallowKit scaffold artifacts through the official generator.",
153
+ inputSchema: z.object({
154
+ model: z.string(),
155
+ functionsDir: z.string().optional(),
156
+ apiDir: z.string().optional(),
157
+ apiOnly: z.boolean().optional(),
158
+ }),
159
+ handler: async ({ model, functionsDir, apiDir, apiOnly }) => {
160
+ const args = ["generate", "scaffold", model];
161
+ if (functionsDir) {
162
+ args.push("--functions-dir", functionsDir);
163
+ }
164
+ if (apiDir) {
165
+ args.push("--api-dir", apiDir);
166
+ }
167
+ if (apiOnly) {
168
+ args.push("--api-only");
169
+ }
170
+ const response = await executeMachineCommand(args, runMachineCli);
171
+ return jsonTextContent(response.data);
172
+ },
173
+ },
174
+ ];
175
+ }
176
+ function createSwallowKitMcpServer(runMachineCli = defaultMachineCliRunner) {
177
+ const version = (0, version_1.getSwallowKitVersion)();
178
+ const server = new mcp_js_1.McpServer({
179
+ name: "swallowkit-mcp",
180
+ version,
181
+ });
182
+ for (const tool of buildSwallowKitToolDefinitions(runMachineCli)) {
183
+ server.registerTool(tool.name, {
184
+ description: tool.description,
185
+ inputSchema: tool.inputSchema,
186
+ }, tool.handler);
187
+ }
188
+ return server;
189
+ }
190
+ async function runMcpServer() {
191
+ console.error(`[swallowkit-mcp] version: ${(0, version_1.getSwallowKitVersion)()}`);
192
+ const server = createSwallowKitMcpServer();
193
+ const transport = new stdio_js_1.StdioServerTransport();
194
+ await server.connect(transport);
195
+ }
196
+ if (require.main === module) {
197
+ void runMcpServer().catch((error) => {
198
+ console.error(error);
199
+ process.exitCode = 1;
200
+ });
201
+ }
202
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * SwallowKit の基本型定義
3
3
  */
4
4
  export type ServerFnMode = "auto" | "force-server" | "force-client";
5
+ export type BackendLanguage = "typescript" | "csharp" | "python";
5
6
  export interface UseServerFnOptions {
6
7
  mode?: ServerFnMode;
7
8
  refetchOnMount?: boolean;
@@ -16,11 +17,103 @@ export interface UseServerFnResult<TResult> {
16
17
  error: any;
17
18
  refetch: () => void;
18
19
  }
20
+ export type ConnectorOperation = "getAll" | "getById" | "create" | "update" | "delete";
21
+ export interface RdbConnectorConfig {
22
+ type: "rdb";
23
+ provider: "mysql" | "postgres" | "sqlserver";
24
+ connectionEnvVar: string;
25
+ }
26
+ export interface ApiConnectorAuth {
27
+ type: "apiKey" | "bearer" | "oauth2";
28
+ envVar: string;
29
+ placement?: "query" | "header";
30
+ paramName?: string;
31
+ }
32
+ export interface ApiConnectorConfig {
33
+ type: "api";
34
+ baseUrlEnvVar: string;
35
+ auth?: ApiConnectorAuth;
36
+ }
37
+ export type ConnectorDefinition = RdbConnectorConfig | ApiConnectorConfig;
38
+ export interface RdbModelConnectorConfig {
39
+ connector: string;
40
+ operations: readonly ConnectorOperation[];
41
+ table: string;
42
+ idColumn?: string;
43
+ }
44
+ export interface ApiModelConnectorConfig {
45
+ connector: string;
46
+ operations: readonly ConnectorOperation[];
47
+ endpoints?: Partial<Record<ConnectorOperation, string>>;
48
+ }
49
+ export type ModelConnectorConfig = RdbModelConnectorConfig | ApiModelConnectorConfig;
50
+ export type AuthProvider = "custom-jwt" | "swa" | "external-token" | "swa-custom" | "none";
51
+ export interface CustomJwtConfig {
52
+ userConnector: string;
53
+ userTable: string;
54
+ loginIdColumn: string;
55
+ passwordHashColumn: string;
56
+ rolesColumn: string;
57
+ jwtSecretEnv?: string;
58
+ tokenExpiry?: string;
59
+ }
60
+ export interface SwaAuthConfig {
61
+ allowedProviders?: string[];
62
+ roleSource?: "swa-roles" | "connector";
63
+ roleConnector?: string;
64
+ }
65
+ export interface AuthorizationConfig {
66
+ defaultPolicy?: "authenticated" | "anonymous" | "public" | string;
67
+ policies?: Record<string, AuthorizationPolicy>;
68
+ }
69
+ export interface AuthorizationPolicy {
70
+ schemes: string[];
71
+ roles?: string[];
72
+ }
73
+ export interface AuthSchemeConfig {
74
+ provider: AuthProvider;
75
+ customJwt?: CustomJwtConfig;
76
+ swa?: SwaAuthConfig;
77
+ }
78
+ export interface AuthConfig {
79
+ provider?: AuthProvider;
80
+ schemes?: Record<string, AuthSchemeConfig>;
81
+ customJwt?: CustomJwtConfig;
82
+ swa?: SwaAuthConfig;
83
+ authorization?: AuthorizationConfig;
84
+ }
85
+ export interface ModelAuthPolicy {
86
+ roles?: string[];
87
+ read?: string[] | string;
88
+ write?: string[] | string;
89
+ policy?: string;
90
+ }
91
+ export interface NormalizedAuthConfig extends Omit<AuthConfig, "schemes" | "authorization"> {
92
+ schemes: Record<string, AuthSchemeConfig>;
93
+ authorization: AuthorizationConfig & {
94
+ defaultPolicy: string;
95
+ policies: Record<string, AuthorizationPolicy>;
96
+ };
97
+ }
98
+ export interface AuthPrincipal {
99
+ subject: string;
100
+ scheme: string;
101
+ issuer: string;
102
+ roles: string[];
103
+ claims: Record<string, unknown>;
104
+ /** @deprecated Use subject. */
105
+ userId?: string;
106
+ /** @deprecated Read provider data from claims. */
107
+ userDetails?: string;
108
+ }
19
109
  export interface SwallowKitConfig {
20
110
  database?: {
21
111
  connectionString?: string;
22
112
  databaseName?: string;
23
113
  };
114
+ backend?: {
115
+ language?: BackendLanguage;
116
+ };
24
117
  api?: {
25
118
  endpoint?: string;
26
119
  cors?: {
@@ -28,5 +121,7 @@ export interface SwallowKitConfig {
28
121
  credentials?: boolean;
29
122
  };
30
123
  };
124
+ connectors?: Record<string, ConnectorDefinition>;
125
+ auth?: AuthConfig;
31
126
  }
32
127
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC;AAGpE,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAGD,MAAM,WAAW,iBAAiB,CAAC,OAAO;IACxC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE;QACT,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE;YACL,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;YAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;SACvB,CAAC;KACH,CAAC;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { BackendLanguage } from "../types";
1
2
  /**
2
3
  * Supported package managers
3
4
  */
@@ -48,7 +49,7 @@ export declare function getCommands(pm: PackageManager): PackageManagerCommands;
48
49
  * This is intentionally independent of `npm_config_user_agent` so that
49
50
  * `npx swallowkit init` still creates a pnpm project when pnpm is available.
50
51
  */
51
- export declare function detectFromUserAgent(): PackageManager;
52
+ export declare function detectFromUserAgent(pnpmIsInstalled?: () => boolean): PackageManager;
52
53
  /**
53
54
  * Detect the package manager used in an existing project directory
54
55
  * by checking for lockfiles.
@@ -89,6 +90,8 @@ export declare function getWorkspaceConfig(pm: PackageManager, workspaces: strin
89
90
  * CI/CD setup step for GitHub Actions
90
91
  */
91
92
  export declare function getCiSetupStep(pm: PackageManager): string;
93
+ export declare function getCiInstallCommand(ciPm: PackageManager, projectPm?: PackageManager): string;
94
+ export declare function getSwaAppBuildCommand(ciPm: PackageManager, projectPm?: PackageManager): string;
92
95
  /**
93
96
  * CI/CD setup steps for Azure Pipelines
94
97
  */
@@ -104,5 +107,5 @@ export declare function getFunctionsPrestart(pm: PackageManager): string;
104
107
  /**
105
108
  * Functions:start script for root package.json
106
109
  */
107
- export declare function getFunctionsStartScript(pm: PackageManager): string;
110
+ export declare function getFunctionsStartScript(pm: PackageManager, backendLanguage?: BackendLanguage): string;
108
111
  //# sourceMappingURL=package-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,sFAAsF;IACtF,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,qGAAqG;IACrG,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,cAAc,GAAG,sBAAsB,CAmCtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAcD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAYrE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAEjC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE;IAGrE,oCAAoC;;;;;;;;;;;;EAazC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAOzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CASjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAKzD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAK/D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAKlE"}
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,sFAAsF;IACtF,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,qGAAqG;IACrG,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,cAAc,GAAG,sBAAsB,CAmCtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,GAAE,MAAM,OAAyB,GAAG,cAAc,CAEpG;AAcD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAYrE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAEjC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE;IAGrE,oCAAoC;;;;;;;;;;;;EAazC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CASzD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,GAAE,cAAqB,GAAG,MAAM,CAMlG;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,GAAE,cAAqB,GAAG,MAAM,CAKpG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CASjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAOzD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAK/D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,cAAc,EAClB,eAAe,GAAE,eAA8B,GAC9C,MAAM,CASR"}
@@ -39,6 +39,8 @@ exports.detectFromProject = detectFromProject;
39
39
  exports.spawnArgs = spawnArgs;
40
40
  exports.getWorkspaceConfig = getWorkspaceConfig;
41
41
  exports.getCiSetupStep = getCiSetupStep;
42
+ exports.getCiInstallCommand = getCiInstallCommand;
43
+ exports.getSwaAppBuildCommand = getSwaAppBuildCommand;
42
44
  exports.getAzurePipelinesSetup = getAzurePipelinesSetup;
43
45
  exports.getBuildScript = getBuildScript;
44
46
  exports.getFunctionsPrestart = getFunctionsPrestart;
@@ -95,8 +97,8 @@ function getCommands(pm) {
95
97
  * This is intentionally independent of `npm_config_user_agent` so that
96
98
  * `npx swallowkit init` still creates a pnpm project when pnpm is available.
97
99
  */
98
- function detectFromUserAgent() {
99
- return isPnpmInstalled() ? "pnpm" : "npm";
100
+ function detectFromUserAgent(pnpmIsInstalled = isPnpmInstalled) {
101
+ return pnpmIsInstalled() ? "pnpm" : "npm";
100
102
  }
101
103
  /**
102
104
  * Check whether pnpm is available on the system PATH.
@@ -162,20 +164,35 @@ function getWorkspaceConfig(pm, workspaces) {
162
164
  */
163
165
  function getCiSetupStep(pm) {
164
166
  if (pm === "pnpm") {
165
- return ` - name: Setup pnpm
166
- uses: pnpm/action-setup@v4`;
167
+ return ` - name: Setup pnpm
168
+ uses: pnpm/action-setup@v4
169
+ with:
170
+ version: latest`;
167
171
  }
168
172
  // npm: no extra setup needed (comes with Node.js)
169
173
  return "";
170
174
  }
175
+ function getCiInstallCommand(ciPm, projectPm = ciPm) {
176
+ void projectPm; // Reserved for package-manager-specific CI bridging.
177
+ if (ciPm === "pnpm") {
178
+ return getCommands(ciPm).ci;
179
+ }
180
+ return getCommands(ciPm).ci;
181
+ }
182
+ function getSwaAppBuildCommand(ciPm, projectPm = ciPm) {
183
+ if (ciPm === "pnpm") {
184
+ return "pnpm install --frozen-lockfile && pnpm run build";
185
+ }
186
+ return `${getCiInstallCommand(ciPm, projectPm)} && npm run build`;
187
+ }
171
188
  /**
172
189
  * CI/CD setup steps for Azure Pipelines
173
190
  */
174
191
  function getAzurePipelinesSetup(pm) {
175
192
  if (pm === "pnpm") {
176
- return ` - script: |
177
- corepack enable
178
- corepack prepare pnpm@latest --activate
193
+ return ` - script: |
194
+ corepack enable
195
+ corepack prepare pnpm@latest --activate
179
196
  displayName: 'Setup pnpm'`;
180
197
  }
181
198
  // npm: no extra step needed
@@ -185,10 +202,11 @@ function getAzurePipelinesSetup(pm) {
185
202
  * Build script for generated package.json (depends on workspace command syntax)
186
203
  */
187
204
  function getBuildScript(pm) {
205
+ const copyStandaloneAssets = `node -e "const fs=require('fs');fs.mkdirSync('.next/standalone/.next',{recursive:true});if(fs.existsSync('.next/static'))fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});if(fs.existsSync('public'))fs.cpSync('public','.next/standalone/public',{recursive:true});"`;
188
206
  if (pm === "pnpm") {
189
- return "pnpm run --filter shared build && next build --webpack && cp -r .next/static .next/standalone/.next/ && cp -r public .next/standalone/";
207
+ return `pnpm run --filter shared build && next build --webpack && ${copyStandaloneAssets}`;
190
208
  }
191
- return "npm run --workspace=shared build && next build --webpack && cp -r .next/static .next/standalone/.next/ && cp -r public .next/standalone/";
209
+ return `npm run --workspace=shared build && next build --webpack && ${copyStandaloneAssets}`;
192
210
  }
193
211
  /**
194
212
  * Functions prestart script
@@ -202,10 +220,13 @@ function getFunctionsPrestart(pm) {
202
220
  /**
203
221
  * Functions:start script for root package.json
204
222
  */
205
- function getFunctionsStartScript(pm) {
206
- if (pm === "pnpm") {
207
- return "cd functions && pnpm start";
223
+ function getFunctionsStartScript(pm, backendLanguage = "typescript") {
224
+ if (backendLanguage === "typescript") {
225
+ if (pm === "pnpm") {
226
+ return "cd functions && pnpm start";
227
+ }
228
+ return "cd functions && npm start";
208
229
  }
209
- return "cd functions && npm start";
230
+ return "cd functions && func start";
210
231
  }
211
232
  //# sourceMappingURL=package-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.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,CAgBnB;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,111 @@
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: "only-managed",
73
+ };
74
+ if (process.platform === "win32") {
75
+ env.UV_PYTHON_NO_REGISTRY = "true";
76
+ }
77
+ return env;
78
+ }
79
+ function buildProjectLocalUvInstallerEnv(baseEnv, projectRoot) {
80
+ const uvPaths = getProjectLocalUvPaths(projectRoot);
81
+ return {
82
+ ...buildProjectLocalUvEnv(baseEnv, projectRoot),
83
+ UV_UNMANAGED_INSTALL: uvPaths.localUvInstallDir,
84
+ UV_NO_MODIFY_PATH: "1",
85
+ };
86
+ }
87
+ function getProjectLocalUvInstallerCommand() {
88
+ if (process.platform === "win32") {
89
+ return {
90
+ command: "powershell",
91
+ args: [
92
+ "-NoProfile",
93
+ "-ExecutionPolicy",
94
+ "Bypass",
95
+ "-Command",
96
+ "$ProgressPreference = 'SilentlyContinue'; irm https://astral.sh/uv/install.ps1 | iex",
97
+ ],
98
+ };
99
+ }
100
+ return {
101
+ command: "sh",
102
+ args: ["-c", "curl -LsSf https://astral.sh/uv/install.sh | sh"],
103
+ };
104
+ }
105
+ function buildUvVenvArgs(venvDir, pythonVersion = exports.SWALLOWKIT_PYTHON_VERSION) {
106
+ return ["venv", venvDir, "--python", pythonVersion];
107
+ }
108
+ function buildUvPipInstallArgs(pythonExecutable, requirementsPath) {
109
+ return ["pip", "install", "--python", pythonExecutable, "-r", requirementsPath];
110
+ }
111
+ //# sourceMappingURL=python-uv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-uv.js","sourceRoot":"","sources":["../../src/utils/python-uv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function getSwallowKitVersion(): string;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA,wBAAgB,oBAAoB,IAAI,MAAM,CAS7C"}