swallowkit 1.0.0-beta.4 → 1.0.0-beta.5
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 +27 -0
- package/README.md +27 -0
- package/dist/cli/commands/build.d.ts +6 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +177 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/create-model.d.ts.map +1 -1
- package/dist/cli/commands/create-model.js +2 -1
- package/dist/cli/commands/create-model.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts +3 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +147 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +22 -13
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +131 -80
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/scaffold.d.ts.map +1 -1
- package/dist/cli/commands/scaffold.js +3 -2
- package/dist/cli/commands/scaffold.js.map +1 -1
- package/dist/cli/commands/setup.d.ts +6 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +254 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/index.js +14 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +3 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/scaffold/model-parser.d.ts.map +1 -1
- package/dist/core/scaffold/model-parser.js +6 -2
- package/dist/core/scaffold/model-parser.js.map +1 -1
- package/dist/utils/package-manager.d.ts +108 -0
- package/dist/utils/package-manager.d.ts.map +1 -0
- package/dist/utils/package-manager.js +211 -0
- package/dist/utils/package-manager.js.map +1 -0
- package/package.json +3 -2
package/README.ja.md
CHANGED
|
@@ -39,15 +39,34 @@ Zod スキーマから自動的に CRUD 操作を生成する Scaffold 機能を
|
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
41
|
npx swallowkit init my-app
|
|
42
|
+
# or
|
|
43
|
+
pnpm dlx swallowkit init my-app
|
|
42
44
|
cd my-app
|
|
43
45
|
```
|
|
44
46
|
|
|
47
|
+
対話プロンプトで CI/CD プロバイダー、Cosmos DB モード、ネットワーク設定を選択します。フラグで直接指定するとプロンプトをスキップできます:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# 非対話モード(VS Code 拡張機能や自動化に便利)
|
|
51
|
+
npx swallowkit init my-app --cicd github --cosmos-db-mode serverless --vnet outbound
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
| フラグ | 値 | 説明 |
|
|
55
|
+
|------|-----|------|
|
|
56
|
+
| `--cicd <provider>` | `github`, `azure`, `skip` | CI/CD プロバイダー |
|
|
57
|
+
| `--cosmos-db-mode <mode>` | `freetier`, `serverless` | Cosmos DB 課金モード |
|
|
58
|
+
| `--vnet <option>` | `outbound`, `none` | ネットワークセキュリティ |
|
|
59
|
+
|
|
60
|
+
フラグを省略すると、その項目は対話プロンプトで質問されます。
|
|
61
|
+
|
|
45
62
|
### 2. モデルの作成
|
|
46
63
|
|
|
47
64
|
複数のモデルをまとめて作成できます:
|
|
48
65
|
|
|
49
66
|
```bash
|
|
50
67
|
npx swallowkit create-model category todo
|
|
68
|
+
# or
|
|
69
|
+
pnpm dlx swallowkit create-model category todo
|
|
51
70
|
```
|
|
52
71
|
|
|
53
72
|
これにより `shared/models/category.ts` と `shared/models/todo.ts` が生成されます。必要なフィールドを追加してカスタマイズ:
|
|
@@ -91,6 +110,8 @@ export type Todo = z.infer<typeof todo>;
|
|
|
91
110
|
|
|
92
111
|
```bash
|
|
93
112
|
npx swallowkit scaffold shared/models/todo.ts
|
|
113
|
+
# or
|
|
114
|
+
pnpm dlx swallowkit scaffold shared/models/todo.ts
|
|
94
115
|
```
|
|
95
116
|
|
|
96
117
|
これで以下が自動生成されます:
|
|
@@ -102,6 +123,8 @@ npx swallowkit scaffold shared/models/todo.ts
|
|
|
102
123
|
|
|
103
124
|
```bash
|
|
104
125
|
npx swallowkit dev
|
|
126
|
+
# or
|
|
127
|
+
pnpm dlx swallowkit dev
|
|
105
128
|
```
|
|
106
129
|
|
|
107
130
|
- Next.js: http://localhost:3000
|
|
@@ -171,6 +194,8 @@ await api.delete('/api/todos/123');
|
|
|
171
194
|
## 📦 前提条件
|
|
172
195
|
|
|
173
196
|
- Node.js 22.x
|
|
197
|
+
- **pnpm**(推奨): `corepack enable` を実行するか、`npm install -g pnpm` でインストール
|
|
198
|
+
- npm でも動作します — SwallowKit はパッケージマネージャーを自動検出します(pnpm がインストール済みなら常に pnpm を優先)
|
|
174
199
|
- Azure Cosmos DB Emulator (ローカル開発用)
|
|
175
200
|
- [公式ドキュメント (vNext 推奨)](https://learn.microsoft.com/ja-jp/azure/cosmos-db/emulator-linux)
|
|
176
201
|
- Windows: [ダウンロード](https://aka.ms/cosmosdb-emulator)
|
|
@@ -184,6 +209,8 @@ Next.js アプリを standalone モードで Azure Static Web Apps にデプロ
|
|
|
184
209
|
|
|
185
210
|
```bash
|
|
186
211
|
npx swallowkit provision --resource-group my-app-rg --location japaneast
|
|
212
|
+
# or
|
|
213
|
+
pnpm dlx swallowkit provision --resource-group my-app-rg --location japaneast
|
|
187
214
|
```
|
|
188
215
|
|
|
189
216
|
プロビジョニング完了後、CI/CD に必要なシークレット値がターミナルに表示されます。コピーしておいてください。
|
package/README.md
CHANGED
|
@@ -40,15 +40,34 @@ Featuring Scaffold functionality to automatically generate CRUD operations from
|
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
42
|
npx swallowkit init my-app
|
|
43
|
+
# or
|
|
44
|
+
pnpm dlx swallowkit init my-app
|
|
43
45
|
cd my-app
|
|
44
46
|
```
|
|
45
47
|
|
|
48
|
+
The interactive prompts ask for CI/CD provider, Cosmos DB mode, and network settings. You can also specify them as flags to skip prompts entirely:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Non-interactive mode (useful for VS Code extensions or automation)
|
|
52
|
+
npx swallowkit init my-app --cicd github --cosmos-db-mode serverless --vnet outbound
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
| Flag | Values | Description |
|
|
56
|
+
|------|--------|-------------|
|
|
57
|
+
| `--cicd <provider>` | `github`, `azure`, `skip` | CI/CD provider |
|
|
58
|
+
| `--cosmos-db-mode <mode>` | `freetier`, `serverless` | Cosmos DB pricing mode |
|
|
59
|
+
| `--vnet <option>` | `outbound`, `none` | Network security |
|
|
60
|
+
|
|
61
|
+
Omit any flag to be prompted for that value interactively.
|
|
62
|
+
|
|
46
63
|
### 2. Create Models
|
|
47
64
|
|
|
48
65
|
You can create multiple models at once:
|
|
49
66
|
|
|
50
67
|
```bash
|
|
51
68
|
npx swallowkit create-model category todo
|
|
69
|
+
# or
|
|
70
|
+
pnpm dlx swallowkit create-model category todo
|
|
52
71
|
```
|
|
53
72
|
|
|
54
73
|
This generates `shared/models/category.ts` and `shared/models/todo.ts`. Customize them by adding your required fields:
|
|
@@ -92,6 +111,8 @@ export type Todo = z.infer<typeof todo>;
|
|
|
92
111
|
|
|
93
112
|
```bash
|
|
94
113
|
npx swallowkit scaffold shared/models/todo.ts
|
|
114
|
+
# or
|
|
115
|
+
pnpm dlx swallowkit scaffold shared/models/todo.ts
|
|
95
116
|
```
|
|
96
117
|
|
|
97
118
|
This auto-generates:
|
|
@@ -103,6 +124,8 @@ This auto-generates:
|
|
|
103
124
|
|
|
104
125
|
```bash
|
|
105
126
|
npx swallowkit dev
|
|
127
|
+
# or
|
|
128
|
+
pnpm dlx swallowkit dev
|
|
106
129
|
```
|
|
107
130
|
|
|
108
131
|
- Next.js: http://localhost:3000
|
|
@@ -172,6 +195,8 @@ await api.delete('/api/todos/123');
|
|
|
172
195
|
## 📦 Prerequisites
|
|
173
196
|
|
|
174
197
|
- Node.js 22.x
|
|
198
|
+
- **pnpm** (recommended): `corepack enable` or `npm install -g pnpm`
|
|
199
|
+
- npm also works — SwallowKit auto-detects the package manager (if pnpm is installed, it is always preferred)
|
|
175
200
|
- Azure Cosmos DB Emulator (local development)
|
|
176
201
|
- [Official documentation (vNext recommended)](https://learn.microsoft.com/en-us/azure/cosmos-db/emulator-linux)
|
|
177
202
|
- Windows: [Download](https://aka.ms/cosmosdb-emulator)
|
|
@@ -185,6 +210,8 @@ Deploy your Next.js app to Azure Static Web Apps using standalone mode, and conn
|
|
|
185
210
|
|
|
186
211
|
```bash
|
|
187
212
|
npx swallowkit provision --resource-group my-app-rg --location japaneast
|
|
213
|
+
# or
|
|
214
|
+
pnpm dlx swallowkit provision --resource-group my-app-rg --location japaneast
|
|
188
215
|
```
|
|
189
216
|
|
|
190
217
|
After provisioning, the required CI/CD secret values are displayed in the terminal. Copy them.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBA+BvD"}
|
|
@@ -0,0 +1,177 @@
|
|
|
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.buildCommand = buildCommand;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
async function buildCommand(options) {
|
|
40
|
+
console.log("🔨 Building Next.js app for Azure Static Web Apps...");
|
|
41
|
+
const projectRoot = process.cwd();
|
|
42
|
+
const outputDir = path.join(projectRoot, options.output);
|
|
43
|
+
try {
|
|
44
|
+
// 1. Next.js の設定を確認・更新
|
|
45
|
+
console.log("\n⚙️ Configuring Next.js for Azure deployment...");
|
|
46
|
+
await ensureNextJsConfig(projectRoot);
|
|
47
|
+
// 2. Next.js をビルド (standalone モード)
|
|
48
|
+
console.log("\n📦 Building Next.js application...");
|
|
49
|
+
await buildNextJs(projectRoot);
|
|
50
|
+
// 3. ビルド成果物を出力ディレクトリにコピー
|
|
51
|
+
console.log("\n📦 Preparing deployment artifacts...");
|
|
52
|
+
await copyBuildArtifacts(projectRoot, outputDir);
|
|
53
|
+
console.log(`\n✅ Build completed!`);
|
|
54
|
+
console.log(`📁 Output directory: ${outputDir}`);
|
|
55
|
+
console.log(`📁 Standalone output: ${path.join(projectRoot, '.next/standalone')}`);
|
|
56
|
+
console.log("\n📝 Next steps:");
|
|
57
|
+
console.log(" 1. swallowkit deploy (Deploy to Azure Static Web Apps)");
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error("❌ Build failed:", error);
|
|
61
|
+
if (error instanceof Error) {
|
|
62
|
+
console.error("Details:", error.message);
|
|
63
|
+
}
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Next.js の設定を確認・更新 (standalone モード有効化)
|
|
68
|
+
async function ensureNextJsConfig(projectRoot) {
|
|
69
|
+
const nextConfigPath = path.join(projectRoot, 'next.config.js');
|
|
70
|
+
const nextConfigMjsPath = path.join(projectRoot, 'next.config.mjs');
|
|
71
|
+
let configPath = nextConfigPath;
|
|
72
|
+
let isEsm = false;
|
|
73
|
+
if (!fs.existsSync(nextConfigPath) && fs.existsSync(nextConfigMjsPath)) {
|
|
74
|
+
configPath = nextConfigMjsPath;
|
|
75
|
+
isEsm = true;
|
|
76
|
+
}
|
|
77
|
+
// 既存の設定を読み込む
|
|
78
|
+
let configContent = '';
|
|
79
|
+
if (fs.existsSync(configPath)) {
|
|
80
|
+
configContent = fs.readFileSync(configPath, 'utf-8');
|
|
81
|
+
}
|
|
82
|
+
// standalone モードが設定されているか確認
|
|
83
|
+
if (configContent.includes("output: 'standalone'") || configContent.includes('output: "standalone"')) {
|
|
84
|
+
console.log('✅ Next.js standalone mode is already configured');
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// standalone モードを追加
|
|
88
|
+
const newConfig = isEsm
|
|
89
|
+
? `/** @type {import('next').NextConfig} */
|
|
90
|
+
const nextConfig = {
|
|
91
|
+
output: 'standalone',
|
|
92
|
+
// その他の設定はここに追加
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export default nextConfig;
|
|
96
|
+
`
|
|
97
|
+
: `/** @type {import('next').NextConfig} */
|
|
98
|
+
const nextConfig = {
|
|
99
|
+
output: 'standalone',
|
|
100
|
+
// その他の設定はここに追加
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
module.exports = nextConfig;
|
|
104
|
+
`;
|
|
105
|
+
fs.writeFileSync(configPath, newConfig, 'utf-8');
|
|
106
|
+
console.log('✅ Next.js configured for standalone mode');
|
|
107
|
+
}
|
|
108
|
+
async function buildNextJs(projectRoot) {
|
|
109
|
+
const { spawn } = require('child_process');
|
|
110
|
+
return new Promise((resolve, reject) => {
|
|
111
|
+
const build = spawn('npm', ['run', 'build'], {
|
|
112
|
+
cwd: projectRoot,
|
|
113
|
+
stdio: 'inherit',
|
|
114
|
+
shell: true
|
|
115
|
+
});
|
|
116
|
+
build.on('close', (code) => {
|
|
117
|
+
if (code === 0) {
|
|
118
|
+
console.log('✅ Next.js build completed');
|
|
119
|
+
resolve();
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
reject(new Error(`Next.js build failed with code ${code}`));
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
// ビルド成果物を出力ディレクトリにコピー
|
|
128
|
+
async function copyBuildArtifacts(projectRoot, outputDir) {
|
|
129
|
+
if (!fs.existsSync(outputDir)) {
|
|
130
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
131
|
+
}
|
|
132
|
+
const standaloneDir = path.join(projectRoot, '.next/standalone');
|
|
133
|
+
const staticDir = path.join(projectRoot, '.next/static');
|
|
134
|
+
const publicDir = path.join(projectRoot, 'public');
|
|
135
|
+
if (!fs.existsSync(standaloneDir)) {
|
|
136
|
+
console.warn('⚠️ Standalone output not found. Make sure output: "standalone" is set in next.config.js');
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
// standalone ディレクトリの内容をコピー
|
|
140
|
+
console.log('📦 Copying standalone output...');
|
|
141
|
+
const { execSync } = require('child_process');
|
|
142
|
+
try {
|
|
143
|
+
// Windows の場合は xcopy、それ以外は cp を使用
|
|
144
|
+
if (process.platform === 'win32') {
|
|
145
|
+
execSync(`xcopy "${standaloneDir}" "${outputDir}" /E /I /Y /Q`, { stdio: 'inherit' });
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
execSync(`cp -r "${standaloneDir}/." "${outputDir}/"`, { stdio: 'inherit' });
|
|
149
|
+
}
|
|
150
|
+
// .next/static をコピー
|
|
151
|
+
if (fs.existsSync(staticDir)) {
|
|
152
|
+
const targetStaticDir = path.join(outputDir, '.next/static');
|
|
153
|
+
fs.mkdirSync(path.dirname(targetStaticDir), { recursive: true });
|
|
154
|
+
if (process.platform === 'win32') {
|
|
155
|
+
execSync(`xcopy "${staticDir}" "${targetStaticDir}" /E /I /Y /Q`, { stdio: 'inherit' });
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
execSync(`cp -r "${staticDir}" "${targetStaticDir}"`, { stdio: 'inherit' });
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// public ディレクトリをコピー
|
|
162
|
+
if (fs.existsSync(publicDir)) {
|
|
163
|
+
const targetPublicDir = path.join(outputDir, 'public');
|
|
164
|
+
if (process.platform === 'win32') {
|
|
165
|
+
execSync(`xcopy "${publicDir}" "${targetPublicDir}" /E /I /Y /Q`, { stdio: 'inherit' });
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
execSync(`cp -r "${publicDir}" "${targetPublicDir}"`, { stdio: 'inherit' });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
console.log('✅ Build artifacts copied successfully');
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
throw new Error(`Failed to copy build artifacts: ${error}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-model.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/create-model.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"create-model.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/create-model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0CD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,iBA2DnE"}
|
|
@@ -43,6 +43,7 @@ const path = __importStar(require("path"));
|
|
|
43
43
|
const readline = __importStar(require("readline"));
|
|
44
44
|
const model_parser_1 = require("../../core/scaffold/model-parser");
|
|
45
45
|
const config_1 = require("../../core/config");
|
|
46
|
+
const package_manager_1 = require("../../utils/package-manager");
|
|
46
47
|
/**
|
|
47
48
|
* モデルテンプレートを生成
|
|
48
49
|
*/
|
|
@@ -126,7 +127,7 @@ async function createModelCommand(options) {
|
|
|
126
127
|
if (created.length > 0) {
|
|
127
128
|
console.log("\n📝 Next steps:");
|
|
128
129
|
console.log(" 1. Customize the generated model fields in shared/models/");
|
|
129
|
-
console.log(
|
|
130
|
+
console.log(` 2. Run '${(0, package_manager_1.getCommands)((0, package_manager_1.detectFromProject)()).dlx} swallowkit scaffold <model>' to generate CRUD code`);
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-model.js","sourceRoot":"","sources":["../../../src/cli/commands/create-model.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"create-model.js","sourceRoot":"","sources":["../../../src/cli/commands/create-model.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDH,gDA2DC;AAlHD,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAqC;AACrC,mEAAgE;AAChE,8CAA4D;AAC5D,iEAA6E;AAO7E;;GAEG;AACH,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,MAAM,UAAU,GAAG,IAAA,2BAAY,EAAC,SAAS,CAAC,CAAC;IAE3C,OAAO;;KAEJ,UAAU;eACA,UAAU;;;;;;;cAOX,UAAU,qBAAqB,UAAU;;;8BAGzB,UAAU;CACvC,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAA2B;IAClE,iCAAiC;IACjC,IAAA,gCAAuB,EAAC,cAAc,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAE7E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,eAAe,CAAC;IAEvD,iCAAiC;IACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;QACnD,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAA,2BAAY,EAAC,IAAI,CAAC,CAAC;QAEtC,aAAa;QACb,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,eAAe,GAAG,MAAM,eAAe,CAC3C,YAAY,QAAQ,qCAAqC,CAC1D,CAAC;YAEF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,KAAK,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;QACH,CAAC;QAED,aAAa;QACb,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAExB,kCAAkC;QAClC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS;IACT,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,MAAM,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,aAAa,IAAA,6BAAW,EAAC,IAAA,mCAAiB,GAAE,CAAC,CAAC,GAAG,qDAAqD,CAAC,CAAC;IACtH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,SAAiB,EAAE,UAAkB;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,YAAY,UAAU,qBAAqB,SAAS,IAAI,CAAC;IAE5E,gBAAgB;IAChB,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,aAAa,SAgDtB,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deployCommand = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
exports.deployCommand = new commander_1.Command()
|
|
7
|
+
.name('deploy')
|
|
8
|
+
.description('Deploy to Azure Static Web Apps')
|
|
9
|
+
.option('--swa-name <name>', 'Azure Static Web Apps resource name')
|
|
10
|
+
.option('--resource-group <name>', 'Azure resource group name')
|
|
11
|
+
.option('--location <location>', 'Azure region', 'japaneast')
|
|
12
|
+
.option('--skip-build', 'Skip build step', false)
|
|
13
|
+
.action(async (options) => {
|
|
14
|
+
console.log('🚀 Deploying to Azure...\n');
|
|
15
|
+
try {
|
|
16
|
+
const projectRoot = process.cwd();
|
|
17
|
+
// Check if Azure CLI is installed
|
|
18
|
+
await checkAzureCli();
|
|
19
|
+
// Check if logged in to Azure
|
|
20
|
+
await checkAzureLogin();
|
|
21
|
+
// Build if not skipped
|
|
22
|
+
if (!options.skipBuild) {
|
|
23
|
+
console.log('📦 Building project...\n');
|
|
24
|
+
await runBuild(projectRoot);
|
|
25
|
+
}
|
|
26
|
+
// Deploy Static Web Apps
|
|
27
|
+
if (options.swaName && options.resourceGroup) {
|
|
28
|
+
await deploySwa(options, projectRoot);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.log('⚠️ Missing required options: --swa-name and --resource-group');
|
|
32
|
+
console.log('\n📝 Usage:');
|
|
33
|
+
console.log(' swallowkit deploy --swa-name <name> --resource-group <group>');
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
console.log('\n🎉 Deployment completed!');
|
|
37
|
+
console.log('\n📝 Next steps:');
|
|
38
|
+
console.log(' 1. Visit Azure Portal to verify deployment');
|
|
39
|
+
console.log(' 2. Configure environment variables for backend connection');
|
|
40
|
+
console.log(' 3. Check application logs if needed');
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error('❌ Deployment failed:', error);
|
|
44
|
+
if (error instanceof Error) {
|
|
45
|
+
console.error('Details:', error.message);
|
|
46
|
+
}
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
async function checkAzureCli() {
|
|
51
|
+
return new Promise((resolve, reject) => {
|
|
52
|
+
const check = (0, child_process_1.spawn)('az', ['--version'], {
|
|
53
|
+
stdio: 'pipe',
|
|
54
|
+
shell: true
|
|
55
|
+
});
|
|
56
|
+
check.on('close', (code) => {
|
|
57
|
+
if (code === 0) {
|
|
58
|
+
console.log('✅ Azure CLI is installed');
|
|
59
|
+
resolve();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
reject(new Error('Azure CLI is not installed. Please install it from https://aka.ms/installazurecliwindows'));
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async function checkAzureLogin() {
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
const check = (0, child_process_1.spawn)('az', ['account', 'show'], {
|
|
70
|
+
stdio: 'pipe',
|
|
71
|
+
shell: true
|
|
72
|
+
});
|
|
73
|
+
check.on('close', (code) => {
|
|
74
|
+
if (code === 0) {
|
|
75
|
+
console.log('✅ Logged in to Azure');
|
|
76
|
+
resolve();
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
reject(new Error('Not logged in to Azure. Please run: az login'));
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async function runBuild(projectRoot) {
|
|
85
|
+
return new Promise((resolve, reject) => {
|
|
86
|
+
const build = (0, child_process_1.spawn)('npm', ['run', 'build'], {
|
|
87
|
+
cwd: projectRoot,
|
|
88
|
+
stdio: 'inherit',
|
|
89
|
+
shell: true
|
|
90
|
+
});
|
|
91
|
+
build.on('close', (code) => {
|
|
92
|
+
if (code === 0) {
|
|
93
|
+
resolve();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
reject(new Error(`Build failed with code ${code}`));
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async function deploySwa(options, projectRoot) {
|
|
102
|
+
console.log('\n📦 Deploying to Azure Static Web Apps...');
|
|
103
|
+
console.log(` Resource: ${options.swaName}`);
|
|
104
|
+
console.log(` Resource Group: ${options.resourceGroup}\n`);
|
|
105
|
+
// Check if SWA CLI is installed
|
|
106
|
+
const swaCliCheck = (0, child_process_1.spawn)('swa', ['--version'], {
|
|
107
|
+
stdio: 'pipe',
|
|
108
|
+
shell: true
|
|
109
|
+
});
|
|
110
|
+
await new Promise((resolve, reject) => {
|
|
111
|
+
swaCliCheck.on('close', (code) => {
|
|
112
|
+
if (code === 0) {
|
|
113
|
+
resolve();
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
reject(new Error('SWA CLI is not installed. Install it with: npm install -g @azure/static-web-apps-cli'));
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
// Deploy using SWA CLI
|
|
121
|
+
const appLocation = './';
|
|
122
|
+
const outputLocation = 'dist'; // standalone build output
|
|
123
|
+
const deployArgs = [
|
|
124
|
+
'deploy',
|
|
125
|
+
'--app-location', appLocation,
|
|
126
|
+
'--output-location', outputLocation,
|
|
127
|
+
'--resource-group', options.resourceGroup,
|
|
128
|
+
'--app-name', options.swaName,
|
|
129
|
+
];
|
|
130
|
+
return new Promise((resolve, reject) => {
|
|
131
|
+
const deploy = (0, child_process_1.spawn)('swa', deployArgs, {
|
|
132
|
+
cwd: projectRoot,
|
|
133
|
+
stdio: 'inherit',
|
|
134
|
+
shell: true
|
|
135
|
+
});
|
|
136
|
+
deploy.on('close', (code) => {
|
|
137
|
+
if (code === 0) {
|
|
138
|
+
console.log('\n✅ Static Web Apps deployment completed');
|
|
139
|
+
resolve();
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
reject(new Error(`SWA deployment failed with code ${code}`));
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiEpC,eAAO,MAAM,UAAU,SAmBnB,CAAC"}
|