swallowkit 1.0.0-beta.5 → 1.0.0-beta.6

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.
@@ -162,7 +162,7 @@ function getWorkspaceConfig(pm, workspaces) {
162
162
  */
163
163
  function getCiSetupStep(pm) {
164
164
  if (pm === "pnpm") {
165
- return ` - name: Setup pnpm
165
+ return ` - name: Setup pnpm
166
166
  uses: pnpm/action-setup@v4`;
167
167
  }
168
168
  // npm: no extra setup needed (comes with Node.js)
@@ -173,9 +173,9 @@ function getCiSetupStep(pm) {
173
173
  */
174
174
  function getAzurePipelinesSetup(pm) {
175
175
  if (pm === "pnpm") {
176
- return ` - script: |
177
- corepack enable
178
- corepack prepare pnpm@latest --activate
176
+ return ` - script: |
177
+ corepack enable
178
+ corepack prepare pnpm@latest --activate
179
179
  displayName: 'Setup pnpm'`;
180
180
  }
181
181
  // npm: no extra step needed
package/package.json CHANGED
@@ -1,74 +1,80 @@
1
- {
2
- "name": "swallowkit",
3
- "version": "1.0.0-beta.5",
4
- "description": "Type-safe schema-driven development toolkit for Next.js applications on Azure",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "bin": {
8
- "swallowkit": "dist/cli/index.js"
9
- },
10
- "files": [
11
- "dist",
12
- "README.md",
13
- "LICENSE"
14
- ],
15
- "scripts": {
16
- "build": "tsc",
17
- "dev": "tsc --watch",
18
- "test": "jest",
19
- "lint": "eslint src/**/*.ts",
20
- "format": "prettier --write src/**/*.ts"
21
- },
22
- "keywords": [
23
- "azure",
24
- "static-web-apps",
25
- "react",
26
- "hooks",
27
- "typescript",
28
- "framework"
29
- ],
30
- "author": "Takumasa Hirabayashi",
31
- "license": "MIT",
32
- "dependencies": {
33
- "@azure/cosmos": "^4.7.0",
34
- "commander": "^11.0.0",
35
- "cors": "^2.8.5",
36
- "execa": "^8.0.1",
37
- "express": "^4.18.0",
38
- "prompts": "^2.4.2",
39
- "tsx": "^4.7.0",
40
- "zod": "^3.25.76"
41
- },
42
- "devDependencies": {
43
- "@types/cors": "^2.8.0",
44
- "@types/express": "^4.17.0",
45
- "@types/jest": "^29.0.0",
46
- "@types/node": "^20.0.0",
47
- "@types/prompts": "^2.4.9",
48
- "@types/react": "^18.0.0",
49
- "@typescript-eslint/eslint-plugin": "^6.0.0",
50
- "@typescript-eslint/parser": "^6.0.0",
51
- "eslint": "^8.0.0",
52
- "jest": "^29.0.0",
53
- "prettier": "^3.0.0",
54
- "ts-jest": "^29.0.0",
55
- "typescript": "^5.9.2"
56
- },
57
- "peerDependencies": {
58
- "next": ">=14.0.0",
59
- "react": ">=18.0.0",
60
- "react-dom": ">=18.0.0"
61
- },
62
- "directories": {
63
- "doc": "docs"
64
- },
65
- "repository": {
66
- "type": "git",
67
- "url": "git+https://github.com/himanago/swallowkit.git"
68
- },
69
- "bugs": {
70
- "url": "https://github.com/himanago/swallowkit/issues"
71
- },
72
- "homepage": "https://github.com/himanago/swallowkit#readme",
73
- "packageManager": "pnpm@latest"
74
- }
1
+ {
2
+ "name": "swallowkit",
3
+ "version": "1.0.0-beta.6",
4
+ "description": "Type-safe schema-driven development toolkit for Next.js applications on Azure",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "swallowkit": "dist/cli/index.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "README.md",
13
+ "LICENSE"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "dev": "tsc --watch",
18
+ "test": "jest",
19
+ "lint": "eslint src/**/*.ts",
20
+ "format": "prettier --write src/**/*.ts",
21
+ "docs:dev": "vitepress dev docs",
22
+ "docs:build": "vitepress build docs",
23
+ "docs:preview": "vitepress preview docs"
24
+ },
25
+ "keywords": [
26
+ "azure",
27
+ "static-web-apps",
28
+ "react",
29
+ "hooks",
30
+ "typescript",
31
+ "framework"
32
+ ],
33
+ "author": "Takumasa Hirabayashi",
34
+ "license": "MIT",
35
+ "dependencies": {
36
+ "@azure/cosmos": "^4.7.0",
37
+ "commander": "^11.0.0",
38
+ "cors": "^2.8.5",
39
+ "execa": "^8.0.1",
40
+ "express": "^4.18.0",
41
+ "prompts": "^2.4.2",
42
+ "tsx": "^4.7.0",
43
+ "zod": "^3.25.76"
44
+ },
45
+ "devDependencies": {
46
+ "@types/cors": "^2.8.0",
47
+ "@types/express": "^4.17.0",
48
+ "@types/jest": "^29.0.0",
49
+ "@types/node": "^20.0.0",
50
+ "@types/prompts": "^2.4.9",
51
+ "@types/react": "^18.0.0",
52
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
53
+ "@typescript-eslint/parser": "^6.0.0",
54
+ "eslint": "^8.0.0",
55
+ "jest": "^29.0.0",
56
+ "prettier": "^3.0.0",
57
+ "react": "^18.3.1",
58
+ "react-dom": "^18.3.1",
59
+ "ts-jest": "^29.0.0",
60
+ "typescript": "^5.9.2",
61
+ "vitepress": "^1.6.4"
62
+ },
63
+ "peerDependencies": {
64
+ "next": ">=14.0.0",
65
+ "react": ">=18.0.0",
66
+ "react-dom": ">=18.0.0"
67
+ },
68
+ "directories": {
69
+ "doc": "docs"
70
+ },
71
+ "repository": {
72
+ "type": "git",
73
+ "url": "git+https://github.com/himanago/swallowkit.git"
74
+ },
75
+ "bugs": {
76
+ "url": "https://github.com/himanago/swallowkit/issues"
77
+ },
78
+ "homepage": "https://github.com/himanago/swallowkit#readme",
79
+ "packageManager": "pnpm@latest"
80
+ }
@@ -1,6 +0,0 @@
1
- interface BuildOptions {
2
- output: string;
3
- }
4
- export declare function buildCommand(options: BuildOptions): Promise<void>;
5
- export {};
6
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,177 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const deployCommand: Command;
3
- //# sourceMappingURL=deploy.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,147 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,iDAAsC;AAWzB,QAAA,aAAa,GAAG,IAAI,mBAAO,EAAE;KACvC,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;KAClE,MAAM,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;KAC9D,MAAM,CAAC,uBAAuB,EAAE,cAAc,EAAE,WAAW,CAAC;KAC5D,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE,KAAK,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,OAAsB,EAAE,EAAE;IACvC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,kCAAkC;QAClC,MAAM,aAAa,EAAE,CAAC;QAEtB,8BAA8B;QAC9B,MAAM,eAAe,EAAE,CAAC;QAExB,uBAAuB;QACvB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;QAED,yBAAyB;QACzB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;YAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAEvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,KAAK,UAAU,aAAa;IAC1B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;YACvC,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC,CAAC;YAChH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;YAC7C,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,WAAmB;IACzC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAC3C,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAsB,EAAE,WAAmB;IAClE,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;IAE7D,gCAAgC;IAChC,MAAM,WAAW,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE;QAC9C,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,0BAA0B;IAEzD,MAAM,UAAU,GAAG;QACjB,QAAQ;QACR,gBAAgB,EAAE,WAAW;QAC7B,mBAAmB,EAAE,cAAc;QACnC,kBAAkB,EAAE,OAAO,CAAC,aAAc;QAC1C,YAAY,EAAE,OAAO,CAAC,OAAQ;KAC/B,CAAC;IAEF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,UAAU,EAAE;YACtC,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;gBACxD,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +0,0 @@
1
- interface SetupOptions {
2
- yes?: boolean;
3
- }
4
- export declare function setupCommand(options?: SetupOptions): Promise<void>;
5
- export {};
6
- //# sourceMappingURL=setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,iBAiI5D"}