@cmarket/partner-sdk 9.2.0 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/README.md +74 -4
  2. package/api/oauth-api.ts +1 -1
  3. package/api/partner-v1-api.ts +1 -1
  4. package/api/partner-v2-api.ts +78 -1
  5. package/api.ts +1 -1
  6. package/base.ts +1 -1
  7. package/common.ts +1 -1
  8. package/configuration.ts +1 -1
  9. package/dist/api/oauth-api.d.ts +1 -1
  10. package/dist/api/oauth-api.js +1 -1
  11. package/dist/api/partner-v1-api.d.ts +1 -1
  12. package/dist/api/partner-v1-api.js +1 -1
  13. package/dist/api/partner-v2-api.d.ts +35 -1
  14. package/dist/api/partner-v2-api.js +71 -1
  15. package/dist/api.d.ts +1 -1
  16. package/dist/api.js +1 -1
  17. package/dist/base.d.ts +1 -1
  18. package/dist/base.js +1 -1
  19. package/dist/common.d.ts +1 -1
  20. package/dist/common.js +1 -1
  21. package/dist/configuration.d.ts +1 -1
  22. package/dist/configuration.js +1 -1
  23. package/dist/dpop.d.ts +8 -0
  24. package/dist/dpop.js +57 -0
  25. package/dist/esm/api/oauth-api.d.ts +1 -1
  26. package/dist/esm/api/oauth-api.js +1 -1
  27. package/dist/esm/api/partner-v1-api.d.ts +1 -1
  28. package/dist/esm/api/partner-v1-api.js +1 -1
  29. package/dist/esm/api/partner-v2-api.d.ts +35 -1
  30. package/dist/esm/api/partner-v2-api.js +71 -1
  31. package/dist/esm/api.d.ts +1 -1
  32. package/dist/esm/api.js +1 -1
  33. package/dist/esm/base.d.ts +1 -1
  34. package/dist/esm/base.js +1 -1
  35. package/dist/esm/common.d.ts +1 -1
  36. package/dist/esm/common.js +1 -1
  37. package/dist/esm/configuration.d.ts +1 -1
  38. package/dist/esm/configuration.js +1 -1
  39. package/dist/esm/dpop.d.ts +8 -0
  40. package/dist/esm/dpop.js +53 -0
  41. package/dist/esm/index.d.ts +1 -1
  42. package/dist/esm/index.js +1 -1
  43. package/dist/esm/models/acceptance-result-response-dto.d.ts +1 -1
  44. package/dist/esm/models/acceptance-result-response-dto.js +1 -1
  45. package/dist/esm/models/award-registered-response-dto.d.ts +1 -1
  46. package/dist/esm/models/award-registered-response-dto.js +1 -1
  47. package/dist/esm/models/bid-bond-dto.d.ts +1 -1
  48. package/dist/esm/models/bid-bond-dto.js +1 -1
  49. package/dist/esm/models/bid-contract-documents-batch-request-dto.d.ts +1 -1
  50. package/dist/esm/models/bid-contract-documents-batch-request-dto.js +1 -1
  51. package/dist/esm/models/bid-contract-documents-response-dto.d.ts +1 -1
  52. package/dist/esm/models/bid-contract-documents-response-dto.js +1 -1
  53. package/dist/esm/models/bid-created-response-dto.d.ts +1 -1
  54. package/dist/esm/models/bid-created-response-dto.js +1 -1
  55. package/dist/esm/models/bid-document-dto.d.ts +1 -1
  56. package/dist/esm/models/bid-document-dto.js +1 -1
  57. package/dist/esm/models/bid-failed-response-dto.d.ts +1 -1
  58. package/dist/esm/models/bid-failed-response-dto.js +1 -1
  59. package/dist/esm/models/bid-failure-reason.d.ts +1 -1
  60. package/dist/esm/models/bid-failure-reason.js +1 -1
  61. package/dist/esm/models/bid-item-dto.d.ts +1 -1
  62. package/dist/esm/models/bid-item-dto.js +1 -1
  63. package/dist/esm/models/bid-manager-dto.d.ts +1 -1
  64. package/dist/esm/models/bid-manager-dto.js +1 -1
  65. package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
  66. package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
  67. package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
  68. package/dist/esm/models/bid-result-participant-dto.js +1 -1
  69. package/dist/esm/models/bid-result-v1-attachment-dto.d.ts +1 -1
  70. package/dist/esm/models/bid-result-v1-attachment-dto.js +1 -1
  71. package/dist/esm/models/bid-result-v1-bid-product-info-dto.d.ts +1 -1
  72. package/dist/esm/models/bid-result-v1-bid-product-info-dto.js +1 -1
  73. package/dist/esm/models/bid-result-v1-participant-dto.d.ts +1 -1
  74. package/dist/esm/models/bid-result-v1-participant-dto.js +1 -1
  75. package/dist/esm/models/bid-result-v1-product-dto.d.ts +1 -1
  76. package/dist/esm/models/bid-result-v1-product-dto.js +1 -1
  77. package/dist/esm/models/bid-results-batch-request-dto.d.ts +1 -1
  78. package/dist/esm/models/bid-results-batch-request-dto.js +1 -1
  79. package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
  80. package/dist/esm/models/bid-results-response-dto.js +1 -1
  81. package/dist/esm/models/bid-results-v1-response-dto.d.ts +1 -1
  82. package/dist/esm/models/bid-results-v1-response-dto.js +1 -1
  83. package/dist/esm/models/bid-settlement-line-item-dto.d.ts +1 -1
  84. package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
  85. package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
  86. package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
  87. package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
  88. package/dist/esm/models/bid-settlement-response-dto.js +1 -1
  89. package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
  90. package/dist/esm/models/bid-statement-response-dto.js +1 -1
  91. package/dist/esm/models/bid-statement-v1-response-dto.d.ts +1 -1
  92. package/dist/esm/models/bid-statement-v1-response-dto.js +1 -1
  93. package/dist/esm/models/bid-status.d.ts +1 -1
  94. package/dist/esm/models/bid-status.js +1 -1
  95. package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
  96. package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
  97. package/dist/esm/models/complete-acceptance-v1-request-dto.d.ts +1 -1
  98. package/dist/esm/models/complete-acceptance-v1-request-dto.js +1 -1
  99. package/dist/esm/models/contract-document-item-dto.d.ts +1 -1
  100. package/dist/esm/models/contract-document-item-dto.js +1 -1
  101. package/dist/esm/models/create-bid-request-dto.d.ts +1 -1
  102. package/dist/esm/models/create-bid-request-dto.js +1 -1
  103. package/dist/esm/models/create-bid-v1-request-dto.d.ts +1 -1
  104. package/dist/esm/models/create-bid-v1-request-dto.js +1 -1
  105. package/dist/esm/models/embed-launch-request-dto.d.ts +25 -0
  106. package/dist/esm/models/embed-launch-request-dto.js +16 -0
  107. package/dist/esm/models/embed-launch-response-dto.d.ts +21 -0
  108. package/dist/esm/models/embed-launch-response-dto.js +14 -0
  109. package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
  110. package/dist/esm/models/file-uploaded-response-dto.js +1 -1
  111. package/dist/esm/models/health-response-dto.d.ts +1 -1
  112. package/dist/esm/models/health-response-dto.js +1 -1
  113. package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
  114. package/dist/esm/models/hierarchical-region-dto.js +1 -1
  115. package/dist/esm/models/index.d.ts +2 -0
  116. package/dist/esm/models/index.js +2 -0
  117. package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
  118. package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
  119. package/dist/esm/models/mark-bid-failed-v1-request-dto.d.ts +1 -1
  120. package/dist/esm/models/mark-bid-failed-v1-request-dto.js +1 -1
  121. package/dist/esm/models/negotiation-score-v1-dto.d.ts +1 -1
  122. package/dist/esm/models/negotiation-score-v1-dto.js +1 -1
  123. package/dist/esm/models/negotiation-scored-response-dto.d.ts +1 -1
  124. package/dist/esm/models/negotiation-scored-response-dto.js +1 -1
  125. package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
  126. package/dist/esm/models/oauth-error-response-dto.js +1 -1
  127. package/dist/esm/models/preconditions-dto.d.ts +1 -1
  128. package/dist/esm/models/preconditions-dto.js +1 -1
  129. package/dist/esm/models/problem-details-dto.d.ts +1 -1
  130. package/dist/esm/models/problem-details-dto.js +1 -1
  131. package/dist/esm/models/register-award-request-dto.d.ts +1 -1
  132. package/dist/esm/models/register-award-request-dto.js +1 -1
  133. package/dist/esm/models/register-award-v1-request-dto.d.ts +1 -1
  134. package/dist/esm/models/register-award-v1-request-dto.js +1 -1
  135. package/dist/esm/models/request-split-invoice-request-dto.d.ts +1 -1
  136. package/dist/esm/models/request-split-invoice-request-dto.js +1 -1
  137. package/dist/esm/models/split-invoice-response-dto.d.ts +1 -1
  138. package/dist/esm/models/split-invoice-response-dto.js +1 -1
  139. package/dist/esm/models/statement-document-dto.d.ts +1 -1
  140. package/dist/esm/models/statement-document-dto.js +1 -1
  141. package/dist/esm/models/statement-product-dto.d.ts +1 -1
  142. package/dist/esm/models/statement-product-dto.js +1 -1
  143. package/dist/esm/models/statement-v1-document-dto.d.ts +1 -1
  144. package/dist/esm/models/statement-v1-document-dto.js +1 -1
  145. package/dist/esm/models/statement-v1-product-dto.d.ts +1 -1
  146. package/dist/esm/models/statement-v1-product-dto.js +1 -1
  147. package/dist/esm/models/submit-negotiation-scores-v1-request-dto.d.ts +1 -1
  148. package/dist/esm/models/submit-negotiation-scores-v1-request-dto.js +1 -1
  149. package/dist/esm/models/token-request-dto.d.ts +5 -5
  150. package/dist/esm/models/token-request-dto.js +1 -1
  151. package/dist/esm/models/token-response-dto.d.ts +1 -1
  152. package/dist/esm/models/token-response-dto.js +1 -1
  153. package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
  154. package/dist/esm/models/upload-file-request-dto.js +1 -1
  155. package/dist/esm/partner-client.d.ts +31 -0
  156. package/dist/esm/partner-client.js +76 -0
  157. package/dist/esm/token-manager.d.ts +13 -0
  158. package/dist/esm/token-manager.js +57 -0
  159. package/dist/index.d.ts +1 -1
  160. package/dist/index.js +1 -1
  161. package/dist/models/acceptance-result-response-dto.d.ts +1 -1
  162. package/dist/models/acceptance-result-response-dto.js +1 -1
  163. package/dist/models/award-registered-response-dto.d.ts +1 -1
  164. package/dist/models/award-registered-response-dto.js +1 -1
  165. package/dist/models/bid-bond-dto.d.ts +1 -1
  166. package/dist/models/bid-bond-dto.js +1 -1
  167. package/dist/models/bid-contract-documents-batch-request-dto.d.ts +1 -1
  168. package/dist/models/bid-contract-documents-batch-request-dto.js +1 -1
  169. package/dist/models/bid-contract-documents-response-dto.d.ts +1 -1
  170. package/dist/models/bid-contract-documents-response-dto.js +1 -1
  171. package/dist/models/bid-created-response-dto.d.ts +1 -1
  172. package/dist/models/bid-created-response-dto.js +1 -1
  173. package/dist/models/bid-document-dto.d.ts +1 -1
  174. package/dist/models/bid-document-dto.js +1 -1
  175. package/dist/models/bid-failed-response-dto.d.ts +1 -1
  176. package/dist/models/bid-failed-response-dto.js +1 -1
  177. package/dist/models/bid-failure-reason.d.ts +1 -1
  178. package/dist/models/bid-failure-reason.js +1 -1
  179. package/dist/models/bid-item-dto.d.ts +1 -1
  180. package/dist/models/bid-item-dto.js +1 -1
  181. package/dist/models/bid-manager-dto.d.ts +1 -1
  182. package/dist/models/bid-manager-dto.js +1 -1
  183. package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
  184. package/dist/models/bid-result-participant-attachment-dto.js +1 -1
  185. package/dist/models/bid-result-participant-dto.d.ts +1 -1
  186. package/dist/models/bid-result-participant-dto.js +1 -1
  187. package/dist/models/bid-result-v1-attachment-dto.d.ts +1 -1
  188. package/dist/models/bid-result-v1-attachment-dto.js +1 -1
  189. package/dist/models/bid-result-v1-bid-product-info-dto.d.ts +1 -1
  190. package/dist/models/bid-result-v1-bid-product-info-dto.js +1 -1
  191. package/dist/models/bid-result-v1-participant-dto.d.ts +1 -1
  192. package/dist/models/bid-result-v1-participant-dto.js +1 -1
  193. package/dist/models/bid-result-v1-product-dto.d.ts +1 -1
  194. package/dist/models/bid-result-v1-product-dto.js +1 -1
  195. package/dist/models/bid-results-batch-request-dto.d.ts +1 -1
  196. package/dist/models/bid-results-batch-request-dto.js +1 -1
  197. package/dist/models/bid-results-response-dto.d.ts +1 -1
  198. package/dist/models/bid-results-response-dto.js +1 -1
  199. package/dist/models/bid-results-v1-response-dto.d.ts +1 -1
  200. package/dist/models/bid-results-v1-response-dto.js +1 -1
  201. package/dist/models/bid-settlement-line-item-dto.d.ts +1 -1
  202. package/dist/models/bid-settlement-line-item-dto.js +1 -1
  203. package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
  204. package/dist/models/bid-settlement-participant-dto.js +1 -1
  205. package/dist/models/bid-settlement-response-dto.d.ts +1 -1
  206. package/dist/models/bid-settlement-response-dto.js +1 -1
  207. package/dist/models/bid-statement-response-dto.d.ts +1 -1
  208. package/dist/models/bid-statement-response-dto.js +1 -1
  209. package/dist/models/bid-statement-v1-response-dto.d.ts +1 -1
  210. package/dist/models/bid-statement-v1-response-dto.js +1 -1
  211. package/dist/models/bid-status.d.ts +1 -1
  212. package/dist/models/bid-status.js +1 -1
  213. package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
  214. package/dist/models/complete-acceptance-request-dto.js +1 -1
  215. package/dist/models/complete-acceptance-v1-request-dto.d.ts +1 -1
  216. package/dist/models/complete-acceptance-v1-request-dto.js +1 -1
  217. package/dist/models/contract-document-item-dto.d.ts +1 -1
  218. package/dist/models/contract-document-item-dto.js +1 -1
  219. package/dist/models/create-bid-request-dto.d.ts +1 -1
  220. package/dist/models/create-bid-request-dto.js +1 -1
  221. package/dist/models/create-bid-v1-request-dto.d.ts +1 -1
  222. package/dist/models/create-bid-v1-request-dto.js +1 -1
  223. package/dist/models/embed-launch-request-dto.d.ts +25 -0
  224. package/dist/models/embed-launch-request-dto.js +19 -0
  225. package/dist/models/embed-launch-response-dto.d.ts +21 -0
  226. package/dist/models/embed-launch-response-dto.js +15 -0
  227. package/dist/models/file-uploaded-response-dto.d.ts +1 -1
  228. package/dist/models/file-uploaded-response-dto.js +1 -1
  229. package/dist/models/health-response-dto.d.ts +1 -1
  230. package/dist/models/health-response-dto.js +1 -1
  231. package/dist/models/hierarchical-region-dto.d.ts +1 -1
  232. package/dist/models/hierarchical-region-dto.js +1 -1
  233. package/dist/models/index.d.ts +2 -0
  234. package/dist/models/index.js +2 -0
  235. package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
  236. package/dist/models/mark-bid-failed-request-dto.js +1 -1
  237. package/dist/models/mark-bid-failed-v1-request-dto.d.ts +1 -1
  238. package/dist/models/mark-bid-failed-v1-request-dto.js +1 -1
  239. package/dist/models/negotiation-score-v1-dto.d.ts +1 -1
  240. package/dist/models/negotiation-score-v1-dto.js +1 -1
  241. package/dist/models/negotiation-scored-response-dto.d.ts +1 -1
  242. package/dist/models/negotiation-scored-response-dto.js +1 -1
  243. package/dist/models/oauth-error-response-dto.d.ts +1 -1
  244. package/dist/models/oauth-error-response-dto.js +1 -1
  245. package/dist/models/preconditions-dto.d.ts +1 -1
  246. package/dist/models/preconditions-dto.js +1 -1
  247. package/dist/models/problem-details-dto.d.ts +1 -1
  248. package/dist/models/problem-details-dto.js +1 -1
  249. package/dist/models/register-award-request-dto.d.ts +1 -1
  250. package/dist/models/register-award-request-dto.js +1 -1
  251. package/dist/models/register-award-v1-request-dto.d.ts +1 -1
  252. package/dist/models/register-award-v1-request-dto.js +1 -1
  253. package/dist/models/request-split-invoice-request-dto.d.ts +1 -1
  254. package/dist/models/request-split-invoice-request-dto.js +1 -1
  255. package/dist/models/split-invoice-response-dto.d.ts +1 -1
  256. package/dist/models/split-invoice-response-dto.js +1 -1
  257. package/dist/models/statement-document-dto.d.ts +1 -1
  258. package/dist/models/statement-document-dto.js +1 -1
  259. package/dist/models/statement-product-dto.d.ts +1 -1
  260. package/dist/models/statement-product-dto.js +1 -1
  261. package/dist/models/statement-v1-document-dto.d.ts +1 -1
  262. package/dist/models/statement-v1-document-dto.js +1 -1
  263. package/dist/models/statement-v1-product-dto.d.ts +1 -1
  264. package/dist/models/statement-v1-product-dto.js +1 -1
  265. package/dist/models/submit-negotiation-scores-v1-request-dto.d.ts +1 -1
  266. package/dist/models/submit-negotiation-scores-v1-request-dto.js +1 -1
  267. package/dist/models/token-request-dto.d.ts +5 -5
  268. package/dist/models/token-request-dto.js +1 -1
  269. package/dist/models/token-response-dto.d.ts +1 -1
  270. package/dist/models/token-response-dto.js +1 -1
  271. package/dist/models/upload-file-request-dto.d.ts +1 -1
  272. package/dist/models/upload-file-request-dto.js +1 -1
  273. package/dist/partner-client.d.ts +31 -0
  274. package/dist/partner-client.js +81 -0
  275. package/dist/token-manager.d.ts +13 -0
  276. package/dist/token-manager.js +60 -0
  277. package/docs/EmbedLaunchRequestDto.md +22 -0
  278. package/docs/EmbedLaunchResponseDto.md +22 -0
  279. package/docs/PartnerV2Api.md +60 -0
  280. package/docs/TokenRequestDto.md +2 -2
  281. package/dpop.ts +50 -0
  282. package/index.ts +1 -1
  283. package/models/acceptance-result-response-dto.ts +1 -1
  284. package/models/award-registered-response-dto.ts +1 -1
  285. package/models/bid-bond-dto.ts +1 -1
  286. package/models/bid-contract-documents-batch-request-dto.ts +1 -1
  287. package/models/bid-contract-documents-response-dto.ts +1 -1
  288. package/models/bid-created-response-dto.ts +1 -1
  289. package/models/bid-document-dto.ts +1 -1
  290. package/models/bid-failed-response-dto.ts +1 -1
  291. package/models/bid-failure-reason.ts +1 -1
  292. package/models/bid-item-dto.ts +1 -1
  293. package/models/bid-manager-dto.ts +1 -1
  294. package/models/bid-result-participant-attachment-dto.ts +1 -1
  295. package/models/bid-result-participant-dto.ts +1 -1
  296. package/models/bid-result-v1-attachment-dto.ts +1 -1
  297. package/models/bid-result-v1-bid-product-info-dto.ts +1 -1
  298. package/models/bid-result-v1-participant-dto.ts +1 -1
  299. package/models/bid-result-v1-product-dto.ts +1 -1
  300. package/models/bid-results-batch-request-dto.ts +1 -1
  301. package/models/bid-results-response-dto.ts +1 -1
  302. package/models/bid-results-v1-response-dto.ts +1 -1
  303. package/models/bid-settlement-line-item-dto.ts +1 -1
  304. package/models/bid-settlement-participant-dto.ts +1 -1
  305. package/models/bid-settlement-response-dto.ts +1 -1
  306. package/models/bid-statement-response-dto.ts +1 -1
  307. package/models/bid-statement-v1-response-dto.ts +1 -1
  308. package/models/bid-status.ts +1 -1
  309. package/models/complete-acceptance-request-dto.ts +1 -1
  310. package/models/complete-acceptance-v1-request-dto.ts +1 -1
  311. package/models/contract-document-item-dto.ts +1 -1
  312. package/models/create-bid-request-dto.ts +1 -1
  313. package/models/create-bid-v1-request-dto.ts +1 -1
  314. package/models/embed-launch-request-dto.ts +34 -0
  315. package/models/embed-launch-response-dto.ts +27 -0
  316. package/models/file-uploaded-response-dto.ts +1 -1
  317. package/models/health-response-dto.ts +1 -1
  318. package/models/hierarchical-region-dto.ts +1 -1
  319. package/models/index.ts +2 -0
  320. package/models/mark-bid-failed-request-dto.ts +1 -1
  321. package/models/mark-bid-failed-v1-request-dto.ts +1 -1
  322. package/models/negotiation-score-v1-dto.ts +1 -1
  323. package/models/negotiation-scored-response-dto.ts +1 -1
  324. package/models/oauth-error-response-dto.ts +1 -1
  325. package/models/preconditions-dto.ts +1 -1
  326. package/models/problem-details-dto.ts +1 -1
  327. package/models/register-award-request-dto.ts +1 -1
  328. package/models/register-award-v1-request-dto.ts +1 -1
  329. package/models/request-split-invoice-request-dto.ts +1 -1
  330. package/models/split-invoice-response-dto.ts +1 -1
  331. package/models/statement-document-dto.ts +1 -1
  332. package/models/statement-product-dto.ts +1 -1
  333. package/models/statement-v1-document-dto.ts +1 -1
  334. package/models/statement-v1-product-dto.ts +1 -1
  335. package/models/submit-negotiation-scores-v1-request-dto.ts +1 -1
  336. package/models/token-request-dto.ts +5 -5
  337. package/models/token-response-dto.ts +1 -1
  338. package/models/upload-file-request-dto.ts +1 -1
  339. package/package.json +3 -2
  340. package/partner-client.ts +103 -0
  341. package/token-manager.ts +59 -0
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
7
7
  *
8
- * The version of the OpenAPI document: 9.2.0
8
+ * The version of the OpenAPI document: 9.4.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
4
4
  *
5
- * The version of the OpenAPI document: 9.2.0
5
+ * The version of the OpenAPI document: 9.4.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -15,13 +15,13 @@ export interface TokenRequestDto {
15
15
  */
16
16
  'grant_type': TokenRequestDtoGrantTypeEnum;
17
17
  /**
18
- * 파트너 client_id (대소문자 무시).
18
+ * 파트너 client_id (client_secret_post 방식). Basic 인증 시 생략.
19
19
  */
20
- 'client_id': string;
20
+ 'client_id'?: string;
21
21
  /**
22
- * 파트너 client_secret.
22
+ * 파트너 client_secret (client_secret_post 방식). Basic 인증 시 생략.
23
23
  */
24
- 'client_secret': string;
24
+ 'client_secret'?: string;
25
25
  /**
26
26
  * space-separated 요청 스코프. 미지정 시 client 의 전체 스코프 발급.
27
27
  */
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
7
7
  *
8
- * The version of the OpenAPI document: 9.2.0
8
+ * The version of the OpenAPI document: 9.4.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
4
4
  *
5
- * The version of the OpenAPI document: 9.2.0
5
+ * The version of the OpenAPI document: 9.4.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
7
7
  *
8
- * The version of the OpenAPI document: 9.2.0
8
+ * The version of the OpenAPI document: 9.4.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
4
4
  *
5
- * The version of the OpenAPI document: 9.2.0
5
+ * The version of the OpenAPI document: 9.4.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
7
7
  *
8
- * The version of the OpenAPI document: 9.2.0
8
+ * The version of the OpenAPI document: 9.4.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -0,0 +1,31 @@
1
+ import type { InternalAxiosRequestConfig } from 'axios';
2
+ import { OauthApi, PartnerV2Api } from './index';
3
+ export interface PartnerClientConfig {
4
+ baseUrl: string;
5
+ clientId: string;
6
+ clientSecret: string;
7
+ scope?: string;
8
+ dpop?: boolean;
9
+ }
10
+ /** async 토큰 획득 + (dpop 시) proof 를 매 요청에 주입하는 request interceptor. */
11
+ export declare function buildAuthRequestInterceptor(opts: {
12
+ getValidToken: () => Promise<string>;
13
+ dpop: boolean;
14
+ proof?: (htm: string, htu: string, accessToken?: string) => Promise<string>;
15
+ }): (config: InternalAxiosRequestConfig) => Promise<InternalAxiosRequestConfig>;
16
+ /** 401 시 forceRefresh + 1회 재시도(무한루프 가드). */
17
+ export declare function build401RetryResponseInterceptor(opts: {
18
+ forceRefresh: () => void;
19
+ retry: (config: InternalAxiosRequestConfig) => Promise<unknown>;
20
+ }): (error: {
21
+ response?: {
22
+ status?: number;
23
+ };
24
+ config?: InternalAxiosRequestConfig & {
25
+ _retried?: boolean;
26
+ };
27
+ }) => Promise<unknown>;
28
+ export declare function createPartnerClient(config: PartnerClientConfig): {
29
+ v2: PartnerV2Api;
30
+ oauth: OauthApi;
31
+ };
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buildAuthRequestInterceptor = buildAuthRequestInterceptor;
13
+ exports.build401RetryResponseInterceptor = build401RetryResponseInterceptor;
14
+ exports.createPartnerClient = createPartnerClient;
15
+ const dpop_1 = require("./dpop");
16
+ const token_manager_1 = require("./token-manager");
17
+ // 생성 SDK barrel(@cmarket/partner-sdk export). 이 파일은 생성물과 같은 트리(sdks/typescript/)로
18
+ // 복사돼 SDK 자신의 tsc 빌드에서 컴파일되므로, 패키지명이 아닌 상대경로 barrel(./index)로 import 한다
19
+ // (dpop·token-manager 와 동일). 패키지명 self-import 는 SDK 내부 빌드에서 미해소(TS2307).
20
+ const index_1 = require("./index");
21
+ /** async 토큰 획득 + (dpop 시) proof 를 매 요청에 주입하는 request interceptor. */
22
+ function buildAuthRequestInterceptor(opts) {
23
+ return (config) => __awaiter(this, void 0, void 0, function* () {
24
+ var _a, _b;
25
+ const token = yield opts.getValidToken();
26
+ if (opts.dpop && opts.proof) {
27
+ const htu = new URL((_a = config.url) !== null && _a !== void 0 ? _a : '', config.baseURL).toString().split('?')[0];
28
+ config.headers.set('Authorization', `DPoP ${token}`);
29
+ config.headers.set('DPoP', yield opts.proof(((_b = config.method) !== null && _b !== void 0 ? _b : 'GET').toUpperCase(), htu, token));
30
+ }
31
+ else {
32
+ config.headers.set('Authorization', `Bearer ${token}`);
33
+ }
34
+ return config;
35
+ });
36
+ }
37
+ /** 401 시 forceRefresh + 1회 재시도(무한루프 가드). */
38
+ function build401RetryResponseInterceptor(opts) {
39
+ return (error) => __awaiter(this, void 0, void 0, function* () {
40
+ var _a;
41
+ const cfg = error.config;
42
+ if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && cfg && !cfg._retried) {
43
+ cfg._retried = true;
44
+ opts.forceRefresh();
45
+ return opts.retry(cfg);
46
+ }
47
+ throw error;
48
+ });
49
+ }
50
+ function createPartnerClient(config) {
51
+ var _a;
52
+ const signerPromise = config.dpop ? (0, dpop_1.createDpopSigner)() : null;
53
+ const tokenProof = signerPromise
54
+ ? () => __awaiter(this, void 0, void 0, function* () { return (yield signerPromise).proof('POST', `${config.baseUrl}/oauth/token`); })
55
+ : undefined;
56
+ const tm = (0, token_manager_1.createTokenManager)({
57
+ baseUrl: config.baseUrl,
58
+ clientId: config.clientId,
59
+ clientSecret: config.clientSecret,
60
+ scope: config.scope,
61
+ dpopProof: tokenProof,
62
+ });
63
+ const sdkConfig = new index_1.Configuration({ basePath: config.baseUrl });
64
+ const v2 = new index_1.PartnerV2Api(sdkConfig);
65
+ const oauth = new index_1.OauthApi(sdkConfig);
66
+ // axios 인스턴스에 interceptor 부착 (typescript-axios 는 각 Api 가 공유 axios 사용 — 전역 axios 에 부착)
67
+ const perRequestProof = signerPromise
68
+ ? (htm, htu, ath) => __awaiter(this, void 0, void 0, function* () { return (yield signerPromise).proof(htm, htu, ath); })
69
+ : undefined;
70
+ const axiosInstance = (_a = v2.axios) !== null && _a !== void 0 ? _a : require('axios').default;
71
+ axiosInstance.interceptors.request.use(buildAuthRequestInterceptor({
72
+ getValidToken: () => tm.getValidToken(),
73
+ dpop: !!config.dpop,
74
+ proof: perRequestProof,
75
+ }));
76
+ axiosInstance.interceptors.response.use(undefined, build401RetryResponseInterceptor({
77
+ forceRefresh: () => tm.forceRefresh(),
78
+ retry: (cfg) => axiosInstance.request(cfg),
79
+ }));
80
+ return { v2, oauth };
81
+ }
@@ -0,0 +1,13 @@
1
+ export interface TokenManagerOptions {
2
+ baseUrl: string;
3
+ clientId: string;
4
+ clientSecret: string;
5
+ scope?: string;
6
+ /** DPoP 사용 시 토큰 엔드포인트용 proof(htu=/oauth/token, ath 없음)를 생성. */
7
+ dpopProof?: () => Promise<string>;
8
+ }
9
+ export interface TokenManager {
10
+ getValidToken(): Promise<string>;
11
+ forceRefresh(): void;
12
+ }
13
+ export declare function createTokenManager(opts: TokenManagerOptions): TokenManager;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createTokenManager = createTokenManager;
13
+ const axios_1 = require("axios");
14
+ /** 토큰 만료 skew (ms). 만료 60초 전 미리 갱신. */
15
+ const SKEW_MS = 60000;
16
+ function createTokenManager(opts) {
17
+ let token = null;
18
+ let expiresAt = 0;
19
+ let inflight = null;
20
+ function fetchToken() {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const body = {
23
+ grant_type: 'client_credentials',
24
+ client_id: opts.clientId,
25
+ client_secret: opts.clientSecret,
26
+ };
27
+ if (opts.scope)
28
+ body.scope = opts.scope;
29
+ const headers = {
30
+ 'Content-Type': 'application/json',
31
+ };
32
+ if (opts.dpopProof)
33
+ headers.DPoP = yield opts.dpopProof();
34
+ const { data } = yield axios_1.default.post(`${opts.baseUrl}/oauth/token`, body, {
35
+ headers,
36
+ });
37
+ token = data.access_token;
38
+ expiresAt = Date.now() + data.expires_in * 1000;
39
+ return token;
40
+ });
41
+ }
42
+ return {
43
+ getValidToken() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ if (token && Date.now() < expiresAt - SKEW_MS)
46
+ return token;
47
+ if (!inflight) {
48
+ inflight = fetchToken().finally(() => {
49
+ inflight = null;
50
+ });
51
+ }
52
+ return inflight;
53
+ });
54
+ },
55
+ forceRefresh() {
56
+ token = null;
57
+ expiresAt = 0;
58
+ },
59
+ };
60
+ }
@@ -0,0 +1,22 @@
1
+ # EmbedLaunchRequestDto
2
+
3
+
4
+ ## Properties
5
+
6
+ Name | Type | Description | Notes
7
+ ------------ | ------------- | ------------- | -------------
8
+ **memberId** | **string** | 임베드 세션을 열 cmarket 발주기관 담당자 member id. 그 파트너(발주처) 소속이 아니면 403. | [default to undefined]
9
+ **screen** | **string** | 임베드로 열 화면 key — @cmarket/domain EMBED_SCREENS 화이트리스트(현재 bid-register 단일). 미허용 화면은 400. | [default to undefined]
10
+
11
+ ## Example
12
+
13
+ ```typescript
14
+ import { EmbedLaunchRequestDto } from '@cmarket/partner-sdk';
15
+
16
+ const instance: EmbedLaunchRequestDto = {
17
+ memberId,
18
+ screen,
19
+ };
20
+ ```
21
+
22
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -0,0 +1,22 @@
1
+ # EmbedLaunchResponseDto
2
+
3
+
4
+ ## Properties
5
+
6
+ Name | Type | Description | Notes
7
+ ------------ | ------------- | ------------- | -------------
8
+ **launchCode** | **string** | 일회성 opaque launch code. URL/쿼리에 싣지 말 것 — @cmarket/embed SDK 가 postMessage 로만 iframe 에 전달한다(스펙 §4.2). | [default to undefined]
9
+ **expiresIn** | **number** | launch code TTL(초). 만료 후 교환 시 401. | [default to undefined]
10
+
11
+ ## Example
12
+
13
+ ```typescript
14
+ import { EmbedLaunchResponseDto } from '@cmarket/partner-sdk';
15
+
16
+ const instance: EmbedLaunchResponseDto = {
17
+ launchCode,
18
+ expiresIn,
19
+ };
20
+ ```
21
+
22
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -5,6 +5,7 @@ All URIs are relative to *https://partner-api.c-market.net*
5
5
  |Method | HTTP request | Description|
6
6
  |------------- | ------------- | -------------|
7
7
  |[**completeAcceptance**](#completeacceptance) | **POST** /v2/bids/{bidId}/acceptance | 검수완료 전송|
8
+ |[**createEmbedLaunch**](#createembedlaunch) | **POST** /v2/embed/launch | 임베드 launch code 발급 (iframe SSO)|
8
9
  |[**getBidResults**](#getbidresults) | **GET** /v2/bids/{bidId}/results | 입찰 결과 조회|
9
10
  |[**getBidSettlement**](#getbidsettlement) | **GET** /v2/bids/{bidId}/settlement | 입찰결과 정산정보 조회|
10
11
  |[**getBidStatement**](#getbidstatement) | **GET** /v2/bids/{bidId}/statement | 거래명세서 조회|
@@ -80,6 +81,65 @@ const { status, data } = await apiInstance.completeAcceptance(
80
81
 
81
82
  [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
82
83
 
84
+ # **createEmbedLaunch**
85
+ > EmbedLaunchResponseDto createEmbedLaunch(embedLaunchRequestDto)
86
+
87
+ 스코프 `embed:launch` 필수. 발주기관 담당자(memberId)용 일회성 launch code(60초 TTL)를 발급한다. code 는 URL 에 싣지 말고 @cmarket/embed SDK 의 postMessage 핸드셰이크로만 iframe 에 전달할 것. memberId 가 이 API 키의 발주처 소속이 아니면 403, 미허용 screen 은 400.
88
+
89
+ ### Example
90
+
91
+ ```typescript
92
+ import {
93
+ PartnerV2Api,
94
+ Configuration,
95
+ EmbedLaunchRequestDto
96
+ } from '@cmarket/partner-sdk';
97
+
98
+ const configuration = new Configuration();
99
+ const apiInstance = new PartnerV2Api(configuration);
100
+
101
+ let embedLaunchRequestDto: EmbedLaunchRequestDto; //
102
+
103
+ const { status, data } = await apiInstance.createEmbedLaunch(
104
+ embedLaunchRequestDto
105
+ );
106
+ ```
107
+
108
+ ### Parameters
109
+
110
+ |Name | Type | Description | Notes|
111
+ |------------- | ------------- | ------------- | -------------|
112
+ | **embedLaunchRequestDto** | **EmbedLaunchRequestDto**| | |
113
+
114
+
115
+ ### Return type
116
+
117
+ **EmbedLaunchResponseDto**
118
+
119
+ ### Authorization
120
+
121
+ [partner-oauth2](../README.md#partner-oauth2)
122
+
123
+ ### HTTP request headers
124
+
125
+ - **Content-Type**: application/json
126
+ - **Accept**: application/json
127
+
128
+
129
+ ### HTTP response details
130
+ | Status code | Description | Response headers |
131
+ |-------------|-------------|------------------|
132
+ |**201** | | - |
133
+ |**400** | 쿼리/본문 입력 검증 실패(&#x60;type: …/validation-failed&#x60;). | - |
134
+ |**401** | Bearer 토큰 없음(&#x60;type: …/missing-bearer-token&#x60;) 또는 만료/위변조/폐기(&#x60;…/invalid-token&#x60;). | - |
135
+ |**403** | 키 미바인딩(&#x60;type: …/unbound-partner-key&#x60;), 클라 IP 차단(&#x60;…/ip-not-allowed&#x60;), 스코프 부족(&#x60;…/insufficient-scope&#x60;), 또는 buyerId 가 키 보유자와 불일치(&#x60;…/buyer-scope-mismatch&#x60;). | - |
136
+ |**429** | rate limit 초과(&#x60;type: …/too-many-requests&#x60;). &#x60;Retry-After&#x60; 헤더 참조. | - |
137
+ |**500** | 서버 내부 오류(&#x60;type: …/internal-server-error&#x60;). | - |
138
+ |**502** | backend 도메인 거부 또는 backend 5xx(&#x60;type: …/upstream-rejected&#x60;). | - |
139
+ |**503** | backend 도달 불가 또는 /v1 platform-auth 실패(&#x60;type: …/service-unavailable&#x60;). &#x60;Retry-After&#x60; 헤더 참조. | - |
140
+
141
+ [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
142
+
83
143
  # **getBidResults**
84
144
  > BidResultsResponseDto getBidResults()
85
145
 
@@ -6,8 +6,8 @@
6
6
  Name | Type | Description | Notes
7
7
  ------------ | ------------- | ------------- | -------------
8
8
  **grant_type** | **string** | OAuth 2.0 grant type. 현재 client_credentials 만 지원. | [default to undefined]
9
- **client_id** | **string** | 파트너 client_id (대소문자 무시). | [default to undefined]
10
- **client_secret** | **string** | 파트너 client_secret. | [default to undefined]
9
+ **client_id** | **string** | 파트너 client_id (client_secret_post 방식). Basic 인증 시 생략. | [optional] [default to undefined]
10
+ **client_secret** | **string** | 파트너 client_secret (client_secret_post 방식). Basic 인증 시 생략. | [optional] [default to undefined]
11
11
  **scope** | **string** | space-separated 요청 스코프. 미지정 시 client 의 전체 스코프 발급. | [optional] [default to undefined]
12
12
 
13
13
  ## Example
package/dpop.ts ADDED
@@ -0,0 +1,50 @@
1
+ import { SignJWT, exportJWK, generateKeyPair, calculateJwkThumbprint, type JWK } from 'jose';
2
+ import type { InternalAxiosRequestConfig } from 'axios';
3
+
4
+ /** ephemeral ES256 키쌍 1개를 클라 수명 동안 재사용. */
5
+ export async function createDpopSigner() {
6
+ const { privateKey, publicKey } = await generateKeyPair('ES256', {
7
+ extractable: true,
8
+ });
9
+ const jwk = (await exportJWK(publicKey)) as JWK;
10
+ const jkt = await calculateJwkThumbprint(jwk);
11
+
12
+ async function proof(htm: string, htu: string, accessToken?: string): Promise<string> {
13
+ const payload: Record<string, unknown> = {
14
+ htm,
15
+ htu,
16
+ jti: crypto.randomUUID(),
17
+ };
18
+ if (accessToken) {
19
+ const buf = new TextEncoder().encode(accessToken);
20
+ const digest = new Uint8Array(await crypto.subtle.digest('SHA-256', buf));
21
+ payload.ath = base64url(digest);
22
+ }
23
+ return new SignJWT(payload)
24
+ .setProtectedHeader({ alg: 'ES256', typ: 'dpop+jwt', jwk })
25
+ .setIssuedAt()
26
+ .sign(privateKey);
27
+ }
28
+ return { jkt, proof };
29
+ }
30
+
31
+ function base64url(bytes: Uint8Array): string {
32
+ return Buffer.from(bytes).toString('base64url');
33
+ }
34
+
35
+ /** axios interceptor: 매 요청에 DPoP proof 주입, DPoP 스킴 사용. */
36
+ export function attachDpop(
37
+ signer: Awaited<ReturnType<typeof createDpopSigner>>,
38
+ getToken: () => string,
39
+ ) {
40
+ return async (config: InternalAxiosRequestConfig): Promise<InternalAxiosRequestConfig> => {
41
+ const token = getToken();
42
+ const htu = new URL(config.url ?? '', config.baseURL).toString().split('?')[0];
43
+ config.headers.set('Authorization', `DPoP ${token}`);
44
+ config.headers.set(
45
+ 'DPoP',
46
+ await signer.proof((config.method ?? 'GET').toUpperCase(), htu, token),
47
+ );
48
+ return config;
49
+ };
50
+ }
package/index.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 버전별 인증 - **_/v2** — OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰 발급 후 `Authorization: Bearer <token>` 헤더. - **_/v1** — V5 충실 platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) 헤더로 전송.
6
6
  *
7
- * The version of the OpenAPI document: 9.2.0
7
+ * The version of the OpenAPI document: 9.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).