sales-frontend-api 0.0.57 → 0.0.59
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/dist/client.cjs.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/method.cjs.map +1 -1
- package/dist/method.d.cts +8 -8
- package/dist/method.d.ts +8 -8
- package/dist/method.js.map +1 -1
- package/package.json +11 -11
package/dist/client.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts"],"names":["axios","config","addRequestLog","addResponseLog","addErrorLog","error","isDspApp","Bridge"],"mappings":"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","file":"client.cjs","sourcesContent":["/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\nimport { getEnvironmentFromHostname } from 'sales-frontend-utils';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const accessToken = await authClient.getAT();\n console.log('accessToken', accessToken);\n if (accessToken) {\n config.headers['Authorization'] = `Bearer ${accessToken}`;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', 'ScreenId');\n }\n\n /**\n * 커스텀헤더 주입\n */\n this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n */\n this.api(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return cookieClient.getCookie('accessToken');\n }\n\n if (this.isApp()) {\n return (await Bridge.native.getAccessToken()).accessToken;\n } else {\n /**\n * pc인 경우는, middleware.ts 에서 요청헤더에 주입\n */\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n * @returns Promise<string> 액세스토큰\n */\n async refreshToken(): Promise<string> {\n if (this.isApp()) {\n /**\n * @todo : 브릿지 함수 호출 스펙에 맞게 수정필요\n */\n // @ts-ignore\n //return await bridge.callToNative('', '', 'refreshToken', {});\n return '';\n } else {\n /**\n * @todo : 내부api호출\n */\n const httpclient = new HttpClientAxios({});\n const res = await httpclient.api.get('/internal/api/auth/refresh');\n\n return res?.data.accessToken;\n }\n }\n}\n//\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts"],"names":["axios","config","addRequestLog","addResponseLog","addErrorLog","error","isDspApp","Bridge"],"mappings":"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","file":"client.cjs","sourcesContent":["/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const accessToken = await authClient.getAT();\n console.log('accessToken', accessToken);\n if (accessToken) {\n config.headers['Authorization'] = `Bearer ${accessToken}`;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', 'ScreenId');\n }\n\n /**\n * 커스텀헤더 주입\n */\n this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n */\n this.api(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return cookieClient.getCookie('accessToken');\n }\n\n if (this.isApp()) {\n return (await Bridge.native.getAccessToken()).accessToken;\n } else {\n /**\n * pc인 경우는, middleware.ts 에서 요청헤더에 주입\n */\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n * @returns Promise<string> 액세스토큰\n */\n async refreshToken(): Promise<string> {\n if (this.isApp()) {\n /**\n * @todo : 브릿지 함수 호출 스펙에 맞게 수정필요\n */\n // @ts-ignore\n //return await bridge.callToNative('', '', 'refreshToken', {});\n return '';\n } else {\n /**\n * @todo : 내부api호출\n */\n const httpclient = new HttpClientAxios({});\n const res = await httpclient.api.get('/internal/api/auth/refresh');\n\n return res?.data.accessToken;\n }\n }\n}\n//\n"]}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts"],"names":["config","error"],"mappings":"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","file":"client.js","sourcesContent":["/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\nimport { getEnvironmentFromHostname } from 'sales-frontend-utils';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const accessToken = await authClient.getAT();\n console.log('accessToken', accessToken);\n if (accessToken) {\n config.headers['Authorization'] = `Bearer ${accessToken}`;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', 'ScreenId');\n }\n\n /**\n * 커스텀헤더 주입\n */\n this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n */\n this.api(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return cookieClient.getCookie('accessToken');\n }\n\n if (this.isApp()) {\n return (await Bridge.native.getAccessToken()).accessToken;\n } else {\n /**\n * pc인 경우는, middleware.ts 에서 요청헤더에 주입\n */\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n * @returns Promise<string> 액세스토큰\n */\n async refreshToken(): Promise<string> {\n if (this.isApp()) {\n /**\n * @todo : 브릿지 함수 호출 스펙에 맞게 수정필요\n */\n // @ts-ignore\n //return await bridge.callToNative('', '', 'refreshToken', {});\n return '';\n } else {\n /**\n * @todo : 내부api호출\n */\n const httpclient = new HttpClientAxios({});\n const res = await httpclient.api.get('/internal/api/auth/refresh');\n\n return res?.data.accessToken;\n }\n }\n}\n//\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts"],"names":["config","error"],"mappings":"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","file":"client.js","sourcesContent":["/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const accessToken = await authClient.getAT();\n console.log('accessToken', accessToken);\n if (accessToken) {\n config.headers['Authorization'] = `Bearer ${accessToken}`;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', 'ScreenId');\n }\n\n /**\n * 커스텀헤더 주입\n */\n this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n */\n this.api(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return cookieClient.getCookie('accessToken');\n }\n\n if (this.isApp()) {\n return (await Bridge.native.getAccessToken()).accessToken;\n } else {\n /**\n * pc인 경우는, middleware.ts 에서 요청헤더에 주입\n */\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n * @returns Promise<string> 액세스토큰\n */\n async refreshToken(): Promise<string> {\n if (this.isApp()) {\n /**\n * @todo : 브릿지 함수 호출 스펙에 맞게 수정필요\n */\n // @ts-ignore\n //return await bridge.callToNative('', '', 'refreshToken', {});\n return '';\n } else {\n /**\n * @todo : 내부api호출\n */\n const httpclient = new HttpClientAxios({});\n const res = await httpclient.api.get('/internal/api/auth/refresh');\n\n return res?.data.accessToken;\n }\n }\n}\n//\n"]}
|
package/dist/method.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts","../src/http-methods/sample/sample.service.ts","../src/http-methods/method-util.ts","../src/http-methods/search-modal/address/address-search.service.ts","../src/http-methods/search-modal/address/use-search-address-query.ts","../src/http-methods/search-modal/address/postal-code.service.ts","../src/http-methods/search-modal/address/use-search-postal-code-query.ts","../src/http-methods/search-modal/address/address-standardization.service.ts","../src/http-methods/search-modal/address/use-search-address-standardization-query.ts","../src/http-methods/search-modal/occupation/occupation-search.service.ts","../src/http-methods/search-modal/occupation/use-search-occupation-query.ts","../src/http-methods/search-modal/vehicle/vehicle-search.service.ts","../src/http-methods/search-modal/vehicle/use-search-vehicle-query.ts","../src/http-methods/search-modal/employee/employee-search.service.ts","../src/http-methods/search-modal/employee/use-search-employee-profile-query.ts","../src/http-methods/search-modal/organization/organization-search.service.ts","../src/http-methods/search-modal/organization/use-search-organization-query.ts","../src/http-methods/search-modal/nationality/nationality-search.service.ts","../src/http-methods/search-modal/nationality/use-search-nationality-query.ts","../src/http-methods/search-modal/customer-list/customer-list-search.service.ts","../src/http-methods/search-modal/customer-list/use-search-customer-list-query.ts","../src/http-methods/search-modal/risk-grade/risk-grade-search.service.ts","../src/http-methods/search-modal/risk-grade/use-search-risk-grade-query.ts","../src/http-methods/search-modal/dea-customer-list/dea-customer-list-search.service.ts","../src/http-methods/search-modal/dea-customer-list/use-search-dea-customer-list-query.ts","../src/http-methods/search-modal/visa/visa-search.service.ts","../src/http-methods/search-modal/visa/use-search-visa-query.ts","../src/http-methods/fp-login/login-dsp.service.ts","../src/http-methods/remote-identity-verification/remote-identity-verification.service.ts","../src/http-methods/common-code/common-code-search.service.ts","../src/http-methods/common-code/use-search-common-code-query.ts"],"names":["axios","config","addRequestLog","addResponseLog","addErrorLog","error","isDspApp","Bridge","useQuery"],"mappings":"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","file":"method.cjs","sourcesContent":["/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\nimport { getEnvironmentFromHostname } from 'sales-frontend-utils';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const accessToken = await authClient.getAT();\n console.log('accessToken', accessToken);\n if (accessToken) {\n config.headers['Authorization'] = `Bearer ${accessToken}`;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', 'ScreenId');\n }\n\n /**\n * 커스텀헤더 주입\n */\n this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n */\n this.api(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return cookieClient.getCookie('accessToken');\n }\n\n if (this.isApp()) {\n return (await Bridge.native.getAccessToken()).accessToken;\n } else {\n /**\n * pc인 경우는, middleware.ts 에서 요청헤더에 주입\n */\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n * @returns Promise<string> 액세스토큰\n */\n async refreshToken(): Promise<string> {\n if (this.isApp()) {\n /**\n * @todo : 브릿지 함수 호출 스펙에 맞게 수정필요\n */\n // @ts-ignore\n //return await bridge.callToNative('', '', 'refreshToken', {});\n return '';\n } else {\n /**\n * @todo : 내부api호출\n */\n const httpclient = new HttpClientAxios({});\n const res = await httpclient.api.get('/internal/api/auth/refresh');\n\n return res?.data.accessToken;\n }\n }\n}\n//\n","import { HttpClientAxios } from '../../client';\n\nimport type { TestResponse } from './sample.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\ninterface TestRequest {\n id?: number;\n config?: AxiosRequestConfig;\n setupFn?: (httpClient: HttpClientAxios) => void;\n}\nexport const getTestMethod = async ({ id, config, setupFn }: TestRequest) => {\n const testAPI = `https://jsonplaceholder.typicode.com/users/${id}`;\n\n const httpClient = new HttpClientAxios(config);\n\n const res = await httpClient.api.get<TestResponse>(testAPI);\n\n return res.data;\n};\n","export const getServiceCode = () => {\n // @ts-ignore\n if (typeof window.isStorybookEnv === 'boolean') {\n return '';\n } else {\n return `/${location.pathname.split('/')[1]}`;\n }\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\n\nexport const getAddressListMethod = async (params: AddressListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\nimport { getAddressListMethod } from './address-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressQuery = (\n params: AddressListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchAddress', JSON.stringify(params)],\n queryFn: () => {\n return getAddressListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\n\nexport const getAddressPostalCodeMethod = async (params: AddressPostalCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address/postal-code`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressPostalCodeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\nimport { getAddressPostalCodeMethod } from './postal-code.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchPostalCodeQuery = (\n params: AddressPostalCodeRequestDto,\n options?: CustomQueryOptions<DspResponseAddressPostalCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWordName,\n retry: false,\n queryKey: ['searchPostalCode', JSON.stringify(params)],\n queryFn: () => {\n return getAddressPostalCodeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\n\nexport const getAddressStandardizationListMethod = async (\n params: AddressStandardizationListRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-standardization-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressStandardizationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\nimport { getAddressStandardizationListMethod } from './address-standardization.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressStandardizationQuery = (\n params: AddressStandardizationListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressStandardizationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.baseAddress,\n retry: false,\n queryKey: ['searchAddressStandardization', JSON.stringify(params)],\n queryFn: () => {\n return getAddressStandardizationListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\n\n/**\n * @description 직종 목록 조회\n */\nexport const getOccupationListMethod = async (params: OccupationListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n\n/**\n * @description 직종 상세 조회\n */\nexport const getOccupationDetailMethod = async (params: OccupationDetailRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation/detail`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationDetailResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\nimport { getOccupationDetailMethod, getOccupationListMethod } from './occupation-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\n/**\n * @description 직종 목록 조회 쿼리\n */\nexport const useSearchOccupationQuery = (\n params: OccupationListRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationList', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationListMethod(params, config);\n },\n ...options\n });\n};\n\n/**\n * @description 직종 상세 조회 쿼리\n */\nexport const useSearchOccupationDetailQuery = (\n params: OccupationDetailRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationDetailResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationDetail', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationDetailMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\n\nexport const getVehicleListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/vehicle-type-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVehicleTypeListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\nimport { getVehicleListMethod } from './vehicle-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVehicleQuery = (\n options?: CustomQueryOptions<DspResponseVehicleTypeListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVehicle'],\n queryFn: () => {\n return getVehicleListMethod(config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseEmployeeProfileResponseDto, EmployeeProfileSearchRequestDto } from './employee-search.dto';\n\nexport const getEmployeeProfileListMethod = async (\n params: EmployeeProfileSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/employee`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseEmployeeProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseEmployeeProfileResponseDto,\n EmployeeProfileSearchRequestDto,\n} from './employee-search.dto';\nimport { getEmployeeProfileListMethod } from './employee-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchEmployeeProfileQuery = (\n params: EmployeeProfileSearchRequestDto,\n options?: CustomQueryOptions<DspResponseEmployeeProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchEmployeeProfile', JSON.stringify(params)],\n queryFn: () => {\n return getEmployeeProfileListMethod(params, config);\n },\n ...options,\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseOrganizationProfileResponse, OrganizationSearchRequestDto } from './organization-search.dto';\n\nexport const getOrganizationProfileListMethod = async (\n params: OrganizationSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n ///v1/get/participant/profile/organization\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/organization`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOrganizationProfileResponse>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseOrganizationProfileResponse,\n OrganizationSearchRequestDto,\n} from './organization-search.dto';\nimport { getOrganizationProfileListMethod } from './organization-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchOrganizationQuery = (\n params: OrganizationSearchRequestDto,\n options?: CustomQueryOptions<DspResponseOrganizationProfileResponse>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchOrganization', JSON.stringify(params)],\n queryFn: () => {\n return getOrganizationProfileListMethod(params, config);\n },\n ...options,\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\n\nexport const getNationalityListMethod = async (params: NationalitySearchRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/nationality-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseNationalityListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\nimport { getNationalityListMethod } from './nationality-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchNationalityQuery = (\n params: NationalitySearchRequestDto,\n options?: CustomQueryOptions<DspResponseNationalityListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n console.log('search nationality', params.searchKeyWord);\n\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchNationality', JSON.stringify(params)],\n queryFn: () => {\n return getNationalityListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\n\nexport const getCustomerListMethod = async (params: CustomerListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCustomerListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getCustomerListMethod } from './customer-list-search.service';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCustomerListQuery = (\n params: CustomerListRequestDto,\n options?: CustomQueryOptions<DspResponseCustomerListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\n\nexport const getRiskGradeMethod = async (params: RiskGradeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/risk-grade`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseRiskGradeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\nimport { getRiskGradeMethod } from './risk-grade-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchRiskGradeQuery = (\n params: RiskGradeRequestDto,\n options?: CustomQueryOptions<DspResponseRiskGradeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.occupationIndustryCode && !!params.vehicleTypeCode,\n retry: false,\n queryKey: ['searchRiskGrade', JSON.stringify(params)],\n queryFn: () => {\n return getRiskGradeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\n\nexport const getDspCustomerListMethod = async (\n params: PersonalCustomerProfileRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseListPersonalCustomerProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getDspCustomerListMethod } from './dea-customer-list-search.service';\n\nimport type {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchDspCustomerListQuery = (\n params: PersonalCustomerProfileRequestDto,\n options?: CustomQueryOptions<DspResponseListPersonalCustomerProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchDspCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getDspCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\n\nexport const getVisaListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/visa-status-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVisaStatusListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getVisaListMethod } from './visa-search.service';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVisaQuery = (\n options?: CustomQueryOptions<DspResponseVisaStatusListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVisa'],\n queryFn: () => {\n return getVisaListMethod(config);\n },\n ...options\n });\n};\n","import { HttpClientAxios } from '../../client';\n\nimport { FpLoginResponseDto } from './login-dsp.dto';\n\n/**\n * @param userId 사번\n */\nexport const postLoginMethod = async (userId: number) => {\n console.log('userId', userId);\n const apiUrl = '/api/dat/v1/post/login';\n const httpClient = new HttpClientAxios({\n headers: {\n 'Debug-Refresh-Queue-Off': 'true'\n }\n });\n\n const res = await httpClient.api.post<FpLoginResponseDto>(apiUrl, {\n userId,\n channelType: 'DSP_TABLET'\n });\n\n return res.data;\n};\n","import { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { ApiConfig } from '../shared.dto';\nimport type {\n RemoteIdentityVerificationSystemTokenRequestDto,\n DspResponseRemoteIdentityVerificationSystemTokenResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n RemoteIdentityVerificationSystemIdentificationCardResponseDto\n} from './remote-identity-verification.dto';\n\n/**\n * 토큰 발급 API\n * @param params\n * @param axiosConfig\n * @returns\n */\nexport const getRemoteIdentityVerificationSystemToken = async (\n params: RemoteIdentityVerificationSystemTokenRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/token`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseRemoteIdentityVerificationSystemTokenResponseDto>(apiUrl, params);\n\n return response.data;\n};\n\n/**\n * 비대면 인증 시스템 신분증 진위확인 API\n * @param params 진위확인 요청 파라미터\n * @param axiosConfig API 설정\n * @returns 신분증 진위확인 응답 데이터\n */\nexport const confirmRemoteIdentityVerificationSystemIdentificationCard = async (\n params: RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/identification-card/confirm`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<RemoteIdentityVerificationSystemIdentificationCardResponseDto>(apiUrl, params);\n\n return response.data;\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\n\nexport const getCommonCodeListMethod = async (param: CommonCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/common-code/list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCommonCodeResponseDto>(apiUrl, param);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { CustomQueryOptions } from '../method.types';\n\nimport { getCommonCodeListMethod } from './common-code-search.service';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCommonCodeQuery = (\n param: CommonCodeRequestDto,\n options?: CustomQueryOptions<DspResponseCommonCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!param.commonCodeId,\n retry: false,\n queryKey: ['searchCommonCode', param.commonCodeId],\n queryFn: () => {\n return getCommonCodeListMethod(param, config);\n },\n ...options\n });\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts","../src/http-methods/sample/sample.service.ts","../src/http-methods/method-util.ts","../src/http-methods/search-modal/address/address-search.service.ts","../src/http-methods/search-modal/address/use-search-address-query.ts","../src/http-methods/search-modal/address/postal-code.service.ts","../src/http-methods/search-modal/address/use-search-postal-code-query.ts","../src/http-methods/search-modal/address/address-standardization.service.ts","../src/http-methods/search-modal/address/use-search-address-standardization-query.ts","../src/http-methods/search-modal/occupation/occupation-search.service.ts","../src/http-methods/search-modal/occupation/use-search-occupation-query.ts","../src/http-methods/search-modal/vehicle/vehicle-search.service.ts","../src/http-methods/search-modal/vehicle/use-search-vehicle-query.ts","../src/http-methods/search-modal/employee/employee-search.service.ts","../src/http-methods/search-modal/employee/use-search-employee-profile-query.ts","../src/http-methods/search-modal/organization/organization-search.service.ts","../src/http-methods/search-modal/organization/use-search-organization-query.ts","../src/http-methods/search-modal/nationality/nationality-search.service.ts","../src/http-methods/search-modal/nationality/use-search-nationality-query.ts","../src/http-methods/search-modal/customer-list/customer-list-search.service.ts","../src/http-methods/search-modal/customer-list/use-search-customer-list-query.ts","../src/http-methods/search-modal/risk-grade/risk-grade-search.service.ts","../src/http-methods/search-modal/risk-grade/use-search-risk-grade-query.ts","../src/http-methods/search-modal/dea-customer-list/dea-customer-list-search.service.ts","../src/http-methods/search-modal/dea-customer-list/use-search-dea-customer-list-query.ts","../src/http-methods/search-modal/visa/visa-search.service.ts","../src/http-methods/search-modal/visa/use-search-visa-query.ts","../src/http-methods/fp-login/login-dsp.service.ts","../src/http-methods/remote-identity-verification/remote-identity-verification.service.ts","../src/http-methods/common-code/common-code-search.service.ts","../src/http-methods/common-code/use-search-common-code-query.ts"],"names":["axios","config","addRequestLog","addResponseLog","addErrorLog","error","isDspApp","Bridge","useQuery"],"mappings":";;;;;;;;;;;;;;;;;AAGO,IAAM,YAAe,GAAA;AAAA,EAC1B,UAAU,IAAsB,EAAA;AAC9B,IAAI,IAAA,OAAO,aAAa,WAAa,EAAA;AACnC,MAAO,OAAA,EAAA;AAAA;AAET,IAAM,MAAA,KAAA,GAAQ,SAAS,MAAO,CAAA,KAAA,CAAM,IAAI,MAAO,CAAA,CAAA,OAAA,EAAU,IAAI,CAAA,QAAA,CAAU,CAAC,CAAA;AAExE,IAAA,OAAO,QAAQ,kBAAmB,CAAA,KAAA,CAAM,CAAC,CAAA,IAAK,EAAE,CAAI,GAAA,EAAA;AAAA,GACtD;AAAA,EAEA,SACE,CAAA,IAAA,EACA,KACA,EAAA,OAAA,GAKI,EACE,EAAA;AACN,IAAI,IAAA,OAAO,aAAa,WAAa,EAAA;AACnC,MAAA;AAAA;AAGF,IAAA,IAAI,eAAe,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,kBAAA,CAAmB,KAAK,CAAC,CAAA,CAAA;AAEvD,IAAA,IAAI,QAAQ,OAAS,EAAA;AACnB,MAAI,IAAA,WAAA;AACJ,MAAI,IAAA,OAAO,OAAQ,CAAA,OAAA,KAAY,QAAU,EAAA;AACvC,QAAA,WAAA,uBAAkB,IAAK,EAAA;AACvB,QAAA,WAAA,CAAY,OAAQ,CAAA,WAAA,CAAY,OAAQ,EAAA,GAAI,QAAQ,OAAO,CAAA;AAAA,OACtD,MAAA;AACL,QAAA,WAAA,GAAc,OAAQ,CAAA,OAAA;AAAA;AAExB,MAAgB,YAAA,IAAA,CAAA,UAAA,EAAa,WAAY,CAAA,WAAA,EAAa,CAAA,CAAA;AAAA;AAGxD,IAAgB,YAAA,IAAA,CAAA,OAAA,EAAU,OAAQ,CAAA,IAAA,IAAQ,GAAG,CAAA,CAAA;AAE7C,IAAA,IAAI,QAAQ,MAAQ,EAAA;AAClB,MAAgB,YAAA,IAAA,CAAA,SAAA,EAAY,QAAQ,MAAM,CAAA,CAAA;AAAA;AAG5C,IAAA,IAAI,QAAQ,MAAQ,EAAA;AAClB,MAAgB,YAAA,IAAA,UAAA;AAAA;AAGlB,IAAA,QAAA,CAAS,MAAS,GAAA,YAAA;AAAA,GACpB;AAAA,EACA,YAAa,CAAA,IAAA,EAAc,OAA8C,GAAA,EAAU,EAAA;AACjF,IAAa,YAAA,CAAA,SAAA,CAAU,MAAM,EAAI,EAAA,EAAE,GAAG,OAAS,EAAA,OAAA,EAAS,IAAI,CAAA;AAAA;AAEhE,CAAA;;;ACpDO,IAAM,iBAAoB,GAAA;AAAA,EAC/B,iBAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,EAAK,GAAA,IAAA;;;ACbX,IAAM,gBAAN,MAAoB;AAAA,EAIzB,WAAA,CAAY,QAAoB,MAAoB,EAAA;AAHpD,IAAQ,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AACR,IAAQ,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAGN,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA;AACd,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA;AAAA;AAChB;AAAA;AAAA;AAAA,EAKA,gBAAyB,GAAA;AACvB,IAAkB,iBAAA,CAAA,OAAA,CAAQ,CAAC,UAAe,KAAA;AACxC,MAAM,MAAA,eAAA,GAAkB,aAAa,UAAU,CAAA,CAAA;AAC/C,MAAM,MAAA,WAAA,GAAc,IAAK,CAAA,MAAA,CAAO,eAAe,CAAA;AAC/C,MAAA,IAAI,WAAa,EAAA;AACf,QAAK,IAAA,CAAA,MAAA,CAAO,iBAAiB,WAAW,CAAA;AAAA;AAC1C,KACD,CAAA;AAAA;AACH;AAAA;AAAA;AAAA,EAKA,YAAqB,GAAA;AACnB,IAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,MAAA,CAAO,EAAE,CAAA;AAC5B,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,IAAA,CAAK,MAAO,CAAA,eAAA,EAAiB,CAAU,OAAA,EAAA,KAAK,CAAE,CAAA,CAAA;AAAA;AAChD;AACF;AAAA;AAAA;AAAA,EAKA,aAAsB,GAAA;AACpB,IAAA,IAAA,CAAK,gBAAiB,EAAA;AACtB,IAAA,IAAA,CAAK,YAAa,EAAA;AAAA;AAEtB,CAAA;;;AChCA,IAAI,WAAc,GAAA,IAAA;AAClB,IAAM,aAA+B,EAAC;AAQtC,IAAM,cAAA,GAAiB,CAAC,GAAA,EAAa,YAAiC,KAAA;AACpE,EAAI,IAAA,KAAA,GAAQ,YAAa,CAAA,SAAA,CAAU,GAAG,CAAA;AACtC,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAQ,KAAA,GAAA,YAAA;AACR,IAAA,YAAA,CAAa,UAAU,GAAK,EAAA,KAAA,EAAO,EAAE,IAAA,EAAM,KAAK,CAAA;AAAA;AAGlD,EAAO,OAAA,KAAA;AACT,CAAA;AAOO,IAAM,kBAAN,MAAsB;AAAA,EAc3B,WAAA,CAAY,MAA6B,GAAA,EAAI,EAAA;AAb7C,IAAA,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AACA,IAAA,aAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAKA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAA,SAAA,EAAkC,EAAC,CAAA;AAMnC;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAA,KAAA,CAAA;AAEE,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA;AAKd,IAAM,MAAA,MAAA,GAAkC,CAAC,GAAQ,KAAA;AAC/C,MAAO,OAAA,YAAA,CAAa,UAAU,GAAG,CAAA;AAAA,KACnC;AACA,IAAM,MAAA,MAAA,GAAkC,CAAC,GAAA,EAAK,KAAU,KAAA;AACtD,MAAA,IAAI,QAAQ,OAAS,EAAA;AACnB,QAAO,MAAA,CAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,KAAA;AAAA;AACxB,KACF;AACA,IAAA,IAAA,CAAK,aAAgB,GAAA,IAAI,aAAc,CAAA,MAAA,EAAQ,MAAM,CAAA;AAMrD,IAAK,IAAA,CAAA,GAAA,GAAMA,uBAAM,MAAO,CAAA;AAAA,MACtB,eAAiB,EAAA,IAAA;AAAA,MACjB,GAAG;AAAA,KACJ,CAAA;AAKD,IAAK,IAAA,CAAA,GAAA,CAAI,aAAa,OAAQ,CAAA,GAAA;AAAA,MAC5B,OAAOC,OAAW,KAAA;AAChB,QAAA,MAAM,SAAY,GAAA,YAAA,CAAa,SAAU,CAAA,gBAAgB,CAAM,KAAA,IAAA;AAG/D,QAAA,MAAMC,iCAAcD,OAAM,CAAA;AAE1B,QAAA,MAAM,oBAAuBA,GAAAA,OAAAA,CAAO,OAAU,GAAA,yBAAyB,CAAM,KAAA,MAAA;AAC7E,QAAA,IAAI,oBAAsB,EAAA;AACxB,UAAc,WAAA,GAAA,IAAA;AAAA;AAMhB,QAAM,MAAA,UAAA,GAAa,IAAI,UAAW,EAAA;AAClC,QAAM,MAAA,WAAA,GAAc,MAAM,UAAA,CAAW,KAAM,EAAA;AAC3C,QAAQ,OAAA,CAAA,GAAA,CAAI,eAAe,WAAW,CAAA;AACtC,QAAA,IAAI,WAAa,EAAA;AACf,UAAAA,OAAO,CAAA,OAAA,CAAQ,eAAe,CAAA,GAAI,UAAU,WAAW,CAAA,CAAA;AAAA;AAGzD,QAAA,IAAI,SAAW,EAAA;AACb,UAAA,OAAA,CAAQ,IAAI,2BAA2B,CAAA;AAIvC,UAAAA,QAAO,OAAQ,CAAA,sBAAsB,CAAI,GAAA,cAAA,CAAe,wBAAwB,KAAK,CAAA;AACrF,UAAAA,QAAO,OAAQ,CAAA,oBAAoB,CAAI,GAAA,cAAA,CAAe,sBAAsB,UAAU,CAAA;AACtF,UAAAA,QAAO,OAAQ,CAAA,uBAAuB,CAAI,GAAA,cAAA,CAAe,yBAAyB,UAAU,CAAA;AAC5F,UAAAA,QAAO,OAAQ,CAAA,sBAAsB,CAAI,GAAA,cAAA,CAAe,wBAAwB,OAAO,CAAA;AACvF,UAAAA,QAAO,OAAQ,CAAA,wBAAwB,CAAI,GAAA,cAAA,CAAe,0BAA0B,KAAK,CAAA;AACzF,UAAAA,QAAO,OAAQ,CAAA,qBAAqB,CAAI,GAAA,cAAA,CAAe,uBAAuB,UAAU,CAAA;AACxF,UAAAA,QAAO,OAAQ,CAAA,wBAAwB,CAAI,GAAA,cAAA,CAAe,0BAA0B,KAAK,CAAA;AACzF,UAAAA,QAAO,OAAQ,CAAA,2BAA2B,CAAI,GAAA,cAAA,CAAe,6BAA6B,QAAQ,CAAA;AAClG,UAAAA,QAAO,OAAQ,CAAA,oBAAoB,CAAI,GAAA,cAAA,CAAe,sBAAsB,UAAU,CAAA;AAAA;AAMxF,QAAA,IAAA,CAAK,cAAc,gBAAiB,EAAA;AAKpC,QAAA,MAAM,aAAgB,GAAA,MAAA,CAAO,OAAQ,CAAA,IAAA,CAAK,OAAO,CAAA;AACjD,QAAA,aAAA,CAAc,OAAQ,CAAA,CAAC,CAAC,GAAA,EAAK,KAAK,CAAM,KAAA;AACtC,UAAA,IAAIA,SAAQ,OAAS,EAAA;AACnB,YAAAA,OAAAA,CAAO,OAAQ,CAAA,GAAG,CAAI,GAAA,KAAA;AAAA;AACxB,SACD,CAAA;AAOD,QAAA,IAAI,CAAC,WAAa,EAAA;AAChB,UAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACtC,YAAA,UAAA,CAAW,KAAK,EAAE,OAAA,EAAS,MAAQ,EAAA,MAAA,EAAAA,SAAQ,CAAA;AAAA,WAC5C,CAAA,CAAE,IAAK,CAAA,MAAMA,OAAM,CAAA;AAAA;AAGtB,QAAOA,OAAAA,OAAAA;AAAA,OACT;AAAA,MACA,CAAC,KAAU,KAAA;AACT,QAAO,OAAA,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA;AAC7B,KACF;AAKA,IAAK,IAAA,CAAA,GAAA,CAAI,aAAa,QAAS,CAAA,GAAA;AAAA,MAC7B,OAAO,QAA4B,KAAA;AAEjC,QAAA,MAAME,kCAAe,QAAQ,CAAA;AAC7B,QAAI,IAAA,QAAA,CAAS,IAAK,CAAA,SAAA,KAAc,KAAO,EAAA;AAIrC,UAAO,OAAA,OAAA,CAAQ,OAAO,QAAQ,CAAA;AAAA;AAGhC,QAAO,OAAA,QAAA;AAAA,OACT;AAAA,MACA,OAAO,KAAsB,KAAA;AAE3B,QAAA,MAAMC,+BAAY,KAAK,CAAA;AAEvB,QAAA,MAAM,kBAAkB,KAAM,CAAA,MAAA;AAC9B,QAAA,MAAM,oBAAuB,GAAA,MAAA,CAAO,OAAU,GAAA,yBAAyB,CAAM,KAAA,MAAA;AAI7E,QAAA,IAAI,KAAM,CAAA,QAAA,EAAU,MAAW,KAAA,GAAA,IAAO,CAAC,oBAAsB,EAAA;AAC3D,UAAc,WAAA,GAAA,KAAA;AACd,UAAM,MAAA,MAAA,GAAS,IAAI,UAAW,EAAA;AAC9B,UACG,MAAA,CAAA,YAAA,EACA,CAAA,IAAA,CAAK,MAAM;AAIV,YAAc,WAAA,GAAA,IAAA;AAKd,YAAO,OAAA,UAAA,CAAW,SAAS,CAAG,EAAA;AAC5B,cAAM,MAAA,CAAA,GAAI,WAAW,KAAM,EAAA;AAC3B,cAAA,IAAI,CAAG,EAAA;AAML,gBAAA,IAAA,CAAK,IAAI,CAAE,CAAA,MAAM,EACd,IAAK,CAAA,CAAC,aAAa,CAAE,CAAA,OAAA,CAAQ,QAAQ,CAAC,EACtC,KAAM,CAAA,CAAC,QAAQ,CAAE,CAAA,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA;AACjC;AACF,WACD,CAAA,CACA,KAAM,CAAA,CAACC,MAAU,KAAA;AAKhB,YAAO,OAAA,OAAA,CAAQ,OAAOA,MAAK,CAAA;AAAA,WAC5B,CAAA;AAEH,UAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACtC,YAAA,IAAI,eAAiB,EAAA;AACnB,cAAA,UAAA,CAAW,KAAK,EAAE,OAAA,EAAS,MAAQ,EAAA,MAAA,EAAQ,iBAAiB,CAAA;AAAA;AAC9D,WACD,CAAA;AAAA,SACI,MAAA;AACL,UAAO,OAAA,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA;AAC7B;AACF,KACF;AAAA;AACF,EAEA,WAAW,OAAiC,EAAA;AAC1C,IAAA,IAAA,CAAK,OAAU,GAAA;AAAA,MACb,GAAG,IAAK,CAAA,OAAA;AAAA,MACR,GAAG;AAAA,KACL;AAAA;AAEJ,CAAA;;;AC3NO,IAAM,aAAN,MAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtB,KAAQ,GAAA;AACN,IAAA,OAAOC,2BAAS,EAAA;AAAA;AAClB;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAqC,GAAA;AACzC,IAAA,MAAM,SAAY,GAAA,YAAA,CAAa,SAAU,CAAA,gBAAgB,CAAM,KAAA,IAAA;AAK/D,IAAA,IAAI,SAAW,EAAA;AACb,MAAA,OAAA,CAAQ,IAAI,0BAA0B,CAAA;AAEtC,MAAO,OAAA,YAAA,CAAa,UAAU,aAAa,CAAA;AAAA;AAG7C,IAAI,IAAA,IAAA,CAAK,OAAS,EAAA;AAChB,MAAA,OAAA,CAAQ,MAAMC,0BAAA,CAAO,MAAO,CAAA,cAAA,EAAkB,EAAA,WAAA;AAAA;AAKhD;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,YAAgC,GAAA;AACpC,IAAI,IAAA,IAAA,CAAK,OAAS,EAAA;AAMhB,MAAO,OAAA,EAAA;AAAA,KACF,MAAA;AAIL,MAAA,MAAM,UAAa,GAAA,IAAI,eAAgB,CAAA,EAAE,CAAA;AACzC,MAAA,MAAM,GAAM,GAAA,MAAM,UAAW,CAAA,GAAA,CAAI,IAAI,4BAA4B,CAAA;AAEjE,MAAA,OAAO,KAAK,IAAK,CAAA,WAAA;AAAA;AACnB;AAEJ,CAAA;;;ACtDO,IAAM,gBAAgB,OAAO,EAAE,EAAI,EAAA,MAAA,EAAQ,SAA2B,KAAA;AAC3E,EAAM,MAAA,OAAA,GAAU,8CAA8C,EAAE,CAAA,CAAA;AAEhE,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAE7C,EAAA,MAAM,GAAM,GAAA,MAAM,UAAW,CAAA,GAAA,CAAI,IAAkB,OAAO,CAAA;AAE1D,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;;;AClBO,IAAM,iBAAiB,MAAM;AAElC,EAAI,IAAA,OAAO,MAAO,CAAA,cAAA,KAAmB,SAAW,EAAA;AAC9C,IAAO,OAAA,EAAA;AAAA,GACF,MAAA;AACL,IAAA,OAAO,IAAI,QAAS,CAAA,QAAA,CAAS,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA;AAAA;AAE9C,CAAA;;;ACAa,IAAA,oBAAA,GAAuB,OAAO,MAAA,EAA+B,MAAgC,KAAA;AACxG,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,kCAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAAwC,QAAQ,MAAM,CAAA;AAEvF,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACNO,IAAM,qBAAwB,GAAA,CACnC,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOC,mBAAS,CAAA;AAAA,IACd,OAAA,EAAS,CAAC,CAAC,MAAO,CAAA,aAAA;AAAA,IAClB,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,eAAA,EAAiB,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IAClD,SAAS,MAAM;AACb,MAAO,OAAA,oBAAA,CAAqB,QAAQ,MAAM,CAAA;AAAA,KAC5C;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;ACfa,IAAA,0BAAA,GAA6B,OAAO,MAAA,EAAqC,MAAgC,KAAA;AACpH,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,yCAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAA8C,QAAQ,MAAM,CAAA;AAE7F,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACNO,IAAM,wBAA2B,GAAA,CACtC,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAA,EAAS,CAAC,CAAC,MAAO,CAAA,cAAA;AAAA,IAClB,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,kBAAA,EAAoB,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IACrD,SAAS,MAAM;AACb,MAAO,OAAA,0BAAA,CAA2B,QAAQ,MAAM,CAAA;AAAA,KAClD;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;ACZa,IAAA,mCAAA,GAAsC,OACjD,MAAA,EACA,MACG,KAAA;AACH,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,kDAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAAuD,QAAQ,MAAM,CAAA;AAEtG,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACTO,IAAM,oCAAuC,GAAA,CAClD,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAA,EAAS,CAAC,CAAC,MAAO,CAAA,WAAA;AAAA,IAClB,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,8BAAA,EAAgC,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IACjE,SAAS,MAAM;AACb,MAAO,OAAA,mCAAA,CAAoC,QAAQ,MAAM,CAAA;AAAA,KAC3D;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;ACVa,IAAA,uBAAA,GAA0B,OAAO,MAAA,EAAkC,MAAgC,KAAA;AAC9G,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,qCAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAA2C,QAAQ,MAAM,CAAA;AAE1F,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;AAKa,IAAA,yBAAA,GAA4B,OAAO,MAAA,EAAoC,MAAgC,KAAA;AAClH,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,uCAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAA6C,QAAQ,MAAM,CAAA;AAE5F,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;AClBO,IAAM,wBAA2B,GAAA,CACtC,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAS,EAAA,IAAA;AAAA,IACT,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,sBAAA,EAAwB,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IACzD,SAAS,MAAM;AACb,MAAO,OAAA,uBAAA,CAAwB,QAAQ,MAAM,CAAA;AAAA,KAC/C;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;AAKO,IAAM,8BAAiC,GAAA,CAC5C,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAS,EAAA,IAAA;AAAA,IACT,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,wBAAA,EAA0B,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IAC3D,SAAS,MAAM;AACb,MAAO,OAAA,yBAAA,CAA0B,QAAQ,MAAM,CAAA;AAAA,KACjD;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;AC1Ca,IAAA,oBAAA,GAAuB,OAAO,MAAgC,KAAA;AACzE,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,uCAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,GAAM,GAAA,MAAM,UAAW,CAAA,GAAA,CAAI,KAA4C,MAAM,CAAA;AAEnF,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACNa,IAAA,qBAAA,GAAwB,CACnC,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAS,EAAA,IAAA;AAAA,IACT,KAAO,EAAA,KAAA;AAAA,IACP,QAAA,EAAU,CAAC,eAAe,CAAA;AAAA,IAC1B,SAAS,MAAM;AACb,MAAA,OAAO,qBAAqB,MAAM,CAAA;AAAA,KACpC;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;ACda,IAAA,4BAAA,GAA+B,OAC1C,MAAA,EACA,MACG,KAAA;AACH,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,4CAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAA4C,QAAQ,MAAM,CAAA;AAE3F,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACNO,IAAM,6BAAgC,GAAA,CAC3C,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAA,EAAS,CAAC,CAAC,MAAO,CAAA,UAAA;AAAA,IAClB,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,uBAAA,EAAyB,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IAC1D,SAAS,MAAM;AACb,MAAO,OAAA,4BAAA,CAA6B,QAAQ,MAAM,CAAA;AAAA,KACpD;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;AClBa,IAAA,gCAAA,GAAmC,OAC9C,MAAA,EACA,MACG,KAAA;AACH,EAAA,MAAM,cAAc,cAAe,EAAA;AAEnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,gDAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAA6C,QAAQ,MAAM,CAAA;AAE5F,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACPO,IAAM,0BAA6B,GAAA,CACxC,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAA,EAAS,CAAC,CAAC,MAAO,CAAA,UAAA;AAAA,IAClB,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,oBAAA,EAAsB,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IACvD,SAAS,MAAM;AACb,MAAO,OAAA,gCAAA,CAAiC,QAAQ,MAAM,CAAA;AAAA,KACxD;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;AClBa,IAAA,wBAAA,GAA2B,OAAO,MAAA,EAAqC,MAAgC,KAAA;AAClH,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,sCAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAA4C,QAAQ,MAAM,CAAA;AAE3F,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACNO,IAAM,yBAA4B,GAAA,CACvC,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAQ,OAAA,CAAA,GAAA,CAAI,oBAAsB,EAAA,MAAA,CAAO,aAAa,CAAA;AAEtD,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAA,EAAS,CAAC,CAAC,MAAO,CAAA,aAAA;AAAA,IAClB,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,mBAAA,EAAqB,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IACtD,SAAS,MAAM;AACb,MAAO,OAAA,wBAAA,CAAyB,QAAQ,MAAM,CAAA;AAAA,KAChD;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;ACjBa,IAAA,qBAAA,GAAwB,OAAO,MAAA,EAAgC,MAAgC,KAAA;AAC1G,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,6BAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAAyC,QAAQ,MAAM,CAAA;AAExF,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACNO,IAAM,0BAA6B,GAAA,CACxC,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAA,EAAS,CAAC,CAAC,MAAO,CAAA,YAAA;AAAA,IAClB,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,oBAAA,EAAsB,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IACvD,SAAS,MAAM;AACb,MAAO,OAAA,qBAAA,CAAsB,QAAQ,MAAM,CAAA;AAAA,KAC7C;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;ACfa,IAAA,kBAAA,GAAqB,OAAO,MAAA,EAA6B,MAAgC,KAAA;AACpG,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,gCAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAAsC,QAAQ,MAAM,CAAA;AAErF,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACNO,IAAM,uBAA0B,GAAA,CACrC,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,SAAS,CAAC,CAAC,OAAO,sBAA0B,IAAA,CAAC,CAAC,MAAO,CAAA,eAAA;AAAA,IACrD,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,iBAAA,EAAmB,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IACpD,SAAS,MAAM;AACb,MAAO,OAAA,kBAAA,CAAmB,QAAQ,MAAM,CAAA;AAAA,KAC1C;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;ACZa,IAAA,wBAAA,GAA2B,OACtC,MAAA,EACA,MACG,KAAA;AACH,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,6BAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAAwD,QAAQ,MAAM,CAAA;AAEvG,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACTO,IAAM,6BAAgC,GAAA,CAC3C,MACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAA,EAAS,CAAC,CAAC,MAAO,CAAA,YAAA;AAAA,IAClB,KAAO,EAAA,KAAA;AAAA,IACP,UAAU,CAAC,uBAAA,EAAyB,IAAK,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,IAC1D,SAAS,MAAM;AACb,MAAO,OAAA,wBAAA,CAAyB,QAAQ,MAAM,CAAA;AAAA,KAChD;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;AClBa,IAAA,iBAAA,GAAoB,OAAO,MAAgC,KAAA;AACtE,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,sCAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,GAAM,GAAA,MAAM,UAAW,CAAA,GAAA,CAAI,KAA2C,MAAM,CAAA;AAElF,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACNa,IAAA,kBAAA,GAAqB,CAChC,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAS,EAAA,IAAA;AAAA,IACT,KAAO,EAAA,KAAA;AAAA,IACP,QAAA,EAAU,CAAC,YAAY,CAAA;AAAA,IACvB,SAAS,MAAM;AACb,MAAA,OAAO,kBAAkB,MAAM,CAAA;AAAA,KACjC;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;;;ACda,IAAA,eAAA,GAAkB,OAAO,MAAmB,KAAA;AACvD,EAAQ,OAAA,CAAA,GAAA,CAAI,UAAU,MAAM,CAAA;AAC5B,EAAA,MAAM,MAAS,GAAA,wBAAA;AACf,EAAM,MAAA,UAAA,GAAa,IAAI,eAAgB,CAAA;AAAA,IACrC,OAAS,EAAA;AAAA,MACP,yBAA2B,EAAA;AAAA;AAC7B,GACD,CAAA;AAED,EAAA,MAAM,GAAM,GAAA,MAAM,UAAW,CAAA,GAAA,CAAI,KAAyB,MAAQ,EAAA;AAAA,IAChE,MAAA;AAAA,IACA,WAAa,EAAA;AAAA,GACd,CAAA;AAED,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;;;ACLa,IAAA,wCAAA,GAA2C,OACtD,MAAA,EACA,WACG,KAAA;AACH,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,sEAAA,CAAA;AAE7B,EAAM,MAAA,QAAA,GAAW,MAAM,IAAI,eAAgB,CAAA;AAAA,IACzC,GAAG;AAAA,GACJ,CAAA,CAAE,GAAI,CAAA,IAAA,CAAkE,QAAQ,MAAM,CAAA;AAEvF,EAAA,OAAO,QAAS,CAAA,IAAA;AAClB;AAQa,IAAA,yDAAA,GAA4D,OACvE,MAAA,EACA,WACG,KAAA;AACH,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,4FAAA,CAAA;AAE7B,EAAM,MAAA,QAAA,GAAW,MAAM,IAAI,eAAgB,CAAA;AAAA,IACzC,GAAG;AAAA,GACJ,CAAA,CAAE,GAAI,CAAA,IAAA,CAAoE,QAAQ,MAAM,CAAA;AAEzF,EAAA,OAAO,QAAS,CAAA,IAAA;AAClB;;;AC1Ca,IAAA,uBAAA,GAA0B,OAAO,KAAA,EAA6B,MAAgC,KAAA;AACzG,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAM,MAAA,MAAA,GAAS,GAAG,WAAW,CAAA,gCAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAa,IAAI,eAAA,CAAgB,MAAM,CAAA;AAC7C,EAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAI,CAAA,IAAA,CAAuC,QAAQ,KAAK,CAAA;AAErF,EAAA,OAAO,GAAI,CAAA,IAAA;AACb;ACLO,IAAM,wBAA2B,GAAA,CACtC,KACA,EAAA,OAAA,EACA,MACG,KAAA;AACH,EAAA,OAAOA,mBAAS,CAAA;AAAA,IACd,OAAA,EAAS,CAAC,CAAC,KAAM,CAAA,YAAA;AAAA,IACjB,KAAO,EAAA,KAAA;AAAA,IACP,QAAU,EAAA,CAAC,kBAAoB,EAAA,KAAA,CAAM,YAAY,CAAA;AAAA,IACjD,SAAS,MAAM;AACb,MAAO,OAAA,uBAAA,CAAwB,OAAO,MAAM,CAAA;AAAA,KAC9C;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH","file":"method.cjs","sourcesContent":["/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const accessToken = await authClient.getAT();\n console.log('accessToken', accessToken);\n if (accessToken) {\n config.headers['Authorization'] = `Bearer ${accessToken}`;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', 'ScreenId');\n }\n\n /**\n * 커스텀헤더 주입\n */\n this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n */\n this.api(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return cookieClient.getCookie('accessToken');\n }\n\n if (this.isApp()) {\n return (await Bridge.native.getAccessToken()).accessToken;\n } else {\n /**\n * pc인 경우는, middleware.ts 에서 요청헤더에 주입\n */\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n * @returns Promise<string> 액세스토큰\n */\n async refreshToken(): Promise<string> {\n if (this.isApp()) {\n /**\n * @todo : 브릿지 함수 호출 스펙에 맞게 수정필요\n */\n // @ts-ignore\n //return await bridge.callToNative('', '', 'refreshToken', {});\n return '';\n } else {\n /**\n * @todo : 내부api호출\n */\n const httpclient = new HttpClientAxios({});\n const res = await httpclient.api.get('/internal/api/auth/refresh');\n\n return res?.data.accessToken;\n }\n }\n}\n//\n","import { HttpClientAxios } from '../../client';\n\nimport type { TestResponse } from './sample.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\ninterface TestRequest {\n id?: number;\n config?: AxiosRequestConfig;\n setupFn?: (httpClient: HttpClientAxios) => void;\n}\nexport const getTestMethod = async ({ id, config, setupFn }: TestRequest) => {\n const testAPI = `https://jsonplaceholder.typicode.com/users/${id}`;\n\n const httpClient = new HttpClientAxios(config);\n\n const res = await httpClient.api.get<TestResponse>(testAPI);\n\n return res.data;\n};\n","export const getServiceCode = () => {\n // @ts-ignore\n if (typeof window.isStorybookEnv === 'boolean') {\n return '';\n } else {\n return `/${location.pathname.split('/')[1]}`;\n }\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\n\nexport const getAddressListMethod = async (params: AddressListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\nimport { getAddressListMethod } from './address-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressQuery = (\n params: AddressListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchAddress', JSON.stringify(params)],\n queryFn: () => {\n return getAddressListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\n\nexport const getAddressPostalCodeMethod = async (params: AddressPostalCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address/postal-code`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressPostalCodeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\nimport { getAddressPostalCodeMethod } from './postal-code.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchPostalCodeQuery = (\n params: AddressPostalCodeRequestDto,\n options?: CustomQueryOptions<DspResponseAddressPostalCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWordName,\n retry: false,\n queryKey: ['searchPostalCode', JSON.stringify(params)],\n queryFn: () => {\n return getAddressPostalCodeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\n\nexport const getAddressStandardizationListMethod = async (\n params: AddressStandardizationListRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-standardization-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressStandardizationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\nimport { getAddressStandardizationListMethod } from './address-standardization.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressStandardizationQuery = (\n params: AddressStandardizationListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressStandardizationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.baseAddress,\n retry: false,\n queryKey: ['searchAddressStandardization', JSON.stringify(params)],\n queryFn: () => {\n return getAddressStandardizationListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\n\n/**\n * @description 직종 목록 조회\n */\nexport const getOccupationListMethod = async (params: OccupationListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n\n/**\n * @description 직종 상세 조회\n */\nexport const getOccupationDetailMethod = async (params: OccupationDetailRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation/detail`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationDetailResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\nimport { getOccupationDetailMethod, getOccupationListMethod } from './occupation-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\n/**\n * @description 직종 목록 조회 쿼리\n */\nexport const useSearchOccupationQuery = (\n params: OccupationListRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationList', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationListMethod(params, config);\n },\n ...options\n });\n};\n\n/**\n * @description 직종 상세 조회 쿼리\n */\nexport const useSearchOccupationDetailQuery = (\n params: OccupationDetailRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationDetailResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationDetail', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationDetailMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\n\nexport const getVehicleListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/vehicle-type-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVehicleTypeListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\nimport { getVehicleListMethod } from './vehicle-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVehicleQuery = (\n options?: CustomQueryOptions<DspResponseVehicleTypeListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVehicle'],\n queryFn: () => {\n return getVehicleListMethod(config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseEmployeeProfileResponseDto, EmployeeProfileSearchRequestDto } from './employee-search.dto';\n\nexport const getEmployeeProfileListMethod = async (\n params: EmployeeProfileSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/employee`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseEmployeeProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseEmployeeProfileResponseDto,\n EmployeeProfileSearchRequestDto,\n} from './employee-search.dto';\nimport { getEmployeeProfileListMethod } from './employee-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchEmployeeProfileQuery = (\n params: EmployeeProfileSearchRequestDto,\n options?: CustomQueryOptions<DspResponseEmployeeProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchEmployeeProfile', JSON.stringify(params)],\n queryFn: () => {\n return getEmployeeProfileListMethod(params, config);\n },\n ...options,\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseOrganizationProfileResponse, OrganizationSearchRequestDto } from './organization-search.dto';\n\nexport const getOrganizationProfileListMethod = async (\n params: OrganizationSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n ///v1/get/participant/profile/organization\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/organization`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOrganizationProfileResponse>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseOrganizationProfileResponse,\n OrganizationSearchRequestDto,\n} from './organization-search.dto';\nimport { getOrganizationProfileListMethod } from './organization-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchOrganizationQuery = (\n params: OrganizationSearchRequestDto,\n options?: CustomQueryOptions<DspResponseOrganizationProfileResponse>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchOrganization', JSON.stringify(params)],\n queryFn: () => {\n return getOrganizationProfileListMethod(params, config);\n },\n ...options,\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\n\nexport const getNationalityListMethod = async (params: NationalitySearchRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/nationality-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseNationalityListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\nimport { getNationalityListMethod } from './nationality-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchNationalityQuery = (\n params: NationalitySearchRequestDto,\n options?: CustomQueryOptions<DspResponseNationalityListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n console.log('search nationality', params.searchKeyWord);\n\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchNationality', JSON.stringify(params)],\n queryFn: () => {\n return getNationalityListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\n\nexport const getCustomerListMethod = async (params: CustomerListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCustomerListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getCustomerListMethod } from './customer-list-search.service';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCustomerListQuery = (\n params: CustomerListRequestDto,\n options?: CustomQueryOptions<DspResponseCustomerListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\n\nexport const getRiskGradeMethod = async (params: RiskGradeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/risk-grade`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseRiskGradeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\nimport { getRiskGradeMethod } from './risk-grade-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchRiskGradeQuery = (\n params: RiskGradeRequestDto,\n options?: CustomQueryOptions<DspResponseRiskGradeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.occupationIndustryCode && !!params.vehicleTypeCode,\n retry: false,\n queryKey: ['searchRiskGrade', JSON.stringify(params)],\n queryFn: () => {\n return getRiskGradeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\n\nexport const getDspCustomerListMethod = async (\n params: PersonalCustomerProfileRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseListPersonalCustomerProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getDspCustomerListMethod } from './dea-customer-list-search.service';\n\nimport type {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchDspCustomerListQuery = (\n params: PersonalCustomerProfileRequestDto,\n options?: CustomQueryOptions<DspResponseListPersonalCustomerProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchDspCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getDspCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\n\nexport const getVisaListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/visa-status-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVisaStatusListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getVisaListMethod } from './visa-search.service';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVisaQuery = (\n options?: CustomQueryOptions<DspResponseVisaStatusListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVisa'],\n queryFn: () => {\n return getVisaListMethod(config);\n },\n ...options\n });\n};\n","import { HttpClientAxios } from '../../client';\n\nimport { FpLoginResponseDto } from './login-dsp.dto';\n\n/**\n * @param userId 사번\n */\nexport const postLoginMethod = async (userId: number) => {\n console.log('userId', userId);\n const apiUrl = '/api/dat/v1/post/login';\n const httpClient = new HttpClientAxios({\n headers: {\n 'Debug-Refresh-Queue-Off': 'true'\n }\n });\n\n const res = await httpClient.api.post<FpLoginResponseDto>(apiUrl, {\n userId,\n channelType: 'DSP_TABLET'\n });\n\n return res.data;\n};\n","import { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { ApiConfig } from '../shared.dto';\nimport type {\n RemoteIdentityVerificationSystemTokenRequestDto,\n DspResponseRemoteIdentityVerificationSystemTokenResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n RemoteIdentityVerificationSystemIdentificationCardResponseDto\n} from './remote-identity-verification.dto';\n\n/**\n * 토큰 발급 API\n * @param params\n * @param axiosConfig\n * @returns\n */\nexport const getRemoteIdentityVerificationSystemToken = async (\n params: RemoteIdentityVerificationSystemTokenRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/token`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseRemoteIdentityVerificationSystemTokenResponseDto>(apiUrl, params);\n\n return response.data;\n};\n\n/**\n * 비대면 인증 시스템 신분증 진위확인 API\n * @param params 진위확인 요청 파라미터\n * @param axiosConfig API 설정\n * @returns 신분증 진위확인 응답 데이터\n */\nexport const confirmRemoteIdentityVerificationSystemIdentificationCard = async (\n params: RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/identification-card/confirm`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<RemoteIdentityVerificationSystemIdentificationCardResponseDto>(apiUrl, params);\n\n return response.data;\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\n\nexport const getCommonCodeListMethod = async (param: CommonCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/common-code/list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCommonCodeResponseDto>(apiUrl, param);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { CustomQueryOptions } from '../method.types';\n\nimport { getCommonCodeListMethod } from './common-code-search.service';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCommonCodeQuery = (\n param: CommonCodeRequestDto,\n options?: CustomQueryOptions<DspResponseCommonCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!param.commonCodeId,\n retry: false,\n queryKey: ['searchCommonCode', param.commonCodeId],\n queryFn: () => {\n return getCommonCodeListMethod(param, config);\n },\n ...options\n });\n};\n"]}
|
package/dist/method.d.cts
CHANGED
|
@@ -925,7 +925,7 @@ interface RemoteIdentityVerificationSystemTokenRequestDto {
|
|
|
925
925
|
* @maxLength 3
|
|
926
926
|
* @example 'DEA'
|
|
927
927
|
*/
|
|
928
|
-
|
|
928
|
+
businessWorkDivisionCode: string;
|
|
929
929
|
/**
|
|
930
930
|
* 고객ID
|
|
931
931
|
* @required
|
|
@@ -942,45 +942,45 @@ interface RemoteIdentityVerificationSystemTokenRequestDto {
|
|
|
942
942
|
* @maxLength 10
|
|
943
943
|
* @example '00373'
|
|
944
944
|
*/
|
|
945
|
-
|
|
945
|
+
requestDepartmentCode?: string;
|
|
946
946
|
/**
|
|
947
947
|
* 요청사원번호
|
|
948
948
|
* @maxLength 10
|
|
949
949
|
* @example '1484752'
|
|
950
950
|
*/
|
|
951
|
-
|
|
951
|
+
requestEmployeeNumber?: string;
|
|
952
952
|
/**
|
|
953
953
|
* 채널리다이렉트주소
|
|
954
954
|
* @maxLength 50
|
|
955
955
|
* @example 'https://fmw.hanwhalife.com'
|
|
956
956
|
*/
|
|
957
|
-
|
|
957
|
+
channelRedirectAddress?: string;
|
|
958
958
|
/**
|
|
959
959
|
* API방식ID
|
|
960
960
|
* @required
|
|
961
961
|
* @maxLength 10
|
|
962
962
|
* @example 'WEBVIEW'
|
|
963
963
|
*/
|
|
964
|
-
|
|
964
|
+
rivsApiMethodId: string;
|
|
965
965
|
/**
|
|
966
966
|
* 서식코드
|
|
967
967
|
* @maxLength 10
|
|
968
968
|
* @example 'NC202001' (일반) / 'NC020048' (외국인등록증)
|
|
969
969
|
*/
|
|
970
|
-
|
|
970
|
+
rivsDocumentFormatCode?: string;
|
|
971
971
|
/**
|
|
972
972
|
* 문서유형코드
|
|
973
973
|
* @maxLength 10
|
|
974
974
|
* @example 'IT148' (일반) / 'IT321' (외국인등록증)
|
|
975
975
|
*/
|
|
976
|
-
|
|
976
|
+
rivsDocumentTypeCode?: string;
|
|
977
977
|
/**
|
|
978
978
|
* 대면비대면여부
|
|
979
979
|
* @required
|
|
980
980
|
* @maxLength 10
|
|
981
981
|
* @example '11' (비대면)
|
|
982
982
|
*/
|
|
983
|
-
|
|
983
|
+
faceDivisionCode: string;
|
|
984
984
|
}
|
|
985
985
|
interface RemoteIdentityVerificationSystemTokenResponseDto {
|
|
986
986
|
/** 인증토큰값 */
|
package/dist/method.d.ts
CHANGED
|
@@ -925,7 +925,7 @@ interface RemoteIdentityVerificationSystemTokenRequestDto {
|
|
|
925
925
|
* @maxLength 3
|
|
926
926
|
* @example 'DEA'
|
|
927
927
|
*/
|
|
928
|
-
|
|
928
|
+
businessWorkDivisionCode: string;
|
|
929
929
|
/**
|
|
930
930
|
* 고객ID
|
|
931
931
|
* @required
|
|
@@ -942,45 +942,45 @@ interface RemoteIdentityVerificationSystemTokenRequestDto {
|
|
|
942
942
|
* @maxLength 10
|
|
943
943
|
* @example '00373'
|
|
944
944
|
*/
|
|
945
|
-
|
|
945
|
+
requestDepartmentCode?: string;
|
|
946
946
|
/**
|
|
947
947
|
* 요청사원번호
|
|
948
948
|
* @maxLength 10
|
|
949
949
|
* @example '1484752'
|
|
950
950
|
*/
|
|
951
|
-
|
|
951
|
+
requestEmployeeNumber?: string;
|
|
952
952
|
/**
|
|
953
953
|
* 채널리다이렉트주소
|
|
954
954
|
* @maxLength 50
|
|
955
955
|
* @example 'https://fmw.hanwhalife.com'
|
|
956
956
|
*/
|
|
957
|
-
|
|
957
|
+
channelRedirectAddress?: string;
|
|
958
958
|
/**
|
|
959
959
|
* API방식ID
|
|
960
960
|
* @required
|
|
961
961
|
* @maxLength 10
|
|
962
962
|
* @example 'WEBVIEW'
|
|
963
963
|
*/
|
|
964
|
-
|
|
964
|
+
rivsApiMethodId: string;
|
|
965
965
|
/**
|
|
966
966
|
* 서식코드
|
|
967
967
|
* @maxLength 10
|
|
968
968
|
* @example 'NC202001' (일반) / 'NC020048' (외국인등록증)
|
|
969
969
|
*/
|
|
970
|
-
|
|
970
|
+
rivsDocumentFormatCode?: string;
|
|
971
971
|
/**
|
|
972
972
|
* 문서유형코드
|
|
973
973
|
* @maxLength 10
|
|
974
974
|
* @example 'IT148' (일반) / 'IT321' (외국인등록증)
|
|
975
975
|
*/
|
|
976
|
-
|
|
976
|
+
rivsDocumentTypeCode?: string;
|
|
977
977
|
/**
|
|
978
978
|
* 대면비대면여부
|
|
979
979
|
* @required
|
|
980
980
|
* @maxLength 10
|
|
981
981
|
* @example '11' (비대면)
|
|
982
982
|
*/
|
|
983
|
-
|
|
983
|
+
faceDivisionCode: string;
|
|
984
984
|
}
|
|
985
985
|
interface RemoteIdentityVerificationSystemTokenResponseDto {
|
|
986
986
|
/** 인증토큰값 */
|
package/dist/method.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts","../src/http-methods/sample/sample.service.ts","../src/http-methods/method-util.ts","../src/http-methods/search-modal/address/address-search.service.ts","../src/http-methods/search-modal/address/use-search-address-query.ts","../src/http-methods/search-modal/address/postal-code.service.ts","../src/http-methods/search-modal/address/use-search-postal-code-query.ts","../src/http-methods/search-modal/address/address-standardization.service.ts","../src/http-methods/search-modal/address/use-search-address-standardization-query.ts","../src/http-methods/search-modal/occupation/occupation-search.service.ts","../src/http-methods/search-modal/occupation/use-search-occupation-query.ts","../src/http-methods/search-modal/vehicle/vehicle-search.service.ts","../src/http-methods/search-modal/vehicle/use-search-vehicle-query.ts","../src/http-methods/search-modal/employee/employee-search.service.ts","../src/http-methods/search-modal/employee/use-search-employee-profile-query.ts","../src/http-methods/search-modal/organization/organization-search.service.ts","../src/http-methods/search-modal/organization/use-search-organization-query.ts","../src/http-methods/search-modal/nationality/nationality-search.service.ts","../src/http-methods/search-modal/nationality/use-search-nationality-query.ts","../src/http-methods/search-modal/customer-list/customer-list-search.service.ts","../src/http-methods/search-modal/customer-list/use-search-customer-list-query.ts","../src/http-methods/search-modal/risk-grade/risk-grade-search.service.ts","../src/http-methods/search-modal/risk-grade/use-search-risk-grade-query.ts","../src/http-methods/search-modal/dea-customer-list/dea-customer-list-search.service.ts","../src/http-methods/search-modal/dea-customer-list/use-search-dea-customer-list-query.ts","../src/http-methods/search-modal/visa/visa-search.service.ts","../src/http-methods/search-modal/visa/use-search-visa-query.ts","../src/http-methods/fp-login/login-dsp.service.ts","../src/http-methods/remote-identity-verification/remote-identity-verification.service.ts","../src/http-methods/common-code/common-code-search.service.ts","../src/http-methods/common-code/use-search-common-code-query.ts"],"names":["config","error","useQuery"],"mappings":"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","file":"method.js","sourcesContent":["/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\nimport { getEnvironmentFromHostname } from 'sales-frontend-utils';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const accessToken = await authClient.getAT();\n console.log('accessToken', accessToken);\n if (accessToken) {\n config.headers['Authorization'] = `Bearer ${accessToken}`;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', 'ScreenId');\n }\n\n /**\n * 커스텀헤더 주입\n */\n this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n */\n this.api(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return cookieClient.getCookie('accessToken');\n }\n\n if (this.isApp()) {\n return (await Bridge.native.getAccessToken()).accessToken;\n } else {\n /**\n * pc인 경우는, middleware.ts 에서 요청헤더에 주입\n */\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n * @returns Promise<string> 액세스토큰\n */\n async refreshToken(): Promise<string> {\n if (this.isApp()) {\n /**\n * @todo : 브릿지 함수 호출 스펙에 맞게 수정필요\n */\n // @ts-ignore\n //return await bridge.callToNative('', '', 'refreshToken', {});\n return '';\n } else {\n /**\n * @todo : 내부api호출\n */\n const httpclient = new HttpClientAxios({});\n const res = await httpclient.api.get('/internal/api/auth/refresh');\n\n return res?.data.accessToken;\n }\n }\n}\n//\n","import { HttpClientAxios } from '../../client';\n\nimport type { TestResponse } from './sample.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\ninterface TestRequest {\n id?: number;\n config?: AxiosRequestConfig;\n setupFn?: (httpClient: HttpClientAxios) => void;\n}\nexport const getTestMethod = async ({ id, config, setupFn }: TestRequest) => {\n const testAPI = `https://jsonplaceholder.typicode.com/users/${id}`;\n\n const httpClient = new HttpClientAxios(config);\n\n const res = await httpClient.api.get<TestResponse>(testAPI);\n\n return res.data;\n};\n","export const getServiceCode = () => {\n // @ts-ignore\n if (typeof window.isStorybookEnv === 'boolean') {\n return '';\n } else {\n return `/${location.pathname.split('/')[1]}`;\n }\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\n\nexport const getAddressListMethod = async (params: AddressListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\nimport { getAddressListMethod } from './address-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressQuery = (\n params: AddressListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchAddress', JSON.stringify(params)],\n queryFn: () => {\n return getAddressListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\n\nexport const getAddressPostalCodeMethod = async (params: AddressPostalCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address/postal-code`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressPostalCodeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\nimport { getAddressPostalCodeMethod } from './postal-code.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchPostalCodeQuery = (\n params: AddressPostalCodeRequestDto,\n options?: CustomQueryOptions<DspResponseAddressPostalCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWordName,\n retry: false,\n queryKey: ['searchPostalCode', JSON.stringify(params)],\n queryFn: () => {\n return getAddressPostalCodeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\n\nexport const getAddressStandardizationListMethod = async (\n params: AddressStandardizationListRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-standardization-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressStandardizationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\nimport { getAddressStandardizationListMethod } from './address-standardization.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressStandardizationQuery = (\n params: AddressStandardizationListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressStandardizationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.baseAddress,\n retry: false,\n queryKey: ['searchAddressStandardization', JSON.stringify(params)],\n queryFn: () => {\n return getAddressStandardizationListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\n\n/**\n * @description 직종 목록 조회\n */\nexport const getOccupationListMethod = async (params: OccupationListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n\n/**\n * @description 직종 상세 조회\n */\nexport const getOccupationDetailMethod = async (params: OccupationDetailRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation/detail`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationDetailResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\nimport { getOccupationDetailMethod, getOccupationListMethod } from './occupation-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\n/**\n * @description 직종 목록 조회 쿼리\n */\nexport const useSearchOccupationQuery = (\n params: OccupationListRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationList', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationListMethod(params, config);\n },\n ...options\n });\n};\n\n/**\n * @description 직종 상세 조회 쿼리\n */\nexport const useSearchOccupationDetailQuery = (\n params: OccupationDetailRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationDetailResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationDetail', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationDetailMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\n\nexport const getVehicleListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/vehicle-type-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVehicleTypeListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\nimport { getVehicleListMethod } from './vehicle-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVehicleQuery = (\n options?: CustomQueryOptions<DspResponseVehicleTypeListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVehicle'],\n queryFn: () => {\n return getVehicleListMethod(config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseEmployeeProfileResponseDto, EmployeeProfileSearchRequestDto } from './employee-search.dto';\n\nexport const getEmployeeProfileListMethod = async (\n params: EmployeeProfileSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/employee`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseEmployeeProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseEmployeeProfileResponseDto,\n EmployeeProfileSearchRequestDto,\n} from './employee-search.dto';\nimport { getEmployeeProfileListMethod } from './employee-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchEmployeeProfileQuery = (\n params: EmployeeProfileSearchRequestDto,\n options?: CustomQueryOptions<DspResponseEmployeeProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchEmployeeProfile', JSON.stringify(params)],\n queryFn: () => {\n return getEmployeeProfileListMethod(params, config);\n },\n ...options,\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseOrganizationProfileResponse, OrganizationSearchRequestDto } from './organization-search.dto';\n\nexport const getOrganizationProfileListMethod = async (\n params: OrganizationSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n ///v1/get/participant/profile/organization\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/organization`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOrganizationProfileResponse>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseOrganizationProfileResponse,\n OrganizationSearchRequestDto,\n} from './organization-search.dto';\nimport { getOrganizationProfileListMethod } from './organization-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchOrganizationQuery = (\n params: OrganizationSearchRequestDto,\n options?: CustomQueryOptions<DspResponseOrganizationProfileResponse>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchOrganization', JSON.stringify(params)],\n queryFn: () => {\n return getOrganizationProfileListMethod(params, config);\n },\n ...options,\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\n\nexport const getNationalityListMethod = async (params: NationalitySearchRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/nationality-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseNationalityListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\nimport { getNationalityListMethod } from './nationality-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchNationalityQuery = (\n params: NationalitySearchRequestDto,\n options?: CustomQueryOptions<DspResponseNationalityListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n console.log('search nationality', params.searchKeyWord);\n\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchNationality', JSON.stringify(params)],\n queryFn: () => {\n return getNationalityListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\n\nexport const getCustomerListMethod = async (params: CustomerListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCustomerListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getCustomerListMethod } from './customer-list-search.service';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCustomerListQuery = (\n params: CustomerListRequestDto,\n options?: CustomQueryOptions<DspResponseCustomerListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\n\nexport const getRiskGradeMethod = async (params: RiskGradeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/risk-grade`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseRiskGradeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\nimport { getRiskGradeMethod } from './risk-grade-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchRiskGradeQuery = (\n params: RiskGradeRequestDto,\n options?: CustomQueryOptions<DspResponseRiskGradeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.occupationIndustryCode && !!params.vehicleTypeCode,\n retry: false,\n queryKey: ['searchRiskGrade', JSON.stringify(params)],\n queryFn: () => {\n return getRiskGradeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\n\nexport const getDspCustomerListMethod = async (\n params: PersonalCustomerProfileRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseListPersonalCustomerProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getDspCustomerListMethod } from './dea-customer-list-search.service';\n\nimport type {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchDspCustomerListQuery = (\n params: PersonalCustomerProfileRequestDto,\n options?: CustomQueryOptions<DspResponseListPersonalCustomerProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchDspCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getDspCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\n\nexport const getVisaListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/visa-status-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVisaStatusListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getVisaListMethod } from './visa-search.service';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVisaQuery = (\n options?: CustomQueryOptions<DspResponseVisaStatusListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVisa'],\n queryFn: () => {\n return getVisaListMethod(config);\n },\n ...options\n });\n};\n","import { HttpClientAxios } from '../../client';\n\nimport { FpLoginResponseDto } from './login-dsp.dto';\n\n/**\n * @param userId 사번\n */\nexport const postLoginMethod = async (userId: number) => {\n console.log('userId', userId);\n const apiUrl = '/api/dat/v1/post/login';\n const httpClient = new HttpClientAxios({\n headers: {\n 'Debug-Refresh-Queue-Off': 'true'\n }\n });\n\n const res = await httpClient.api.post<FpLoginResponseDto>(apiUrl, {\n userId,\n channelType: 'DSP_TABLET'\n });\n\n return res.data;\n};\n","import { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { ApiConfig } from '../shared.dto';\nimport type {\n RemoteIdentityVerificationSystemTokenRequestDto,\n DspResponseRemoteIdentityVerificationSystemTokenResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n RemoteIdentityVerificationSystemIdentificationCardResponseDto\n} from './remote-identity-verification.dto';\n\n/**\n * 토큰 발급 API\n * @param params\n * @param axiosConfig\n * @returns\n */\nexport const getRemoteIdentityVerificationSystemToken = async (\n params: RemoteIdentityVerificationSystemTokenRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/token`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseRemoteIdentityVerificationSystemTokenResponseDto>(apiUrl, params);\n\n return response.data;\n};\n\n/**\n * 비대면 인증 시스템 신분증 진위확인 API\n * @param params 진위확인 요청 파라미터\n * @param axiosConfig API 설정\n * @returns 신분증 진위확인 응답 데이터\n */\nexport const confirmRemoteIdentityVerificationSystemIdentificationCard = async (\n params: RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/identification-card/confirm`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<RemoteIdentityVerificationSystemIdentificationCardResponseDto>(apiUrl, params);\n\n return response.data;\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\n\nexport const getCommonCodeListMethod = async (param: CommonCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/common-code/list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCommonCodeResponseDto>(apiUrl, param);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { CustomQueryOptions } from '../method.types';\n\nimport { getCommonCodeListMethod } from './common-code-search.service';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCommonCodeQuery = (\n param: CommonCodeRequestDto,\n options?: CustomQueryOptions<DspResponseCommonCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!param.commonCodeId,\n retry: false,\n queryKey: ['searchCommonCode', param.commonCodeId],\n queryFn: () => {\n return getCommonCodeListMethod(param, config);\n },\n ...options\n });\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/http-client/cookie/cookie-client.ts","../src/http-client/header/header.types.ts","../src/http-client/header/header-manager.ts","../src/http-client/axios/http-client-axios.ts","../src/http-client/auth/auth-client.ts","../src/http-methods/sample/sample.service.ts","../src/http-methods/method-util.ts","../src/http-methods/search-modal/address/address-search.service.ts","../src/http-methods/search-modal/address/use-search-address-query.ts","../src/http-methods/search-modal/address/postal-code.service.ts","../src/http-methods/search-modal/address/use-search-postal-code-query.ts","../src/http-methods/search-modal/address/address-standardization.service.ts","../src/http-methods/search-modal/address/use-search-address-standardization-query.ts","../src/http-methods/search-modal/occupation/occupation-search.service.ts","../src/http-methods/search-modal/occupation/use-search-occupation-query.ts","../src/http-methods/search-modal/vehicle/vehicle-search.service.ts","../src/http-methods/search-modal/vehicle/use-search-vehicle-query.ts","../src/http-methods/search-modal/employee/employee-search.service.ts","../src/http-methods/search-modal/employee/use-search-employee-profile-query.ts","../src/http-methods/search-modal/organization/organization-search.service.ts","../src/http-methods/search-modal/organization/use-search-organization-query.ts","../src/http-methods/search-modal/nationality/nationality-search.service.ts","../src/http-methods/search-modal/nationality/use-search-nationality-query.ts","../src/http-methods/search-modal/customer-list/customer-list-search.service.ts","../src/http-methods/search-modal/customer-list/use-search-customer-list-query.ts","../src/http-methods/search-modal/risk-grade/risk-grade-search.service.ts","../src/http-methods/search-modal/risk-grade/use-search-risk-grade-query.ts","../src/http-methods/search-modal/dea-customer-list/dea-customer-list-search.service.ts","../src/http-methods/search-modal/dea-customer-list/use-search-dea-customer-list-query.ts","../src/http-methods/search-modal/visa/visa-search.service.ts","../src/http-methods/search-modal/visa/use-search-visa-query.ts","../src/http-methods/fp-login/login-dsp.service.ts","../src/http-methods/remote-identity-verification/remote-identity-verification.service.ts","../src/http-methods/common-code/common-code-search.service.ts","../src/http-methods/common-code/use-search-common-code-query.ts"],"names":["config","error","useQuery"],"mappings":"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","file":"method.js","sourcesContent":["/**\n * 클라이언트용 쿠키 함수\n */\nexport const cookieClient = {\n getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return '';\n }\n const match = document.cookie.match(new RegExp(`(^|; *)${name}=([^;]*)`));\n\n return match ? decodeURIComponent(match[2] || '') : '';\n },\n\n setCookie(\n name: string,\n value: string,\n options: {\n expires?: number | Date; // number of days\n path?: string;\n domain?: string;\n secure?: boolean;\n } = {}\n ): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n let expiresDate: Date;\n if (typeof options.expires === 'number') {\n expiresDate = new Date();\n expiresDate.setDate(expiresDate.getDate() + options.expires);\n } else {\n expiresDate = options.expires;\n }\n cookieString += `; expires=${expiresDate.toUTCString()}`;\n }\n\n cookieString += `; path=${options.path || '/'}`;\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n document.cookie = cookieString;\n },\n deleteCookie(name: string, options: { path?: string; domain?: string } = {}): void {\n cookieClient.setCookie(name, '', { ...options, expires: -1 });\n }\n};\n","/**\n * @see https://loop.cloud.microsoft/p/eyJ3Ijp7InUiOiJodHRwczovL2hhbndoYWxpZmVtMzY1LnNoYXJlcG9pbnQuY29tLz9uYXY9Y3owbE1rWW1aRDFpSVVVd1FXdDJSbGhSV0VWUE1tUkNYMWhUZW5KWVVFdFBSVXByYWs1b1NrSlBjRk4wYm5wNmNsWmpMVUZ5YjI1UlJWOVdSREpUV25aeWVUUTJTV2swUlZrbVpqMHdNVk5OVGtkR1JsTkJXVE0xVVZaQ1ZrRkVRa1ZaVEVoRVNUSTBXRXhVVlZoV0ptTTlKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwicCI6eyJ1IjoiaHR0cHM6Ly9oYW53aGFsaWZlbTM2NS5zaGFyZXBvaW50LmNvbS9jb250ZW50c3RvcmFnZS9DU1BfYmMyNDQwMTMtZDA1NS00MzVjLWI2NzQtMWZkNzRiM2FkNzNjLyVFQiVBQyVCOCVFQyU4NCU5QyUyMCVFQiU5RCVCQyVFQyU5RCVCNCVFQiVCOCU4QyVFQiU5RiVBQyVFQiVBNiVBQy9Mb29wQXBwRGF0YS8wOS0yLiUyMEJyaWRnZSUyMFNwZWMlMjAxLmxvb3A%2FbmF2PWN6MGxNa1pqYjI1MFpXNTBjM1J2Y21GblpTVXlSa05UVUY5aVl6STBOREF4TXkxa01EVTFMVFF6TldNdFlqWTNOQzB4Wm1RM05HSXpZV1EzTTJNbVpEMWlJVVV3UVd0MlJsaFJXRVZQTW1SQ1gxaFRlbkpZVUV0UFJVcHJhazVvU2tKUGNGTjBibnA2Y2xaakxVRnliMjVSUlY5V1JESlRXblp5ZVRRMlNXazBSVmttWmowd01WTk5Ua2RHUmxGRlYxTlFOelpMUWtsTFdrWkpXVUUzU1ZkWldGTklWa0ZUSm1NOUpUSkdKbVpzZFdsa1BURSUzRCIsInIiOmZhbHNlfSwiaSI6eyJpIjoiNTdkZmVhM2QtZDA2Yi00YWRlLWIxZjEtYjE4NDA4MmNlN2VjIn19\n */\nexport const customHeaderNames = [\n 'Accept-Language',\n 'DeviceId',\n 'LoginType',\n 'PlatformName',\n 'PlatformVersion',\n 'AppVersion',\n 'DeviceModel',\n 'FormFactor',\n 'LoginChannel'\n];\n\nexport const AT = 'AT';\nexport type GetterSync = (keyName: string) => string;\nexport type SetterSync = (keyName: string, value: string) => void;\n\nexport type GetterAsync = (keyName: string) => Promise<string> | string;\nexport type SetterAsync = (keyName: string, value: string) => Promise<void> | void;\n","import { AT, customHeaderNames, GetterSync, SetterSync } from './header.types';\n\nexport class HeaderManager {\n private getter: GetterSync;\n private setter: SetterSync;\n\n constructor(getter: GetterSync, setter: SetterSync) {\n this.getter = getter;\n this.setter = setter;\n }\n\n /**\n * 커스텀 헤더를 동기적으로 설정합니다.\n */\n setCustomHeaders(): void {\n customHeaderNames.forEach((headerName) => {\n const customHeaderKey = `X-Channel-${headerName}`;\n const headerValue = this.getter(customHeaderKey);\n if (headerValue) {\n this.setter(customHeaderKey, headerValue);\n }\n });\n }\n\n /**\n * 인증 토큰을 동기적으로 설정합니다.\n */\n setAuthToken(): void {\n const token = this.getter(AT);\n if (token) {\n this.setter('Authorization', `Bearer ${token}`);\n }\n }\n\n /**\n * 모든 헤더를 동기적으로 설정합니다.\n */\n setAllHeaders(): void {\n this.setCustomHeaders();\n this.setAuthToken();\n }\n}\n","import axios from 'axios';\nimport { addErrorLog, addRequestLog, addResponseLog } from 'sales-frontend-debug';\n\nimport { AuthClient } from '../auth/auth-client';\nimport { cookieClient } from '../cookie/cookie-client';\nimport { HeaderManager } from '../header/header-manager';\n\nimport type { AxiosQueueType } from './types';\nimport type { AxiosError, AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';\nlet isRefreshed = true;\nconst axiosQueue: AxiosQueueType[] = [];\n\n/**\n * 쿠키에서 값을 가져오고, 없으면 기본값을 쿠키에 설정 후 반환하는 헬퍼 함수\n * @param key 쿠키 키\n * @param defaultValue 쿠키 값이 없을 때 사용할 기본값\n * @returns 쿠키 값 또는 기본값\n */\nconst getOrSetCookie = (key: string, defaultValue: string): string => {\n let value = cookieClient.getCookie(key);\n if (!value) {\n value = defaultValue;\n cookieClient.setCookie(key, value, { path: '/' });\n }\n\n return value;\n};\n\n/**\n * 전자청약\n * CSR용 http-client 입니다.\n * cookie , redirect , tokem 처리 방식은 CSR 환경에 맞게 구현됩니다.\n */\nexport class HttpClientAxios {\n config: AxiosRequestConfig;\n headerManager: HeaderManager;\n\n /**\n * axios의 request interceptor 동작시, 헤더에 주입될 헤더의 key,value\n */\n headers: Record<string, string> = {};\n\n /**\n * api연동을 수행할 실제 객체(axios, fetch 등의 다른 라이브러리로 교체가능한 영역)\n * 현재 버전에서는 axios를 사용하여 구현됨.\n */\n api: AxiosInstance;\n constructor(config: AxiosRequestConfig = {}) {\n this.config = config;\n\n /**\n * 헤더매니저 셋팅\n */\n const getter: HeaderManager['getter'] = (key) => {\n return cookieClient.getCookie(key);\n };\n const setter: HeaderManager['setter'] = (key, value) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n };\n this.headerManager = new HeaderManager(getter, setter);\n\n /**\n * api수행객체 최초 생성,\n * 공통으로 적용할 설정값이 있는경우 셋팅\n */\n this.api = axios.create({\n withCredentials: true,\n ...config\n });\n\n /**\n * 인터셉터 요청 처리\n */\n this.api.interceptors.request.use(\n async (config) => {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /** 디버깅용 로그 */\n await addRequestLog(config);\n\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n if (debugRefreshQueueOff) {\n isRefreshed = true;\n }\n\n /**\n * AT토큰 주입\n */\n const authClient = new AuthClient();\n const accessToken = await authClient.getAT();\n console.log('accessToken', accessToken);\n if (accessToken) {\n config.headers['Authorization'] = `Bearer ${accessToken}`;\n }\n\n if (debugMode) {\n console.log('debugMode header setting!');\n /**\n * 주소가 debugMode 경우 테스트용 헤더 삽입\n */\n config.headers['x-channel-appversion'] = getOrSetCookie('x-channel-appversion', '3.1');\n config.headers['x-channel-deviceid'] = getOrSetCookie('x-channel-deviceid', 'deviceid');\n config.headers['x-channel-devicemodel'] = getOrSetCookie('x-channel-devicemodel', 'iPHONE13');\n config.headers['x-channel-formfactor'] = getOrSetCookie('x-channel-formfactor', 'Phone');\n config.headers['x-channel-loginchannel'] = getOrSetCookie('x-channel-loginchannel', 'DSP');\n config.headers['x-channel-logintype'] = getOrSetCookie('x-channel-logintype', 'ONPA_PIN');\n config.headers['x-channel-platformname'] = getOrSetCookie('x-channel-platformname', 'IOS');\n config.headers['x-channel-platformversion'] = getOrSetCookie('x-channel-platformversion', '15.4.1');\n config.headers['x-channel-screenid'] = getOrSetCookie('x-channel-screenid', 'ScreenId');\n }\n\n /**\n * 커스텀헤더 주입\n */\n this.headerManager.setCustomHeaders();\n /**\n *\n * this.headers설정된 값을 config headers에 주입\n */\n const headerEntries = Object.entries(this.headers);\n headerEntries.forEach(([key, value]) => {\n if (config?.headers) {\n config.headers[key] = value;\n }\n });\n\n /**\n * isRefreshed가 false이면(= 에러발생하여 token재발행중을 의미)\n * 새로운 요청들을 처리하지 않고,큐에 저장\n * 401에러 Queue처리 Request interceptor 등록\n */\n if (!isRefreshed) {\n return new Promise((resolve, reject) => {\n axiosQueue.push({ resolve, reject, config });\n }).then(() => config);\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n\n /**\n * 인터셉터 응답 처리\n */\n this.api.interceptors.response.use(\n async (response: AxiosResponse) => {\n /** 디버깅용 로그 */\n await addResponseLog(response);\n if (response.data.isSuccess === false) {\n /**\n * 200 응답이라도 , isSuccess === false인 경우 에러로 reject\n */\n return Promise.reject(response);\n }\n\n return response;\n },\n async (error: AxiosError) => {\n /** 디버깅용 로그 */\n await addErrorLog(error);\n\n const originalRequest = error.config;\n const debugRefreshQueueOff = config.headers?.['Debug-Refresh-Queue-Off'] === 'true';\n /**\n * 401에러 Queue처리\n */\n if (error.response?.status === 401 && !debugRefreshQueueOff) {\n isRefreshed = false;\n const client = new AuthClient();\n client\n .refreshToken()\n .then(() => {\n /**\n * 토큰 갱신 성공, 플래그를 true로 설정\n */\n isRefreshed = true;\n\n /**\n * 큐에 쌓여있던 모든 요청 재시도\n */\n while (axiosQueue.length > 0) {\n const p = axiosQueue.shift(); // axiosQueue에서 첫 번째 요소를 제거하고 반환합니다.\n if (p) {\n /**\n * api 인스턴스를 통해 요청을 재시도합니다. 따라서 재요청들은 다시 인터셉터를 타게 됩니다.\n * 신규토큰을 주입받고 정상처리\n * @todo 재시도후 reject시에는 로그인페이지로 보내는 브릿지 함수를 호출하도록 처리가 필요해보임.\n */\n this.api(p.config)\n .then((response) => p.resolve(response))\n .catch((err) => p.reject(err));\n }\n }\n })\n .catch((error) => {\n /**\n * 토큰 재발행중 에러 발생한 경우 처리\n * @todo 로그인페이지 이동(?)\n */\n return Promise.reject(error);\n });\n\n return new Promise((resolve, reject) => {\n if (originalRequest) {\n axiosQueue.push({ resolve, reject, config: originalRequest });\n }\n });\n } else {\n return Promise.reject(error);\n }\n }\n );\n }\n\n setHeaders(headers: Record<string, string>) {\n this.headers = {\n ...this.headers,\n ...headers\n };\n }\n}\n","import { Bridge } from 'sales-frontend-bridge';\nimport { isDspApp } from 'sales-frontend-utils';\n\nimport { HttpClientAxios } from '../axios/http-client-axios';\nimport { cookieClient } from '../cookie/cookie-client';\n\nexport class AuthClient {\n /**\n * App인지 확인\n * @returns boolean\n */\n isApp() {\n return isDspApp();\n }\n\n /**\n *\n * @returns Promise<string | undefined>\n */\n async getAT(): Promise<string | undefined> {\n const debugMode = cookieClient.getCookie('dsp-debug-mode') === 'on';\n\n /**\n * debugMode 경우 cookie에서 'AT' 를 읽어온다.\n */\n if (debugMode) {\n console.log('debugMode token setting!');\n\n return cookieClient.getCookie('accessToken');\n }\n\n if (this.isApp()) {\n return (await Bridge.native.getAccessToken()).accessToken;\n } else {\n /**\n * pc인 경우는, middleware.ts 에서 요청헤더에 주입\n */\n }\n }\n\n /**\n * RT를 이용하여 신규 AT/RT발행\n * 기존토큰은 무효화처리\n * 쿠키에 저장.\n * @returns Promise<string> 액세스토큰\n */\n async refreshToken(): Promise<string> {\n if (this.isApp()) {\n /**\n * @todo : 브릿지 함수 호출 스펙에 맞게 수정필요\n */\n // @ts-ignore\n //return await bridge.callToNative('', '', 'refreshToken', {});\n return '';\n } else {\n /**\n * @todo : 내부api호출\n */\n const httpclient = new HttpClientAxios({});\n const res = await httpclient.api.get('/internal/api/auth/refresh');\n\n return res?.data.accessToken;\n }\n }\n}\n//\n","import { HttpClientAxios } from '../../client';\n\nimport type { TestResponse } from './sample.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\ninterface TestRequest {\n id?: number;\n config?: AxiosRequestConfig;\n setupFn?: (httpClient: HttpClientAxios) => void;\n}\nexport const getTestMethod = async ({ id, config, setupFn }: TestRequest) => {\n const testAPI = `https://jsonplaceholder.typicode.com/users/${id}`;\n\n const httpClient = new HttpClientAxios(config);\n\n const res = await httpClient.api.get<TestResponse>(testAPI);\n\n return res.data;\n};\n","export const getServiceCode = () => {\n // @ts-ignore\n if (typeof window.isStorybookEnv === 'boolean') {\n return '';\n } else {\n return `/${location.pathname.split('/')[1]}`;\n }\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\n\nexport const getAddressListMethod = async (params: AddressListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { AddressListRequestDto, DspResponseAddressListResponseDto } from './address-search.dto';\nimport { getAddressListMethod } from './address-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressQuery = (\n params: AddressListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchAddress', JSON.stringify(params)],\n queryFn: () => {\n return getAddressListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\n\nexport const getAddressPostalCodeMethod = async (params: AddressPostalCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address/postal-code`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressPostalCodeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { AddressPostalCodeRequestDto, DspResponseAddressPostalCodeResponseDto } from './postal-code.dto';\nimport { getAddressPostalCodeMethod } from './postal-code.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchPostalCodeQuery = (\n params: AddressPostalCodeRequestDto,\n options?: CustomQueryOptions<DspResponseAddressPostalCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWordName,\n retry: false,\n queryKey: ['searchPostalCode', JSON.stringify(params)],\n queryFn: () => {\n return getAddressPostalCodeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\n\nexport const getAddressStandardizationListMethod = async (\n params: AddressStandardizationListRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/address-standardization-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseAddressStandardizationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n AddressStandardizationListRequestDto,\n DspResponseAddressStandardizationListResponseDto\n} from './address-standardization.dto';\nimport { getAddressStandardizationListMethod } from './address-standardization.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchAddressStandardizationQuery = (\n params: AddressStandardizationListRequestDto,\n options?: CustomQueryOptions<DspResponseAddressStandardizationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.baseAddress,\n retry: false,\n queryKey: ['searchAddressStandardization', JSON.stringify(params)],\n queryFn: () => {\n return getAddressStandardizationListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\n\n/**\n * @description 직종 목록 조회\n */\nexport const getOccupationListMethod = async (params: OccupationListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n\n/**\n * @description 직종 상세 조회\n */\nexport const getOccupationDetailMethod = async (params: OccupationDetailRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/occupation/detail`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOccupationDetailResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseOccupationDetailResponseDto,\n DspResponseOccupationListResponseDto,\n OccupationDetailRequestDto,\n OccupationListRequestDto\n} from './occupation-search.dto';\nimport { getOccupationDetailMethod, getOccupationListMethod } from './occupation-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\n/**\n * @description 직종 목록 조회 쿼리\n */\nexport const useSearchOccupationQuery = (\n params: OccupationListRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationList', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationListMethod(params, config);\n },\n ...options\n });\n};\n\n/**\n * @description 직종 상세 조회 쿼리\n */\nexport const useSearchOccupationDetailQuery = (\n params: OccupationDetailRequestDto,\n options?: CustomQueryOptions<DspResponseOccupationDetailResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchOccupationDetail', JSON.stringify(params)],\n queryFn: () => {\n return getOccupationDetailMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\n\nexport const getVehicleListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/vehicle-type-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVehicleTypeListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseVehicleTypeListResponseDto } from './vehicle-search.dto';\nimport { getVehicleListMethod } from './vehicle-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVehicleQuery = (\n options?: CustomQueryOptions<DspResponseVehicleTypeListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVehicle'],\n queryFn: () => {\n return getVehicleListMethod(config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseEmployeeProfileResponseDto, EmployeeProfileSearchRequestDto } from './employee-search.dto';\n\nexport const getEmployeeProfileListMethod = async (\n params: EmployeeProfileSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/employee`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseEmployeeProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseEmployeeProfileResponseDto,\n EmployeeProfileSearchRequestDto,\n} from './employee-search.dto';\nimport { getEmployeeProfileListMethod } from './employee-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchEmployeeProfileQuery = (\n params: EmployeeProfileSearchRequestDto,\n options?: CustomQueryOptions<DspResponseEmployeeProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchEmployeeProfile', JSON.stringify(params)],\n queryFn: () => {\n return getEmployeeProfileListMethod(params, config);\n },\n ...options,\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseOrganizationProfileResponse, OrganizationSearchRequestDto } from './organization-search.dto';\n\nexport const getOrganizationProfileListMethod = async (\n params: OrganizationSearchRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n ///v1/get/participant/profile/organization\n const apiUrl = `${serviceCode}/api/dea/v1/get/participant/profile/organization`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseOrganizationProfileResponse>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport {\n DspResponseOrganizationProfileResponse,\n OrganizationSearchRequestDto,\n} from './organization-search.dto';\nimport { getOrganizationProfileListMethod } from './organization-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchOrganizationQuery = (\n params: OrganizationSearchRequestDto,\n options?: CustomQueryOptions<DspResponseOrganizationProfileResponse>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.searchWord,\n retry: false,\n queryKey: ['searchOrganization', JSON.stringify(params)],\n queryFn: () => {\n return getOrganizationProfileListMethod(params, config);\n },\n ...options,\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\n\nexport const getNationalityListMethod = async (params: NationalitySearchRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/nationality-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseNationalityListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseNationalityListResponseDto, NationalitySearchRequestDto } from './nationality-search.dto';\nimport { getNationalityListMethod } from './nationality-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchNationalityQuery = (\n params: NationalitySearchRequestDto,\n options?: CustomQueryOptions<DspResponseNationalityListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n console.log('search nationality', params.searchKeyWord);\n\n return useQuery({\n enabled: !!params.searchKeyWord,\n retry: false,\n queryKey: ['searchNationality', JSON.stringify(params)],\n queryFn: () => {\n return getNationalityListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\n\nexport const getCustomerListMethod = async (params: CustomerListRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCustomerListResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getCustomerListMethod } from './customer-list-search.service';\n\nimport type { CustomerListRequestDto, DspResponseCustomerListResponseDto } from './customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCustomerListQuery = (\n params: CustomerListRequestDto,\n options?: CustomQueryOptions<DspResponseCustomerListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\n\nexport const getRiskGradeMethod = async (params: RiskGradeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/risk-grade`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseRiskGradeResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { DspResponseRiskGradeResponseDto, RiskGradeRequestDto } from './risk-grade-search.dto';\nimport { getRiskGradeMethod } from './risk-grade-search.service';\n\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchRiskGradeQuery = (\n params: RiskGradeRequestDto,\n options?: CustomQueryOptions<DspResponseRiskGradeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.occupationIndustryCode && !!params.vehicleTypeCode,\n retry: false,\n queryKey: ['searchRiskGrade', JSON.stringify(params)],\n queryFn: () => {\n return getRiskGradeMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\n\nexport const getDspCustomerListMethod = async (\n params: PersonalCustomerProfileRequestDto,\n config?: AxiosRequestConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/customer-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseListPersonalCustomerProfileResponseDto>(apiUrl, params);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getDspCustomerListMethod } from './dea-customer-list-search.service';\n\nimport type {\n DspResponseListPersonalCustomerProfileResponseDto,\n PersonalCustomerProfileRequestDto\n} from './dea-customer-list-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchDspCustomerListQuery = (\n params: PersonalCustomerProfileRequestDto,\n options?: CustomQueryOptions<DspResponseListPersonalCustomerProfileResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!params.customerName,\n retry: false,\n queryKey: ['searchDspCustomerList', JSON.stringify(params)],\n queryFn: () => {\n return getDspCustomerListMethod(params, config);\n },\n ...options\n });\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../../client';\nimport { getServiceCode } from '../../method-util';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\n\nexport const getVisaListMethod = async (config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dis/v1/get/codes/visa-status-list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseVisaStatusListResponseDto>(apiUrl);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { getVisaListMethod } from './visa-search.service';\n\nimport type { DspResponseVisaStatusListResponseDto } from './visa-search.dto';\nimport type { CustomQueryOptions } from '../../method.types';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchVisaQuery = (\n options?: CustomQueryOptions<DspResponseVisaStatusListResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: true,\n retry: false,\n queryKey: ['searchVisa'],\n queryFn: () => {\n return getVisaListMethod(config);\n },\n ...options\n });\n};\n","import { HttpClientAxios } from '../../client';\n\nimport { FpLoginResponseDto } from './login-dsp.dto';\n\n/**\n * @param userId 사번\n */\nexport const postLoginMethod = async (userId: number) => {\n console.log('userId', userId);\n const apiUrl = '/api/dat/v1/post/login';\n const httpClient = new HttpClientAxios({\n headers: {\n 'Debug-Refresh-Queue-Off': 'true'\n }\n });\n\n const res = await httpClient.api.post<FpLoginResponseDto>(apiUrl, {\n userId,\n channelType: 'DSP_TABLET'\n });\n\n return res.data;\n};\n","import { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { ApiConfig } from '../shared.dto';\nimport type {\n RemoteIdentityVerificationSystemTokenRequestDto,\n DspResponseRemoteIdentityVerificationSystemTokenResponseDto,\n RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n RemoteIdentityVerificationSystemIdentificationCardResponseDto\n} from './remote-identity-verification.dto';\n\n/**\n * 토큰 발급 API\n * @param params\n * @param axiosConfig\n * @returns\n */\nexport const getRemoteIdentityVerificationSystemToken = async (\n params: RemoteIdentityVerificationSystemTokenRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/token`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<DspResponseRemoteIdentityVerificationSystemTokenResponseDto>(apiUrl, params);\n\n return response.data;\n};\n\n/**\n * 비대면 인증 시스템 신분증 진위확인 API\n * @param params 진위확인 요청 파라미터\n * @param axiosConfig API 설정\n * @returns 신분증 진위확인 응답 데이터\n */\nexport const confirmRemoteIdentityVerificationSystemIdentificationCard = async (\n params: RemoteIdentityVerificationSystemIdentificationCardRequestDto,\n axiosConfig?: ApiConfig\n) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/post/participant/remote-identity-verification-system/identification-card/confirm`;\n\n const response = await new HttpClientAxios({\n ...axiosConfig\n }).api.post<RemoteIdentityVerificationSystemIdentificationCardResponseDto>(apiUrl, params);\n\n return response.data;\n};\n","import { AxiosRequestConfig } from 'axios';\n\nimport { HttpClientAxios } from '../../client';\nimport { getServiceCode } from '../method-util';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\n\nexport const getCommonCodeListMethod = async (param: CommonCodeRequestDto, config?: AxiosRequestConfig) => {\n const serviceCode = getServiceCode();\n const apiUrl = `${serviceCode}/api/dea/v1/get/common-code/list`;\n const httpClient = new HttpClientAxios(config);\n const res = await httpClient.api.post<DspResponseCommonCodeResponseDto>(apiUrl, param);\n\n return res.data;\n};\n","import { useQuery } from '@tanstack/react-query';\n\nimport { CustomQueryOptions } from '../method.types';\n\nimport { getCommonCodeListMethod } from './common-code-search.service';\n\nimport type { CommonCodeRequestDto, DspResponseCommonCodeResponseDto } from './common-code-search.dto';\nimport type { AxiosRequestConfig } from 'axios';\n\nexport const useSearchCommonCodeQuery = (\n param: CommonCodeRequestDto,\n options?: CustomQueryOptions<DspResponseCommonCodeResponseDto>,\n config?: AxiosRequestConfig\n) => {\n return useQuery({\n enabled: !!param.commonCodeId,\n retry: false,\n queryKey: ['searchCommonCode', param.commonCodeId],\n queryFn: () => {\n return getCommonCodeListMethod(param, config);\n },\n ...options\n });\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sales-frontend-api",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.59",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/client.js",
|
|
@@ -47,24 +47,24 @@
|
|
|
47
47
|
"react": "^19.1.0",
|
|
48
48
|
"tsup": "^8.4.0",
|
|
49
49
|
"typescript": "5.8.2",
|
|
50
|
-
"eslint-config-sales-frontend-eslint-config-v8": "^0.0.6",
|
|
51
|
-
"sales-frontend-bridge": "0.0.39",
|
|
52
|
-
"sales-frontend-stores": "0.0.3",
|
|
53
50
|
"sales-frontend-typescript-config": "0.0.2",
|
|
54
|
-
"sales-frontend-
|
|
55
|
-
"sales-frontend-
|
|
51
|
+
"sales-frontend-stores": "0.0.3",
|
|
52
|
+
"eslint-config-sales-frontend-eslint-config-v8": "^0.0.6",
|
|
53
|
+
"sales-frontend-bridge": "0.0.40",
|
|
54
|
+
"sales-frontend-design-system": "0.0.68",
|
|
55
|
+
"sales-frontend-utils": "0.0.12"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@tanstack/react-query": "^5.81.2",
|
|
59
59
|
"axios": "^1.10.0",
|
|
60
60
|
"zustand": "^5.0.6",
|
|
61
|
-
"sales-frontend-utils": "0.0.
|
|
62
|
-
"sales-frontend-debug": "0.0.
|
|
61
|
+
"sales-frontend-utils": "0.0.12",
|
|
62
|
+
"sales-frontend-debug": "0.0.8"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
|
-
"sales-frontend-
|
|
66
|
-
"sales-frontend-
|
|
67
|
-
"sales-frontend-
|
|
65
|
+
"sales-frontend-stores": "0.0.3",
|
|
66
|
+
"sales-frontend-design-system": "0.0.68",
|
|
67
|
+
"sales-frontend-bridge": "0.0.40"
|
|
68
68
|
},
|
|
69
69
|
"scripts": {
|
|
70
70
|
"lint": "eslint . --max-warnings 0",
|