@portone/cli 0.0.1-alpha.1
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.md +1 -0
- package/bin/portone.js +2 -0
- package/dist/commands/setup.d.ts +5 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +66 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/steps/check-claude.d.ts +2 -0
- package/dist/steps/check-claude.d.ts.map +1 -0
- package/dist/steps/check-claude.js +15 -0
- package/dist/steps/check-claude.js.map +1 -0
- package/dist/steps/check-git.d.ts +2 -0
- package/dist/steps/check-git.d.ts.map +1 -0
- package/dist/steps/check-git.js +14 -0
- package/dist/steps/check-git.js.map +1 -0
- package/dist/steps/configure-mcp.d.ts +2 -0
- package/dist/steps/configure-mcp.d.ts.map +1 -0
- package/dist/steps/configure-mcp.js +7 -0
- package/dist/steps/configure-mcp.js.map +1 -0
- package/dist/steps/configure-plugin.d.ts +2 -0
- package/dist/steps/configure-plugin.d.ts.map +1 -0
- package/dist/steps/configure-plugin.js +9 -0
- package/dist/steps/configure-plugin.js.map +1 -0
- package/dist/steps/install-claude.d.ts +2 -0
- package/dist/steps/install-claude.d.ts.map +1 -0
- package/dist/steps/install-claude.js +6 -0
- package/dist/steps/install-claude.js.map +1 -0
- package/dist/steps/run-integration.d.ts +2 -0
- package/dist/steps/run-integration.d.ts.map +1 -0
- package/dist/steps/run-integration.js +12 -0
- package/dist/steps/run-integration.js.map +1 -0
- package/dist/utils/prompts.d.ts +3 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +79 -0
- package/dist/utils/prompts.js.map +1 -0
- package/package.json +43 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# portone-cli
|
package/bin/portone.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,iBA2DrD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { confirm } from '@inquirer/prompts';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { checkClaudeInstalled } from '../steps/check-claude.js';
|
|
5
|
+
import { installClaude } from '../steps/install-claude.js';
|
|
6
|
+
import { configurePlugin } from '../steps/configure-plugin.js';
|
|
7
|
+
import { showIntegrationGuide } from '../steps/run-integration.js';
|
|
8
|
+
import { isGitClean } from '../steps/check-git.js';
|
|
9
|
+
export async function setup(options = {}) {
|
|
10
|
+
console.log(chalk.bold('\n๐ PortOne ์ฐ๋ ์ค์ ์ ์์ํฉ๋๋ค\n'));
|
|
11
|
+
// Step 0: Git ์ํ ํ์ธ
|
|
12
|
+
if (!options.allowDirty) {
|
|
13
|
+
const gitSpinner = ora('Git ์ํ ํ์ธ ์ค...').start();
|
|
14
|
+
const clean = await isGitClean();
|
|
15
|
+
if (!clean) {
|
|
16
|
+
gitSpinner.fail('Git์ ์ปค๋ฐ๋์ง ์์ ๋ณ๊ฒฝ์ฌํญ์ด ์์ต๋๋ค');
|
|
17
|
+
console.log(chalk.yellow('\n๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ๊ฑฐ๋ --allow-dirty ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ธ์'));
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
gitSpinner.succeed('Git ์ํ ํ์ธ๋จ');
|
|
21
|
+
}
|
|
22
|
+
// Step 1: Claude Code ์ค์น ํ์ธ
|
|
23
|
+
let spinner = ora('Claude Code ์ค์น ํ์ธ ์ค...').start();
|
|
24
|
+
const isClaudeInstalled = await checkClaudeInstalled();
|
|
25
|
+
if (!isClaudeInstalled) {
|
|
26
|
+
spinner.warn('Claude Code๊ฐ ์ค์น๋์ด ์์ง ์์ต๋๋ค');
|
|
27
|
+
const shouldInstall = await confirm({
|
|
28
|
+
message: 'Claude Code๋ฅผ ์ค์นํ์๊ฒ ์ต๋๊น?',
|
|
29
|
+
default: true
|
|
30
|
+
});
|
|
31
|
+
if (shouldInstall) {
|
|
32
|
+
spinner = ora('Claude Code ์ค์น ์ค...').start();
|
|
33
|
+
try {
|
|
34
|
+
await installClaude();
|
|
35
|
+
spinner.succeed('Claude Code ์ค์น ์๋ฃ');
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
spinner.fail('Claude Code ์ค์น ์คํจ');
|
|
39
|
+
console.log(chalk.yellow('\nClaude Code ์๋ ์ค์น: npm install -g @anthropic-ai/claude-code'));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.log(chalk.yellow('\nClaude Code ์๋ ์ค์น: npm install -g @anthropic-ai/claude-code'));
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
spinner.succeed('Claude Code ์ค์น ํ์ธ๋จ');
|
|
50
|
+
}
|
|
51
|
+
// Step 2: ํ๋ฌ๊ทธ์ธ ์ค์
|
|
52
|
+
spinner = ora('PortOne ํ๋ฌ๊ทธ์ธ ์ค์ ์ค...').start();
|
|
53
|
+
try {
|
|
54
|
+
await configurePlugin(process.cwd());
|
|
55
|
+
spinner.succeed('ํ๋ฌ๊ทธ์ธ ์ค์ ์๋ฃ');
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
spinner.fail('ํ๋ฌ๊ทธ์ธ ์ค์ ์คํจ');
|
|
59
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
// Step 4: ์๋ด ์ถ๋ ฅ
|
|
63
|
+
console.log(chalk.green('\nโ
์ค์ ์ด ์๋ฃ๋์์ต๋๋ค!'));
|
|
64
|
+
showIntegrationGuide();
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { setup } from './commands/setup.js';
|
|
4
|
+
const program = new Command();
|
|
5
|
+
program
|
|
6
|
+
.name('portone')
|
|
7
|
+
.description('PortOne ๊ฒฐ์ /๋ณธ์ธ์ธ์ฆ ์ฐ๋์ ์ํ CLI ๋๊ตฌ')
|
|
8
|
+
.version('0.1.0');
|
|
9
|
+
program
|
|
10
|
+
.command('setup')
|
|
11
|
+
.description('Claude Code์ PortOne MCP ์๋ฒ๋ฅผ ์ค์ ํ๊ณ ์ฐ๋์ ์์ํฉ๋๋ค')
|
|
12
|
+
.option('--allow-dirty', 'git์ด clean ์ํ๊ฐ ์๋์ด๋ ์คํ์ ํ์ฉํฉ๋๋ค')
|
|
13
|
+
.action(setup);
|
|
14
|
+
program.parse();
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC;KAC5C,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,eAAe,EAAE,+BAA+B,CAAC;KACxD,MAAM,CAAC,KAAK,CAAC,CAAC;AAEjB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-claude.d.ts","sourceRoot":"","sources":["../../src/steps/check-claude.ts"],"names":[],"mappings":"AAKA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS7D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
const execAsync = promisify(exec);
|
|
4
|
+
export async function checkClaudeInstalled() {
|
|
5
|
+
try {
|
|
6
|
+
const { stdout } = await execAsync('claude --version');
|
|
7
|
+
console.log(stdout);
|
|
8
|
+
return stdout.includes('Claude Code');
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
console.error(error);
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=check-claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-claude.js","sourceRoot":"","sources":["../../src/steps/check-claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-git.d.ts","sourceRoot":"","sources":["../../src/steps/check-git.ts"],"names":[],"mappings":"AAKA,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAQnD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
const execAsync = promisify(exec);
|
|
4
|
+
export async function isGitClean() {
|
|
5
|
+
try {
|
|
6
|
+
const { stdout } = await execAsync('git status --porcelain');
|
|
7
|
+
return stdout.trim() === '';
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
// git ์ ์ฅ์๊ฐ ์๋ ๊ฒฝ์ฐ ์ฒดํฌ ๊ฑด๋๋
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=check-git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-git.js","sourceRoot":"","sources":["../../src/steps/check-git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-mcp.d.ts","sourceRoot":"","sources":["../../src/steps/configure-mcp.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
const execAsync = promisify(exec);
|
|
4
|
+
export async function configureMcp(projectDir) {
|
|
5
|
+
await execAsync('claude mcp add portone --scope project -- npx -y @portone/mcp-server@latest', { cwd: projectDir });
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=configure-mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-mcp.js","sourceRoot":"","sources":["../../src/steps/configure-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAkB;IACnD,MAAM,SAAS,CACb,6EAA6E,EAC7E,EAAE,GAAG,EAAE,UAAU,EAAE,CACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-plugin.d.ts","sourceRoot":"","sources":["../../src/steps/configure-plugin.ts"],"names":[],"mappings":"AAKA,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
const execAsync = promisify(exec);
|
|
4
|
+
export async function configurePlugin(projectDir) {
|
|
5
|
+
await execAsync('claude plugin marketplace remove portone', { cwd: projectDir }).catch(() => { });
|
|
6
|
+
await execAsync('claude plugin marketplace add portone-io/portone-cli', { cwd: projectDir });
|
|
7
|
+
await execAsync('claude plugin install portone-integration', { cwd: projectDir });
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=configure-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-plugin.js","sourceRoot":"","sources":["../../src/steps/configure-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB;IACtD,MAAM,SAAS,CAAC,0CAA0C,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACjG,MAAM,SAAS,CAAC,sDAAsD,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7F,MAAM,SAAS,CAAC,2CAA2C,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-claude.d.ts","sourceRoot":"","sources":["../../src/steps/install-claude.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAGnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-claude.js","sourceRoot":"","sources":["../../src/steps/install-claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,yBAAyB;IACzB,QAAQ,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-integration.d.ts","sourceRoot":"","sources":["../../src/steps/run-integration.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,IAAI,IAAI,CAU3C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export function showIntegrationGuide() {
|
|
3
|
+
const command = '/portone-integration:start';
|
|
4
|
+
console.log(chalk.cyan('\n๐ ๋ค์ ๋จ๊ณ'));
|
|
5
|
+
console.log(chalk.white('โ'.repeat(40)));
|
|
6
|
+
console.log(chalk.white('\n1. Claude Code๋ฅผ ์คํํ์ธ์:'));
|
|
7
|
+
console.log(chalk.yellow(' $ claude\n'));
|
|
8
|
+
console.log(chalk.white('2. ์๋ ์ฌ๋์ ์ปค๋งจ๋๋ฅผ ์
๋ ฅํ์ธ์:'));
|
|
9
|
+
console.log(chalk.green(` ${command}\n`));
|
|
10
|
+
console.log(chalk.white('โ'.repeat(40)));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=run-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-integration.js","sourceRoot":"","sources":["../../src/steps/run-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,4BAA4B,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAQxE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export function getIntegrationPrompt(options) {
|
|
2
|
+
const { type, version, pg, method } = options;
|
|
3
|
+
if (type === 'payment') {
|
|
4
|
+
return getPaymentPrompt(version, pg, method);
|
|
5
|
+
}
|
|
6
|
+
return getIdentityPrompt(version);
|
|
7
|
+
}
|
|
8
|
+
function getPaymentPrompt(version, pg, method) {
|
|
9
|
+
const versionLabel = version.toUpperCase();
|
|
10
|
+
return `ํฌํธ์ ${versionLabel} ๊ฒฐ์ ์ฐ๋์ ์งํํด์ฃผ์ธ์.
|
|
11
|
+
|
|
12
|
+
${pg ? `PG์ฌ: ${pg}` : ''}
|
|
13
|
+
${method ? `๊ฒฐ์ ์๋จ: ${method}` : ''}
|
|
14
|
+
|
|
15
|
+
## ์ํํ ์์
|
|
16
|
+
|
|
17
|
+
1. **ํ๋ก์ ํธ ๋ถ์**
|
|
18
|
+
- ํ์ฌ ํ๋ก์ ํธ ๊ตฌ์กฐ ํ์
(ํ๋ ์์ํฌ, ์ธ์ด ๋ฑ)
|
|
19
|
+
- package.json ๋๋ ๊ด๋ จ ์ค์ ํ์ผ ํ์ธ
|
|
20
|
+
|
|
21
|
+
2. **ํฌํธ์ ๋ฌธ์ ์ฐธ์กฐ**
|
|
22
|
+
- portone MCP ์๋ฒ์ readPortoneV2FrontendCode, readPortoneV2BackendCode ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ณต์ ์์ ์ฝ๋ ํ์ธ
|
|
23
|
+
- listPortoneDocs, readPortoneDoc ๋๊ตฌ๋ก ํ์ํ ๋ฌธ์ ์ฐธ์กฐ
|
|
24
|
+
|
|
25
|
+
3. **๊ฒฐ์ ์ฐ๋ ์ฝ๋ ์์ฑ**
|
|
26
|
+
- ํ๋ก ํธ์๋: ๊ฒฐ์ ์์ฒญ ํ์ด์ง/์ปดํฌ๋ํธ
|
|
27
|
+
- ๋ฐฑ์๋: ๊ฒฐ์ ๊ฒ์ฆ API ์๋ํฌ์ธํธ
|
|
28
|
+
- ํ๋ก์ ํธ ๊ตฌ์กฐ์ ๋ง๊ฒ ํ์ผ ์์ฑ
|
|
29
|
+
|
|
30
|
+
4. **ํ๊ฒฝ ์ค์ **
|
|
31
|
+
- ํ์ํ npm ํจํค์ง ์ค์น (npm install ์คํ)
|
|
32
|
+
- .env.example ๋๋ ํ๊ฒฝ๋ณ์ ์ค์ ์๋ด
|
|
33
|
+
|
|
34
|
+
5. **ํ
์คํธ ์๋ด**
|
|
35
|
+
- ํ
์คํธ ๋ฐฉ๋ฒ ์ค๋ช
|
|
36
|
+
- ํ
์คํธ์ฉ ์นด๋๋ฒํธ ๋ฑ ์๋ด
|
|
37
|
+
|
|
38
|
+
## ์ฃผ์์ฌํญ
|
|
39
|
+
- API ํค๋ ๋ฐ๋์ ํ๊ฒฝ๋ณ์๋ก ๊ด๋ฆฌ
|
|
40
|
+
- ์๋ฌ ์ฒ๋ฆฌ ํฌํจ
|
|
41
|
+
- ํฌํธ์ ${versionLabel} API ์คํ ์ค์
|
|
42
|
+
- ์ค์ ํ์ผ์ ์์ฑํ๊ณ ์์ ํด์ฃผ์ธ์
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
function getIdentityPrompt(version) {
|
|
46
|
+
const versionLabel = version.toUpperCase();
|
|
47
|
+
return `ํฌํธ์ ${versionLabel} ๋ณธ์ธ์ธ์ฆ ์ฐ๋์ ์งํํด์ฃผ์ธ์.
|
|
48
|
+
|
|
49
|
+
## ์ํํ ์์
|
|
50
|
+
|
|
51
|
+
1. **ํ๋ก์ ํธ ๋ถ์**
|
|
52
|
+
- ํ์ฌ ํ๋ก์ ํธ ๊ตฌ์กฐ ํ์
|
|
53
|
+
- ์ฌ์ฉ ์ค์ธ ํ๋ ์์ํฌ ํ์ธ
|
|
54
|
+
|
|
55
|
+
2. **ํฌํธ์ ๋ฌธ์ ์ฐธ์กฐ**
|
|
56
|
+
- portone MCP ์๋ฒ์ listPortoneDocs, readPortoneDoc ๋๊ตฌ๋ก ๋ณธ์ธ์ธ์ฆ ๊ด๋ จ ๋ฌธ์ ์ฐธ์กฐ
|
|
57
|
+
- ๋ณธ์ธ์ธ์ฆ API ์คํ ํ์ธ
|
|
58
|
+
|
|
59
|
+
3. **๋ณธ์ธ์ธ์ฆ ์ฐ๋ ์ฝ๋ ์์ฑ**
|
|
60
|
+
- ํ๋ก ํธ์๋: ๋ณธ์ธ์ธ์ฆ ์์ฒญ ํ์ด์ง/์ปดํฌ๋ํธ
|
|
61
|
+
- ๋ฐฑ์๋: ๋ณธ์ธ์ธ์ฆ ๊ฒฐ๊ณผ ์กฐํ API
|
|
62
|
+
- ํ๋ก์ ํธ ๊ตฌ์กฐ์ ๋ง๊ฒ ํ์ผ ์์ฑ
|
|
63
|
+
|
|
64
|
+
4. **ํ๊ฒฝ ์ค์ **
|
|
65
|
+
- ํ์ํ npm ํจํค์ง ์ค์น
|
|
66
|
+
- ํ๊ฒฝ๋ณ์ ์ค์ ์๋ด
|
|
67
|
+
|
|
68
|
+
5. **ํ
์คํธ ์๋ด**
|
|
69
|
+
- ํ
์คํธ ํ๊ฒฝ ์ค์ ๋ฐฉ๋ฒ
|
|
70
|
+
- ๋ณธ์ธ์ธ์ฆ ํ
์คํธ ์งํ ๋ฐฉ๋ฒ
|
|
71
|
+
|
|
72
|
+
## ์ฃผ์์ฌํญ
|
|
73
|
+
- API ํค๋ ๋ฐ๋์ ํ๊ฒฝ๋ณ์๋ก ๊ด๋ฆฌ
|
|
74
|
+
- ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๊ณ ๋ ค
|
|
75
|
+
- ํฌํธ์ ${versionLabel} API ์คํ ์ค์
|
|
76
|
+
- ์ค์ ํ์ผ์ ์์ฑํ๊ณ ์์ ํด์ฃผ์ธ์
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,OAA2B;IAC9D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,gBAAgB,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAoB,EAAE,EAAW,EAAE,MAAe;IAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3C,OAAO,OAAO,YAAY;;EAE1B,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;EACtB,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4BzB,YAAY;;CAEnB,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAoB;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3C,OAAO,OAAO,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4BpB,YAAY;;CAEnB,CAAC;AACF,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@portone/cli",
|
|
3
|
+
"version": "0.0.1-alpha.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "PortOne ๊ฒฐ์ /๋ณธ์ธ์ธ์ฆ ์ฐ๋์ ์ํ CLI ๋๊ตฌ (Claude Code ๊ธฐ๋ฐ)",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"bin": {
|
|
9
|
+
"portone": "./bin/portone.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"bin",
|
|
14
|
+
"README.md"
|
|
15
|
+
],
|
|
16
|
+
"keywords": [
|
|
17
|
+
"portone",
|
|
18
|
+
"payment",
|
|
19
|
+
"identity-verification",
|
|
20
|
+
"claude-code",
|
|
21
|
+
"cli"
|
|
22
|
+
],
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@inquirer/prompts": "^8.0.2",
|
|
26
|
+
"chalk": "^5.6.2",
|
|
27
|
+
"commander": "^12.1.0",
|
|
28
|
+
"ora": "^9.0.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/node": "^20.17.6",
|
|
32
|
+
"tsx": "^4.20.6",
|
|
33
|
+
"typescript": "^5.9.3"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=20.0.0"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsc",
|
|
40
|
+
"dev": "tsx src/index.ts",
|
|
41
|
+
"start": "node dist/index.js"
|
|
42
|
+
}
|
|
43
|
+
}
|