swallowkit 1.0.0-beta.6 → 1.0.0-beta.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +86 -177
- package/README.md +86 -178
- package/dist/__tests__/fixtures.d.ts +12 -0
- package/dist/__tests__/fixtures.d.ts.map +1 -1
- package/dist/__tests__/fixtures.js +101 -0
- package/dist/__tests__/fixtures.js.map +1 -1
- package/dist/cli/commands/add-auth.d.ts +15 -0
- package/dist/cli/commands/add-auth.d.ts.map +1 -0
- package/dist/cli/commands/add-auth.js +790 -0
- package/dist/cli/commands/add-auth.js.map +1 -0
- package/dist/cli/commands/add-connector.d.ts +20 -0
- package/dist/cli/commands/add-connector.d.ts.map +1 -0
- package/dist/cli/commands/add-connector.js +163 -0
- package/dist/cli/commands/add-connector.js.map +1 -0
- package/dist/cli/commands/cosmos-worktree-isolation.d.ts +25 -0
- package/dist/cli/commands/cosmos-worktree-isolation.d.ts.map +1 -0
- package/dist/cli/commands/cosmos-worktree-isolation.js +124 -0
- package/dist/cli/commands/cosmos-worktree-isolation.js.map +1 -0
- package/dist/cli/commands/create-model.d.ts +1 -4
- package/dist/cli/commands/create-model.d.ts.map +1 -1
- package/dist/cli/commands/create-model.js +19 -81
- package/dist/cli/commands/create-model.js.map +1 -1
- package/dist/cli/commands/dev-seeds.d.ts +62 -0
- package/dist/cli/commands/dev-seeds.d.ts.map +1 -0
- package/dist/cli/commands/dev-seeds.js +474 -0
- package/dist/cli/commands/dev-seeds.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +38 -0
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +733 -155
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +3 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +78 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +1453 -898
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/scaffold.d.ts +24 -0
- package/dist/cli/commands/scaffold.d.ts.map +1 -1
- package/dist/cli/commands/scaffold.js +473 -90
- package/dist/cli/commands/scaffold.js.map +1 -1
- package/dist/cli/index.d.ts +5 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +333 -55
- package/dist/cli/index.js.map +1 -1
- package/dist/core/config.d.ts +14 -3
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +179 -8
- package/dist/core/config.js.map +1 -1
- package/dist/core/mock/connector-mock-server.d.ts +101 -0
- package/dist/core/mock/connector-mock-server.d.ts.map +1 -0
- package/dist/core/mock/connector-mock-server.js +480 -0
- package/dist/core/mock/connector-mock-server.js.map +1 -0
- package/dist/core/mock/zod-mock-generator.d.ts +14 -0
- package/dist/core/mock/zod-mock-generator.d.ts.map +1 -0
- package/dist/core/mock/zod-mock-generator.js +163 -0
- package/dist/core/mock/zod-mock-generator.js.map +1 -0
- package/dist/core/operations/auth-operations.d.ts +61 -0
- package/dist/core/operations/auth-operations.d.ts.map +1 -0
- package/dist/core/operations/auth-operations.js +272 -0
- package/dist/core/operations/auth-operations.js.map +1 -0
- package/dist/core/operations/create-model.d.ts +15 -0
- package/dist/core/operations/create-model.d.ts.map +1 -0
- package/dist/core/operations/create-model.js +185 -0
- package/dist/core/operations/create-model.js.map +1 -0
- package/dist/core/operations/file-session.d.ts +56 -0
- package/dist/core/operations/file-session.d.ts.map +1 -0
- package/dist/core/operations/file-session.js +203 -0
- package/dist/core/operations/file-session.js.map +1 -0
- package/dist/core/operations/provision-operations.d.ts +52 -0
- package/dist/core/operations/provision-operations.d.ts.map +1 -0
- package/dist/core/operations/provision-operations.js +211 -0
- package/dist/core/operations/provision-operations.js.map +1 -0
- package/dist/core/operations/runtime.d.ts +37 -0
- package/dist/core/operations/runtime.d.ts.map +1 -0
- package/dist/core/operations/runtime.js +248 -0
- package/dist/core/operations/runtime.js.map +1 -0
- package/dist/core/operations/scaffold-apply.d.ts +21 -0
- package/dist/core/operations/scaffold-apply.d.ts.map +1 -0
- package/dist/core/operations/scaffold-apply.js +57 -0
- package/dist/core/operations/scaffold-apply.js.map +1 -0
- package/dist/core/operations/scaffold-machine.d.ts +16 -0
- package/dist/core/operations/scaffold-machine.d.ts.map +1 -0
- package/dist/core/operations/scaffold-machine.js +51 -0
- package/dist/core/operations/scaffold-machine.js.map +1 -0
- package/dist/core/operations/scaffold-plan.d.ts +43 -0
- package/dist/core/operations/scaffold-plan.d.ts.map +1 -0
- package/dist/core/operations/scaffold-plan.js +187 -0
- package/dist/core/operations/scaffold-plan.js.map +1 -0
- package/dist/core/project/agent-instructions.d.ts +29 -0
- package/dist/core/project/agent-instructions.d.ts.map +1 -0
- package/dist/core/project/agent-instructions.js +159 -0
- package/dist/core/project/agent-instructions.js.map +1 -0
- package/dist/core/project/artifacts.d.ts +58 -0
- package/dist/core/project/artifacts.d.ts.map +1 -0
- package/dist/core/project/artifacts.js +179 -0
- package/dist/core/project/artifacts.js.map +1 -0
- package/dist/core/project/boundaries.d.ts +50 -0
- package/dist/core/project/boundaries.d.ts.map +1 -0
- package/dist/core/project/boundaries.js +117 -0
- package/dist/core/project/boundaries.js.map +1 -0
- package/dist/core/project/capabilities.d.ts +58 -0
- package/dist/core/project/capabilities.d.ts.map +1 -0
- package/dist/core/project/capabilities.js +135 -0
- package/dist/core/project/capabilities.js.map +1 -0
- package/dist/core/project/drift.d.ts +29 -0
- package/dist/core/project/drift.d.ts.map +1 -0
- package/dist/core/project/drift.js +188 -0
- package/dist/core/project/drift.js.map +1 -0
- package/dist/core/project/infra.d.ts +49 -0
- package/dist/core/project/infra.d.ts.map +1 -0
- package/dist/core/project/infra.js +167 -0
- package/dist/core/project/infra.js.map +1 -0
- package/dist/core/project/manifest.d.ts +92 -0
- package/dist/core/project/manifest.d.ts.map +1 -0
- package/dist/core/project/manifest.js +321 -0
- package/dist/core/project/manifest.js.map +1 -0
- package/dist/core/project/state.d.ts +15 -0
- package/dist/core/project/state.d.ts.map +1 -0
- package/dist/core/project/state.js +106 -0
- package/dist/core/project/state.js.map +1 -0
- package/dist/core/project/validation.d.ts +20 -0
- package/dist/core/project/validation.d.ts.map +1 -0
- package/dist/core/project/validation.js +274 -0
- package/dist/core/project/validation.js.map +1 -0
- package/dist/core/project/workflows.d.ts +43 -0
- package/dist/core/project/workflows.d.ts.map +1 -0
- package/dist/core/project/workflows.js +299 -0
- package/dist/core/project/workflows.js.map +1 -0
- package/dist/core/scaffold/auth-generator.d.ts +63 -0
- package/dist/core/scaffold/auth-generator.d.ts.map +1 -0
- package/dist/core/scaffold/auth-generator.js +1774 -0
- package/dist/core/scaffold/auth-generator.js.map +1 -0
- package/dist/core/scaffold/connector-functions-generator.d.ts +41 -0
- package/dist/core/scaffold/connector-functions-generator.d.ts.map +1 -0
- package/dist/core/scaffold/connector-functions-generator.js +1029 -0
- package/dist/core/scaffold/connector-functions-generator.js.map +1 -0
- package/dist/core/scaffold/functions-generator.d.ts +7 -1
- package/dist/core/scaffold/functions-generator.d.ts.map +1 -1
- package/dist/core/scaffold/functions-generator.js +771 -69
- package/dist/core/scaffold/functions-generator.js.map +1 -1
- package/dist/core/scaffold/model-parser.d.ts +21 -1
- package/dist/core/scaffold/model-parser.d.ts.map +1 -1
- package/dist/core/scaffold/model-parser.js +243 -43
- package/dist/core/scaffold/model-parser.js.map +1 -1
- package/dist/core/scaffold/native-schema-generator.d.ts +19 -0
- package/dist/core/scaffold/native-schema-generator.d.ts.map +1 -0
- package/dist/core/scaffold/native-schema-generator.js +753 -0
- package/dist/core/scaffold/native-schema-generator.js.map +1 -0
- package/dist/core/scaffold/nextjs-generator.d.ts +8 -0
- package/dist/core/scaffold/nextjs-generator.d.ts.map +1 -1
- package/dist/core/scaffold/nextjs-generator.js +153 -9
- package/dist/core/scaffold/nextjs-generator.js.map +1 -1
- package/dist/core/scaffold/openapi-generator.d.ts +3 -0
- package/dist/core/scaffold/openapi-generator.d.ts.map +1 -0
- package/dist/core/scaffold/openapi-generator.js +190 -0
- package/dist/core/scaffold/openapi-generator.js.map +1 -0
- package/dist/core/scaffold/ui-generator.d.ts +17 -4
- package/dist/core/scaffold/ui-generator.d.ts.map +1 -1
- package/dist/core/scaffold/ui-generator.js +174 -34
- package/dist/core/scaffold/ui-generator.js.map +1 -1
- package/dist/core/verify/index.d.ts +69 -0
- package/dist/core/verify/index.d.ts.map +1 -0
- package/dist/core/verify/index.js +412 -0
- package/dist/core/verify/index.js.map +1 -0
- package/dist/database/base-model.d.ts +3 -3
- package/dist/database/base-model.js +3 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/machine/contracts.d.ts +24 -0
- package/dist/machine/contracts.d.ts.map +1 -0
- package/dist/machine/contracts.js +3 -0
- package/dist/machine/contracts.js.map +1 -0
- package/dist/machine/errors.d.ts +14 -0
- package/dist/machine/errors.d.ts.map +1 -0
- package/dist/machine/errors.js +42 -0
- package/dist/machine/errors.js.map +1 -0
- package/dist/machine/index.d.ts +3 -0
- package/dist/machine/index.d.ts.map +1 -0
- package/dist/machine/index.js +566 -0
- package/dist/machine/index.js.map +1 -0
- package/dist/mcp/index.d.ts +25 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +425 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/types/index.d.ts +109 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/package-manager.d.ts +5 -2
- package/dist/utils/package-manager.d.ts.map +1 -1
- package/dist/utils/package-manager.js +30 -9
- package/dist/utils/package-manager.js.map +1 -1
- package/dist/utils/python-uv.d.ts +21 -0
- package/dist/utils/python-uv.d.ts.map +1 -0
- package/dist/utils/python-uv.js +111 -0
- package/dist/utils/python-uv.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +49 -0
- package/dist/version.js.map +1 -0
- package/package.json +9 -5
- package/src/__tests__/__snapshots__/functions-generator.test.ts.snap +1139 -0
- package/src/__tests__/__snapshots__/nextjs-generator.test.ts.snap +206 -0
- package/src/__tests__/__snapshots__/ui-generator.test.ts.snap +532 -0
- package/src/__tests__/agent-instructions.test.ts +237 -0
- package/src/__tests__/agent-loop-phase34.test.ts +513 -0
- package/src/__tests__/auth.test.ts +770 -0
- package/src/__tests__/bff-swa-auth.test.ts +275 -0
- package/src/__tests__/config.test.ts +295 -0
- package/src/__tests__/connector-functions-generator.test.ts +288 -0
- package/src/__tests__/connector-mock-server.test.ts +439 -0
- package/src/__tests__/connector-model-bff.test.ts +162 -0
- package/src/__tests__/cosmos-worktree-isolation.test.ts +149 -0
- package/src/__tests__/dev-seeds.test.ts +236 -0
- package/src/__tests__/dev.test.ts +296 -0
- package/src/__tests__/file-session.test.ts +98 -0
- package/src/__tests__/fixtures.ts +184 -0
- package/src/__tests__/functions-generator.test.ts +237 -0
- package/src/__tests__/init.test.ts +411 -0
- package/src/__tests__/jest-globals.d.ts +8 -0
- package/src/__tests__/machine.test.ts +371 -0
- package/src/__tests__/mcp.test.ts +253 -0
- package/src/__tests__/model-parser.test.ts +81 -0
- package/src/__tests__/multi-auth.test.ts +160 -0
- package/src/__tests__/nextjs-generator.test.ts +105 -0
- package/src/__tests__/openapi-generator.test.ts +43 -0
- package/src/__tests__/package-manager.test.ts +227 -0
- package/src/__tests__/plan-apply.test.ts +499 -0
- package/src/__tests__/python-uv.test.ts +48 -0
- package/src/__tests__/scaffold.test.ts +302 -0
- package/src/__tests__/string-utils.test.ts +75 -0
- package/src/__tests__/tsconfig.json +15 -0
- package/src/__tests__/ui-generator.test.ts +248 -0
- package/src/__tests__/zod-mock-generator.test.ts +132 -0
- package/src/cli/commands/add-auth.ts +853 -0
- package/src/cli/commands/add-connector.ts +158 -0
- package/src/cli/commands/cosmos-worktree-isolation.ts +130 -0
- package/src/cli/commands/create-model.ts +62 -0
- package/src/cli/commands/dev-seeds.ts +629 -0
- package/src/cli/commands/dev.ts +1252 -0
- package/src/cli/commands/index.ts +9 -0
- package/src/cli/commands/init.ts +3541 -0
- package/src/cli/commands/provision.ts +193 -0
- package/src/cli/commands/scaffold.ts +1081 -0
- package/src/cli/index.ts +350 -0
- package/src/core/config.ts +380 -0
- package/src/core/mock/connector-mock-server.ts +555 -0
- package/src/core/mock/zod-mock-generator.ts +205 -0
- package/src/core/operations/auth-operations.ts +360 -0
- package/src/core/operations/create-model.ts +191 -0
- package/src/core/operations/file-session.ts +222 -0
- package/src/core/operations/provision-operations.ts +297 -0
- package/src/core/operations/runtime.ts +258 -0
- package/src/core/operations/scaffold-apply.ts +106 -0
- package/src/core/operations/scaffold-machine.ts +77 -0
- package/src/core/operations/scaffold-plan.ts +215 -0
- package/src/core/project/agent-instructions.ts +167 -0
- package/src/core/project/agent-templates/AGENTS.md +502 -0
- package/src/core/project/agent-templates/CLAUDE.md +31 -0
- package/src/core/project/agent-templates/azure-functions.instructions.md +22 -0
- package/src/core/project/agent-templates/bff-routes.instructions.md +18 -0
- package/src/core/project/agent-templates/copilot-instructions.md +27 -0
- package/src/core/project/agent-templates/shared-models.instructions.md +72 -0
- package/src/core/project/artifacts.ts +205 -0
- package/src/core/project/boundaries.ts +170 -0
- package/src/core/project/capabilities.ts +193 -0
- package/src/core/project/drift.ts +202 -0
- package/src/core/project/infra.ts +196 -0
- package/src/core/project/manifest.ts +402 -0
- package/src/core/project/state.ts +77 -0
- package/src/core/project/validation.ts +295 -0
- package/src/core/project/workflows.ts +295 -0
- package/src/core/scaffold/auth-generator.ts +1824 -0
- package/src/core/scaffold/connector-functions-generator.ts +1133 -0
- package/src/core/scaffold/functions-generator.ts +972 -0
- package/src/core/scaffold/model-parser.ts +854 -0
- package/src/core/scaffold/native-schema-generator.ts +904 -0
- package/src/core/scaffold/nextjs-generator.ts +382 -0
- package/src/core/scaffold/openapi-generator.ts +212 -0
- package/src/core/scaffold/ui-generator.ts +1100 -0
- package/src/core/verify/index.ts +468 -0
- package/src/database/base-model.ts +184 -0
- package/src/database/client.ts +140 -0
- package/src/database/repository.ts +104 -0
- package/src/database/runtime-check.ts +25 -0
- package/src/index.ts +27 -0
- package/src/machine/contracts.ts +33 -0
- package/src/machine/errors.ts +45 -0
- package/src/machine/index.ts +690 -0
- package/src/mcp/index.ts +423 -0
- package/src/types/index.ts +182 -0
- package/src/utils/package-manager.ts +246 -0
- package/src/utils/python-uv.ts +96 -0
- package/src/version.ts +13 -0
package/README.ja.md
CHANGED
|
@@ -2,104 +2,112 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/swallowkit)
|
|
4
4
|
[](https://www.npmjs.com/package/swallowkit)
|
|
5
|
+
[](https://marketplace.visualstudio.com/items?itemName=himanago.swallowkit-vscode)
|
|
5
6
|
[](./LICENSE)
|
|
6
7
|
|
|
7
8
|
[English](./README.md) | 日本語
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
Next.js と Azure のための、スキーマ駆動アプリケーション開発ツールキットです。
|
|
10
11
|
|
|
11
|
-
SwallowKit
|
|
12
|
+
SwallowKit は、共有された Zod スキーマを中心にして、保守しやすいフルスタックアプリケーションを Azure 上に構築するための scaffolding ツールです。1 つのスキーマ定義から、フロントエンドフォーム、BFF ルート、Azure Functions バックエンド、OpenAPI、インフラ定義、AI エージェント向けのプロジェクトメタデータなどを生成できます。
|
|
12
13
|
|
|
13
|
-
Next.js
|
|
14
|
+
フロントエンド、バックエンド、データベース、バリデーション、API 契約、デプロイ構成がばらばらになりがちな Next.js + Azure アプリケーション開発を、明示的な構成で整理することを目的としています。
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
## 🎯 なぜ SwallowKit か
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
AI はアプリケーションコードをすばやく生成できます。フレームワークは複雑さをうまく隠してくれます。しかし、本番で運用するアプリケーションには、依然として明示的なアーキテクチャが必要です。
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
一般的なフルスタックアプリケーションでは、同じドメインモデルが多くの場所に重複して現れます。
|
|
20
21
|
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
22
|
+
- フロントエンドのフォーム型
|
|
23
|
+
- クライアント側バリデーション
|
|
24
|
+
- BFF のリクエスト・レスポンス型
|
|
25
|
+
- バックエンド DTO
|
|
26
|
+
- API 契約
|
|
27
|
+
- データベースエンティティ
|
|
28
|
+
- シードデータ
|
|
29
|
+
- インフラ・デプロイ構成
|
|
28
30
|
|
|
31
|
+
アプリケーションが大きくなるほど、これらの定義は少しずつずれていきます。SwallowKit は、スキーマを明示的な中心に置き、その周辺に必要なアプリケーション構造を生成することで、このずれを減らします。
|
|
29
32
|
|
|
30
|
-
|
|
33
|
+
**SwallowKit は、すべてを隠蔽するフルスタックフレームワークではありません。生成されたコードを読み、編集し、必要なら置き換えられることを重視した scaffolding ツールです。**
|
|
31
34
|
|
|
32
|
-
|
|
35
|
+
## ✨ 主な機能
|
|
33
36
|
|
|
34
|
-
- **
|
|
35
|
-
- **
|
|
36
|
-
- **
|
|
37
|
-
-
|
|
37
|
+
- **Zod スキーマを中心にした型定義** とバリデーション共有
|
|
38
|
+
- **Next.js、BFF ルート、Azure Functions、UI コンポーネントの CRUD scaffolding**
|
|
39
|
+
- **Bicep による Azure 向けインフラ定義**
|
|
40
|
+
- **複数言語の Azure Functions バックエンド対応**(TypeScript、C#、Python)
|
|
41
|
+
- **ローカル開発支援** とシードデータ
|
|
42
|
+
- **AI / MCP 向けのプロジェクトメタデータ** とコマンド
|
|
43
|
+
- **VS Code 拡張機能**
|
|
38
44
|
|
|
39
|
-
##
|
|
45
|
+
## 🏗️ 想定アーキテクチャ
|
|
40
46
|
|
|
41
|
-
|
|
47
|
+
SwallowKit は、次のような構成のアプリケーションを主な対象にしています。
|
|
42
48
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
- Next.js
|
|
50
|
+
- Azure Static Web Apps
|
|
51
|
+
- Azure Functions
|
|
52
|
+
- Azure Cosmos DB
|
|
53
|
+
- Azure Bicep
|
|
54
|
+
- GitHub Actions または Azure Pipelines
|
|
49
55
|
|
|
50
|
-
|
|
56
|
+
標準構成では、BFF パターンを採用します。
|
|
51
57
|
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
|
|
58
|
+
```
|
|
59
|
+
ブラウザー
|
|
60
|
+
|
|
|
61
|
+
Next.js フロントエンド
|
|
62
|
+
|
|
|
63
|
+
Next.js BFF ルート
|
|
64
|
+
|
|
|
65
|
+
Azure Functions API
|
|
66
|
+
|
|
|
67
|
+
Azure Cosmos DB
|
|
55
68
|
```
|
|
56
69
|
|
|
57
|
-
|
|
58
|
-
|------|-----|------|
|
|
59
|
-
| `--cicd <provider>` | `github`, `azure`, `skip` | CI/CD プロバイダー |
|
|
60
|
-
| `--cosmos-db-mode <mode>` | `freetier`, `serverless` | Cosmos DB 課金モード |
|
|
61
|
-
| `--vnet <option>` | `outbound`, `none` | ネットワークセキュリティ |
|
|
62
|
-
|
|
63
|
-
フラグを省略すると、その項目は対話プロンプトで質問されます。
|
|
70
|
+
BFF レイヤーを置くことで、フロントエンドをシンプルに保ちながら、バックエンドサービス、認証・認可、クラウドリソースとの接続を整理しやすくします。
|
|
64
71
|
|
|
65
|
-
|
|
72
|
+
> **注意**: このプロジェクトは活発に開発中です。将来のバージョンでAPIが変更される可能性があります。
|
|
66
73
|
|
|
67
|
-
|
|
74
|
+
## 📚 ドキュメント
|
|
68
75
|
|
|
69
|
-
|
|
70
|
-
npx swallowkit create-model category todo
|
|
71
|
-
# or
|
|
72
|
-
pnpm dlx swallowkit create-model category todo
|
|
73
|
-
```
|
|
76
|
+
詳しい使い方はドキュメントサイトを参照してください([English](https://himanago.github.io/swallowkit/en/) もあります)。
|
|
74
77
|
|
|
75
|
-
|
|
78
|
+
- **[はじめる](https://himanago.github.io/swallowkit/ja/getting-started)** - 最初のプロジェクトセットアップ
|
|
79
|
+
- **[基本概念](https://himanago.github.io/swallowkit/ja/concepts)** - スキーマ中心のアーキテクチャ
|
|
80
|
+
- **[Scaffold ガイド](https://himanago.github.io/swallowkit/ja/scaffold-guide)** - CRUD コード生成
|
|
81
|
+
- **[ローカル開発](https://himanago.github.io/swallowkit/ja/dev-guide)** - Dev サーバー、seeds、モックコネクタ
|
|
82
|
+
- **[デプロイガイド](https://himanago.github.io/swallowkit/ja/deployment-guide)** - Azure へのデプロイ
|
|
83
|
+
- **[AI / MCP ガイド](https://himanago.github.io/swallowkit/ja/ai-mcp-guide)** - AI エージェント統合
|
|
84
|
+
- **[コーディングエージェントガイド](https://himanago.github.io/swallowkit/ja/coding-agent-guide)** - 開発ライフサイクル、責務境界、外部プロセスとの合成
|
|
85
|
+
- **[認証](https://himanago.github.io/swallowkit/ja/auth-guide)** - 認証と認可
|
|
86
|
+
- **[コネクタ](https://himanago.github.io/swallowkit/ja/connector-guide)** - 外部データソース統合
|
|
76
87
|
|
|
77
|
-
|
|
78
|
-
// shared/models/category.ts
|
|
79
|
-
import { z } from 'zod';
|
|
88
|
+
## 🚀 クイックスタート
|
|
80
89
|
|
|
81
|
-
|
|
82
|
-
id: z.string(),
|
|
83
|
-
name: z.string().min(1).max(50),
|
|
84
|
-
createdAt: z.string().optional(),
|
|
85
|
-
updatedAt: z.string().optional(),
|
|
86
|
-
});
|
|
90
|
+
新しいプロジェクトを作成します。
|
|
87
91
|
|
|
88
|
-
|
|
92
|
+
```bash
|
|
93
|
+
npx swallowkit init my-app
|
|
94
|
+
cd my-app
|
|
89
95
|
```
|
|
90
96
|
|
|
91
|
-
|
|
97
|
+
モデルを作成し、スキーマを編集します。
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx swallowkit create-model todo
|
|
101
|
+
```
|
|
92
102
|
|
|
93
103
|
```typescript
|
|
94
104
|
// shared/models/todo.ts
|
|
95
105
|
import { z } from 'zod';
|
|
96
|
-
import { category } from './category';
|
|
97
106
|
|
|
98
107
|
export const todo = z.object({
|
|
99
108
|
id: z.string(),
|
|
100
109
|
text: z.string().min(1).max(200),
|
|
101
110
|
completed: z.boolean().default(false),
|
|
102
|
-
category: category.optional(), // ネストオブジェクト(categoryId ではない)
|
|
103
111
|
createdAt: z.string().optional(),
|
|
104
112
|
updatedAt: z.string().optional(),
|
|
105
113
|
});
|
|
@@ -107,139 +115,40 @@ export const todo = z.object({
|
|
|
107
115
|
export type Todo = z.infer<typeof todo>;
|
|
108
116
|
```
|
|
109
117
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
### 3. CRUD コード生成
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
npx swallowkit scaffold shared/models/todo.ts
|
|
116
|
-
# or
|
|
117
|
-
pnpm dlx swallowkit scaffold shared/models/todo.ts
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
これで以下が自動生成されます:
|
|
121
|
-
- ✅ Azure Functions (CRUD エンドポイント + Cosmos DB バインディング)
|
|
122
|
-
- ✅ Next.js BFF API Routes (自動検証・リソース名推論)
|
|
123
|
-
- ✅ React コンポーネント (型安全なフォーム)
|
|
124
|
-
|
|
125
|
-
### 4. 開発サーバー起動
|
|
118
|
+
CRUD コードを生成し、開発サーバーを起動します。
|
|
126
119
|
|
|
127
120
|
```bash
|
|
121
|
+
npx swallowkit scaffold todo
|
|
128
122
|
npx swallowkit dev
|
|
129
|
-
# or
|
|
130
|
-
pnpm dlx swallowkit dev
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
- Next.js: http://localhost:3000
|
|
134
|
-
- Azure Functions: http://localhost:7071
|
|
135
|
-
|
|
136
|
-
### 5. フロントエンドから使用
|
|
137
|
-
|
|
138
|
-
```typescript
|
|
139
|
-
import { api } from '@/lib/api/backend';
|
|
140
|
-
import type { Todo } from '@/shared/models/todo';
|
|
141
|
-
|
|
142
|
-
// 全件取得 - BFFエンドポイントを呼び出し
|
|
143
|
-
const todos = await api.get<Todo[]>('/api/todos');
|
|
144
|
-
|
|
145
|
-
// 作成 - バックエンドで検証
|
|
146
|
-
const created = await api.post<Todo>('/api/todos', {
|
|
147
|
-
text: '牛乳を買う',
|
|
148
|
-
completed: false
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
// 更新 - バックエンドで検証
|
|
152
|
-
const updated = await api.put<Todo>('/api/todos/123', { completed: true });
|
|
153
|
-
|
|
154
|
-
// 削除
|
|
155
|
-
await api.delete('/api/todos/123');
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## 🏗️ アーキテクチャ
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
162
|
-
│ Frontend (React) │
|
|
163
|
-
│ - Client Components │
|
|
164
|
-
│ - Server Components (SSR) │
|
|
165
|
-
└──────────────────────────┬───────────────────────────────────┘
|
|
166
|
-
│ api.post('/api/todos', data)
|
|
167
|
-
▼
|
|
168
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
169
|
-
│ BFF Layer (Next.js API Routes) │
|
|
170
|
-
│ - Auto Schema Validation (Zod) │
|
|
171
|
-
│ - Error Handling │
|
|
172
|
-
└──────────────────────────┬───────────────────────────────────┘
|
|
173
|
-
│ HTTP Request
|
|
174
|
-
▼
|
|
175
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
176
|
-
│ Azure Functions (Backend) │
|
|
177
|
-
│ - HTTP Triggers (CRUD) │
|
|
178
|
-
│ - Zod Validation (Re-check) │
|
|
179
|
-
│ - Business Logic │
|
|
180
|
-
│ - Cosmos DB Bindings │
|
|
181
|
-
└──────────────────────────┬───────────────────────────────────┘
|
|
182
|
-
│
|
|
183
|
-
▼
|
|
184
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
185
|
-
│ Azure Cosmos DB │
|
|
186
|
-
│ - NoSQL Database │
|
|
187
|
-
│ - Zod Schema Validation │
|
|
188
|
-
└─────────────────────────────────────────────────────────────┘
|
|
189
123
|
```
|
|
190
124
|
|
|
191
|
-
|
|
192
|
-
- **BFF (Backend For Frontend)**: Next.js API Routes が Azure Functions へのプロキシ
|
|
193
|
-
- **共有スキーマ**: Zod スキーマをフロントエンド・BFF・Functions・DB で共有
|
|
194
|
-
- **型安全性**: Zod から TypeScript 型を自動推論
|
|
195
|
-
- **マネージド ID**: サービス間の安全な接続(接続文字列不要)
|
|
125
|
+
Azure Functions、Next.js BFF ルート、React UI コンポーネントが、共有スキーマから型付きで生成されます。
|
|
196
126
|
|
|
197
|
-
##
|
|
127
|
+
## 🤖 AI エージェントとの協調
|
|
198
128
|
|
|
199
|
-
|
|
200
|
-
- **pnpm**(推奨): `corepack enable` を実行するか、`npm install -g pnpm` でインストール
|
|
201
|
-
- npm でも動作します — SwallowKit はパッケージマネージャーを自動検出します(pnpm がインストール済みなら常に pnpm を優先)
|
|
202
|
-
- Azure Cosmos DB Emulator (ローカル開発用)
|
|
203
|
-
- [公式ドキュメント (vNext 推奨)](https://learn.microsoft.com/ja-jp/azure/cosmos-db/emulator-linux)
|
|
204
|
-
- Windows: [ダウンロード](https://aka.ms/cosmosdb-emulator)
|
|
205
|
-
- Docker: `docker run -p 8081:8081 mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator`
|
|
129
|
+
SwallowKit は、AI コーディングエージェントがプロジェクト構造を理解し、公式の生成コマンドを通じて変更を行い、生成物を検証できるように、機械可読なプロジェクトメタデータとコマンドインターフェースを提供します。
|
|
206
130
|
|
|
207
|
-
|
|
131
|
+
目的は、AI に自由にファイルを書き換えさせることではなく、明示的なアーキテクチャ境界の中で安全に開発を支援させることです。
|
|
208
132
|
|
|
209
|
-
|
|
133
|
+
## 📦 生成されるプロジェクト構成
|
|
210
134
|
|
|
211
|
-
**1. リソースをプロビジョニング (Bicep IaC)**
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
npx swallowkit provision --resource-group my-app-rg --location japaneast
|
|
215
|
-
# or
|
|
216
|
-
pnpm dlx swallowkit provision --resource-group my-app-rg --location japaneast
|
|
217
135
|
```
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
136
|
+
.
|
|
137
|
+
├── app/ # Next.js ページと BFF API ルート
|
|
138
|
+
├── shared/
|
|
139
|
+
│ └── models/ # 共有 Zod スキーマ(単一のソース)
|
|
140
|
+
├── functions/ # Azure Functions バックエンド
|
|
141
|
+
├── infra/ # Bicep テンプレート
|
|
142
|
+
├── lib/ # BFF ヘルパーと scaffold 設定
|
|
143
|
+
└── .swallowkit/ # SwallowKit プロジェクトメタデータ
|
|
225
144
|
```
|
|
226
145
|
|
|
227
|
-
|
|
146
|
+
## 🔗 ステータス
|
|
228
147
|
|
|
229
|
-
|
|
148
|
+
SwallowKit は現在開発中です。API、プロジェクト構成、生成されるコードは変更される可能性があります。
|
|
230
149
|
|
|
231
|
-
|
|
150
|
+
フィードバック、Issue、小さなサンプルユースケースの共有を歓迎します。
|
|
232
151
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
## ライセンス
|
|
152
|
+
## 📄 ライセンス
|
|
236
153
|
|
|
237
154
|
MIT
|
|
238
|
-
|
|
239
|
-
## 🔗 関連リンク
|
|
240
|
-
|
|
241
|
-
- [Azure Static Web Apps](https://learn.microsoft.com/ja-jp/azure/static-web-apps/)
|
|
242
|
-
- [Azure Functions](https://learn.microsoft.com/ja-jp/azure/azure-functions/)
|
|
243
|
-
- [Azure Cosmos DB](https://learn.microsoft.com/ja-jp/azure/cosmos-db/)
|
|
244
|
-
- [Next.js](https://nextjs.org/)
|
|
245
|
-
- [Zod](https://zod.dev/)
|