@bolta-io/cli 0.0.14 → 0.0.16
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/CHANGELOG.md +12 -0
- package/CLAUDE.md +22 -14
- package/README.md +21 -14
- package/dist/bin/bolta.js +28 -4
- package/dist/bin/bolta.js.map +1 -1
- package/dist/src/client/bolta-client.d.ts +18 -13
- package/dist/src/client/bolta-client.d.ts.map +1 -1
- package/dist/src/client/bolta-client.js +43 -22
- package/dist/src/client/bolta-client.js.map +1 -1
- package/dist/src/commands/certificate/index.d.ts.map +1 -1
- package/dist/src/commands/certificate/index.js +24 -15
- package/dist/src/commands/certificate/index.js.map +1 -1
- package/dist/src/commands/config/index.d.ts.map +1 -1
- package/dist/src/commands/config/index.js +32 -11
- package/dist/src/commands/config/index.js.map +1 -1
- package/dist/src/commands/examples/index.d.ts.map +1 -1
- package/dist/src/commands/examples/index.js +6 -4
- package/dist/src/commands/examples/index.js.map +1 -1
- package/dist/src/commands/guide/index.d.ts.map +1 -1
- package/dist/src/commands/guide/index.js +22 -20
- package/dist/src/commands/guide/index.js.map +1 -1
- package/dist/src/commands/invoice/amend.js +10 -10
- package/dist/src/commands/invoice/amend.js.map +1 -1
- package/dist/src/commands/invoice/issue-request.js +4 -4
- package/dist/src/commands/invoice/issue-request.js.map +1 -1
- package/dist/src/commands/invoice/issue.js +4 -4
- package/dist/src/commands/invoice/issue.js.map +1 -1
- package/dist/src/commands/schema/index.d.ts.map +1 -1
- package/dist/src/commands/schema/index.js +4 -2
- package/dist/src/commands/schema/index.js.map +1 -1
- package/dist/src/commands/{customer → supplier}/create.d.ts +1 -1
- package/dist/src/commands/{customer → supplier}/create.d.ts.map +1 -1
- package/dist/src/commands/{customer → supplier}/create.js +6 -6
- package/dist/src/commands/{customer → supplier}/create.js.map +1 -1
- package/dist/src/commands/{customer → supplier}/get.d.ts +1 -1
- package/dist/src/commands/{customer → supplier}/get.d.ts.map +1 -1
- package/dist/src/commands/{customer → supplier}/get.js +2 -2
- package/dist/src/commands/{customer → supplier}/get.js.map +1 -1
- package/dist/src/commands/supplier/index.d.ts +3 -0
- package/dist/src/commands/supplier/index.d.ts.map +1 -0
- package/dist/src/commands/supplier/index.js +56 -0
- package/dist/src/commands/supplier/index.js.map +1 -0
- package/dist/src/commands/supplier/legacy-customer.d.ts +5 -0
- package/dist/src/commands/supplier/legacy-customer.d.ts.map +1 -0
- package/dist/src/commands/supplier/legacy-customer.js +56 -0
- package/dist/src/commands/supplier/legacy-customer.js.map +1 -0
- package/dist/src/config/config-manager.d.ts +1 -1
- package/dist/src/config/config-manager.d.ts.map +1 -1
- package/dist/src/config/config-manager.js +23 -2
- package/dist/src/config/config-manager.js.map +1 -1
- package/dist/src/types/api.d.ts +20 -2
- package/dist/src/types/api.d.ts.map +1 -1
- package/dist/src/utils/output.d.ts +10 -0
- package/dist/src/utils/output.d.ts.map +1 -1
- package/dist/src/utils/output.js +23 -0
- package/dist/src/utils/output.js.map +1 -1
- package/dist/src/validators/schemas.d.ts +1 -1
- package/dist/src/validators/schemas.d.ts.map +1 -1
- package/dist/src/validators/schemas.js +63 -48
- package/dist/src/validators/schemas.js.map +1 -1
- package/llms.txt +30 -26
- package/package.json +1 -1
- package/dist/src/commands/customer/index.d.ts +0 -3
- package/dist/src/commands/customer/index.d.ts.map +0 -1
- package/dist/src/commands/customer/index.js +0 -29
- package/dist/src/commands/customer/index.js.map +0 -1
|
@@ -5,19 +5,22 @@ import { BoltaAuthError } from '../../utils/errors.js';
|
|
|
5
5
|
export function registerCertificateCommands(program) {
|
|
6
6
|
const cert = program.command('certificate').alias('cert').description('공동인증서 관리');
|
|
7
7
|
cert
|
|
8
|
-
.command('url <
|
|
9
|
-
.description('인증서 등록 URL 조회 (GET /v1/
|
|
8
|
+
.command('url <supplierKey>')
|
|
9
|
+
.description('인증서 등록 URL 조회 (GET /v1/suppliers/{supplierKey}/certificates/url)')
|
|
10
10
|
.addHelpText('after', `
|
|
11
|
+
Note:
|
|
12
|
+
deprecated customerKey(CustomerKey_*)도 당분간 사용할 수 있습니다.
|
|
13
|
+
|
|
11
14
|
Example:
|
|
12
|
-
bolta certificate url
|
|
13
|
-
.action(async (
|
|
15
|
+
bolta certificate url SupplierKey_bf8paz`)
|
|
16
|
+
.action(async (supplierKey, options, command) => {
|
|
14
17
|
try {
|
|
15
18
|
const globalOpts = command.optsWithGlobals();
|
|
16
19
|
const apiKey = resolveApiKey(globalOpts.apiKey);
|
|
17
20
|
if (!apiKey)
|
|
18
21
|
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
19
22
|
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl() });
|
|
20
|
-
const result = await client.getCertificateUrl(
|
|
23
|
+
const result = await client.getCertificateUrl(supplierKey);
|
|
21
24
|
outputSuccess(result);
|
|
22
25
|
}
|
|
23
26
|
catch (err) {
|
|
@@ -25,19 +28,22 @@ Example:
|
|
|
25
28
|
}
|
|
26
29
|
});
|
|
27
30
|
cert
|
|
28
|
-
.command('status <
|
|
29
|
-
.description('인증서 등록 내역 조회 (GET /v1/
|
|
31
|
+
.command('status <supplierKey>')
|
|
32
|
+
.description('인증서 등록 내역 조회 (GET /v1/suppliers/{supplierKey}/certificates)')
|
|
30
33
|
.addHelpText('after', `
|
|
34
|
+
Note:
|
|
35
|
+
deprecated customerKey(CustomerKey_*)도 당분간 사용할 수 있습니다.
|
|
36
|
+
|
|
31
37
|
Example:
|
|
32
|
-
bolta certificate status
|
|
33
|
-
.action(async (
|
|
38
|
+
bolta certificate status SupplierKey_bf8paz`)
|
|
39
|
+
.action(async (supplierKey, options, command) => {
|
|
34
40
|
try {
|
|
35
41
|
const globalOpts = command.optsWithGlobals();
|
|
36
42
|
const apiKey = resolveApiKey(globalOpts.apiKey);
|
|
37
43
|
if (!apiKey)
|
|
38
44
|
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
39
45
|
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl() });
|
|
40
|
-
const result = await client.getCertificateStatus(
|
|
46
|
+
const result = await client.getCertificateStatus(supplierKey);
|
|
41
47
|
outputSuccess(result);
|
|
42
48
|
}
|
|
43
49
|
catch (err) {
|
|
@@ -45,19 +51,22 @@ Example:
|
|
|
45
51
|
}
|
|
46
52
|
});
|
|
47
53
|
cert
|
|
48
|
-
.command('deregister <
|
|
49
|
-
.description('인증서 등록 해제 (DELETE /v1/
|
|
54
|
+
.command('deregister <supplierKey>')
|
|
55
|
+
.description('인증서 등록 해제 (DELETE /v1/suppliers/{supplierKey}/certificates)')
|
|
50
56
|
.addHelpText('after', `
|
|
57
|
+
Note:
|
|
58
|
+
deprecated customerKey(CustomerKey_*)도 당분간 사용할 수 있습니다.
|
|
59
|
+
|
|
51
60
|
Example:
|
|
52
|
-
bolta certificate deregister
|
|
53
|
-
.action(async (
|
|
61
|
+
bolta certificate deregister SupplierKey_bf8paz`)
|
|
62
|
+
.action(async (supplierKey, options, command) => {
|
|
54
63
|
try {
|
|
55
64
|
const globalOpts = command.optsWithGlobals();
|
|
56
65
|
const apiKey = resolveApiKey(globalOpts.apiKey);
|
|
57
66
|
if (!apiKey)
|
|
58
67
|
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
59
68
|
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl() });
|
|
60
|
-
const result = await client.deregisterCertificate(
|
|
69
|
+
const result = await client.deregisterCertificate(supplierKey);
|
|
61
70
|
outputSuccess(result ?? { message: '인증서가 해제되었습니다.' });
|
|
62
71
|
}
|
|
63
72
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/certificate/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAElF,IAAI;SACD,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,kEAAkE,CAAC;SAC/E,WAAW,CAAC,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/certificate/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4F7D"}
|
|
@@ -1,16 +1,29 @@
|
|
|
1
|
-
import { loadConfig, saveConfig, resolveApiKey, resolveBaseUrl, maskApiKey,
|
|
2
|
-
import { outputSuccess, outputError } from '../../utils/output.js';
|
|
1
|
+
import { loadConfig, saveConfig, resolveApiKey, resolveBaseUrl, maskApiKey, resolveSupplierKey } from '../../config/config-manager.js';
|
|
2
|
+
import { outputSuccess, outputError, deprecationWarning } from '../../utils/output.js';
|
|
3
3
|
import { BoltaClient } from '../../client/bolta-client.js';
|
|
4
4
|
import { BoltaError, BoltaApiError } from '../../utils/errors.js';
|
|
5
|
+
function getSupplierKeySource(supplierKey, config) {
|
|
6
|
+
if (!supplierKey)
|
|
7
|
+
return 'none';
|
|
8
|
+
if (process.env.BOLTA_SUPPLIER_KEY)
|
|
9
|
+
return 'env';
|
|
10
|
+
if (config.supplierKey)
|
|
11
|
+
return 'config';
|
|
12
|
+
if (process.env.BOLTA_CUSTOMER_KEY)
|
|
13
|
+
return 'env';
|
|
14
|
+
if (config.customerKey)
|
|
15
|
+
return 'config';
|
|
16
|
+
return 'none';
|
|
17
|
+
}
|
|
5
18
|
export function registerConfigCommands(program) {
|
|
6
19
|
const config = program.command('config').description('CLI 설정 관리');
|
|
7
20
|
config
|
|
8
21
|
.command('set <key> <value>')
|
|
9
|
-
.description('설정값 저장 (api-key,
|
|
22
|
+
.description('설정값 저장 (api-key, supplier-key, base-url)')
|
|
10
23
|
.addHelpText('after', `
|
|
11
24
|
Examples:
|
|
12
25
|
bolta config set api-key test_your_key_here
|
|
13
|
-
bolta config set
|
|
26
|
+
bolta config set supplier-key SupplierKey_abc123
|
|
14
27
|
bolta config set base-url https://xapi.bolta.io/v1`)
|
|
15
28
|
.action(async (key, value) => {
|
|
16
29
|
try {
|
|
@@ -19,14 +32,21 @@ Examples:
|
|
|
19
32
|
case 'api-key':
|
|
20
33
|
current.apiKey = value;
|
|
21
34
|
break;
|
|
35
|
+
case 'supplier-key':
|
|
36
|
+
current.supplierKey = value;
|
|
37
|
+
// 구 필드가 남아있으면 정리
|
|
38
|
+
delete current.customerKey;
|
|
39
|
+
break;
|
|
22
40
|
case 'customer-key':
|
|
23
|
-
|
|
41
|
+
deprecationWarning("config의 'customer-key'는 'supplier-key'로 변경되었습니다.");
|
|
42
|
+
current.supplierKey = value;
|
|
43
|
+
delete current.customerKey;
|
|
24
44
|
break;
|
|
25
45
|
case 'base-url':
|
|
26
46
|
current.baseUrl = value;
|
|
27
47
|
break;
|
|
28
48
|
default:
|
|
29
|
-
throw new BoltaError(`알 수 없는 설정 키: ${key}`, 'CONFIG_ERROR', 'api-key,
|
|
49
|
+
throw new BoltaError(`알 수 없는 설정 키: ${key}`, 'CONFIG_ERROR', 'api-key, supplier-key, base-url 중 하나를 사용하세요.');
|
|
30
50
|
}
|
|
31
51
|
saveConfig(current);
|
|
32
52
|
outputSuccess({ key, message: '설정이 저장되었습니다.' });
|
|
@@ -41,15 +61,16 @@ Examples:
|
|
|
41
61
|
.action(() => {
|
|
42
62
|
try {
|
|
43
63
|
const apiKey = resolveApiKey();
|
|
44
|
-
const
|
|
64
|
+
const supplierKey = resolveSupplierKey();
|
|
45
65
|
const baseUrl = resolveBaseUrl();
|
|
66
|
+
const savedConfig = loadConfig();
|
|
46
67
|
outputSuccess({
|
|
47
68
|
apiKey: apiKey ? maskApiKey(apiKey) : '(미설정)',
|
|
48
|
-
|
|
69
|
+
supplierKey: supplierKey || '(미설정)',
|
|
49
70
|
baseUrl,
|
|
50
71
|
source: {
|
|
51
72
|
apiKey: apiKey ? (process.env.BOLTA_API_KEY ? 'env' : 'config') : 'none',
|
|
52
|
-
|
|
73
|
+
supplierKey: getSupplierKeySource(supplierKey, savedConfig),
|
|
53
74
|
},
|
|
54
75
|
});
|
|
55
76
|
}
|
|
@@ -68,9 +89,9 @@ Examples:
|
|
|
68
89
|
}
|
|
69
90
|
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl() });
|
|
70
91
|
// Try to access a lightweight endpoint to verify auth
|
|
71
|
-
// We use
|
|
92
|
+
// We use getSupplier with a dummy key - a 401 means bad auth, 404 means auth is good
|
|
72
93
|
try {
|
|
73
|
-
await client.
|
|
94
|
+
await client.getSupplier('__test__');
|
|
74
95
|
outputSuccess({ authenticated: true, message: 'API 연결이 정상입니다.' });
|
|
75
96
|
}
|
|
76
97
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACvI,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6KpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6KpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqD9D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { outputSuccess, outputError } from '../../utils/output.js';
|
|
1
|
+
import { outputSuccess, outputError, resolveDeprecatedName } from '../../utils/output.js';
|
|
2
2
|
import { BoltaError } from '../../utils/errors.js';
|
|
3
3
|
function today() {
|
|
4
4
|
return new Date().toISOString().slice(0, 10);
|
|
@@ -7,8 +7,8 @@ function buildExamples() {
|
|
|
7
7
|
const d = today();
|
|
8
8
|
const [year, month] = d.split('-');
|
|
9
9
|
return {
|
|
10
|
-
'
|
|
11
|
-
description: '
|
|
10
|
+
'supplier-create': {
|
|
11
|
+
description: '공급자 생성',
|
|
12
12
|
data: {
|
|
13
13
|
identificationNumber: '1234567890',
|
|
14
14
|
organizationName: '주식회사 테스트',
|
|
@@ -173,7 +173,7 @@ export function registerExamplesCommand(program) {
|
|
|
173
173
|
.description('샘플 JSON 데이터 출력 (AI 에이전트용)')
|
|
174
174
|
.addHelpText('after', `
|
|
175
175
|
Available examples:
|
|
176
|
-
|
|
176
|
+
supplier-create 공급자 생성
|
|
177
177
|
invoice-issue 세금계산서 정발행
|
|
178
178
|
invoice-issue-foreign-supplied 외국인등록번호 공급받는자 세금계산서 정발행
|
|
179
179
|
invoice-issue-request 세금계산서 역발행 요청
|
|
@@ -196,6 +196,8 @@ Examples:
|
|
|
196
196
|
outputSuccess({ availableExamples: list });
|
|
197
197
|
return;
|
|
198
198
|
}
|
|
199
|
+
// 하위호환: 구 예제명 'customer-create' → 'supplier-create'
|
|
200
|
+
commandName = resolveDeprecatedName(commandName, { 'customer-create': 'supplier-create' }, '예제');
|
|
199
201
|
const example = examples[commandName];
|
|
200
202
|
if (!example) {
|
|
201
203
|
const available = Object.keys(examples).join(', ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/examples/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/examples/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/guide/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAiEtD;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/guide/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAiEtD;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoD3D"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { outputSuccess, outputError } from '../../utils/output.js';
|
|
1
|
+
import { outputSuccess, outputError, resolveDeprecatedName } from '../../utils/output.js';
|
|
2
2
|
import { BoltaError } from '../../utils/errors.js';
|
|
3
3
|
function buildGuideTopics() {
|
|
4
4
|
return {
|
|
5
|
-
'
|
|
6
|
-
title: '
|
|
7
|
-
summary: '
|
|
5
|
+
'supplier-key': {
|
|
6
|
+
title: 'Supplier Key 이해하기',
|
|
7
|
+
summary: 'supplierKey는 세금계산서를 발행하는 공급자 본인을 식별하는 키입니다.',
|
|
8
8
|
details: {
|
|
9
9
|
정의: 'Bolta 플랫폼에서 공급자(세금계산서 발행자)를 식별하는 고유 키',
|
|
10
|
-
형식: '
|
|
11
|
-
획득방법: '공급자의 사업자 정보로 bolta
|
|
12
|
-
사용방법: '
|
|
13
|
-
API키와의관계: 'API 키(test_/live_) 단위로 독립 관리. 테스트와 라이브 환경의
|
|
10
|
+
형식: 'SupplierKey_ 접두사 문자열 (예: SupplierKey_bf8paz)',
|
|
11
|
+
획득방법: '공급자의 사업자 정보로 bolta supplier create 호출 → 응답의 supplierKey 필드',
|
|
12
|
+
사용방법: 'BOLTA_SUPPLIER_KEY 환경변수, --supplier-key 플래그, 또는 bolta config set supplier-key',
|
|
13
|
+
API키와의관계: 'API 키(test_/live_) 단위로 독립 관리. 테스트와 라이브 환경의 supplierKey는 서로 다른 값이며 상호 호환되지 않음',
|
|
14
14
|
주의사항: [
|
|
15
|
-
'
|
|
16
|
-
'세금계산서를 받는 거래처(공급받는자)의 정보는
|
|
17
|
-
'
|
|
18
|
-
'test_ 키로 생성한
|
|
15
|
+
'Supplier-Key는 공급자(발행자) 본인의 키입니다',
|
|
16
|
+
'세금계산서를 받는 거래처(공급받는자)의 정보는 Supplier-Key 헤더가 아니라 요청 본문의 supplied 필드에 포함합니다',
|
|
17
|
+
'Supplier-Key에 공급받는자의 키를 잘못 전달하지 않도록 주의하세요',
|
|
18
|
+
'test_ 키로 생성한 supplierKey는 live_ 환경에서 사용할 수 없습니다',
|
|
19
19
|
],
|
|
20
20
|
},
|
|
21
21
|
},
|
|
@@ -39,9 +39,9 @@ function buildGuideTopics() {
|
|
|
39
39
|
steps: [
|
|
40
40
|
{ 순서: 1, 명령어: 'bolta config set api-key <key>', 설명: 'API 키 설정 (test_ 또는 live_ 접두사)' },
|
|
41
41
|
{ 순서: 2, 명령어: 'bolta config test', 설명: 'API 연결 테스트' },
|
|
42
|
-
{ 순서: 3, 명령어: 'bolta
|
|
43
|
-
{ 순서: 4, 명령어: 'bolta config set
|
|
44
|
-
{ 순서: 5, 명령어: 'bolta certificate url <
|
|
42
|
+
{ 순서: 3, 명령어: 'bolta supplier create --data \'{"identificationNumber":"...", ...}\'', 설명: '공급자 사업자 정보로 공급자 등록 → supplierKey 획득' },
|
|
43
|
+
{ 순서: 4, 명령어: 'bolta config set supplier-key <supplierKey>', 설명: '획득한 supplierKey 설정' },
|
|
44
|
+
{ 순서: 5, 명령어: 'bolta certificate url <supplierKey>', 설명: '공동인증서 등록 URL 조회 (정발행 시 필요)' },
|
|
45
45
|
{ 순서: 6, 설명: '포인트 충전 (라이브 키 사용 시). https://developers.bolta.io 개발자센터에서 충전' },
|
|
46
46
|
{ 순서: 7, 명령어: 'bolta invoice issue --data \'<세금계산서 JSON>\'', 설명: '세금계산서 정발행' },
|
|
47
47
|
{ 순서: 8, 명령어: 'bolta invoice get <issuanceKey>', 설명: '발행 결과 확인 (국세청 승인번호 포함)' },
|
|
@@ -54,11 +54,11 @@ function buildGuideTopics() {
|
|
|
54
54
|
details: {
|
|
55
55
|
용어: [
|
|
56
56
|
{ 용어: 'apiKey', 설명: 'Bolta API 인증 키. test_(샌드박스) 또는 live_(프로덕션) 접두사' },
|
|
57
|
-
{ 용어: '
|
|
57
|
+
{ 용어: 'supplierKey', 설명: '공급자(세금계산서 발행자)를 식별하는 Bolta 플랫폼 고유 키. SupplierKey_ 접두사' },
|
|
58
58
|
{ 용어: 'issuanceKey', 설명: '세금계산서 발행 후 반환되는 고유 식별자. 조회/수정 시 사용' },
|
|
59
59
|
{ 용어: 'identificationNumber', 설명: '사업자등록번호 (10자리). 세금계산서의 공급자/공급받는자 식별에 사용' },
|
|
60
|
-
{ 용어: 'supplier (공급자)', 설명: '세금계산서를 발행하는 측.
|
|
61
|
-
{ 용어: 'supplied (공급받는자)', 설명: '세금계산서를 받는 거래처. 별도
|
|
60
|
+
{ 용어: 'supplier (공급자)', 설명: '세금계산서를 발행하는 측. supplierKey와 공동인증서가 필요' },
|
|
61
|
+
{ 용어: 'supplied (공급받는자)', 설명: '세금계산서를 받는 거래처. 별도 supplierKey 불필요, invoice JSON의 supplied 필드에 정보 입력' },
|
|
62
62
|
{ 용어: 'purpose', 설명: 'CLAIM(청구용) 또는 RECEIPT(영수용)' },
|
|
63
63
|
{ 용어: 'ntsTransactionId', 설명: '국세청 승인번호. 발행 완료 후 부여됨' },
|
|
64
64
|
],
|
|
@@ -73,14 +73,14 @@ export function registerGuideCommand(program) {
|
|
|
73
73
|
.description('주요 개념 및 사용법 안내')
|
|
74
74
|
.addHelpText('after', `
|
|
75
75
|
Available topics:
|
|
76
|
-
|
|
76
|
+
supplier-key Supplier Key 이해하기
|
|
77
77
|
payment 요금 안내 및 포인트 충전
|
|
78
78
|
workflow 전자세금계산서 발행 워크플로우
|
|
79
79
|
glossary 용어 정리
|
|
80
80
|
|
|
81
81
|
Examples:
|
|
82
82
|
bolta guide # 사용 가능한 토픽 목록
|
|
83
|
-
bolta guide
|
|
83
|
+
bolta guide supplier-key # Supplier Key 개념 안내
|
|
84
84
|
bolta guide payment # 요금 및 포인트 충전 안내`)
|
|
85
85
|
.action((topicName) => {
|
|
86
86
|
try {
|
|
@@ -94,6 +94,8 @@ Examples:
|
|
|
94
94
|
outputSuccess({ availableTopics: list });
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
|
+
// 하위호환: 구 토픽명 'customer-key' → 'supplier-key'
|
|
98
|
+
topicName = resolveDeprecatedName(topicName, { 'customer-key': 'supplier-key' }, 'guide 토픽');
|
|
97
99
|
const topic = topics[topicName];
|
|
98
100
|
if (!topic) {
|
|
99
101
|
const available = Object.keys(topics).join(', ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/guide/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/guide/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveApiKey,
|
|
1
|
+
import { resolveApiKey, resolveSupplierKey, resolveBaseUrl } from '../../config/config-manager.js';
|
|
2
2
|
import { BoltaClient } from '../../client/bolta-client.js';
|
|
3
3
|
import { resolveInput } from '../../utils/input.js';
|
|
4
4
|
import { outputSuccess, outputError, verbose } from '../../utils/output.js';
|
|
@@ -23,7 +23,7 @@ Example:
|
|
|
23
23
|
const apiKey = resolveApiKey(globalOpts.apiKey);
|
|
24
24
|
if (!apiKey)
|
|
25
25
|
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
26
|
-
const
|
|
26
|
+
const supplierKey = resolveSupplierKey(globalOpts.supplierKey, globalOpts.customerKey);
|
|
27
27
|
let validated;
|
|
28
28
|
try {
|
|
29
29
|
validated = amendTerminationSchema.parse({ date: options.date });
|
|
@@ -43,9 +43,9 @@ Example:
|
|
|
43
43
|
});
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(),
|
|
46
|
+
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(), supplierKey });
|
|
47
47
|
verbose('수정발행 (계약 해제) 요청', { issuanceKey });
|
|
48
|
-
const result = await client.amendTermination(issuanceKey, validated,
|
|
48
|
+
const result = await client.amendTermination(issuanceKey, validated, supplierKey);
|
|
49
49
|
outputSuccess(result);
|
|
50
50
|
}
|
|
51
51
|
catch (err) {
|
|
@@ -75,7 +75,7 @@ Example:
|
|
|
75
75
|
const apiKey = resolveApiKey(globalOpts.apiKey);
|
|
76
76
|
if (!apiKey)
|
|
77
77
|
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
78
|
-
const
|
|
78
|
+
const supplierKey = resolveSupplierKey(globalOpts.supplierKey, globalOpts.customerKey);
|
|
79
79
|
const raw = await resolveInput(options);
|
|
80
80
|
let validated;
|
|
81
81
|
try {
|
|
@@ -96,9 +96,9 @@ Example:
|
|
|
96
96
|
});
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
99
|
-
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(),
|
|
99
|
+
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(), supplierKey });
|
|
100
100
|
verbose('수정발행 (공급가액 변동) 요청', { issuanceKey });
|
|
101
|
-
const result = await client.amendChangeSupplyCost(issuanceKey, validated,
|
|
101
|
+
const result = await client.amendChangeSupplyCost(issuanceKey, validated, supplierKey);
|
|
102
102
|
outputSuccess(result);
|
|
103
103
|
}
|
|
104
104
|
catch (err) {
|
|
@@ -120,7 +120,7 @@ Example:
|
|
|
120
120
|
const apiKey = resolveApiKey(globalOpts.apiKey);
|
|
121
121
|
if (!apiKey)
|
|
122
122
|
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
123
|
-
const
|
|
123
|
+
const supplierKey = resolveSupplierKey(globalOpts.supplierKey, globalOpts.customerKey);
|
|
124
124
|
if (globalOpts.dryRun) {
|
|
125
125
|
outputSuccess({
|
|
126
126
|
dryRun: true,
|
|
@@ -129,9 +129,9 @@ Example:
|
|
|
129
129
|
});
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
|
-
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(),
|
|
132
|
+
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(), supplierKey });
|
|
133
133
|
verbose('수정발행 (착오에 의한 이중발급) 요청', { issuanceKey });
|
|
134
|
-
const result = await client.amendDoubleIssuance(issuanceKey,
|
|
134
|
+
const result = await client.amendDoubleIssuance(issuanceKey, supplierKey);
|
|
135
135
|
outputSuccess(result);
|
|
136
136
|
}
|
|
137
137
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amend.js","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAG/B,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAElE,KAAK;SACF,OAAO,CAAC,2BAA2B,CAAC;SACpC,WAAW,CAAC,yGAAyG,CAAC;SACtH,cAAc,CAAC,eAAe,EAAE,qBAAqB,CAAC;SACtD,WAAW,CAAC,OAAO,EAAE;;;;;qEAK2C,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,OAAyB,EAAE,OAAgB,EAAE,EAAE;QACjF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"amend.js","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveApiKey,
|
|
1
|
+
import { resolveApiKey, resolveSupplierKey, resolveBaseUrl } from '../../config/config-manager.js';
|
|
2
2
|
import { BoltaClient } from '../../client/bolta-client.js';
|
|
3
3
|
import { resolveInput } from '../../utils/input.js';
|
|
4
4
|
import { outputSuccess, outputError, verbose } from '../../utils/output.js';
|
|
@@ -11,8 +11,8 @@ export async function issueRequestAction(options, command) {
|
|
|
11
11
|
const apiKey = resolveApiKey(globalOpts.apiKey);
|
|
12
12
|
if (!apiKey)
|
|
13
13
|
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
14
|
-
const
|
|
15
|
-
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(),
|
|
14
|
+
const supplierKey = resolveSupplierKey(globalOpts.supplierKey, globalOpts.customerKey);
|
|
15
|
+
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(), supplierKey });
|
|
16
16
|
const raw = await resolveInput(options);
|
|
17
17
|
let validated;
|
|
18
18
|
try {
|
|
@@ -31,7 +31,7 @@ export async function issueRequestAction(options, command) {
|
|
|
31
31
|
}
|
|
32
32
|
verbose('세금계산서 역발행 요청');
|
|
33
33
|
const result = await client.issueRequestTaxInvoice(validated, {
|
|
34
|
-
|
|
34
|
+
supplierKey,
|
|
35
35
|
referenceId: options.referenceId,
|
|
36
36
|
});
|
|
37
37
|
outputSuccess(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-request.js","sourceRoot":"","sources":["../../../../src/commands/invoice/issue-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAG/B,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAoD,EACpD,OAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"issue-request.js","sourceRoot":"","sources":["../../../../src/commands/invoice/issue-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAG/B,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAoD,EACpD,OAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,SAAS,CAAC;QACd,IAAI,CAAC;YACH,SAAS,GAAG,kCAAkC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzF,MAAM,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,mCAAmC,EAAE,CAAC,CAAC;YACvG,OAAO;QACT,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,SAAS,EAAE;YAC5D,WAAW;YACX,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveApiKey,
|
|
1
|
+
import { resolveApiKey, resolveSupplierKey, resolveBaseUrl } from '../../config/config-manager.js';
|
|
2
2
|
import { BoltaClient } from '../../client/bolta-client.js';
|
|
3
3
|
import { resolveInput } from '../../utils/input.js';
|
|
4
4
|
import { outputSuccess, outputError, verbose } from '../../utils/output.js';
|
|
@@ -11,8 +11,8 @@ export async function issueAction(options, command) {
|
|
|
11
11
|
const apiKey = resolveApiKey(globalOpts.apiKey);
|
|
12
12
|
if (!apiKey)
|
|
13
13
|
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
14
|
-
const
|
|
15
|
-
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(),
|
|
14
|
+
const supplierKey = resolveSupplierKey(globalOpts.supplierKey, globalOpts.customerKey);
|
|
15
|
+
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(), supplierKey });
|
|
16
16
|
const raw = await resolveInput(options);
|
|
17
17
|
let validated;
|
|
18
18
|
try {
|
|
@@ -31,7 +31,7 @@ export async function issueAction(options, command) {
|
|
|
31
31
|
}
|
|
32
32
|
verbose('세금계산서 정발행 요청');
|
|
33
33
|
const result = await client.issueTaxInvoice(validated, {
|
|
34
|
-
|
|
34
|
+
supplierKey,
|
|
35
35
|
referenceId: options.referenceId,
|
|
36
36
|
});
|
|
37
37
|
outputSuccess(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../../src/commands/invoice/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAG/B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAoD,EACpD,OAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../../src/commands/invoice/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAG/B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAoD,EACpD,OAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,SAAS,CAAC;QACd,IAAI,CAAC;YACH,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzF,MAAM,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAAC,CAAC;YAChG,OAAO;QACT,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;YACrD,WAAW;YACX,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6C5D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { outputSuccess, outputError } from '../../utils/output.js';
|
|
1
|
+
import { outputSuccess, outputError, resolveDeprecatedName } from '../../utils/output.js';
|
|
2
2
|
import { jsonSchemas } from '../../validators/schemas.js';
|
|
3
3
|
import { BoltaError } from '../../utils/errors.js';
|
|
4
4
|
export function registerSchemaCommand(program) {
|
|
@@ -7,7 +7,7 @@ export function registerSchemaCommand(program) {
|
|
|
7
7
|
.description('입력 JSON 스키마 출력 (AI 에이전트용)')
|
|
8
8
|
.addHelpText('after', `
|
|
9
9
|
Available schemas:
|
|
10
|
-
|
|
10
|
+
supplier-create 공급자 생성
|
|
11
11
|
invoice-issue 세금계산서 정발행
|
|
12
12
|
invoice-issue-request 세금계산서 역발행 요청
|
|
13
13
|
amend-termination 수정발행: 계약 해제
|
|
@@ -27,6 +27,8 @@ Examples:
|
|
|
27
27
|
outputSuccess({ availableSchemas: list });
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
|
+
// 하위호환: 구 스키마명 'customer-create' → 'supplier-create'
|
|
31
|
+
commandName = resolveDeprecatedName(commandName, { 'customer-create': 'supplier-create' }, '스키마');
|
|
30
32
|
const schema = jsonSchemas[commandName];
|
|
31
33
|
if (!schema) {
|
|
32
34
|
const available = Object.keys(jsonSchemas).join(', ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/schema/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/schema/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,2BAA2B,CAAC;SACxC,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;qDAW2B,CAAC;SACjD,MAAM,CAAC,CAAC,WAAoB,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACnD,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,gBAAgB,IAAI,EAAE;iBACpC,CAAC,CAAC,CAAC;gBACJ,aAAa,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,qDAAqD;YACrD,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC;YAElG,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,IAAI,UAAU,CAClB,IAAI,WAAW,mBAAmB,EAClC,aAAa,EACb,eAAe,SAAS,EAAE,CAC3B,CAAC;YACJ,CAAC;YAED,aAAa,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import type { DataInputOptions } from '../../types/api.js';
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function createSupplierAction(options: DataInputOptions, command: Command): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=create.d.ts.map
|