@isoftdata/ebay-utility 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/lib/adapters/AdapterResult.d.ts +3 -0
  2. package/lib/adapters/AdapterResult.d.ts.map +1 -1
  3. package/lib/adapters/AdapterResult.js +2 -1
  4. package/lib/adapters/AdapterResult.js.map +1 -1
  5. package/lib/adapters/AdapterToUseCaseConverter.js +20 -20
  6. package/lib/adapters/AdapterToUseCaseConverter.js.map +1 -1
  7. package/lib/adapters/ebay/EbayAdapter.d.ts +7 -4
  8. package/lib/adapters/ebay/EbayAdapter.d.ts.map +1 -1
  9. package/lib/adapters/ebay/EbayAdapter.js +108 -16
  10. package/lib/adapters/ebay/EbayAdapter.js.map +1 -1
  11. package/lib/adapters/ebay/WebEbayAdapter.d.ts +64 -0
  12. package/lib/adapters/ebay/WebEbayAdapter.d.ts.map +1 -0
  13. package/lib/adapters/ebay/WebEbayAdapter.js +473 -0
  14. package/lib/adapters/ebay/WebEbayAdapter.js.map +1 -0
  15. package/lib/adapters/itrack/ItrackAdapter.d.ts +8 -18
  16. package/lib/adapters/itrack/ItrackAdapter.d.ts.map +1 -1
  17. package/lib/adapters/itrack/ItrackAdapter.js +104 -41
  18. package/lib/adapters/itrack/ItrackAdapter.js.map +1 -1
  19. package/lib/adapters/test-error-preservation.d.ts +9 -0
  20. package/lib/adapters/test-error-preservation.d.ts.map +1 -0
  21. package/lib/adapters/test-error-preservation.js +203 -0
  22. package/lib/adapters/test-error-preservation.js.map +1 -0
  23. package/lib/entities/ebay/FulfillmentPolicy.d.ts +0 -5
  24. package/lib/entities/ebay/FulfillmentPolicy.d.ts.map +1 -1
  25. package/lib/entities/ebay/PackageWeightAndSize.d.ts +4 -4
  26. package/lib/entities/ebay/PaymentPolicy.d.ts +0 -5
  27. package/lib/entities/ebay/PaymentPolicy.d.ts.map +1 -1
  28. package/lib/entities/ebay/ReturnPolicy.d.ts +0 -5
  29. package/lib/entities/ebay/ReturnPolicy.d.ts.map +1 -1
  30. package/lib/entities/itrack/ItrackEbayPolicy.d.ts +14 -0
  31. package/lib/entities/itrack/ItrackEbayPolicy.d.ts.map +1 -0
  32. package/lib/entities/itrack/ItrackEbayPolicy.js +2 -0
  33. package/lib/entities/itrack/ItrackEbayPolicy.js.map +1 -0
  34. package/lib/index.d.ts +7 -0
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.js +8 -0
  37. package/lib/index.js.map +1 -1
  38. package/lib/infrastructure/EbayOAuthManager.d.ts +99 -0
  39. package/lib/infrastructure/EbayOAuthManager.d.ts.map +1 -0
  40. package/lib/infrastructure/EbayOAuthManager.js +337 -0
  41. package/lib/infrastructure/EbayOAuthManager.js.map +1 -0
  42. package/lib/infrastructure/HttpToRepoConverter.d.ts +1 -0
  43. package/lib/infrastructure/HttpToRepoConverter.d.ts.map +1 -1
  44. package/lib/infrastructure/HttpToRepoConverter.js +4 -1
  45. package/lib/infrastructure/HttpToRepoConverter.js.map +1 -1
  46. package/lib/infrastructure/TokenManager.d.ts +0 -2
  47. package/lib/infrastructure/TokenManager.d.ts.map +1 -1
  48. package/lib/infrastructure/TokenManager.js +19 -42
  49. package/lib/infrastructure/TokenManager.js.map +1 -1
  50. package/lib/infrastructure/http.d.ts +1 -0
  51. package/lib/infrastructure/http.d.ts.map +1 -1
  52. package/lib/infrastructure/http.js +10 -2
  53. package/lib/infrastructure/http.js.map +1 -1
  54. package/lib/infrastructure/httpMultipart.d.ts.map +1 -1
  55. package/lib/infrastructure/httpMultipart.js +2 -1
  56. package/lib/infrastructure/httpMultipart.js.map +1 -1
  57. package/lib/ports/EbayInterface.d.ts +12 -11
  58. package/lib/ports/EbayInterface.d.ts.map +1 -1
  59. package/lib/repositories/EbayProductionRefreshTokenRepo.d.ts +5 -0
  60. package/lib/repositories/EbayProductionRefreshTokenRepo.d.ts.map +1 -0
  61. package/lib/repositories/EbayProductionRefreshTokenRepo.js +8 -0
  62. package/lib/repositories/EbayProductionRefreshTokenRepo.js.map +1 -0
  63. package/lib/repositories/ebay/BaseRepo.d.ts +2 -2
  64. package/lib/repositories/ebay/BaseRepo.d.ts.map +1 -1
  65. package/lib/repositories/ebay/FulfillmentPolicyRepo.d.ts +7 -2
  66. package/lib/repositories/ebay/FulfillmentPolicyRepo.d.ts.map +1 -1
  67. package/lib/repositories/ebay/FulfillmentPolicyRepo.js.map +1 -1
  68. package/lib/repositories/ebay/PaymentPolicyRepo.d.ts +7 -2
  69. package/lib/repositories/ebay/PaymentPolicyRepo.d.ts.map +1 -1
  70. package/lib/repositories/ebay/PaymentPolicyRepo.js.map +1 -1
  71. package/lib/repositories/ebay/ReturnPolicyRepo.d.ts +7 -2
  72. package/lib/repositories/ebay/ReturnPolicyRepo.d.ts.map +1 -1
  73. package/lib/repositories/ebay/ReturnPolicyRepo.js.map +1 -1
  74. package/lib/repositories/itrack/ItrackEbayPolicyRepo.d.ts +10 -0
  75. package/lib/repositories/itrack/ItrackEbayPolicyRepo.d.ts.map +1 -0
  76. package/lib/repositories/itrack/ItrackEbayPolicyRepo.js +30 -0
  77. package/lib/repositories/itrack/ItrackEbayPolicyRepo.js.map +1 -0
  78. package/lib/repositories/test-error-preservation.d.ts +45 -0
  79. package/lib/repositories/test-error-preservation.d.ts.map +1 -0
  80. package/lib/repositories/test-error-preservation.js +125 -0
  81. package/lib/repositories/test-error-preservation.js.map +1 -0
  82. package/lib/types/ErrorPreservation.d.ts +154 -0
  83. package/lib/types/ErrorPreservation.d.ts.map +1 -0
  84. package/lib/types/ErrorPreservation.js +357 -0
  85. package/lib/types/ErrorPreservation.js.map +1 -0
  86. package/lib/types/MysqlResponse.d.ts +123 -0
  87. package/lib/types/MysqlResponse.d.ts.map +1 -0
  88. package/lib/types/MysqlResponse.js +236 -0
  89. package/lib/types/MysqlResponse.js.map +1 -0
  90. package/lib/types/UseCaseResult.d.ts +12 -12
  91. package/lib/types/UseCaseResult.d.ts.map +1 -1
  92. package/lib/types/UseCaseResult.js +13 -13
  93. package/lib/types/UseCaseResult.js.map +1 -1
  94. package/lib/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.d.ts +3 -2
  95. package/lib/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.d.ts.map +1 -1
  96. package/lib/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.js +2 -2
  97. package/lib/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.js.map +1 -1
  98. package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.d.ts +1 -1
  99. package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.d.ts.map +1 -1
  100. package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.js +8 -2
  101. package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.js.map +1 -1
  102. package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.d.ts +2 -1
  103. package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.d.ts.map +1 -1
  104. package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.js +1 -1
  105. package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.js.map +1 -1
  106. package/lib/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.d.ts +3 -2
  107. package/lib/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.d.ts.map +1 -1
  108. package/lib/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.js +2 -2
  109. package/lib/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.js.map +1 -1
  110. package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicies.d.ts +11 -0
  111. package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicies.d.ts.map +1 -0
  112. package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicies.js +60 -0
  113. package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicies.js.map +1 -0
  114. package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicy.d.ts +2 -1
  115. package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicy.d.ts.map +1 -1
  116. package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicy.js +46 -21
  117. package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicy.js.map +1 -1
  118. package/lib/usecases/FulfillmentPolicy/UpdateFulfillmentPolicyFromItrack.d.ts +3 -2
  119. package/lib/usecases/FulfillmentPolicy/UpdateFulfillmentPolicyFromItrack.d.ts.map +1 -1
  120. package/lib/usecases/FulfillmentPolicy/UpdateFulfillmentPolicyFromItrack.js +2 -2
  121. package/lib/usecases/FulfillmentPolicy/UpdateFulfillmentPolicyFromItrack.js.map +1 -1
  122. package/lib/usecases/FulfillmentPolicy/integration.test.d.ts +1 -1
  123. package/lib/usecases/FulfillmentPolicy/integration.test.d.ts.map +1 -1
  124. package/lib/usecases/FulfillmentPolicy/integration.test.js +13 -34
  125. package/lib/usecases/FulfillmentPolicy/integration.test.js.map +1 -1
  126. package/lib/usecases/Images/GetImageFromProduct.js +3 -3
  127. package/lib/usecases/Images/GetImageFromProduct.js.map +1 -1
  128. package/lib/usecases/Images/PushImageToEbay.js +4 -4
  129. package/lib/usecases/Images/PushImageToEbay.js.map +1 -1
  130. package/lib/usecases/Images/SyncImageToEbay.js +5 -5
  131. package/lib/usecases/Images/SyncImageToEbay.js.map +1 -1
  132. package/lib/usecases/Images/SyncMultipleImagesToEbay.js +3 -3
  133. package/lib/usecases/Images/SyncMultipleImagesToEbay.js.map +1 -1
  134. package/lib/usecases/Inventory/PushInventorySkuToEbay.js +4 -4
  135. package/lib/usecases/Inventory/PushInventorySkuToEbay.js.map +1 -1
  136. package/lib/usecases/Inventory/SyncInventoryToEbay.js +2 -2
  137. package/lib/usecases/Inventory/SyncInventoryToEbay.js.map +1 -1
  138. package/lib/usecases/Location/GetInventoryLocationsFromEbay.d.ts +1 -1
  139. package/lib/usecases/Location/WebGetInventoryLocations.d.ts +98 -0
  140. package/lib/usecases/Location/WebGetInventoryLocations.d.ts.map +1 -0
  141. package/lib/usecases/Location/WebGetInventoryLocations.js +116 -0
  142. package/lib/usecases/Location/WebGetInventoryLocations.js.map +1 -0
  143. package/lib/usecases/Offer/GetEbayDefaultsFromProduct.d.ts.map +1 -1
  144. package/lib/usecases/Offer/GetEbayDefaultsFromProduct.js +3 -3
  145. package/lib/usecases/Offer/GetEbayDefaultsFromProduct.js.map +1 -1
  146. package/lib/usecases/Offer/PublishEbayOffer.js +4 -4
  147. package/lib/usecases/Offer/PublishEbayOffer.js.map +1 -1
  148. package/lib/usecases/Offer/PushEbayOffer.js +6 -6
  149. package/lib/usecases/Offer/PushEbayOffer.js.map +1 -1
  150. package/lib/usecases/Offer/SyncEbayInventoryAndOffer.js +5 -5
  151. package/lib/usecases/Offer/SyncEbayInventoryAndOffer.js.map +1 -1
  152. package/lib/usecases/Offer/convertItrackListingToEbayInventoryAndOffer.js +3 -3
  153. package/lib/usecases/Offer/convertItrackListingToEbayInventoryAndOffer.js.map +1 -1
  154. package/lib/usecases/PaymentPolicy/AddPaymentPolicyToItrack.d.ts +3 -2
  155. package/lib/usecases/PaymentPolicy/AddPaymentPolicyToItrack.d.ts.map +1 -1
  156. package/lib/usecases/PaymentPolicy/AddPaymentPolicyToItrack.js +2 -2
  157. package/lib/usecases/PaymentPolicy/AddPaymentPolicyToItrack.js.map +1 -1
  158. package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromEbay.d.ts +1 -1
  159. package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromEbay.d.ts.map +1 -1
  160. package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromItrack.d.ts +2 -1
  161. package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromItrack.d.ts.map +1 -1
  162. package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromItrack.js +1 -1
  163. package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromItrack.js.map +1 -1
  164. package/lib/usecases/PaymentPolicy/RemovePaymentPolicyFromItrack.d.ts +3 -2
  165. package/lib/usecases/PaymentPolicy/RemovePaymentPolicyFromItrack.d.ts.map +1 -1
  166. package/lib/usecases/PaymentPolicy/RemovePaymentPolicyFromItrack.js +2 -2
  167. package/lib/usecases/PaymentPolicy/RemovePaymentPolicyFromItrack.js.map +1 -1
  168. package/lib/usecases/PaymentPolicy/SyncPaymentPoliciesFromEbay.d.ts +2 -1
  169. package/lib/usecases/PaymentPolicy/SyncPaymentPoliciesFromEbay.d.ts.map +1 -1
  170. package/lib/usecases/PaymentPolicy/SyncPaymentPoliciesFromEbay.js +39 -22
  171. package/lib/usecases/PaymentPolicy/SyncPaymentPoliciesFromEbay.js.map +1 -1
  172. package/lib/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.d.ts +3 -2
  173. package/lib/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.d.ts.map +1 -1
  174. package/lib/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.js +2 -2
  175. package/lib/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.js.map +1 -1
  176. package/lib/usecases/PaymentPolicy/integration.test.d.ts +2 -0
  177. package/lib/usecases/PaymentPolicy/integration.test.d.ts.map +1 -0
  178. package/lib/usecases/PaymentPolicy/integration.test.js +31 -0
  179. package/lib/usecases/PaymentPolicy/integration.test.js.map +1 -0
  180. package/lib/usecases/Policy/WebGetEbayPolicies.d.ts +236 -0
  181. package/lib/usecases/Policy/WebGetEbayPolicies.d.ts.map +1 -0
  182. package/lib/usecases/Policy/WebGetEbayPolicies.js +374 -0
  183. package/lib/usecases/Policy/WebGetEbayPolicies.js.map +1 -0
  184. package/lib/usecases/ReturnPolicy/AddReturnPolicyToItrack.d.ts +3 -2
  185. package/lib/usecases/ReturnPolicy/AddReturnPolicyToItrack.d.ts.map +1 -1
  186. package/lib/usecases/ReturnPolicy/AddReturnPolicyToItrack.js +2 -2
  187. package/lib/usecases/ReturnPolicy/AddReturnPolicyToItrack.js.map +1 -1
  188. package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromEbay.d.ts +1 -1
  189. package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromEbay.d.ts.map +1 -1
  190. package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromEbay.js +13 -3
  191. package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromEbay.js.map +1 -1
  192. package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromItrack.d.ts +2 -1
  193. package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromItrack.d.ts.map +1 -1
  194. package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromItrack.js +1 -1
  195. package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromItrack.js.map +1 -1
  196. package/lib/usecases/ReturnPolicy/RemoveReturnPolicyFromItrack.d.ts +3 -2
  197. package/lib/usecases/ReturnPolicy/RemoveReturnPolicyFromItrack.d.ts.map +1 -1
  198. package/lib/usecases/ReturnPolicy/RemoveReturnPolicyFromItrack.js +2 -2
  199. package/lib/usecases/ReturnPolicy/RemoveReturnPolicyFromItrack.js.map +1 -1
  200. package/lib/usecases/ReturnPolicy/SyncReturnPoliciesFromEbay.d.ts +2 -1
  201. package/lib/usecases/ReturnPolicy/SyncReturnPoliciesFromEbay.d.ts.map +1 -1
  202. package/lib/usecases/ReturnPolicy/SyncReturnPoliciesFromEbay.js +44 -24
  203. package/lib/usecases/ReturnPolicy/SyncReturnPoliciesFromEbay.js.map +1 -1
  204. package/lib/usecases/ReturnPolicy/UpdateReturnPolicyInItrack.d.ts +3 -2
  205. package/lib/usecases/ReturnPolicy/UpdateReturnPolicyInItrack.d.ts.map +1 -1
  206. package/lib/usecases/ReturnPolicy/UpdateReturnPolicyInItrack.js +2 -2
  207. package/lib/usecases/ReturnPolicy/UpdateReturnPolicyInItrack.js.map +1 -1
  208. package/lib/usecases/ReturnPolicy/integration.test.d.ts +1 -1
  209. package/lib/usecases/ReturnPolicy/integration.test.d.ts.map +1 -1
  210. package/lib/usecases/ReturnPolicy/integration.test.js +13 -38
  211. package/lib/usecases/ReturnPolicy/integration.test.js.map +1 -1
  212. package/package.json +59 -56
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAElE,gBAAgB;AAChB,OAAO,EAAiB,QAAQ,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACnG,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sCAAsC,CAAA;AACpD,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AACpD,cAAc,0CAA0C,CAAA;AACxD,cAAc,2BAA2B,CAAA;AACzC,cAAc,oCAAoC,CAAA;AAClD,cAAc,oCAAoC,CAAA;AAClD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,wCAAwC,CAAA;AACtD,cAAc,6CAA6C,CAAA;AAE3D,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AAEzE,mBAAmB;AACnB,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,+BAA+B,CAAA;AAG7C,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAA;AAGzF,YAAY;AACZ,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AAEtC,aAAa;AACb,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAE9C,mCAAmC;AACnC,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,gBAAgB;AAChB,OAAO,EAAiB,QAAQ,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACnG,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sCAAsC,CAAA;AACpD,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AACpD,cAAc,0CAA0C,CAAA;AACxD,cAAc,2BAA2B,CAAA;AACzC,cAAc,oCAAoC,CAAA;AAClD,cAAc,oCAAoC,CAAA;AAClD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,wCAAwC,CAAA;AACtD,cAAc,6CAA6C,CAAA;AAC3D,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,mBAAmB;AACnB,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,+BAA+B,CAAA;AAG7C,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAA;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAA;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAA;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAA;AAC7F,OAAO,EAAE,wBAAwB,EAAsC,MAAM,iDAAiD,CAAA;AAC9H,yBAAyB;AACzB,OAAO,EACN,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EAKpB,MAAM,yCAAyC,CAAA;AAEhD,YAAY;AACZ,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AAEtC,aAAa;AACb,cAAc,gCAAgC,CAAA;AAC9C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAE9C,mCAAmC;AACnC,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,99 @@
1
+ import { HttpRequest } from "../entities/http/HttpRequest.js";
2
+ interface EbayOAuthConfig {
3
+ /** eBay App ID (Client ID) */
4
+ ebayClientId: string;
5
+ /** eBay Cert ID (Client Secret) */
6
+ ebayClientSecret: string;
7
+ /** The configured eBay runame for authorization */
8
+ ebayRuName: string;
9
+ /** Optional proxy domain for callbacks (e.g., 'https://ebay.yourdomain.com') */
10
+ proxyCallbackUri?: string;
11
+ /** Function to store refresh token persistently (only the refresh token string) */
12
+ storeToken: (refreshToken: string) => Promise<void>;
13
+ /** Function to load refresh token from storage (returns only the refresh token string) */
14
+ loadToken: () => Promise<string | null>;
15
+ /** 'production' or 'sandbox' */
16
+ environment?: 'production' | 'sandbox';
17
+ /** Enable logging */
18
+ logging?: boolean;
19
+ /** Where to redirect after successful connection */
20
+ connectedRedirect?: string;
21
+ }
22
+ export interface EbayToken {
23
+ access_token: string;
24
+ refresh_token: string;
25
+ expires_in: number;
26
+ token_type: string;
27
+ /** When the token was created/refreshed (timestamp in ms) */
28
+ created_at?: number;
29
+ }
30
+ export declare class EbayOAuthManager {
31
+ private ebayClientId;
32
+ private ebayClientSecret;
33
+ private ebayRuName;
34
+ private proxyCallbackUri;
35
+ private storeToken;
36
+ private loadToken;
37
+ readonly environment: 'production' | 'sandbox';
38
+ private logging;
39
+ private scopes;
40
+ private connectedRedirect;
41
+ /** In-memory storage for the current token (access token stored only in memory) */
42
+ private currentToken;
43
+ constructor(config: EbayOAuthConfig);
44
+ /**
45
+ * Get the base URL for OAuth based on environment
46
+ */
47
+ private getOAuthBaseUrl;
48
+ /**
49
+ * Get the auth URL (different from API URL)
50
+ */
51
+ private getAuthBaseUrl;
52
+ /**
53
+ * Encode client credentials to Base64 for Basic Auth
54
+ */
55
+ private encodeCredentials;
56
+ /**
57
+ * Connect to eBay - generates authorization URL and redirects user
58
+ * This should be called from your Express route handler
59
+ */
60
+ connectToEbay: (req: any, res: any) => Promise<void>;
61
+ /**
62
+ * Handle OAuth callback from eBay
63
+ * This should be called from your Express callback route handler
64
+ */
65
+ connectCallback: (req: any, res: any) => Promise<void>;
66
+ /**
67
+ * Exchange authorization code for access token
68
+ */
69
+ private exchangeCodeForToken;
70
+ /**
71
+ * Refresh the access token using the refresh token
72
+ */
73
+ refreshAccessToken(): Promise<EbayToken>;
74
+ /**
75
+ * Get the current access token, refreshing if necessary
76
+ */
77
+ getAccessToken(): Promise<string>;
78
+ /**
79
+ * Check if the user is currently authenticated
80
+ */
81
+ isAuthenticated(): boolean;
82
+ /**
83
+ * Get the current token object (if any)
84
+ */
85
+ getToken(): EbayToken | null;
86
+ /**
87
+ * Make an authenticated API call to eBay
88
+ * Automatically handles token refresh if needed
89
+ */
90
+ makeApiCall<T = any>(request: Omit<HttpRequest, 'headers'> & {
91
+ headers?: Record<string, string>;
92
+ }): Promise<T>;
93
+ /**
94
+ * Revoke the current token (logout)
95
+ */
96
+ revokeToken(): Promise<void>;
97
+ }
98
+ export default EbayOAuthManager;
99
+ //# sourceMappingURL=EbayOAuthManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EbayOAuthManager.d.ts","sourceRoot":"","sources":["../../src/infrastructure/EbayOAuthManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAO7D,UAAU,eAAe;IACxB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,CAAA;IACxB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,mFAAmF;IACnF,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,0FAA0F;IAC1F,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACvC,gCAAgC;IAChC,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACtC,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,SAAS;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAaD,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,SAAS,CAA8B;IAC/C,SAAgB,WAAW,EAAE,YAAY,GAAG,SAAS,CAAA;IACrD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,iBAAiB,CAAQ;IACjC,mFAAmF;IACnF,OAAO,CAAC,YAAY,CAAyB;gBAEjC,MAAM,EAAE,eAAe;IAoDnC;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;OAGG;IACI,aAAa,GAAU,KAAK,GAAG,EAAE,KAAK,GAAG,mBAmC/C;IAED;;;OAGG;IACI,eAAe,GAAU,KAAK,GAAG,EAAE,KAAK,GAAG,mBA6CjD;IAED;;OAEG;YACW,oBAAoB;IAoClC;;OAEG;IACU,kBAAkB,IAAI,OAAO,CAAC,SAAS,CAAC;IAqDrD;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IA+B9C;;OAEG;IACI,eAAe,IAAI,OAAO;IAIjC;;OAEG;IACI,QAAQ,IAAI,SAAS,GAAG,IAAI;IAInC;;;OAGG;IACU,WAAW,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IA6C3H;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAczC;AAED,eAAe,gBAAgB,CAAA"}
@@ -0,0 +1,337 @@
1
+ import { EbayScopes } from "../entities/ebay/Scopes.js";
2
+ import { MethodEnum } from "../entities/http/HttpMethod.js";
3
+ import { doFetch } from "./http.js";
4
+ import qs from "qs";
5
+ import Tokens from 'csrf';
6
+ const csrf = new Tokens();
7
+ const isProduction = (env) => env === 'production';
8
+ export class EbayOAuthManager {
9
+ constructor(config) {
10
+ /** In-memory storage for the current token (access token stored only in memory) */
11
+ this.currentToken = null;
12
+ /**
13
+ * Connect to eBay - generates authorization URL and redirects user
14
+ * This should be called from your Express route handler
15
+ */
16
+ this.connectToEbay = async (req, res) => {
17
+ try {
18
+ // Generate CSRF token for security
19
+ const csrfSecret = await csrf.secret();
20
+ const csrfToken = csrf.create(csrfSecret);
21
+ // Encode state parameter with CSRF token and proxy callback URL
22
+ // Note: we have to differentiate between the ebayURI required in the request vs
23
+ // the callback uri used by the quickbooks redirect server
24
+ const state = Buffer.from(JSON.stringify({
25
+ csrf: csrfToken,
26
+ callback: this.proxyCallbackUri,
27
+ })).toString('base64');
28
+ // Build eBay authorization URL
29
+ const authUrl = `${this.getAuthBaseUrl()}/oauth2/authorize?` +
30
+ qs.stringify({
31
+ client_id: this.ebayClientId,
32
+ redirect_uri: this.ebayRuName,
33
+ response_type: 'code',
34
+ state: state,
35
+ scope: this.scopes.join(' '),
36
+ });
37
+ if (this.logging) {
38
+ console.log('EbayOAuthManager: Redirecting to:', authUrl);
39
+ }
40
+ res.redirect(authUrl);
41
+ }
42
+ catch (err) {
43
+ console.error('EbayOAuthManager: Error in connectToEbay:', err);
44
+ res.status(500).send('Error initiating eBay authorization');
45
+ }
46
+ };
47
+ /**
48
+ * Handle OAuth callback from eBay
49
+ * This should be called from your Express callback route handler
50
+ */
51
+ this.connectCallback = async (req, res) => {
52
+ try {
53
+ const { code, state, error } = req.query;
54
+ // Check for OAuth errors
55
+ if (error) {
56
+ throw new Error(`eBay OAuth error: ${error}`);
57
+ }
58
+ if (!code) {
59
+ throw new Error('No authorization code received from eBay');
60
+ }
61
+ // Verify CSRF token (optional but recommended)
62
+ if (state) {
63
+ try {
64
+ const stateData = JSON.parse(Buffer.from(state, 'base64').toString('utf-8'));
65
+ // In production, you should verify the CSRF token here
66
+ if (this.logging) {
67
+ console.log('EbayOAuthManager: State data:', stateData);
68
+ }
69
+ }
70
+ catch (err) {
71
+ console.warn('EbayOAuthManager: Could not parse state data');
72
+ }
73
+ }
74
+ // Exchange authorization code for access token
75
+ const token = await this.exchangeCodeForToken(code);
76
+ // Store only the refresh token in the database (access token stays in memory)
77
+ await this.storeToken(token.refresh_token);
78
+ this.currentToken = token;
79
+ if (this.logging) {
80
+ console.log('EbayOAuthManager: Token obtained and stored successfully');
81
+ }
82
+ // Redirect to success page
83
+ res.redirect(this.connectedRedirect);
84
+ }
85
+ catch (err) {
86
+ console.error('EbayOAuthManager: Error in connectCallback:', err);
87
+ res.status(500).send(`Error completing eBay authorization: ${err.message}`);
88
+ }
89
+ };
90
+ if (!config.ebayClientId || !config.ebayClientSecret) {
91
+ throw new Error('EbayOAuthManager: ebayClientId and ebayClientSecret are required');
92
+ }
93
+ if (typeof config.storeToken !== 'function' || typeof config.loadToken !== 'function') {
94
+ throw new Error('storeToken and loadToken functions must be provided!');
95
+ }
96
+ this.ebayClientId = config.ebayClientId;
97
+ this.ebayClientSecret = config.ebayClientSecret;
98
+ this.ebayRuName = config.ebayRuName;
99
+ this.storeToken = config.storeToken;
100
+ this.loadToken = config.loadToken;
101
+ this.environment = config.environment || 'production';
102
+ this.logging = config.logging || false;
103
+ this.connectedRedirect = config.connectedRedirect || 'connected.html';
104
+ // Default scopes for selling
105
+ this.scopes = [
106
+ EbayScopes.Inventory,
107
+ EbayScopes.Account,
108
+ EbayScopes.Fulfillment,
109
+ EbayScopes.Marketing,
110
+ ];
111
+ // Setup proxy callback URI
112
+ this.proxyCallbackUri = config.proxyCallbackUri;
113
+ // Load existing refresh token on initialization (only refresh token from storage)
114
+ this.loadToken()
115
+ .then(refreshToken => {
116
+ if (refreshToken) {
117
+ // Store only the refresh token in memory initially
118
+ // Access token will be fetched when needed
119
+ this.currentToken = {
120
+ access_token: '', // Will be populated when needed
121
+ refresh_token: refreshToken,
122
+ expires_in: 0,
123
+ token_type: 'Bearer',
124
+ created_at: 0, // Will trigger refresh on first use
125
+ };
126
+ if (this.logging) {
127
+ console.log('EbayOAuthManager: Refresh token loaded successfully');
128
+ }
129
+ }
130
+ })
131
+ .catch(err => {
132
+ console.error('EbayOAuthManager: Error loading refresh token:', err);
133
+ });
134
+ }
135
+ /**
136
+ * Get the base URL for OAuth based on environment
137
+ */
138
+ getOAuthBaseUrl() {
139
+ return this.environment === 'production'
140
+ ? 'https://api.ebay.com'
141
+ : 'https://api.sandbox.ebay.com';
142
+ }
143
+ /**
144
+ * Get the auth URL (different from API URL)
145
+ */
146
+ getAuthBaseUrl() {
147
+ return this.environment === 'production'
148
+ ? 'https://auth.ebay.com'
149
+ : 'https://auth.sandbox.ebay.com';
150
+ }
151
+ /**
152
+ * Encode client credentials to Base64 for Basic Auth
153
+ */
154
+ encodeCredentials() {
155
+ const credentials = `${this.ebayClientId}:${this.ebayClientSecret}`;
156
+ return Buffer.from(credentials).toString('base64');
157
+ }
158
+ /**
159
+ * Exchange authorization code for access token
160
+ */
161
+ async exchangeCodeForToken(code) {
162
+ const request = {
163
+ url: `${this.getOAuthBaseUrl()}/identity/v1/oauth2/token`,
164
+ method: MethodEnum.Post,
165
+ headers: {
166
+ 'Content-Type': 'application/x-www-form-urlencoded',
167
+ 'Authorization': `Basic ${this.encodeCredentials()}`,
168
+ },
169
+ data: qs.stringify({
170
+ grant_type: 'authorization_code',
171
+ code: code,
172
+ redirect_uri: this.ebayRuName,
173
+ }),
174
+ };
175
+ const response = await doFetch(request);
176
+ if (response.success && response.data) {
177
+ const token = {
178
+ access_token: response.data.access_token,
179
+ refresh_token: response.data.refresh_token,
180
+ expires_in: response.data.expires_in,
181
+ token_type: response.data.token_type,
182
+ created_at: Date.now(),
183
+ };
184
+ return token;
185
+ }
186
+ else {
187
+ throw new Error(`Failed to exchange code for token: ${JSON.stringify(response)}`);
188
+ }
189
+ }
190
+ /**
191
+ * Refresh the access token using the refresh token
192
+ */
193
+ async refreshAccessToken() {
194
+ if (!this.currentToken || !this.currentToken.refresh_token) {
195
+ throw new Error('No refresh token available. User needs to re-authenticate.');
196
+ }
197
+ const request = {
198
+ url: `${this.getOAuthBaseUrl()}/identity/v1/oauth2/token`,
199
+ method: MethodEnum.Post,
200
+ headers: {
201
+ 'Content-Type': 'application/x-www-form-urlencoded',
202
+ 'Authorization': `Basic ${this.encodeCredentials()}`,
203
+ },
204
+ data: qs.stringify({
205
+ grant_type: 'refresh_token',
206
+ refresh_token: this.currentToken.refresh_token,
207
+ scope: this.scopes.join(' '),
208
+ }),
209
+ };
210
+ if (this.logging) {
211
+ console.log('EbayOAuthManager: Refreshing access token...');
212
+ }
213
+ const response = await doFetch(request);
214
+ if (response.success && response.data) {
215
+ // Update token with new access token (keep existing refresh token)
216
+ const token = {
217
+ access_token: response.data.access_token,
218
+ refresh_token: this.currentToken.refresh_token,
219
+ expires_in: response.data.expires_in,
220
+ token_type: response.data.token_type,
221
+ created_at: Date.now(),
222
+ };
223
+ // Store only in memory - access token is not persisted to database
224
+ this.currentToken = token;
225
+ // Note: We don't store the refresh token again since it hasn't changed
226
+ if (this.logging) {
227
+ console.log('EbayOAuthManager: Access token refreshed successfully (stored in memory only)');
228
+ }
229
+ return token;
230
+ }
231
+ else {
232
+ throw new Error(`Failed to refresh token: ${JSON.stringify(response)}`);
233
+ }
234
+ }
235
+ /**
236
+ * Get the current access token, refreshing if necessary
237
+ */
238
+ async getAccessToken() {
239
+ if (!this.currentToken) {
240
+ // Try to load refresh token from storage
241
+ const refreshToken = await this.loadToken();
242
+ if (!refreshToken) {
243
+ throw new Error('No token available. User needs to authenticate.');
244
+ }
245
+ // Create a token object with the refresh token
246
+ this.currentToken = {
247
+ access_token: '', // Will be populated by refresh
248
+ refresh_token: refreshToken,
249
+ expires_in: 0,
250
+ token_type: 'Bearer',
251
+ created_at: 0, // Will trigger refresh immediately
252
+ };
253
+ }
254
+ // Check if token is expired (with 5 minute buffer)
255
+ const expiresAt = (this.currentToken.created_at || 0) + (this.currentToken.expires_in * 1000);
256
+ const now = Date.now();
257
+ const bufferTime = 5 * 60 * 1000; // 5 minutes
258
+ if (now >= expiresAt - bufferTime) {
259
+ // Token is expired or about to expire, refresh it
260
+ await this.refreshAccessToken();
261
+ }
262
+ return this.currentToken.access_token;
263
+ }
264
+ /**
265
+ * Check if the user is currently authenticated
266
+ */
267
+ isAuthenticated() {
268
+ return this.currentToken !== null && !!this.currentToken.access_token;
269
+ }
270
+ /**
271
+ * Get the current token object (if any)
272
+ */
273
+ getToken() {
274
+ return this.currentToken;
275
+ }
276
+ /**
277
+ * Make an authenticated API call to eBay
278
+ * Automatically handles token refresh if needed
279
+ */
280
+ async makeApiCall(request) {
281
+ // Get valid access token (will refresh if needed)
282
+ const accessToken = await this.getAccessToken();
283
+ // Add authorization header
284
+ const fullRequest = {
285
+ ...request,
286
+ headers: {
287
+ ...request.headers,
288
+ 'Authorization': `Bearer ${accessToken}`,
289
+ },
290
+ };
291
+ try {
292
+ const response = await doFetch(fullRequest);
293
+ if (response.success && response.data) {
294
+ return response.data;
295
+ }
296
+ else {
297
+ // Check if error is due to authentication
298
+ if (response.status === 401) {
299
+ // Try to refresh token and retry once
300
+ if (this.logging) {
301
+ console.log('EbayOAuthManager: Received 401, attempting token refresh...');
302
+ }
303
+ await this.refreshAccessToken();
304
+ // Retry with new token
305
+ const newAccessToken = await this.getAccessToken();
306
+ fullRequest.headers['Authorization'] = `Bearer ${newAccessToken}`;
307
+ const retryResponse = await doFetch(fullRequest);
308
+ if (retryResponse.success && retryResponse.data) {
309
+ return retryResponse.data;
310
+ }
311
+ }
312
+ throw new Error(`API call failed: ${JSON.stringify(response)}`);
313
+ }
314
+ }
315
+ catch (err) {
316
+ console.error('EbayOAuthManager: API call error:', err);
317
+ throw err;
318
+ }
319
+ }
320
+ /**
321
+ * Revoke the current token (logout)
322
+ */
323
+ async revokeToken() {
324
+ if (!this.currentToken) {
325
+ return;
326
+ }
327
+ // eBay doesn't have a standard token revocation endpoint
328
+ // Just clear the local token and remove from storage
329
+ this.currentToken = null;
330
+ await this.storeToken(''); // Clear the refresh token from storage
331
+ if (this.logging) {
332
+ console.log('EbayOAuthManager: Token revoked');
333
+ }
334
+ }
335
+ }
336
+ export default EbayOAuthManager;
337
+ //# sourceMappingURL=EbayOAuthManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EbayOAuthManager.js","sourceRoot":"","sources":["../../src/infrastructure/EbayOAuthManager.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { RepoResponse } from '../repositories/ebay/BaseRepo.js';
3
3
  import { HttpRequest } from '../entities/http/HttpRequest.js';
4
4
  /**
5
5
  * Converts HttpResponse from doFetch to RepoResponse expected by repositories
6
+ * Extracts eBay's rlogid from response headers for better tracking and troubleshooting
6
7
  */
7
8
  export declare const convertHttpResponseToRepoResponse: <T>(httpResponse: HttpResponse<T>, request: HttpRequest) => RepoResponse<T>;
8
9
  //# sourceMappingURL=HttpToRepoConverter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpToRepoConverter.d.ts","sourceRoot":"","sources":["../../src/infrastructure/HttpToRepoConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAG7D;;GAEG;AACH,eAAO,MAAM,iCAAiC,GAAI,CAAC,EAC/C,cAAc,YAAY,CAAC,CAAC,CAAC,EAC7B,SAAS,WAAW,KACrB,YAAY,CAAC,CAAC,CAsBhB,CAAA"}
1
+ {"version":3,"file":"HttpToRepoConverter.d.ts","sourceRoot":"","sources":["../../src/infrastructure/HttpToRepoConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAG7D;;;GAGG;AACH,eAAO,MAAM,iCAAiC,GAAI,CAAC,EAC/C,cAAc,YAAY,CAAC,CAAC,CAAC,EAC7B,SAAS,WAAW,KACrB,YAAY,CAAC,CAAC,CAwBhB,CAAA"}
@@ -1,9 +1,12 @@
1
1
  import { v4 as uuidv4 } from 'uuid';
2
2
  /**
3
3
  * Converts HttpResponse from doFetch to RepoResponse expected by repositories
4
+ * Extracts eBay's rlogid from response headers for better tracking and troubleshooting
4
5
  */
5
6
  export const convertHttpResponseToRepoResponse = (httpResponse, request) => {
6
- const uuid = uuidv4();
7
+ // Extract eBay's rlogid from response headers, fallback to generated UUID if not present
8
+ const rlogid = httpResponse.headers?.['rlogid'] || httpResponse.headers?.['x-ebay-request-id'];
9
+ const uuid = rlogid || uuidv4();
7
10
  if (httpResponse.success) {
8
11
  return {
9
12
  uuid,
@@ -1 +1 @@
1
- {"version":3,"file":"HttpToRepoConverter.js","sourceRoot":"","sources":["../../src/infrastructure/HttpToRepoConverter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC7C,YAA6B,EAC7B,OAAoB,EACL,EAAE;IACjB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAA;IAErB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO;YACH,IAAI;YACJ,OAAO,EAAE,IAAI;YACb,OAAO;YACP,IAAI,EAAE,YAAY,CAAC,IAAI;SAC1B,CAAA;IACL,CAAC;SAAM,CAAC;QACJ,wDAAwD;QACxD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAW,CAAA;QAC1C,OAAO;YACH,IAAI;YACJ,OAAO,EAAE,KAAK;YACd,OAAO;YACP,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,YAAY,CAAC,IAAI;YAC5C,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,UAAU,EAAE,YAAY,CAAC,UAAU;SACtC,CAAA;IACL,CAAC;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"HttpToRepoConverter.js","sourceRoot":"","sources":["../../src/infrastructure/HttpToRepoConverter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC7C,YAA6B,EAC7B,OAAoB,EACL,EAAE;IACjB,yFAAyF;IACzF,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,mBAAmB,CAAC,CAAA;IAC9F,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;IAE/B,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO;YACH,IAAI;YACJ,OAAO,EAAE,IAAI;YACb,OAAO;YACP,IAAI,EAAE,YAAY,CAAC,IAAI;SAC1B,CAAA;IACL,CAAC;SAAM,CAAC;QACJ,wDAAwD;QACxD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAW,CAAA;QAC1C,OAAO;YACH,IAAI;YACJ,OAAO,EAAE,KAAK;YACd,OAAO;YACP,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,YAAY,CAAC,IAAI;YAC5C,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,UAAU,EAAE,YAAY,CAAC,UAAU;SACtC,CAAA;IACL,CAAC;AACL,CAAC,CAAA"}
@@ -15,8 +15,6 @@ export declare class TokenManager implements State {
15
15
  protected cachedRefreshToken: string;
16
16
  protected cachedUserAccessToken?: string;
17
17
  private localTokenRepo;
18
- private authServerKeyRepo;
19
- private remoteTokenRepo;
20
18
  private attemptCount;
21
19
  readonly validStores: string[];
22
20
  constructor(datastore: MysqlDatastore, production: boolean, scopeList: EbayScopes[], marketplace: MarketplaceEnum);
@@ -1 +1 @@
1
- {"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../src/infrastructure/TokenManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAwC7D,MAAM,WAAW,KAAK;IAClB,UAAU,EAAE,OAAO,CAAA;CACtB;AAGD,qBAAa,YAAa,YAAW,KAAK;aAgBlB,SAAS,EAAE,cAAc;aAC/B,UAAU,EAAE,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS;aACV,WAAW,EAAE,eAAe;IAjB7C,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IAClC,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACpC,SAAS,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAErC,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,iBAAiB,CAAiD;IAC1E,OAAO,CAAC,eAAe,CAGpB;IACH,OAAO,CAAC,YAAY,CAAQ;IAC/B,SAAgB,WAAW,EAAE,MAAM,EAAE,CAAK;gBAGnB,SAAS,EAAE,cAAc,EAC/B,UAAU,EAAE,OAAO,EAClB,SAAS,EAAE,UAAU,EAAE,EACxB,WAAW,EAAE,eAAe;IAMnC,UAAU,sBA8BhB;IACG,OAAO,GAAI,CAAC,GAAG,GAAG,EAAE,SAAS,WAAW,kEAE9C;IAEM,cAAc,GAAU,CAAC,GAAG,GAAG,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAGtF;IACS,WAAW,GAAI,KAAK,MAAM,UAEnC;IAES,eAAe,QAAO,MAAM,CAA2B;IAEvD,kBAAkB,QAAO,OAAO,CAAC,MAAM,CAAC,CAEZ;IAEnC,OAAO,CAAC,kBAAkB,CAwB5B;IACE,OAAO,CAAC,sBAAsB,CA4B7B;IACJ,OAAO,CAAC,gBAAgB,CAKvB;CACD"}
1
+ {"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../src/infrastructure/TokenManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAmC7D,MAAM,WAAW,KAAK;IAClB,UAAU,EAAE,OAAO,CAAA;CACtB;AAED,qBAAa,YAAa,YAAW,KAAK;aAUlB,SAAS,EAAE,cAAc;aAC/B,UAAU,EAAE,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS;aACV,WAAW,EAAE,eAAe;IAX7C,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IAClC,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACpC,SAAS,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IACrC,OAAO,CAAC,cAAc,CAA8D;IACpF,OAAO,CAAC,YAAY,CAAQ;IAC/B,SAAgB,WAAW,EAAE,MAAM,EAAE,CAAK;gBAGnB,SAAS,EAAE,cAAc,EAC/B,UAAU,EAAE,OAAO,EAClB,SAAS,EAAE,UAAU,EAAE,EACxB,WAAW,EAAE,eAAe;IASnC,UAAU,sBAgBhB;IACG,OAAO,GAAI,CAAC,GAAG,GAAG,EAAE,SAAS,WAAW,kEAE9C;IAEM,cAAc,GAAU,CAAC,GAAG,GAAG,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAGtF;IACS,WAAW,GAAI,KAAK,MAAM,UAEnC;IAES,eAAe,QAAO,MAAM,CAA2B;IAEvD,kBAAkB,QAAO,OAAO,CAAC,MAAM,CAAC,CAEZ;IAEnC,OAAO,CAAC,kBAAkB,CAoB5B;IACE,OAAO,CAAC,sBAAsB,CA8B7B;IACJ,OAAO,CAAC,gBAAgB,CAKvB;CACD"}
@@ -1,24 +1,19 @@
1
- import { AuthServerRepo } from "../adapters/AuthServerRepo.js";
2
- import { RemoteEbaySandboxTokenRepo } from "../repositories/RemoteEbaySandboxTokenRepo.js";
3
1
  import { EbaySandboxRefreshTokenRepo } from "../repositories/EbaySandboxRefreshTokenRepo.js";
2
+ import { EbayProductionRefreshTokenRepo } from "../repositories/EbayProductionRefreshTokenRepo.js";
4
3
  import { MethodEnum } from "../entities/http/HttpMethod.js";
5
4
  import { CompanyRepo } from "../repositories/itrack/CompanyRepo.js";
6
5
  import qs from "qs";
6
+ import { config } from 'dotenv';
7
+ config();
7
8
  import { doFetch } from "../infrastructure/http.js";
8
9
  import { convertHttpResponseToRepoResponse } from "./HttpToRepoConverter.js";
9
- /**
10
- * Redirect URLS. Do not mix these up with what the desktop app uses. These are good as of 2024-05-17.
11
- */
12
- const PRODUCTION_REDIRECT_URL = "Isoft_Data_Syst-IsoftDat-b9c2-4-xtbxggai";
13
- const SANDBOX_REDIRECT_URL = "Isoft_Data_Syst-IsoftDat-d25e-4-effhwgxr";
14
- // TODO: probably env these
15
10
  const productionCreds = Object.freeze({
16
- client_id: "IsoftDat-b9c2-4a0c-93ef-9a3d16e36e51",
17
- client_secret: "bd1a5842-6ba2-4d19-ae17-060f4d453745",
11
+ client_id: process.env.EBAY_PRODUCTION_CLIENT_ID || "",
12
+ client_secret: process.env.EBAY_PRODUCTION_CLIENT_SECRET || "",
18
13
  });
19
14
  const sandboxCreds = Object.freeze({
20
- client_id: "IsoftDat-d25e-4e09-85b9-d7458406a4ff",
21
- client_secret: "3c512aae-049d-4b35-b57a-465bb9f6b5a7"
15
+ client_id: process.env.EBAY_SANDBOX_CLIENT_ID || "",
16
+ client_secret: process.env.EBAY_SANDBOX_CLIENT_SECRET || ""
22
17
  });
23
18
  const encodeCreds = (creds) => {
24
19
  const b = Buffer.from(`${creds.client_id}:${creds.client_secret}`).toString("base64");
@@ -28,42 +23,24 @@ const encodeToken = (token) => {
28
23
  const b = Buffer.from(`${token}`).toString("base64");
29
24
  return `${b}`;
30
25
  };
31
- // Same as Marks ServerState
32
26
  export class TokenManager {
33
27
  constructor(datastore, production, scopeList, marketplace) {
34
28
  this.datastore = datastore;
35
29
  this.production = production;
36
30
  this.scopeList = scopeList;
37
31
  this.marketplace = marketplace;
38
- // TODO: depends on production boolean, will need to update
39
- this.localTokenRepo = new EbaySandboxRefreshTokenRepo(this.datastore);
40
- this.authServerKeyRepo = new RemoteEbaySandboxTokenRepo(this.datastore);
41
- this.remoteTokenRepo = new AuthServerRepo((req) => doFetch(req).then(res => {
42
- if (res.success)
43
- return res.data;
44
- else
45
- throw res;
46
- }));
47
32
  this.validStores = [];
48
33
  this.initialize = async () => {
49
34
  let token = await this.localTokenRepo.get();
50
- console.log("DEBUG: ", token);
35
+ // If there's no refresh token, the client needs to re-auth, nothing we can do here
51
36
  if (!token) {
52
- // TODO: Not entirely sure how this works
53
37
  // If we don't have a local refresh token, maybe there's one waiting for us on the remote server
54
- const remoteKey = await this.authServerKeyRepo.get();
55
- console.log("DEBUG remoteKey:", remoteKey);
56
- if (!remoteKey) {
57
- const msg = "Need to sign in";
58
- console.log(msg);
59
- // TODO: need an error object type we can display to user?
60
- throw new Error(msg);
61
- }
62
- const response = await this.remoteTokenRepo.get(remoteKey);
63
- token = response?.refresh_token;
64
- console.log("DEBUG token: ", token);
65
- await this.localTokenRepo.save(token);
38
+ const msg = "No local refresh token found, need to sign in";
39
+ console.log(msg);
40
+ // TODO: need an error object type we can display to user?
41
+ throw new Error(msg);
66
42
  }
43
+ // Cache the refresh token
67
44
  this.cachedRefreshToken = token;
68
45
  await this.refreshUserAccessToken();
69
46
  console.log("INFO: token(s) retrieved");
@@ -99,11 +76,7 @@ export class TokenManager {
99
76
  grant_type: "refresh_token",
100
77
  refresh_token: refreshToken,
101
78
  scope: `${this.scopeList.join(" ")}`,
102
- //scope: "",
103
- // grant_type: "authorization_code",
104
- // code: refreshToken,
105
- code: "10008"
106
- //redirect_uri: SANDBOX_REDIRECT_URL,
79
+ //code: "10008"
107
80
  }),
108
81
  };
109
82
  };
@@ -128,7 +101,8 @@ export class TokenManager {
128
101
  message: "Can't get User Access Token",
129
102
  data: { request, response },
130
103
  });
131
- //process.exit(1)
104
+ const errorMessage = `Failed to refresh User Access Token: ${JSON.stringify(response.data)}`;
105
+ throw new Error(errorMessage);
132
106
  }
133
107
  };
134
108
  this.refreshCompanyId = async () => {
@@ -138,6 +112,9 @@ export class TokenManager {
138
112
  throw Error("Could not get company id");
139
113
  return this.cachedCompanyId;
140
114
  };
115
+ this.localTokenRepo = production
116
+ ? new EbayProductionRefreshTokenRepo(this.datastore)
117
+ : new EbaySandboxRefreshTokenRepo(this.datastore);
141
118
  this.refreshCompanyId();
142
119
  this.attemptCount = 0;
143
120
  }