@bolta-io/cli 0.5.1 → 0.7.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 +17 -0
- package/CLAUDE.md +67 -5
- package/README.md +59 -8
- package/dist/bin/bolta.js +5 -1
- package/dist/bin/bolta.js.map +1 -1
- package/dist/src/client/bolta-client.d.ts +7 -1
- package/dist/src/client/bolta-client.d.ts.map +1 -1
- package/dist/src/client/bolta-client.js +110 -6
- package/dist/src/client/bolta-client.js.map +1 -1
- package/dist/src/commands/bank-account-holder/check-bulk.d.ts +4 -0
- package/dist/src/commands/bank-account-holder/check-bulk.d.ts.map +1 -0
- package/dist/src/commands/bank-account-holder/check-bulk.js +26 -0
- package/dist/src/commands/bank-account-holder/check-bulk.js.map +1 -0
- package/dist/src/commands/bank-account-holder/check.d.ts +7 -0
- package/dist/src/commands/bank-account-holder/check.d.ts.map +1 -0
- package/dist/src/commands/bank-account-holder/check.js +25 -0
- package/dist/src/commands/bank-account-holder/check.js.map +1 -0
- package/dist/src/commands/bank-account-holder/index.d.ts +3 -0
- package/dist/src/commands/bank-account-holder/index.d.ts.map +1 -0
- package/dist/src/commands/bank-account-holder/index.js +49 -0
- package/dist/src/commands/bank-account-holder/index.js.map +1 -0
- package/dist/src/commands/document/get.d.ts +3 -0
- package/dist/src/commands/document/get.d.ts.map +1 -0
- package/dist/src/commands/document/get.js +24 -0
- package/dist/src/commands/document/get.js.map +1 -0
- package/dist/src/commands/document/index.d.ts +3 -0
- package/dist/src/commands/document/index.d.ts.map +1 -0
- package/dist/src/commands/document/index.js +40 -0
- package/dist/src/commands/document/index.js.map +1 -0
- package/dist/src/commands/document/issue.d.ts +8 -0
- package/dist/src/commands/document/issue.d.ts.map +1 -0
- package/dist/src/commands/document/issue.js +28 -0
- package/dist/src/commands/document/issue.js.map +1 -0
- package/dist/src/commands/examples/index.d.ts.map +1 -1
- package/dist/src/commands/examples/index.js +50 -0
- 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 +174 -3
- package/dist/src/commands/guide/index.js.map +1 -1
- package/dist/src/commands/invoice/reference-id.js +2 -2
- package/dist/src/commands/invoice/reference-id.js.map +1 -1
- package/dist/src/commands/invoice/status.js +2 -2
- package/dist/src/commands/invoice/status.js.map +1 -1
- package/dist/src/commands/schema/index.d.ts.map +1 -1
- package/dist/src/commands/schema/index.js +2 -0
- package/dist/src/commands/schema/index.js.map +1 -1
- package/dist/src/types/api.d.ts +75 -0
- package/dist/src/types/api.d.ts.map +1 -1
- package/dist/src/utils/input.js +33 -8
- package/dist/src/utils/input.js.map +1 -1
- package/dist/src/validators/parse.d.ts +2 -2
- package/dist/src/validators/parse.d.ts.map +1 -1
- package/dist/src/validators/parse.js.map +1 -1
- package/dist/src/validators/schemas.d.ts +207 -21
- package/dist/src/validators/schemas.d.ts.map +1 -1
- package/dist/src/validators/schemas.js +230 -3
- package/dist/src/validators/schemas.js.map +1 -1
- package/llms.txt +57 -7
- package/package.json +4 -2
|
@@ -741,7 +741,7 @@ export declare const createTaxInvoiceIssueRequestSchema: z.ZodEffects<z.ZodObjec
|
|
|
741
741
|
}[];
|
|
742
742
|
description?: string | null | undefined;
|
|
743
743
|
}>;
|
|
744
|
-
export declare const
|
|
744
|
+
export declare const clientReferenceIdHeaderSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
745
745
|
export declare const clientReferenceIdSchema: z.ZodString;
|
|
746
746
|
export declare const cashReceiptRecipientSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
747
747
|
type: z.ZodLiteral<"SELF">;
|
|
@@ -756,20 +756,20 @@ export declare const cashReceiptRecipientSchema: z.ZodDiscriminatedUnion<"type",
|
|
|
756
756
|
type: z.ZodLiteral<"PHONE">;
|
|
757
757
|
value: z.ZodString;
|
|
758
758
|
}, "strict", z.ZodTypeAny, {
|
|
759
|
-
value: string;
|
|
760
759
|
type: "PHONE";
|
|
761
|
-
}, {
|
|
762
760
|
value: string;
|
|
761
|
+
}, {
|
|
763
762
|
type: "PHONE";
|
|
763
|
+
value: string;
|
|
764
764
|
}>, z.ZodObject<{
|
|
765
765
|
type: z.ZodLiteral<"BUSINESS_REGISTRATION_NUMBER">;
|
|
766
766
|
value: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
767
767
|
}, "strict", z.ZodTypeAny, {
|
|
768
|
-
value: string;
|
|
769
768
|
type: "BUSINESS_REGISTRATION_NUMBER";
|
|
770
|
-
}, {
|
|
771
769
|
value: string;
|
|
770
|
+
}, {
|
|
772
771
|
type: "BUSINESS_REGISTRATION_NUMBER";
|
|
772
|
+
value: string;
|
|
773
773
|
}>]>;
|
|
774
774
|
export declare const createCashReceiptSchema: z.ZodEffects<z.ZodObject<{
|
|
775
775
|
itemName: z.ZodString;
|
|
@@ -802,20 +802,20 @@ export declare const createCashReceiptSchema: z.ZodEffects<z.ZodObject<{
|
|
|
802
802
|
type: z.ZodLiteral<"PHONE">;
|
|
803
803
|
value: z.ZodString;
|
|
804
804
|
}, "strict", z.ZodTypeAny, {
|
|
805
|
-
value: string;
|
|
806
805
|
type: "PHONE";
|
|
807
|
-
}, {
|
|
808
806
|
value: string;
|
|
807
|
+
}, {
|
|
809
808
|
type: "PHONE";
|
|
809
|
+
value: string;
|
|
810
810
|
}>, z.ZodObject<{
|
|
811
811
|
type: z.ZodLiteral<"BUSINESS_REGISTRATION_NUMBER">;
|
|
812
812
|
value: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
813
813
|
}, "strict", z.ZodTypeAny, {
|
|
814
|
-
value: string;
|
|
815
814
|
type: "BUSINESS_REGISTRATION_NUMBER";
|
|
816
|
-
}, {
|
|
817
815
|
value: string;
|
|
816
|
+
}, {
|
|
818
817
|
type: "BUSINESS_REGISTRATION_NUMBER";
|
|
818
|
+
value: string;
|
|
819
819
|
}>]>;
|
|
820
820
|
amount: z.ZodObject<{
|
|
821
821
|
supplyAmount: z.ZodNumber;
|
|
@@ -842,11 +842,11 @@ export declare const createCashReceiptSchema: z.ZodEffects<z.ZodObject<{
|
|
|
842
842
|
type: "SELF";
|
|
843
843
|
value?: "" | null | undefined;
|
|
844
844
|
} | {
|
|
845
|
-
value: string;
|
|
846
845
|
type: "PHONE";
|
|
847
|
-
} | {
|
|
848
846
|
value: string;
|
|
847
|
+
} | {
|
|
849
848
|
type: "BUSINESS_REGISTRATION_NUMBER";
|
|
849
|
+
value: string;
|
|
850
850
|
};
|
|
851
851
|
amount: {
|
|
852
852
|
supplyAmount: number;
|
|
@@ -865,11 +865,11 @@ export declare const createCashReceiptSchema: z.ZodEffects<z.ZodObject<{
|
|
|
865
865
|
type: "SELF";
|
|
866
866
|
value?: "" | null | undefined;
|
|
867
867
|
} | {
|
|
868
|
-
value: string;
|
|
869
868
|
type: "PHONE";
|
|
870
|
-
} | {
|
|
871
869
|
value: string;
|
|
870
|
+
} | {
|
|
872
871
|
type: "BUSINESS_REGISTRATION_NUMBER";
|
|
872
|
+
value: string;
|
|
873
873
|
};
|
|
874
874
|
amount: {
|
|
875
875
|
supplyAmount: number;
|
|
@@ -888,11 +888,11 @@ export declare const createCashReceiptSchema: z.ZodEffects<z.ZodObject<{
|
|
|
888
888
|
type: "SELF";
|
|
889
889
|
value?: "" | null | undefined;
|
|
890
890
|
} | {
|
|
891
|
-
value: string;
|
|
892
891
|
type: "PHONE";
|
|
893
|
-
} | {
|
|
894
892
|
value: string;
|
|
893
|
+
} | {
|
|
895
894
|
type: "BUSINESS_REGISTRATION_NUMBER";
|
|
895
|
+
value: string;
|
|
896
896
|
};
|
|
897
897
|
amount: {
|
|
898
898
|
supplyAmount: number;
|
|
@@ -911,11 +911,11 @@ export declare const createCashReceiptSchema: z.ZodEffects<z.ZodObject<{
|
|
|
911
911
|
type: "SELF";
|
|
912
912
|
value?: "" | null | undefined;
|
|
913
913
|
} | {
|
|
914
|
-
value: string;
|
|
915
914
|
type: "PHONE";
|
|
916
|
-
} | {
|
|
917
915
|
value: string;
|
|
916
|
+
} | {
|
|
918
917
|
type: "BUSINESS_REGISTRATION_NUMBER";
|
|
918
|
+
value: string;
|
|
919
919
|
};
|
|
920
920
|
amount: {
|
|
921
921
|
supplyAmount: number;
|
|
@@ -923,6 +923,135 @@ export declare const createCashReceiptSchema: z.ZodEffects<z.ZodObject<{
|
|
|
923
923
|
taxFreeAmount?: number | null | undefined;
|
|
924
924
|
};
|
|
925
925
|
}>;
|
|
926
|
+
export declare const documentIssuanceKeySchema: z.ZodString;
|
|
927
|
+
export declare const createDocumentIssuanceSchema: z.ZodEffects<z.ZodObject<{
|
|
928
|
+
businessRegistrationNumber: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
929
|
+
document: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
930
|
+
type: z.ZodLiteral<"BUSINESS_REGISTRATION_PROOF">;
|
|
931
|
+
language: z.ZodEnum<["KO", "EN"]>;
|
|
932
|
+
}, "strip", z.ZodTypeAny, {
|
|
933
|
+
type: "BUSINESS_REGISTRATION_PROOF";
|
|
934
|
+
language: "KO" | "EN";
|
|
935
|
+
}, {
|
|
936
|
+
type: "BUSINESS_REGISTRATION_PROOF";
|
|
937
|
+
language: "KO" | "EN";
|
|
938
|
+
}>, z.ZodObject<{
|
|
939
|
+
type: z.ZodLiteral<"BUSINESS_REGISTRATION_CERTIFICATE">;
|
|
940
|
+
reason: z.ZodPipeline<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, z.ZodEffects<z.ZodString, string, string>>;
|
|
941
|
+
}, "strip", z.ZodTypeAny, {
|
|
942
|
+
type: "BUSINESS_REGISTRATION_CERTIFICATE";
|
|
943
|
+
reason: string;
|
|
944
|
+
}, {
|
|
945
|
+
type: "BUSINESS_REGISTRATION_CERTIFICATE";
|
|
946
|
+
reason: string;
|
|
947
|
+
}>, z.ZodObject<{
|
|
948
|
+
type: z.ZodLiteral<"TAX_PAYMENT_CERTIFICATE">;
|
|
949
|
+
purpose: z.ZodEnum<["PAYMENT_RECEIPT", "OTHER"]>;
|
|
950
|
+
}, "strip", z.ZodTypeAny, {
|
|
951
|
+
type: "TAX_PAYMENT_CERTIFICATE";
|
|
952
|
+
purpose: "PAYMENT_RECEIPT" | "OTHER";
|
|
953
|
+
}, {
|
|
954
|
+
type: "TAX_PAYMENT_CERTIFICATE";
|
|
955
|
+
purpose: "PAYMENT_RECEIPT" | "OTHER";
|
|
956
|
+
}>, z.ZodObject<{
|
|
957
|
+
type: z.ZodLiteral<"VAT_TAX_BASE_PROOF">;
|
|
958
|
+
from: z.ZodString;
|
|
959
|
+
to: z.ZodString;
|
|
960
|
+
}, "strip", z.ZodTypeAny, {
|
|
961
|
+
type: "VAT_TAX_BASE_PROOF";
|
|
962
|
+
from: string;
|
|
963
|
+
to: string;
|
|
964
|
+
}, {
|
|
965
|
+
type: "VAT_TAX_BASE_PROOF";
|
|
966
|
+
from: string;
|
|
967
|
+
to: string;
|
|
968
|
+
}>, z.ZodObject<{
|
|
969
|
+
type: z.ZodLiteral<"STANDARD_FINANCIAL_STATEMENT_PROOF">;
|
|
970
|
+
fiscalYearEnd: z.ZodString;
|
|
971
|
+
}, "strip", z.ZodTypeAny, {
|
|
972
|
+
type: "STANDARD_FINANCIAL_STATEMENT_PROOF";
|
|
973
|
+
fiscalYearEnd: string;
|
|
974
|
+
}, {
|
|
975
|
+
type: "STANDARD_FINANCIAL_STATEMENT_PROOF";
|
|
976
|
+
fiscalYearEnd: string;
|
|
977
|
+
}>]>;
|
|
978
|
+
}, "strip", z.ZodTypeAny, {
|
|
979
|
+
businessRegistrationNumber: string;
|
|
980
|
+
document: {
|
|
981
|
+
type: "BUSINESS_REGISTRATION_PROOF";
|
|
982
|
+
language: "KO" | "EN";
|
|
983
|
+
} | {
|
|
984
|
+
type: "BUSINESS_REGISTRATION_CERTIFICATE";
|
|
985
|
+
reason: string;
|
|
986
|
+
} | {
|
|
987
|
+
type: "TAX_PAYMENT_CERTIFICATE";
|
|
988
|
+
purpose: "PAYMENT_RECEIPT" | "OTHER";
|
|
989
|
+
} | {
|
|
990
|
+
type: "VAT_TAX_BASE_PROOF";
|
|
991
|
+
from: string;
|
|
992
|
+
to: string;
|
|
993
|
+
} | {
|
|
994
|
+
type: "STANDARD_FINANCIAL_STATEMENT_PROOF";
|
|
995
|
+
fiscalYearEnd: string;
|
|
996
|
+
};
|
|
997
|
+
}, {
|
|
998
|
+
businessRegistrationNumber: string;
|
|
999
|
+
document: {
|
|
1000
|
+
type: "BUSINESS_REGISTRATION_PROOF";
|
|
1001
|
+
language: "KO" | "EN";
|
|
1002
|
+
} | {
|
|
1003
|
+
type: "BUSINESS_REGISTRATION_CERTIFICATE";
|
|
1004
|
+
reason: string;
|
|
1005
|
+
} | {
|
|
1006
|
+
type: "TAX_PAYMENT_CERTIFICATE";
|
|
1007
|
+
purpose: "PAYMENT_RECEIPT" | "OTHER";
|
|
1008
|
+
} | {
|
|
1009
|
+
type: "VAT_TAX_BASE_PROOF";
|
|
1010
|
+
from: string;
|
|
1011
|
+
to: string;
|
|
1012
|
+
} | {
|
|
1013
|
+
type: "STANDARD_FINANCIAL_STATEMENT_PROOF";
|
|
1014
|
+
fiscalYearEnd: string;
|
|
1015
|
+
};
|
|
1016
|
+
}>, {
|
|
1017
|
+
businessRegistrationNumber: string;
|
|
1018
|
+
document: {
|
|
1019
|
+
type: "BUSINESS_REGISTRATION_PROOF";
|
|
1020
|
+
language: "KO" | "EN";
|
|
1021
|
+
} | {
|
|
1022
|
+
type: "BUSINESS_REGISTRATION_CERTIFICATE";
|
|
1023
|
+
reason: string;
|
|
1024
|
+
} | {
|
|
1025
|
+
type: "TAX_PAYMENT_CERTIFICATE";
|
|
1026
|
+
purpose: "PAYMENT_RECEIPT" | "OTHER";
|
|
1027
|
+
} | {
|
|
1028
|
+
type: "VAT_TAX_BASE_PROOF";
|
|
1029
|
+
from: string;
|
|
1030
|
+
to: string;
|
|
1031
|
+
} | {
|
|
1032
|
+
type: "STANDARD_FINANCIAL_STATEMENT_PROOF";
|
|
1033
|
+
fiscalYearEnd: string;
|
|
1034
|
+
};
|
|
1035
|
+
}, {
|
|
1036
|
+
businessRegistrationNumber: string;
|
|
1037
|
+
document: {
|
|
1038
|
+
type: "BUSINESS_REGISTRATION_PROOF";
|
|
1039
|
+
language: "KO" | "EN";
|
|
1040
|
+
} | {
|
|
1041
|
+
type: "BUSINESS_REGISTRATION_CERTIFICATE";
|
|
1042
|
+
reason: string;
|
|
1043
|
+
} | {
|
|
1044
|
+
type: "TAX_PAYMENT_CERTIFICATE";
|
|
1045
|
+
purpose: "PAYMENT_RECEIPT" | "OTHER";
|
|
1046
|
+
} | {
|
|
1047
|
+
type: "VAT_TAX_BASE_PROOF";
|
|
1048
|
+
from: string;
|
|
1049
|
+
to: string;
|
|
1050
|
+
} | {
|
|
1051
|
+
type: "STANDARD_FINANCIAL_STATEMENT_PROOF";
|
|
1052
|
+
fiscalYearEnd: string;
|
|
1053
|
+
};
|
|
1054
|
+
}>;
|
|
926
1055
|
export declare const createIssuerSchema: z.ZodObject<{
|
|
927
1056
|
identificationNumber: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
928
1057
|
organizationName: z.ZodString;
|
|
@@ -974,31 +1103,88 @@ export declare const bankAccountTransactionQuerySchema: z.ZodEffects<z.ZodObject
|
|
|
974
1103
|
from?: string | undefined;
|
|
975
1104
|
to?: string | undefined;
|
|
976
1105
|
bankAccountId?: string | undefined;
|
|
977
|
-
transactionType?: "
|
|
1106
|
+
transactionType?: "OTHER" | "DEPOSIT" | "WITHDRAW" | undefined;
|
|
978
1107
|
cursor?: string | undefined;
|
|
979
1108
|
limit?: number | undefined;
|
|
980
1109
|
}, {
|
|
981
1110
|
from?: string | undefined;
|
|
982
1111
|
to?: string | undefined;
|
|
983
1112
|
bankAccountId?: string | undefined;
|
|
984
|
-
transactionType?: "
|
|
1113
|
+
transactionType?: "OTHER" | "DEPOSIT" | "WITHDRAW" | undefined;
|
|
985
1114
|
cursor?: string | undefined;
|
|
986
1115
|
limit?: number | undefined;
|
|
987
1116
|
}>, {
|
|
988
1117
|
from?: string | undefined;
|
|
989
1118
|
to?: string | undefined;
|
|
990
1119
|
bankAccountId?: string | undefined;
|
|
991
|
-
transactionType?: "
|
|
1120
|
+
transactionType?: "OTHER" | "DEPOSIT" | "WITHDRAW" | undefined;
|
|
992
1121
|
cursor?: string | undefined;
|
|
993
1122
|
limit?: number | undefined;
|
|
994
1123
|
}, {
|
|
995
1124
|
from?: string | undefined;
|
|
996
1125
|
to?: string | undefined;
|
|
997
1126
|
bankAccountId?: string | undefined;
|
|
998
|
-
transactionType?: "
|
|
1127
|
+
transactionType?: "OTHER" | "DEPOSIT" | "WITHDRAW" | undefined;
|
|
999
1128
|
cursor?: string | undefined;
|
|
1000
1129
|
limit?: number | undefined;
|
|
1001
1130
|
}>;
|
|
1131
|
+
/** 서버가 한 요청에 받는 계좌 수 상한. */
|
|
1132
|
+
export declare const BANK_ACCOUNT_HOLDER_BULK_MAX = 100;
|
|
1133
|
+
/** JavaScript number로 원 단위 금액을 정확히 표현할 수 있는 상한. */
|
|
1134
|
+
export declare const BANK_ACCOUNT_HOLDER_AMOUNT_MAX: number;
|
|
1135
|
+
export declare const bankAccountHolderInquirySchema: z.ZodObject<{
|
|
1136
|
+
amount: z.ZodOptional<z.ZodNumber>;
|
|
1137
|
+
bankCode: z.ZodString;
|
|
1138
|
+
accountNumber: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
1139
|
+
}, "strip", z.ZodTypeAny, {
|
|
1140
|
+
bankCode: string;
|
|
1141
|
+
accountNumber: string;
|
|
1142
|
+
amount?: number | undefined;
|
|
1143
|
+
}, {
|
|
1144
|
+
bankCode: string;
|
|
1145
|
+
accountNumber: string;
|
|
1146
|
+
amount?: number | undefined;
|
|
1147
|
+
}>;
|
|
1148
|
+
export declare const bankAccountHolderCliInquirySchema: z.ZodObject<{
|
|
1149
|
+
amount: z.ZodOptional<z.ZodPipeline<z.ZodEffects<z.ZodString, number, string>, z.ZodNumber>>;
|
|
1150
|
+
bankCode: z.ZodString;
|
|
1151
|
+
accountNumber: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
1152
|
+
}, "strip", z.ZodTypeAny, {
|
|
1153
|
+
bankCode: string;
|
|
1154
|
+
accountNumber: string;
|
|
1155
|
+
amount?: number | undefined;
|
|
1156
|
+
}, {
|
|
1157
|
+
bankCode: string;
|
|
1158
|
+
accountNumber: string;
|
|
1159
|
+
amount?: string | undefined;
|
|
1160
|
+
}>;
|
|
1161
|
+
export declare const bankAccountHolderBulkInquirySchema: z.ZodObject<{
|
|
1162
|
+
accounts: z.ZodArray<z.ZodObject<{
|
|
1163
|
+
amount: z.ZodOptional<z.ZodNumber>;
|
|
1164
|
+
bankCode: z.ZodString;
|
|
1165
|
+
accountNumber: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
1166
|
+
}, "strip", z.ZodTypeAny, {
|
|
1167
|
+
bankCode: string;
|
|
1168
|
+
accountNumber: string;
|
|
1169
|
+
amount?: number | undefined;
|
|
1170
|
+
}, {
|
|
1171
|
+
bankCode: string;
|
|
1172
|
+
accountNumber: string;
|
|
1173
|
+
amount?: number | undefined;
|
|
1174
|
+
}>, "many">;
|
|
1175
|
+
}, "strip", z.ZodTypeAny, {
|
|
1176
|
+
accounts: {
|
|
1177
|
+
bankCode: string;
|
|
1178
|
+
accountNumber: string;
|
|
1179
|
+
amount?: number | undefined;
|
|
1180
|
+
}[];
|
|
1181
|
+
}, {
|
|
1182
|
+
accounts: {
|
|
1183
|
+
bankCode: string;
|
|
1184
|
+
accountNumber: string;
|
|
1185
|
+
amount?: number | undefined;
|
|
1186
|
+
}[];
|
|
1187
|
+
}>;
|
|
1002
1188
|
export declare const amendTerminationSchema: z.ZodObject<{
|
|
1003
1189
|
date: z.ZodString;
|
|
1004
1190
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/validators/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,eAAO,MAAM,aAAa;;;;;;;;;;;;EAOxB,CAAC;AA8FH,eAAO,MAAM,uBAAuB,iDAMlC,CAAC;AAMH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASnC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/B,CAAC;AAiDH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBjC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe7C,CAAC;AAEH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/validators/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const NTS_PARTY_TEXT_MAX_LENGTH = 40;
|
|
|
8
8
|
const NTS_PERSON_NAME_MAX_LENGTH = 30;
|
|
9
9
|
const NTS_CALL_TEXT_MAX_LENGTH = 20;
|
|
10
10
|
const TAX_INVOICE_ITEM_MAX_COUNT = 16;
|
|
11
|
-
const
|
|
11
|
+
const CLIENT_REFERENCE_ID_HEADER_MAX_LENGTH = 255;
|
|
12
12
|
const CASH_RECEIPT_TEXT_MAX_LENGTH = 20;
|
|
13
13
|
const CASH_RECEIPT_REPRESENTATIVE_MAX_LENGTH = 10;
|
|
14
14
|
const CASH_RECEIPT_AMOUNT_MAX = 9_999_999_999;
|
|
@@ -207,10 +207,10 @@ export const createTaxInvoiceIssueRequestSchema = taxInvoiceBaseSchema.superRefi
|
|
|
207
207
|
});
|
|
208
208
|
}
|
|
209
209
|
});
|
|
210
|
-
export const
|
|
210
|
+
export const clientReferenceIdHeaderSchema = z
|
|
211
211
|
.string()
|
|
212
212
|
.min(1, 'reference-id는 1자 이상이어야 합니다')
|
|
213
|
-
.max(
|
|
213
|
+
.max(CLIENT_REFERENCE_ID_HEADER_MAX_LENGTH, `reference-id는 최대 ${CLIENT_REFERENCE_ID_HEADER_MAX_LENGTH}자입니다`)
|
|
214
214
|
.regex(/^[\x20-\x7E]*$/u, 'reference-id에는 출력 가능한 ASCII 문자(U+0020~U+007E)만 사용할 수 있습니다')
|
|
215
215
|
.refine((value) => !value.startsWith(' ') && !value.endsWith(' '), 'reference-id의 앞뒤에는 공백을 사용할 수 없습니다');
|
|
216
216
|
// ========================
|
|
@@ -299,6 +299,75 @@ export const createCashReceiptSchema = z
|
|
|
299
299
|
}
|
|
300
300
|
});
|
|
301
301
|
// ========================
|
|
302
|
+
// Document Issuance Schemas
|
|
303
|
+
// ========================
|
|
304
|
+
export const documentIssuanceKeySchema = z
|
|
305
|
+
.string()
|
|
306
|
+
.uuid('issuanceKey는 UUID 형식이어야 합니다');
|
|
307
|
+
const documentReissueReasonSchema = z
|
|
308
|
+
.string()
|
|
309
|
+
.refine((value) => ![...value].some((character) => /[\p{Cc}]/u.test(character)), 'reason에는 제어 문자를 사용할 수 없습니다')
|
|
310
|
+
.transform((value) => value.trim())
|
|
311
|
+
.pipe(z
|
|
312
|
+
.string()
|
|
313
|
+
.min(1, 'reason은 1자 이상이어야 합니다')
|
|
314
|
+
.refine((value) => [...value].length <= 10, 'reason은 최대 10자입니다'));
|
|
315
|
+
const documentYearMonthSchema = z
|
|
316
|
+
.string()
|
|
317
|
+
.regex(/^\d{4}-(0[1-9]|1[0-2])$/, '연월은 YYYY-MM 형식이어야 합니다');
|
|
318
|
+
const documentIssuanceDocumentSchema = z.discriminatedUnion('type', [
|
|
319
|
+
z.object({
|
|
320
|
+
type: z.literal('BUSINESS_REGISTRATION_PROOF'),
|
|
321
|
+
language: z.enum(['KO', 'EN'], {
|
|
322
|
+
errorMap: () => ({ message: 'language는 KO 또는 EN이어야 합니다' }),
|
|
323
|
+
}),
|
|
324
|
+
}),
|
|
325
|
+
z.object({
|
|
326
|
+
type: z.literal('BUSINESS_REGISTRATION_CERTIFICATE'),
|
|
327
|
+
reason: documentReissueReasonSchema,
|
|
328
|
+
}),
|
|
329
|
+
z.object({
|
|
330
|
+
type: z.literal('TAX_PAYMENT_CERTIFICATE'),
|
|
331
|
+
purpose: z.enum(['PAYMENT_RECEIPT', 'OTHER'], {
|
|
332
|
+
errorMap: () => ({ message: 'purpose는 PAYMENT_RECEIPT 또는 OTHER여야 합니다' }),
|
|
333
|
+
}),
|
|
334
|
+
}),
|
|
335
|
+
z.object({
|
|
336
|
+
type: z.literal('VAT_TAX_BASE_PROOF'),
|
|
337
|
+
from: z.string().regex(/^\d{4}-(01|07)$/, 'from은 YYYY-01 또는 YYYY-07 형식이어야 합니다'),
|
|
338
|
+
to: z.string().regex(/^\d{4}-(06|12)$/, 'to는 YYYY-06 또는 YYYY-12 형식이어야 합니다'),
|
|
339
|
+
}),
|
|
340
|
+
z.object({
|
|
341
|
+
type: z.literal('STANDARD_FINANCIAL_STATEMENT_PROOF'),
|
|
342
|
+
fiscalYearEnd: documentYearMonthSchema,
|
|
343
|
+
}),
|
|
344
|
+
]);
|
|
345
|
+
export const createDocumentIssuanceSchema = z
|
|
346
|
+
.object({
|
|
347
|
+
businessRegistrationNumber: businessIdentificationNumberSchema,
|
|
348
|
+
document: documentIssuanceDocumentSchema,
|
|
349
|
+
})
|
|
350
|
+
.superRefine((data, ctx) => {
|
|
351
|
+
if (data.document.type !== 'VAT_TAX_BASE_PROOF')
|
|
352
|
+
return;
|
|
353
|
+
if (data.document.from > data.document.to) {
|
|
354
|
+
ctx.addIssue({
|
|
355
|
+
code: z.ZodIssueCode.custom,
|
|
356
|
+
path: ['document', 'from'],
|
|
357
|
+
message: 'from은 to보다 늦을 수 없습니다',
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
const fromYear = Number(data.document.from.slice(0, 4));
|
|
361
|
+
const toYear = Number(data.document.to.slice(0, 4));
|
|
362
|
+
if (toYear - fromYear > 4) {
|
|
363
|
+
ctx.addIssue({
|
|
364
|
+
code: z.ZodIssueCode.custom,
|
|
365
|
+
path: ['document', 'to'],
|
|
366
|
+
message: '과세기간은 최대 5개 연도까지 입력할 수 있습니다',
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
});
|
|
370
|
+
// ========================
|
|
302
371
|
// Issuer Schemas
|
|
303
372
|
// ========================
|
|
304
373
|
export const createIssuerSchema = z.object({
|
|
@@ -365,6 +434,56 @@ export const bankAccountTransactionQuerySchema = z
|
|
|
365
434
|
message: 'from은 to보다 늦을 수 없습니다',
|
|
366
435
|
});
|
|
367
436
|
// ========================
|
|
437
|
+
// Bank Account Holder Schemas
|
|
438
|
+
// ========================
|
|
439
|
+
/** 서버가 한 요청에 받는 계좌 수 상한. */
|
|
440
|
+
export const BANK_ACCOUNT_HOLDER_BULK_MAX = 100;
|
|
441
|
+
/** JavaScript number로 원 단위 금액을 정확히 표현할 수 있는 상한. */
|
|
442
|
+
export const BANK_ACCOUNT_HOLDER_AMOUNT_MAX = Number.MAX_SAFE_INTEGER;
|
|
443
|
+
// 지원하는 은행은 서버가 UNSUPPORTED_BANK로 판정한다. 목록을 CLI에 두면 은행이 늘 때마다 다시 배포해야 한다.
|
|
444
|
+
const bankCodeSchema = z
|
|
445
|
+
.string({ required_error: '은행코드는 필수입니다', invalid_type_error: '은행코드는 3자리 숫자 문자열입니다' })
|
|
446
|
+
.regex(/^\d{3}$/, '은행코드는 3자리 숫자입니다');
|
|
447
|
+
// 서버 패턴 ^-*(?:\d-*){6,20}$ 와 같은 뜻이다. 하이픈을 뗀 값으로 보내면 응답의 accountNumber와 형태가 맞는다.
|
|
448
|
+
const bankAccountNumberSchema = z
|
|
449
|
+
.string({ required_error: '계좌번호는 필수입니다', invalid_type_error: '계좌번호는 문자열이어야 합니다' })
|
|
450
|
+
.transform((value) => value.replace(/[-\s]/g, ''))
|
|
451
|
+
.pipe(z.string().regex(/^\d{6,20}$/, '계좌번호는 하이픈을 빼고 6~20자리 숫자여야 합니다'));
|
|
452
|
+
const BANK_ACCOUNT_HOLDER_AMOUNT_ERROR = `amount는 1 이상 ${BANK_ACCOUNT_HOLDER_AMOUNT_MAX} 이하의 10진 정수입니다`;
|
|
453
|
+
// --data의 JSON은 숫자만 받는다. boolean이나 배열을 Number 규칙으로 강제 변환하면 다른 금액을 조회할 수 있다.
|
|
454
|
+
const bankAccountHolderAmountSchema = z
|
|
455
|
+
.number({ invalid_type_error: BANK_ACCOUNT_HOLDER_AMOUNT_ERROR })
|
|
456
|
+
.int('amount는 1 이상의 정수입니다')
|
|
457
|
+
.min(1, 'amount는 1 이상의 정수입니다')
|
|
458
|
+
.max(BANK_ACCOUNT_HOLDER_AMOUNT_MAX, BANK_ACCOUNT_HOLDER_AMOUNT_ERROR);
|
|
459
|
+
// 단건 --amount 옵션은 문자열로 들어온다. 10진 숫자만 변환하고 지수·16진수·공백은 거부한다.
|
|
460
|
+
const bankAccountHolderCliAmountSchema = z
|
|
461
|
+
.string({ invalid_type_error: BANK_ACCOUNT_HOLDER_AMOUNT_ERROR })
|
|
462
|
+
.regex(/^\d+$/, BANK_ACCOUNT_HOLDER_AMOUNT_ERROR)
|
|
463
|
+
.transform(Number)
|
|
464
|
+
.pipe(bankAccountHolderAmountSchema);
|
|
465
|
+
const bankAccountHolderInquiryShape = {
|
|
466
|
+
bankCode: bankCodeSchema,
|
|
467
|
+
accountNumber: bankAccountNumberSchema,
|
|
468
|
+
};
|
|
469
|
+
export const bankAccountHolderInquirySchema = z.object({
|
|
470
|
+
...bankAccountHolderInquiryShape,
|
|
471
|
+
amount: bankAccountHolderAmountSchema.optional(),
|
|
472
|
+
});
|
|
473
|
+
export const bankAccountHolderCliInquirySchema = z.object({
|
|
474
|
+
...bankAccountHolderInquiryShape,
|
|
475
|
+
amount: bankAccountHolderCliAmountSchema.optional(),
|
|
476
|
+
});
|
|
477
|
+
// 서버는 과금만 중복을 줄여 계산하고 results는 요청한 순서와 개수를 그대로 돌려준다.
|
|
478
|
+
// 여기서 배열을 줄이면 보낸 accounts와 받은 results의 인덱스가 어긋난다.
|
|
479
|
+
// 중복을 줄이는 businessRegistrationStatusBulkCheckSchema와 다르게 두는 이유다.
|
|
480
|
+
export const bankAccountHolderBulkInquirySchema = z.object({
|
|
481
|
+
accounts: z
|
|
482
|
+
.array(bankAccountHolderInquirySchema)
|
|
483
|
+
.min(1, '조회할 계좌를 1개 이상 입력하세요')
|
|
484
|
+
.max(BANK_ACCOUNT_HOLDER_BULK_MAX, `계좌는 최대 ${BANK_ACCOUNT_HOLDER_BULK_MAX}개입니다. 나눠서 조회하세요`),
|
|
485
|
+
});
|
|
486
|
+
// ========================
|
|
368
487
|
// Amendment Schemas
|
|
369
488
|
// ========================
|
|
370
489
|
export const amendTerminationSchema = z.object({
|
|
@@ -698,6 +817,114 @@ export const jsonSchemas = {
|
|
|
698
817
|
},
|
|
699
818
|
},
|
|
700
819
|
},
|
|
820
|
+
'bank-account-holder-check-bulk': {
|
|
821
|
+
type: 'object',
|
|
822
|
+
description: '예금주 일괄 조회 스키마. --data, --file, --stdin 입력에 사용합니다. results는 accounts와 같은 순서, 같은 개수로 돌아오므로 중복 계좌를 줄이지 마세요.',
|
|
823
|
+
required: ['accounts'],
|
|
824
|
+
properties: {
|
|
825
|
+
accounts: {
|
|
826
|
+
type: 'array',
|
|
827
|
+
minItems: 1,
|
|
828
|
+
maxItems: BANK_ACCOUNT_HOLDER_BULK_MAX,
|
|
829
|
+
description: `조회할 계좌 (1~${BANK_ACCOUNT_HOLDER_BULK_MAX}개)`,
|
|
830
|
+
items: {
|
|
831
|
+
type: 'object',
|
|
832
|
+
required: ['bankCode', 'accountNumber'],
|
|
833
|
+
properties: {
|
|
834
|
+
bankCode: {
|
|
835
|
+
type: 'string',
|
|
836
|
+
pattern: '^\\d{3}$',
|
|
837
|
+
description: "금융결제원 3자리 은행코드. 지원 은행은 'bolta guide bank-account-holder'로 확인하세요",
|
|
838
|
+
example: '088',
|
|
839
|
+
},
|
|
840
|
+
accountNumber: {
|
|
841
|
+
type: 'string',
|
|
842
|
+
description: '계좌번호 (하이픈 허용, 하이픈을 뺀 숫자가 6~20자리)',
|
|
843
|
+
example: '1000000001',
|
|
844
|
+
},
|
|
845
|
+
amount: {
|
|
846
|
+
type: 'integer',
|
|
847
|
+
minimum: 1,
|
|
848
|
+
maximum: BANK_ACCOUNT_HOLDER_AMOUNT_MAX,
|
|
849
|
+
description: '금액 확인형 가상계좌의 입금 금액(원). 일반 계좌는 비워 두세요',
|
|
850
|
+
example: 20000,
|
|
851
|
+
},
|
|
852
|
+
},
|
|
853
|
+
},
|
|
854
|
+
},
|
|
855
|
+
},
|
|
856
|
+
},
|
|
857
|
+
'document-issue': {
|
|
858
|
+
type: 'object',
|
|
859
|
+
description: '홈택스 국세 증명 서류 발급 요청. document.type에 맞는 입력을 사용하세요.',
|
|
860
|
+
required: ['businessRegistrationNumber', 'document'],
|
|
861
|
+
properties: {
|
|
862
|
+
businessRegistrationNumber: {
|
|
863
|
+
type: 'string',
|
|
864
|
+
description: 'API 키가 속한 사업자의 사업자등록번호 (10자리, 하이픈 허용)',
|
|
865
|
+
example: '1234567890',
|
|
866
|
+
},
|
|
867
|
+
document: {
|
|
868
|
+
oneOf: [
|
|
869
|
+
{
|
|
870
|
+
type: 'object',
|
|
871
|
+
title: '사업자등록증명',
|
|
872
|
+
required: ['type', 'language'],
|
|
873
|
+
properties: {
|
|
874
|
+
type: { type: 'string', const: 'BUSINESS_REGISTRATION_PROOF' },
|
|
875
|
+
language: { type: 'string', enum: ['KO', 'EN'], description: '서류 언어' },
|
|
876
|
+
},
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
type: 'object',
|
|
880
|
+
title: '사업자등록증 재발급',
|
|
881
|
+
required: ['type', 'reason'],
|
|
882
|
+
properties: {
|
|
883
|
+
type: { type: 'string', const: 'BUSINESS_REGISTRATION_CERTIFICATE' },
|
|
884
|
+
reason: {
|
|
885
|
+
type: 'string',
|
|
886
|
+
minLength: 1,
|
|
887
|
+
maxLength: 10,
|
|
888
|
+
description: '재발급 사유. 앞뒤 공백을 제거한 뒤 1~10자이며 제어 문자는 사용할 수 없습니다.',
|
|
889
|
+
},
|
|
890
|
+
},
|
|
891
|
+
},
|
|
892
|
+
{
|
|
893
|
+
type: 'object',
|
|
894
|
+
title: '납세증명서',
|
|
895
|
+
required: ['type', 'purpose'],
|
|
896
|
+
properties: {
|
|
897
|
+
type: { type: 'string', const: 'TAX_PAYMENT_CERTIFICATE' },
|
|
898
|
+
purpose: {
|
|
899
|
+
type: 'string',
|
|
900
|
+
enum: ['PAYMENT_RECEIPT', 'OTHER'],
|
|
901
|
+
description: 'PAYMENT_RECEIPT(대금수령) | OTHER(기타)',
|
|
902
|
+
},
|
|
903
|
+
},
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
type: 'object',
|
|
907
|
+
title: '부가가치세 과세표준증명',
|
|
908
|
+
required: ['type', 'from', 'to'],
|
|
909
|
+
properties: {
|
|
910
|
+
type: { type: 'string', const: 'VAT_TAX_BASE_PROOF' },
|
|
911
|
+
from: { type: 'string', pattern: '^\\d{4}-(01|07)$', description: '과세기간 시작 연월' },
|
|
912
|
+
to: { type: 'string', pattern: '^\\d{4}-(06|12)$', description: '과세기간 종료 연월' },
|
|
913
|
+
},
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
type: 'object',
|
|
917
|
+
title: '표준재무제표증명',
|
|
918
|
+
required: ['type', 'fiscalYearEnd'],
|
|
919
|
+
properties: {
|
|
920
|
+
type: { type: 'string', const: 'STANDARD_FINANCIAL_STATEMENT_PROOF' },
|
|
921
|
+
fiscalYearEnd: { type: 'string', pattern: '^\\d{4}-(0[1-9]|1[0-2])$', description: '사업연도 종료 연월' },
|
|
922
|
+
},
|
|
923
|
+
},
|
|
924
|
+
],
|
|
925
|
+
},
|
|
926
|
+
},
|
|
927
|
+
},
|
|
701
928
|
};
|
|
702
929
|
const invoiceIssueRequestJsonSchema = JSON.parse(JSON.stringify(jsonSchemas['invoice-issue']));
|
|
703
930
|
invoiceIssueRequestJsonSchema.description =
|