@bolta-io/cli 0.1.1 → 0.2.0
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 +6 -0
- package/CLAUDE.md +16 -22
- package/README.md +13 -19
- package/dist/bin/bolta.js +14 -29
- package/dist/bin/bolta.js.map +1 -1
- package/dist/src/client/bolta-client.d.ts +19 -21
- package/dist/src/client/bolta-client.d.ts.map +1 -1
- package/dist/src/client/bolta-client.js +47 -50
- package/dist/src/client/bolta-client.js.map +1 -1
- package/dist/src/commands/cash-receipt/cancel.js +3 -3
- package/dist/src/commands/cash-receipt/cancel.js.map +1 -1
- package/dist/src/commands/cash-receipt/issue.js +3 -3
- package/dist/src/commands/cash-receipt/issue.js.map +1 -1
- package/dist/src/commands/cash-receipt/status.d.ts.map +1 -1
- package/dist/src/commands/cash-receipt/status.js +3 -8
- package/dist/src/commands/cash-receipt/status.js.map +1 -1
- package/dist/src/commands/certificate/index.d.ts.map +1 -1
- package/dist/src/commands/certificate/index.js +19 -42
- 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 +17 -54
- 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 +8 -9
- 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 +28 -30
- package/dist/src/commands/guide/index.js.map +1 -1
- package/dist/src/commands/invoice/amend.d.ts.map +1 -1
- package/dist/src/commands/invoice/amend.js +9 -30
- package/dist/src/commands/invoice/amend.js.map +1 -1
- package/dist/src/commands/invoice/get.d.ts.map +1 -1
- package/dist/src/commands/invoice/get.js +2 -7
- package/dist/src/commands/invoice/get.js.map +1 -1
- package/dist/src/commands/invoice/index.js +1 -1
- package/dist/src/commands/invoice/issue-request.d.ts.map +1 -1
- package/dist/src/commands/invoice/issue-request.js +3 -15
- package/dist/src/commands/invoice/issue-request.js.map +1 -1
- package/dist/src/commands/invoice/issue.d.ts.map +1 -1
- package/dist/src/commands/invoice/issue.js +3 -15
- package/dist/src/commands/invoice/issue.js.map +1 -1
- package/dist/src/commands/invoice/status.d.ts.map +1 -1
- package/dist/src/commands/invoice/status.js +2 -7
- package/dist/src/commands/invoice/status.js.map +1 -1
- package/dist/src/commands/issuer/create.d.ts +4 -0
- package/dist/src/commands/issuer/create.d.ts.map +1 -0
- package/dist/src/commands/issuer/create.js +24 -0
- package/dist/src/commands/issuer/create.js.map +1 -0
- package/dist/src/commands/issuer/get.d.ts +3 -0
- package/dist/src/commands/issuer/get.d.ts.map +1 -0
- package/dist/src/commands/issuer/get.js +14 -0
- package/dist/src/commands/issuer/get.js.map +1 -0
- package/dist/src/commands/issuer/index.d.ts +3 -0
- package/dist/src/commands/issuer/index.d.ts.map +1 -0
- package/dist/src/commands/issuer/index.js +31 -0
- package/dist/src/commands/issuer/index.js.map +1 -0
- package/dist/src/commands/schema/index.d.ts.map +1 -1
- package/dist/src/commands/schema/index.js +3 -4
- package/dist/src/commands/schema/index.js.map +1 -1
- package/dist/src/commands/supplier/legacy.d.ts +3 -0
- package/dist/src/commands/supplier/legacy.d.ts.map +1 -0
- package/dist/src/commands/supplier/legacy.js +75 -0
- package/dist/src/commands/supplier/legacy.js.map +1 -0
- package/dist/src/config/config-manager.d.ts +7 -9
- package/dist/src/config/config-manager.d.ts.map +1 -1
- package/dist/src/config/config-manager.js +28 -48
- package/dist/src/config/config-manager.js.map +1 -1
- package/dist/src/types/api.d.ts +40 -7
- package/dist/src/types/api.d.ts.map +1 -1
- package/dist/src/utils/client.d.ts +10 -15
- package/dist/src/utils/client.d.ts.map +1 -1
- package/dist/src/utils/client.js +26 -8
- package/dist/src/utils/client.js.map +1 -1
- package/dist/src/utils/legacy-issuer.d.ts +28 -0
- package/dist/src/utils/legacy-issuer.d.ts.map +1 -0
- package/dist/src/utils/legacy-issuer.js +45 -0
- package/dist/src/utils/legacy-issuer.js.map +1 -0
- package/dist/src/utils/output.d.ts +7 -3
- package/dist/src/utils/output.d.ts.map +1 -1
- package/dist/src/utils/output.js +14 -4
- package/dist/src/utils/output.js.map +1 -1
- package/dist/src/{commands/cash-receipt/validation.d.ts → validators/parse.d.ts} +1 -1
- package/dist/src/validators/parse.d.ts.map +1 -0
- package/dist/src/{commands/cash-receipt/validation.js → validators/parse.js} +2 -2
- package/dist/src/validators/parse.js.map +1 -0
- 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 +21 -11
- package/dist/src/validators/schemas.js.map +1 -1
- package/llms.txt +26 -33
- package/package.json +1 -1
- package/dist/src/commands/cash-receipt/validation.d.ts.map +0 -1
- package/dist/src/commands/cash-receipt/validation.js.map +0 -1
- package/dist/src/commands/supplier/create.d.ts +0 -4
- package/dist/src/commands/supplier/create.d.ts.map +0 -1
- package/dist/src/commands/supplier/create.js +0 -40
- package/dist/src/commands/supplier/create.js.map +0 -1
- package/dist/src/commands/supplier/get.d.ts +0 -3
- package/dist/src/commands/supplier/get.d.ts.map +0 -1
- package/dist/src/commands/supplier/get.js +0 -19
- package/dist/src/commands/supplier/get.js.map +0 -1
- package/dist/src/commands/supplier/index.d.ts +0 -3
- package/dist/src/commands/supplier/index.d.ts.map +0 -1
- package/dist/src/commands/supplier/index.js +0 -56
- package/dist/src/commands/supplier/index.js.map +0 -1
- package/dist/src/commands/supplier/legacy-customer.d.ts +0 -5
- package/dist/src/commands/supplier/legacy-customer.d.ts.map +0 -1
- package/dist/src/commands/supplier/legacy-customer.js +0 -56
- package/dist/src/commands/supplier/legacy-customer.js.map +0 -1
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { outputSuccess, outputError,
|
|
1
|
+
import { outputSuccess, outputError, resolveLegacyIssuerName } 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
|
+
issuer: {
|
|
6
|
+
title: '발급자 이해하기',
|
|
7
|
+
summary: '발급자는 세금계산서나 현금영수증 발행에 사용하는 인증서의 소유자입니다.',
|
|
8
8
|
details: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
등록방법: '발급할 사업자 정보로 bolta issuer create 호출 → 응답의 issuerId 저장',
|
|
10
|
+
관리방법: 'issuerId는 발급자 조회와 인증서 등록·조회·해제에만 사용',
|
|
11
|
+
발행방법: 'API 키로 인증하고 요청 본문의 사업자등록번호로 발급자를 선택',
|
|
12
|
+
발행주체판별: {
|
|
13
|
+
일반정발행과역발행: 'supplier.identificationNumber',
|
|
14
|
+
현금영수증: 'issuer.businessRegistrationNumber',
|
|
15
|
+
},
|
|
14
16
|
주의사항: [
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
'
|
|
18
|
-
'Supplier-Key에 공급받는자의 키를 잘못 전달하지 않도록 주의하세요',
|
|
19
|
-
'test_ 키로 생성한 supplierKey는 live_ 환경에서 사용할 수 없습니다',
|
|
17
|
+
'issuerId는 발행 요청 본문에 넣지 않습니다',
|
|
18
|
+
'일반 정발행과 역발행에서는 supplier.identificationNumber를 정확히 입력하세요',
|
|
19
|
+
'현금영수증에서는 issuer.businessRegistrationNumber를 정확히 입력하세요',
|
|
20
20
|
],
|
|
21
21
|
},
|
|
22
22
|
},
|
|
@@ -40,12 +40,11 @@ function buildGuideTopics() {
|
|
|
40
40
|
steps: [
|
|
41
41
|
{ 순서: 1, 명령어: 'bolta config set api-key <key>', 설명: 'API 키 설정 (test_ 또는 live_ 접두사)' },
|
|
42
42
|
{ 순서: 2, 명령어: 'bolta config test', 설명: 'API 연결 테스트' },
|
|
43
|
-
{ 순서: 3, 명령어: 'bolta
|
|
44
|
-
{ 순서: 4, 명령어: 'bolta
|
|
45
|
-
{ 순서: 5,
|
|
46
|
-
{ 순서: 6,
|
|
47
|
-
{ 순서: 7, 명령어: 'bolta invoice
|
|
48
|
-
{ 순서: 8, 명령어: 'bolta invoice get <issuanceKey>', 설명: '발행 결과 확인 (국세청 승인번호 포함)' },
|
|
43
|
+
{ 순서: 3, 명령어: 'bolta issuer create --data \'{"identificationNumber":"...", ...}\'', 설명: '발급자 등록 → issuerId 획득' },
|
|
44
|
+
{ 순서: 4, 명령어: 'bolta certificate url <issuerId>', 설명: '공동인증서 등록 URL 조회 (정발행 시 필요)' },
|
|
45
|
+
{ 순서: 5, 설명: '포인트 충전 (라이브 키 사용 시). https://developers.bolta.io 개발자센터에서 충전' },
|
|
46
|
+
{ 순서: 6, 명령어: 'bolta invoice issue --data \'<세금계산서 JSON>\'', 설명: '세금계산서 정발행' },
|
|
47
|
+
{ 순서: 7, 명령어: 'bolta invoice get <issuanceKey>', 설명: '발행 결과 확인 (국세청 승인번호 포함)' },
|
|
49
48
|
],
|
|
50
49
|
},
|
|
51
50
|
},
|
|
@@ -54,9 +53,9 @@ function buildGuideTopics() {
|
|
|
54
53
|
summary: '현금영수증 발행, 상태 조회, 전액 취소 순서를 안내합니다.',
|
|
55
54
|
details: {
|
|
56
55
|
사전준비: [
|
|
57
|
-
'API
|
|
58
|
-
'
|
|
59
|
-
'issuer.businessRegistrationNumber
|
|
56
|
+
'API 키를 설정하세요',
|
|
57
|
+
'현금영수증 발급자를 등록하고 인증서를 등록하세요',
|
|
58
|
+
'issuer.businessRegistrationNumber에는 등록한 발급자의 사업자등록번호를 입력하세요',
|
|
60
59
|
],
|
|
61
60
|
steps: [
|
|
62
61
|
{
|
|
@@ -99,11 +98,11 @@ function buildGuideTopics() {
|
|
|
99
98
|
details: {
|
|
100
99
|
용어: [
|
|
101
100
|
{ 용어: 'apiKey', 설명: 'Bolta API 인증 키. test_(샌드박스) 또는 live_(프로덕션) 접두사' },
|
|
102
|
-
{ 용어: '
|
|
101
|
+
{ 용어: 'issuerId', 설명: '등록한 발급자를 식별하는 값. 발급자 조회와 인증서 관리에 사용' },
|
|
103
102
|
{ 용어: 'issuanceKey', 설명: '세금계산서나 현금영수증 요청 후 반환되는 고유 식별자. 조회·수정·취소 시 사용' },
|
|
104
103
|
{ 용어: 'identificationNumber', 설명: '사업자등록번호 (10자리). 세금계산서의 공급자/공급받는자 식별에 사용' },
|
|
105
|
-
{ 용어: 'supplier (공급자)', 설명: '
|
|
106
|
-
{ 용어: 'supplied (공급받는자)', 설명: '세금계산서를 받는 거래처.
|
|
104
|
+
{ 용어: 'supplier (공급자)', 설명: '세금계산서에서 재화나 용역을 공급하는 측. invoice JSON의 supplier 필드' },
|
|
105
|
+
{ 용어: 'supplied (공급받는자)', 설명: '세금계산서를 받는 거래처. invoice JSON의 supplied 필드' },
|
|
107
106
|
{ 용어: 'purpose', 설명: 'CLAIM(청구용) 또는 RECEIPT(영수용)' },
|
|
108
107
|
{ 용어: 'ntsTransactionId', 설명: '국세청 승인번호. 발행 완료 후 부여됨' },
|
|
109
108
|
],
|
|
@@ -118,7 +117,7 @@ export function registerGuideCommand(program) {
|
|
|
118
117
|
.description('주요 개념 및 사용법 안내')
|
|
119
118
|
.addHelpText('after', `
|
|
120
119
|
Available topics:
|
|
121
|
-
|
|
120
|
+
issuer 발급자 이해하기
|
|
122
121
|
payment 요금 안내 및 포인트 충전
|
|
123
122
|
workflow 전자세금계산서 발행 워크플로우
|
|
124
123
|
cash-receipt 현금영수증 발행 워크플로우
|
|
@@ -126,7 +125,7 @@ Available topics:
|
|
|
126
125
|
|
|
127
126
|
Examples:
|
|
128
127
|
bolta guide # 사용 가능한 토픽 목록
|
|
129
|
-
bolta guide
|
|
128
|
+
bolta guide issuer # 발급자 개념 안내
|
|
130
129
|
bolta guide payment # 요금 및 포인트 충전 안내`)
|
|
131
130
|
.action((topicName) => {
|
|
132
131
|
try {
|
|
@@ -140,8 +139,7 @@ Examples:
|
|
|
140
139
|
outputSuccess({ availableTopics: list });
|
|
141
140
|
return;
|
|
142
141
|
}
|
|
143
|
-
|
|
144
|
-
topicName = resolveDeprecatedName(topicName, { 'customer-key': 'supplier-key' }, 'guide 토픽');
|
|
142
|
+
topicName = resolveLegacyIssuerName(topicName, { 'supplier-key': 'issuer', 'customer-key': 'issuer' }, 'guide 토픽');
|
|
145
143
|
const topic = topics[topicName];
|
|
146
144
|
if (!topic) {
|
|
147
145
|
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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/guide/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amend.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"amend.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G5D"}
|
|
@@ -2,8 +2,7 @@ import { createClient } from '../../utils/client.js';
|
|
|
2
2
|
import { resolveInput } from '../../utils/input.js';
|
|
3
3
|
import { outputSuccess, outputError, verbose } from '../../utils/output.js';
|
|
4
4
|
import { amendTerminationSchema, amendChangeSupplyCostSchema } from '../../validators/schemas.js';
|
|
5
|
-
import {
|
|
6
|
-
import { ZodError } from 'zod';
|
|
5
|
+
import { parseOrThrow } from '../../validators/parse.js';
|
|
7
6
|
export function registerAmendCommands(invoice) {
|
|
8
7
|
const amend = invoice.command('amend').description('세금계산서 수정 발행');
|
|
9
8
|
amend
|
|
@@ -19,17 +18,7 @@ Example:
|
|
|
19
18
|
.action(async (issuanceKey, options, command) => {
|
|
20
19
|
try {
|
|
21
20
|
const globalOpts = command.optsWithGlobals();
|
|
22
|
-
|
|
23
|
-
try {
|
|
24
|
-
validated = amendTerminationSchema.parse({ date: options.date });
|
|
25
|
-
}
|
|
26
|
-
catch (err) {
|
|
27
|
-
if (err instanceof ZodError) {
|
|
28
|
-
const details = Object.fromEntries(err.errors.map((e) => [e.path.join('.'), e.message]));
|
|
29
|
-
throw new BoltaValidationError('입력 데이터가 유효하지 않습니다.', details);
|
|
30
|
-
}
|
|
31
|
-
throw err;
|
|
32
|
-
}
|
|
21
|
+
const validated = parseOrThrow(amendTerminationSchema, { date: options.date });
|
|
33
22
|
if (globalOpts.dryRun) {
|
|
34
23
|
outputSuccess({
|
|
35
24
|
dryRun: true,
|
|
@@ -39,8 +28,8 @@ Example:
|
|
|
39
28
|
return;
|
|
40
29
|
}
|
|
41
30
|
verbose('수정발행 (계약 해제) 요청', { issuanceKey });
|
|
42
|
-
const
|
|
43
|
-
const result = await client.amendTermination(issuanceKey, validated
|
|
31
|
+
const client = createClient(globalOpts);
|
|
32
|
+
const result = await client.amendTermination(issuanceKey, validated);
|
|
44
33
|
outputSuccess(result);
|
|
45
34
|
}
|
|
46
35
|
catch (err) {
|
|
@@ -72,17 +61,7 @@ Example:
|
|
|
72
61
|
try {
|
|
73
62
|
const globalOpts = command.optsWithGlobals();
|
|
74
63
|
const raw = await resolveInput(options);
|
|
75
|
-
|
|
76
|
-
try {
|
|
77
|
-
validated = amendChangeSupplyCostSchema.parse(raw);
|
|
78
|
-
}
|
|
79
|
-
catch (err) {
|
|
80
|
-
if (err instanceof ZodError) {
|
|
81
|
-
const details = Object.fromEntries(err.errors.map((e) => [e.path.join('.'), e.message]));
|
|
82
|
-
throw new BoltaValidationError('입력 데이터가 유효하지 않습니다.', details);
|
|
83
|
-
}
|
|
84
|
-
throw err;
|
|
85
|
-
}
|
|
64
|
+
const validated = parseOrThrow(amendChangeSupplyCostSchema, raw);
|
|
86
65
|
if (globalOpts.dryRun) {
|
|
87
66
|
outputSuccess({
|
|
88
67
|
dryRun: true,
|
|
@@ -92,8 +71,8 @@ Example:
|
|
|
92
71
|
return;
|
|
93
72
|
}
|
|
94
73
|
verbose('수정발행 (공급가액 변동) 요청', { issuanceKey });
|
|
95
|
-
const
|
|
96
|
-
const result = await client.amendChangeSupplyCost(issuanceKey, validated
|
|
74
|
+
const client = createClient(globalOpts);
|
|
75
|
+
const result = await client.amendChangeSupplyCost(issuanceKey, validated);
|
|
97
76
|
outputSuccess(result);
|
|
98
77
|
}
|
|
99
78
|
catch (err) {
|
|
@@ -121,8 +100,8 @@ Example:
|
|
|
121
100
|
return;
|
|
122
101
|
}
|
|
123
102
|
verbose('수정발행 (착오에 의한 이중발급) 요청', { issuanceKey });
|
|
124
|
-
const
|
|
125
|
-
const result = await client.amendDoubleIssuance(issuanceKey
|
|
103
|
+
const client = createClient(globalOpts);
|
|
104
|
+
const result = await client.amendDoubleIssuance(issuanceKey);
|
|
126
105
|
outputSuccess(result);
|
|
127
106
|
}
|
|
128
107
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amend.js","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,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,
|
|
1
|
+
{"version":3,"file":"amend.js","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7H"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BoltaClient } from '../../client/bolta-client.js';
|
|
1
|
+
import { createApiKeyClient } from '../../utils/client.js';
|
|
3
2
|
import { outputSuccess, outputError } from '../../utils/output.js';
|
|
4
|
-
import { BoltaAuthError } from '../../utils/errors.js';
|
|
5
3
|
export async function getInvoiceAction(issuanceKey, options, command) {
|
|
6
4
|
try {
|
|
7
5
|
const globalOpts = command.optsWithGlobals();
|
|
8
|
-
const
|
|
9
|
-
if (!apiKey)
|
|
10
|
-
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
11
|
-
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl() });
|
|
6
|
+
const client = createApiKeyClient(globalOpts);
|
|
12
7
|
const result = await client.getTaxInvoice(issuanceKey);
|
|
13
8
|
outputSuccess(result);
|
|
14
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/invoice/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/invoice/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB,EAAE,OAAgC,EAAE,OAAgB;IAC5G,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACvD,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -27,7 +27,7 @@ Example:
|
|
|
27
27
|
"identificationNumber": "1234567890",
|
|
28
28
|
"organizationName": "공급자 주식회사",
|
|
29
29
|
"representativeName": "김공급",
|
|
30
|
-
"manager": { "email": "
|
|
30
|
+
"manager": { "email": "seller@example.com" }
|
|
31
31
|
},
|
|
32
32
|
"supplied": {
|
|
33
33
|
"identificationNumber": "0987654321",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-request.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/issue-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"issue-request.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/issue-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,gBAAgB,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -2,31 +2,19 @@ import { createClient } from '../../utils/client.js';
|
|
|
2
2
|
import { resolveInput } from '../../utils/input.js';
|
|
3
3
|
import { outputSuccess, outputError, verbose } from '../../utils/output.js';
|
|
4
4
|
import { createTaxInvoiceIssueRequestSchema } from '../../validators/schemas.js';
|
|
5
|
-
import {
|
|
6
|
-
import { ZodError } from 'zod';
|
|
5
|
+
import { parseOrThrow } from '../../validators/parse.js';
|
|
7
6
|
export async function issueRequestAction(options, command) {
|
|
8
7
|
try {
|
|
9
8
|
const globalOpts = command.optsWithGlobals();
|
|
10
9
|
const raw = await resolveInput(options);
|
|
11
|
-
|
|
12
|
-
try {
|
|
13
|
-
validated = createTaxInvoiceIssueRequestSchema.parse(raw);
|
|
14
|
-
}
|
|
15
|
-
catch (err) {
|
|
16
|
-
if (err instanceof ZodError) {
|
|
17
|
-
const details = Object.fromEntries(err.errors.map((e) => [e.path.join('.'), e.message]));
|
|
18
|
-
throw new BoltaValidationError('입력 데이터가 유효하지 않습니다.', details);
|
|
19
|
-
}
|
|
20
|
-
throw err;
|
|
21
|
-
}
|
|
10
|
+
const validated = parseOrThrow(createTaxInvoiceIssueRequestSchema, raw);
|
|
22
11
|
if (globalOpts.dryRun) {
|
|
23
12
|
outputSuccess({ dryRun: true, requestBody: validated, endpoint: 'POST /v1/taxInvoices/issueRequest' });
|
|
24
13
|
return;
|
|
25
14
|
}
|
|
26
15
|
verbose('세금계산서 역발행 요청');
|
|
27
|
-
const
|
|
16
|
+
const client = createClient(globalOpts);
|
|
28
17
|
const result = await client.issueRequestTaxInvoice(validated, {
|
|
29
|
-
supplierKey,
|
|
30
18
|
referenceId: options.referenceId,
|
|
31
19
|
});
|
|
32
20
|
outputSuccess(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-request.js","sourceRoot":"","sources":["../../../../src/commands/invoice/issue-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,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,
|
|
1
|
+
{"version":3,"file":"issue-request.js","sourceRoot":"","sources":["../../../../src/commands/invoice/issue-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,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,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAoD,EACpD,OAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QAExE,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,YAAY,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,SAAS,EAAE;YAC5D,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":"issue.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,wBAAsB,WAAW,CAC/B,OAAO,EAAE,gBAAgB,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -2,31 +2,19 @@ import { createClient } from '../../utils/client.js';
|
|
|
2
2
|
import { resolveInput } from '../../utils/input.js';
|
|
3
3
|
import { outputSuccess, outputError, verbose } from '../../utils/output.js';
|
|
4
4
|
import { createTaxInvoiceSchema } from '../../validators/schemas.js';
|
|
5
|
-
import {
|
|
6
|
-
import { ZodError } from 'zod';
|
|
5
|
+
import { parseOrThrow } from '../../validators/parse.js';
|
|
7
6
|
export async function issueAction(options, command) {
|
|
8
7
|
try {
|
|
9
8
|
const globalOpts = command.optsWithGlobals();
|
|
10
9
|
const raw = await resolveInput(options);
|
|
11
|
-
|
|
12
|
-
try {
|
|
13
|
-
validated = createTaxInvoiceSchema.parse(raw);
|
|
14
|
-
}
|
|
15
|
-
catch (err) {
|
|
16
|
-
if (err instanceof ZodError) {
|
|
17
|
-
const details = Object.fromEntries(err.errors.map((e) => [e.path.join('.'), e.message]));
|
|
18
|
-
throw new BoltaValidationError('입력 데이터가 유효하지 않습니다.', details);
|
|
19
|
-
}
|
|
20
|
-
throw err;
|
|
21
|
-
}
|
|
10
|
+
const validated = parseOrThrow(createTaxInvoiceSchema, raw);
|
|
22
11
|
if (globalOpts.dryRun) {
|
|
23
12
|
outputSuccess({ dryRun: true, requestBody: validated, endpoint: 'POST /v1/taxInvoices/issue' });
|
|
24
13
|
return;
|
|
25
14
|
}
|
|
26
15
|
verbose('세금계산서 정발행 요청');
|
|
27
|
-
const
|
|
16
|
+
const client = createClient(globalOpts);
|
|
28
17
|
const result = await client.issueTaxInvoice(validated, {
|
|
29
|
-
supplierKey,
|
|
30
18
|
referenceId: options.referenceId,
|
|
31
19
|
});
|
|
32
20
|
outputSuccess(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../../src/commands/invoice/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,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,
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../../src/commands/invoice/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,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,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAoD,EACpD,OAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAE5D,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,YAAY,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;YACrD,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":"status.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CASpG"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BoltaClient } from '../../client/bolta-client.js';
|
|
1
|
+
import { createApiKeyClient } from '../../utils/client.js';
|
|
3
2
|
import { outputSuccess, outputError } from '../../utils/output.js';
|
|
4
|
-
import { BoltaAuthError } from '../../utils/errors.js';
|
|
5
3
|
export async function statusAction(options, command) {
|
|
6
4
|
try {
|
|
7
5
|
const globalOpts = command.optsWithGlobals();
|
|
8
|
-
const
|
|
9
|
-
if (!apiKey)
|
|
10
|
-
throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
|
|
11
|
-
const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl() });
|
|
6
|
+
const client = createApiKeyClient(globalOpts);
|
|
12
7
|
const result = await client.getTaxInvoiceStatus(options.referenceId);
|
|
13
8
|
outputSuccess(result);
|
|
14
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/commands/invoice/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/commands/invoice/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgC,EAAE,OAAgB;IACnF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/issuer/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBnG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createApiKeyClient } from '../../utils/client.js';
|
|
2
|
+
import { resolveInput } from '../../utils/input.js';
|
|
3
|
+
import { outputSuccess, outputError, verbose } from '../../utils/output.js';
|
|
4
|
+
import { createIssuerSchema } from '../../validators/schemas.js';
|
|
5
|
+
import { parseOrThrow } from '../../validators/parse.js';
|
|
6
|
+
export async function createIssuerAction(options, command) {
|
|
7
|
+
try {
|
|
8
|
+
const globalOpts = command.optsWithGlobals();
|
|
9
|
+
const client = createApiKeyClient(globalOpts);
|
|
10
|
+
const raw = await resolveInput(options);
|
|
11
|
+
const validated = parseOrThrow(createIssuerSchema, raw);
|
|
12
|
+
if (globalOpts.dryRun) {
|
|
13
|
+
outputSuccess({ dryRun: true, requestBody: validated, endpoint: 'POST /v1/issuers' });
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
verbose('발급자 등록 요청', { identificationNumber: validated.identificationNumber });
|
|
17
|
+
const result = await client.createIssuer(validated);
|
|
18
|
+
outputSuccess(result);
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
outputError(err);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/issuer/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAyB,EAAE,OAAgB;IAClF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE9C,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAExD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,WAAW,EAAE,EAAE,oBAAoB,EAAE,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACpD,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/issuer/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzH"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createApiKeyClient } from '../../utils/client.js';
|
|
2
|
+
import { outputSuccess, outputError } from '../../utils/output.js';
|
|
3
|
+
export async function getIssuerAction(issuerId, options, command) {
|
|
4
|
+
try {
|
|
5
|
+
const globalOpts = command.optsWithGlobals();
|
|
6
|
+
const client = createApiKeyClient(globalOpts);
|
|
7
|
+
const result = await client.getIssuer(issuerId);
|
|
8
|
+
outputSuccess(result);
|
|
9
|
+
}
|
|
10
|
+
catch (err) {
|
|
11
|
+
outputError(err);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/issuer/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAgC,EAAE,OAAgB;IACxG,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChD,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/issuer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6B7D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createIssuerAction } from './create.js';
|
|
2
|
+
import { getIssuerAction } from './get.js';
|
|
3
|
+
export function registerIssuerCommands(program) {
|
|
4
|
+
const issuer = program
|
|
5
|
+
.command('issuer')
|
|
6
|
+
.description('발급자 관리');
|
|
7
|
+
issuer
|
|
8
|
+
.command('create')
|
|
9
|
+
.description('발급자 등록 (POST /v1/issuers)')
|
|
10
|
+
.option('--data <json>', '인라인 JSON 데이터')
|
|
11
|
+
.option('--file <path>', 'JSON 파일 경로')
|
|
12
|
+
.option('--stdin', '표준 입력에서 읽기')
|
|
13
|
+
.addHelpText('after', `
|
|
14
|
+
Example:
|
|
15
|
+
bolta issuer create --data '{
|
|
16
|
+
"identificationNumber": "1234567890",
|
|
17
|
+
"organizationName": "주식회사 테스트",
|
|
18
|
+
"representativeName": "홍길동"
|
|
19
|
+
}'
|
|
20
|
+
|
|
21
|
+
bolta issuer create --file issuer.json`)
|
|
22
|
+
.action(createIssuerAction);
|
|
23
|
+
issuer
|
|
24
|
+
.command('get <issuerId>')
|
|
25
|
+
.description('발급자 조회 (GET /v1/issuers/{issuerId})')
|
|
26
|
+
.addHelpText('after', `
|
|
27
|
+
Example:
|
|
28
|
+
bolta issuer get issuer_bf8paz`)
|
|
29
|
+
.action(getIssuerAction);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/issuer/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEzB,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC;SACvC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC;SACrC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC;SAC/B,WAAW,CAAC,OAAO,EAAE;;;;;;;;yCAQe,CAAC;SACrC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE9B,MAAM;SACH,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,qCAAqC,CAAC;SAClD,WAAW,CAAC,OAAO,EAAE;;iCAEO,CAAC;SAC7B,MAAM,CAAC,eAAe,CAAC,CAAC;AAC7B,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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6C5D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { outputSuccess, outputError,
|
|
1
|
+
import { outputSuccess, outputError, resolveLegacyIssuerName, LEGACY_ISSUER_CREATE_ALIASES, } 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
|
+
issuer-create 발급자 등록
|
|
11
11
|
invoice-issue 세금계산서 정발행
|
|
12
12
|
invoice-issue-request 세금계산서 역발행 요청
|
|
13
13
|
cash-receipt-issue 현금영수증 발행
|
|
@@ -28,8 +28,7 @@ Examples:
|
|
|
28
28
|
outputSuccess({ availableSchemas: list });
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
commandName = resolveDeprecatedName(commandName, { 'customer-create': 'supplier-create' }, '스키마');
|
|
31
|
+
commandName = resolveLegacyIssuerName(commandName, LEGACY_ISSUER_CREATE_ALIASES, '스키마');
|
|
33
32
|
const schema = jsonSchemas[commandName];
|
|
34
33
|
if (!schema) {
|
|
35
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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/schema/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,WAAW,EACX,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,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;;;;;;;;;;;;qDAY2B,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,WAAW,GAAG,uBAAuB,CAAC,WAAW,EAAE,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAExF,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../../src/commands/supplier/legacy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8EpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBnE"}
|