sk-front-lib 0.19.14 → 0.19.15

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.
@@ -33,9 +33,42 @@ export function getSkPaymentStatusText(status) {
33
33
  case SkPaymentStatus.NaverPG:
34
34
  return '네이버페이';
35
35
  case SkPaymentStatus.Vbank:
36
- return '가상계좌 (토스)';
36
+ // Plan SC-B / FR-04 — PG 브랜드 노출 제거 (vbank-payment-phase3)
37
+ return '가상계좌';
37
38
  default:
38
39
  return status;
39
40
  }
40
41
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9tb2RlbC9zcmMvbGliL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNoQiwrQkFBbUIsQ0FBQTtJQUNuQixnQ0FBb0IsQ0FBQTtBQUN4QixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQVVYO0FBVkQsV0FBWSxlQUFlO0lBQ3ZCLHdDQUFxQixDQUFBO0lBQ3JCLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2Ysa0NBQWUsQ0FBQTtJQUNmLHVDQUFvQixDQUFBO0lBQ3BCLGtDQUFlLENBQUE7SUFDZixnQ0FBYSxDQUFBO0lBQ2Isa0NBQWUsQ0FBQTtJQUNmLGtDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQVZXLGVBQWUsS0FBZixlQUFlLFFBVTFCO0FBd0JELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUF1QjtJQUMxRCxRQUFRLE1BQU0sRUFBRTtRQUNaLEtBQUssZUFBZSxDQUFDLFFBQVE7WUFDekIsT0FBTyxPQUFPLENBQUM7UUFDbkIsS0FBSyxlQUFlLENBQUMsSUFBSTtZQUNyQixPQUFPLGVBQWUsQ0FBQztRQUMzQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sZUFBZSxDQUFDO1FBQzNCLEtBQUssZUFBZSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxPQUFPLENBQUM7UUFDbkIsS0FBSyxlQUFlLENBQUMsSUFBSTtZQUNyQixPQUFPLE1BQU0sQ0FBQztRQUNsQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sT0FBTyxDQUFDO1FBQ25CLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQztRQUMzQixLQUFLLGVBQWUsQ0FBQyxPQUFPO1lBQ3hCLE9BQU8sT0FBTyxDQUFDO1FBQ25CLEtBQUssZUFBZSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxXQUFXLENBQUM7UUFDdkI7WUFDSSxPQUFPLE1BQU0sQ0FBQztLQUNyQjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTa1BnVHlwZSB7XG4gICAgTmljZVBheSA9ICdOSUNFUEFZJyxcbiAgICBUb3NzUGF5bWVudCA9ICdUT1NTJ1xufVxuXG5leHBvcnQgZW51bSBTa1BheW1lbnRTdGF0dXMge1xuICAgIFRyYW5zZmVyID0gJ1RSQU5TRkVSJywgICAgICAgICAgLy8g66y07Ya17J6lIOyeheq4iFxuICAgIENhcmQgPSAnQ0FSRCcsICAgICAgICAgICAgICAgICAgLy8g7J2867CYIOy5tOuTnOqysOygnFxuICAgIENhcmQyID0gJ0NBUkQyJywgICAgICAgICAgICAgICAgLy8g66y07J207J6QIO2VoOu2gCDsubTrk5zqsrDsoJxcbiAgICBOYXZlciA9ICdOQVZFUicsICAgICAgICAgICAgICAgIC8vIOuEpOydtOuyhCDtjpjsnbQgKOyjvOusuO2YlSlcbiAgICBOYXZlclBHID0gJ05BVkVSX1BHJywgICAgICAgICAgIC8vIOuEpOydtOuyhCDtjpjsnbQgKOqysOygnO2YlSlcbiAgICBLYWthbyA9ICdLQUtBTycsICAgICAgICAgICAgICAgIC8vIOy5tOy5tOyYpCDtjpjsnbRcbiAgICBUb3NzID0gJ1RPU1MnLCAgICAgICAgICAgICAgICAgIC8vIO2GoOyKpCDtjpjsnbRcbiAgICBQYXljbyA9ICdQQVlDTycsICAgICAgICAgICAgICAgIC8vIO2OmOydtOy9lFxuICAgIFZiYW5rID0gJ1ZCQU5LJywgICAgICAgICAgICAgICAgLy8g6rCA7IOB6rOE7KKMICjthqDsiqQpIOKAlCBQbGFuIEZSLTAyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNrUGF5bWVudCB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgdHlwZT86IFNrUGF5bWVudFN0YXR1cztcbiAgICBwZ1R5cGU/OiBTa1BnVHlwZTtcbiAgICB0eElkPzogc3RyaW5nO1xuICAgIHJlc3BvbnNlQ29kZT86IHN0cmluZztcbiAgICByZXNwb25zZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgY2FuY2VsQ29kZT86IHN0cmluZztcbiAgICBjYW5jZWxNZXNzYWdlPzogc3RyaW5nO1xuICAgIHBhaWRQcmljZT86IG51bWJlcjtcbiAgICBiYW5rZXI/OiBzdHJpbmc7XG4gICAgYmFua0V4cGlyZURhdGU/OiBzdHJpbmc7XG4gICAgY2FyZE5hbWU/OiBzdHJpbmc7XG4gICAgY2FyZFF1b3RhPzogc3RyaW5nO1xuICAgIC8vIERlc2lnbiBSZWY6IMKnMy4zIOKAlCBWQkFOSyDsoITsmqkg7ZWE65OcIChQbGFuIEZSLTAzKVxuICAgIHZiYW5rQWNjb3VudD86IHN0cmluZztcbiAgICB2YmFua0NvZGU/OiBzdHJpbmc7XG4gICAgcmF3UmVzcG9uc2U/OiBzdHJpbmc7XG4gICAgcmF3Q2FuY2VsUmVzcG9uc2U/OiBzdHJpbmc7XG4gICAgcGFpZERhdGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTa1BheW1lbnRTdGF0dXNUZXh0KHN0YXR1czogU2tQYXltZW50U3RhdHVzKSB7XG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuVHJhbnNmZXI6XG4gICAgICAgICAgICByZXR1cm4gJ+ustO2Gteyepeyeheq4iCc7XG4gICAgICAgIGNhc2UgU2tQYXltZW50U3RhdHVzLkNhcmQ6XG4gICAgICAgICAgICByZXR1cm4gJ+y5tOuTnOqysOygnCAo7J2867CYIOustOydtOyekCknO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5DYXJkMjpcbiAgICAgICAgICAgIHJldHVybiAn7Lm065Oc6rKw7KCcICjrtoTri7Qg66y07J207J6QKSc7XG4gICAgICAgIGNhc2UgU2tQYXltZW50U3RhdHVzLktha2FvOlxuICAgICAgICAgICAgcmV0dXJuICfsubTsubTsmKTtjpjsnbQnO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5Ub3NzOlxuICAgICAgICAgICAgcmV0dXJuICfthqDsiqTtjpjsnbQnO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5QYXljbzpcbiAgICAgICAgICAgIHJldHVybiAnUEFZQ08nO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5OYXZlcjpcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuTmF2ZXJQRzpcbiAgICAgICAgICAgIHJldHVybiAn64Sk7J2067KE7Y6Y7J20JztcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuVmJhbms6XG4gICAgICAgICAgICByZXR1cm4gJ+qwgOyDgeqzhOyijCAo7Yag7IqkKSc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cbn1cbiJdfQ==
42
+ /**
43
+ * Design Ref: §3.1 — 가상계좌(VBANK) 은행코드 → 은행명 매핑.
44
+ * Plan SC-G: sk-api VbankBankCodeMap.MAP과 14개 엔트리 정합 유지.
45
+ *
46
+ * MUST sync with: sk-api/src/main/java/works/skullacy/api/domain/commerce/payment/util/VbankBankCodeMap.java
47
+ * Drift check: gap-detector rule — Object.keys(VBANK_BANK_CODE_MAP).length === 14
48
+ */
49
+ export const VBANK_BANK_CODE_MAP = Object.freeze({
50
+ '03': 'IBK기업은행',
51
+ '06': 'KB국민은행',
52
+ '07': 'Sh수협은행',
53
+ '11': 'NH농협은행',
54
+ '20': '우리은행',
55
+ '31': 'iM뱅크(대구)',
56
+ '32': '부산은행',
57
+ '34': '광주은행',
58
+ '37': '전북은행',
59
+ '39': '경남은행',
60
+ '45': '새마을금고',
61
+ '71': '우체국예금보험',
62
+ '81': '하나은행',
63
+ '88': '신한은행', // 금결원 088
64
+ });
65
+ /**
66
+ * VBANK 은행코드를 은행명으로 변환. 알 수 없는 코드는 null 반환.
67
+ * (백엔드 toName은 fallback으로 code 자체 반환 — 프론트는 표시 제어 용이성을 위해 null. Design §3.1 Note 참조)
68
+ */
69
+ export function getVbankBankName(code) {
70
+ if (!code)
71
+ return null;
72
+ return VBANK_BANK_CODE_MAP[code] ?? null;
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9tb2RlbC9zcmMvbGliL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNoQiwrQkFBbUIsQ0FBQTtJQUNuQixnQ0FBb0IsQ0FBQTtBQUN4QixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQVVYO0FBVkQsV0FBWSxlQUFlO0lBQ3ZCLHdDQUFxQixDQUFBO0lBQ3JCLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2Ysa0NBQWUsQ0FBQTtJQUNmLHVDQUFvQixDQUFBO0lBQ3BCLGtDQUFlLENBQUE7SUFDZixnQ0FBYSxDQUFBO0lBQ2Isa0NBQWUsQ0FBQTtJQUNmLGtDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQVZXLGVBQWUsS0FBZixlQUFlLFFBVTFCO0FBd0JELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUF1QjtJQUMxRCxRQUFRLE1BQU0sRUFBRTtRQUNaLEtBQUssZUFBZSxDQUFDLFFBQVE7WUFDekIsT0FBTyxPQUFPLENBQUM7UUFDbkIsS0FBSyxlQUFlLENBQUMsSUFBSTtZQUNyQixPQUFPLGVBQWUsQ0FBQztRQUMzQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sZUFBZSxDQUFDO1FBQzNCLEtBQUssZUFBZSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxPQUFPLENBQUM7UUFDbkIsS0FBSyxlQUFlLENBQUMsSUFBSTtZQUNyQixPQUFPLE1BQU0sQ0FBQztRQUNsQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sT0FBTyxDQUFDO1FBQ25CLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQztRQUMzQixLQUFLLGVBQWUsQ0FBQyxPQUFPO1lBQ3hCLE9BQU8sT0FBTyxDQUFDO1FBQ25CLEtBQUssZUFBZSxDQUFDLEtBQUs7WUFDdEIsMERBQTBEO1lBQzFELE9BQU8sTUFBTSxDQUFDO1FBQ2xCO1lBQ0ksT0FBTyxNQUFNLENBQUM7S0FDckI7QUFDTCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDL0UsSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxVQUFVO0lBQ2hCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsU0FBUztJQUNmLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU0sRUFBYSxVQUFVO0NBQ3RDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUErQjtJQUM1RCxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3ZCLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTa1BnVHlwZSB7XG4gICAgTmljZVBheSA9ICdOSUNFUEFZJyxcbiAgICBUb3NzUGF5bWVudCA9ICdUT1NTJ1xufVxuXG5leHBvcnQgZW51bSBTa1BheW1lbnRTdGF0dXMge1xuICAgIFRyYW5zZmVyID0gJ1RSQU5TRkVSJywgICAgICAgICAgLy8g66y07Ya17J6lIOyeheq4iFxuICAgIENhcmQgPSAnQ0FSRCcsICAgICAgICAgICAgICAgICAgLy8g7J2867CYIOy5tOuTnOqysOygnFxuICAgIENhcmQyID0gJ0NBUkQyJywgICAgICAgICAgICAgICAgLy8g66y07J207J6QIO2VoOu2gCDsubTrk5zqsrDsoJxcbiAgICBOYXZlciA9ICdOQVZFUicsICAgICAgICAgICAgICAgIC8vIOuEpOydtOuyhCDtjpjsnbQgKOyjvOusuO2YlSlcbiAgICBOYXZlclBHID0gJ05BVkVSX1BHJywgICAgICAgICAgIC8vIOuEpOydtOuyhCDtjpjsnbQgKOqysOygnO2YlSlcbiAgICBLYWthbyA9ICdLQUtBTycsICAgICAgICAgICAgICAgIC8vIOy5tOy5tOyYpCDtjpjsnbRcbiAgICBUb3NzID0gJ1RPU1MnLCAgICAgICAgICAgICAgICAgIC8vIO2GoOyKpCDtjpjsnbRcbiAgICBQYXljbyA9ICdQQVlDTycsICAgICAgICAgICAgICAgIC8vIO2OmOydtOy9lFxuICAgIFZiYW5rID0gJ1ZCQU5LJywgICAgICAgICAgICAgICAgLy8g6rCA7IOB6rOE7KKMICjthqDsiqQpIOKAlCBQbGFuIEZSLTAyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNrUGF5bWVudCB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgdHlwZT86IFNrUGF5bWVudFN0YXR1cztcbiAgICBwZ1R5cGU/OiBTa1BnVHlwZTtcbiAgICB0eElkPzogc3RyaW5nO1xuICAgIHJlc3BvbnNlQ29kZT86IHN0cmluZztcbiAgICByZXNwb25zZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgY2FuY2VsQ29kZT86IHN0cmluZztcbiAgICBjYW5jZWxNZXNzYWdlPzogc3RyaW5nO1xuICAgIHBhaWRQcmljZT86IG51bWJlcjtcbiAgICBiYW5rZXI/OiBzdHJpbmc7XG4gICAgYmFua0V4cGlyZURhdGU/OiBzdHJpbmc7XG4gICAgY2FyZE5hbWU/OiBzdHJpbmc7XG4gICAgY2FyZFF1b3RhPzogc3RyaW5nO1xuICAgIC8vIERlc2lnbiBSZWY6IMKnMy4zIOKAlCBWQkFOSyDsoITsmqkg7ZWE65OcIChQbGFuIEZSLTAzKVxuICAgIHZiYW5rQWNjb3VudD86IHN0cmluZztcbiAgICB2YmFua0NvZGU/OiBzdHJpbmc7XG4gICAgcmF3UmVzcG9uc2U/OiBzdHJpbmc7XG4gICAgcmF3Q2FuY2VsUmVzcG9uc2U/OiBzdHJpbmc7XG4gICAgcGFpZERhdGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTa1BheW1lbnRTdGF0dXNUZXh0KHN0YXR1czogU2tQYXltZW50U3RhdHVzKSB7XG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuVHJhbnNmZXI6XG4gICAgICAgICAgICByZXR1cm4gJ+ustO2Gteyepeyeheq4iCc7XG4gICAgICAgIGNhc2UgU2tQYXltZW50U3RhdHVzLkNhcmQ6XG4gICAgICAgICAgICByZXR1cm4gJ+y5tOuTnOqysOygnCAo7J2867CYIOustOydtOyekCknO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5DYXJkMjpcbiAgICAgICAgICAgIHJldHVybiAn7Lm065Oc6rKw7KCcICjrtoTri7Qg66y07J207J6QKSc7XG4gICAgICAgIGNhc2UgU2tQYXltZW50U3RhdHVzLktha2FvOlxuICAgICAgICAgICAgcmV0dXJuICfsubTsubTsmKTtjpjsnbQnO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5Ub3NzOlxuICAgICAgICAgICAgcmV0dXJuICfthqDsiqTtjpjsnbQnO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5QYXljbzpcbiAgICAgICAgICAgIHJldHVybiAnUEFZQ08nO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5OYXZlcjpcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuTmF2ZXJQRzpcbiAgICAgICAgICAgIHJldHVybiAn64Sk7J2067KE7Y6Y7J20JztcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuVmJhbms6XG4gICAgICAgICAgICAvLyBQbGFuIFNDLUIgLyBGUi0wNCDigJQgUEcg67iM656c65OcIOuFuOy2nCDsoJzqsbAgKHZiYW5rLXBheW1lbnQtcGhhc2UzKVxuICAgICAgICAgICAgcmV0dXJuICfqsIDsg4Hqs4TsoownO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG59XG5cbi8qKlxuICogRGVzaWduIFJlZjogwqczLjEg4oCUIOqwgOyDgeqzhOyijChWQkFOSykg7J2A7ZaJ7L2U65OcIOKGkiDsnYDtlonrqoUg66ek7ZWRLlxuICogUGxhbiBTQy1HOiBzay1hcGkgVmJhbmtCYW5rQ29kZU1hcC5NQVDqs7wgMTTqsJwg7JeU7Yq466asIOygle2VqSDsnKDsp4AuXG4gKlxuICogTVVTVCBzeW5jIHdpdGg6IHNrLWFwaS9zcmMvbWFpbi9qYXZhL3dvcmtzL3NrdWxsYWN5L2FwaS9kb21haW4vY29tbWVyY2UvcGF5bWVudC91dGlsL1ZiYW5rQmFua0NvZGVNYXAuamF2YVxuICogRHJpZnQgY2hlY2s6ICAgIGdhcC1kZXRlY3RvciBydWxlIOKAlCBPYmplY3Qua2V5cyhWQkFOS19CQU5LX0NPREVfTUFQKS5sZW5ndGggPT09IDE0XG4gKi9cbmV4cG9ydCBjb25zdCBWQkFOS19CQU5LX0NPREVfTUFQOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IE9iamVjdC5mcmVlemUoe1xuICAgICcwMyc6ICdJQkvquLDsl4XsnYDtloknLCAgICAgICAgIC8vIOq4iOqysOybkCAwMDNcbiAgICAnMDYnOiAnS0Lqta3rr7zsnYDtloknLCAgICAgICAgICAvLyDquIjqsrDsm5AgMDA0XG4gICAgJzA3JzogJ1No7IiY7ZiR7J2A7ZaJJywgICAgICAgICAgLy8g6riI6rKw7JuQIDAwN1xuICAgICcxMSc6ICdOSOuGje2YkeydgO2WiScsICAgICAgICAgIC8vIOq4iOqysOybkCAwMTFcbiAgICAnMjAnOiAn7Jqw66as7J2A7ZaJJywgICAgICAgICAgICAvLyDquIjqsrDsm5AgMDIwXG4gICAgJzMxJzogJ2lN67GF7YGsKOuMgOq1rCknLCAgICAgICAgLy8g6riI6rKw7JuQIDAzMVxuICAgICczMic6ICfrtoDsgrDsnYDtloknLCAgICAgICAgICAgIC8vIOq4iOqysOybkCAwMzJcbiAgICAnMzQnOiAn6rSR7KO87J2A7ZaJJywgICAgICAgICAgICAvLyDquIjqsrDsm5AgMDM0XG4gICAgJzM3JzogJ+yghOu2geydgO2WiScsICAgICAgICAgICAgLy8g6riI6rKw7JuQIDAzN1xuICAgICczOSc6ICfqsr3rgqjsnYDtloknLCAgICAgICAgICAgIC8vIOq4iOqysOybkCAwMzlcbiAgICAnNDUnOiAn7IOI66eI7J2E6riI6rOgJywgICAgICAgICAgLy8g6riI6rKw7JuQIDA0NVxuICAgICc3MSc6ICfsmrDssrTqta3smIjquIjrs7Ttl5gnLCAgICAgIC8vIOq4iOqysOybkCAwNzFcbiAgICAnODEnOiAn7ZWY64KY7J2A7ZaJJywgICAgICAgICAgICAvLyDquIjqsrDsm5AgMDgxXG4gICAgJzg4JzogJ+yLoO2VnOydgO2WiScsICAgICAgICAgICAgLy8g6riI6rKw7JuQIDA4OFxufSk7XG5cbi8qKlxuICogVkJBTksg7J2A7ZaJ7L2U65Oc66W8IOydgO2WieuqheycvOuhnCDrs4DtmZguIOyVjCDsiJgg7JeG64qUIOy9lOuTnOuKlCBudWxsIOuwmO2ZmC5cbiAqICjrsLHsl5Trk5wgdG9OYW1l7J2AIGZhbGxiYWNr7Jy866GcIGNvZGUg7J6Q7LK0IOuwmO2ZmCDigJQg7ZSE66Gg7Yq464qUIO2RnOyLnCDsoJzslrQg7Jqp7J207ISx7J2EIOychO2VtCBudWxsLiBEZXNpZ24gwqczLjEgTm90ZSDssLjsobApXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYmFua0JhbmtOYW1lKGNvZGU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWNvZGUpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBWQkFOS19CQU5LX0NPREVfTUFQW2NvZGVdID8/IG51bGw7XG59XG4iXX0=
@@ -781,11 +781,45 @@ function getSkPaymentStatusText(status) {
781
781
  case SkPaymentStatus.NaverPG:
782
782
  return '네이버페이';
783
783
  case SkPaymentStatus.Vbank:
784
- return '가상계좌 (토스)';
784
+ // Plan SC-B / FR-04 — PG 브랜드 노출 제거 (vbank-payment-phase3)
785
+ return '가상계좌';
785
786
  default:
786
787
  return status;
787
788
  }
788
789
  }
790
+ /**
791
+ * Design Ref: §3.1 — 가상계좌(VBANK) 은행코드 → 은행명 매핑.
792
+ * Plan SC-G: sk-api VbankBankCodeMap.MAP과 14개 엔트리 정합 유지.
793
+ *
794
+ * MUST sync with: sk-api/src/main/java/works/skullacy/api/domain/commerce/payment/util/VbankBankCodeMap.java
795
+ * Drift check: gap-detector rule — Object.keys(VBANK_BANK_CODE_MAP).length === 14
796
+ */
797
+ const VBANK_BANK_CODE_MAP = Object.freeze({
798
+ '03': 'IBK기업은행',
799
+ '06': 'KB국민은행',
800
+ '07': 'Sh수협은행',
801
+ '11': 'NH농협은행',
802
+ '20': '우리은행',
803
+ '31': 'iM뱅크(대구)',
804
+ '32': '부산은행',
805
+ '34': '광주은행',
806
+ '37': '전북은행',
807
+ '39': '경남은행',
808
+ '45': '새마을금고',
809
+ '71': '우체국예금보험',
810
+ '81': '하나은행',
811
+ '88': '신한은행', // 금결원 088
812
+ });
813
+ /**
814
+ * VBANK 은행코드를 은행명으로 변환. 알 수 없는 코드는 null 반환.
815
+ * (백엔드 toName은 fallback으로 code 자체 반환 — 프론트는 표시 제어 용이성을 위해 null. Design §3.1 Note 참조)
816
+ */
817
+ function getVbankBankName(code) {
818
+ var _a;
819
+ if (!code)
820
+ return null;
821
+ return (_a = VBANK_BANK_CODE_MAP[code]) !== null && _a !== void 0 ? _a : null;
822
+ }
789
823
 
790
824
  var SkShippingStatus;
791
825
  (function (SkShippingStatus) {
@@ -1173,5 +1207,5 @@ class SkMobileMainData {
1173
1207
  * Generated bundle index. Do not edit.
1174
1208
  */
1175
1209
 
1176
- export { Audit, FileType, SkAffiliateRequestStatus, SkAffiliateTargetApply, SkAffiliateTargetType, SkArticle, SkBoard, SkCart, SkCartOption, SkCategoryType, SkComment, SkContactStatus, SkContactType, SkCouponTarget, SkCouponTrigger, SkCouponType, SkDocument, SkDocumentAttachment, SkDocumentCommentChild, SkDocumentCommentParent, SkDocumentType, SkFile, SkGiftType, SkGridData, SkGridItem, SkGridItemIconData, SkGridItemImageData, SkGridItemSlideData, SkGridItemType, SkMobileMainData, SkNicePayCreditCards, SkOrderCancelType, SkOrderDetail, SkOrderDetailItem, SkOrderStatus, SkOrderType, SkPaymentStatus, SkPgType, SkPoint, SkPointType, SkProduct, SkProductAccessPolicy, SkProductBrand, SkProductCategory, SkProductImage, SkProductOptionType, SkProductPackage, SkProductStatus, SkProductStuffType, SkProductType, SkPromotion, SkPromotionAccessPolicy, SkPromotionCategory, SkPromotionGift, SkPromotionGiftGroup, SkPromotionGiftServeType, SkPromotionTarget, SkShippingMethod, SkShippingStatus, SkStore, SkTossPayCreditCards, SkUser, SkUserRoleName, SkValueType, getNicePayCreditCardTitle, getSkContactTypeText, getSkOrderCancelTypeText, getSkOrderStatusText, getSkPaymentStatusText, getSkProductAccessPolicyText, getSkProductStatusText, getSkShippingMethodText, getTossPayCreditCardTitle };
1210
+ export { Audit, FileType, SkAffiliateRequestStatus, SkAffiliateTargetApply, SkAffiliateTargetType, SkArticle, SkBoard, SkCart, SkCartOption, SkCategoryType, SkComment, SkContactStatus, SkContactType, SkCouponTarget, SkCouponTrigger, SkCouponType, SkDocument, SkDocumentAttachment, SkDocumentCommentChild, SkDocumentCommentParent, SkDocumentType, SkFile, SkGiftType, SkGridData, SkGridItem, SkGridItemIconData, SkGridItemImageData, SkGridItemSlideData, SkGridItemType, SkMobileMainData, SkNicePayCreditCards, SkOrderCancelType, SkOrderDetail, SkOrderDetailItem, SkOrderStatus, SkOrderType, SkPaymentStatus, SkPgType, SkPoint, SkPointType, SkProduct, SkProductAccessPolicy, SkProductBrand, SkProductCategory, SkProductImage, SkProductOptionType, SkProductPackage, SkProductStatus, SkProductStuffType, SkProductType, SkPromotion, SkPromotionAccessPolicy, SkPromotionCategory, SkPromotionGift, SkPromotionGiftGroup, SkPromotionGiftServeType, SkPromotionTarget, SkShippingMethod, SkShippingStatus, SkStore, SkTossPayCreditCards, SkUser, SkUserRoleName, SkValueType, VBANK_BANK_CODE_MAP, getNicePayCreditCardTitle, getSkContactTypeText, getSkOrderCancelTypeText, getSkOrderStatusText, getSkPaymentStatusText, getSkProductAccessPolicyText, getSkProductStatusText, getSkShippingMethodText, getTossPayCreditCardTitle, getVbankBankName };
1177
1211
  //# sourceMappingURL=sk-front-lib-model.mjs.map